From 6f2d28a8c10b2a342d42c4f495ea8844cce77d74 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 12 Jul 2017 11:06:20 +0900 Subject: [PATCH] Imported Upstream version 2.7.13 Change-Id: Ide143efb88a819e2d9b350dbcbbfa75b890f0667 Signed-off-by: DongHun Kwak --- Demo/tix/INSTALL.txt | 2 +- Demo/tix/samples/Balloon.py | 2 +- Demo/tix/samples/BtnBox.py | 2 +- Demo/tix/samples/CmpImg.py | 2 +- Demo/tix/samples/ComboBox.py | 2 +- Demo/tix/samples/Control.py | 2 +- Demo/tix/samples/DirList.py | 2 +- Demo/tix/samples/DirTree.py | 2 +- Demo/tix/samples/NoteBook.py | 2 +- Demo/tix/samples/OptMenu.py | 2 +- Demo/tix/samples/PanedWin.py | 2 +- Demo/tix/samples/PopMenu.py | 2 +- Demo/tix/samples/SHList1.py | 2 +- Demo/tix/samples/SHList2.py | 2 +- Demo/tix/samples/Tree.py | 2 +- Demo/turtle/tdemo_I_dontlike_tiltdemo.py | 2 +- Doc/Makefile | 12 +- Doc/c-api/arg.rst | 2 +- Doc/c-api/buffer.rst | 12 +- Doc/c-api/capsule.rst | 10 +- Doc/c-api/class.rst | 2 +- Doc/c-api/conversion.rst | 2 +- Doc/c-api/file.rst | 4 +- Doc/c-api/import.rst | 2 +- Doc/c-api/init.rst | 16 +- Doc/c-api/int.rst | 2 +- Doc/c-api/marshal.rst | 4 +- Doc/c-api/module.rst | 4 +- Doc/c-api/none.rst | 4 +- Doc/c-api/number.rst | 4 +- Doc/c-api/object.rst | 27 +- Doc/c-api/sequence.rst | 12 +- Doc/c-api/set.rst | 6 +- Doc/c-api/slice.rst | 6 +- Doc/c-api/structures.rst | 7 +- Doc/c-api/typeobj.rst | 43 +- Doc/c-api/unicode.rst | 44 +- Doc/distutils/apiref.rst | 26 +- Doc/distutils/builtdist.rst | 30 +- Doc/distutils/configfile.rst | 6 +- Doc/distutils/extending.rst | 2 +- Doc/distutils/packageindex.rst | 4 +- Doc/distutils/setupscript.rst | 4 +- Doc/distutils/sourcedist.rst | 12 +- Doc/extending/building.rst | 9 +- Doc/extending/embedding.rst | 20 +- Doc/extending/extending.rst | 6 +- Doc/extending/newtypes.rst | 13 +- Doc/faq/design.rst | 2 +- Doc/faq/extending.rst | 12 +- Doc/faq/general.rst | 2 +- Doc/howto/cporting.rst | 2 +- Doc/howto/curses.rst | 2 +- Doc/howto/descriptor.rst | 2 +- Doc/howto/logging-cookbook.rst | 16 +- Doc/howto/logging.rst | 23 +- Doc/howto/regex.rst | 4 +- Doc/howto/sockets.rst | 2 +- Doc/howto/sorting.rst | 47 +- Doc/howto/unicode.rst | 14 +- Doc/howto/urllib2.rst | 11 +- Doc/howto/webservers.rst | 4 +- Doc/install/index.rst | 52 +- Doc/library/2to3.rst | 56 +- Doc/library/__builtin__.rst | 2 +- Doc/library/aetypes.rst | 2 +- Doc/library/argparse.rst | 34 +- Doc/library/array.rst | 4 +- Doc/library/ast.rst | 1 + Doc/library/asyncore.rst | 2 +- Doc/library/bdb.rst | 2 +- Doc/library/calendar.rst | 2 +- Doc/library/cgi.rst | 5 +- Doc/library/chunk.rst | 2 +- Doc/library/cmath.rst | 6 +- Doc/library/codecs.rst | 6 +- Doc/library/collections.rst | 29 +- Doc/library/configparser.rst | 20 +- Doc/library/cookie.rst | 10 +- Doc/library/cookielib.rst | 20 +- Doc/library/copy.rst | 2 +- Doc/library/ctypes.rst | 15 +- Doc/library/curses.ascii.rst | 6 +- Doc/library/curses.rst | 2 +- Doc/library/datetime.rst | 4 +- Doc/library/decimal.rst | 16 +- Doc/library/difflib.rst | 2 +- Doc/library/doctest.rst | 20 +- Doc/library/docxmlrpcserver.rst | 6 +- Doc/library/dumbdbm.rst | 2 +- Doc/library/easydialogs.rst | 8 +- Doc/library/ensurepip.rst | 2 +- Doc/library/fnmatch.rst | 3 +- Doc/library/formatter.rst | 4 +- Doc/library/ftplib.rst | 4 +- Doc/library/functions.rst | 12 +- Doc/library/functools.rst | 2 +- Doc/library/gzip.rst | 2 +- Doc/library/hmac.rst | 2 +- Doc/library/htmllib.rst | 12 +- Doc/library/htmlparser.rst | 4 +- Doc/library/httplib.rst | 2 +- Doc/library/idle.rst | 11 +- Doc/library/imaplib.rst | 2 +- Doc/library/inspect.rst | 19 +- Doc/library/io.rst | 16 +- Doc/library/json.rst | 68 +- Doc/library/logging.config.rst | 37 +- Doc/library/logging.handlers.rst | 6 +- Doc/library/logging.rst | 4 +- Doc/library/mimewriter.rst | 10 +- Doc/library/mmap.rst | 6 +- Doc/library/multiprocessing.rst | 4 +- Doc/library/mutex.rst | 2 +- Doc/library/netrc.rst | 10 +- Doc/library/optparse.rst | 18 +- Doc/library/os.path.rst | 2 +- Doc/library/os.rst | 14 +- Doc/library/pdb.rst | 2 +- Doc/library/py_compile.rst | 2 +- Doc/library/pyexpat.rst | 6 +- Doc/library/queue.rst | 12 +- Doc/library/random.rst | 5 +- Doc/library/re.rst | 6 + Doc/library/readline.rst | 3 +- Doc/library/resource.rst | 6 +- Doc/library/restricted.rst | 2 +- Doc/library/scrolledtext.rst | 4 +- Doc/library/select.rst | 2 +- Doc/library/sgmllib.rst | 2 +- Doc/library/shelve.rst | 10 +- Doc/library/shutil.rst | 4 +- Doc/library/simplexmlrpcserver.rst | 10 +- Doc/library/smtpd.rst | 7 +- Doc/library/smtplib.rst | 4 +- Doc/library/socket.rst | 6 +- Doc/library/socketserver.rst | 12 +- Doc/library/sqlite3.rst | 18 +- Doc/library/ssl.rst | 59 +- Doc/library/stdtypes.rst | 97 +- Doc/library/string.rst | 2 +- Doc/library/stringio.rst | 14 +- Doc/library/subprocess.rst | 25 +- Doc/library/sunau.rst | 4 +- Doc/library/sys.rst | 2 +- Doc/library/sysconfig.rst | 2 +- Doc/library/timeit.rst | 3 +- Doc/library/ttk.rst | 2 +- Doc/library/turtle.rst | 6 +- Doc/library/unittest.rst | 4 +- Doc/library/urllib.rst | 12 +- Doc/library/urllib2.rst | 5 + Doc/library/urlparse.rst | 2 +- Doc/library/userdict.rst | 51 +- Doc/library/warnings.rst | 13 +- Doc/library/weakref.rst | 2 +- Doc/library/webbrowser.rst | 2 +- Doc/library/whichdb.rst | 4 +- Doc/library/wsgiref.rst | 2 +- Doc/library/xml.dom.minidom.rst | 2 +- Doc/library/xml.dom.rst | 2 +- Doc/library/xml.etree.elementtree.rst | 6 +- Doc/library/xml.rst | 18 +- Doc/library/xml.sax.reader.rst | 2 +- Doc/library/zipfile.rst | 57 + Doc/library/zipimport.rst | 4 +- Doc/reference/datamodel.rst | 69 +- Doc/reference/lexical_analysis.rst | 17 +- Doc/tools/extensions/suspicious.py | 2 +- Doc/tools/static/version_switch.js | 5 +- Doc/tutorial/classes.rst | 4 +- Doc/tutorial/controlflow.rst | 4 +- Doc/tutorial/errors.rst | 20 +- Doc/tutorial/interpreter.rst | 4 +- Doc/tutorial/modules.rst | 6 +- Doc/using/cmdline.rst | 7 +- Doc/whatsnew/2.0.rst | 4 +- Doc/whatsnew/2.1.rst | 12 +- Doc/whatsnew/2.2.rst | 28 +- Doc/whatsnew/2.3.rst | 47 +- Doc/whatsnew/2.4.rst | 12 +- Doc/whatsnew/2.5.rst | 12 +- Doc/whatsnew/2.6.rst | 22 +- Doc/whatsnew/2.7.rst | 59 +- Include/abstract.h | 26 +- Include/codecs.h | 4 +- Include/longobject.h | 2 +- Include/object.h | 2 +- Include/patchlevel.h | 4 +- Include/pyfpe.h | 36 +- Include/pymacconfig.h | 4 +- Include/pymactoolbox.h | 63 +- Include/pymath.h | 2 +- Include/pyport.h | 13 +- Include/unicodeobject.h | 6 +- Lib/SimpleXMLRPCServer.py | 2 +- Lib/_pyio.py | 2 +- Lib/calendar.py | 21 +- Lib/chunk.py | 2 +- Lib/codecs.py | 6 +- Lib/cookielib.py | 2 +- Lib/ctypes/test/test_callbacks.py | 35 + Lib/ctypes/test/test_find.py | 29 +- Lib/ctypes/test/test_frombuffer.py | 8 + Lib/ctypes/test/test_numbers.py | 2 +- Lib/ctypes/test/test_structures.py | 2 +- Lib/ctypes/util.py | 127 +- Lib/curses/ascii.py | 6 +- Lib/decimal.py | 31 +- Lib/distutils/command/build_ext.py | 1 + Lib/distutils/config.py | 2 +- Lib/distutils/cygwinccompiler.py | 2 +- Lib/distutils/tests/test_bdist_rpm.py | 7 + Lib/distutils/tests/test_build_ext.py | 9 +- Lib/distutils/tests/test_config.py | 4 +- Lib/distutils/tests/test_msvc9compiler.py | 2 +- Lib/distutils/tests/test_upload.py | 4 +- Lib/distutils/unixccompiler.py | 2 + Lib/doctest.py | 2 +- Lib/dumbdbm.py | 12 +- Lib/email/base64mime.py | 2 +- Lib/email/quoprimime.py | 2 +- Lib/email/test/test_email.py | 8 +- Lib/ensurepip/__init__.py | 25 +- .../_bundled/pip-8.1.1-py2.py3-none-any.whl | Bin 1197664 -> 0 bytes .../_bundled/pip-9.0.1-py2.py3-none-any.whl | Bin 0 -> 1254803 bytes ....whl => setuptools-28.8.0-py2.py3-none-any.whl} | Bin 509211 -> 472830 bytes Lib/ftplib.py | 4 +- Lib/gettext.py | 197 +- Lib/httplib.py | 35 +- Lib/idlelib/Bindings.py | 2 + Lib/idlelib/CallTipWindow.py | 2 +- Lib/idlelib/EditorWindow.py | 2 +- Lib/idlelib/IOBinding.py | 2 + Lib/idlelib/NEWS.txt | 39 +- Lib/idlelib/ParenMatch.py | 2 +- Lib/idlelib/README.txt | 11 +- Lib/idlelib/ReplaceDialog.py | 2 +- Lib/idlelib/SearchEngine.py | 2 +- Lib/idlelib/configDialog.py | 11 +- Lib/idlelib/configHandler.py | 31 +- Lib/idlelib/help.html | 26 +- Lib/idlelib/help.py | 6 +- Lib/idlelib/idle.py | 14 +- Lib/idlelib/idle_test/mock_tk.py | 2 +- Lib/idlelib/idle_test/test_autocomplete.py | 2 - Lib/idlelib/idle_test/test_configdialog.py | 1 + Lib/idlelib/idle_test/test_editmenu.py | 3 + Lib/idlelib/idle_test/test_formatparagraph.py | 2 +- Lib/idlelib/idle_test/test_hyperparser.py | 1 + Lib/idlelib/idle_test/test_idlehistory.py | 1 + Lib/idlelib/idle_test/test_textview.py | 35 +- Lib/idlelib/idle_test/test_widgetredir.py | 2 + Lib/inspect.py | 5 +- Lib/io.py | 2 +- Lib/json/__init__.py | 8 +- Lib/json/encoder.py | 2 +- Lib/json/tests/test_decode.py | 2 +- Lib/json/tests/test_float.py | 11 + Lib/lib-tk/Tix.py | 23 +- Lib/lib-tk/Tkinter.py | 17 +- Lib/lib-tk/test/test_tkinter/test_variables.py | 51 +- Lib/lib-tk/test/test_ttk/test_widgets.py | 60 +- Lib/lib-tk/ttk.py | 6 +- Lib/lib-tk/turtle.py | 23 +- Lib/lib2to3/Grammar.txt | 23 +- Lib/lib2to3/fixes/fix_apply.py | 11 + Lib/lib2to3/fixes/fix_callable.py | 37 - Lib/lib2to3/fixes/fix_input.py | 2 +- Lib/lib2to3/fixes/fix_intern.py | 10 + Lib/lib2to3/pgen2/driver.py | 17 +- Lib/lib2to3/pgen2/grammar.py | 31 +- Lib/lib2to3/pgen2/pgen.py | 8 +- Lib/lib2to3/tests/support.py | 6 +- Lib/lib2to3/tests/test_fixers.py | 96 +- Lib/lib2to3/tests/test_parser.py | 107 +- Lib/lib2to3/tests/test_refactor.py | 5 +- Lib/msilib/schema.py | 2 +- Lib/multiprocessing/managers.py | 2 +- Lib/plat-mac/findertools.py | 2 +- Lib/plat-mac/macresource.py | 4 +- Lib/platform.py | 10 +- Lib/posixpath.py | 2 +- Lib/pydoc.py | 17 +- Lib/pydoc_data/topics.py | 13404 +------------------ Lib/shlex.py | 2 +- Lib/shutil.py | 7 +- Lib/site.py | 9 - Lib/sqlite3/test/factory.py | 20 +- Lib/sqlite3/test/hooks.py | 22 + Lib/sqlite3/test/regression.py | 32 +- Lib/ssl.py | 52 +- Lib/subprocess.py | 435 +- Lib/tarfile.py | 4 +- Lib/test/_mock_backport.py | 2 +- Lib/test/allsans.pem | 37 + Lib/test/check_soundcard.vbs | 13 - Lib/test/decimaltestdata/exp.decTest | 2 +- Lib/test/decimaltestdata/fma.decTest | 2 +- Lib/test/decimaltestdata/multiply.decTest | 2 +- Lib/test/make_ssl_certs.py | 49 +- Lib/test/pickletester.py | 3 + Lib/test/regrtest.py | 116 +- Lib/test/ssltests.py | 36 + Lib/test/test_array.py | 16 +- Lib/test/test_binascii.py | 117 +- Lib/test/test_calendar.py | 21 + Lib/test/test_code.py | 47 +- Lib/test/test_cookielib.py | 33 +- Lib/test/test_curses.py | 59 +- Lib/test/test_datetime.py | 2 +- Lib/test/test_deque.py | 2 +- Lib/test/test_descr.py | 4 +- Lib/test/test_doctest.py | 4 +- Lib/test/test_docxmlrpc.py | 42 +- Lib/test/test_dumbdbm.py | 21 + Lib/test/test_ensurepip.py | 69 - Lib/test/test_extcall.py | 20 + Lib/test/test_fileio.py | 7 +- Lib/test/test_format.py | 38 + Lib/test/test_functools.py | 97 +- Lib/test/test_gdb.py | 12 + Lib/test/test_getargs2.py | 2 +- Lib/test/test_gettext.py | 89 +- Lib/test/test_httplib.py | 118 +- Lib/test/test_httpservers.py | 2 +- Lib/test/test_import.py | 26 + Lib/test/test_io.py | 9 + Lib/test/test_itertools.py | 29 +- Lib/test/test_long.py | 15 + Lib/test/test_marshal.py | 5 +- Lib/test/test_mmap.py | 14 + Lib/test/test_os.py | 4 +- Lib/test/test_pep247.py | 2 +- Lib/test/test_posix.py | 42 + Lib/test/test_posixpath.py | 66 +- Lib/test/test_py3kwarn.py | 2 +- Lib/test/test_pydoc.py | 14 + Lib/test/test_pyexpat.py | 6 +- Lib/test/test_re.py | 3 + Lib/test/test_readline.py | 2 +- Lib/test/test_set.py | 15 + Lib/test/test_shlex.py | 13 + Lib/test/test_shutil.py | 13 + Lib/test/test_site.py | 13 +- Lib/test/test_smtplib.py | 16 +- Lib/test/test_socket.py | 2 +- Lib/test/test_ssl.py | 120 +- Lib/test/test_structseq.py | 2 +- Lib/test/test_subprocess.py | 2 +- Lib/test/test_support.py | 49 +- Lib/test/test_syntax.py | 6 +- Lib/test/test_tarfile.py | 9 +- Lib/test/test_threading.py | 2 +- Lib/test/test_tools.py | 83 + Lib/test/test_trace.py | 8 +- Lib/test/test_unicode.py | 12 +- Lib/test/test_urllib.py | 14 +- Lib/test/test_urllib2_localnet.py | 10 +- Lib/test/test_warnings.py | 12 + Lib/test/test_winreg.py | 2 +- Lib/test/test_winsound.py | 254 +- Lib/test/test_zipfile.py | 118 +- Lib/test/test_zlib.py | 120 + Lib/unittest/case.py | 4 +- Lib/urllib.py | 11 +- Lib/wave.py | 2 +- Lib/webbrowser.py | 1 + Lib/xml/dom/expatbuilder.py | 2 +- Lib/xmlrpclib.py | 4 +- Lib/zipfile.py | 28 +- Mac/BuildScript/build-installer.py | 6 +- Mac/BuildScript/openssl_sdk_makedepend.patch | 12 +- Mac/BuildScript/resources/ReadMe.rtf | 47 +- Mac/Demo/textedit.html | 2 +- Mac/IDLE/idlemain.py | 2 - Mac/Modules/ColorPickermodule.c | 9 +- Mac/Modules/MacOS.c | 12 +- Mac/Modules/OSATerminology.c | 8 +- Mac/Modules/app/_Appmodule.c | 14 +- Mac/Modules/carbonevt/_CarbonEvtmodule.c | 16 +- Mac/Modules/cf/_CFmodule.c | 5 +- Mac/Modules/cg/CFMLateImport.c | 2 +- Mac/Modules/ctl/_Ctlmodule.c | 23 +- Mac/Modules/dlg/_Dlgmodule.c | 20 +- Mac/Modules/drag/_Dragmodule.c | 20 +- Mac/Modules/evt/_Evtmodule.c | 6 +- Mac/Modules/file/_Filemodule.c | 6 +- Mac/Modules/fm/_Fmmodule.c | 6 +- Mac/Modules/folder/_Foldermodule.c | 6 +- Mac/Modules/help/_Helpmodule.c | 27 +- Mac/Modules/ibcarbon/_IBCarbon.c | 18 +- Mac/Modules/icn/_Icnmodule.c | 24 +- Mac/Modules/launch/_Launchmodule.c | 6 +- Mac/Modules/list/_Listmodule.c | 29 +- Mac/Modules/menu/_Menumodule.c | 6 +- Mac/Modules/mlte/_Mltemodule.c | 25 +- Mac/Modules/osa/_OSAmodule.c | 6 +- Mac/Modules/qd/_Qdmodule.c | 6 +- Mac/Modules/qdoffs/_Qdoffsmodule.c | 6 +- Mac/Modules/qt/_Qtmodule.c | 24 +- Mac/Modules/res/_Resmodule.c | 8 +- Mac/Modules/res/ressupport.py | 2 +- Mac/Modules/scrap/_Scrapmodule.c | 6 +- Mac/Modules/snd/_Sndmodule.c | 6 +- Mac/Modules/te/_TEmodule.c | 24 +- Mac/Modules/win/_Winmodule.c | 28 +- Mac/PythonLauncher/MyAppDelegate.m | 2 +- Makefile.pre.in | 40 +- Misc/ACKS | 18 + Misc/HISTORY | 30 +- Misc/NEWS | 407 +- Misc/cheatsheet | 8 +- Misc/developers.txt | 2 +- Modules/_csv.c | 23 +- Modules/_ctypes/_ctypes.c | 105 +- Modules/_ctypes/_ctypes_test.c | 18 + Modules/_ctypes/callbacks.c | 6 +- Modules/_ctypes/callproc.c | 51 +- Modules/_ctypes/cfield.c | 10 +- Modules/_ctypes/ctypes.h | 4 +- Modules/_ctypes/libffi/ltmain.sh | 2 +- Modules/_ctypes/libffi/src/x86/darwin64.S | 2 +- Modules/_ctypes/libffi/src/x86/unix64.S | 2 +- Modules/_ctypes/libffi_msvc/ffi.c | 14 +- Modules/_ctypes/libffi_osx/ffi.c | 4 +- Modules/_ctypes/libffi_osx/x86/darwin64.S | 2 +- Modules/_ctypes/stgdict.c | 8 +- Modules/_cursesmodule.c | 16 + Modules/_elementtree.c | 29 +- Modules/_hashopenssl.c | 174 +- Modules/_hotshot.c | 44 +- Modules/_io/_iomodule.c | 2 +- Modules/_io/fileio.c | 15 +- Modules/_io/iobase.c | 4 +- Modules/_io/textio.c | 19 +- Modules/_json.c | 79 +- Modules/_localemodule.c | 43 +- Modules/_math.c | 3 +- Modules/_multiprocessing/connection.h | 8 +- Modules/_sqlite/connection.c | 25 +- Modules/_sqlite/connection.h | 2 +- Modules/_sqlite/cursor.c | 4 +- Modules/_sqlite/statement.c | 7 +- Modules/_sre.c | 4 +- Modules/_ssl.c | 216 +- Modules/_tkinter.c | 6 +- Modules/arraymodule.c | 42 +- Modules/audioop.c | 2 +- Modules/binascii.c | 39 +- Modules/bsddbmodule.c | 2 +- Modules/cPickle.c | 110 +- Modules/cStringIO.c | 16 +- Modules/cjkcodecs/multibytecodec.c | 28 +- Modules/clmodule.c | 2 +- Modules/datetimemodule.c | 4 +- Modules/dlmodule.c | 2 +- Modules/expat/pyexpatns.h | 2 +- Modules/expat/xmlparse.c | 12 +- Modules/fcntlmodule.c | 2 +- Modules/flmodule.c | 9 +- Modules/fmmodule.c | 3 +- Modules/getpath.c | 13 +- Modules/glmodule.c | 3 +- Modules/itertoolsmodule.c | 2 +- Modules/ld_so_aix.in | 1 + Modules/main.c | 18 +- Modules/makesetup | 2 +- Modules/mmapmodule.c | 190 +- Modules/operator.c | 15 +- Modules/posixmodule.c | 91 +- Modules/readline.c | 34 +- Modules/signalmodule.c | 26 +- Modules/socketmodule.c | 25 +- Modules/timingmodule.c | 2 +- Modules/tkappinit.c | 6 + Modules/zipimport.c | 10 +- Modules/zlibmodule.c | 648 +- Objects/abstract.c | 11 +- Objects/bytearrayobject.c | 39 +- Objects/classobject.c | 2 +- Objects/codeobject.c | 70 +- Objects/complexobject.c | 50 +- Objects/exceptions.c | 6 +- Objects/fileobject.c | 3 +- Objects/floatobject.c | 2 +- Objects/funcobject.c | 20 +- Objects/intobject.c | 16 +- Objects/listobject.c | 15 +- Objects/listsort.txt | 2 +- Objects/longobject.c | 24 +- Objects/methodobject.c | 2 +- Objects/rangeobject.c | 6 +- Objects/stringlib/formatter.h | 2 +- Objects/stringobject.c | 178 +- Objects/typeobject.c | 56 +- Objects/unicodeobject.c | 22 +- PC/VS9.0/build_ssl.py | 13 +- PC/VS9.0/pyproject.vsprops | 4 +- PC/VS9.0/readme.txt | 4 +- PC/_msi.c | 20 +- PC/bdist_wininst/install.c | 18 +- PC/msvcrtmodule.c | 2 +- PC/os2emx/Makefile | 2 +- PC/os2vacpp/getpathp.c | 18 +- PC/winsound.c | 32 +- PCbuild/get_externals.bat | 2 +- PCbuild/prepare_ssl.py | 201 + PCbuild/pyproject.props | 7 +- PCbuild/python.props | 2 +- PCbuild/python.vcxproj | 3 + PCbuild/pythoncore.vcxproj | 3 + PCbuild/pythonw.vcxproj | 6 + PCbuild/readme.txt | 2 +- Parser/asdl.py | 2 +- Parser/asdl_c.py | 9 +- Parser/pgen.c | 6 +- Parser/tokenizer.c | 2 +- Python/Python-ast.c | 180 + Python/ast.c | 4 +- Python/bltinmodule.c | 66 +- Python/ceval.c | 6 +- Python/compile.c | 4 +- Python/getargs.c | 19 +- Python/import.c | 7 +- Python/mactoolboxglue.c | 28 +- Python/marshal.c | 5 + Python/pymath.c | 2 +- Python/random.c | 3 + Python/symtable.c | 10 +- Python/sysmodule.c | 2 +- Python/thread.c | 2 +- Python/thread_wince.h | 10 +- README | 23 +- RISCOS/Modules/riscosmodule.c | 2 +- Tools/freeze/freeze.py | 2 +- Tools/freeze/winmakemakefile.py | 4 +- Tools/i18n/pygettext.py | 2 +- Tools/msi/WixCA.blob | Bin 0 -> 205824 bytes Tools/msi/msi.py | 46 +- Tools/msi/schema.py | 2 +- Tools/msi/uisample.py | 2 +- Tools/nuget/build.bat | 63 + Tools/nuget/make_pkg.proj | 53 + Tools/nuget/make_zip.py | 219 + Tools/nuget/python2.nuspec | 18 + Tools/nuget/python2x86.nuspec | 18 + Tools/scripts/fixcid.py | 38 +- Tools/scripts/redemo.py | 2 +- aclocal.m4 | 221 +- config.guess | 174 +- config.sub | 75 +- configure | 329 +- configure.ac | 122 +- pyconfig.h.in | 3 - setup.py | 18 +- 556 files changed, 8214 insertions(+), 17572 deletions(-) delete mode 100644 Lib/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl create mode 100644 Lib/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl rename Lib/ensurepip/_bundled/{setuptools-20.10.1-py2.py3-none-any.whl => setuptools-28.8.0-py2.py3-none-any.whl} (51%) delete mode 100644 Lib/lib2to3/fixes/fix_callable.py create mode 100644 Lib/test/allsans.pem delete mode 100644 Lib/test/check_soundcard.vbs create mode 100644 Lib/test/ssltests.py create mode 100644 PCbuild/prepare_ssl.py create mode 100644 Tools/msi/WixCA.blob create mode 100644 Tools/nuget/build.bat create mode 100644 Tools/nuget/make_pkg.proj create mode 100644 Tools/nuget/make_zip.py create mode 100644 Tools/nuget/python2.nuspec create mode 100644 Tools/nuget/python2x86.nuspec diff --git a/Demo/tix/INSTALL.txt b/Demo/tix/INSTALL.txt index ac70b68..c598e40 100644 --- a/Demo/tix/INSTALL.txt +++ b/Demo/tix/INSTALL.txt @@ -4,7 +4,7 @@ Installing Tix.py ---------------- 0) To use Tix.py, you need Tcl/Tk (V8.3.3), Tix (V8.1.1) and Python (V2.1.1). - Tix.py has been written and tested on a Intel Pentium running RH Linux 5.2 + Tix.py has been written and tested on an Intel Pentium running RH Linux 5.2 and Mandrake Linux 7.0 and Windows with the above mentioned packages. Older versions, e.g. Tix 4.1 and Tk 8.0, might also work. diff --git a/Demo/tix/samples/Balloon.py b/Demo/tix/samples/Balloon.py index 576b4ed..0cd57c0 100644 --- a/Demo/tix/samples/Balloon.py +++ b/Demo/tix/samples/Balloon.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/BtnBox.py b/Demo/tix/samples/BtnBox.py index af2a2a8..d5e2e29 100644 --- a/Demo/tix/samples/BtnBox.py +++ b/Demo/tix/samples/BtnBox.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/CmpImg.py b/Demo/tix/samples/CmpImg.py index 8b33579..2fc513b 100644 --- a/Demo/tix/samples/CmpImg.py +++ b/Demo/tix/samples/CmpImg.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/ComboBox.py b/Demo/tix/samples/ComboBox.py index 9140987..8abcf69 100644 --- a/Demo/tix/samples/ComboBox.py +++ b/Demo/tix/samples/ComboBox.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/Control.py b/Demo/tix/samples/Control.py index 3a344c1..b486592 100644 --- a/Demo/tix/samples/Control.py +++ b/Demo/tix/samples/Control.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/DirList.py b/Demo/tix/samples/DirList.py index 5fd8c0d..054d1f8 100644 --- a/Demo/tix/samples/DirList.py +++ b/Demo/tix/samples/DirList.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/DirTree.py b/Demo/tix/samples/DirTree.py index 2e4fe0b..dfeadfb 100644 --- a/Demo/tix/samples/DirTree.py +++ b/Demo/tix/samples/DirTree.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/NoteBook.py b/Demo/tix/samples/NoteBook.py index 1e0da3e..96c0b0f 100644 --- a/Demo/tix/samples/NoteBook.py +++ b/Demo/tix/samples/NoteBook.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/OptMenu.py b/Demo/tix/samples/OptMenu.py index 1d39420..8e51a9d 100644 --- a/Demo/tix/samples/OptMenu.py +++ b/Demo/tix/samples/OptMenu.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/PanedWin.py b/Demo/tix/samples/PanedWin.py index 3efc731..13aeb5a 100644 --- a/Demo/tix/samples/PanedWin.py +++ b/Demo/tix/samples/PanedWin.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/PopMenu.py b/Demo/tix/samples/PopMenu.py index 32f3229..7028f69 100644 --- a/Demo/tix/samples/PopMenu.py +++ b/Demo/tix/samples/PopMenu.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/SHList1.py b/Demo/tix/samples/SHList1.py index 7ca7b3e..51d005a 100644 --- a/Demo/tix/samples/SHList1.py +++ b/Demo/tix/samples/SHList1.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/tix/samples/SHList2.py b/Demo/tix/samples/SHList2.py index 17fd551..5dd51ff 100644 --- a/Demo/tix/samples/SHList2.py +++ b/Demo/tix/samples/SHList2.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidget": it must have a diff --git a/Demo/tix/samples/Tree.py b/Demo/tix/samples/Tree.py index 9a7e481..af5e421 100644 --- a/Demo/tix/samples/Tree.py +++ b/Demo/tix/samples/Tree.py @@ -2,7 +2,7 @@ # # $Id$ # -# Tix Demostration Program +# Tix Demonstration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a diff --git a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py index c9e6e65..3851f55 100755 --- a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py +++ b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py @@ -3,7 +3,7 @@ tdemo-I_dont_like_tiltdemo.py -Demostrates +Demonstrates (a) use of a tilted ellipse as turtle shape (b) stamping that shape diff --git a/Doc/Makefile b/Doc/Makefile index ea30231..c3f1b37 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -157,12 +157,12 @@ serve: # for development releases: always build autobuild-dev: - make dist SPHINXOPTS='-A daily=1 -A versionswitcher=1' + make dist SPHINXOPTS='$(SPHINXOPTS) -A daily=1 -A versionswitcher=1' -make suspicious # for quick rebuilds (HTML only) -autobuild-html: - make html SPHINXOPTS='-A daily=1 -A versionswitcher=1' +autobuild-dev-html: + make html SPHINXOPTS='$(SPHINXOPTS) -A daily=1 -A versionswitcher=1' # for stable releases: only build if not in pre-release stage (alpha, beta) # release candidate downloads are okay, since the stable tree can be in that stage @@ -173,3 +173,9 @@ autobuild-stable: esac @make autobuild-dev +autobuild-stable-html: + @case $(DISTVERSION) in *[ab]*) \ + echo "Not building; $(DISTVERSION) is not a release version."; \ + exit 1;; \ + esac + @make autobuild-dev-html diff --git a/Doc/c-api/arg.rst b/Doc/c-api/arg.rst index 71e1fa3..7375683 100644 --- a/Doc/c-api/arg.rst +++ b/Doc/c-api/arg.rst @@ -425,7 +425,7 @@ and the following format units are left untouched. only if its format string contains two or more format units. If the format string is empty, it returns ``None``; if it contains exactly one format unit, it returns whatever object is described by that format unit. To - force it to return a tuple of size 0 or one, parenthesize the format + force it to return a tuple of size ``0`` or one, parenthesize the format string. When memory buffers are passed as parameters to supply data to build diff --git a/Doc/c-api/buffer.rst b/Doc/c-api/buffer.rst index e36d01f..050db55 100644 --- a/Doc/c-api/buffer.rst +++ b/Doc/c-api/buffer.rst @@ -74,7 +74,7 @@ The new-style Py_buffer struct .. c:member:: int ndim The number of dimensions the memory represents as a multi-dimensional - array. If it is 0, :c:data:`strides` and :c:data:`suboffsets` must be + array. If it is ``0``, :c:data:`strides` and :c:data:`suboffsets` must be *NULL*. .. c:member:: Py_ssize_t *shape @@ -143,7 +143,7 @@ Buffer related functions .. c:function:: int PyObject_CheckBuffer(PyObject *obj) - Return 1 if *obj* supports the buffer interface otherwise 0. + Return ``1`` if *obj* supports the buffer interface otherwise ``0``. .. c:function:: int PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags) @@ -164,7 +164,7 @@ Buffer related functions :c:data:`Py_buffer` structure is filled in with non-default values and/or raise an error if the object can't support a simpler view of its memory. - 0 is returned on success and -1 on error. + ``0`` is returned on success and ``-1`` on error. The following table gives possible values to the *flags* arguments. @@ -273,9 +273,9 @@ Buffer related functions .. c:function:: int PyBuffer_IsContiguous(Py_buffer *view, char fortran) - Return 1 if the memory defined by the *view* is C-style (*fortran* is + Return ``1`` if the memory defined by the *view* is C-style (*fortran* is ``'C'``) or Fortran-style (*fortran* is ``'F'``) contiguous or either one - (*fortran* is ``'A'``). Return 0 otherwise. + (*fortran* is ``'A'``). Return ``0`` otherwise. .. c:function:: void PyBuffer_FillContiguousStrides(int ndim, Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t itemsize, char fortran) @@ -289,7 +289,7 @@ Buffer related functions Fill in a buffer-info structure, *view*, correctly for an exporter that can only share a contiguous chunk of memory of "unsigned bytes" of the given - length. Return 0 on success and -1 (with raising an error) on error. + length. Return ``0`` on success and ``-1`` (with raising an error) on error. MemoryView objects diff --git a/Doc/c-api/capsule.rst b/Doc/c-api/capsule.rst index 6f6250f..b8642d0 100644 --- a/Doc/c-api/capsule.rst +++ b/Doc/c-api/capsule.rst @@ -120,19 +120,19 @@ Refer to :ref:`using-capsules` for more information on using these objects. guaranteed to succeed. Return a nonzero value if the object is valid and matches the name passed in. - Return 0 otherwise. This function will not fail. + Return ``0`` otherwise. This function will not fail. .. c:function:: int PyCapsule_SetContext(PyObject *capsule, void *context) Set the context pointer inside *capsule* to *context*. - Return 0 on success. Return nonzero and set an exception on failure. + Return ``0`` on success. Return nonzero and set an exception on failure. .. c:function:: int PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor) Set the destructor inside *capsule* to *destructor*. - Return 0 on success. Return nonzero and set an exception on failure. + Return ``0`` on success. Return nonzero and set an exception on failure. .. c:function:: int PyCapsule_SetName(PyObject *capsule, const char *name) @@ -140,11 +140,11 @@ Refer to :ref:`using-capsules` for more information on using these objects. outlive the capsule. If the previous *name* stored in the capsule was not *NULL*, no attempt is made to free it. - Return 0 on success. Return nonzero and set an exception on failure. + Return ``0`` on success. Return nonzero and set an exception on failure. .. c:function:: int PyCapsule_SetPointer(PyObject *capsule, void *pointer) Set the void pointer inside *capsule* to *pointer*. The pointer may not be *NULL*. - Return 0 on success. Return nonzero and set an exception on failure. + Return ``0`` on success. Return nonzero and set an exception on failure. diff --git a/Doc/c-api/class.rst b/Doc/c-api/class.rst index 4dbe508..020309d 100644 --- a/Doc/c-api/class.rst +++ b/Doc/c-api/class.rst @@ -61,5 +61,5 @@ There are very few functions specific to instance objects. Create a new instance of a specific class without calling its constructor. *class* is the class of new object. The *dict* parameter will be used as the - object's :attr:`__dict__`; if *NULL*, a new dictionary will be created for the + object's :attr:`~object.__dict__`; if *NULL*, a new dictionary will be created for the instance. diff --git a/Doc/c-api/conversion.rst b/Doc/c-api/conversion.rst index b987469..4b4d156 100644 --- a/Doc/c-api/conversion.rst +++ b/Doc/c-api/conversion.rst @@ -126,7 +126,7 @@ The following functions provide locale-independent string to number conversions. *format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* - must be 0 and is ignored. The ``'r'`` format code specifies the + must be ``0`` and is ignored. The ``'r'`` format code specifies the standard :func:`repr` format. *flags* can be zero or more of the values *Py_DTSF_SIGN*, diff --git a/Doc/c-api/file.rst b/Doc/c-api/file.rst index bbd4223..e8bc6bf 100644 --- a/Doc/c-api/file.rst +++ b/Doc/c-api/file.rst @@ -136,7 +136,7 @@ change in future releases of Python. .. c:function:: int PyFile_SetEncoding(PyFileObject *p, const char *enc) - Set the file's encoding for Unicode output to *enc*. Return 1 on success and 0 + Set the file's encoding for Unicode output to *enc*. Return ``1`` on success and ``0`` on failure. .. versionadded:: 2.3 @@ -145,7 +145,7 @@ change in future releases of Python. .. c:function:: int PyFile_SetEncodingAndErrors(PyFileObject *p, const char *enc, *errors) Set the file's encoding for Unicode output to *enc*, and its error - mode to *err*. Return 1 on success and 0 on failure. + mode to *err*. Return ``1`` on success and ``0`` on failure. .. versionadded:: 2.6 diff --git a/Doc/c-api/import.rst b/Doc/c-api/import.rst index 6f5678c..f0ea227 100644 --- a/Doc/c-api/import.rst +++ b/Doc/c-api/import.rst @@ -66,7 +66,7 @@ Importing Modules .. versionchanged:: 2.6 The function is an alias for :c:func:`PyImport_ImportModuleLevel` with - -1 as level, meaning relative import. + ``-1`` as level, meaning relative import. .. c:function:: PyObject* PyImport_ImportModuleLevel(char *name, PyObject *globals, PyObject *locals, PyObject *fromlist, int level) diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 6663551..7643a37 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -43,8 +43,8 @@ Initializing and finalizing the interpreter .. c:function:: void Py_InitializeEx(int initsigs) - This function works like :c:func:`Py_Initialize` if *initsigs* is 1. If - *initsigs* is 0, it skips initialization registration of signal handlers, which + This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If + *initsigs* is ``0``, it skips initialization registration of signal handlers, which might be useful when Python is embedded. .. versionadded:: 2.4 @@ -295,7 +295,7 @@ Process-wide parameters .. note:: It is recommended that applications embedding the Python interpreter - for purposes other than executing a single script pass 0 as *updatepath*, + for purposes other than executing a single script pass ``0`` as *updatepath*, and update :data:`sys.path` themselves if desired. See `CVE-2008-5983 `_. @@ -307,13 +307,13 @@ Process-wide parameters .. versionadded:: 2.6.6 - .. XXX impl. doesn't seem consistent in allowing 0/NULL for the params; + .. XXX impl. doesn't seem consistent in allowing ``0``/``NULL`` for the params; check w/ Guido. .. c:function:: void PySys_SetArgv(int argc, char **argv) - This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to 1. + This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to ``1``. .. c:function:: void Py_SetPythonHome(char *home) @@ -917,8 +917,8 @@ pointer and a void pointer argument. .. index:: single: Py_AddPendingCall() Schedule a function to be called from the main interpreter thread. On - success, 0 is returned and *func* is queued for being called in the - main thread. On failure, -1 is returned without setting any exception. + success, ``0`` is returned and *func* is queued for being called in the + main thread. On failure, ``-1`` is returned without setting any exception. When successfully queued, *func* will be *eventually* called from the main interpreter thread with the argument *arg*. It will be called @@ -929,7 +929,7 @@ pointer and a void pointer argument. * with the main thread holding the :term:`global interpreter lock` (*func* can therefore use the full C API). - *func* must return 0 on success, or -1 on failure with an exception + *func* must return ``0`` on success, or ``-1`` on failure with an exception set. *func* won't be interrupted to perform another asynchronous notification recursively, but it can still be interrupted to switch threads if the global interpreter lock is released. diff --git a/Doc/c-api/int.rst b/Doc/c-api/int.rst index 254219c..b2c5a44 100644 --- a/Doc/c-api/int.rst +++ b/Doc/c-api/int.rst @@ -88,7 +88,7 @@ Plain Integer Objects Will first attempt to cast the object to a :c:type:`PyIntObject`, if it is not already one, and then return its value. If there is an error, ``-1`` is returned, and the caller should check ``PyErr_Occurred()`` to find out whether - there was an error, or whether the value just happened to be -1. + there was an error, or whether the value just happened to be ``-1``. .. c:function:: long PyInt_AS_LONG(PyObject *io) diff --git a/Doc/c-api/marshal.rst b/Doc/c-api/marshal.rst index b82cc96..76120ae 100644 --- a/Doc/c-api/marshal.rst +++ b/Doc/c-api/marshal.rst @@ -13,8 +13,8 @@ binary mode. Numeric values are stored with the least significant byte first. -The module supports two versions of the data format: version 0 is the -historical version, version 1 (new in Python 2.4) shares interned strings in +The module supports two versions of the data format: version ``0`` is the +historical version, version ``1`` (new in Python 2.4) shares interned strings in the file, and upon unmarshalling. Version 2 (new in Python 2.5) uses a binary format for floating point numbers. *Py_MARSHAL_VERSION* indicates the current file format (currently 2). diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index 56e63cf..80e12e1 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -51,10 +51,10 @@ There are only a few functions special to module objects. .. index:: single: __dict__ (module attribute) Return the dictionary object that implements *module*'s namespace; this object - is the same as the :attr:`__dict__` attribute of the module object. This + is the same as the :attr:`~object.__dict__` attribute of the module object. This function never fails. It is recommended extensions use other :c:func:`PyModule_\*` and :c:func:`PyObject_\*` functions rather than directly - manipulate a module's :attr:`__dict__`. + manipulate a module's :attr:`~object.__dict__`. .. c:function:: char* PyModule_GetName(PyObject *module) diff --git a/Doc/c-api/none.rst b/Doc/c-api/none.rst index aeaca97..f8909b9 100644 --- a/Doc/c-api/none.rst +++ b/Doc/c-api/none.rst @@ -2,8 +2,8 @@ .. _noneobject: -The None Object ---------------- +The ``None`` Object +------------------- .. index:: object: None diff --git a/Doc/c-api/number.rst b/Doc/c-api/number.rst index 75b7341..39f0e78 100644 --- a/Doc/c-api/number.rst +++ b/Doc/c-api/number.rst @@ -316,7 +316,7 @@ Number Protocol .. c:function:: int PyIndex_Check(PyObject *o) - Returns True if *o* is an index integer (has the nb_index slot of the - tp_as_number structure filled in). + Returns ``1`` if *o* is an index integer (has the nb_index slot of the + tp_as_number structure filled in), and ``0`` otherwise. .. versionadded:: 2.5 diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst index 1f0bd17..295a129 100644 --- a/Doc/c-api/object.rst +++ b/Doc/c-api/object.rst @@ -55,25 +55,35 @@ Object Protocol .. c:function:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value - *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement + *v*. Raise an exception and return ``-1`` on failure; + return ``0`` on success. This is the equivalent of the Python statement ``o.attr_name = v``. + If *v* is *NULL*, the attribute is deleted, however this feature is + deprecated in favour of using :c:func:`PyObject_DelAttr`. + .. c:function:: int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v) Set the value of the attribute named *attr_name*, for object *o*, to the value - *v*. Returns ``-1`` on failure. This is the equivalent of the Python statement + *v*. Raise an exception and return ``-1`` on failure; + return ``0`` on success. This is the equivalent of the Python statement ``o.attr_name = v``. + If *v* is *NULL*, the attribute is deleted, however this feature is + deprecated in favour of using :c:func:`PyObject_DelAttrString`. + .. c:function:: int PyObject_GenericSetAttr(PyObject *o, PyObject *name, PyObject *value) - Generic attribute setter function that is meant to be put into a type - object's ``tp_setattro`` slot. It looks for a data descriptor in the + Generic attribute setter and deleter function that is meant + to be put into a type object's :c:member:`~PyTypeObject.tp_setattro` + slot. It looks for a data descriptor in the dictionary of classes in the object's MRO, and if found it takes preference - over setting the attribute in the instance dictionary. Otherwise, the - attribute is set in the object's :attr:`~object.__dict__` (if present). - Otherwise, an :exc:`AttributeError` is raised and ``-1`` is returned. + over setting or deleting the attribute in the instance dictionary. Otherwise, the + attribute is set or deleted in the object's :attr:`~object.__dict__` (if present). + On success, ``0`` is returned, otherwise an :exc:`AttributeError` + is raised and ``-1`` is returned. .. c:function:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name) @@ -367,7 +377,8 @@ attribute is considered sufficient for this determination. .. c:function:: int PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v) - Map the object *key* to the value *v*. Returns ``-1`` on failure. This is the + Map the object *key* to the value *v*. Raise an exception and + return ``-1`` on failure; return ``0`` on success. This is the equivalent of the Python statement ``o[key] = v``. diff --git a/Doc/c-api/sequence.rst b/Doc/c-api/sequence.rst index 653f9ad..d82a7b0 100644 --- a/Doc/c-api/sequence.rst +++ b/Doc/c-api/sequence.rst @@ -82,10 +82,14 @@ Sequence Protocol .. c:function:: int PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v) - Assign object *v* to the *i*\ th element of *o*. Returns ``-1`` on failure. This + Assign object *v* to the *i*\ th element of *o*. Raise an exception + and return ``-1`` on failure; return ``0`` on success. This is the equivalent of the Python statement ``o[i] = v``. This function *does not* steal a reference to *v*. + If *v* is *NULL*, the element is deleted, however this feature is + deprecated in favour of using :c:func:`PySequence_DelItem`. + .. versionchanged:: 2.5 This function used an :c:type:`int` type for *i*. This might require changes in your code for properly supporting 64-bit systems. @@ -104,7 +108,11 @@ Sequence Protocol .. c:function:: int PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v) Assign the sequence object *v* to the slice in sequence object *o* from *i1* to - *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``. + *i2*. Raise an exception and return ``-1`` on failure; return ``0`` on success. + This is the equivalent of the Python statement ``o[i1:i2] = v``. + + If *v* is *NULL*, the slice is deleted, however this feature is + deprecated in favour of using :c:func:`PySequence_DelSlice`. .. versionchanged:: 2.5 This function used an :c:type:`int` type for *i1* and *i2*. This might diff --git a/Doc/c-api/set.rst b/Doc/c-api/set.rst index f6ebcf3..8bc1c8e 100644 --- a/Doc/c-api/set.rst +++ b/Doc/c-api/set.rst @@ -128,7 +128,7 @@ or :class:`frozenset` or instances of their subtypes. .. c:function:: int PySet_Contains(PyObject *anyset, PyObject *key) - Return 1 if found, 0 if not found, and -1 if an error is encountered. Unlike + Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is encountered. Unlike the Python :meth:`__contains__` method, this function does not automatically convert unhashable sets into temporary frozensets. Raise a :exc:`TypeError` if the *key* is unhashable. Raise :exc:`PyExc_SystemError` if *anyset* is not a @@ -138,7 +138,7 @@ or :class:`frozenset` or instances of their subtypes. .. c:function:: int PySet_Add(PyObject *set, PyObject *key) Add *key* to a :class:`set` instance. Does not apply to :class:`frozenset` - instances. Return 0 on success or -1 on failure. Raise a :exc:`TypeError` if + instances. Return ``0`` on success or ``-1`` on failure. Raise a :exc:`TypeError` if the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to grow. Raise a :exc:`SystemError` if *set* is not an instance of :class:`set` or its subtype. @@ -154,7 +154,7 @@ subtypes but not for instances of :class:`frozenset` or its subtypes. .. c:function:: int PySet_Discard(PyObject *set, PyObject *key) - Return 1 if found and removed, 0 if not found (no action taken), and -1 if an + Return ``1`` if found and removed, ``0`` if not found (no action taken), and ``-1`` if an error is encountered. Does not raise :exc:`KeyError` for missing keys. Raise a :exc:`TypeError` if the *key* is unhashable. Unlike the Python :meth:`~set.discard` method, this function does not automatically convert unhashable sets into diff --git a/Doc/c-api/slice.rst b/Doc/c-api/slice.rst index f74230a..0de950a 100644 --- a/Doc/c-api/slice.rst +++ b/Doc/c-api/slice.rst @@ -34,9 +34,9 @@ Slice Objects assuming a sequence of length *length*. Treats indices greater than *length* as errors. - Returns 0 on success and -1 on error with no exception set (unless one of + Returns ``0`` on success and ``-1`` on error with no exception set (unless one of the indices was not :const:`None` and failed to be converted to an integer, - in which case -1 is returned with an exception set). + in which case ``-1`` is returned with an exception set). You probably do not want to use this function. If you want to use slice objects in versions of Python prior to 2.3, you would probably do well to @@ -57,7 +57,7 @@ Slice Objects of bounds indices are clipped in a manner consistent with the handling of normal slices. - Returns 0 on success and -1 on error with exception set. + Returns ``0`` on success and ``-1`` on error with exception set. .. versionadded:: 2.3 diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst index c6ec685..fdee5f9 100644 --- a/Doc/c-api/structures.rst +++ b/Doc/c-api/structures.rst @@ -159,9 +159,8 @@ specific C type of the *self* object. The :attr:`ml_flags` field is a bitfield which can include the following flags. The individual flags indicate either a calling convention or a binding convention. Of the calling convention flags, only :const:`METH_VARARGS` and -:const:`METH_KEYWORDS` can be combined (but note that :const:`METH_KEYWORDS` -alone is equivalent to ``METH_VARARGS | METH_KEYWORDS``). Any of the calling -convention flags can be combined with a binding flag. +:const:`METH_KEYWORDS` can be combined. Any of the calling convention flags +can be combined with a binding flag. .. data:: METH_VARARGS @@ -315,7 +314,7 @@ definition with the same method name. handles use of the :keyword:`del` statement on that attribute more correctly than :c:macro:`T_OBJECT`. - :attr:`flags` can be 0 for write and read access or :c:macro:`READONLY` for + :attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:macro:`READONLY`. Only :c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` members can be deleted. (They are set to *NULL*). diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index fdd679f..9233278 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -117,12 +117,13 @@ type objects) *must* have the :attr:`ob_size` field. For statically allocated type objects, the tp_name field should contain a dot. Everything before the last dot is made accessible as the :attr:`__module__` attribute, and everything after the last dot is made accessible as the - :attr:`__name__` attribute. + :attr:`~definition.__name__` attribute. If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is made accessible as the - :attr:`__name__` attribute, and the :attr:`__module__` attribute is undefined + :attr:`~definition.__name__` attribute, and the :attr:`__module__` attribute is undefined (unless explicitly set in the dictionary, as explained above). This means your - type will be impossible to pickle. + type will be impossible to pickle. Additionally, it will not be listed in + module documentations created with pydoc. This field is not inherited by subtypes. @@ -229,8 +230,9 @@ type objects) *must* have the :attr:`ob_size` field. This field is deprecated. When it is defined, it should point to a function that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, but taking a C string - instead of a Python string object to give the attribute name. The signature is - the same as for :c:func:`PyObject_GetAttrString`. + instead of a Python string object to give the attribute name. The signature is :: + + PyObject * tp_getattr(PyObject *o, char *attr_name); This field is inherited by subtypes together with :c:member:`~PyTypeObject.tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject.tp_getattro` from its base type when @@ -239,13 +241,15 @@ type objects) *must* have the :attr:`ob_size` field. .. c:member:: setattrfunc PyTypeObject.tp_setattr - An optional pointer to the set-attribute-string function. + An optional pointer to the function for setting and deleting attributes. This field is deprecated. When it is defined, it should point to a function that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, but taking a C string - instead of a Python string object to give the attribute name. The signature is - the same as for :c:func:`PyObject_SetAttrString`. + instead of a Python string object to give the attribute name. The signature is :: + + PyObject * tp_setattr(PyObject *o, char *attr_name, PyObject *v); + The *v* argument is set to *NULL* to delete the attribute. This field is inherited by subtypes together with :c:member:`~PyTypeObject.tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject.tp_setattro` from its base type when the subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject.tp_setattro` are both *NULL*. @@ -388,9 +392,10 @@ type objects) *must* have the :attr:`ob_size` field. .. c:member:: setattrofunc PyTypeObject.tp_setattro - An optional pointer to the set-attribute function. + An optional pointer to the function for setting and deleting attributes. - The signature is the same as for :c:func:`PyObject_SetAttr`. It is usually + The signature is the same as for :c:func:`PyObject_SetAttr`, but setting + *v* to *NULL* to delete an attribute must be supported. It is usually convenient to set this field to :c:func:`PyObject_GenericSetAttr`, which implements the normal way of setting object attributes. @@ -830,7 +835,7 @@ The next fields, up to and including :c:member:`~PyTypeObject.tp_weaklist`, only typedef struct PyGetSetDef { char *name; /* attribute name */ getter get; /* C function to get the attribute */ - setter set; /* C function to set the attribute */ + setter set; /* C function to set or delete the attribute */ char *doc; /* optional doc string */ void *closure; /* optional additional data for getter and setter */ } PyGetSetDef; @@ -876,12 +881,14 @@ The next fields, up to and including :c:member:`~PyTypeObject.tp_weaklist`, only .. c:member:: descrsetfunc PyTypeObject.tp_descr_set - An optional pointer to a "descriptor set" function. + An optional pointer to a function for setting and deleting + a descriptor's value. The function signature is :: int tp_descr_set(PyObject *self, PyObject *obj, PyObject *value); + The *value* argument is set to *NULL* to delete the value. This field is inherited by subtypes. .. XXX explain. @@ -1262,9 +1269,11 @@ Mapping Object Structures .. c:member:: objobjargproc PyMappingMethods.mp_ass_subscript - This function is used by :c:func:`PyObject_SetItem` and has the same - signature. If this slot is *NULL*, the object does not support item - assignment. + This function is used by :c:func:`PyObject_SetItem` and + :c:func:`PyObject_DelItem`. It has the same signature as + :c:func:`PyObject_SetItem`, but *v* can also be set to *NULL* to delete + an item. If this slot is *NULL*, the object does not support item + assignment and deletion. .. _sequence-structs: @@ -1313,7 +1322,7 @@ Sequence Object Structures This function is used by :c:func:`PySequence_SetItem` and has the same signature. This slot may be left to *NULL* if the object does not support - item assignment. + item assignment and deletion. .. c:member:: objobjproc PySequenceMethods.sq_contains @@ -1443,7 +1452,7 @@ member in the :c:type:`PyTypeObject` structure should be *NULL*. Otherwise, the all segments in ``*lenp``. The function cannot fail. -.. c:type:: Py_ssize_t (*charbufferproc) (PyObject *self, Py_ssize_t segment, const char **ptrptr) +.. c:type:: Py_ssize_t (*charbufferproc) (PyObject *self, Py_ssize_t segment, char **ptrptr) Return the size of the segment *segment* that *ptrptr* is set to. ``*ptrptr`` is set to the memory buffer. Returns ``-1`` on error. diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index 85800c5..4d1eaa1 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -116,52 +116,52 @@ the Python configuration. .. c:function:: int Py_UNICODE_ISSPACE(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a whitespace character. + Return ``1`` or ``0`` depending on whether *ch* is a whitespace character. .. c:function:: int Py_UNICODE_ISLOWER(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a lowercase character. + Return ``1`` or ``0`` depending on whether *ch* is a lowercase character. .. c:function:: int Py_UNICODE_ISUPPER(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is an uppercase character. + Return ``1`` or ``0`` depending on whether *ch* is an uppercase character. .. c:function:: int Py_UNICODE_ISTITLE(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a titlecase character. + Return ``1`` or ``0`` depending on whether *ch* is a titlecase character. .. c:function:: int Py_UNICODE_ISLINEBREAK(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a linebreak character. + Return ``1`` or ``0`` depending on whether *ch* is a linebreak character. .. c:function:: int Py_UNICODE_ISDECIMAL(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a decimal character. + Return ``1`` or ``0`` depending on whether *ch* is a decimal character. .. c:function:: int Py_UNICODE_ISDIGIT(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a digit character. + Return ``1`` or ``0`` depending on whether *ch* is a digit character. .. c:function:: int Py_UNICODE_ISNUMERIC(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is a numeric character. + Return ``1`` or ``0`` depending on whether *ch* is a numeric character. .. c:function:: int Py_UNICODE_ISALPHA(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is an alphabetic character. + Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character. .. c:function:: int Py_UNICODE_ISALNUM(Py_UNICODE ch) - Return 1 or 0 depending on whether *ch* is an alphanumeric character. + Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character. These APIs can be used for fast direct character conversions: @@ -393,7 +393,7 @@ wchar_t Support Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At most *size* :c:type:`wchar_t` characters are copied (excluding a possibly trailing 0-termination character). Return the number of :c:type:`wchar_t` characters - copied or -1 in case of an error. Note that the resulting :c:type:`wchar_t` + copied or ``-1`` in case of an error. Note that the resulting :c:type:`wchar_t` string may or may not be 0-terminated. It is the responsibility of the caller to make sure that the :c:type:`wchar_t` string is 0-terminated in case this is required by the application. Also, note that the :c:type:`wchar_t*` string @@ -856,11 +856,11 @@ included in the :mod:`encodings` package). The codec uses mapping to encode and decode characters. Decoding mappings must map single string characters to single Unicode -characters, integers (which are then interpreted as Unicode ordinals) or None +characters, integers (which are then interpreted as Unicode ordinals) or ``None`` (meaning "undefined mapping" and causing an error). Encoding mappings must map single Unicode characters to single string -characters, integers (which are then interpreted as Latin-1 ordinals) or None +characters, integers (which are then interpreted as Latin-1 ordinals) or ``None`` (meaning "undefined mapping" and causing an error). The mapping objects provided must only support the __getitem__ mapping @@ -917,7 +917,7 @@ The following codec API is special in that maps Unicode to Unicode. *NULL* when an exception was raised by the codec. The *mapping* table must map Unicode ordinal integers to Unicode ordinal - integers or None (causing deletion of the character). + integers or ``None`` (causing deletion of the character). Mapping tables need only provide the :meth:`__getitem__` interface; dictionaries and sequences work well. Unmapped character ordinals (ones which cause a @@ -1009,7 +1009,7 @@ They all return *NULL* or ``-1`` if an exception occurs. .. c:function:: PyObject* PyUnicode_Splitlines(PyObject *s, int keepend) Split a Unicode string at line breaks, returning a list of Unicode strings. - CRLF is considered to be one line break. If *keepend* is 0, the Line break + CRLF is considered to be one line break. If *keepend* is ``0``, the Line break characters are not included in the resulting strings. @@ -1019,7 +1019,7 @@ They all return *NULL* or ``-1`` if an exception occurs. resulting Unicode object. The mapping table must map Unicode ordinal integers to Unicode ordinal integers - or None (causing deletion of the character). + or ``None`` (causing deletion of the character). Mapping tables need only provide the :meth:`__getitem__` interface; dictionaries and sequences work well. Unmapped character ordinals (ones which cause a @@ -1037,9 +1037,9 @@ They all return *NULL* or ``-1`` if an exception occurs. .. c:function:: Py_ssize_t PyUnicode_Tailmatch(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end, int direction) - Return 1 if *substr* matches ``str[start:end]`` at the given tail end - (*direction* == -1 means to do a prefix match, *direction* == 1 a suffix match), - 0 otherwise. Return ``-1`` if an error occurred. + Return ``1`` if *substr* matches ``str[start:end]`` at the given tail end + (*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` a suffix match), + ``0`` otherwise. Return ``-1`` if an error occurred. .. versionchanged:: 2.5 This function used an :c:type:`int` type for *start* and *end*. This @@ -1050,7 +1050,7 @@ They all return *NULL* or ``-1`` if an exception occurs. .. c:function:: Py_ssize_t PyUnicode_Find(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end, int direction) Return the first position of *substr* in ``str[start:end]`` using the given - *direction* (*direction* == 1 means to do a forward search, *direction* == -1 a + *direction* (*direction* == ``1`` means to do a forward search, *direction* == ``-1`` a backward search). The return value is the index of the first match; a value of ``-1`` indicates that no match was found, and ``-2`` indicates that an error occurred and an exception has been set. @@ -1075,7 +1075,7 @@ They all return *NULL* or ``-1`` if an exception occurs. .. c:function:: PyObject* PyUnicode_Replace(PyObject *str, PyObject *substr, PyObject *replstr, Py_ssize_t maxcount) Replace at most *maxcount* occurrences of *substr* in *str* with *replstr* and - return the resulting Unicode object. *maxcount* == -1 means replace all + return the resulting Unicode object. *maxcount* == ``-1`` means replace all occurrences. .. versionchanged:: 2.5 @@ -1085,7 +1085,7 @@ They all return *NULL* or ``-1`` if an exception occurs. .. c:function:: int PyUnicode_Compare(PyObject *left, PyObject *right) - Compare two strings and return -1, 0, 1 for less than, equal, and greater than, + Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, and greater than, respectively. diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst index 67ad3be..18844dd 100644 --- a/Doc/distutils/apiref.rst +++ b/Doc/distutils/apiref.rst @@ -166,7 +166,7 @@ the full reference. .. class:: Extension - The Extension class describes a single C or C++extension module in a setup + The Extension class describes a single C or C++ extension module in a setup script. It accepts the following keyword arguments in its constructor .. tabularcolumns:: |l|L|l| @@ -205,7 +205,7 @@ the full reference. | | to or ``None`` to define it | | | | without a particular value | | | | (equivalent of ``#define FOO`` | | - | | in source or :option:`-DFOO` | | + | | in source or :option:`!-DFOO` | | | | on Unix C compiler command | | | | line) | | +------------------------+--------------------------------+---------------------------+ @@ -314,11 +314,11 @@ This module provides the following functions. .. function:: gen_preprocess_options(macros, include_dirs) - Generate C pre-processor options (:option:`-D`, :option:`!-U`, :option:`!-I`) as + Generate C pre-processor options (:option:`!-D`, :option:`!-U`, :option:`!-I`) as used by at least two types of compilers: the typical Unix compiler and Visual C++. *macros* is the usual thing, a list of 1- or 2-tuples, where ``(name,)`` means undefine (:option:`!-U`) macro *name*, and ``(name, value)`` means define - (:option:`-D`) macro *name* to *value*. *include_dirs* is just a list of + (:option:`!-D`) macro *name* to *value*. *include_dirs* is just a list of directory names to be added to the header file search path (:option:`!-I`). Returns a list of command-line options suitable for either Unix compilers or Visual C++. @@ -354,7 +354,7 @@ This module provides the following functions. .. function:: show_compilers() - Print list of available compilers (used by the :option:`--help-compiler` options + Print list of available compilers (used by the :option:`!--help-compiler` options to :command:`build`, :command:`build_ext`, :command:`build_clib`). @@ -784,15 +784,15 @@ This module provides the following functions. This module provides the :class:`UnixCCompiler` class, a subclass of :class:`CCompiler` that handles the typical Unix-style command-line C compiler: -* macros defined with :option:`-Dname[=value]` +* macros defined with :option:`!-Dname[=value]` -* macros undefined with :option:`-Uname` +* macros undefined with :option:`!-Uname` -* include search directories specified with :option:`-Idir` +* include search directories specified with :option:`!-Idir` -* libraries specified with :option:`-llib` +* libraries specified with :option:`!-llib` -* library search directories specified with :option:`-Ldir` +* library search directories specified with :option:`!-Ldir` * compile handled by :program:`cc` (or similar) executable with :option:`!-c` option: compiles :file:`.c` to :file:`.o` @@ -800,7 +800,7 @@ This module provides the :class:`UnixCCompiler` class, a subclass of * link static library handled by :program:`ar` command (possibly with :program:`ranlib`) -* link shared library handled by :program:`cc` :option:`-shared` +* link shared library handled by :program:`cc` :option:`!-shared` :mod:`distutils.msvccompiler` --- Microsoft Compiler @@ -1310,8 +1310,8 @@ provides the following additional features: * options set attributes of a passed-in object -* boolean options can have "negative aliases" --- eg. if :option:`--quiet` is - the "negative alias" of :option:`--verbose`, then :option:`--quiet` on the +* boolean options can have "negative aliases" --- eg. if :option:`!--quiet` is + the "negative alias" of :option:`!--verbose`, then :option:`!--quiet` on the command line sets *verbose* to false. diff --git a/Doc/distutils/builtdist.rst b/Doc/distutils/builtdist.rst index 5e70cba..15ab3b3 100644 --- a/Doc/distutils/builtdist.rst +++ b/Doc/distutils/builtdist.rst @@ -57,7 +57,7 @@ built distributions, such as an RPM package or an executable installer for Windows, is far more convenient for users even if your distribution doesn't include any extensions. -The :command:`bdist` command has a :option:`--formats` option, similar to the +The :command:`bdist` command has a :option:`!--formats` option, similar to the :command:`sdist` command, which you can use to select the types of built distribution to generate: for example, :: @@ -115,7 +115,7 @@ Notes: requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm --version`` to find out which version you have) -You don't have to use the :command:`bdist` command with the :option:`--formats` +You don't have to use the :command:`bdist` command with the :option:`!--formats` option; you can also use the command that directly implements the format you're interested in. Some of these :command:`bdist` "sub-commands" actually generate several similar formats; for instance, the :command:`bdist_dumb` command @@ -165,7 +165,7 @@ The usual way to create an RPM of your module distribution is to run the python setup.py bdist_rpm -or the :command:`bdist` command with the :option:`--format` option:: +or the :command:`bdist` command with the :option:`!--format` option:: python setup.py bdist --formats=rpm @@ -258,10 +258,10 @@ Normally, RPM bundles the last two steps together; when you use the Distutils, all three steps are typically bundled together. If you wish, you can separate these three steps. You can use the -:option:`--spec-only` option to make :command:`bdist_rpm` just create the +:option:`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`.spec` file and exit; in this case, the :file:`.spec` file will be written to the "distribution directory"---normally :file:`dist/`, but -customizable with the :option:`--dist-dir` option. (Normally, the :file:`.spec` +customizable with the :option:`!--dist-dir` option. (Normally, the :file:`.spec` file winds up deep in the "build tree," in a temporary directory created by :command:`bdist_rpm`.) @@ -298,7 +298,7 @@ is usually as easy as running:: python setup.py bdist_wininst -or the :command:`bdist` command with the :option:`--formats` option:: +or the :command:`bdist` command with the :option:`!--formats` option:: python setup.py bdist --formats=wininst @@ -316,20 +316,20 @@ support. The installer will try to compile pure modules into :term:`bytecode` after installation on the target system in normal and optimizing mode. If you don't want this to happen for some reason, you can run the :command:`bdist_wininst` command with -the :option:`--no-target-compile` and/or the :option:`--no-target-optimize` +the :option:`!--no-target-compile` and/or the :option:`!--no-target-optimize` option. By default the installer will display the cool "Python Powered" logo when it is run, but you can also supply your own 152x261 bitmap which must be a Windows -:file:`.bmp` file with the :option:`--bitmap` option. +:file:`.bmp` file with the :option:`!--bitmap` option. The installer will also display a large title on the desktop background window when it is run, which is constructed from the name of your distribution and the version number. This can be changed to another text by using the -:option:`--title` option. +:option:`!--title` option. The installer file will be written to the "distribution directory" --- normally -:file:`dist/`, but customizable with the :option:`--dist-dir` option. +:file:`dist/`, but customizable with the :option:`!--dist-dir` option. .. _cross-compile-windows: @@ -341,7 +341,7 @@ Windows platforms. In practice, this means that with the correct tools installed, you can use a 32bit version of Windows to create 64bit extensions and vice-versa. -To build for an alternate platform, specify the :option:`--plat-name` option +To build for an alternate platform, specify the :option:`!--plat-name` option to the build command. Valid values are currently 'win32', 'win-amd64' and 'win-ia64'. For example, on a 32bit version of Windows, you could execute:: @@ -374,14 +374,14 @@ The Postinstallation script --------------------------- Starting with Python 2.3, a postinstallation script can be specified with the -:option:`--install-script` option. The basename of the script must be +:option:`!--install-script` option. The basename of the script must be specified, and the script filename must also be listed in the scripts argument to the setup function. This script will be run at installation time on the target system after all the -files have been copied, with ``argv[1]`` set to :option:`-install`, and again at +files have been copied, with ``argv[1]`` set to :option:`!-install`, and again at uninstallation time before the files are removed with ``argv[1]`` set to -:option:`-remove`. +:option:`!-remove`. The installation script runs embedded in the windows installer, every output (``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be @@ -444,7 +444,7 @@ built-in functions in the installation script. Vista User Access Control (UAC) =============================== -Starting with Python 2.6, bdist_wininst supports a :option:`--user-access-control` +Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-control` option. The default is 'none' (meaning no UAC handling is done), and other valid values are 'auto' (meaning prompt for UAC elevation if Python was installed for all users) and 'force' (meaning always prompt for elevation). diff --git a/Doc/distutils/configfile.rst b/Doc/distutils/configfile.rst index 51d8897..21f1acd 100644 --- a/Doc/distutils/configfile.rst +++ b/Doc/distutils/configfile.rst @@ -66,7 +66,7 @@ universal :option:`!--help` option, e.g. :: --swig-opts list of SWIG command line options [...] -Note that an option spelled :option:`--foo-bar` on the command-line is spelled +Note that an option spelled :option:`!--foo-bar` on the command-line is spelled ``foo_bar`` in configuration files. .. _distutils-build-ext-inplace: @@ -75,12 +75,12 @@ For example, say you want your extensions to be built "in-place"---that is, you have an extension :mod:`pkg.ext`, and you want the compiled extension file (:file:`ext.so` on Unix, say) to be put in the same source directory as your pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. You can always use the -:option:`--inplace` option on the command-line to ensure this:: +:option:`!--inplace` option on the command-line to ensure this:: python setup.py build_ext --inplace But this requires that you always specify the :command:`build_ext` command -explicitly, and remember to provide :option:`--inplace`. An easier way is to +explicitly, and remember to provide :option:`!--inplace`. An easier way is to "set and forget" this option, by encoding it in :file:`setup.cfg`, the configuration file for this distribution:: diff --git a/Doc/distutils/extending.rst b/Doc/distutils/extending.rst index 5139c6d..501fd7c 100644 --- a/Doc/distutils/extending.rst +++ b/Doc/distutils/extending.rst @@ -62,7 +62,7 @@ requiring modifications to the Python installation. This is expected to allow third-party extensions to provide support for additional packaging systems, but the commands can be used for anything distutils commands can be used for. A new configuration option, ``command_packages`` (command-line option -:option:`--command-packages`), can be used to specify additional packages to be +:option:`!--command-packages`), can be used to specify additional packages to be searched for modules implementing commands. Like all distutils options, this can be specified on the command line or in a configuration file. This option can only be set in the ``[global]`` section of a configuration file, or before diff --git a/Doc/distutils/packageindex.rst b/Doc/distutils/packageindex.rst index 7494495..8087584 100644 --- a/Doc/distutils/packageindex.rst +++ b/Doc/distutils/packageindex.rst @@ -235,7 +235,9 @@ in the root of the package besides :file:`setup.py`. To prevent registering broken reStructuredText content, you can use the :program:`rst2html` program that is provided by the :mod:`docutils` package and -check the ``long_description`` from the command line:: +check the ``long_description`` from the command line: + +.. code-block:: shell-session $ python setup.py --long-description | rst2html.py > output.html diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst index d2be040..6b82c40 100644 --- a/Doc/distutils/setupscript.rst +++ b/Doc/distutils/setupscript.rst @@ -201,7 +201,7 @@ The second argument to the :class:`~distutils.core.Extension` constructor is a list of source files. Since the Distutils currently only support C, C++, and Objective-C extensions, these are normally C/C++/Objective-C source files. (Be sure to use -appropriate extensions to distinguish C++\ source files: :file:`.cc` and +appropriate extensions to distinguish C++ source files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and Windows compilers.) However, you can also include SWIG interface (:file:`.i`) files in the list; the @@ -442,7 +442,7 @@ command line. Scripts don't require Distutils to do anything very complicated. The only clever feature is that if the first line of the script starts with ``#!`` and contains the word "python", the Distutils will adjust the first line to refer to the current interpreter location. By default, it is replaced with -the current interpreter location. The :option:`--executable` (or :option:`-e`) +the current interpreter location. The :option:`!--executable` (or :option:`!-e`) option will allow the interpreter path to be explicitly overridden. The ``scripts`` option simply is a list of files to be handled in this diff --git a/Doc/distutils/sourcedist.rst b/Doc/distutils/sourcedist.rst index b4fa9dc..19c2d56 100644 --- a/Doc/distutils/sourcedist.rst +++ b/Doc/distutils/sourcedist.rst @@ -14,7 +14,7 @@ or config file), :command:`sdist` creates the archive of the default format for the current platform. The default format is a gzip'ed tar file (:file:`.tar.gz`) on Unix, and ZIP file on Windows. -You can specify as many formats as you like using the :option:`--formats` +You can specify as many formats as you like using the :option:`!--formats` option, for example:: python setup.py sdist --formats=gztar,zip @@ -147,7 +147,7 @@ The normal course of operations for the :command:`sdist` command is as follows: in) to create the source distribution archive(s) There are a couple of options that modify this behaviour. First, use the -:option:`--no-defaults` and :option:`--no-prune` to disable the standard +:option:`!--no-defaults` and :option:`!--no-prune` to disable the standard "include" and "exclude" sets. Second, you might just want to (re)generate the manifest, but not create a @@ -155,7 +155,7 @@ source distribution:: python setup.py sdist --manifest-only -:option:`-o` is a shortcut for :option:`--manifest-only`. +:option:`!-o` is a shortcut for :option:`!--manifest-only`. .. _manifest_template: @@ -189,7 +189,7 @@ matching :file:`\*.txt` or :file:`\*.py`, and exclude all directories matching :file:`examples/sample?/build`. All of this is done *after* the standard include set, so you can exclude files from the standard set with explicit instructions in the manifest template. (Or, you can use the -:option:`--no-defaults` option to disable the standard set entirely.) +:option:`!--no-defaults` option to disable the standard set entirely.) The order of commands in the manifest template matters: initially, we have the list of default files as described above, and each command in the template adds @@ -206,8 +206,8 @@ Now we have our complete list of files, which is written to the manifest for future reference, and then used to build the source distribution archive(s). You can disable the default set of included files with the -:option:`--no-defaults` option, and you can disable the standard exclude set -with :option:`--no-prune`. +:option:`!--no-defaults` option, and you can disable the standard exclude set +with :option:`!--no-prune`. Following the Distutils' own manifest template, let's trace how the :command:`sdist` command builds the list of files to include in the Distutils diff --git a/Doc/extending/building.rst b/Doc/extending/building.rst index 656af88..f32192b 100644 --- a/Doc/extending/building.rst +++ b/Doc/extending/building.rst @@ -24,7 +24,9 @@ packages, users don't necessarily need a compiler and distutils to install the extension. A distutils package contains a driver script, :file:`setup.py`. This is a plain -Python file, which, in the most simple case, could look like this:: +Python file, which, in the most simple case, could look like this: + +.. code-block:: python from distutils.core import setup, Extension @@ -64,7 +66,9 @@ file, :file:`demo.c`. In many cases, building an extension is more complex, since additional preprocessor defines and libraries may be needed. This is demonstrated in the -example below. :: +example below. + +.. code-block:: python from distutils.core import setup, Extension @@ -129,4 +133,3 @@ commands can be used to do so. :: python setup.py bdist_wininst python setup.py bdist_rpm python setup.py bdist_dumb - diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst index 981e1d5..2330cdb 100644 --- a/Doc/extending/embedding.rst +++ b/Doc/extending/embedding.rst @@ -151,7 +151,9 @@ array. If you compile and link this program (let's call the finished executable c = c + b return c -then the result should be:: +then the result should be: + +.. code-block:: shell-session $ call multiply multiply 3 2 Will compute 3 times 2 @@ -274,16 +276,20 @@ available). This script has several options, of which the following will be directly useful to you: * ``pythonX.Y-config --cflags`` will give you the recommended flags when - compiling:: + compiling: + + .. code-block:: shell-session - $ /opt/bin/python2.7-config --cflags - -I/opt/include/python2.7 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes + $ /opt/bin/python2.7-config --cflags + -I/opt/include/python2.7 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes * ``pythonX.Y-config --ldflags`` will give you the recommended flags when - linking:: + linking: + + .. code-block:: shell-session - $ /opt/bin/python2.7-config --ldflags - -L/opt/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic + $ /opt/bin/python2.7-config --ldflags + -L/opt/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic .. note:: To avoid confusion between several Python installations (and especially diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index 36de32a..32d3097 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -763,7 +763,9 @@ the format string is empty, it returns ``None``; if it contains exactly one format unit, it returns whatever object is described by that format unit. To force it to return a tuple of size 0 or one, parenthesize the format string. -Examples (to the left the call, to the right the resulting Python value):: +Examples (to the left the call, to the right the resulting Python value): + +.. code-block:: none Py_BuildValue("") None Py_BuildValue("i", 123) 123 @@ -856,7 +858,7 @@ The :mod:`gc` module also exposes a way to run the detector (the :func:`~gc.collect` function), as well as configuration interfaces and the ability to disable the detector at runtime. The cycle detector is considered an optional component; though it is included by default, -it can be disabled at build time using the :option:`--without-cycle-gc` option +it can be disabled at build time using the :option:`!--without-cycle-gc` option to the :program:`configure` script on Unix platforms (including Mac OS X) or by removing the definition of ``WITH_CYCLE_GC`` in the :file:`pyconfig.h` header on other platforms. If the cycle detector is disabled in this way, the :mod:`gc` diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst index de1849c..6e275e5 100644 --- a/Doc/extending/newtypes.rst +++ b/Doc/extending/newtypes.rst @@ -140,7 +140,9 @@ our objects and in some error messages, for example:: Note that the name is a dotted name that includes both the module name and the name of the type within the module. The module in this case is :mod:`noddy` and -the type is :class:`Noddy`, so we set the type name to :class:`noddy.Noddy`. :: +the type is :class:`Noddy`, so we set the type name to :class:`noddy.Noddy`. +One side effect of using an undotted name is that the pydoc documentation tool +will not list the new type in the module documentation. :: sizeof(noddy_NoddyObject), /* tp_basicsize */ @@ -223,7 +225,9 @@ That's it! All that remains is to build it; put the above code in a file called setup(name="noddy", version="1.0", ext_modules=[Extension("noddy", ["noddy.c"])]) -in a file called :file:`setup.py`; then typing :: +in a file called :file:`setup.py`; then typing + +.. code-block:: shell-session $ python setup.py build @@ -1166,10 +1170,10 @@ If :c:member:`~PyTypeObject.tp_methods` is not *NULL*, it must refer to an array structure:: typedef struct PyMethodDef { - char *ml_name; /* method name */ + const char *ml_name; /* method name */ PyCFunction ml_meth; /* implementation function */ int ml_flags; /* flags */ - char *ml_doc; /* docstring */ + const char *ml_doc; /* docstring */ } PyMethodDef; One entry should be defined for each method provided by the type; no entries are @@ -1580,4 +1584,3 @@ might be something like the following:: .. [#] Even in the third version, we aren't guaranteed to avoid cycles. Instances of string subclasses are allowed and string subclasses could allow cycles even if normal strings don't. - diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst index 1e523d4..0a8cfdd 100644 --- a/Doc/faq/design.rst +++ b/Doc/faq/design.rst @@ -31,7 +31,7 @@ least slightly uneasy when reading (or being required to write) another style. Many coding styles place begin/end brackets on a line by themselves. This makes programs considerably longer and wastes valuable screen space, making it harder to get a good overview of a program. Ideally, a function should fit on one -screen (say, 20-30 lines). 20 lines of Python can do a lot more work than 20 +screen (say, 20--30 lines). 20 lines of Python can do a lot more work than 20 lines of C. This is not solely due to the lack of begin/end brackets -- the lack of declarations and the high-level data types are also responsible -- but the indentation-based syntax certainly helps. diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst index e78da55..c380645 100644 --- a/Doc/faq/extending.rst +++ b/Doc/faq/extending.rst @@ -156,6 +156,8 @@ The easiest way to do this is to use the StringIO class in the standard library. Sample code and use for catching stdout: +.. code-block:: pycon + >>> class StdoutCatcher: ... def __init__(self): ... self.data = '' @@ -219,11 +221,15 @@ How do I debug an extension? When using GDB with dynamically loaded extensions, you can't set a breakpoint in your extension until your extension is loaded. -In your ``.gdbinit`` file (or interactively), add the command:: +In your ``.gdbinit`` file (or interactively), add the command: + +.. code-block:: none br _PyImport_LoadDynamicModule -Then, when you run GDB:: +Then, when you run GDB: + +.. code-block:: shell-session $ gdb /local/bin/python gdb) run myscript.py @@ -469,6 +475,8 @@ parameter specifications for :c:func:`PyArg_ParseTuple`. You can check the size of the Unicode character a Python interpreter is using by checking the value of sys.maxunicode: +.. code-block:: pycon + >>> import sys >>> if sys.maxunicode > 65535: ... print 'UCS4 build' diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst index f88f1de..2de378d 100644 --- a/Doc/faq/general.rst +++ b/Doc/faq/general.rst @@ -252,7 +252,7 @@ outdated. Guido van Rossum and Jelke de Boer, "Interactively Testing Remote Servers Using the Python Programming Language", CWI Quarterly, Volume 4, Issue 4 - (December 1991), Amsterdam, pp 283-303. + (December 1991), Amsterdam, pp 283--303. Are there any books on Python? diff --git a/Doc/howto/cporting.rst b/Doc/howto/cporting.rst index 27e7e6f..7cacb0a 100644 --- a/Doc/howto/cporting.rst +++ b/Doc/howto/cporting.rst @@ -95,7 +95,7 @@ long/int Unification -------------------- Python 3 has only one integer type, :func:`int`. But it actually -corresponds to Python 2's :func:`long` type--the :func:`int` type +corresponds to Python 2's :func:`long` type—the :func:`int` type used in Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced by their ``PyLong_*`` equivalents. diff --git a/Doc/howto/curses.rst b/Doc/howto/curses.rst index 74f0da5..47585f6 100644 --- a/Doc/howto/curses.rst +++ b/Doc/howto/curses.rst @@ -35,7 +35,7 @@ before X is available. The curses library hides all the details of different terminals, and provides the programmer with an abstraction of a display, containing multiple non-overlapping windows. The contents of a window can be changed in various -ways-- adding text, erasing it, changing its appearance--and the curses library +ways---adding text, erasing it, changing its appearance---and the curses library will automagically figure out what control codes need to be sent to the terminal to produce the right output. diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst index 8f98c42..493f6ae 100644 --- a/Doc/howto/descriptor.rst +++ b/Doc/howto/descriptor.rst @@ -308,7 +308,7 @@ The output suggests that bound and unbound methods are two different types. While they could have been implemented that way, the actual C implementation of :c:type:`PyMethod_Type` in :source:`Objects/classobject.c` is a single object with two different representations depending on whether the :attr:`im_self` -field is set or is *NULL* (the C equivalent of *None*). +field is set or is *NULL* (the C equivalent of ``None``). Likewise, the effects of calling a method object depend on the :attr:`im_self` field. If set (meaning bound), the original function (stored in the diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index 074c396..b7f0fa5 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -998,7 +998,9 @@ script, ``chowntest.py``:: logger = logging.getLogger('mylogger') logger.debug('A debug message') -To run this, you will probably need to run as ``root``:: +To run this, you will probably need to run as ``root``: + +.. code-block:: shell-session $ sudo python3.3 chowntest.py $ cat chowntest.log @@ -1500,7 +1502,9 @@ via ``stderr`` and once via ``stdout``). After the ``with`` statement's completion, the status is as it was before so message #6 appears (like message #1) whereas message #7 doesn't (just like message #2). -If we run the resulting script, the result is as follows:: +If we run the resulting script, the result is as follows: + +.. code-block:: shell-session $ python logctx.py 1. This should appear just once on stderr. @@ -1510,12 +1514,16 @@ If we run the resulting script, the result is as follows:: 6. This should appear just once on stderr. If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the following, -which is the only message written to ``stdout``:: +which is the only message written to ``stdout``: + +.. code-block:: shell-session $ python logctx.py 2>/dev/null 5. This should appear twice - once on stderr and once on stdout. -Once again, but piping ``stdout`` to ``/dev/null``, we get:: +Once again, but piping ``stdout`` to ``/dev/null``, we get: + +.. code-block:: shell-session $ python logctx.py >/dev/null 1. This should appear just once on stderr. diff --git a/Doc/howto/logging.rst b/Doc/howto/logging.rst index 5b431f0..698007a 100644 --- a/Doc/howto/logging.rst +++ b/Doc/howto/logging.rst @@ -106,7 +106,9 @@ A very simple example is:: logging.warning('Watch out!') # will print a message to the console logging.info('I told you so') # will not print anything -If you type these lines into a script and run it, you'll see:: +If you type these lines into a script and run it, you'll see: + +.. code-block:: none WARNING:root:Watch out! @@ -230,7 +232,9 @@ append the variable data as arguments. For example:: import logging logging.warning('%s before you %s', 'Look', 'leap!') -will display:: +will display: + +.. code-block:: none WARNING:root:Look before you leap! @@ -460,7 +464,7 @@ ancestor loggers. Because of this, it is unnecessary to define and configure handlers for all the loggers an application uses. It is sufficient to configure handlers for a top-level logger and create child loggers as needed. (You can, however, turn off propagation by setting the *propagate* -attribute of a logger to *False*.) +attribute of a logger to ``False``.) .. _handler-basic: @@ -585,7 +589,9 @@ logger, a console handler, and a simple formatter using Python code:: logger.error('error message') logger.critical('critical message') -Running this module from the command line produces the following output:: +Running this module from the command line produces the following output: + +.. code-block:: shell-session $ python simple_logging_module.py 2005-03-19 15:10:26,618 - simple_example - DEBUG - debug message @@ -644,7 +650,9 @@ Here is the logging.conf file:: format=%(asctime)s - %(name)s - %(levelname)s - %(message)s datefmt= -The output is nearly identical to that of the non-config-file-based example:: +The output is nearly identical to that of the non-config-file-based example: + +.. code-block:: shell-session $ python simple_logging_config.py 2005-03-19 15:38:55,977 - simpleExample - DEBUG - debug message @@ -729,10 +737,10 @@ circumstances is dependent on the Python version. For Python 2.x, the behaviour is as follows: -* If *logging.raiseExceptions* is *False* (production mode), the event is +* If *logging.raiseExceptions* is ``False`` (production mode), the event is silently dropped. -* If *logging.raiseExceptions* is *True* (development mode), a message +* If *logging.raiseExceptions* is ``True`` (development mode), a message 'No handlers could be found for logger X.Y.Z' is printed once. .. _library-config: @@ -1041,4 +1049,3 @@ take up any memory. Useful handlers included with the logging module. :ref:`A logging cookbook ` - diff --git a/Doc/howto/regex.rst b/Doc/howto/regex.rst index 2c95fb4..0d0e9f5 100644 --- a/Doc/howto/regex.rst +++ b/Doc/howto/regex.rst @@ -79,7 +79,9 @@ of the RE by repeating them or changing their meaning. Much of this document is devoted to discussing various metacharacters and what they do. Here's a complete list of the metacharacters; their meanings will be discussed -in the rest of this HOWTO. :: +in the rest of this HOWTO. + +.. code-block:: none . ^ $ * + ? { } [ ] \ | ( ) diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst index 2b08141..69abf78 100644 --- a/Doc/howto/sockets.rst +++ b/Doc/howto/sockets.rst @@ -110,7 +110,7 @@ mainloop of the web server:: There's actually 3 general ways in which this loop could work - dispatching a thread to handle ``clientsocket``, create a new process to handle ``clientsocket``, or restructure this app to use non-blocking sockets, and -mulitplex between our "server" socket and any active ``clientsocket``\ s using +multiplex between our "server" socket and any active ``clientsocket``\ s using ``select``. More about that later. The important thing to understand now is this: this is *all* a "server" socket does. It doesn't send any data. It doesn't receive any data. It just produces "client" sockets. Each ``clientsocket`` is diff --git a/Doc/howto/sorting.rst b/Doc/howto/sorting.rst index 675ed97..6e31637 100644 --- a/Doc/howto/sorting.rst +++ b/Doc/howto/sorting.rst @@ -24,7 +24,7 @@ returns a new sorted list:: [1, 2, 3, 4, 5] You can also use the :meth:`list.sort` method of a list. It modifies the list -in-place (and returns *None* to avoid confusion). Usually it's less convenient +in-place (and returns ``None`` to avoid confusion). Usually it's less convenient than :func:`sorted` - but if you don't need the original list, it's slightly more efficient. @@ -59,28 +59,28 @@ A common pattern is to sort complex objects using some of the object's indices as keys. For example: >>> student_tuples = [ - ('john', 'A', 15), - ('jane', 'B', 12), - ('dave', 'B', 10), - ] + ... ('john', 'A', 15), + ... ('jane', 'B', 12), + ... ('dave', 'B', 10), + ... ] >>> sorted(student_tuples, key=lambda student: student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] The same technique works for objects with named attributes. For example: >>> class Student: - def __init__(self, name, grade, age): - self.name = name - self.grade = grade - self.age = age - def __repr__(self): - return repr((self.name, self.grade, self.age)) + ... def __init__(self, name, grade, age): + ... self.name = name + ... self.grade = grade + ... self.age = age + ... def __repr__(self): + ... return repr((self.name, self.grade, self.age)) >>> student_objects = [ - Student('john', 'A', 15), - Student('jane', 'B', 12), - Student('dave', 'B', 10), - ] + ... Student('john', 'A', 15), + ... Student('jane', 'B', 12), + ... Student('dave', 'B', 10), + ... ] >>> sorted(student_objects, key=lambda student: student.age) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] @@ -90,7 +90,7 @@ Operator Module Functions The key-function patterns shown above are very common, so Python provides convenience functions to make accessor functions easier and faster. The operator module has :func:`operator.itemgetter`, :func:`operator.attrgetter`, and -starting in Python 2.5 a :func:`operator.methodcaller` function. +starting in Python 2.5 an :func:`operator.methodcaller` function. Using those functions, the above examples become simpler and faster: @@ -116,6 +116,7 @@ parameters for each object being sorted. For example, the :meth:`str.count` method could be used to compute message priority by counting the number of exclamation marks in a message: + >>> from operator import methodcaller >>> messages = ['critical!!!', 'hurry!', 'standby', 'immediate!!'] >>> sorted(messages, key=methodcaller('count', '!')) ['standby', 'hurry!', 'immediate!!', 'critical!!!'] @@ -220,15 +221,15 @@ return a negative value for less-than, return zero if they are equal, or return a positive value for greater-than. For example, we can do: >>> def numeric_compare(x, y): - return x - y - >>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare) + ... return x - y + >>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare) # doctest: +SKIP [1, 2, 3, 4, 5] Or you can reverse the order of comparison with: >>> def reverse_numeric(x, y): - return y - x - >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) + ... return y - x + >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) # doctest: +SKIP [5, 4, 3, 2, 1] When porting code from Python 2.x to 3.x, the situation can arise when you have @@ -256,6 +257,12 @@ function. The following wrapper makes that easy to do:: To convert to a key function, just wrap the old comparison function: +.. testsetup:: + + from functools import cmp_to_key + +.. doctest:: + >>> sorted([5, 2, 4, 1, 3], key=cmp_to_key(reverse_numeric)) [5, 4, 3, 2, 1] diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst index afd89c7..bf7ebff 100644 --- a/Doc/howto/unicode.rst +++ b/Doc/howto/unicode.rst @@ -42,14 +42,14 @@ In the 1980s, almost all personal computers were 8-bit, meaning that bytes could hold values ranging from 0 to 255. ASCII codes only went up to 127, so some machines assigned values between 128 and 255 to accented characters. Different machines had different codes, however, which led to problems exchanging files. -Eventually various commonly used sets of values for the 128-255 range emerged. +Eventually various commonly used sets of values for the 128--255 range emerged. Some were true standards, defined by the International Standards Organization, and some were **de facto** conventions that were invented by one company or another and managed to catch on. 255 characters aren't very many. For example, you can't fit both the accented characters used in Western Europe and the Cyrillic alphabet used for Russian -into the 128-255 range because there are more than 128 such characters. +into the 128--255 range because there are more than 128 such characters. You could write files using different codes (all your Russian files in a coding system called KOI8, all your French files in a different coding system called @@ -62,7 +62,7 @@ bits means you have 2^16 = 65,536 distinct values available, making it possible to represent many different characters from many different alphabets; an initial goal was to have Unicode contain the alphabets for every single human language. It turns out that even 16 bits isn't enough to meet that goal, and the modern -Unicode specification uses a wider range of codes, 0-1,114,111 (0x10ffff in +Unicode specification uses a wider range of codes, 0--1,114,111 (0x10ffff in base-16). There's a related ISO standard, ISO 10646. Unicode and ISO 10646 were @@ -116,7 +116,7 @@ Encodings To summarize the previous section: a Unicode string is a sequence of code points, which are numbers from 0 to 0x10ffff. This sequence needs to be -represented as a set of bytes (meaning, values from 0-255) in memory. The rules +represented as a set of bytes (meaning, values from 0--255) in memory. The rules for translating a Unicode string into a sequence of bytes are called an **encoding**. @@ -163,7 +163,7 @@ simple; for each code point: case.) Latin-1, also known as ISO-8859-1, is a similar encoding. Unicode code points -0-255 are identical to the Latin-1 values, so converting to this encoding simply +0--255 are identical to the Latin-1 values, so converting to this encoding simply requires converting code points to byte values; if a code point larger than 255 is encountered, the string can't be encoded into Latin-1. @@ -619,7 +619,9 @@ default filesystem encoding is UTF-8, running the following program:: print os.listdir('.') print os.listdir(u'.') -will produce the following output:: +will produce the following output: + +.. code-block:: shell-session amk:~$ python t.py ['.svn', 'filename\xe4\x94\x80abc', ...] diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 6bb06d4..f6cba75 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -229,8 +229,8 @@ Error Codes ~~~~~~~~~~~ Because the default handlers handle redirects (codes in the 300 range), and -codes in the 100-299 range indicate success, you will usually only see error -codes in the 400-599 range. +codes in the 100--299 range indicate success, you will usually only see error +codes in the 400--599 range. ``BaseHTTPServer.BaseHTTPRequestHandler.responses`` is a useful dictionary of response codes in that shows all the response codes used by RFC 2616. The @@ -525,6 +525,11 @@ setting up a `Basic Authentication`_ handler: :: through a proxy. However, this can be enabled by extending urllib2 as shown in the recipe [#]_. +.. note:: + + ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see + the documentation on :func:`~urllib.getproxies`. + Sockets and Layers ================== @@ -562,7 +567,7 @@ This document was reviewed and revised by John Lee. .. [#] For an introduction to the CGI protocol see `Writing Web Applications in Python `_. .. [#] Google for example. -.. [#] Browser sniffing is a very bad practise for website design - building +.. [#] Browser sniffing is a very bad practice for website design - building sites using web standards is much more sensible. Unfortunately a lot of sites still send different versions to different browsers. .. [#] The user agent for MSIE 6 is diff --git a/Doc/howto/webservers.rst b/Doc/howto/webservers.rst index 5d401e8..a555083 100644 --- a/Doc/howto/webservers.rst +++ b/Doc/howto/webservers.rst @@ -364,8 +364,8 @@ user your application must create and manage such state via a session), you can just download middleware which does that, plug it in, and get on with coding the unique parts of your application. The same thing with compression -- there is existing middleware which handles compressing your HTML using gzip to save -on your server's bandwidth. Authentication is another a problem easily solved -using existing middleware. +on your server's bandwidth. Authentication is another problem that is easily +solved using existing middleware. Although WSGI may seem complex, the initial phase of learning can be very rewarding because WSGI and the associated middleware already have solutions to diff --git a/Doc/install/index.rst b/Doc/install/index.rst index 029aff5..d391fce 100644 --- a/Doc/install/index.rst +++ b/Doc/install/index.rst @@ -202,7 +202,7 @@ As implied above, the :command:`build` command is responsible for putting the files to install into a *build directory*. By default, this is :file:`build` under the distribution root; if you're excessively concerned with speed, or want to keep the source tree pristine, you can change the build directory with the -:option:`--build-base` option. For example:: +:option:`!--build-base` option. For example:: python setup.py build --build-base=/path/to/pybuild/foo-1.0 @@ -398,7 +398,7 @@ Installing a new module distribution is as simple as :: python setup.py install --home= -where you can supply any directory you like for the :option:`--home` option. On +where you can supply any directory you like for the :option:`!--home` option. On Unix, lazy typists can just type a tilde (``~``); the :command:`install` command will expand this to your home directory:: @@ -409,7 +409,7 @@ to :ref:`modify Python's search path ` or edit :mod:`sitecustomize` (see :mod:`site`) to call :func:`site.addsitedir` or edit :data:`sys.path`. -The :option:`--home` option defines the installation base directory. Files are +The :option:`!--home` option defines the installation base directory. Files are installed to the following directories under the installation base as follows: =============== =========================================================== @@ -424,7 +424,7 @@ C headers :file:`{home}/include/python/{distname}` (Mentally replace slashes with backslashes if you're on Windows.) .. versionchanged:: 2.4 - The :option:`--home` option used to be supported only on Unix. + The :option:`!--home` option used to be supported only on Unix. .. _inst-alt-install-prefix-unix: @@ -457,12 +457,12 @@ be done with :: /usr/local/bin/python setup.py install --prefix=/mnt/@server/export -In either case, the :option:`--prefix` option defines the installation base, and -the :option:`--exec-prefix` option defines the platform-specific installation +In either case, the :option:`!--prefix` option defines the installation base, and +the :option:`!--exec-prefix` option defines the platform-specific installation base, which is used for platform-specific files. (Currently, this just means non-pure module distributions, but could be expanded to C libraries, binary -executables, etc.) If :option:`--exec-prefix` is not supplied, it defaults to -:option:`--prefix`. Files are installed as follows: +executables, etc.) If :option:`!--exec-prefix` is not supplied, it defaults to +:option:`!--prefix`. Files are installed as follows: ================= ========================================================== Type of file Installation directory @@ -474,13 +474,13 @@ data :file:`{prefix}` C headers :file:`{prefix}/include/python{X.Y}/{distname}` ================= ========================================================== -There is no requirement that :option:`--prefix` or :option:`--exec-prefix` +There is no requirement that :option:`!--prefix` or :option:`!--exec-prefix` actually point to an alternate Python installation; if the directories listed above do not already exist, they are created at installation time. Incidentally, the real reason the prefix scheme is important is simply that a -standard Unix installation uses the prefix scheme, but with :option:`--prefix` -and :option:`--exec-prefix` supplied by Python itself as ``sys.prefix`` and +standard Unix installation uses the prefix scheme, but with :option:`!--prefix` +and :option:`!--exec-prefix` supplied by Python itself as ``sys.prefix`` and ``sys.exec_prefix``. Thus, you might think you'll never use the prefix scheme, but every time you run ``python setup.py install`` without any other options, you're using it. @@ -493,7 +493,7 @@ responsibility to ensure that the interpreter used to run extensions installed in this way is compatible with the interpreter used to build them. The best way to do this is to ensure that the two interpreters are the same version of Python (possibly different builds, or possibly copies of the same build). (Of course, -if your :option:`--prefix` and :option:`--exec-prefix` don't even point to an +if your :option:`!--prefix` and :option:`!--exec-prefix` don't even point to an alternate Python installation, this is immaterial.) @@ -503,7 +503,7 @@ Alternate installation: Windows (the prefix scheme) --------------------------------------------------- Windows has no concept of a user's home directory, and since the standard Python -installation under Windows is simpler than under Unix, the :option:`--prefix` +installation under Windows is simpler than under Unix, the :option:`!--prefix` option has traditionally been used to install additional packages in separate locations on Windows. :: @@ -511,8 +511,8 @@ locations on Windows. :: to install modules to the :file:`\\Temp\\Python` directory on the current drive. -The installation base is defined by the :option:`--prefix` option; the -:option:`--exec-prefix` option is not supported under Windows, which means that +The installation base is defined by the :option:`!--prefix` option; the +:option:`!--exec-prefix` option is not supported under Windows, which means that pure Python modules and extension modules are installed into the same location. Files are installed as follows: @@ -564,7 +564,7 @@ difference between Python and extension modules.) For example, say you're installing a module distribution to your home directory under Unix---but you want scripts to go in :file:`~/scripts` rather than :file:`~/bin`. As you might expect, you can override this directory with the -:option:`--install-scripts` option; in this case, it makes most sense to supply +:option:`!--install-scripts` option; in this case, it makes most sense to supply a relative path, which will be interpreted relative to the installation base directory (your home directory, in this case):: @@ -574,7 +574,7 @@ Another Unix example: suppose your Python installation was built and installed with a prefix of :file:`/usr/local/python`, so under a standard installation scripts will wind up in :file:`/usr/local/python/bin`. If you want them in :file:`/usr/local/bin` instead, you would supply this absolute directory for the -:option:`--install-scripts` option:: +:option:`!--install-scripts` option:: python setup.py install --install-scripts=/usr/local/bin @@ -929,10 +929,10 @@ Let's examine each of the fields in turn. to be in Objective C. * *cpparg* is an argument for the C preprocessor, and is anything starting with - :option:`!-I`, :option:`-D`, :option:`!-U` or :option:`-C`. + :option:`!-I`, :option:`!-D`, :option:`!-U` or :option:`!-C`. -* *library* is anything ending in :file:`.a` or beginning with :option:`-l` or - :option:`-L`. +* *library* is anything ending in :file:`.a` or beginning with :option:`!-l` or + :option:`!-L`. If a particular platform requires a special library on your platform, you can add it by editing the :file:`Setup` file and running ``python setup.py build``. @@ -941,20 +941,20 @@ For example, if the module defined by the line :: foo foomodule.c must be linked with the math library :file:`libm.a` on your platform, simply add -:option:`-lm` to the line:: +:option:`!-lm` to the line:: foo foomodule.c -lm Arbitrary switches intended for the compiler or the linker can be supplied with -the :option:`-Xcompiler` *arg* and :option:`-Xlinker` *arg* options:: +the :option:`!-Xcompiler` *arg* and :option:`!-Xlinker` *arg* options:: foo foomodule.c -Xcompiler -o32 -Xlinker -shared -lm -The next option after :option:`-Xcompiler` and :option:`-Xlinker` will be +The next option after :option:`!-Xcompiler` and :option:`!-Xlinker` will be appended to the proper command line, so in the above example the compiler will -be passed the :option:`-o32` option, and the linker will be passed -:option:`-shared`. If a compiler option requires an argument, you'll have to -supply multiple :option:`-Xcompiler` options; for example, to pass ``-x c++`` +be passed the :option:`!-o32` option, and the linker will be passed +:option:`!-shared`. If a compiler option requires an argument, you'll have to +supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x c++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -Xcompiler c++``. Compiler flags can also be supplied through setting the :envvar:`CFLAGS` diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index 9f59dda..0632f3c 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -33,14 +33,18 @@ Here is a sample Python 2.x source file, :file:`example.py`:: name = raw_input() greet(name) -It can be converted to Python 3.x code via 2to3 on the command line:: +It can be converted to Python 3.x code via 2to3 on the command line: + +.. code-block:: shell-session $ 2to3 example.py A diff against the original source file is printed. 2to3 can also write the needed modifications right back to the source file. (A backup of the original -file is made unless :option:`-n` is also given.) Writing the changes back is -enabled with the :option:`-w` flag:: +file is made unless :option:`!-n` is also given.) Writing the changes back is +enabled with the :option:`!-w` flag: + +.. code-block:: shell-session $ 2to3 -w example.py @@ -55,19 +59,25 @@ After transformation, :file:`example.py` looks like this:: Comments and exact indentation are preserved throughout the translation process. By default, 2to3 runs a set of :ref:`predefined fixers <2to3-fixers>`. The -:option:`-l` flag lists all available fixers. An explicit set of fixers to run -can be given with :option:`-f`. Likewise the :option:`!-x` explicitly disables a -fixer. The following example runs only the ``imports`` and ``has_key`` fixers:: +:option:`!-l` flag lists all available fixers. An explicit set of fixers to run +can be given with :option:`!-f`. Likewise the :option:`!-x` explicitly disables a +fixer. The following example runs only the ``imports`` and ``has_key`` fixers: + +.. code-block:: shell-session $ 2to3 -f imports -f has_key example.py -This command runs every fixer except the ``apply`` fixer:: +This command runs every fixer except the ``apply`` fixer: + +.. code-block:: shell-session $ 2to3 -x apply example.py Some fixers are *explicit*, meaning they aren't run by default and must be listed on the command line to be run. Here, in addition to the default fixers, -the ``idioms`` fixer is run:: +the ``idioms`` fixer is run: + +.. code-block:: shell-session $ 2to3 -f all -f idioms example.py @@ -90,39 +100,43 @@ Since some print statements can be parsed as function calls or statements, 2to3 cannot always read files containing the print function. When 2to3 detects the presence of the ``from __future__ import print_function`` compiler directive, it modifies its internal grammar to interpret :func:`print` as a function. This -change can also be enabled manually with the :option:`-p` flag. Use -:option:`-p` to run fixers on code that already has had its print statements +change can also be enabled manually with the :option:`!-p` flag. Use +:option:`!-p` to run fixers on code that already has had its print statements converted. -The :option:`-o` or :option:`--output-dir` option allows specification of an +The :option:`!-o` or :option:`!--output-dir` option allows specification of an alternate directory for processed output files to be written to. The -:option:`-n` flag is required when using this as backup files do not make sense +:option:`!-n` flag is required when using this as backup files do not make sense when not overwriting the input files. .. versionadded:: 2.7.3 - The :option:`-o` option was added. + The :option:`!-o` option was added. -The :option:`!-W` or :option:`--write-unchanged-files` flag tells 2to3 to always +The :option:`!-W` or :option:`!--write-unchanged-files` flag tells 2to3 to always write output files even if no changes were required to the file. This is most -useful with :option:`-o` so that an entire Python source tree is copied with +useful with :option:`!-o` so that an entire Python source tree is copied with translation from one directory to another. -This option implies the :option:`-w` flag as it would not make sense otherwise. +This option implies the :option:`!-w` flag as it would not make sense otherwise. .. versionadded:: 2.7.3 The :option:`!-W` flag was added. -The :option:`--add-suffix` option specifies a string to append to all output -filenames. The :option:`-n` flag is required when specifying this as backups -are not necessary when writing to different filenames. Example:: +The :option:`!--add-suffix` option specifies a string to append to all output +filenames. The :option:`!-n` flag is required when specifying this as backups +are not necessary when writing to different filenames. Example: + +.. code-block:: shell-session $ 2to3 -n -W --add-suffix=3 example.py Will cause a converted file named ``example.py3`` to be written. .. versionadded:: 2.7.3 - The :option:`--add-suffix` option was added. + The :option:`!--add-suffix` option was added. + +To translate an entire project from one directory tree to another use: -To translate an entire project from one directory tree to another use:: +.. code-block:: shell-session $ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode diff --git a/Doc/library/__builtin__.rst b/Doc/library/__builtin__.rst index 673d74f..cb8b53a 100644 --- a/Doc/library/__builtin__.rst +++ b/Doc/library/__builtin__.rst @@ -39,6 +39,6 @@ that wants to implement an :func:`open` function that wraps the built-in Most modules have the name ``__builtins__`` (note the ``'s'``) made available as part of their globals. The value of ``__builtins__`` is normally either - this module or the value of this modules's :attr:`__dict__` attribute. Since + this module or the value of this modules's :attr:`~object.__dict__` attribute. Since this is an implementation detail, it may not be used by alternate implementations of Python. diff --git a/Doc/library/aetypes.rst b/Doc/library/aetypes.rst index 1e1067f..90cc4ae 100644 --- a/Doc/library/aetypes.rst +++ b/Doc/library/aetypes.rst @@ -19,7 +19,7 @@ etc. For OSA types that have no direct Python counterpart this module declares classes. Packing and unpacking instances of these classes is handled automatically by :mod:`aepack`. -An object specifier is essentially an address of an object implemented in a +An object specifier is essentially an address of an object implemented in an Apple Event server. An Apple Event specifier is used as the direct object for an Apple Event or as the argument of an optional parameter. The :mod:`aetypes` module contains the base classes for OSA classes and properties, which are used diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 1dfebc2..4ce6835 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -44,7 +44,9 @@ produces either the sum or the max:: print args.accumulate(args.integers) Assuming the Python code above is saved into a file called ``prog.py``, it can -be run at the command line and provides useful help messages:: +be run at the command line and provides useful help messages: + +.. code-block:: shell-session $ python prog.py -h usage: prog.py [-h] [--sum] N [N ...] @@ -59,7 +61,9 @@ be run at the command line and provides useful help messages:: --sum sum the integers (default: find the max) When run with the appropriate arguments, it prints either the sum or the max of -the command-line integers:: +the command-line integers: + +.. code-block:: shell-session $ python prog.py 1 2 3 4 4 @@ -67,7 +71,9 @@ the command-line integers:: $ python prog.py 1 2 3 4 --sum 10 -If invalid arguments are passed in, it will issue an error:: +If invalid arguments are passed in, it will issue an error: + +.. code-block:: shell-session $ python prog.py a b c usage: prog.py [-h] [--sum] N [N ...] @@ -175,7 +181,7 @@ The following sections describe how each of these are used. prog ^^^^ -By default, :class:`ArgumentParser` objects uses ``sys.argv[0]`` to determine +By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine how to display the name of the program in help messages. This default is almost always desirable because it will make the help messages match how the program was invoked on the command line. For example, consider a file named @@ -187,7 +193,9 @@ invoked on the command line. For example, consider a file named args = parser.parse_args() The help for this program will display ``myprogram.py`` as the program name -(regardless of where the program was invoked from):: +(regardless of where the program was invoked from): + +.. code-block:: shell-session $ python myprogram.py --help usage: myprogram.py [-h] [--foo FOO] @@ -504,7 +512,7 @@ conflict_handler ^^^^^^^^^^^^^^^^ :class:`ArgumentParser` objects do not allow two actions with the same option -string. By default, :class:`ArgumentParser` objects raises an exception if an +string. By default, :class:`ArgumentParser` objects raise an exception if an attempt is made to create an argument with an option string that is already in use:: @@ -550,7 +558,9 @@ the parser's help message. For example, consider a file named args = parser.parse_args() If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser -help will be printed:: +help will be printed: + +.. code-block:: shell-session $ python myprogram.py --help usage: myprogram.py [-h] [--foo FOO] @@ -685,7 +695,7 @@ how the command-line arguments should be handled. The supplied actions are: * ``'store_true'`` and ``'store_false'`` - These are special cases of ``'store_const'`` using for storing the values ``True`` and ``False`` - respectively. In addition, they create default values of *False* and *True* + respectively. In addition, they create default values of ``False`` and ``True`` respectively. For example:: >>> parser = argparse.ArgumentParser() @@ -1490,7 +1500,7 @@ Sub-commands positional arguments * description - description for the sub-parser group in help output, by - default None + default ``None`` * prog - usage information that will be displayed with sub-command help, by default the name of the program and any positional arguments before the @@ -1503,12 +1513,12 @@ Sub-commands encountered at the command line * dest_ - name of the attribute under which sub-command name will be - stored; by default None and no value is stored + stored; by default ``None`` and no value is stored - * help_ - help for sub-parser group in help output, by default None + * help_ - help for sub-parser group in help output, by default ``None`` * metavar_ - string presenting available sub-commands in help; by default it - is None and presents sub-commands in form {cmd1, cmd2, ..} + is ``None`` and presents sub-commands in form {cmd1, cmd2, ..} Some example usage:: diff --git a/Doc/library/array.rst b/Doc/library/array.rst index 5b9f345..6a8dbde 100644 --- a/Doc/library/array.rst +++ b/Doc/library/array.rst @@ -75,7 +75,7 @@ The module defines the following type: .. data:: ArrayType - Obsolete alias for :class:`array`. + Obsolete alias for :class:`~array.array`. Array objects support the ordinary sequence operations of indexing, slicing, concatenation, and multiplication. When using slice assignment, the assigned @@ -249,7 +249,7 @@ When an array object is printed or converted to a string, it is represented as empty, otherwise it is a string if the *typecode* is ``'c'``, otherwise it is a list of numbers. The string is guaranteed to be able to be converted back to an array with the same type and value using :func:`eval`, so long as the -:func:`array` function has been imported using ``from array import array``. +:class:`~array.array` class has been imported using ``from array import array``. Examples:: array('l') diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index cf0c32e..6d5855b 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -113,6 +113,7 @@ Subversion revision number of the file shown below. The abstract grammar is currently defined as follows: .. literalinclude:: ../../Parser/Python.asdl + :language: none :mod:`ast` Helpers diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst index 31cd497..282a237 100644 --- a/Doc/library/asyncore.rst +++ b/Doc/library/asyncore.rst @@ -51,7 +51,7 @@ any that have been added to the map during asynchronous service) is closed. Enter a polling loop that terminates after count passes or all open channels have been closed. All arguments are optional. The *count* - parameter defaults to None, resulting in the loop terminating only when all + parameter defaults to ``None``, resulting in the loop terminating only when all channels have been closed. The *timeout* argument sets the timeout parameter for the appropriate :func:`~select.select` or :func:`~select.poll` call, measured in seconds; the default is 30 seconds. The *use_poll* diff --git a/Doc/library/bdb.rst b/Doc/library/bdb.rst index 6980353..d9fee21 100644 --- a/Doc/library/bdb.rst +++ b/Doc/library/bdb.rst @@ -233,7 +233,7 @@ The :mod:`bdb` module also defines two classes: .. method:: set_continue() Stop only at breakpoints or when finished. If there are no breakpoints, - set the system trace function to None. + set the system trace function to ``None``. .. method:: set_quit() diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst index a04505f..9e02ad3 100644 --- a/Doc/library/calendar.rst +++ b/Doc/library/calendar.rst @@ -48,7 +48,7 @@ it's the base calendar for all computations. .. method:: itermonthdates(year, month) - Return an iterator for the month *month* (1-12) in the year *year*. This + Return an iterator for the month *month* (1--12) in the year *year*. This iterator will return all days (as :class:`datetime.date` objects) for the month and all days before the start of the month or after the end of the month that are required to get a complete week. diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst index da15e00..1bfdb39 100644 --- a/Doc/library/cgi.rst +++ b/Doc/library/cgi.rst @@ -450,7 +450,9 @@ installing a copy of this module file (:file:`cgi.py`) as a CGI script. When invoked as a script, the file will dump its environment and the contents of the form in HTML form. Give it the right mode etc, and send it a request. If it's installed in the standard :file:`cgi-bin` directory, it should be possible to -send it a request by entering a URL into your browser of the form:: +send it a request by entering a URL into your browser of the form: + +.. code-block:: none http://yourhostname/cgi-bin/cgi.py?name=Joe+Blow&addr=At+Home @@ -542,4 +544,3 @@ Common problems and solutions field values should be supplied in, but knowing whether a request was received from a conforming browser, or even from a browser at all, is tedious and error-prone. - diff --git a/Doc/library/chunk.rst b/Doc/library/chunk.rst index 04c7e27..d31fa0a 100644 --- a/Doc/library/chunk.rst +++ b/Doc/library/chunk.rst @@ -48,7 +48,7 @@ Usually an IFF-type file consists of one or more chunks. The proposed usage of the :class:`Chunk` class defined here is to instantiate an instance at the start of each chunk and read from the instance until it reaches the end, after which a new instance can be instantiated. At the end of the file, creating a new -instance will fail with a :exc:`EOFError` exception. +instance will fail with an :exc:`EOFError` exception. .. class:: Chunk(file[, align, bigendian, inclheader]) diff --git a/Doc/library/cmath.rst b/Doc/library/cmath.rst index 0a05686..b80eaba 100644 --- a/Doc/library/cmath.rst +++ b/Doc/library/cmath.rst @@ -207,7 +207,7 @@ Classification functions .. function:: isinf(x) - Return *True* if the real or the imaginary part of x is positive + Return ``True`` if the real or the imaginary part of x is positive or negative infinity. .. versionadded:: 2.6 @@ -215,7 +215,7 @@ Classification functions .. function:: isnan(x) - Return *True* if the real or imaginary part of x is not a number (NaN). + Return ``True`` if the real or imaginary part of x is not a number (NaN). .. versionadded:: 2.6 @@ -255,6 +255,6 @@ cuts for numerical purposes, a good reference should be the following: Kahan, W: Branch cuts for complex elementary functions; or, Much ado about nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the art - in numerical analysis. Clarendon Press (1987) pp165-211. + in numerical analysis. Clarendon Press (1987) pp165--211. diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 9d52fe1..4fd0951 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -796,8 +796,8 @@ and how these arrays are stored as bytes become an issue. Transforming a unicode object into a sequence of bytes is called encoding and recreating the unicode object from the sequence of bytes is known as decoding. There are many different methods for how this transformation can be done (these methods are -also called encodings). The simplest method is to map the code points 0-255 to -the bytes ``0x0``-``0xff``. This means that a unicode object that contains +also called encodings). The simplest method is to map the code points 0--255 to +the bytes ``0x0``--``0xff``. This means that a unicode object that contains code points above ``U+00FF`` can't be encoded with this method (which is called ``'latin-1'`` or ``'iso-8859-1'``). :func:`unicode.encode` will raise a :exc:`UnicodeEncodeError` that looks like this: ``UnicodeEncodeError: 'latin-1' @@ -806,7 +806,7 @@ range(256)``. There's another group of encodings (the so called charmap encodings) that choose a different subset of all unicode code points and how these code points are -mapped to the bytes ``0x0``-``0xff``. To see how this is done simply open +mapped to the bytes ``0x0``--``0xff``. To see how this is done simply open e.g. :file:`encodings/cp1252.py` (which is an encoding that is used primarily on Windows). There's a string constant with 256 characters that shows you which character is mapped to which byte value. diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 4231e8c..3c8c05f 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -237,7 +237,7 @@ counts, but the output will exclude results with counts of zero or less. .. versionadded:: 2.4 - If *maxlen* is not specified or is *None*, deques may grow to an + If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary length. Otherwise, the deque is bounded to the specified maximum length. Once a bounded length deque is full, when new items are added, a corresponding number of items are discarded from the opposite end. Bounded @@ -321,7 +321,7 @@ counts, but the output will exclude results with counts of zero or less. .. attribute:: maxlen - Maximum size of a deque or *None* if unbounded. + Maximum size of a deque or ``None`` if unbounded. .. versionadded:: 2.7 @@ -608,7 +608,7 @@ Example: _fields = ('x', 'y') def __new__(_cls, x, y): - 'Create a new instance of Point(x, y)' + 'Create new instance of Point(x, y)' return _tuple.__new__(_cls, (x, y)) @classmethod @@ -635,7 +635,7 @@ Example: return result def __getnewargs__(self): - 'Return self as a plain tuple. Used by copy and pickle.' + 'Return self as a plain tuple. Used by copy and pickle.' return tuple(self) __dict__ = _property(_asdict) @@ -648,6 +648,7 @@ Example: y = _property(_itemgetter(1), doc='Alias for field number 1') + >>> p = Point(11, y=22) # instantiate with positional or keyword arguments >>> p[0] + p[1] # indexable like the plain tuple (11, 22) @@ -712,7 +713,7 @@ field names, the method and attribute names start with an underscore. Point(x=33, y=22) >>> for partnum, record in inventory.items(): - inventory[partnum] = record._replace(price=newprices[partnum], timestamp=time.now()) + ... inventory[partnum] = record._replace(price=newprices[partnum], timestamp=time.now()) .. attribute:: somenamedtuple._fields @@ -747,15 +748,15 @@ functionality with a subclass. Here is how to add a calculated field and a fixed-width print format: >>> class Point(namedtuple('Point', 'x y')): - __slots__ = () - @property - def hypot(self): - return (self.x ** 2 + self.y ** 2) ** 0.5 - def __str__(self): - return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) - + ... __slots__ = () + ... @property + ... def hypot(self): + ... return (self.x ** 2 + self.y ** 2) ** 0.5 + ... def __str__(self): + ... return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) + ... >>> for p in Point(3, 4), Point(14, 5/7.): - print p + ... print p Point: x= 3.000 y= 4.000 hypot= 5.000 Point: x=14.000 y= 0.714 hypot=14.018 @@ -781,7 +782,7 @@ and more efficient to use a simple class declaration: >>> Status.open, Status.pending, Status.closed (0, 1, 2) >>> class Status: - open, pending, closed = range(3) + ... open, pending, closed = range(3) .. seealso:: diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index 16bd07a..b83397c 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -21,7 +21,7 @@ single: ini file single: Windows ini file -This module defines the class :class:`ConfigParser`. The :class:`ConfigParser` +This module defines the class :class:`~ConfigParser.ConfigParser`. The :class:`~ConfigParser.ConfigParser` class implements a basic configuration file parser language which provides a structure similar to what you would find on Microsoft Windows INI files. You can use this to write Python programs which can be customized by end users @@ -74,12 +74,12 @@ For example:: would resolve the ``%(dir)s`` to the value of ``dir`` (``frob`` in this case). All reference expansions are done on demand. -Default values can be specified by passing them into the :class:`ConfigParser` +Default values can be specified by passing them into the :class:`~ConfigParser.ConfigParser` constructor as a dictionary. Additional defaults may be passed into the :meth:`get` method which will override all others. Sections are normally stored in a built-in dictionary. An alternative dictionary -type can be passed to the :class:`ConfigParser` constructor. For example, if a +type can be passed to the :class:`~ConfigParser.ConfigParser` constructor. For example, if a dictionary type is passed that sorts its keys, the sections will be sorted on write-back, as will be the keys within each section. @@ -135,7 +135,7 @@ write-back, as will be the keys within each section. .. class:: SafeConfigParser([defaults[, dict_type[, allow_no_value]]]) - Derived class of :class:`ConfigParser` that implements a more-sane variant of + Derived class of :class:`~ConfigParser.ConfigParser` that implements a more-sane variant of the magical interpolation feature. This implementation is more predictable as well. New applications should prefer this version if they don't need to be compatible with older versions of Python. @@ -215,7 +215,7 @@ write-back, as will be the keys within each section. .. data:: MAX_INTERPOLATION_DEPTH The maximum depth for recursive interpolation for :meth:`get` when the *raw* - parameter is false. This is relevant only for the :class:`ConfigParser` class. + parameter is false. This is relevant only for the :class:`~ConfigParser.ConfigParser` class. .. seealso:: @@ -279,7 +279,7 @@ RawConfigParser Objects list of potential configuration file locations (for example, the current directory, the user's home directory, and some system-wide directory), and all existing configuration files in the list will be read. If none of the named - files exist, the :class:`ConfigParser` instance will contain an empty dataset. + files exist, the :class:`~ConfigParser.ConfigParser` instance will contain an empty dataset. An application which requires initial values to be loaded from a file should load the required file or files using :meth:`readfp` before calling :meth:`read` for any optional files:: @@ -338,7 +338,7 @@ RawConfigParser Objects If the given section exists, set the given option to the specified value; otherwise raise :exc:`NoSectionError`. While it is possible to use - :class:`RawConfigParser` (or :class:`ConfigParser` with *raw* parameters set to + :class:`RawConfigParser` (or :class:`~ConfigParser.ConfigParser` with *raw* parameters set to true) for *internal* storage of non-string values, full functionality (including interpolation and output to files) can only be achieved using string values. @@ -394,7 +394,7 @@ RawConfigParser Objects ConfigParser Objects -------------------- -The :class:`ConfigParser` class extends some methods of the +The :class:`~ConfigParser.ConfigParser` class extends some methods of the :class:`RawConfigParser` interface, adding some optional arguments. @@ -422,7 +422,7 @@ SafeConfigParser Objects ------------------------ The :class:`SafeConfigParser` class implements the same extended interface as -:class:`ConfigParser`, with the following addition: +:class:`~ConfigParser.ConfigParser`, with the following addition: .. method:: SafeConfigParser.set(section, option, value) @@ -480,7 +480,7 @@ An example of reading the configuration file again:: if config.getboolean('Section1', 'a_bool'): print config.get('Section1', 'foo') -To get interpolation, you will need to use a :class:`ConfigParser` or +To get interpolation, you will need to use a :class:`~ConfigParser.ConfigParser` or :class:`SafeConfigParser`:: import ConfigParser diff --git a/Doc/library/cookie.rst b/Doc/library/cookie.rst index 3e9ea5a..888094d 100644 --- a/Doc/library/cookie.rst +++ b/Doc/library/cookie.rst @@ -82,11 +82,11 @@ in Cookie name (as :attr:`~Morsel.key`). The same security warning from :class:`SerialCookie` applies here. A further security note is warranted. For backwards compatibility, the -:mod:`Cookie` module exports a class named :class:`Cookie` which is just an -alias for :class:`SmartCookie`. This is probably a mistake and will likely be -removed in a future version. You should not use the :class:`Cookie` class in -your applications, for the same reason why you should not use the -:class:`SerialCookie` class. +:mod:`Cookie` module exports a class named :class:`~Cookie.Cookie` which is +just an alias for :class:`SmartCookie`. This is probably a mistake and will +likely be removed in a future version. You should not use the +:class:`~Cookie.Cookie` class in your applications, for the same reason why +you should not use the :class:`SerialCookie` class. .. seealso:: diff --git a/Doc/library/cookielib.rst b/Doc/library/cookielib.rst index ceccc13..fb4741f 100644 --- a/Doc/library/cookielib.rst +++ b/Doc/library/cookielib.rst @@ -100,7 +100,7 @@ The following classes are provided: 1) are treated according to the RFC 2965 rules. However, if RFC 2965 handling is turned off or :attr:`rfc2109_as_netscape` is ``True``, RFC 2109 cookies are 'downgraded' by the :class:`CookieJar` instance to Netscape cookies, by - setting the :attr:`version` attribute of the :class:`Cookie` instance to 0. + setting the :attr:`version` attribute of the :class:`~cookielib.Cookie` instance to 0. :class:`DefaultCookiePolicy` also provides some parameters to allow some fine-tuning of policy. @@ -108,7 +108,7 @@ The following classes are provided: .. class:: Cookie() This class represents Netscape, RFC 2109 and RFC 2965 cookies. It is not - expected that users of :mod:`cookielib` construct their own :class:`Cookie` + expected that users of :mod:`cookielib` construct their own :class:`~cookielib.Cookie` instances. Instead, if necessary, call :meth:`make_cookies` on a :class:`CookieJar` instance. @@ -146,7 +146,7 @@ CookieJar and FileCookieJar Objects ----------------------------------- :class:`CookieJar` objects support the :term:`iterator` protocol for iterating over -contained :class:`Cookie` objects. +contained :class:`~cookielib.Cookie` objects. :class:`CookieJar` has the following methods: @@ -194,7 +194,7 @@ contained :class:`Cookie` objects. .. method:: CookieJar.make_cookies(response, request) - Return sequence of :class:`Cookie` objects extracted from *response* object. + Return sequence of :class:`~cookielib.Cookie` objects extracted from *response* object. See the documentation for :meth:`extract_cookies` for the interfaces required of the *response* and *request* arguments. @@ -202,12 +202,12 @@ contained :class:`Cookie` objects. .. method:: CookieJar.set_cookie_if_ok(cookie, request) - Set a :class:`Cookie` if policy says it's OK to do so. + Set a :class:`~cookielib.Cookie` if policy says it's OK to do so. .. method:: CookieJar.set_cookie(cookie) - Set a :class:`Cookie`, without checking with policy to see whether or not it + Set a :class:`~cookielib.Cookie`, without checking with policy to see whether or not it should be set. @@ -383,7 +383,7 @@ methods: :meth:`path_return_ok` is called for the cookie path. Otherwise, :meth:`path_return_ok` and :meth:`return_ok` are never called for that cookie domain. If :meth:`path_return_ok` returns true, :meth:`return_ok` is called - with the :class:`Cookie` object itself for a full check. Otherwise, + with the :class:`~cookielib.Cookie` object itself for a full check. Otherwise, :meth:`return_ok` is never called for that cookie path. Note that :meth:`domain_return_ok` is called for every *cookie* domain, not just @@ -516,7 +516,7 @@ all be assigned to. If true, request that the :class:`CookieJar` instance downgrade RFC 2109 cookies (ie. cookies received in a :mailheader:`Set-Cookie` header with a version cookie-attribute of 1) to Netscape cookies by setting the version attribute of - the :class:`Cookie` instance to 0. The default value is :const:`None`, in which + the :class:`~cookielib.Cookie` instance to 0. The default value is :const:`None`, in which case RFC 2109 cookies are downgraded if and only if RFC 2965 handling is turned off. Therefore, RFC 2109 cookies are downgraded by default. @@ -608,7 +608,7 @@ combinations of the above flags: Cookie Objects -------------- -:class:`Cookie` instances have Python attributes roughly corresponding to the +:class:`~cookielib.Cookie` instances have Python attributes roughly corresponding to the standard cookie-attributes specified in the various cookie standards. The correspondence is not one-to-one, because there are complicated rules for assigning default values, because the ``max-age`` and ``expires`` @@ -724,7 +724,7 @@ accessed using the following methods: Set the value of the named cookie-attribute. -The :class:`Cookie` class also defines the following method: +The :class:`~cookielib.Cookie` class also defines the following method: .. method:: Cookie.is_expired([now=None]) diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst index 0f23a95..a5378e5 100644 --- a/Doc/library/copy.rst +++ b/Doc/library/copy.rst @@ -44,7 +44,7 @@ copy operations: reference to themselves) may cause a recursive loop. * Because deep copy copies *everything* it may copy too much, e.g., - administrative data structures that should be shared even between copies. + even administrative data structures that should be shared even between copies. The :func:`deepcopy` function avoids these problems by: diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index e30b006..052cdee 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -1302,7 +1302,7 @@ library to load. Try to find a library and return a pathname. *name* is the library name without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version number (this - is the form used for the posix linker option :option:`-l`). If no library can + is the form used for the posix linker option :option:`!-l`). If no library can be found, returns ``None``. The exact functionality is system dependent. @@ -1400,10 +1400,11 @@ function is used to load the library into the process, and to get a handle to it. The *mode* parameter can be used to specify how the library is loaded. For -details, consult the :manpage:`dlopen(3)` manpage, on Windows, *mode* is -ignored. +details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is +ignored. On posix systems, RTLD_NOW is always added, and is not +configurable. -The *use_errno* parameter, when set to True, enables a ctypes mechanism that +The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`ctypes` maintains a thread-local copy of the systems :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the @@ -1414,7 +1415,7 @@ The function :func:`ctypes.get_errno` returns the value of the ctypes private copy, and the function :func:`ctypes.set_errno` changes the ctypes private copy to a new value and returns the former value. -The *use_last_error* parameter, when set to True, enables the same mechanism for +The *use_last_error* parameter, when set to true, enables the same mechanism for the Windows error code which is managed by the :func:`GetLastError` and :func:`SetLastError` Windows API functions; :func:`ctypes.get_last_error` and :func:`ctypes.set_last_error` are used to request and change the ctypes private @@ -1630,7 +1631,7 @@ type and the argument types of the function. The returned function prototype creates functions that use the standard C calling convention. The function will release the GIL during the call. If - *use_errno* is set to True, the ctypes private copy of the system + *use_errno* is set to true, the ctypes private copy of the system :data:`errno` variable is exchanged with the real :data:`errno` value before and after the call; *use_last_error* does the same for the Windows error code. @@ -1896,7 +1897,7 @@ Utility functions Try to find a library and return a pathname. *name* is the library name without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version - number (this is the form used for the posix linker option :option:`-l`). If + number (this is the form used for the posix linker option :option:`!-l`). If no library can be found, returns ``None``. The exact functionality is system dependent. diff --git a/Doc/library/curses.ascii.rst b/Doc/library/curses.ascii.rst index 0a45c2a..ec20f54 100644 --- a/Doc/library/curses.ascii.rst +++ b/Doc/library/curses.ascii.rst @@ -116,12 +116,12 @@ C library: .. function:: isblank(c) - Checks for an ASCII whitespace character. + Checks for an ASCII whitespace character; space or horizontal tab. .. function:: iscntrl(c) - Checks for an ASCII control character (in the range 0x00 to 0x1f). + Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f). .. function:: isdigit(c) @@ -214,7 +214,7 @@ it returns a string. Return a string representation of the ASCII character *c*. If *c* is printable, this string is the character itself. If the character is a control character - (0x00-0x1f) the string consists of a caret (``'^'``) followed by the + (0x00--0x1f) the string consists of a caret (``'^'``) followed by the corresponding uppercase letter. If the character is an ASCII delete (0x7f) the string is ``'^?'``. If the character has its meta bit (0x80) set, the meta bit is stripped, the preceding rules applied, and ``'!'`` prepended to the result. diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst index 43941d9..c70afe3 100644 --- a/Doc/library/curses.rst +++ b/Doc/library/curses.rst @@ -316,7 +316,7 @@ The module :mod:`curses` defines the following functions: Return the name of the key numbered *k*. The name of a key generating printable ASCII character is the key's character. The name of a control-key combination is a two-character string consisting of a caret followed by the corresponding - printable ASCII character. The name of an alt-key combination (128-255) is a + printable ASCII character. The name of an alt-key combination (128--255) is a string consisting of the prefix 'M-' followed by the name of the corresponding ASCII character. diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst index 76c4f57..5c4ff38 100644 --- a/Doc/library/datetime.rst +++ b/Doc/library/datetime.rst @@ -1170,8 +1170,8 @@ Using datetime with tzinfo: .. _datetime-time: -:class:`time` Objects ---------------------- +:class:`.time` Objects +---------------------- A time object represents a (local) time of day, independent of any particular day, and subject to adjustment via a :class:`tzinfo` object. diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index 8d457e1..d164089 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -883,11 +883,13 @@ Decimal objects .. method:: to_eng_string([context]) - Convert to an engineering-type string. + Convert to a string, using engineering notation if an exponent is needed. - Engineering notation has an exponent which is a multiple of 3, so there - are up to 3 digits left of the decimal place. For example, converts - ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``. + Engineering notation has an exponent which is a multiple of 3. This + can leave up to 3 digits to the left of the decimal place and may + require the addition of either one or two trailing zeros. + + For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``. .. method:: to_integral([rounding[, context]]) @@ -1453,7 +1455,11 @@ In addition to the three supplied contexts, new contexts can be created with the .. method:: to_eng_string(x) - Converts a number to a string, using scientific notation. + Convert to a string, using engineering notation if an exponent is needed. + + Engineering notation has an exponent which is a multiple of 3. This + can leave up to 3 digits to the left of the decimal place and may + require the addition of either one or two trailing zeros. .. method:: to_integral_exact(x) diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index ead6b7a..c6bf3ef 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -276,7 +276,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module. generating the delta lines) in unified diff format. Unified diffs are a compact way of showing just the lines that have changed plus - a few lines of context. The changes are shown in a inline style (instead of + a few lines of context. The changes are shown in an inline style (instead of separate before/after blocks). The number of context lines is set by *n* which defaults to three. diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst index 4558123..4506805 100644 --- a/Doc/library/doctest.rst +++ b/Doc/library/doctest.rst @@ -91,14 +91,18 @@ Here's a complete but small example module:: doctest.testmod() If you run :file:`example.py` directly from the command line, :mod:`doctest` -works its magic:: +works its magic: + +.. code-block:: shell-session $ python example.py $ There's no output! That's normal, and it means all the examples worked. Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what -it's trying, and prints a summary at the end:: +it's trying, and prints a summary at the end: + +.. code-block:: shell-session $ python example.py -v Trying: @@ -117,7 +121,9 @@ it's trying, and prints a summary at the end:: [1, 1, 2, 6, 24, 120] ok -And so on, eventually ending with:: +And so on, eventually ending with: + +.. code-block:: none Trying: factorial(1e100) @@ -205,7 +211,9 @@ file. This can be done with the :func:`testfile` function:: That short script executes and verifies any interactive Python examples contained in the file :file:`example.txt`. The file content is treated as if it were a single giant docstring; the file doesn't need to contain a Python -program! For example, perhaps :file:`example.txt` contains this:: +program! For example, perhaps :file:`example.txt` contains this: + +.. code-block:: none The ``example`` module ====================== @@ -1265,7 +1273,7 @@ DocTest Objects .. attribute:: docstring - The string that the test was extracted from, or 'None' if the string is + The string that the test was extracted from, or ``None`` if the string is unavailable, or if the test was not extracted from a string. @@ -1373,7 +1381,7 @@ DocTestFinder objects not specified, then ``obj.__name__`` is used. The optional parameter *module* is the module that contains the given object. - If the module is not specified or is None, then the test finder will attempt + If the module is not specified or is ``None``, then the test finder will attempt to automatically determine the correct module. The object's module is used: * As a default namespace, if *globs* is not specified. diff --git a/Doc/library/docxmlrpcserver.rst b/Doc/library/docxmlrpcserver.rst index 08e4e4b..12050a3 100644 --- a/Doc/library/docxmlrpcserver.rst +++ b/Doc/library/docxmlrpcserver.rst @@ -16,7 +16,7 @@ The :mod:`DocXMLRPCServer` module extends the classes found in :mod:`SimpleXMLRPCServer` to serve HTML documentation in response to HTTP GET -requests. Servers can either be free standing, using :class:`DocXMLRPCServer`, +requests. Servers can either be free standing, using :class:`~DocXMLRPCServer.DocXMLRPCServer`, or embedded in a CGI environment, using :class:`DocCGIXMLRPCRequestHandler`. @@ -36,7 +36,7 @@ or embedded in a CGI environment, using :class:`DocCGIXMLRPCRequestHandler`. Create a new request handler instance. This request handler supports XML-RPC POST requests, documentation GET requests, and modifies logging so that the - *logRequests* parameter to the :class:`DocXMLRPCServer` constructor parameter is + *logRequests* parameter to the :class:`~DocXMLRPCServer.DocXMLRPCServer` constructor parameter is honored. @@ -45,7 +45,7 @@ or embedded in a CGI environment, using :class:`DocCGIXMLRPCRequestHandler`. DocXMLRPCServer Objects ----------------------- -The :class:`DocXMLRPCServer` class is derived from +The :class:`~DocXMLRPCServer.DocXMLRPCServer` class is derived from :class:`SimpleXMLRPCServer.SimpleXMLRPCServer` and provides a means of creating self-documenting, stand alone XML-RPC servers. HTTP POST requests are handled as XML-RPC method calls. HTTP GET requests are handled by generating pydoc-style diff --git a/Doc/library/dumbdbm.rst b/Doc/library/dumbdbm.rst index 1a9a647..6ca31d9 100644 --- a/Doc/library/dumbdbm.rst +++ b/Doc/library/dumbdbm.rst @@ -82,7 +82,7 @@ Dumbdbm Objects --------------- In addition to the methods provided by the :class:`UserDict.DictMixin` class, -:class:`dumbdbm` objects provide the following methods. +:class:`~dumbdbm.dumbdbm` objects provide the following methods. .. method:: dumbdbm.sync() diff --git a/Doc/library/easydialogs.rst b/Doc/library/easydialogs.rst index a042b0f..ad42f61 100644 --- a/Doc/library/easydialogs.rst +++ b/Doc/library/easydialogs.rst @@ -90,13 +90,13 @@ The :mod:`EasyDialogs` module defines the following functions: +----------------------+------------------------------------------+ | *optstr* format | Command-line format | +======================+==========================================+ - | ``x`` | :option:`-x` (short option) | + | ``x`` | :option:`!-x` (short option) | +----------------------+------------------------------------------+ - | ``x:`` or ``x=`` | :option:`-x` (short option with value) | + | ``x:`` or ``x=`` | :option:`!-x` (short option with value) | +----------------------+------------------------------------------+ - | ``xyz`` | :option:`--xyz` (long option) | + | ``xyz`` | :option:`!--xyz` (long option) | +----------------------+------------------------------------------+ - | ``xyz:`` or ``xyz=`` | :option:`--xyz` (long option with value) | + | ``xyz:`` or ``xyz=`` | :option:`!--xyz` (long option with value)| +----------------------+------------------------------------------+ *commandlist* is a list of items of the form *cmdstr* or ``(cmdstr, descr)``, diff --git a/Doc/library/ensurepip.rst b/Doc/library/ensurepip.rst index 7206300..a6358e4 100644 --- a/Doc/library/ensurepip.rst +++ b/Doc/library/ensurepip.rst @@ -94,7 +94,7 @@ Module API Bootstraps ``pip`` into the current or designated environment. *root* specifies an alternative root directory to install relative to. - If *root* is None, then installation uses the default install location + If *root* is ``None``, then installation uses the default install location for the current environment. *upgrade* indicates whether or not to upgrade an existing installation diff --git a/Doc/library/fnmatch.rst b/Doc/library/fnmatch.rst index a539654..3dfec2d 100644 --- a/Doc/library/fnmatch.rst +++ b/Doc/library/fnmatch.rst @@ -77,7 +77,8 @@ patterns. .. function:: translate(pattern) - Return the shell-style *pattern* converted to a regular expression. + Return the shell-style *pattern* converted to a regular expression for + using with :func:`re.match`. Example: diff --git a/Doc/library/formatter.rst b/Doc/library/formatter.rst index e696fec..9986328 100644 --- a/Doc/library/formatter.rst +++ b/Doc/library/formatter.rst @@ -9,7 +9,7 @@ .. index:: single: HTMLParser (class in htmllib) This module supports two interface definitions, each with multiple -implementations. The *formatter* interface is used by the :class:`HTMLParser` +implementations. The *formatter* interface is used by the :class:`~HTMLParser.HTMLParser` class of the :mod:`htmllib` module, and the *writer* interface is required by the formatter interface. @@ -344,7 +344,7 @@ this module. Most applications will need to derive new writer classes from the .. class:: DumbWriter(file=None, maxcol=72) Simple writer class which writes output on the file object passed in as *file* - or, if *file* is None, on standard output. The output is simply word-wrapped + or, if *file* is ``None``, on standard output. The output is simply word-wrapped to the number of columns specified by *maxcol*. This class is suitable for reflowing a sequence of paragraphs. diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst index 3ab7b3b..b155daf 100644 --- a/Doc/library/ftplib.rst +++ b/Doc/library/ftplib.rst @@ -283,9 +283,9 @@ followed by ``lines`` for the text version or ``binary`` for the binary version. .. method:: FTP.transfercmd(cmd[, rest]) - Initiate a transfer over the data connection. If the transfer is active, send a + Initiate a transfer over the data connection. If the transfer is active, send an ``EPRT`` or ``PORT`` command and the transfer command specified by *cmd*, and - accept the connection. If the server is passive, send a ``EPSV`` or ``PASV`` + accept the connection. If the server is passive, send an ``EPSV`` or ``PASV`` command, connect to it, and start the transfer command. Either way, return the socket for the connection. diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 20372b3..f294b6e 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -311,7 +311,7 @@ section. :func:`dir` reports their attributes. If the object does not provide :meth:`__dir__`, the function tries its best to - gather information from the object's :attr:`__dict__` attribute, if defined, and + gather information from the object's :attr:`~object.__dict__` attribute, if defined, and from its type object. The resulting list is not necessarily complete, and may be inaccurate when the object has a custom :func:`__getattr__`. @@ -670,7 +670,7 @@ section. preceded by ``+`` or ``-`` (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with ``a`` to ``z`` (or ``A`` to ``Z``) having - values 10 to 35. The default *base* is 10. The allowed values are 0 and 2-36. + values 10 to 35. The default *base* is 10. The allowed values are 0 and 2--36. Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``/``0``, or ``0x``/``0X``, as with integer literals in code. Base 0 means to interpret the string exactly as an integer literal, so that @@ -1477,7 +1477,7 @@ section. With three arguments, return a new type object. This is essentially a dynamic form of the :keyword:`class` statement. The *name* string is the - class name and becomes the :attr:`~class.__name__` attribute; the *bases* tuple + class name and becomes the :attr:`~definition.__name__` attribute; the *bases* tuple itemizes the base classes and becomes the :attr:`~class.__bases__` attribute; and the *dict* dictionary is the namespace containing definitions for class body and becomes the :attr:`~object.__dict__` attribute. For example, the @@ -1545,11 +1545,11 @@ section. .. function:: vars([object]) Return the :attr:`~object.__dict__` attribute for a module, class, instance, - or any other object with a :attr:`__dict__` attribute. + or any other object with a :attr:`~object.__dict__` attribute. - Objects such as modules and instances have an updateable :attr:`__dict__` + Objects such as modules and instances have an updateable :attr:`~object.__dict__` attribute; however, other objects may have write restrictions on their - :attr:`__dict__` attributes (for example, new-style classes use a + :attr:`~object.__dict__` attributes (for example, new-style classes use a dictproxy to prevent direct dictionary updates). Without an argument, :func:`vars` acts like :func:`locals`. Note, the diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index 10dbd0f..f3e396b 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -185,7 +185,7 @@ have three read-only attributes: :class:`partial` objects are like :class:`function` objects in that they are callable, weak referencable, and can have attributes. There are some important -differences. For instance, the :attr:`__name__` and :attr:`__doc__` attributes +differences. For instance, the :attr:`~definition.__name__` and :attr:`__doc__` attributes are not created automatically. Also, :class:`partial` objects defined in classes behave like static methods and do not transform into bound methods during instance attribute look-up. diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst index 7c16d3a..a577e18 100644 --- a/Doc/library/gzip.rst +++ b/Doc/library/gzip.rst @@ -67,7 +67,7 @@ The module defines the following items: *fileobj*, since you might wish to append more material after the compressed data. This also allows you to pass a :class:`~StringIO.StringIO` object opened for writing as *fileobj*, and retrieve the resulting memory buffer using the - :class:`StringIO` object's :meth:`~StringIO.StringIO.getvalue` method. + :class:`~StringIO.StringIO` object's :meth:`~StringIO.StringIO.getvalue` method. :class:`GzipFile` supports iteration and the :keyword:`with` statement. diff --git a/Doc/library/hmac.rst b/Doc/library/hmac.rst index eef8856..d487793 100644 --- a/Doc/library/hmac.rst +++ b/Doc/library/hmac.rst @@ -79,7 +79,7 @@ This module also provides the following helper function: If *a* and *b* are of different lengths, or if an error occurs, a timing attack could theoretically reveal information about the - types and lengths of *a* and *b*--but not their values. + types and lengths of *a* and *b*—but not their values. .. versionadded:: 2.7.7 diff --git a/Doc/library/htmllib.rst b/Doc/library/htmllib.rst index 08ac577..a85f653 100644 --- a/Doc/library/htmllib.rst +++ b/Doc/library/htmllib.rst @@ -24,11 +24,11 @@ This module defines a class which can serve as a base for parsing text files formatted in the HyperText Mark-up Language (HTML). The class is not directly concerned with I/O --- it must be provided with input in string form via a method, and makes calls to methods of a "formatter" object in order to produce -output. The :class:`HTMLParser` class is designed to be used as a base class +output. The :class:`~HTMLParser.HTMLParser` class is designed to be used as a base class for other classes in order to add functionality, and allows most of its methods to be extended or overridden. In turn, this class is derived from and extends the :class:`SGMLParser` class defined in module :mod:`sgmllib`. The -:class:`HTMLParser` implementation supports the HTML 2.0 language as described +:class:`~HTMLParser.HTMLParser` implementation supports the HTML 2.0 language as described in :rfc:`1866`. Two implementations of formatter objects are provided in the :mod:`formatter` module; refer to the documentation for that module for information on the formatter interface. @@ -70,7 +70,7 @@ The module defines a parser class and an exception: .. exception:: HTMLParseError - Exception raised by the :class:`HTMLParser` class when it encounters an error + Exception raised by the :class:`~HTMLParser.HTMLParser` class when it encounters an error while parsing. .. versionadded:: 2.4 @@ -91,7 +91,7 @@ The module defines a parser class and an exception: Definition of replacement text for XHTML 1.0 entities. Module :mod:`sgmllib` - Base class for :class:`HTMLParser`. + Base class for :class:`~HTMLParser.HTMLParser`. .. _html-parser-objects: @@ -99,7 +99,7 @@ The module defines a parser class and an exception: HTMLParser Objects ------------------ -In addition to tag methods, the :class:`HTMLParser` class provides some +In addition to tag methods, the :class:`~HTMLParser.HTMLParser` class provides some additional methods and instance variables for use within tag methods. @@ -173,7 +173,7 @@ additional methods and instance variables for use within tag methods. This module defines three dictionaries, ``name2codepoint``, ``codepoint2name``, and ``entitydefs``. ``entitydefs`` is used by the :mod:`htmllib` module to -provide the :attr:`entitydefs` attribute of the :class:`HTMLParser` class. The +provide the :attr:`entitydefs` attribute of the :class:`~HTMLParser.HTMLParser` class. The definition provided here contains all the entities defined by XHTML 1.0 that can be handled using simple textual substitution in the Latin-1 character set (ISO-8859-1). diff --git a/Doc/library/htmlparser.rst b/Doc/library/htmlparser.rst index e73ce07..6740b43 100644 --- a/Doc/library/htmlparser.rst +++ b/Doc/library/htmlparser.rst @@ -78,7 +78,9 @@ as they are encountered:: parser.feed('Test' '

Parse me!

') -The output will then be:: +The output will then be: + +.. code-block:: none Encountered a start tag: html Encountered a start tag: head diff --git a/Doc/library/httplib.rst b/Doc/library/httplib.rst index 4bf2006..0a9a6dc 100644 --- a/Doc/library/httplib.rst +++ b/Doc/library/httplib.rst @@ -49,7 +49,7 @@ The module provides the following classes: server. It should be instantiated passing it a host and optional port number. If no port number is passed, the port is extracted from the host string if it has the form ``host:port``, else the default HTTP port (80) is - used. When True, the optional parameter *strict* (which defaults to a false + used. When true, the optional parameter *strict* (which defaults to a false value) causes ``BadStatusLine`` to be raised if the status line can't be parsed as a valid HTTP/1.0 or 1.1 status line. If the optional *timeout* parameter is given, blocking diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index 84805ff..34f9a89 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -222,6 +222,9 @@ View Last Restart Restart Shell Restart the shell to clean the environment. +Interrupt Execution + Stop a running program. + Debug menu (Shell window only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -520,14 +523,14 @@ functions to be used from IDLE's Python shell. Command line usage ^^^^^^^^^^^^^^^^^^ -:: +.. code-block:: none idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ... -c command run command in the shell window -d enable debugger and open shell window -e open editor window - -h print help message with legal combinatios and exit + -h print help message with legal combinations and exit -i open shell window -r file run file in shell window -s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window @@ -562,7 +565,9 @@ IDLE's changes are lost and things like ``input``, ``raw_input``, and ``print`` will not work correctly. With IDLE's Shell, one enters, edits, and recalls complete statements. -Some consoles only work with a single physical line at a time. +Some consoles only work with a single physical line at a time. IDLE uses +``exec`` to run each statement. As a result, ``'__builtins__'`` is always +defined for each statement. Running without a subprocess ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst index 20e377f..18f6d9d 100644 --- a/Doc/library/imaplib.rst +++ b/Doc/library/imaplib.rst @@ -90,7 +90,7 @@ The following utility functions are defined: Parse an IMAP4 ``INTERNALDATE`` string and return corresponding local time. The return value is a :class:`time.struct_time` instance or - None if the string has wrong format. + ``None`` if the string has wrong format. .. function:: Int2AP(num) diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 1964f71..ec23d4f 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -95,8 +95,9 @@ attributes: | | gi_code | code object | | +-----------+-----------------+---------------------------+-------+ | | gi_frame | frame object or possibly | | -| | | None once the generator | | -| | | has been exhausted | | +| | | ``None`` once the | | +| | | generator has been | | +| | | exhausted | | +-----------+-----------------+---------------------------+-------+ | | gi_running | set to 1 when generator | | | | | is executing, 0 otherwise | | @@ -335,9 +336,11 @@ Note: are true. This is new as of Python 2.2, and, for example, is true of - ``int.__add__``. An object passing this test has a :attr:`__get__` attribute - but not a :attr:`__set__` attribute, but beyond that the set of attributes - varies. :attr:`__name__` is usually sensible, and :attr:`__doc__` often is. + ``int.__add__``. An object passing this test + has a :meth:`~object.__get__` method but not a :meth:`~object.__set__` + method, but beyond that the set of attributes varies. A + :attr:`~definition.__name__` attribute is usually + sensible, and :attr:`__doc__` often is. Methods implemented via descriptors that also pass one of the other tests return false from the :func:`ismethoddescriptor` test, simply because the @@ -349,11 +352,11 @@ Note: Return true if the object is a data descriptor. - Data descriptors have both a :attr:`__get__` and a :attr:`__set__` attribute. + Data descriptors have both a :attr:`~object.__get__` and a :attr:`~object.__set__` method. Examples are properties (defined in Python), getsets, and members. The latter two are defined in C and there are more specific tests available for those types, which is robust across Python implementations. Typically, data - descriptors will also have :attr:`__name__` and :attr:`__doc__` attributes + descriptors will also have :attr:`~definition.__name__` and :attr:`__doc__` attributes (properties, getsets, and members have both of these attributes), but this is not guaranteed. @@ -476,7 +479,7 @@ Classes and functions four things is returned: ``(args, varargs, keywords, defaults)``. *args* is a list of the argument names (it may contain nested lists). *varargs* and *keywords* are the names of the ``*`` and ``**`` arguments or - ``None``. *defaults* is a tuple of default argument values or None if there + ``None``. *defaults* is a tuple of default argument values or ``None`` if there are no default arguments; if this tuple has *n* elements, they correspond to the last *n* elements listed in *args*. diff --git a/Doc/library/io.rst b/Doc/library/io.rst index d3cdbf1..b99324c 100644 --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -47,7 +47,7 @@ Another :class:`IOBase` subclass, :class:`TextIOBase`, deals with streams whose bytes represent text, and handles encoding and decoding from and to :class:`unicode` strings. :class:`TextIOWrapper`, which extends it, is a buffered text interface to a buffered raw stream -(:class:`BufferedIOBase`). Finally, :class:`StringIO` is an in-memory +(:class:`BufferedIOBase`). Finally, :class:`~io.StringIO` is an in-memory stream for unicode text. Argument names are not part of the specification, and only the arguments of @@ -130,7 +130,7 @@ Module Interface the list of supported encodings. *errors* is an optional string that specifies how encoding and decoding - errors are to be handled--this cannot be used in binary mode. Pass + errors are to be handled—this cannot be used in binary mode. Pass ``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding error (the default of ``None`` has the same effect), or pass ``'ignore'`` to ignore errors. (Note that ignoring encoding errors can lead to data loss.) @@ -180,7 +180,7 @@ Module Interface It is also possible to use an :class:`unicode` or :class:`bytes` string as a file for both reading and writing. For :class:`unicode` strings - :class:`StringIO` can be used like a file opened in text mode, + :class:`~io.StringIO` can be used like a file opened in text mode, and for :class:`bytes` a :class:`BytesIO` can be used like a file opened in a binary mode. @@ -221,7 +221,7 @@ I/O Base Classes Even though :class:`IOBase` does not declare :meth:`read`, :meth:`readinto`, or :meth:`write` because their signatures will vary, implementations and clients should consider those methods part of the interface. Also, - implementations may raise a :exc:`IOError` when operations they do not + implementations may raise an :exc:`IOError` when operations they do not support are called. The basic type used for binary data read from or written to a file is @@ -718,7 +718,7 @@ Text I/O After the underlying buffer has been detached, the :class:`TextIOBase` is in an unusable state. - Some :class:`TextIOBase` implementations, like :class:`StringIO`, may not + Some :class:`TextIOBase` implementations, like :class:`~io.StringIO`, may not have the concept of an underlying buffer and calling this method will raise :exc:`UnsupportedOperation`. @@ -834,13 +834,13 @@ Text I/O newlines are written as ``\n`` on all platforms, but universal newline decoding is still performed when reading. - :class:`StringIO` provides this method in addition to those from + :class:`~io.StringIO` provides this method in addition to those from :class:`TextIOWrapper` and its parents: .. method:: getvalue() Return a ``unicode`` containing the entire contents of the buffer at any - time before the :class:`StringIO` object's :meth:`close` method is + time before the :class:`~io.StringIO` object's :meth:`close` method is called. Newlines are decoded as if by :meth:`~TextIOBase.read`, although the stream position is not changed. @@ -902,7 +902,7 @@ if you handle huge amounts of text data (for example very large log files). Also, :meth:`TextIOWrapper.tell` and :meth:`TextIOWrapper.seek` are both quite slow due to the reconstruction algorithm used. -:class:`StringIO`, however, is a native in-memory unicode container and will +:class:`~io.StringIO`, however, is a native in-memory unicode container and will exhibit similar speed to :class:`BytesIO`. Multi-threading diff --git a/Doc/library/json.rst b/Doc/library/json.rst index 8f66b6c..c4d5ee6 100644 --- a/Doc/library/json.rst +++ b/Doc/library/json.rst @@ -99,9 +99,9 @@ Extending :class:`JSONEncoder`:: .. highlight:: none -Using json.tool from the shell to validate and pretty-print:: +Using :mod:`json.tool` from the shell to validate and pretty-print:: - $ echo '{"json":"obj"}' | python -mjson.tool + $ echo '{"json":"obj"}' | python -m json.tool { "json": "obj" } @@ -130,28 +130,29 @@ Basic Usage :term:`file-like object`) using this :ref:`conversion table `. - If *skipkeys* is ``True`` (default: ``False``), then dict keys that are not + If *skipkeys* is true (default: ``False``), then dict keys that are not of a basic type (:class:`str`, :class:`unicode`, :class:`int`, :class:`long`, :class:`float`, :class:`bool`, ``None``) will be skipped instead of raising a :exc:`TypeError`. - If *ensure_ascii* is ``True`` (the default), all non-ASCII characters in the + If *ensure_ascii* is true (the default), all non-ASCII characters in the output are escaped with ``\uXXXX`` sequences, and the result is a :class:`str` instance consisting of ASCII characters only. If - *ensure_ascii* is ``False``, some chunks written to *fp* may be + *ensure_ascii* is false, some chunks written to *fp* may be :class:`unicode` instances. This usually happens because the input contains unicode strings or the *encoding* parameter is used. Unless ``fp.write()`` explicitly understands :class:`unicode` (as in :func:`codecs.getwriter`) this is likely to cause an error. - If *check_circular* is ``False`` (default: ``True``), then the circular + If *check_circular* is false (default: ``True``), then the circular reference check for container types will be skipped and a circular reference will result in an :exc:`OverflowError` (or worse). - If *allow_nan* is ``False`` (default: ``True``), then it will be a + If *allow_nan* is false (default: ``True``), then it will be a :exc:`ValueError` to serialize out of range :class:`float` values (``nan``, - ``inf``, ``-inf``) in strict compliance of the JSON specification, instead of - using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``). + ``inf``, ``-inf``) in strict compliance of the JSON specification. + If *allow_nan* is true, their JavaScript equivalents (``NaN``, + ``Infinity``, ``-Infinity``) will be used. If *indent* is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0, @@ -164,16 +165,18 @@ Basic Usage trailing whitespace when *indent* is specified. You can use ``separators=(',', ': ')`` to avoid this. - If *separators* is an ``(item_separator, dict_separator)`` tuple, then it - will be used instead of the default ``(', ', ': ')`` separators. ``(',', - ':')`` is the most compact JSON representation. + If specified, *separators* should be an ``(item_separator, key_separator)`` + tuple. By default, ``(', ', ': ')`` are used. To get the most compact JSON + representation, you should specify ``(',', ':')`` to eliminate whitespace. *encoding* is the character encoding for str instances, default is UTF-8. - *default(obj)* is a function that should return a serializable version of - *obj* or raise :exc:`TypeError`. The default simply raises :exc:`TypeError`. + If specified, *default* should be a function that gets called for objects that + can't otherwise be serialized. It should return a JSON encodable version of + the object or raise a :exc:`TypeError`. If not specified, :exc:`TypeError` + is raised. - If *sort_keys* is ``True`` (default: ``False``), then the output of + If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key. To use a custom :class:`JSONEncoder` subclass (e.g. one that overrides the @@ -192,7 +195,7 @@ Basic Usage default=None, sort_keys=False, **kw) Serialize *obj* to a JSON formatted :class:`str` using this :ref:`conversion - table `. If *ensure_ascii* is ``False``, the result may + table `. If *ensure_ascii* is false, the result may contain non-ASCII characters and the return value may be a :class:`unicode` instance. @@ -341,13 +344,13 @@ Encoders and Decoders (e.g. :class:`float`). *parse_constant*, if specified, will be called with one of the following - strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``, ``'null'``, ``'true'``, - ``'false'``. This can be used to raise an exception if invalid JSON numbers + strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. + This can be used to raise an exception if invalid JSON numbers are encountered. - If *strict* is ``False`` (``True`` is the default), then control characters + If *strict* is false (``True`` is the default), then control characters will be allowed inside strings. Control characters in this context are - those with character codes in the 0-31 range, including ``'\t'`` (tab), + those with character codes in the 0--31 range, including ``'\t'`` (tab), ``'\n'``, ``'\r'`` and ``'\0'``. If the data being deserialized is not a valid JSON document, a @@ -399,29 +402,29 @@ Encoders and Decoders for ``o`` if possible, otherwise it should call the superclass implementation (to raise :exc:`TypeError`). - If *skipkeys* is ``False`` (the default), then it is a :exc:`TypeError` to - attempt encoding of keys that are not str, int, long, float or None. If - *skipkeys* is ``True``, such items are simply skipped. + If *skipkeys* is false (the default), then it is a :exc:`TypeError` to + attempt encoding of keys that are not str, int, long, float or ``None``. If + *skipkeys* is true, such items are simply skipped. - If *ensure_ascii* is ``True`` (the default), all non-ASCII characters in the + If *ensure_ascii* is true (the default), all non-ASCII characters in the output are escaped with ``\uXXXX`` sequences, and the results are :class:`str` instances consisting of ASCII characters only. If - *ensure_ascii* is ``False``, a result may be a :class:`unicode` + *ensure_ascii* is false, a result may be a :class:`unicode` instance. This usually happens if the input contains unicode strings or the *encoding* parameter is used. - If *check_circular* is ``True`` (the default), then lists, dicts, and custom + If *check_circular* is true (the default), then lists, dicts, and custom encoded objects will be checked for circular references during encoding to prevent an infinite recursion (which would cause an :exc:`OverflowError`). Otherwise, no such check takes place. - If *allow_nan* is ``True`` (the default), then ``NaN``, ``Infinity``, and + If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and ``-Infinity`` will be encoded as such. This behavior is not JSON specification compliant, but is consistent with most JavaScript based encoders and decoders. Otherwise, it will be a :exc:`ValueError` to encode such floats. - If *sort_keys* is ``True`` (default ``False``), then the output of dictionaries + If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key; this is useful for regression tests to ensure that JSON serializations can be compared on a day-to-day basis. @@ -437,12 +440,13 @@ Encoders and Decoders ``separators=(',', ': ')`` to avoid this. If specified, *separators* should be an ``(item_separator, key_separator)`` - tuple. The default is ``(', ', ': ')``. To get the most compact JSON + tuple. By default, ``(', ', ': ')`` are used. To get the most compact JSON representation, you should specify ``(',', ':')`` to eliminate whitespace. - If specified, *default* is a function that gets called for objects that can't - otherwise be serialized. It should return a JSON encodable version of the - object or raise a :exc:`TypeError`. + If specified, *default* should be a function that gets called for objects that + can't otherwise be serialized. It should return a JSON encodable version of + the object or raise a :exc:`TypeError`. If not specified, :exc:`TypeError` + is raised. If *encoding* is not ``None``, then all input strings will be transformed into unicode using that encoding prior to JSON-encoding. The default is diff --git a/Doc/library/logging.config.rst b/Doc/library/logging.config.rst index 5460c3a..23333ed 100644 --- a/Doc/library/logging.config.rst +++ b/Doc/library/logging.config.rst @@ -209,7 +209,9 @@ otherwise, the context is used to determine what to instantiate. handler. All *other* keys are passed through as keyword arguments to the - handler's constructor. For example, given the snippet:: + handler's constructor. For example, given the snippet: + + .. code-block:: yaml handlers: console: @@ -318,7 +320,9 @@ it unambiguously, and then using the id in the source object's configuration to indicate that a connection exists between the source and the destination object with that id. -So, for example, consider the following YAML snippet:: +So, for example, consider the following YAML snippet: + +.. code-block:: yaml formatters: brief: @@ -375,7 +379,9 @@ to provide a 'factory' - a callable which is called with a configuration dictionary and which returns the instantiated object. This is signalled by an absolute import path to the factory being made available under the special key ``'()'``. Here's a concrete -example:: +example: + +.. code-block:: yaml formatters: brief: @@ -592,7 +598,9 @@ configuration must be specified in a section called ``[logger_root]``. :func:`dictConfig`, so it's worth considering transitioning to this newer API when it's convenient to do so. -Examples of these sections in the file are given below. :: +Examples of these sections in the file are given below. + +.. code-block:: ini [loggers] keys=root,log02,log03,log04,log05,log06,log07 @@ -604,7 +612,9 @@ Examples of these sections in the file are given below. :: keys=form01,form02,form03,form04,form05,form06,form07,form08,form09 The root logger must specify a level and a list of handlers. An example of a -root logger section is given below. :: +root logger section is given below. + +.. code-block:: ini [logger_root] level=NOTSET @@ -621,7 +631,9 @@ appear in the ``[handlers]`` section. These names must appear in the file. For loggers other than the root logger, some additional information is required. -This is illustrated by the following example. :: +This is illustrated by the following example. + +.. code-block:: ini [logger_parser] level=DEBUG @@ -639,7 +651,8 @@ indicate that messages are **not** propagated to handlers up the hierarchy. The say the name used by the application to get the logger. Sections which specify handler configuration are exemplified by the following. -:: + +.. code-block:: ini [handler_hand01] class=StreamHandler @@ -663,7 +676,9 @@ a corresponding section in the configuration file. The ``args`` entry, when :func:`eval`\ uated in the context of the ``logging`` package's namespace, is the list of arguments to the constructor for the handler class. Refer to the constructors for the relevant handlers, or to the examples -below, to see how typical entries are constructed. :: +below, to see how typical entries are constructed. + +.. code-block:: ini [handler_hand02] class=FileHandler @@ -714,7 +729,9 @@ below, to see how typical entries are constructed. :: formatter=form09 args=('localhost:9022', '/log', 'GET') -Sections which specify formatter configuration are typified by the following. :: +Sections which specify formatter configuration are typified by the following. + +.. code-block:: ini [formatter_form01] format=F1 %(asctime)s %(levelname)s %(message)s @@ -750,5 +767,3 @@ condensed format. Module :mod:`logging.handlers` Useful handlers included with the logging module. - - diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst index 27167f0..3f5ef50 100644 --- a/Doc/library/logging.handlers.rst +++ b/Doc/library/logging.handlers.rst @@ -74,7 +74,7 @@ sends logging output to a disk file. It inherits the output functionality from Returns a new instance of the :class:`FileHandler` class. The specified file is opened and used as the stream for logging. If *mode* is not specified, - :const:`'a'` is used. If *encoding* is not *None*, it is used to open the file + :const:`'a'` is used. If *encoding* is not ``None``, it is used to open the file with that encoding. If *delay* is true, then file opening is deferred until the first call to :meth:`emit`. By default, the file grows indefinitely. @@ -154,7 +154,7 @@ for this value. Returns a new instance of the :class:`WatchedFileHandler` class. The specified file is opened and used as the stream for logging. If *mode* is not specified, - :const:`'a'` is used. If *encoding* is not *None*, it is used to open the file + :const:`'a'` is used. If *encoding* is not ``None``, it is used to open the file with that encoding. If *delay* is true, then file opening is deferred until the first call to :meth:`emit`. By default, the file grows indefinitely. @@ -178,7 +178,7 @@ module, supports rotation of disk log files. Returns a new instance of the :class:`RotatingFileHandler` class. The specified file is opened and used as the stream for logging. If *mode* is not specified, - ``'a'`` is used. If *encoding* is not *None*, it is used to open the file + ``'a'`` is used. If *encoding* is not ``None``, it is used to open the file with that encoding. If *delay* is true, then file opening is deferred until the first call to :meth:`emit`. By default, the file grows indefinitely. diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index 4f6e4e8..ba2ab83 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -588,7 +588,7 @@ wire). :param args: Variable data to merge into the *msg* argument to obtain the event description. :param exc_info: An exception tuple with the current exception information, - or *None* if no exception information is available. + or ``None`` if no exception information is available. :param func: The name of the function or method from which the logging call was invoked. @@ -636,7 +636,7 @@ format string. | | | (as returned by :func:`time.time`). | +----------------+-------------------------+-----------------------------------------------+ | exc_info | You shouldn't need to | Exception tuple (à la ``sys.exc_info``) or, | -| | format this yourself. | if no exception has occurred, *None*. | +| | format this yourself. | if no exception has occurred, ``None``. | +----------------+-------------------------+-----------------------------------------------+ | filename | ``%(filename)s`` | Filename portion of ``pathname``. | +----------------+-------------------------+-----------------------------------------------+ diff --git a/Doc/library/mimewriter.rst b/Doc/library/mimewriter.rst index a30caef..a61dfbb 100644 --- a/Doc/library/mimewriter.rst +++ b/Doc/library/mimewriter.rst @@ -12,17 +12,17 @@ The :mod:`email` package should be used in preference to the :mod:`MimeWriter` module. This module is present only to maintain backward compatibility. -This module defines the class :class:`MimeWriter`. The :class:`MimeWriter` +This module defines the class :class:`~MimeWriter.MimeWriter`. The :class:`~MimeWriter.MimeWriter` class implements a basic formatter for creating MIME multi-part files. It doesn't seek around the output file nor does it use large amounts of buffer space. You must write the parts out in the order that they should occur in the -final file. :class:`MimeWriter` does buffer the headers you add, allowing you +final file. :class:`~MimeWriter.MimeWriter` does buffer the headers you add, allowing you to rearrange their order. .. class:: MimeWriter(fp) - Return a new instance of the :class:`MimeWriter` class. The only argument + Return a new instance of the :class:`~MimeWriter.MimeWriter` class. The only argument passed, *fp*, is a file object to be used for writing. Note that a :class:`~StringIO.StringIO` object could also be used. @@ -32,7 +32,7 @@ to rearrange their order. MimeWriter Objects ------------------ -:class:`MimeWriter` instances have the following methods: +:class:`~MimeWriter.MimeWriter` instances have the following methods: .. method:: MimeWriter.addheader(key, value[, prefix]) @@ -72,7 +72,7 @@ MimeWriter Objects .. method:: MimeWriter.nextpart() - Returns a new instance of :class:`MimeWriter` which represents an individual + Returns a new instance of :class:`~MimeWriter.MimeWriter` which represents an individual part in a multipart message. This may be used to write the part as well as used for creating recursively complex multipart messages. The message must first be initialized with :meth:`startmultipartbody` before using :meth:`nextpart`. diff --git a/Doc/library/mmap.rst b/Doc/library/mmap.rst index 0860cac..a86eb13 100644 --- a/Doc/library/mmap.rst +++ b/Doc/library/mmap.rst @@ -15,7 +15,7 @@ change a substring by assigning to a slice: ``obj[i1:i2] = '...'``. You can also read and write data starting at the current file position, and :meth:`seek` through the file to different positions. -A memory-mapped file is created by the :class:`mmap` constructor, which is +A memory-mapped file is created by the :class:`~mmap.mmap` constructor, which is different on Unix and on Windows. In either case you must provide a file descriptor for a file opened for update. If you wish to map an existing Python file object, use its :meth:`fileno` method to obtain the correct value for the @@ -77,7 +77,7 @@ memory but does not update the underlying file. **(Unix version)** Maps *length* bytes from the file specified by the file descriptor *fileno*, and returns a mmap object. If *length* is ``0``, the maximum length of the map will be the current size of the file when - :class:`mmap` is called. + :class:`~mmap.mmap` is called. *flags* specifies the nature of the mapping. :const:`MAP_PRIVATE` creates a private copy-on-write mapping, so changes to the contents of the mmap @@ -104,7 +104,7 @@ memory but does not update the underlying file. by the descriptor *fileno* is internally automatically synchronized with physical backing store on Mac OS X and OpenVMS. - This example shows a simple way of using :class:`mmap`:: + This example shows a simple way of using :class:`~mmap.mmap`:: import mmap diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index e33f85f..b393ad1 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1800,7 +1800,7 @@ with the :class:`Pool` class. .. versionadded:: 2.7 *maxtasksperchild* is the number of tasks a worker process can complete before it will exit and be replaced with a fresh worker process, to enable - unused resources to be freed. The default *maxtasksperchild* is None, which + unused resources to be freed. The default *maxtasksperchild* is ``None``, which means worker processes will live as long as the pool. .. note:: @@ -2017,7 +2017,7 @@ authentication* using the :mod:`hmac` module. ``None`` then digest authentication is used. If *authkey* is a string then it will be used as the authentication key; - otherwise it must be *None*. + otherwise it must be ``None``. If *authkey* is ``None`` and *authenticate* is ``True`` then ``current_process().authkey`` is used as the authentication key. If diff --git a/Doc/library/mutex.rst b/Doc/library/mutex.rst index 57c3971..eb783f3 100644 --- a/Doc/library/mutex.rst +++ b/Doc/library/mutex.rst @@ -40,7 +40,7 @@ The :mod:`mutex` module defines the following class: Mutex Objects ------------- -:class:`mutex` objects have following methods: +:class:`~mutex.mutex` objects have following methods: .. method:: mutex.test() diff --git a/Doc/library/netrc.rst b/Doc/library/netrc.rst index 713c8df..1dcfd2f 100644 --- a/Doc/library/netrc.rst +++ b/Doc/library/netrc.rst @@ -14,13 +14,13 @@ -------------- -The :class:`netrc` class parses and encapsulates the netrc file format used by +The :class:`~netrc.netrc` class parses and encapsulates the netrc file format used by the Unix :program:`ftp` program and other FTP clients. .. class:: netrc([file]) - A :class:`netrc` instance or subclass instance encapsulates data from a netrc + A :class:`~netrc.netrc` instance or subclass instance encapsulates data from a netrc file. The initialization argument, if present, specifies the file to parse. If no argument is given, the file :file:`.netrc` in the user's home directory will be read. Parse errors will raise :exc:`NetrcParseError` with diagnostic @@ -37,7 +37,7 @@ the Unix :program:`ftp` program and other FTP clients. .. exception:: NetrcParseError - Exception raised by the :class:`netrc` class when syntactical errors are + Exception raised by the :class:`~netrc.netrc` class when syntactical errors are encountered in source text. Instances of this exception provide three interesting attributes: :attr:`msg` is a textual explanation of the error, :attr:`filename` is the name of the source file, and :attr:`lineno` gives the @@ -49,7 +49,7 @@ the Unix :program:`ftp` program and other FTP clients. netrc Objects ------------- -A :class:`netrc` instance has the following methods: +A :class:`~netrc.netrc` instance has the following methods: .. method:: netrc.authenticators(host) @@ -65,7 +65,7 @@ A :class:`netrc` instance has the following methods: Dump the class data as a string in the format of a netrc file. (This discards comments and may reorder the entries.) -Instances of :class:`netrc` have public instance variables: +Instances of :class:`~netrc.netrc` have public instance variables: .. attribute:: netrc.hosts diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst index dfb43a1..4af75a1 100644 --- a/Doc/library/optparse.rst +++ b/Doc/library/optparse.rst @@ -680,7 +680,9 @@ automatically adds a ``--version`` option to your parser. If it encounters this option on the command line, it expands your ``version`` string (by replacing ``%prog``), prints it to stdout, and exits. -For example, if your script is called ``/usr/bin/foo``:: +For example, if your script is called ``/usr/bin/foo``: + +.. code-block:: shell-session $ /usr/bin/foo --version foo 1.0 @@ -730,14 +732,18 @@ program's usage message and an error message to standard error and exits with error status 2. Consider the first example above, where the user passes ``4x`` to an option -that takes an integer:: +that takes an integer: + +.. code-block:: shell-session $ /usr/bin/foo -n 4x Usage: foo [options] foo: error: option -n: invalid integer value: '4x' -Or, where the user fails to pass a value at all:: +Or, where the user fails to pass a value at all: + +.. code-block:: shell-session $ /usr/bin/foo -n Usage: foo [options] @@ -1327,7 +1333,7 @@ where the input parameters are the list of arguments to process (default: ``sys.argv[1:]``) ``values`` - a :class:`optparse.Values` object to store option arguments in (default: a + an :class:`optparse.Values` object to store option arguments in (default: a new instance of :class:`Values`) -- if you give an existing object, the option defaults will not be initialized on it @@ -2022,12 +2028,12 @@ Features of note: values.ensure_value(attr, value) - If the ``attr`` attribute of ``values`` doesn't exist or is None, then + If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then ensure_value() first sets it to ``value``, and then returns 'value. This is very handy for actions like ``"extend"``, ``"append"``, and ``"count"``, all of which accumulate data in a variable and expect that variable to be of a certain type (a list for the first two, an integer for the latter). Using :meth:`ensure_value` means that scripts using your action don't have to worry about setting a default value for the option destinations in question; they - can just leave the default as None and :meth:`ensure_value` will take care of + can just leave the default as ``None`` and :meth:`ensure_value` will take care of getting it right when it's needed. diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 5d7edd1..99a36af 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -256,7 +256,7 @@ the :mod:`glob` module.) .. function:: samefile(path1, path2) Return ``True`` if both pathname arguments refer to the same file or directory - (as indicated by device number and i-node number). Raise an exception if a + (as indicated by device number and i-node number). Raise an exception if an :func:`os.stat` call on either pathname fails. Availability: Unix. diff --git a/Doc/library/os.rst b/Doc/library/os.rst index d9a62dc..9caebf1 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -883,7 +883,7 @@ or `the MSDN `_ on Window O_EXCL O_TRUNC - These constants are available on Unix and Windows. + The above constants are available on Unix and Windows. .. data:: O_DSYNC @@ -892,10 +892,8 @@ or `the MSDN `_ on Window O_NDELAY O_NONBLOCK O_NOCTTY - O_SHLOCK - O_EXLOCK - These constants are only available on Unix. + The above constants are only available on Unix. .. data:: O_BINARY @@ -906,7 +904,7 @@ or `the MSDN `_ on Window O_SEQUENTIAL O_TEXT - These constants are only available on Windows. + The above constants are only available on Windows. .. data:: O_ASYNC @@ -914,9 +912,11 @@ or `the MSDN `_ on Window O_DIRECTORY O_NOFOLLOW O_NOATIME + O_SHLOCK + O_EXLOCK - These constants are GNU extensions and not present if they are not defined by - the C library. + The above constants are extensions and not present if they are not + defined by the C library. .. _os-file-dir: diff --git a/Doc/library/pdb.rst b/Doc/library/pdb.rst index da307df..9177f95 100644 --- a/Doc/library/pdb.rst +++ b/Doc/library/pdb.rst @@ -290,7 +290,7 @@ commands [*bpnumber*] return, jump, quit and their abbreviations) terminates the command list (as if that command was immediately followed by end). This is because any time you resume execution (even with a simple next or step), you may encounter another - breakpoint--which could have its own command list, leading to ambiguities about + breakpoint—which could have its own command list, leading to ambiguities about which list to execute. If you use the 'silent' command in the command list, the usual message about diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst index 66f015b..5da3999 100644 --- a/Doc/library/py_compile.rst +++ b/Doc/library/py_compile.rst @@ -29,7 +29,7 @@ byte-code cache files in the directory containing the source code. .. function:: compile(file[, cfile[, dfile[, doraise]]]) Compile a source file to byte-code and write out the byte-code cache file. The - source code is loaded from the file name *file*. The byte-code is written to + source code is loaded from the file named *file*. The byte-code is written to *cfile*, which defaults to *file* ``+`` ``'c'`` (``'o'`` if optimization is enabled in the current interpreter). If *dfile* is specified, it is used as the name of the source file in error messages instead of *file*. If *doraise* is diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst index b580948..ffa042b 100644 --- a/Doc/library/pyexpat.rst +++ b/Doc/library/pyexpat.rst @@ -87,7 +87,9 @@ The :mod:`xml.parsers.expat` module contains two functions: separator. For example, if *namespace_separator* is set to a space character (``' '``) and - the following document is parsed:: + the following document is parsed: + + .. code-block:: xml >> make_archive(archive_name, 'gztar', root_dir) '/Users/tarek/myarchive.tar.gz' -The resulting archive contains:: +The resulting archive contains: + +.. code-block:: shell-session $ tar -tzvf /Users/tarek/myarchive.tar.gz drwx------ tarek/staff 0 2010-02-01 16:23:40 ./ diff --git a/Doc/library/simplexmlrpcserver.rst b/Doc/library/simplexmlrpcserver.rst index 8f805e9..c00eae7 100644 --- a/Doc/library/simplexmlrpcserver.rst +++ b/Doc/library/simplexmlrpcserver.rst @@ -20,7 +20,7 @@ The :mod:`SimpleXMLRPCServer` module provides a basic server framework for XML-RPC servers written in Python. Servers can either be free standing, using -:class:`SimpleXMLRPCServer`, or embedded in a CGI environment, using +:class:`~SimpleXMLRPCServer.SimpleXMLRPCServer`, or embedded in a CGI environment, using :class:`CGIXMLRPCRequestHandler`. @@ -62,7 +62,7 @@ XML-RPC servers written in Python. Servers can either be free standing, using Create a new request handler instance. This request handler supports ``POST`` requests and modifies logging so that the *logRequests* parameter to the - :class:`SimpleXMLRPCServer` constructor parameter is honored. + :class:`~SimpleXMLRPCServer.SimpleXMLRPCServer` constructor parameter is honored. .. _simple-xmlrpc-servers: @@ -70,7 +70,7 @@ XML-RPC servers written in Python. Servers can either be free standing, using SimpleXMLRPCServer Objects -------------------------- -The :class:`SimpleXMLRPCServer` class is based on +The :class:`~SimpleXMLRPCServer.SimpleXMLRPCServer` class is based on :class:`SocketServer.TCPServer` and provides a means of creating simple, stand alone XML-RPC servers. @@ -197,7 +197,7 @@ server:: # Print list of available methods print s.system.listMethods() -The following :class:`SimpleXMLRPCServer` example is included in the module +The following :class:`~SimpleXMLRPCServer.SimpleXMLRPCServer` example is included in the module `Lib/SimpleXMLRPCServer.py`:: server = SimpleXMLRPCServer(("localhost", 8000)) @@ -273,7 +273,7 @@ requests sent to Python CGI scripts. .. method:: CGIXMLRPCRequestHandler.handle_request([request_text = None]) - Handle a XML-RPC request. If *request_text* is given, it should be the POST + Handle an XML-RPC request. If *request_text* is given, it should be the POST data provided by the HTTP server, otherwise the contents of stdin will be used. Example:: diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst index ebb0b30..7d6534b 100644 --- a/Doc/library/smtpd.rst +++ b/Doc/library/smtpd.rst @@ -23,9 +23,10 @@ SMTPServer Objects .. class:: SMTPServer(localaddr, remoteaddr) Create a new :class:`SMTPServer` object, which binds to local address - *localaddr*. It will treat *remoteaddr* as an upstream SMTP relayer. It - inherits from :class:`asyncore.dispatcher`, and so will insert itself into - :mod:`asyncore`'s event loop on instantiation. + *localaddr*. It will treat *remoteaddr* as an upstream SMTP relayer. Both + *localaddr* and *remoteaddr* should be a :ref:`(host, port) ` + tuple. The object inherits from :class:`asyncore.dispatcher`, and so will + insert itself into :mod:`asyncore`'s event loop on instantiation. .. method:: process_message(peer, mailfrom, rcpttos, data) diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst index 5b2808d..b6e7689 100644 --- a/Doc/library/smtplib.rst +++ b/Doc/library/smtplib.rst @@ -22,7 +22,7 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions). .. class:: SMTP([host[, port[, local_hostname[, timeout]]]]) - A :class:`SMTP` instance encapsulates an SMTP connection. It has methods + An :class:`SMTP` instance encapsulates an SMTP connection. It has methods that support a full repertoire of SMTP and ESMTP operations. If the optional host and port parameters are given, the SMTP :meth:`connect` method is called with those parameters during initialization. If specified, @@ -45,7 +45,7 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions). .. class:: SMTP_SSL([host[, port[, local_hostname[, keyfile[, certfile[, timeout]]]]]]) - A :class:`SMTP_SSL` instance behaves exactly the same as instances of + An :class:`SMTP_SSL` instance behaves exactly the same as instances of :class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is required from the beginning of the connection and using :meth:`starttls` is not appropriate. If *host* is not specified, the local host is used. If diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index f79eba6..7b761d7 100644 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -34,6 +34,8 @@ in the C interface: as with :meth:`read` and :meth:`write` operations on Python files, buffer allocation on receive operations is automatic, and buffer length is implicit on send operations. +.. _host_port: + Socket addresses are represented as follows: A single string is used for the :const:`AF_UNIX` address family. A pair ``(host, port)`` is used for the :const:`AF_INET` address family, where *host* is a string representing either a @@ -757,7 +759,7 @@ correspond to Unix system calls applicable to sockets. Set blocking or non-blocking mode of the socket: if *flag* is 0, the socket is set to non-blocking, else to blocking mode. Initially all sockets are in blocking mode. In non-blocking mode, if a :meth:`recv` call doesn't find any - data, or if a :meth:`send` call can't immediately dispose of the data, a + data, or if a :meth:`send` call can't immediately dispose of the data, an :exc:`error` exception is raised; in blocking mode, the calls block until they can proceed. ``s.setblocking(0)`` is equivalent to ``s.settimeout(0.0)``; ``s.setblocking(1)`` is equivalent to ``s.settimeout(None)``. @@ -833,7 +835,7 @@ Note that there are no methods :meth:`read` or :meth:`write`; use :meth:`~socket.recv` and :meth:`~socket.send` without *flags* argument instead. Socket objects also have these (read-only) attributes that correspond to the -values given to the :class:`socket` constructor. +values given to the :class:`~socket.socket` constructor. .. attribute:: socket.family diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index a7c3e3e..a81214e 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -481,7 +481,9 @@ This is the client side:: The output of the example should look something like this: -Server:: +Server: + +.. code-block:: shell-session $ python TCPServer.py 127.0.0.1 wrote: @@ -489,7 +491,9 @@ Server:: 127.0.0.1 wrote: python is nice -Client:: +Client: + +.. code-block:: shell-session $ python TCPClient.py hello world with TCP Sent: hello world with TCP @@ -604,7 +608,9 @@ An example for the :class:`ThreadingMixIn` class:: server.server_close() -The output of the example should look something like this:: +The output of the example should look something like this: + +.. code-block:: shell-session $ python ThreadedTCPServer.py Server loop running in thread: Thread-1 diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index f897234..bd5dd14 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -256,11 +256,11 @@ Connection Objects :ref:`sqlite3-controlling-transactions` for a more detailed explanation. - .. method:: cursor([cursorClass]) + .. method:: cursor(factory=Cursor) - The cursor method accepts a single optional parameter *cursorClass*. If - supplied, this must be a custom cursor class that extends - :class:`sqlite3.Cursor`. + The cursor method accepts a single optional parameter *factory*. If + supplied, this must be a callable returning an instance of :class:`Cursor` + or its subclasses. .. method:: commit() @@ -308,7 +308,7 @@ Connection Objects as the SQL function. The function can return any of the types supported by SQLite: unicode, str, int, - long, float, buffer and None. + long, float, buffer and ``None``. Example: @@ -324,7 +324,7 @@ Connection Objects final result of the aggregate. The ``finalize`` method can return any of the types supported by SQLite: - unicode, str, int, long, float, buffer and None. + unicode, str, int, long, float, buffer and ``None``. Example: @@ -346,7 +346,7 @@ Connection Objects .. literalinclude:: ../includes/sqlite3/collation_reverse.py - To remove a collation, call ``create_collation`` with None as callable:: + To remove a collation, call ``create_collation`` with ``None`` as callable:: con.create_collation("reverse", None) @@ -583,7 +583,7 @@ Cursor Objects .. attribute:: lastrowid This read-only attribute provides the rowid of the last modified row. It is - only set if you issued a ``INSERT`` statement using the :meth:`execute` + only set if you issued an ``INSERT`` statement using the :meth:`execute` method. For operations other than ``INSERT`` or when :meth:`executemany` is called, :attr:`lastrowid` is set to :const:`None`. @@ -868,7 +868,7 @@ You can control which kind of ``BEGIN`` statements sqlite3 implicitly executes (or none at all) via the *isolation_level* parameter to the :func:`connect` call, or via the :attr:`isolation_level` property of connections. -If you want **autocommit mode**, then set :attr:`isolation_level` to None. +If you want **autocommit mode**, then set :attr:`isolation_level` to ``None``. Otherwise leave it at its default, which will result in a plain "BEGIN" statement, or set it to one of SQLite's supported isolation levels: "DEFERRED", diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst index 9d8d080..8849d0f 100644 --- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -280,6 +280,12 @@ purposes. RC4 was dropped from the default cipher string. + .. versionchanged:: 2.7.13 + + ChaCha20/Poly1305 was added to the default cipher string. + + 3DES was dropped from the default cipher string. + .. function:: _https_verify_certificates(enable=True) Specifies whether or not server certificates are verified when creating @@ -322,6 +328,12 @@ purposes. Random generation ^^^^^^^^^^^^^^^^^ + .. deprecated:: 2.7.13 + + OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use + :func:`ssl.RAND_bytes` instead. + + .. function:: RAND_status() Return ``True`` if the SSL pseudo-random number generator has been seeded @@ -340,7 +352,7 @@ Random generation See http://egd.sourceforge.net/ or http://prngd.sourceforge.net/ for sources of entropy-gathering daemons. - Availability: not available with LibreSSL. + Availability: not available with LibreSSL and OpenSSL > 1.1.0 .. function:: RAND_add(bytes, entropy) @@ -437,13 +449,16 @@ Certificate handling :meth:`SSLContext.set_default_verify_paths`. The return value is a :term:`named tuple` ``DefaultVerifyPaths``: - * :attr:`cafile` - resolved path to cafile or None if the file doesn't exist, - * :attr:`capath` - resolved path to capath or None if the directory doesn't exist, + * :attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't exist, + * :attr:`capath` - resolved path to capath or ``None`` if the directory doesn't exist, * :attr:`openssl_cafile_env` - OpenSSL's environment key that points to a cafile, * :attr:`openssl_cafile` - hard coded path to a cafile, * :attr:`openssl_capath_env` - OpenSSL's environment key that points to a capath, * :attr:`openssl_capath` - hard coded path to a capath directory + Availability: LibreSSL ignores the environment vars + :attr:`openssl_cafile_env` and :attr:`openssl_capath_env` + .. versionadded:: 2.7.9 .. function:: enum_certificates(store_name) @@ -561,11 +576,19 @@ Constants .. versionadded:: 2.7.10 -.. data:: PROTOCOL_SSLv23 +.. data:: PROTOCOL_TLS Selects the highest protocol version that both the client and server support. Despite the name, this option can select "TLS" protocols as well as "SSL". + .. versionadded:: 2.7.13 + +.. data:: PROTOCOL_SSLv23 + + Alias for ``PROTOCOL_TLS``. + + .. deprecated:: 2.7.13 Use ``PROTOCOL_TLS`` instead. + .. data:: PROTOCOL_SSLv2 Selects SSL version 2 as the channel encryption protocol. @@ -577,6 +600,8 @@ Constants SSL version 2 is insecure. Its use is highly discouraged. + .. deprecated:: 2.7.13 OpenSSL has removed support for SSLv2. + .. data:: PROTOCOL_SSLv3 Selects SSL version 3 as the channel encryption protocol. @@ -588,10 +613,20 @@ Constants SSL version 3 is insecure. Its use is highly discouraged. + .. deprecated:: 2.7.13 + + OpenSSL has deprecated all version specific protocols. Use the default + protocol with flags like ``OP_NO_SSLv3`` instead. + .. data:: PROTOCOL_TLSv1 Selects TLS version 1.0 as the channel encryption protocol. + .. deprecated:: 2.7.13 + + OpenSSL has deprecated all version specific protocols. Use the default + protocol with flags like ``OP_NO_SSLv3`` instead. + .. data:: PROTOCOL_TLSv1_1 Selects TLS version 1.1 as the channel encryption protocol. @@ -599,6 +634,11 @@ Constants .. versionadded:: 2.7.9 + .. deprecated:: 2.7.13 + + OpenSSL has deprecated all version specific protocols. Use the default + protocol with flags like ``OP_NO_SSLv3`` instead. + .. data:: PROTOCOL_TLSv1_2 Selects TLS version 1.2 as the channel encryption protocol. This is the @@ -607,6 +647,12 @@ Constants .. versionadded:: 2.7.9 + .. deprecated:: 2.7.13 + + OpenSSL has deprecated all version specific protocols. Use the default + protocol with flags like ``OP_NO_SSLv3`` instead. + + .. data:: OP_ALL Enables workarounds for various bugs present in other SSL implementations. @@ -1112,6 +1158,9 @@ to speed up repeated connections from the same clients. This method will raise :exc:`NotImplementedError` if :data:`HAS_ALPN` is False. + OpenSSL 1.1.0+ will abort the handshake and raise :exc:`SSLError` when + both sides support ALPN but cannot agree on a protocol. + .. versionadded:: 2.7.10 .. method:: SSLContext.set_npn_protocols(protocols) @@ -1197,7 +1246,7 @@ to speed up repeated connections from the same clients. This setting doesn't apply to client sockets. You can also use the :data:`OP_SINGLE_ECDH_USE` option to further improve security. - This method is not available if :data:`HAS_ECDH` is False. + This method is not available if :data:`HAS_ECDH` is ``False``. .. seealso:: `SSL/TLS & Perfect Forward Secrecy `_ diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index 5d8ebbc..9f5255a 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -266,9 +266,9 @@ represented as a plain integer, in which case they yield a long integer. Integer literals with an ``'L'`` or ``'l'`` suffix yield long integers (``'L'`` is preferred because ``1l`` looks too much like eleven!). Numeric literals containing a decimal point or an exponent sign yield floating point numbers. -Appending ``'j'`` or ``'J'`` to a numeric literal yields a complex number with a -zero real part. A complex numeric literal is the sum of a real and an imaginary -part. +Appending ``'j'`` or ``'J'`` to a numeric literal yields an imaginary number +(a complex number with a zero real part) which you can add to an integer or +float to get a complex number with real and imaginary parts. .. index:: single: arithmetic @@ -1217,13 +1217,68 @@ string functions based on regular expressions. Line breaks are not included in the resulting list unless *keepends* is given and true. - For example, ``'ab c\n\nde fg\rkl\r\n'.splitlines()`` returns - ``['ab c', '', 'de fg', 'kl']``, while the same call with ``splitlines(True)`` - returns ``['ab c\n', '\n', 'de fg\r', 'kl\r\n']``. + Python recognizes ``"\r"``, ``"\n"``, and ``"\r\n"`` as line boundaries for + 8-bit strings. + + For example:: + + >>> 'ab c\n\nde fg\rkl\r\n'.splitlines() + ['ab c', '', 'de fg', 'kl'] + >>> 'ab c\n\nde fg\rkl\r\n'.splitlines(True) + ['ab c\n', '\n', 'de fg\r', 'kl\r\n'] Unlike :meth:`~str.split` when a delimiter string *sep* is given, this method returns an empty list for the empty string, and a terminal line - break does not result in an extra line. + break does not result in an extra line:: + + >>> "".splitlines() + [] + >>> "One line\n".splitlines() + ['One line'] + + For comparison, ``split('\n')`` gives:: + + >>> ''.split('\n') + [''] + >>> 'Two lines\n'.split('\n') + ['Two lines', ''] + +.. method:: unicode.splitlines([keepends]) + + Return a list of the lines in the string, like :meth:`str.splitlines`. + However, the Unicode method splits on the following line boundaries, + which are a superset of the :term:`universal newlines` recognized for + 8-bit strings. + + +-----------------------+-----------------------------+ + | Representation | Description | + +=======================+=============================+ + | ``\n`` | Line Feed | + +-----------------------+-----------------------------+ + | ``\r`` | Carriage Return | + +-----------------------+-----------------------------+ + | ``\r\n`` | Carriage Return + Line Feed | + +-----------------------+-----------------------------+ + | ``\v`` or ``\x0b`` | Line Tabulation | + +-----------------------+-----------------------------+ + | ``\f`` or ``\x0c`` | Form Feed | + +-----------------------+-----------------------------+ + | ``\x1c`` | File Separator | + +-----------------------+-----------------------------+ + | ``\x1d`` | Group Separator | + +-----------------------+-----------------------------+ + | ``\x1e`` | Record Separator | + +-----------------------+-----------------------------+ + | ``\x85`` | Next Line (C1 Control Code) | + +-----------------------+-----------------------------+ + | ``\u2028`` | Line Separator | + +-----------------------+-----------------------------+ + | ``\u2029`` | Paragraph Separator | + +-----------------------+-----------------------------+ + + .. versionchanged:: 2.7 + + ``\v`` and ``\f`` added to list of line boundaries. .. method:: str.startswith(prefix[, start[, end]]) @@ -1615,8 +1670,8 @@ an arbitrary object): | ``s.append(x)`` | same as ``s[len(s):len(s)] = | \(2) | | | [x]`` | | +------------------------------+--------------------------------+---------------------+ -| ``s.extend(x)`` or | for the most part the same as | \(3) | -| ``s += t`` | ``s[len(s):len(s)] = x`` | | +| ``s.extend(t)`` or | for the most part the same as | \(3) | +| ``s += t`` | ``s[len(s):len(s)] = t`` | | +------------------------------+--------------------------------+---------------------+ | ``s *= n`` | updates *s* with its contents | \(11) | | | repeated *n* times | | @@ -1653,7 +1708,7 @@ Notes: this misfeature has been deprecated since Python 1.4. (3) - *x* can be any iterable object. + *t* can be any iterable object. (4) Raises :exc:`ValueError` when *x* is not found in *s*. When a negative index is @@ -1819,7 +1874,7 @@ The constructors for both classes work the same: Test whether the set is a proper superset of *other*, that is, ``set >= other and set != other``. - .. method:: union(other, ...) + .. method:: union(*others) set | other | ... Return a new set with elements from the set and all others. @@ -1827,7 +1882,7 @@ The constructors for both classes work the same: .. versionchanged:: 2.6 Accepts multiple input iterables. - .. method:: intersection(other, ...) + .. method:: intersection(*others) set & other & ... Return a new set with elements common to the set and all others. @@ -1835,7 +1890,7 @@ The constructors for both classes work the same: .. versionchanged:: 2.6 Accepts multiple input iterables. - .. method:: difference(other, ...) + .. method:: difference(*others) set - other - ... Return a new set with elements in the set that are not in the others. @@ -1889,7 +1944,7 @@ The constructors for both classes work the same: The following table lists operations available for :class:`set` that do not apply to immutable instances of :class:`frozenset`: - .. method:: update(other, ...) + .. method:: update(*others) set |= other | ... Update the set, adding elements from all others. @@ -1897,7 +1952,7 @@ The constructors for both classes work the same: .. versionchanged:: 2.6 Accepts multiple input iterables. - .. method:: intersection_update(other, ...) + .. method:: intersection_update(*others) set &= other & ... Update the set, keeping only elements found in it and all others. @@ -1905,7 +1960,7 @@ The constructors for both classes work the same: .. versionchanged:: 2.6 Accepts multiple input iterables. - .. method:: difference_update(other, ...) + .. method:: difference_update(*others) set -= other | ... Update the set, removing elements found in others. @@ -2872,9 +2927,10 @@ an (external) *definition* for a module named *foo* somewhere.) A special attribute of every module is :attr:`~object.__dict__`. This is the dictionary containing the module's symbol table. Modifying this dictionary will actually change the module's symbol table, but direct assignment to the -:attr:`__dict__` attribute is not possible (you can write +:attr:`~object.__dict__` attribute is not possible (you can write ``m.__dict__['a'] = 1``, which defines ``m.a`` to be ``1``, but you can't write -``m.__dict__ = {}``). Modifying :attr:`__dict__` directly is not recommended. +``m.__dict__ = {}``). Modifying :attr:`~object.__dict__` directly is +not recommended. Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ```) for the older versions to avoid timing ``SET_LINENO`` instructions. diff --git a/Doc/library/ttk.rst b/Doc/library/ttk.rst index c458e73..37463ca 100644 --- a/Doc/library/ttk.rst +++ b/Doc/library/ttk.rst @@ -1380,7 +1380,7 @@ option. If the class name of a widget is unknown, use the method Layouts ^^^^^^^ -A layout can be just None, if it takes no options, or a dict of +A layout can be just ``None``, if it takes no options, or a dict of options specifying how to arrange the element. The layout mechanism uses a simplified version of the pack geometry manager: given an initial cavity, each element is allocated a parcel. Valid diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 01da6a0..ca4f37e 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -529,7 +529,7 @@ Turtle motion :param n: an integer (or ``None``) - Delete all or first/last *n* of turtle's stamps. If *n* is None, delete + Delete all or first/last *n* of turtle's stamps. If *n* is ``None``, delete all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last *n* stamps. @@ -1857,10 +1857,10 @@ Methods specific to Screen, not inherited from TurtleScreen :param height: if an integer, the height in pixels, if a float, a fraction of the screen; default is 75% of screen :param startx: if positive, starting position in pixels from the left - edge of the screen, if negative from the right edge, if None, + edge of the screen, if negative from the right edge, if ``None``, center window horizontally :param starty: if positive, starting position in pixels from the top - edge of the screen, if negative from the bottom edge, if None, + edge of the screen, if negative from the bottom edge, if ``None``, center window vertically .. doctest:: diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index 64a1834..b0eaae6 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -878,7 +878,7 @@ Test cases .. method:: assertIsNone(expr, msg=None) assertIsNotNone(expr, msg=None) - Test that *expr* is (or is not) None. + Test that *expr* is (or is not) ``None``. .. versionadded:: 2.7 @@ -1240,7 +1240,7 @@ Test cases methods that delegate to it), :meth:`assertDictEqual` and :meth:`assertMultiLineEqual`. - Setting ``maxDiff`` to None means that there is no maximum length of + Setting ``maxDiff`` to ``None`` means that there is no maximum length of diffs. .. versionadded:: 2.7 diff --git a/Doc/library/urllib.rst b/Doc/library/urllib.rst index 3b5dc16..69ef8f7 100644 --- a/Doc/library/urllib.rst +++ b/Doc/library/urllib.rst @@ -263,7 +263,7 @@ Utility functions two-element tuples is used as the *query* argument, the first element of each tuple is a key and the second is a value. The value element in itself can be a sequence and in that case, if the optional parameter *doseq* is - evaluates to *True*, individual ``key=value`` pairs separated by ``'&'`` are + evaluates to ``True``, individual ``key=value`` pairs separated by ``'&'`` are generated for each element of the value sequence for the key. The order of parameters in the encoded string will match the order of parameter tuples in the sequence. The :mod:`urlparse` module provides the functions @@ -295,6 +295,16 @@ Utility functions If both lowercase and uppercase environment variables exist (and disagree), lowercase is preferred. + .. note:: + + If the environment variable ``REQUEST_METHOD`` is set, which usually + indicates your script is running in a CGI environment, the environment + variable ``HTTP_PROXY`` (uppercase ``_PROXY``) will be ignored. This is + because that variable can be injected by a client using the "Proxy:" + HTTP header. If you need to use an HTTP proxy in a CGI environment, + either use ``ProxyHandler`` explicitly, or make sure the variable name + is in lowercase (or at least the ``_proxy`` suffix). + .. note:: urllib also exposes certain utility functions like splittype, splithost and others parsing URL into various components. But it is recommended to use diff --git a/Doc/library/urllib2.rst b/Doc/library/urllib2.rst index 8a4c80e..b808b98 100644 --- a/Doc/library/urllib2.rst +++ b/Doc/library/urllib2.rst @@ -229,6 +229,11 @@ The following classes are provided: To disable autodetected proxy pass an empty dictionary. + .. note:: + + ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; + see the documentation on :func:`~urllib.getproxies`. + .. class:: HTTPPasswordMgr() diff --git a/Doc/library/urlparse.rst b/Doc/library/urlparse.rst index 1f05e5b..b933dda 100644 --- a/Doc/library/urlparse.rst +++ b/Doc/library/urlparse.rst @@ -258,7 +258,7 @@ The :mod:`urlparse` module defines the following functions: .. doctest:: - >>> urljoin('https://www.cwi.nl/%7Eguido/Python.html', + >>> urljoin('http://www.cwi.nl/%7Eguido/Python.html', ... '//www.python.org/%7Eguido') 'http://www.python.org/%7Eguido' diff --git a/Doc/library/userdict.rst b/Doc/library/userdict.rst index 0585bda..d470bf0 100644 --- a/Doc/library/userdict.rst +++ b/Doc/library/userdict.rst @@ -14,15 +14,15 @@ for classes that already have a minimum mapping interface. This greatly simplifies writing classes that need to be substitutable for dictionaries (such as the shelve module). -This module also defines a class, :class:`UserDict`, that acts as a wrapper +This module also defines a class, :class:`~UserDict.UserDict`, that acts as a wrapper around dictionary objects. The need for this class has been largely supplanted by the ability to subclass directly from :class:`dict` (a feature that became available starting with Python version 2.2). Prior to the introduction of -:class:`dict`, the :class:`UserDict` class was used to create dictionary-like +:class:`dict`, the :class:`~UserDict.UserDict` class was used to create dictionary-like sub-classes that obtained new behaviors by overriding existing methods or adding new ones. -The :mod:`UserDict` module defines the :class:`UserDict` class and +The :mod:`UserDict` module defines the :class:`~UserDict.UserDict` class and :class:`DictMixin`: @@ -30,28 +30,28 @@ The :mod:`UserDict` module defines the :class:`UserDict` class and Class that simulates a dictionary. The instance's contents are kept in a regular dictionary, which is accessible via the :attr:`data` attribute of - :class:`UserDict` instances. If *initialdata* is provided, :attr:`data` is + :class:`~UserDict.UserDict` instances. If *initialdata* is provided, :attr:`data` is initialized with its contents; note that a reference to *initialdata* will not be kept, allowing it be used for other purposes. .. note:: - For backward compatibility, instances of :class:`UserDict` are not iterable. + For backward compatibility, instances of :class:`~UserDict.UserDict` are not iterable. .. class:: IterableUserDict([initialdata]) - Subclass of :class:`UserDict` that supports direct iteration (e.g. ``for key in + Subclass of :class:`~UserDict.UserDict` that supports direct iteration (e.g. ``for key in myDict``). In addition to supporting the methods and operations of mappings (see section -:ref:`typesmapping`), :class:`UserDict` and :class:`IterableUserDict` instances +:ref:`typesmapping`), :class:`~UserDict.UserDict` and :class:`IterableUserDict` instances provide the following attribute: .. attribute:: IterableUserDict.data - A real dictionary used to store the contents of the :class:`UserDict` class. + A real dictionary used to store the contents of the :class:`~UserDict.UserDict` class. .. class:: DictMixin() @@ -74,6 +74,9 @@ provide the following attribute: Starting with Python version 2.6, it is recommended to use :class:`collections.MutableMapping` instead of :class:`DictMixin`. + Note that DictMixin does not implement the :meth:`~dict.viewkeys`, + :meth:`~dict.viewvalues`, or :meth:`~dict.viewitems` methods. + :mod:`UserList` --- Class wrapper for list objects ================================================== @@ -93,7 +96,7 @@ provide the following attribute: In addition, this class can be mixed-in with built-in classes using multiple inheritance. This can sometimes be useful. For example, you can inherit - from :class:`UserList` and :class:`str` at the same time. That would not be + from :class:`~UserList.UserList` and :class:`str` at the same time. That would not be possible with both a real :class:`list` and a real :class:`str`. This module defines a class that acts as a wrapper around list objects. It is a @@ -101,34 +104,34 @@ useful base class for your own list-like classes, which can inherit from them and override existing methods or add new ones. In this way one can add new behaviors to lists. -The :mod:`UserList` module defines the :class:`UserList` class: +The :mod:`UserList` module defines the :class:`~UserList.UserList` class: .. class:: UserList([list]) Class that simulates a list. The instance's contents are kept in a regular - list, which is accessible via the :attr:`data` attribute of :class:`UserList` + list, which is accessible via the :attr:`data` attribute of :class:`~UserList.UserList` instances. The instance's contents are initially set to a copy of *list*, defaulting to the empty list ``[]``. *list* can be any iterable, e.g. a - real Python list or a :class:`UserList` object. + real Python list or a :class:`~UserList.UserList` object. .. note:: - The :class:`UserList` class has been moved to the :mod:`collections` + The :class:`~UserList.UserList` class has been moved to the :mod:`collections` module in Python 3. The :term:`2to3` tool will automatically adapt imports when converting your sources to Python 3. In addition to supporting the methods and operations of mutable sequences (see -section :ref:`typesseq`), :class:`UserList` instances provide the following +section :ref:`typesseq`), :class:`~UserList.UserList` instances provide the following attribute: .. attribute:: UserList.data - A real Python list object used to store the contents of the :class:`UserList` + A real Python list object used to store the contents of the :class:`~UserList.UserList` class. -**Subclassing requirements:** Subclasses of :class:`UserList` are expected to +**Subclassing requirements:** Subclasses of :class:`~UserList.UserList` are expected to offer a constructor which can be called with either no arguments or one argument. List operations which return a new sequence attempt to create an instance of the actual implementation class. To do so, it assumes that the @@ -157,10 +160,10 @@ in that case. .. note:: - This :class:`UserString` class from this module is available for backward + This :class:`~UserString.UserString` class from this module is available for backward compatibility only. If you are writing code that does not need to work with versions of Python earlier than Python 2.2, please consider subclassing directly - from the built-in :class:`str` type instead of using :class:`UserString` (there + from the built-in :class:`str` type instead of using :class:`~UserString.UserString` (there is no built-in equivalent to :class:`MutableString`). This module defines a class that acts as a wrapper around string objects. It is @@ -179,14 +182,14 @@ The :mod:`UserString` module defines the following classes: Class that simulates a string or a Unicode string object. The instance's content is kept in a regular string or Unicode string object, which is - accessible via the :attr:`data` attribute of :class:`UserString` instances. The + accessible via the :attr:`data` attribute of :class:`~UserString.UserString` instances. The instance's contents are initially set to a copy of *sequence*. *sequence* can be either a regular Python string or Unicode string, an instance of - :class:`UserString` (or a subclass) or an arbitrary sequence which can be + :class:`~UserString.UserString` (or a subclass) or an arbitrary sequence which can be converted into a string using the built-in :func:`str` function. .. note:: - The :class:`UserString` class has been moved to the :mod:`collections` + The :class:`~UserString.UserString` class has been moved to the :mod:`collections` module in Python 3. The :term:`2to3` tool will automatically adapt imports when converting your sources to Python 3. @@ -194,7 +197,7 @@ The :mod:`UserString` module defines the following classes: .. class:: MutableString([sequence]) - This class is derived from the :class:`UserString` above and redefines strings + This class is derived from the :class:`~UserString.UserString` above and redefines strings to be *mutable*. Mutable strings can't be used as dictionary keys, because dictionaries require *immutable* objects as keys. The main intention of this class is to serve as an educational example for inheritance and necessity to @@ -206,12 +209,12 @@ The :mod:`UserString` module defines the following classes: The :class:`MutableString` class has been removed in Python 3. In addition to supporting the methods and operations of string and Unicode -objects (see section :ref:`string-methods`), :class:`UserString` instances +objects (see section :ref:`string-methods`), :class:`~UserString.UserString` instances provide the following attribute: .. attribute:: MutableString.data A real Python string or Unicode object used to store the content of the - :class:`UserString` class. + :class:`~UserString.UserString` class. diff --git a/Doc/library/warnings.rst b/Doc/library/warnings.rst index 40a0770..e82bb97 100644 --- a/Doc/library/warnings.rst +++ b/Doc/library/warnings.rst @@ -140,14 +140,15 @@ the disposition of the match. Each entry is a tuple of the form (*action*, | | warnings, regardless of location | +---------------+----------------------------------------------+ -* *message* is a string containing a regular expression that the warning message - must match (the match is compiled to always be case-insensitive). +* *message* is a string containing a regular expression that the start of + the warning message must match. The expression is compiled to always be + case-insensitive. * *category* is a class (a subclass of :exc:`Warning`) of which the warning category must be a subclass in order to match. * *module* is a string containing a regular expression that the module name must - match (the match is compiled to be case-sensitive). + match. The expression is compiled to be case-sensitive. * *lineno* is an integer that the line number where the warning occurred must match, or ``0`` to match all line numbers. @@ -257,13 +258,13 @@ Updating Code For New Versions of Python Warnings that are only of interest to the developer are ignored by default. As such you should make sure to test your code with typically ignored warnings made visible. You can do this from the command-line by passing :option:`-Wd <-W>` -to the interpreter (this is shorthand for :option:`-W default`). This enables +to the interpreter (this is shorthand for :option:`!-W default`). This enables default handling for all warnings, including those that are ignored by default. To change what action is taken for encountered warnings you simply change what -argument is passed to :option:`-W`, e.g. :option:`-W error`. See the +argument is passed to :option:`-W`, e.g. :option:`!-W error`. See the :option:`-W` flag for more details on what is possible. -To programmatically do the same as :option:`-Wd`, use:: +To programmatically do the same as :option:`!-Wd`, use:: warnings.simplefilter('default') diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst index e5a99ea..afbd611 100644 --- a/Doc/library/weakref.rst +++ b/Doc/library/weakref.rst @@ -328,7 +328,7 @@ the referent is accessed:: Example ------- -This simple example shows how an application can use objects IDs to retrieve +This simple example shows how an application can use object IDs to retrieve objects that it has seen before. The IDs of the objects can then be used in other data structures without forcing the objects to remain alive, but the objects can still be retrieved by ID if they do. diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index f74b89f..03c5713 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -20,7 +20,7 @@ available. If text-mode browsers are used, the calling process will block until the user exits the browser. If the environment variable :envvar:`BROWSER` exists, it is interpreted to -override the platform default list of browsers, as a :data:`os.pathsep`-separated +override the platform default list of browsers, as an :data:`os.pathsep`-separated list of browsers to try in order. When the value of a list part contains the string ``%s``, then it is interpreted as a literal browser command line to be used with the argument URL substituted for ``%s``; if the part does not contain diff --git a/Doc/library/whichdb.rst b/Doc/library/whichdb.rst index 3bcb57c..844cc1a 100644 --- a/Doc/library/whichdb.rst +++ b/Doc/library/whichdb.rst @@ -11,8 +11,8 @@ The single function in this module attempts to guess which of the several simple -database modules available--\ :mod:`dbm`, :mod:`gdbm`, or :mod:`dbhash`\ ---should be used to open a given file. +database modules available—:mod:`dbm`, :mod:`gdbm`, or :mod:`dbhash`\ +—should be used to open a given file. .. function:: whichdb(filename) diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst index e755d18..b8b4883 100644 --- a/Doc/library/wsgiref.rst +++ b/Doc/library/wsgiref.rst @@ -711,7 +711,7 @@ This is a working "Hello World" WSGI application:: # object that accepts two arguments. For that purpose, we're going to # use a function (note that you're not limited to a function, you can # use a class for example). The first argument passed to the function - # is a dictionary containing CGI-style envrironment variables and the + # is a dictionary containing CGI-style environment variables and the # second variable is the callable object (see PEP 333). def hello_world_app(environ, start_response): status = '200 OK' # HTTP Status diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index b6d46fc..a1d7951 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -100,7 +100,7 @@ document: the one that holds all others. Here is an example program:: When you are finished with a DOM tree, you may optionally call the :meth:`unlink` method to encourage early cleanup of the now-unneeded -objects. :meth:`unlink` is a :mod:`xml.dom.minidom`\ -specific +objects. :meth:`unlink` is an :mod:`xml.dom.minidom`\ -specific extension to the DOM API that renders the node and its descendants are essentially useless. Otherwise, Python's garbage collector will eventually take care of the objects in the tree. diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst index 4d98015..ee1d28c 100644 --- a/Doc/library/xml.dom.rst +++ b/Doc/library/xml.dom.rst @@ -419,7 +419,7 @@ NodeList Objects ^^^^^^^^^^^^^^^^ A :class:`NodeList` represents a sequence of nodes. These objects are used in -two ways in the DOM Core recommendation: the :class:`Element` objects provides +two ways in the DOM Core recommendation: an :class:`Element` object provides one as its list of child nodes, and the :meth:`getElementsByTagName` and :meth:`getElementsByTagNameNS` methods of :class:`Node` return objects with this interface to represent query results. diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst index 20cfc4c..08b677b 100644 --- a/Doc/library/xml.etree.elementtree.rst +++ b/Doc/library/xml.etree.elementtree.rst @@ -639,7 +639,7 @@ Element Objects .. method:: clear() Resets an element. This function removes all subelements, clears all - attributes, and sets the text and tail attributes to None. + attributes, and sets the text and tail attributes to ``None``. .. method:: get(key, default=None) @@ -855,8 +855,8 @@ ElementTree Objects Writes the element tree to a file, as XML. *file* is a file name, or a file object opened for writing. *encoding* [1]_ is the output encoding (default is US-ASCII). *xml_declaration* controls if an XML declaration - should be added to the file. Use False for never, True for always, None - for only if not US-ASCII or UTF-8 (default is None). *default_namespace* + should be added to the file. Use ``False`` for never, ``True`` for always, ``None`` + for only if not US-ASCII or UTF-8 (default is ``None``). *default_namespace* sets the default XML namespace (for "xmlns"). *method* is either ``"xml"``, ``"html"`` or ``"text"`` (default is ``"xml"``). Returns an encoded string. diff --git a/Doc/library/xml.rst b/Doc/library/xml.rst index 1945e1b..a8f20cd 100644 --- a/Doc/library/xml.rst +++ b/Doc/library/xml.rst @@ -56,15 +56,15 @@ like inline `DTD`_ (document type definition) with entities. The following table gives an overview of the known attacks and if the various modules are vulnerable to them. -========================= ======== ========= ========= ======== ========= -kind sax etree minidom pulldom xmlrpc -========================= ======== ========= ========= ======== ========= -billion laughs **Yes** **Yes** **Yes** **Yes** **Yes** -quadratic blowup **Yes** **Yes** **Yes** **Yes** **Yes** -external entity expansion **Yes** No (1) No (2) **Yes** No (3) -`DTD`_ retrieval **Yes** No No **Yes** No -decompression bomb No No No No **Yes** -========================= ======== ========= ========= ======== ========= +========================= ============== =============== ============== ============== ============== +kind sax etree minidom pulldom xmlrpc +========================= ============== =============== ============== ============== ============== +billion laughs **Vulnerable** **Vulnerable** **Vulnerable** **Vulnerable** **Vulnerable** +quadratic blowup **Vulnerable** **Vulnerable** **Vulnerable** **Vulnerable** **Vulnerable** +external entity expansion **Vulnerable** Safe (1) Safe (2) **Vulnerable** Safe (3) +`DTD`_ retrieval **Vulnerable** Safe Safe **Vulnerable** Safe +decompression bomb Safe Safe Safe Safe **Vulnerable** +========================= ============== =============== ============== ============== ============== 1. :mod:`xml.etree.ElementTree` doesn't expand external entities and raises a ParserError when an entity occurs. diff --git a/Doc/library/xml.sax.reader.rst b/Doc/library/xml.sax.reader.rst index 14af050..17aa8f0 100644 --- a/Doc/library/xml.sax.reader.rst +++ b/Doc/library/xml.sax.reader.rst @@ -306,7 +306,7 @@ InputSource Objects Get the byte stream for this input source. The getEncoding method will return the character encoding for this byte stream, - or None if unknown. + or ``None`` if unknown. .. method:: InputSource.setCharacterStream(charfile) diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 3322552..ba613b3 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -497,4 +497,61 @@ Instances have the following attributes: Size of the uncompressed file. + +.. _zipfile-commandline: +.. program:: zipfile + +Command-Line Interface +---------------------- + +The :mod:`zipfile` module provides a simple command-line interface to interact +with ZIP archives. + +If you want to create a new ZIP archive, specify its name after the :option:`-c` +option and then list the filename(s) that should be included: + +.. code-block:: shell-session + + $ python -m zipfile -c monty.zip spam.txt eggs.txt + +Passing a directory is also acceptable: + +.. code-block:: shell-session + + $ python -m zipfile -c monty.zip life-of-brian_1979/ + +If you want to extract a ZIP archive into the specified directory, use +the :option:`-e` option: + +.. code-block:: shell-session + + $ python -m zipfile -e monty.zip target-dir/ + +For a list of the files in a ZIP archive, use the :option:`-l` option: + +.. code-block:: shell-session + + $ python -m zipfile -l monty.zip + + +Command-line options +~~~~~~~~~~~~~~~~~~~~ + +.. cmdoption:: -l + + List files in a zipfile. + +.. cmdoption:: -c ... + + Create zipfile from source files. + +.. cmdoption:: -e + + Extract zipfile into target directory. + +.. cmdoption:: -t + + Test whether the zipfile is valid or not. + + .. _PKZIP Application Note: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 91305f6..e43f2a6 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -149,7 +149,9 @@ Examples -------- Here is an example that imports a module from a ZIP archive - note that the -:mod:`zipimport` module is not explicitly used. :: +:mod:`zipimport` module is not explicitly used. + +.. code-block:: shell-session $ unzip -l example.zip Archive: example.zip diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index fe0cea8..db2fa17 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -301,7 +301,7 @@ Sequences character is represented by a string of one item. Characters represent (at least) 8-bit bytes. The built-in functions :func:`chr` and :func:`ord` convert between characters and nonnegative integers representing the byte values. Bytes - with the values 0-127 usually represent the corresponding ASCII values, but the + with the values 0--127 usually represent the corresponding ASCII values, but the interpretation of values is up to the program. The string data type is also used to represent arrays of bytes, e.g., to hold data read from a file. @@ -481,6 +481,24 @@ Callable types .. tabularcolumns:: |l|L|l| + .. index:: + single: __doc__ (function attribute) + single: __name__ (function attribute) + single: __module__ (function attribute) + single: __dict__ (function attribute) + single: __defaults__ (function attribute) + single: __code__ (function attribute) + single: __globals__ (function attribute) + single: __closure__ (function attribute) + single: func_doc (function attribute) + single: func_name (function attribute) + single: func_dict (function attribute) + single: func_defaults (function attribute) + single: func_code (function attribute) + single: func_globals (function attribute) + single: func_closure (function attribute) + pair: global; namespace + +-----------------------+-------------------------------+-----------+ | Attribute | Meaning | | +=======================+===============================+===========+ @@ -488,7 +506,8 @@ Callable types | :attr:`func_doc` | string, or ``None`` if | | | | unavailable. | | +-----------------------+-------------------------------+-----------+ - | :attr:`__name__` | The function's name. | Writable | + | :attr:`~definition.\ | The function's name | Writable | + | __name__` | | | | :attr:`func_name` | | | +-----------------------+-------------------------------+-----------+ | :attr:`__module__` | The name of the module the | Writable | @@ -511,9 +530,9 @@ Callable types | | module in which the function | | | | was defined. | | +-----------------------+-------------------------------+-----------+ - | :attr:`__dict__` | The namespace supporting | Writable | - | :attr:`func_dict` | arbitrary function | | - | | attributes. | | + | :attr:`~object.\ | The namespace supporting | Writable | + | __dict__` | arbitrary function | | + | :attr:`func_dict` | attributes. | | +-----------------------+-------------------------------+-----------+ | :attr:`__closure__` | ``None`` or a tuple of cells | Read-only | | :attr:`func_closure` | that contain bindings for the | | @@ -540,24 +559,6 @@ Callable types Additional information about a function's definition can be retrieved from its code object; see the description of internal types below. - .. index:: - single: __doc__ (function attribute) - single: __name__ (function attribute) - single: __module__ (function attribute) - single: __dict__ (function attribute) - single: __defaults__ (function attribute) - single: __code__ (function attribute) - single: __globals__ (function attribute) - single: __closure__ (function attribute) - single: func_doc (function attribute) - single: func_name (function attribute) - single: func_dict (function attribute) - single: func_defaults (function attribute) - single: func_code (function attribute) - single: func_globals (function attribute) - single: func_closure (function attribute) - pair: global; namespace - User-defined methods .. index:: object: method @@ -571,7 +572,7 @@ Callable types :attr:`im_func` is the function object; :attr:`im_class` is the class of :attr:`im_self` for bound methods or the class that asked for the method for unbound methods; :attr:`__doc__` is the method's documentation (same as - ``im_func.__doc__``); :attr:`__name__` is the method name (same as + ``im_func.__doc__``); :attr:`~definition.__name__` is the method name (same as ``im_func.__name__``); :attr:`__module__` is the name of the module the method was defined in, or ``None`` if unavailable. @@ -683,7 +684,7 @@ Callable types standard built-in module). The number and type of the arguments are determined by the C function. Special read-only attributes: :attr:`__doc__` is the function's documentation string, or ``None`` if - unavailable; :attr:`__name__` is the function's name; :attr:`__self__` is + unavailable; :attr:`~definition.__name__` is the function's name; :attr:`__self__` is set to ``None`` (but see the next item); :attr:`__module__` is the name of the module the function was defined in or ``None`` if unavailable. @@ -744,7 +745,7 @@ Modules .. index:: single: __dict__ (module attribute) - Special read-only attribute: :attr:`__dict__` is the module's namespace as a + Special read-only attribute: :attr:`~object.__dict__` is the module's namespace as a dictionary object. .. impl-detail:: @@ -806,7 +807,7 @@ Classes static method object, it is transformed into the object wrapped by the static method object. See section :ref:`descriptors` for another way in which attributes retrieved from a class may differ from those actually contained in - its :attr:`__dict__` (note that only new-style classes support descriptors). + its :attr:`~object.__dict__` (note that only new-style classes support descriptors). .. index:: triple: class; attribute; assignment @@ -824,12 +825,12 @@ Classes single: __bases__ (class attribute) single: __doc__ (class attribute) - Special attributes: :attr:`__name__` is the class name; :attr:`__module__` is - the module name in which the class was defined; :attr:`__dict__` is the + Special attributes: :attr:`~definition.__name__` is the class name; :attr:`__module__` is + the module name in which the class was defined; :attr:`~object.__dict__` is the dictionary containing the class's namespace; :attr:`~class.__bases__` is a tuple (possibly empty or a singleton) containing the base classes, in the order of their occurrence in the base class list; :attr:`__doc__` is the - class's documentation string, or None if undefined. + class's documentation string, or ``None`` if undefined. Class instances .. index:: @@ -851,7 +852,7 @@ Class instances objects are also transformed, as if they had been retrieved from class :class:`C`; see above under "Classes". See section :ref:`descriptors` for another way in which attributes of a class retrieved via its instances may - differ from the objects actually stored in the class's :attr:`__dict__`. If no + differ from the objects actually stored in the class's :attr:`~object.__dict__`. If no class attribute is found, and the object's class has a :meth:`__getattr__` method, that is called to satisfy the lookup. @@ -1012,7 +1013,7 @@ Internal types called at the start of each source code line (this is used by the debugger); :attr:`f_exc_type`, :attr:`f_exc_value`, :attr:`f_exc_traceback` represent the last exception raised in the parent frame provided another exception was ever - raised in the current frame (in all other cases they are None); :attr:`f_lineno` + raised in the current frame (in all other cases they are ``None``); :attr:`f_lineno` is the current line number of the frame --- writing to this from within a trace function jumps to the given line (only for the bottom-most frame). A debugger can implement a Jump command (aka Set Next Statement) by writing to f_lineno. @@ -1417,7 +1418,7 @@ Basic customization will not be usable in hashed collections. If a class defines mutable objects and implements a :meth:`__cmp__` or :meth:`__eq__` method, it should not implement :meth:`__hash__`, since hashable collection implementations require - that a object's hash value is immutable (if the object's hash value changes, + that an object's hash value is immutable (if the object's hash value changes, it will be in the wrong hash bucket). User-defined classes have :meth:`__cmp__` and :meth:`__hash__` methods @@ -1554,7 +1555,7 @@ method (a so-called *descriptor* class) appears in an *owner* class (the descriptor must be in either the owner's class dictionary or in the class dictionary for one of its parents). In the examples below, "the attribute" refers to the attribute whose name is the key of the property in the owner -class' :attr:`__dict__`. +class' :attr:`~object.__dict__`. .. method:: object.__get__(self, instance, owner) diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 94b003c..9f69ef7 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -715,7 +715,10 @@ Operators .. index:: single: operators -The following tokens are operators:: +The following tokens are operators: + +.. code-block:: none + + - * ** / // % << >> & | ^ ~ @@ -732,7 +735,9 @@ Delimiters .. index:: single: delimiters -The following tokens serve as delimiters in the grammar:: +The following tokens serve as delimiters in the grammar: + +.. code-block:: none ( ) [ ] { } @ , : . ` = ; @@ -745,14 +750,18 @@ of the list, the augmented assignment operators, serve lexically as delimiters, but also perform an operation. The following printing ASCII characters have special meaning as part of other -tokens or are otherwise significant to the lexical analyzer:: +tokens or are otherwise significant to the lexical analyzer: + +.. code-block:: none ' " # \ .. index:: single: ASCII@ASCII The following printing ASCII characters are not used in Python. Their -occurrence outside string literals and comments is an unconditional error:: +occurrence outside string literals and comments is an unconditional error: + +.. code-block:: none $ ? diff --git a/Doc/tools/extensions/suspicious.py b/Doc/tools/extensions/suspicious.py index d3ed849..0a70e57 100644 --- a/Doc/tools/extensions/suspicious.py +++ b/Doc/tools/extensions/suspicious.py @@ -270,5 +270,5 @@ class SuspiciousVisitor(nodes.GenericNodeVisitor): # ignore comments -- too much false positives. # (although doing this could miss some errors; # there were two sections "commented-out" by mistake - # in the Python docs that would not be catched) + # in the Python docs that would not be caught) raise nodes.SkipNode diff --git a/Doc/tools/static/version_switch.js b/Doc/tools/static/version_switch.js index 7289a4d..8b36a61 100644 --- a/Doc/tools/static/version_switch.js +++ b/Doc/tools/static/version_switch.js @@ -2,13 +2,12 @@ 'use strict'; var all_versions = { - '3.6': 'dev (3.6)', + '3.7': 'dev (3.7)', + '3.6': '3.6', '3.5': '3.5', '3.4': '3.4', '3.3': '3.3', - '3.2': '3.2', '2.7': '2.7', - '2.6': '2.6' }; function build_select(current_version, current_release) { diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index b1f3f00..963581b 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -905,8 +905,8 @@ Examples:: .. rubric:: Footnotes .. [#] Except for one thing. Module objects have a secret read-only attribute called - :attr:`__dict__` which returns the dictionary used to implement the module's - namespace; the name :attr:`__dict__` is an attribute but not a global name. + :attr:`~object.__dict__` which returns the dictionary used to implement the module's + namespace; the name :attr:`~object.__dict__` is an attribute but not a global name. Obviously, using this violates the abstraction of namespace implementation, and should be restricted to things like post-mortem debuggers. diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index 2af60d0..e1ac89f 100644 --- a/Doc/tutorial/controlflow.rst +++ b/Doc/tutorial/controlflow.rst @@ -473,7 +473,9 @@ It could be called like this:: client="John Cleese", sketch="Cheese Shop Sketch") -and of course it would print:: +and of course it would print: + +.. code-block:: none -- Do you have any Limburger ? -- I'm sorry, we're all out of Limburger diff --git a/Doc/tutorial/errors.rst b/Doc/tutorial/errors.rst index f93a544..466009e 100644 --- a/Doc/tutorial/errors.rst +++ b/Doc/tutorial/errors.rst @@ -18,7 +18,7 @@ Syntax errors, also known as parsing errors, are perhaps the most common kind of complaint you get while you are still learning Python:: >>> while True print 'Hello world' - File "", line 1, in ? + File "", line 1 while True print 'Hello world' ^ SyntaxError: invalid syntax @@ -44,15 +44,15 @@ programs, however, and result in error messages as shown here:: >>> 10 * (1/0) Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in ZeroDivisionError: integer division or modulo by zero >>> 4 + spam*3 Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in NameError: name 'spam' is not defined >>> '2' + 2 Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in TypeError: cannot concatenate 'str' and 'int' objects The last line of the error message indicates what happened. Exceptions come in @@ -223,7 +223,7 @@ exception to occur. For example:: >>> raise NameError('HiThere') Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in NameError: HiThere The sole argument to :keyword:`raise` indicates the exception to be raised. @@ -242,7 +242,7 @@ re-raise the exception:: ... An exception flew by! Traceback (most recent call last): - File "", line 2, in ? + File "", line 2, in NameError: HiThere @@ -270,7 +270,7 @@ example:: My exception occurred, value: 4 >>> raise MyError('oops!') Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in __main__.MyError: 'oops!' In this example, the default :meth:`__init__` of :class:`Exception` has been @@ -339,13 +339,13 @@ example:: ... Goodbye, world! Traceback (most recent call last): - File "", line 2, in ? + File "", line 2, in KeyboardInterrupt A *finally clause* is always executed before leaving the :keyword:`try` statement, whether an exception has occurred or not. When an exception has occurred in the :keyword:`try` clause and has not been handled by an -:keyword:`except` clause (or it has occurred in a :keyword:`except` or +:keyword:`except` clause (or it has occurred in an :keyword:`except` or :keyword:`else` clause), it is re-raised after the :keyword:`finally` clause has been executed. The :keyword:`finally` clause is also executed "on the way out" when any other clause of the :keyword:`try` statement is left via a @@ -372,7 +372,7 @@ the same :keyword:`try` statement works as of Python 2.5):: >>> divide("2", "1") executing finally clause Traceback (most recent call last): - File "", line 1, in ? + File "", line 1, in File "", line 3, in divide TypeError: unsupported operand type(s) for /: 'str' and 'str' diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst index 5f37504..50e50c7 100644 --- a/Doc/tutorial/interpreter.rst +++ b/Doc/tutorial/interpreter.rst @@ -93,7 +93,9 @@ mode*. In this mode it prompts for the next command with the *primary prompt*, usually three greater-than signs (``>>>``); for continuation lines it prompts with the *secondary prompt*, by default three dots (``...``). The interpreter prints a welcome message stating its version number and a copyright notice -before printing the first prompt:: +before printing the first prompt: + +.. code-block:: shell-session python Python 2.7 (#1, Feb 28 2010, 00:02:06) diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst index 7b6fd9c..6fb4ffd 100644 --- a/Doc/tutorial/modules.rst +++ b/Doc/tutorial/modules.rst @@ -135,7 +135,9 @@ the end of your module:: you can make the file usable as a script as well as an importable module, because the code that parses the command line only runs if the module is -executed as the "main" file:: +executed as the "main" file: + +.. code-block:: shell-session $ python fibo.py 50 1 1 2 3 5 8 13 21 34 @@ -494,7 +496,7 @@ when the ``from...import`` statement is executed. (This also works when ``__all__`` is defined.) Although certain modules are designed to export only names that follow certain -patterns when you use ``import *``, it is still considered bad practise in +patterns when you use ``import *``, it is still considered bad practice in production code. Remember, there is nothing wrong with using ``from Package import diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index bcfcbd4..c6b372b 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -224,6 +224,7 @@ Miscellaneous options raises an exception. See also :envvar:`PYTHONINSPECT`. +.. _using-on-optimizations: .. cmdoption:: -O Turn on basic optimizations. This changes the filename extension for @@ -302,7 +303,7 @@ Miscellaneous options Issue a warning when a source file mixes tabs and spaces for indentation in a way that makes it depend on the worth of a tab expressed in spaces. Issue an - error when the option is given twice (:option:`-tt`). + error when the option is given twice (:option:`!-tt`). .. cmdoption:: -u @@ -322,7 +323,7 @@ Miscellaneous options Print a message each time a module is initialized, showing the place (filename or built-in module) from which it is loaded. When given twice - (:option:`-vv`), print a message for each file that is checked for when + (:option:`!-vv`), print a message for each file that is checked for when searching for a module. Also provides information on module cleanup at exit. See also :envvar:`PYTHONVERBOSE`. @@ -344,7 +345,7 @@ Miscellaneous options invalid options when the first warning is issued). Starting from Python 2.7, :exc:`DeprecationWarning` and its descendants - are ignored by default. The :option:`-Wd` option can be used to re-enable + are ignored by default. The :option:`!-Wd` option can be used to re-enable them. Warnings can also be controlled from within a Python program using the diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst index 2cdd3a2..6d3f56e 100644 --- a/Doc/whatsnew/2.0.rst +++ b/Doc/whatsnew/2.0.rst @@ -476,7 +476,7 @@ lost, because benchmarking this is tricky and depends crucially on how often the program creates and destroys objects. The detection of cycles can be disabled when Python is compiled, if you can't afford even a tiny speed penalty or suspect that the cycle collection is buggy, by specifying the -:option:`--without-cycle-gc` switch when running the :program:`configure` +:option:`!--without-cycle-gc` switch when running the :program:`configure` script. Several people tackled this problem and contributed to a solution. An early @@ -506,7 +506,7 @@ arguments and/or a dictionary of keyword arguments. In Python 1.5 and earlier, you'd use the :func:`apply` built-in function: ``apply(f, args, kw)`` calls the function :func:`f` with the argument tuple *args* and the keyword arguments in the dictionary *kw*. :func:`apply` is the same in 2.0, but thanks to a patch -from Greg Ewing, ``f(*args, **kw)`` as a shorter and clearer way to achieve the +from Greg Ewing, ``f(*args, **kw)`` is a shorter and clearer way to achieve the same effect. This syntax is symmetrical with the syntax for defining functions:: diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst index c34ba8a..f8bb11a 100644 --- a/Doc/whatsnew/2.1.rst +++ b/Doc/whatsnew/2.1.rst @@ -442,10 +442,10 @@ Python syntax:: f.grammar = "A ::= B (C D)*" The dictionary containing attributes can be accessed as the function's -:attr:`__dict__`. Unlike the :attr:`__dict__` attribute of class instances, in -functions you can actually assign a new dictionary to :attr:`__dict__`, though +:attr:`~object.__dict__`. Unlike the :attr:`~object.__dict__` attribute of class instances, in +functions you can actually assign a new dictionary to :attr:`~object.__dict__`, though the new value is restricted to a regular Python dictionary; you *can't* be -tricky and set it to a :class:`UserDict` instance, or any other random object +tricky and set it to a :class:`~UserDict.UserDict` instance, or any other random object that behaves like a mapping. @@ -555,7 +555,7 @@ will include metadata, making it possible to build automated cataloguing systems and experiment with them. With the result experience, perhaps it'll be possible to design a really good catalog and then build support for it into Python 2.2. For example, the Distutils :command:`sdist` and :command:`bdist_\*` commands -could support a ``upload`` option that would automatically upload your +could support an ``upload`` option that would automatically upload your package to a catalog server. You can start creating packages containing :file:`PKG-INFO` even if you're not @@ -692,7 +692,7 @@ of the more notable changes are: faster than the system :func:`malloc` and have less memory overhead. The allocator uses C's :func:`malloc` function to get large pools of memory, and then fulfills smaller memory requests from these pools. It can be enabled by - providing the :option:`--with-pymalloc` option to the :program:`configure` + providing the :option:`!--with-pymalloc` option to the :program:`configure` script; see :file:`Objects/obmalloc.c` for the implementation details. Authors of C extension modules should test their code with the object allocator @@ -731,7 +731,7 @@ of the more notable changes are: ... For a fuller discussion of the line I/O changes, see the python-dev summary for - January 1-15, 2001 at https://mail.python.org/pipermail/python-dev/2001-January/. + January 1--15, 2001 at https://mail.python.org/pipermail/python-dev/2001-January/. * A new method, :meth:`popitem`, was added to dictionaries to enable destructively iterating through the contents of a dictionary; this can be faster diff --git a/Doc/whatsnew/2.2.rst b/Doc/whatsnew/2.2.rst index 43bc2ab..dfb1460 100644 --- a/Doc/whatsnew/2.2.rst +++ b/Doc/whatsnew/2.2.rst @@ -55,7 +55,7 @@ implemented in C. In particular, it's not possible to subclass built-in types, so you can't just subclass, say, lists in order to add a single useful method to them. The :mod:`UserList` module provides a class that supports all of the methods of lists and that can be subclassed further, but there's lots of C code -that expects a regular Python list and won't accept a :class:`UserList` +that expects a regular Python list and won't accept a :class:`~UserList.UserList` instance. Python 2.2 fixes this, and in the process adds some exciting new capabilities. @@ -157,7 +157,7 @@ attributes and methods were supported by an object. There were some informal conventions, such as defining :attr:`__members__` and :attr:`__methods__` attributes that were lists of names, but often the author of an extension type or a class wouldn't bother to define them. You could fall back on inspecting -the :attr:`__dict__` of an object, but when class inheritance or an arbitrary +the :attr:`~object.__dict__` of an object, but when class inheritance or an arbitrary :meth:`__getattr__` hook were in use this could still be inaccurate. The one big idea underlying the new class model is that an API for describing @@ -169,7 +169,7 @@ possible, as well as more exotic constructs. Attribute descriptors are objects that live inside class objects, and have a few attributes of their own: -* :attr:`__name__` is the attribute's name. +* :attr:`~definition.__name__` is the attribute's name. * :attr:`__doc__` is the attribute's docstring. @@ -329,7 +329,7 @@ However, Python 2.2's support for :dfn:`properties` will often be a simpler way to trap attribute references. Writing a :meth:`__getattr__` method is complicated because to avoid recursion you can't use regular attribute accesses inside them, and instead have to mess around with the contents of -:attr:`__dict__`. :meth:`__getattr__` methods also end up being called by Python +:attr:`~object.__dict__`. :meth:`__getattr__` methods also end up being called by Python when it checks for other methods such as :meth:`__repr__` or :meth:`__coerce__`, and so have to be written with this in mind. Finally, calling a function on every attribute access results in a sizable performance loss. @@ -357,15 +357,15 @@ write:: That is certainly clearer and easier to write than a pair of :meth:`__getattr__`/:meth:`__setattr__` methods that check for the :attr:`size` attribute and handle it specially while retrieving all other attributes from the -instance's :attr:`__dict__`. Accesses to :attr:`size` are also the only ones +instance's :attr:`~object.__dict__`. Accesses to :attr:`size` are also the only ones which have to perform the work of calling a function, so references to other attributes run at their usual speed. Finally, it's possible to constrain the list of attributes that can be -referenced on an object using the new :attr:`__slots__` class attribute. Python +referenced on an object using the new :attr:`~object.__slots__` class attribute. Python objects are usually very dynamic; at any time it's possible to define a new attribute on an instance by just doing ``obj.new_attr=1``. A new-style class -can define a class attribute named :attr:`__slots__` to limit the legal +can define a class attribute named :attr:`~object.__slots__` to limit the legal attributes to a particular set of names. An example will make this clear:: >>> class C(object): @@ -383,7 +383,7 @@ attributes to a particular set of names. An example will make this clear:: AttributeError: 'C' object has no attribute 'newattr' Note how you get an :exc:`AttributeError` on the attempt to assign to an -attribute not listed in :attr:`__slots__`. +attribute not listed in :attr:`~object.__slots__`. .. _sect-rellinks: @@ -779,8 +779,8 @@ Unicode Changes Python's Unicode support has been enhanced a bit in 2.2. Unicode strings are usually stored as UCS-2, as 16-bit unsigned integers. Python 2.2 can also be compiled to use UCS-4, 32-bit unsigned integers, as its internal encoding by -supplying :option:`--enable-unicode=ucs4` to the configure script. (It's also -possible to specify :option:`--disable-unicode` to completely disable Unicode +supplying :option:`!--enable-unicode=ucs4` to the configure script. (It's also +possible to specify :option:`!--disable-unicode` to completely disable Unicode support.) When built to use UCS-4 (a "wide Python"), the interpreter can natively handle @@ -979,7 +979,7 @@ New and Improved Modules output have been corrected. (Contributed by Fred L. Drake, Jr. and Tim Peters.) * The :mod:`socket` module can be compiled to support IPv6; specify the - :option:`--enable-ipv6` option to Python's configure script. (Contributed by + :option:`!--enable-ipv6` option to Python's configure script. (Contributed by Jun-ichiro "itojun" Hagino.) * Two new format characters were added to the :mod:`struct` module for 64-bit @@ -1140,7 +1140,7 @@ Some of the more notable changes are: in the main Python CVS tree, and many changes have been made to support MacOS X. The most significant change is the ability to build Python as a framework, - enabled by supplying the :option:`--enable-framework` option to the configure + enabled by supplying the :option:`!--enable-framework` option to the configure script when compiling Python. According to Jack Jansen, "This installs a self- contained Python installation plus the OS X framework "glue" into :file:`/Library/Frameworks/Python.framework` (or another location of choice). @@ -1159,7 +1159,7 @@ Some of the more notable changes are: The main change is the possibility to build Python as a framework. This installs a self-contained Python installation plus the OSX framework "glue" into /Library/Frameworks/Python.framework (or - another location of choice). For now there is little immedeate added + another location of choice). For now there is little immediate added benefit to this (actually, there is the disadvantage that you have to change your PATH to be able to find Python), but it is the basis for creating a fullblown Python application, porting the MacPython IDE, @@ -1168,7 +1168,7 @@ Some of the more notable changes are: The other change is that most MacPython toolbox modules, which interface to all the MacOS APIs such as windowing, quicktime, scripting, etc. have been ported. Again, most of these are not of - immedeate use, as they need a full application to be really useful, so + immediate use, as they need a full application to be really useful, so they have been commented out in setup.py. People wanting to experiment can uncomment them. Gestalt and Internet Config modules are enabled by default. diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst index bcf1b61..13c6960 100644 --- a/Doc/whatsnew/2.3.rst +++ b/Doc/whatsnew/2.3.rst @@ -291,7 +291,9 @@ PEP 273: Importing Modules from ZIP Archives The new :mod:`zipimport` module adds support for importing modules from a ZIP- format archive. You don't need to import the module explicitly; it will be automatically imported if a ZIP archive's filename is added to ``sys.path``. -For example:: +For example: + +.. code-block:: shell-session amk@nyman:~/src/python$ unzip -l /tmp/example.zip Archive: /tmp/example.zip @@ -392,7 +394,7 @@ be shared between all three operating systems without needing to convert the line-endings. This feature can be disabled when compiling Python by specifying the -:option:`--without-universal-newlines` switch when running Python's +:option:`!--without-universal-newlines` switch when running Python's :program:`configure` script. @@ -1111,10 +1113,10 @@ Here are all of the changes that Python 2.3 makes to the core Python language. * One of the noted incompatibilities between old- and new-style classes has been - removed: you can now assign to the :attr:`__name__` and :attr:`__bases__` + removed: you can now assign to the :attr:`~definition.__name__` and :attr:`~class.__bases__` attributes of new-style classes. There are some restrictions on what can be - assigned to :attr:`__bases__` along the lines of those relating to assigning to - an instance's :attr:`__class__` attribute. + assigned to :attr:`~class.__bases__` along the lines of those relating to assigning to + an instance's :attr:`~instance.__class__` attribute. .. ====================================================================== @@ -1681,13 +1683,13 @@ Date and time types suitable for expressing timestamps were added as the fancy features, and just stick to the basics of representing time. The three primary types are: :class:`date`, representing a day, month, and year; -:class:`time`, consisting of hour, minute, and second; and :class:`datetime`, -which contains all the attributes of both :class:`date` and :class:`time`. +:class:`~datetime.time`, consisting of hour, minute, and second; and :class:`~datetime.datetime`, +which contains all the attributes of both :class:`date` and :class:`~datetime.time`. There's also a :class:`timedelta` class representing differences between two points in time, and time zone logic is implemented by classes inheriting from the abstract :class:`tzinfo` class. -You can create instances of :class:`date` and :class:`time` by either supplying +You can create instances of :class:`date` and :class:`~datetime.time` by either supplying keyword arguments to the appropriate constructor, e.g. ``datetime.date(year=1972, month=10, day=15)``, or by using one of a number of class methods. For example, the :meth:`date.today` class method returns the @@ -1706,7 +1708,7 @@ number of methods for producing formatted strings from objects:: '2002 30 Dec' The :meth:`replace` method allows modifying one or more fields of a -:class:`date` or :class:`datetime` instance, returning a new instance:: +:class:`date` or :class:`~datetime.datetime` instance, returning a new instance:: >>> d = datetime.datetime.now() >>> d @@ -1716,11 +1718,11 @@ The :meth:`replace` method allows modifying one or more fields of a >>> Instances can be compared, hashed, and converted to strings (the result is the -same as that of :meth:`isoformat`). :class:`date` and :class:`datetime` +same as that of :meth:`isoformat`). :class:`date` and :class:`~datetime.datetime` instances can be subtracted from each other, and added to :class:`timedelta` instances. The largest missing feature is that there's no standard library support for parsing strings and getting back a :class:`date` or -:class:`datetime`. +:class:`~datetime.datetime`. For more information, refer to the module's reference documentation. (Contributed by Tim Peters.) @@ -1761,7 +1763,9 @@ This returns an object containing all of the option values, and a list of strings containing the remaining arguments. Invoking the script with the various arguments now works as you'd expect it to. -Note that the length argument is automatically converted to an integer. :: +Note that the length argument is automatically converted to an integer. + +.. code-block:: shell-session $ ./python opt.py -i data arg1 @@ -1771,7 +1775,9 @@ Note that the length argument is automatically converted to an integer. :: [] $ -The help message is automatically generated for you:: +The help message is automatically generated for you: + +.. code-block:: shell-session $ ./python opt.py --help usage: opt.py [options] @@ -1806,9 +1812,9 @@ pools of memory and then fulfills smaller memory requests from these pools. In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by default; you had to explicitly enable it when compiling Python by providing the -:option:`--with-pymalloc` option to the :program:`configure` script. In 2.3, +:option:`!--with-pymalloc` option to the :program:`configure` script. In 2.3, pymalloc has had further enhancements and is now enabled by default; you'll have -to supply :option:`--without-pymalloc` to disable it. +to supply :option:`!--without-pymalloc` to disable it. This change is transparent to code written in Python; however, pymalloc may expose bugs in C extensions. Authors of C extension modules should test their @@ -1847,7 +1853,7 @@ Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides debugging features to catch memory overwrites and doubled frees in both extension modules and in the interpreter itself. To enable this support, compile a debugging version of the Python interpreter by running :program:`configure` with -:option:`--with-pydebug`. +:option:`!--with-pydebug`. To aid extension writers, a header file :file:`Misc/pymemcompat.h` is distributed with the source to Python 2.3 that allows Python extensions to use @@ -1873,11 +1879,11 @@ Changes to Python's build process and to the C API include: * The cycle detection implementation used by the garbage collection has proven to be stable, so it's now been made mandatory. You can no longer compile Python - without it, and the :option:`--with-cycle-gc` switch to :program:`configure` has + without it, and the :option:`!--with-cycle-gc` switch to :program:`configure` has been removed. * Python can now optionally be built as a shared library - (:file:`libpython2.3.so`) by supplying :option:`--enable-shared` when running + (:file:`libpython2.3.so`) by supplying :option:`!--enable-shared` when running Python's :program:`configure` script. (Contributed by Ondrej Palkovsky.) * The :c:macro:`DL_EXPORT` and :c:macro:`DL_IMPORT` macros are now deprecated. @@ -1886,7 +1892,7 @@ Changes to Python's build process and to the C API include: generally use the :c:macro:`PyAPI_FUNC` and :c:macro:`PyAPI_DATA` macros. * The interpreter can be compiled without any docstrings for the built-in - functions and modules by supplying :option:`--without-doc-strings` to the + functions and modules by supplying :option:`!--without-doc-strings` to the :program:`configure` script. This makes the Python executable about 10% smaller, but will also mean that you can't get help for Python's built-ins. (Contributed by Gustavo Niemeyer.) @@ -1920,7 +1926,7 @@ Changes to Python's build process and to the C API include: * If you dynamically allocate type objects in your extension, you should be aware of a change in the rules relating to the :attr:`__module__` and - :attr:`__name__` attributes. In summary, you will want to ensure the type's + :attr:`~definition.__name__` attributes. In summary, you will want to ensure the type's dictionary contains a ``'__module__'`` key; making the module name the part of the type name leading up to the final period will no longer have the desired effect. For more detail, read the API reference documentation or the source. @@ -2078,4 +2084,3 @@ Michael Hudson, Chris Lambert, Detlef Lannert, Martin von Löwis, Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum. - diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst index 5555e7d..d003cdb 100644 --- a/Doc/whatsnew/2.4.rst +++ b/Doc/whatsnew/2.4.rst @@ -1425,7 +1425,9 @@ specifying the :const:`doctest.REPORT_UDIFF` (unified diffs), print word Running the above function's tests with :const:`doctest.REPORT_UDIFF` specified, -you get the following output:: +you get the following output: + +.. code-block:: none ********************************************************************** File "t.py", line 15, in g @@ -1481,10 +1483,10 @@ Some of the changes to Python's build process and to the C API are: * Python can now be built with additional profiling for the interpreter itself, intended as an aid to people developing the Python core. Providing - :option:`--enable-profiling` to the :program:`configure` script will let you + :option:`!--enable-profiling` to the :program:`configure` script will let you profile the interpreter with :program:`gprof`, and providing the - :option:`--with-tsc` switch enables profiling using the Pentium's Time-Stamp- - Counter register. Note that the :option:`--with-tsc` switch is slightly + :option:`!--with-tsc` switch enables profiling using the Pentium's Time-Stamp- + Counter register. Note that the :option:`!--with-tsc` switch is slightly misnamed, because the profiling feature also works on the PowerPC platform, though that processor architecture doesn't call that register "the TSC register". (Contributed by Jeremy Hylton.) @@ -1521,7 +1523,7 @@ code: empty list instead of raising a :exc:`TypeError` exception if called with no arguments. -* You can no longer compare the :class:`date` and :class:`datetime` instances +* You can no longer compare the :class:`date` and :class:`~datetime.datetime` instances provided by the :mod:`datetime` module. Two instances of different classes will now always be unequal, and relative comparisons (``<``, ``>``) will raise a :exc:`TypeError`. diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst index 4d23d12..c1b26f4 100644 --- a/Doc/whatsnew/2.5.rst +++ b/Doc/whatsnew/2.5.rst @@ -236,7 +236,7 @@ the repository. Before a package can be uploaded, you must be able to build a distribution using the :command:`sdist` Distutils command. Once that works, you can run ``python setup.py upload`` to add your package to the PyPI archive. Optionally you can -GPG-sign the package by supplying the :option:`--sign` and :option:`--identity` +GPG-sign the package by supplying the :option:`!--sign` and :option:`!--identity` options. Package uploading was implemented by Martin von Löwis and Richard Jones. @@ -1307,7 +1307,7 @@ complete list of changes, or look through the SVN logs for all the details. (Contributed by Skip Montanaro and Andrew McNamara.) -* The :class:`datetime` class in the :mod:`datetime` module now has a +* The :class:`~datetime.datetime` class in the :mod:`datetime` module now has a :meth:`strptime(string, format)` method for parsing date strings, contributed by Josh Spoerri. It uses the same format characters as :func:`time.strptime` and :func:`time.strftime`:: @@ -1497,7 +1497,7 @@ complete list of changes, or look through the SVN logs for all the details. * The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. (Contributed by Trent Mick.) -* The :class:`Queue` class provided by the :mod:`Queue` module gained two new +* The :class:`~Queue.Queue` class provided by the :mod:`Queue` module gained two new methods. :meth:`join` blocks until all items in the queue have been retrieved and all processing work on the items have been completed. Worker threads call the other new method, :meth:`task_done`, to signal that processing for an item @@ -1639,7 +1639,7 @@ complete list of changes, or look through the SVN logs for all the details. * The :mod:`webbrowser` module received a number of enhancements. It's now usable as a script with ``python -m webbrowser``, taking a URL as the argument; - there are a number of switches to control the behaviour (:option:`-n` for a new + there are a number of switches to control the behaviour (:option:`!-n` for a new browser window, :option:`!-t` for a new tab). New module-level functions, :func:`open_new` and :func:`open_new_tab`, were added to support this. The module's :func:`open` function supports an additional feature, an *autoraise* @@ -1649,7 +1649,7 @@ complete list of changes, or look through the SVN logs for all the details. .. Patch #754022 -* The :mod:`xmlrpclib` module now supports returning :class:`datetime` objects +* The :mod:`xmlrpclib` module now supports returning :class:`~datetime.datetime` objects for the XML-RPC date type. Supply ``use_datetime=True`` to the :func:`loads` function or the :class:`Unmarshaller` class to enable this feature. (Contributed by Skip Montanaro.) @@ -2209,7 +2209,7 @@ Port-Specific Changes * MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:`dlopen` function instead of MacOS-specific functions. -* MacOS X: an :option:`--enable-universalsdk` switch was added to the +* MacOS X: an :option:`!--enable-universalsdk` switch was added to the :program:`configure` script that compiles the interpreter as a universal binary able to run on both PowerPC and Intel processors. (Contributed by Ronald Oussoren; :issue:`2573`.) diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst index 4d06bc3..71a3b7a 100644 --- a/Doc/whatsnew/2.6.rst +++ b/Doc/whatsnew/2.6.rst @@ -609,10 +609,10 @@ multiple of 4. result = queue.get() print 'Factorial', N, '=', result -A :class:`Queue` is used to communicate the result of the factorial. -The :class:`Queue` object is stored in a global variable. +A :class:`~Queue.Queue` is used to communicate the result of the factorial. +The :class:`~Queue.Queue` object is stored in a global variable. The child process will use the value of the variable when the child -was created; because it's a :class:`Queue`, parent and child can use +was created; because it's a :class:`~Queue.Queue`, parent and child can use the object to communicate. (If the parent were to change the value of the global variable, the child's value would be unaffected, and vice versa.) @@ -1077,7 +1077,7 @@ the :mod:`io` module: There are two concrete implementations. :class:`TextIOWrapper` wraps a buffered I/O object, supporting all of the methods for text I/O and adding a :attr:`buffer` attribute for access - to the underlying object. :class:`StringIO` simply buffers + to the underlying object. :class:`~StringIO.StringIO` simply buffers everything in memory without ever writing anything to disk. (In Python 2.6, :class:`io.StringIO` is implemented in @@ -2127,7 +2127,7 @@ changes, or look through the Subversion logs for all the details. (Contributed by Christian Heimes and Mark Dickinson.) -* :class:`mmap` objects now have a :meth:`rfind` method that searches for a +* :class:`~mmap.mmap` objects now have a :meth:`rfind` method that searches for a substring beginning at the end of the string and searching backwards. The :meth:`find` method also gained an *end* parameter giving an index at which to stop searching. @@ -2605,7 +2605,7 @@ changes, or look through the Subversion logs for all the details. intended for testing purposes that lets you temporarily modify the warning filters and then restore their original values (:issue:`3781`). -* The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` +* The XML-RPC :class:`~SimpleXMLRPCServer.SimpleXMLRPCServer` and :class:`~DocXMLRPCServer.DocXMLRPCServer` classes can now be prevented from immediately opening and binding to their socket by passing True as the ``bind_and_activate`` constructor parameter. This can be used to modify the instance's @@ -2614,7 +2614,7 @@ changes, or look through the Subversion logs for all the details. open the socket and begin listening for connections. (Contributed by Peter Parente; :issue:`1599845`.) - :class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` + :class:`~SimpleXMLRPCServer.SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` attribute; if true, the exception and formatted traceback are returned as HTTP headers "X-Exception" and "X-Traceback". This feature is for debugging purposes only and should not be used on production servers @@ -2626,7 +2626,7 @@ changes, or look through the Subversion logs for all the details. :class:`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib.DateTime` type; the conversion semantics were not necessarily correct for all applications. Code using - :mod:`xmlrpclib` should convert :class:`date` and :class:`time` + :mod:`xmlrpclib` should convert :class:`date` and :class:`~datetime.time` instances. (:issue:`1330538`) The code can also handle dates before 1900 (contributed by Ralf Schmitt; :issue:`2014`) and 64-bit integers represented by using ```` in XML-RPC responses @@ -2988,7 +2988,7 @@ Changes to Python's build process and to the C API include: * On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :program:`configure` script - can take a :option:`--with-universal-archs=[32-bit|64-bit|all]` + can take a :option:`!--with-universal-archs=[32-bit|64-bit|all]` switch, controlling whether the binaries are built for 32-bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), or both. (Contributed by Ronald Oussoren.) @@ -3143,7 +3143,7 @@ Port-Specific Changes: Mac OS X * When compiling a framework build of Python, you can now specify the framework name to be used by providing the - :option:`--with-framework-name=` option to the + :option:`!--with-framework-name=` option to the :program:`configure` script. * The :mod:`macfs` module has been removed. This in turn required the @@ -3279,7 +3279,7 @@ that may require changes to your code: :class:`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib.DateTime` type; the conversion semantics were not necessarily correct for all applications. Code using - :mod:`xmlrpclib` should convert :class:`date` and :class:`time` + :mod:`xmlrpclib` should convert :class:`date` and :class:`~datetime.time` instances. (:issue:`1330538`) * (3.0-warning mode) The :class:`Exception` class now warns diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst index c391389..28a8d4b 100644 --- a/Doc/whatsnew/2.7.rst +++ b/Doc/whatsnew/2.7.rst @@ -104,7 +104,7 @@ Some key consequences of the long-term significance of 2.7 are: when compared to earlier 2.x versions. Python 2.7 is currently expected to remain supported by the core development team (receiving security updates and other bug fixes) until at least 2020 (10 years after its initial - release, compared to the more typical support period of 18-24 months). + release, compared to the more typical support period of 18--24 months). * As the Python 2.7 standard library ages, making effective use of the Python Package Index (either directly or via a redistributor) becomes @@ -245,8 +245,8 @@ Deleting an entry and reinserting it will move it to the end:: [('first', 1), ('third', 3), ('second', 5)] The :meth:`~collections.OrderedDict.popitem` method has an optional *last* -argument that defaults to True. If *last* is True, the most recently -added key is returned and removed; if it's False, the +argument that defaults to ``True``. If *last* is true, the most recently +added key is returned and removed; if it's false, the oldest key is selected:: >>> od = OrderedDict([(x,0) for x in range(20)]) @@ -390,7 +390,7 @@ Here's an example:: args = parser.parse_args() print args.__dict__ -Unless you override it, :option:`-h` and :option:`--help` switches +Unless you override it, :option:`!-h` and :option:`!--help` switches are automatically added, and produce neatly formatted output:: -> ./python.exe argparse-example.py --help @@ -532,7 +532,7 @@ implemented by Vinay Sajip, are: calling ``log.getChild('network.listen')`` is equivalent to ``getLogger('app.network.listen')``. -* The :class:`~logging.LoggerAdapter` class gained a +* The :class:`~logging.LoggerAdapter` class gained an :meth:`~logging.LoggerAdapter.isEnabledFor` method that takes a *level* and returns whether the underlying logger would process a message of that level of importance. @@ -945,7 +945,7 @@ Several performance enhancements have been added: benchmark results on 32-bit machines have been mixed. Therefore, the default is to use base 2**30 on 64-bit machines and base 2**15 on 32-bit machines; on Unix, there's a new configure option - :option:`--enable-big-digits` that can be used to override this default. + :option:`!--enable-big-digits` that can be used to override this default. Apart from the performance improvements this change should be invisible to end users, with one exception: for testing and @@ -974,7 +974,7 @@ Several performance enhancements have been added: Gregory Smith; :issue:`1087418`). * The implementation of ``%`` checks for the left-side operand being - a Python string and special-cases it; this results in a 1-3% + a Python string and special-cases it; this results in a 1--3% performance increase for applications that frequently use ``%`` with strings, such as templating libraries. (Implemented by Collin Winter; :issue:`5176`.) @@ -1503,7 +1503,7 @@ changes, or look through the Subversion logs for all the details. * The :mod:`SocketServer` module's :class:`~SocketServer.TCPServer` class now supports socket timeouts and disabling the Nagle algorithm. The :attr:`~SocketServer.TCPServer.disable_nagle_algorithm` class attribute - defaults to False; if overridden to be True, + defaults to ``False``; if overridden to be true, new request connections will have the TCP_NODELAY option set to prevent buffering many small sends into a single TCP packet. The :attr:`~SocketServer.BaseServer.timeout` class attribute can hold @@ -1820,12 +1820,12 @@ Consult the :mod:`unittest` module documentation for more details. The :func:`~unittest.main` function supports some other new options: -* :option:`-b ` or :option:`--buffer` will buffer the standard output +* :option:`-b ` or :option:`!--buffer` will buffer the standard output and standard error streams during each test. If the test passes, any resulting output will be discarded; on failure, the buffered output will be displayed. -* :option:`-c ` or :option:`--catch` will cause the control-C interrupt +* :option:`-c ` or :option:`!--catch` will cause the control-C interrupt to be handled more gracefully. Instead of interrupting the test process immediately, the currently running test will be completed and then the partial results up to the interruption will be reported. @@ -1839,7 +1839,7 @@ The :func:`~unittest.main` function supports some other new options: :func:`~unittest.removeHandler` decorator that can be used to mark tests that should have the control-C handling disabled. -* :option:`-f ` or :option:`--failfast` makes +* :option:`-f ` or :option:`!--failfast` makes test execution stop immediately when a test fails instead of continuing to execute further tests. (Suggested by Cliff Dyer and implemented by Michael Foord; :issue:`8074`.) @@ -1855,7 +1855,7 @@ The error messages for :meth:`~unittest.TestCase.assertEqual`, :meth:`~unittest.TestCase.assertTrue`, and :meth:`~unittest.TestCase.assertFalse` failures now provide more information. If you set the :attr:`~unittest.TestCase.longMessage` attribute of your :class:`~unittest.TestCase` classes to -True, both the standard error message and any additional message you +true, both the standard error message and any additional message you provide will be printed for failures. (Added by Michael Foord; :issue:`5663`.) The :meth:`~unittest.TestCase.assertRaises` method now @@ -1962,7 +1962,7 @@ GvR worked on merging them into Python's version of :mod:`unittest`. sequence comparison methods do. :func:`unittest.main` now takes an optional ``exit`` argument. If -False, :func:`~unittest.main` doesn't call :func:`sys.exit`, allowing +false, :func:`~unittest.main` doesn't call :func:`sys.exit`, allowing :func:`~unittest.main` to be used from the interactive interpreter. (Contributed by J. Pablo Fernández; :issue:`3379`.) @@ -2214,19 +2214,19 @@ Changes to Python's build process and to the C API include: with ``Py``, or with ``_ctypes``. (Implemented by Thomas Heller; :issue:`3102`.) -* New configure option: the :option:`--with-system-expat` switch allows +* New configure option: the :option:`!--with-system-expat` switch allows building the :mod:`pyexpat` module to use the system Expat library. (Contributed by Arfrever Frehtes Taifersar Arahesis; :issue:`7609`.) * New configure option: the - :option:`--with-valgrind` option will now disable the pymalloc + :option:`!--with-valgrind` option will now disable the pymalloc allocator, which is difficult for the Valgrind memory-error detector to analyze correctly. Valgrind will therefore be better at detecting memory leaks and overruns. (Contributed by James Henstridge; :issue:`2422`.) * New configure option: you can now supply an empty string to - :option:`--with-dbmliborder=` in order to disable all of the various + :option:`!--with-dbmliborder=` in order to disable all of the various DBM modules. (Added by Arfrever Frehtes Taifersar Arahesis; :issue:`6491`.) @@ -2266,7 +2266,9 @@ There is an existing data type already used for this, written in pure Python could cause a segmentation fault by taking a :c:type:`PyCObject` from module A and somehow substituting it for the :c:type:`PyCObject` in module B. Capsules know their own name, -and getting the pointer requires providing the name:: +and getting the pointer requires providing the name: + +.. code-block:: c void *vtable; @@ -2341,6 +2343,18 @@ Port-Specific Changes: Mac OS X installation and a user-installed copy of the same version. (Changed by Ronald Oussoren; :issue:`4865`.) + .. versionchanged:: 2.7.13 + + As of 2.7.13, this change was removed. + ``/Library/Python/2.7/site-packages``, the site-packages directory + used by the Apple-supplied system Python 2.7 is no longer appended to + ``sys.path`` for user-installed Pythons such as from the python.org + installers. As of macOS 10.12, Apple changed how the system + site-packages directory is configured, which could cause installation + of pip components, like setuptools, to fail. Packages installed for + the system Python will no longer be shared with user-installed + Pythons. (:issue:`28440`) + Port-Specific Changes: FreeBSD ----------------------------------- @@ -2371,19 +2385,19 @@ Other Changes and Fixes renamed, moved, or is accessed through different paths. (Patch by Ziga Seilnacht and Jean-Paul Calderone; :issue:`1180193`.) -* The :file:`regrtest.py` script now takes a :option:`--randseed=` +* The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch that takes an integer that will be used as the random seed - for the :option:`-r` option that executes tests in random order. - The :option:`-r` option also reports the seed that was used + for the :option:`!-r` option that executes tests in random order. + The :option:`!-r` option also reports the seed that was used (Added by Collin Winter.) -* Another :file:`regrtest.py` switch is :option:`-j`, which +* Another :file:`regrtest.py` switch is :option:`!-j`, which takes an integer specifying how many tests run in parallel. This allows reducing the total runtime on multi-core machines. This option is compatible with several other options, including the :option:`!-R` switch which is known to produce long runtimes. (Added by Antoine Pitrou, :issue:`6152`.) This can also be used - with a new :option:`-F` switch that runs selected tests in a loop + with a new :option:`!-F` switch that runs selected tests in a loop until they fail. (Added by Antoine Pitrou; :issue:`7312`.) * When executed as a script, the :file:`py_compile.py` module now @@ -2705,4 +2719,3 @@ The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: Nick Coghlan, Philip Jenvey, Ryan Lovett, R. David Murray, Hugh Secker-Walker. - diff --git a/Include/abstract.h b/Include/abstract.h index 78a1825..66b5fc5 100644 --- a/Include/abstract.h +++ b/Include/abstract.h @@ -94,7 +94,7 @@ Proposal numeric, sequence, and mapping. Each protocol consists of a collection of related operations. If an operation that is not provided by a particular type is invoked, then a standard exception, - NotImplementedError is raised with a operation name as an argument. + NotImplementedError is raised with an operation name as an argument. In addition, for convenience this interface defines a set of constructors for building objects of built-in types. This is needed so new objects can be returned from C functions that otherwise treat @@ -191,8 +191,8 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ int PyObject_SetAttrString(PyObject *o, char *attr_name, PyObject *v); Set the value of the attribute named attr_name, for object o, - to the value, v. Returns -1 on failure. This is - the equivalent of the Python statement: o.attr_name=v. + to the value v. Raise an exception and return -1 on failure; return 0 on + success. This is the equivalent of the Python statement o.attr_name=v. */ @@ -201,8 +201,8 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v); Set the value of the attribute named attr_name, for object o, - to the value, v. Returns -1 on failure. This is - the equivalent of the Python statement: o.attr_name=v. + to the value v. Raise an exception and return -1 on failure; return 0 on + success. This is the equivalent of the Python statement o.attr_name=v. */ @@ -453,9 +453,9 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ PyAPI_FUNC(int) PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v); /* - Map the object, key, to the value, v. Returns - -1 on failure. This is the equivalent of the Python - statement: o[key]=v. + Map the object key to the value v. Raise an exception and return -1 + on failure; return 0 on success. This is the equivalent of the Python + statement o[key]=v. */ PyAPI_FUNC(int) PyObject_DelItemString(PyObject *o, char *key); @@ -1102,10 +1102,9 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v); /* - Assign object v to the ith element of o. Returns - -1 on failure. This is the equivalent of the Python - statement: o[i]=v. - + Assign object v to the ith element of o. Raise an exception and return + -1 on failure; return 0 on success. This is the equivalent of the + Python statement o[i]=v. */ PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, Py_ssize_t i); @@ -1121,7 +1120,8 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ /* Assign the sequence object, v, to the slice in sequence - object, o, from i1 to i2. Returns -1 on failure. This is the + object, o, from i1 to i2. Raise an exception and return + -1 on failure; return 0 on success. This is the equivalent of the Python statement: o[i1:i2]=v. */ diff --git a/Include/codecs.h b/Include/codecs.h index 8a9041b..851bc9f 100644 --- a/Include/codecs.h +++ b/Include/codecs.h @@ -146,14 +146,14 @@ PyAPI_FUNC(PyObject *) PyCodec_Decoder( const char *encoding ); -/* Get a IncrementalEncoder object for the given encoding. */ +/* Get an IncrementalEncoder object for the given encoding. */ PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder( const char *encoding, const char *errors ); -/* Get a IncrementalDecoder object function for the given encoding. */ +/* Get an IncrementalDecoder object function for the given encoding. */ PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder( const char *encoding, diff --git a/Include/longobject.h b/Include/longobject.h index 8be2345..4e33ff2 100644 --- a/Include/longobject.h +++ b/Include/longobject.h @@ -110,7 +110,7 @@ PyAPI_FUNC(PyObject *) _PyLong_FromByteArray( example, if is_signed is 0 and there are more digits in the v than fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of being large enough to hold a sign bit. OverflowError is set in this - case, but bytes holds the least-signficant n bytes of the true value. + case, but bytes holds the least-significant n bytes of the true value. */ PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, unsigned char* bytes, size_t n, diff --git a/Include/object.h b/Include/object.h index 9fc0583..807b241 100644 --- a/Include/object.h +++ b/Include/object.h @@ -778,7 +778,7 @@ PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force); } while (0) /* Safely decref `op` and set `op` to NULL, especially useful in tp_clear - * and tp_dealloc implementatons. + * and tp_dealloc implementations. * * Note that "the obvious" code can be deadly: * diff --git a/Include/patchlevel.h b/Include/patchlevel.h index e47005d..5269e31 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -22,12 +22,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 2 #define PY_MINOR_VERSION 7 -#define PY_MICRO_VERSION 12 +#define PY_MICRO_VERSION 13 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "2.7.12" +#define PY_VERSION "2.7.13" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository). Empty diff --git a/Include/pyfpe.h b/Include/pyfpe.h index e957119..f9a15e6 100644 --- a/Include/pyfpe.h +++ b/Include/pyfpe.h @@ -45,10 +45,10 @@ extern "C" { * Define macros for handling SIGFPE. * Lee Busby, LLNL, November, 1996 * busby1@llnl.gov - * + * ********************************************* * Overview of the system for handling SIGFPE: - * + * * This file (Include/pyfpe.h) defines a couple of "wrapper" macros for * insertion into your Python C code of choice. Their proper use is * discussed below. The file Python/pyfpe.c defines a pair of global @@ -59,33 +59,33 @@ extern "C" { * named fpectl. This module is standard in every respect. It can be loaded * either statically or dynamically as you choose, and like any other * Python module, has no effect until you import it. - * + * * In the general case, there are three steps toward handling SIGFPE in any * Python code: - * + * * 1) Add the *_PROTECT macros to your C code as required to protect * dangerous floating point sections. - * + * * 2) Turn on the inclusion of the code by adding the ``--with-fpectl'' * flag at the time you run configure. If the fpectl or other modules * which use the *_PROTECT macros are to be dynamically loaded, be * sure they are compiled with WANT_SIGFPE_HANDLER defined. - * + * * 3) When python is built and running, import fpectl, and execute * fpectl.turnon_sigfpe(). This sets up the signal handler and enables * generation of SIGFPE whenever an exception occurs. From this point * on, any properly trapped SIGFPE should result in the Python * FloatingPointError exception. - * + * * Step 1 has been done already for the Python kernel code, and should be * done soon for the NumPy array package. Step 2 is usually done once at * python install time. Python's behavior with respect to SIGFPE is not * changed unless you also do step 3. Thus you can control this new * facility at compile time, or run time, or both. - * - ******************************** + * + ******************************** * Using the macros in your code: - * + * * static PyObject *foobar(PyObject *self,PyObject *args) * { * .... @@ -94,17 +94,17 @@ extern "C" { * PyFPE_END_PROTECT(result) * .... * } - * + * * If a floating point error occurs in dangerous_op, foobar returns 0 (NULL), * after setting the associated value of the FloatingPointError exception to * "Error in foobar". ``Dangerous_op'' can be a single operation, or a block * of code, function calls, or any combination, so long as no alternate * return is possible before the PyFPE_END_PROTECT macro is reached. - * + * * The macros can only be used in a function context where an error return * can be recognized as signaling a Python exception. (Generally, most * functions that return a PyObject * will qualify.) - * + * * Guido's original design suggestion for PyFPE_START_PROTECT and * PyFPE_END_PROTECT had them open and close a local block, with a locally * defined jmp_buf and jmp_buf pointer. This would allow recursive nesting @@ -112,17 +112,17 @@ extern "C" { * variables need to be declared with the "volatile" type qualifier to keep * setjmp from corrupting their values. Some current implementations seem * to be more restrictive. For example, the HPUX man page for setjmp says - * + * * Upon the return from a setjmp() call caused by a longjmp(), the * values of any non-static local variables belonging to the routine * from which setjmp() was called are undefined. Code which depends on * such values is not guaranteed to be portable. - * + * * I therefore decided on a more limited form of nesting, using a counter * variable (PyFPE_counter) to keep track of any recursion. If an exception * occurs in an ``inner'' pair of macros, the return will apparently * come from the outermost level. - * + * */ #ifdef WANT_SIGFPE_HANDLER @@ -146,14 +146,14 @@ if (!PyFPE_counter++ && setjmp(PyFPE_jbuf)) { \ * this statement so that it gets executed *before* the unsafe expression * which we're trying to protect. That pretty well messes things up, * of course. - * + * * If the expression(s) you're trying to protect don't happen to return a * value, you will need to manufacture a dummy result just to preserve the * correct ordering of statements. Note that the macro passes the address * of its argument (so you need to give it something which is addressable). * If your expression returns multiple results, pass the last such result * to PyFPE_END_PROTECT. - * + * * Note that PyFPE_dummy returns a double, which is cast to int. * This seeming insanity is to tickle the Floating Point Unit (FPU). * If an exception has occurred in a preceding floating point operation, diff --git a/Include/pymacconfig.h b/Include/pymacconfig.h index 0c28f5c..9dde11b 100644 --- a/Include/pymacconfig.h +++ b/Include/pymacconfig.h @@ -63,7 +63,7 @@ # if defined(__LP64__) /* MacOSX 10.4 (the first release to support 64-bit code * at all) only supports 64-bit in the UNIX layer. - * Therefore surpress the toolbox-glue in 64-bit mode. + * Therefore suppress the toolbox-glue in 64-bit mode. */ /* In 64-bit mode setpgrp always has no arguments, in 32-bit @@ -91,7 +91,7 @@ * * Specifically: OSX 10.4 has limited supported for '%zd', while * 10.5 has full support for '%zd'. A binary built on 10.5 won't - * work properly on 10.4 unless we surpress the definition + * work properly on 10.4 unless we suppress the definition * of PY_FORMAT_SIZE_T */ #undef PY_FORMAT_SIZE_T diff --git a/Include/pymactoolbox.h b/Include/pymactoolbox.h index fd15975..6e48ca3 100644 --- a/Include/pymactoolbox.h +++ b/Include/pymactoolbox.h @@ -9,9 +9,24 @@ #include -#ifndef __LP64__ +/* +** Issue #27806: Workaround for gcc 4.x which does not have _has_include. +*/ +#ifndef __has_include +#define __has_include(x) 0 +#endif +/* Workaround */ + +#if __has_include() +#include +#define APPLE_SUPPORTS_QUICKTIME (__MAC_OS_X_VERSION_MAX_ALLOWED < 101200) && !__LP64__ +#else +#define APPLE_SUPPORTS_QUICKTIME !__LP64__ +#endif + +#if APPLE_SUPPORTS_QUICKTIME #include -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* ** Helper routines for error codes and such. @@ -21,10 +36,10 @@ extern PyObject *PyMac_OSErrException; /* Exception for OSErr */ PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */ PyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */ PyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert fsspec->path */ -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* ** These conversion routines are defined in mactoolboxglue.c itself. @@ -109,54 +124,54 @@ extern PyObject *CmpInstObj_New(ComponentInstance); extern int CmpInstObj_Convert(PyObject *, ComponentInstance *); /* Ctl exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *CtlObj_New(ControlHandle); extern int CtlObj_Convert(PyObject *, ControlHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Dlg exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *DlgObj_New(DialogPtr); extern int DlgObj_Convert(PyObject *, DialogPtr *); extern PyObject *DlgObj_WhichDialog(DialogPtr); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Drag exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *DragObj_New(DragReference); extern int DragObj_Convert(PyObject *, DragReference *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* List exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *ListObj_New(ListHandle); extern int ListObj_Convert(PyObject *, ListHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Menu exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *MenuObj_New(MenuHandle); extern int MenuObj_Convert(PyObject *, MenuHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qd exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *GrafObj_New(GrafPtr); extern int GrafObj_Convert(PyObject *, GrafPtr *); extern PyObject *BMObj_New(BitMapPtr); extern int BMObj_Convert(PyObject *, BitMapPtr *); extern PyObject *QdRGB_New(RGBColor *); extern int QdRGB_Convert(PyObject *, RGBColor *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qdoffs exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *GWorldObj_New(GWorldPtr); extern int GWorldObj_Convert(PyObject *, GWorldPtr *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Qt exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *TrackObj_New(Track); extern int TrackObj_Convert(PyObject *, Track *); extern PyObject *MovieObj_New(Movie); @@ -169,7 +184,7 @@ extern PyObject *UserDataObj_New(UserData); extern int UserDataObj_Convert(PyObject *, UserData *); extern PyObject *MediaObj_New(Media); extern int MediaObj_Convert(PyObject *, Media *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Res exports */ extern PyObject *ResObj_New(Handle); @@ -178,17 +193,17 @@ extern PyObject *OptResObj_New(Handle); extern int OptResObj_Convert(PyObject *, Handle *); /* TE exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *TEObj_New(TEHandle); extern int TEObj_Convert(PyObject *, TEHandle *); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Win exports */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME extern PyObject *WinObj_New(WindowPtr); extern int WinObj_Convert(PyObject *, WindowPtr *); extern PyObject *WinObj_WhichWindow(WindowPtr); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* CF exports */ extern PyObject *CFObj_New(CFTypeRef); diff --git a/Include/pymath.h b/Include/pymath.h index d35c87c..b234f97 100644 --- a/Include/pymath.h +++ b/Include/pymath.h @@ -43,7 +43,7 @@ extern int finite(double); extern double copysign(double, double); #endif -/* High precision defintion of pi and e (Euler) +/* High precision definition of pi and e (Euler) * The values are taken from libc6's math.h. */ #ifndef Py_MATH_PIl diff --git a/Include/pyport.h b/Include/pyport.h index 85e852f..0c78a1e 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -265,7 +265,7 @@ typedef Py_intptr_t Py_ssize_t; * for platforms that support that. * * If PY_LOCAL_AGGRESSIVE is defined before python.h is included, more - * "aggressive" inlining/optimizaion is enabled for the entire module. This + * "aggressive" inlining/optimization is enabled for the entire module. This * may lead to code bloat, and may slow things down for those reasons. It may * also lead to errors, if the code relies on pointer aliasing. Use with * care. @@ -702,7 +702,9 @@ extern int fdatasync(int); #ifdef __FreeBSD__ #include -#if __FreeBSD_version > 500039 +#if (__FreeBSD_version >= 500040 && __FreeBSD_version < 602113) || \ + (__FreeBSD_version >= 700000 && __FreeBSD_version < 700054) || \ + (__FreeBSD_version >= 800000 && __FreeBSD_version < 800001) # define _PY_PORT_CTYPE_UTF8_ISSUE #endif #endif @@ -713,6 +715,12 @@ extern int fdatasync(int); #endif #ifdef _PY_PORT_CTYPE_UTF8_ISSUE +#ifndef __cplusplus + /* The workaround below is unsafe in C++ because + * the defines these symbols as real functions, + * with a slightly different signature. + * See issue #10910 + */ #include #include #undef isalnum @@ -730,6 +738,7 @@ extern int fdatasync(int); #undef toupper #define toupper(c) towupper(btowc(c)) #endif +#endif /* Declarations for symbol visibility. diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 9184eb1..7781f96 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -395,7 +395,7 @@ typedef PY_UNICODE_TYPE Py_UNICODE; #define Py_UNICODE_FILL(target, value, length) \ do {Py_ssize_t i_; Py_UNICODE *t_ = (target); Py_UNICODE v_ = (value);\ - for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\ + for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\ } while (0) /* Check if substring matches at given offset. the offset must be @@ -1138,7 +1138,7 @@ PyAPI_FUNC(int) PyUnicode_EncodeDecimal( These are capable of handling Unicode objects and strings on input (we refer to them as strings in the descriptions) and return - Unicode objects or integers as apporpriate. */ + Unicode objects or integers as appropriate. */ /* Concat two strings giving a new Unicode string. */ @@ -1288,7 +1288,7 @@ PyAPI_FUNC(int) PyUnicode_Compare( /* Rich compare two strings and return one of the following: - NULL in case an exception was raised - - Py_True or Py_False for successfuly comparisons + - Py_True or Py_False for successful comparisons - Py_NotImplemented in case the type combination is unknown Note that Py_EQ and Py_NE comparisons can cause a UnicodeWarning in diff --git a/Lib/SimpleXMLRPCServer.py b/Lib/SimpleXMLRPCServer.py index fcc3d2e..5324e92 100644 --- a/Lib/SimpleXMLRPCServer.py +++ b/Lib/SimpleXMLRPCServer.py @@ -188,7 +188,7 @@ class SimpleXMLRPCDispatcher: are considered private and will not be called by SimpleXMLRPCServer. - If a registered function matches a XML-RPC request, then it + If a registered function matches an XML-RPC request, then it will be called instead of the registered instance. If the optional allow_dotted_names argument is true and the diff --git a/Lib/_pyio.py b/Lib/_pyio.py index 11348b2..f022a4e 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -274,7 +274,7 @@ class IOBase: Even though IOBase does not declare read, readinto, or write because their signatures will vary, implementations and clients should consider those methods part of the interface. Also, implementations - may raise a IOError when operations they do not support are called. + may raise an IOError when operations they do not support are called. The basic type used for binary data read from or written to a file is the bytes type. Method arguments may also be bytearray or memoryview of diff --git a/Lib/calendar.py b/Lib/calendar.py index 4c95a49..8fcceb7 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -174,22 +174,23 @@ class Calendar(object): Like itermonthdates(), but will yield (day number, weekday number) tuples. For days outside the specified month the day number is 0. """ - for date in self.itermonthdates(year, month): - if date.month != month: - yield (0, date.weekday()) - else: - yield (date.day, date.weekday()) + for i, d in enumerate(self.itermonthdays(year, month), self.firstweekday): + yield d, i % 7 def itermonthdays(self, year, month): """ Like itermonthdates(), but will yield day numbers. For days outside the specified month the day number is 0. """ - for date in self.itermonthdates(year, month): - if date.month != month: - yield 0 - else: - yield date.day + day1, ndays = monthrange(year, month) + days_before = (day1 - self.firstweekday) % 7 + for _ in range(days_before): + yield 0 + for d in range(1, ndays + 1): + yield d + days_after = (self.firstweekday - day1 - ndays) % 7 + for _ in range(days_after): + yield 0 def monthdatescalendar(self, year, month): """ diff --git a/Lib/chunk.py b/Lib/chunk.py index 3e3b5a4..2d15abe 100644 --- a/Lib/chunk.py +++ b/Lib/chunk.py @@ -21,7 +21,7 @@ Usually an IFF-type file consists of one or more chunks. The proposed usage of the Chunk class defined here is to instantiate an instance at the start of each chunk and read from the instance until it reaches the end, after which a new instance can be instantiated. At the end -of the file, creating a new instance will fail with a EOFError +of the file, creating a new instance will fail with an EOFError exception. Usage: diff --git a/Lib/codecs.py b/Lib/codecs.py index 3d9be35..590238e 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -252,7 +252,7 @@ class IncrementalDecoder(object): """ def __init__(self, errors='strict'): """ - Creates a IncrementalDecoder instance. + Creates an IncrementalDecoder instance. The IncrementalDecoder may use different error handling schemes by providing the errors keyword argument. See the module docstring @@ -1012,7 +1012,7 @@ def iterencode(iterator, encoding, errors='strict', **kwargs): """ Encoding iterator. - Encodes the input strings from the iterator using a IncrementalEncoder. + Encodes the input strings from the iterator using an IncrementalEncoder. errors and kwargs are passed through to the IncrementalEncoder constructor. @@ -1030,7 +1030,7 @@ def iterdecode(iterator, encoding, errors='strict', **kwargs): """ Decoding iterator. - Decodes the input strings from the iterator using a IncrementalDecoder. + Decodes the input strings from the iterator using an IncrementalDecoder. errors and kwargs are passed through to the IncrementalDecoder constructor. diff --git a/Lib/cookielib.py b/Lib/cookielib.py index eb9aec4..2dd7c48 100644 --- a/Lib/cookielib.py +++ b/Lib/cookielib.py @@ -113,7 +113,7 @@ def time2netscape(t=None): """ if t is None: t = time.time() year, mon, mday, hour, min, sec, wday = time.gmtime(t)[:7] - return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % ( + return "%s, %02d-%s-%04d %02d:%02d:%02d GMT" % ( DAYS[wday], mday, MONTHS[mon-1], year, hour, min, sec) diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py index c2e953b..bf894d4 100644 --- a/Lib/ctypes/test/test_callbacks.py +++ b/Lib/ctypes/test/test_callbacks.py @@ -1,3 +1,4 @@ +import functools import unittest from ctypes import * from ctypes.test import need_symbol @@ -246,6 +247,40 @@ class SampleCallbacksTestCase(unittest.TestCase): self.assertEqual(result, callback(1.1*1.1, 2.2*2.2, 3.3*3.3, 4.4*4.4, 5.5*5.5)) + def test_callback_large_struct(self): + class Check: pass + + class X(Structure): + _fields_ = [ + ('first', c_ulong), + ('second', c_ulong), + ('third', c_ulong), + ] + + def callback(check, s): + check.first = s.first + check.second = s.second + check.third = s.third + + check = Check() + s = X() + s.first = 0xdeadbeef + s.second = 0xcafebabe + s.third = 0x0bad1dea + + CALLBACK = CFUNCTYPE(None, X) + dll = CDLL(_ctypes_test.__file__) + func = dll._testfunc_cbk_large_struct + func.argtypes = (X, CALLBACK) + func.restype = None + # the function just calls the callback with the passed structure + func(s, CALLBACK(functools.partial(callback, check))) + self.assertEqual(check.first, s.first) + self.assertEqual(check.second, s.second) + self.assertEqual(check.third, s.third) + self.assertEqual(check.first, 0xdeadbeef) + self.assertEqual(check.second, 0xcafebabe) + self.assertEqual(check.third, 0x0bad1dea) ################################################################ diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py index e7a0a93..c10d441 100644 --- a/Lib/ctypes/test/test_find.py +++ b/Lib/ctypes/test/test_find.py @@ -1,6 +1,7 @@ import unittest -import os +import os.path import sys +from test import test_support from ctypes import * from ctypes.util import find_library from ctypes.test import is_resource_enabled @@ -65,28 +66,10 @@ class Test_OpenGL_libs(unittest.TestCase): if self.gle: self.gle.gleGetJoinStyle -# On platforms where the default shared library suffix is '.so', -# at least some libraries can be loaded as attributes of the cdll -# object, since ctypes now tries loading the lib again -# with '.so' appended of the first try fails. -# -# Won't work for libc, unfortunately. OTOH, it isn't -# needed for libc since this is already mapped into the current -# process (?) -# -# On MAC OSX, it won't work either, because dlopen() needs a full path, -# and the default suffix is either none or '.dylib'. -@unittest.skip('test disabled') -@unittest.skipUnless(os.name=="posix" and sys.platform != "darwin", - 'test not suitable for this platform') -class LoadLibs(unittest.TestCase): - def test_libm(self): - import math - libm = cdll.libm - sqrt = libm.sqrt - sqrt.argtypes = (c_double,) - sqrt.restype = c_double - self.assertEqual(sqrt(2), math.sqrt(2)) + def test_shell_injection(self): + result = find_library('; echo Hello shell > ' + test_support.TESTFN) + self.assertFalse(os.path.lexists(test_support.TESTFN)) + self.assertIsNone(result) if __name__ == "__main__": unittest.main() diff --git a/Lib/ctypes/test/test_frombuffer.py b/Lib/ctypes/test/test_frombuffer.py index 9f4bb28..d708ed6 100644 --- a/Lib/ctypes/test/test_frombuffer.py +++ b/Lib/ctypes/test/test_frombuffer.py @@ -77,5 +77,13 @@ class Test(unittest.TestCase): self.assertRaises(ValueError, (c_int * 1).from_buffer_copy, a, 16 * sizeof(c_int)) + def test_abstract(self): + self.assertRaises(TypeError, Array.from_buffer, bytearray(10)) + self.assertRaises(TypeError, Structure.from_buffer, bytearray(10)) + self.assertRaises(TypeError, Union.from_buffer, bytearray(10)) + self.assertRaises(TypeError, Array.from_buffer_copy, b"123") + self.assertRaises(TypeError, Structure.from_buffer_copy, b"123") + self.assertRaises(TypeError, Union.from_buffer_copy, b"123") + if __name__ == '__main__': unittest.main() diff --git a/Lib/ctypes/test/test_numbers.py b/Lib/ctypes/test/test_numbers.py index d623465..ec42e96 100644 --- a/Lib/ctypes/test/test_numbers.py +++ b/Lib/ctypes/test/test_numbers.py @@ -76,7 +76,7 @@ class NumberTestCase(unittest.TestCase): self.assertEqual(t(v).value, truth(v)) def test_typeerror(self): - # Only numbers are allowed in the contructor, + # Only numbers are allowed in the constructor, # otherwise TypeError is raised for t in signed_types + unsigned_types + float_types: self.assertRaises(TypeError, t, "") diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py index f983a6b..5650189 100644 --- a/Lib/ctypes/test/test_structures.py +++ b/Lib/ctypes/test/test_structures.py @@ -106,7 +106,7 @@ class StructureTestCase(unittest.TestCase): self.assertEqual(alignment(XX), alignment(X)) self.assertEqual(sizeof(XX), calcsize("3s 3s 0s")) - def test_emtpy(self): + def test_empty(self): # I had problems with these # # Although these are pathological cases: Empty Structures! diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index b2c514d..ab10ec5 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -1,4 +1,6 @@ -import sys, os +import os +import subprocess +import sys # find_library(name) returns the pathname of a library, or None. if os.name == "nt": @@ -86,25 +88,28 @@ elif os.name == "posix": import re, tempfile, errno def _findLib_gcc(name): + # Run GCC's linker with the -t (aka --trace) option and examine the + # library name it prints out. The GCC command will fail because we + # haven't supplied a proper program with main(), but that does not + # matter. expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name) - fdout, ccout = tempfile.mkstemp() - os.close(fdout) - cmd = 'if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;' \ - 'LANG=C LC_ALL=C $CC -Wl,-t -o ' + ccout + ' 2>&1 -l' + name + cmd = 'if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit; fi;' \ + 'LANG=C LC_ALL=C $CC -Wl,-t -o "$2" 2>&1 -l"$1"' + + temp = tempfile.NamedTemporaryFile() try: - f = os.popen(cmd) - try: - trace = f.read() - finally: - rv = f.close() + proc = subprocess.Popen((cmd, '_findLib_gcc', name, temp.name), + shell=True, + stdout=subprocess.PIPE) + [trace, _] = proc.communicate() finally: try: - os.unlink(ccout) + temp.close() except OSError, e: + # ENOENT is raised if the file was already removed, which is + # the normal behaviour of GCC if linking fails if e.errno != errno.ENOENT: raise - if rv == 10: - raise OSError, 'gcc or cc command not found' res = re.search(expr, trace) if not res: return None @@ -116,13 +121,17 @@ elif os.name == "posix": def _get_soname(f): if not f: return None - cmd = "/usr/ccs/bin/dump -Lpv 2>/dev/null " + f - f = os.popen(cmd) + + null = open(os.devnull, "wb") try: - data = f.read() - finally: - f.close() - res = re.search(r'\[.*\]\sSONAME\s+([^\s]+)', data) + with null: + proc = subprocess.Popen(("/usr/ccs/bin/dump", "-Lpv", f), + stdout=subprocess.PIPE, + stderr=null) + except OSError: # E.g. command not found + return None + [data, _] = proc.communicate() + res = re.search(br'\[.*\]\sSONAME\s+([^\s]+)', data) if not res: return None return res.group(1) @@ -131,16 +140,12 @@ elif os.name == "posix": # assuming GNU binutils / ELF if not f: return None - cmd = 'if ! type objdump >/dev/null 2>&1; then exit 10; fi;' \ - "objdump -p -j .dynamic 2>/dev/null " + f - f = os.popen(cmd) - try: - dump = f.read() - finally: - rv = f.close() - if rv == 10: - raise OSError, 'objdump command not found' - res = re.search(r'\sSONAME\s+([^\s]+)', dump) + cmd = 'if ! type objdump >/dev/null 2>&1; then exit; fi;' \ + 'objdump -p -j .dynamic 2>/dev/null "$1"' + proc = subprocess.Popen((cmd, '_get_soname', f), shell=True, + stdout=subprocess.PIPE) + [dump, _] = proc.communicate() + res = re.search(br'\sSONAME\s+([^\s]+)', dump) if not res: return None return res.group(1) @@ -151,23 +156,30 @@ elif os.name == "posix": def _num_version(libname): # "libxyz.so.MAJOR.MINOR" => [ MAJOR, MINOR ] - parts = libname.split(".") + parts = libname.split(b".") nums = [] try: while parts: nums.insert(0, int(parts.pop())) except ValueError: pass - return nums or [ sys.maxint ] + return nums or [sys.maxint] def find_library(name): ename = re.escape(name) expr = r':-l%s\.\S+ => \S*/(lib%s\.\S+)' % (ename, ename) - f = os.popen('/sbin/ldconfig -r 2>/dev/null') + + null = open(os.devnull, 'wb') try: - data = f.read() - finally: - f.close() + with null: + proc = subprocess.Popen(('/sbin/ldconfig', '-r'), + stdout=subprocess.PIPE, + stderr=null) + except OSError: # E.g. command not found + data = b'' + else: + [data, _] = proc.communicate() + res = re.findall(expr, data) if not res: return _get_soname(_findLib_gcc(name)) @@ -180,16 +192,32 @@ elif os.name == "posix": if not os.path.exists('/usr/bin/crle'): return None + env = dict(os.environ) + env['LC_ALL'] = 'C' + if is64: - cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null' + args = ('/usr/bin/crle', '-64') else: - cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null' + args = ('/usr/bin/crle',) paths = None - for line in os.popen(cmd).readlines(): - line = line.strip() - if line.startswith('Default Library Path (ELF):'): - paths = line.split()[4] + null = open(os.devnull, 'wb') + try: + with null: + proc = subprocess.Popen(args, + stdout=subprocess.PIPE, + stderr=null, + env=env) + except OSError: # E.g. bad executable + return None + try: + for line in proc.stdout: + line = line.strip() + if line.startswith(b'Default Library Path (ELF):'): + paths = line.split()[4] + finally: + proc.stdout.close() + proc.wait() if not paths: return None @@ -223,11 +251,20 @@ elif os.name == "posix": # XXX assuming GLIBC's ldconfig (with option -p) expr = r'\s+(lib%s\.[^\s]+)\s+\(%s' % (re.escape(name), abi_type) - f = os.popen('LC_ALL=C LANG=C /sbin/ldconfig -p 2>/dev/null') + + env = dict(os.environ) + env['LC_ALL'] = 'C' + env['LANG'] = 'C' + null = open(os.devnull, 'wb') try: - data = f.read() - finally: - f.close() + with null: + p = subprocess.Popen(['/sbin/ldconfig', '-p'], + stderr=null, + stdout=subprocess.PIPE, + env=env) + except OSError: # E.g. command not found + return None + [data, _] = p.communicate() res = re.search(expr, data) if not res: return None diff --git a/Lib/curses/ascii.py b/Lib/curses/ascii.py index 800fd8b..6a466e0 100644 --- a/Lib/curses/ascii.py +++ b/Lib/curses/ascii.py @@ -54,13 +54,13 @@ def _ctoi(c): def isalnum(c): return isalpha(c) or isdigit(c) def isalpha(c): return isupper(c) or islower(c) def isascii(c): return _ctoi(c) <= 127 # ? -def isblank(c): return _ctoi(c) in (8,32) -def iscntrl(c): return _ctoi(c) <= 31 +def isblank(c): return _ctoi(c) in (9, 32) +def iscntrl(c): return _ctoi(c) <= 31 or _ctoi(c) == 127 def isdigit(c): return _ctoi(c) >= 48 and _ctoi(c) <= 57 def isgraph(c): return _ctoi(c) >= 33 and _ctoi(c) <= 126 def islower(c): return _ctoi(c) >= 97 and _ctoi(c) <= 122 def isprint(c): return _ctoi(c) >= 32 and _ctoi(c) <= 126 -def ispunct(c): return _ctoi(c) != 32 and not isalnum(c) +def ispunct(c): return isgraph(c) and not isalnum(c) def isspace(c): return _ctoi(c) in (9, 10, 11, 12, 13, 32) def isupper(c): return _ctoi(c) >= 65 and _ctoi(c) <= 90 def isxdigit(c): return isdigit(c) or \ diff --git a/Lib/decimal.py b/Lib/decimal.py index 4797a7d..e5329dd 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -1048,12 +1048,11 @@ class Decimal(object): return sign + intpart + fracpart + exp def to_eng_string(self, context=None): - """Convert to engineering-type string. + """Convert to a string, using engineering notation if an exponent is needed. - Engineering notation has an exponent which is a multiple of 3, so there - are up to 3 digits left of the decimal place. - - Same rules for when in exponential and when as a value as in __str__. + Engineering notation has an exponent which is a multiple of 3. This + can leave up to 3 digits to the left of the decimal place and may + require the addition of either one or two trailing zeros. """ return self.__str__(eng=True, context=context) @@ -5339,9 +5338,29 @@ class Context(object): return r def to_eng_string(self, a): - """Converts a number to a string, using scientific notation. + """Convert to a string, using engineering notation if an exponent is needed. + + Engineering notation has an exponent which is a multiple of 3. This + can leave up to 3 digits to the left of the decimal place and may + require the addition of either one or two trailing zeros. The operation is not affected by the context. + + >>> ExtendedContext.to_eng_string(Decimal('123E+1')) + '1.23E+3' + >>> ExtendedContext.to_eng_string(Decimal('123E+3')) + '123E+3' + >>> ExtendedContext.to_eng_string(Decimal('123E-10')) + '12.3E-9' + >>> ExtendedContext.to_eng_string(Decimal('-123E-12')) + '-123E-12' + >>> ExtendedContext.to_eng_string(Decimal('7E-7')) + '700E-9' + >>> ExtendedContext.to_eng_string(Decimal('7E+1')) + '70' + >>> ExtendedContext.to_eng_string(Decimal('0E+1')) + '0.00E+3' + """ a = _convert_other(a, raiseit=True) return a.to_eng_string(context=self) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 3a49454..2c68be3 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -161,6 +161,7 @@ class build_ext (Command): self.include_dirs.append(plat_py_include) self.ensure_string_list('libraries') + self.ensure_string_list('link_objects') # Life is easier if we're not forever checking for None, so # simplify these options to empty lists if unset diff --git a/Lib/distutils/config.py b/Lib/distutils/config.py index 7dbcc46..9e18c00 100644 --- a/Lib/distutils/config.py +++ b/Lib/distutils/config.py @@ -21,7 +21,7 @@ password:%s class PyPIRCCommand(Command): """Base command that knows how to handle the .pypirc file """ - DEFAULT_REPOSITORY = 'https://pypi.python.org/pypi' + DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' DEFAULT_REALM = 'pypi' repository = None realm = None diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py index c72a249..258e138 100644 --- a/Lib/distutils/cygwinccompiler.py +++ b/Lib/distutils/cygwinccompiler.py @@ -347,7 +347,7 @@ class Mingw32CCompiler (CygwinCCompiler): # class Mingw32CCompiler # Because these compilers aren't configured in Python's pyconfig.h file by -# default, we should at least warn the user if he is using a unmodified +# default, we should at least warn the user if he is using an unmodified # version. CONFIG_H_OK = "ok" diff --git a/Lib/distutils/tests/test_bdist_rpm.py b/Lib/distutils/tests/test_bdist_rpm.py index 2d4bca4..475a827 100644 --- a/Lib/distutils/tests/test_bdist_rpm.py +++ b/Lib/distutils/tests/test_bdist_rpm.py @@ -8,6 +8,11 @@ import shutil from test.test_support import run_unittest +try: + import zlib +except ImportError: + zlib = None + from distutils.core import Distribution from distutils.command.bdist_rpm import bdist_rpm from distutils.tests import support @@ -44,6 +49,7 @@ class BuildRpmTestCase(support.TempdirManager, # spurious sdtout/stderr output under Mac OS X @unittest.skipUnless(sys.platform.startswith('linux'), 'spurious sdtout/stderr output under Mac OS X') + @unittest.skipUnless(zlib, "requires zlib") @unittest.skipIf(find_executable('rpm') is None, 'the rpm command is not found') @unittest.skipIf(find_executable('rpmbuild') is None, @@ -86,6 +92,7 @@ class BuildRpmTestCase(support.TempdirManager, # spurious sdtout/stderr output under Mac OS X @unittest.skipUnless(sys.platform.startswith('linux'), 'spurious sdtout/stderr output under Mac OS X') + @unittest.skipUnless(zlib, "requires zlib") # http://bugs.python.org/issue1533164 @unittest.skipIf(find_executable('rpm') is None, 'the rpm command is not found') diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 3293c44..a4494db 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -168,6 +168,13 @@ class BuildExtTestCase(support.TempdirManager, cmd.finalize_options() self.assertEqual(cmd.rpath, ['one', 'two']) + # make sure cmd.link_objects is turned into a list + # if it's a string + cmd = build_ext(dist) + cmd.link_objects = 'one two,three' + cmd.finalize_options() + self.assertEqual(cmd.link_objects, ['one', 'two', 'three']) + # XXX more tests to perform for win32 # make sure define is turned into 2-tuples @@ -215,7 +222,7 @@ class BuildExtTestCase(support.TempdirManager, self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts) # second element of each tuple in 'ext_modules' - # must be a ary (build info) + # must be a dictionary (build info) exts = [('foo.bar', '')] self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts) diff --git a/Lib/distutils/tests/test_config.py b/Lib/distutils/tests/test_config.py index 17db98f..4e8af0f 100644 --- a/Lib/distutils/tests/test_config.py +++ b/Lib/distutils/tests/test_config.py @@ -89,7 +89,7 @@ class PyPIRCCommandTestCase(support.TempdirManager, config = config.items() config.sort() waited = [('password', 'secret'), ('realm', 'pypi'), - ('repository', 'https://pypi.python.org/pypi'), + ('repository', 'https://upload.pypi.org/legacy/'), ('server', 'server1'), ('username', 'me')] self.assertEqual(config, waited) @@ -99,7 +99,7 @@ class PyPIRCCommandTestCase(support.TempdirManager, config = config.items() config.sort() waited = [('password', 'secret'), ('realm', 'pypi'), - ('repository', 'https://pypi.python.org/pypi'), + ('repository', 'https://upload.pypi.org/legacy/'), ('server', 'server-login'), ('username', 'tarek')] self.assertEqual(config, waited) diff --git a/Lib/distutils/tests/test_msvc9compiler.py b/Lib/distutils/tests/test_msvc9compiler.py index 16a95ad..331c0f5 100644 --- a/Lib/distutils/tests/test_msvc9compiler.py +++ b/Lib/distutils/tests/test_msvc9compiler.py @@ -125,7 +125,7 @@ class msvc9compilerTestCase(support.TempdirManager, self.assertRaises(KeyError, Reg.get_value, 'xxx', 'xxx') # looking for values that should exist on all - # windows registeries versions. + # windows registry versions. path = r'Control Panel\Desktop' v = Reg.get_value(path, u'dragfullwindows') self.assertIn(v, (u'0', u'1', u'2')) diff --git a/Lib/distutils/tests/test_upload.py b/Lib/distutils/tests/test_upload.py index 9290f9c..3d4f305 100644 --- a/Lib/distutils/tests/test_upload.py +++ b/Lib/distutils/tests/test_upload.py @@ -82,7 +82,7 @@ class uploadTestCase(PyPIRCCommandTestCase): cmd.finalize_options() for attr, waited in (('username', 'me'), ('password', 'secret'), ('realm', 'pypi'), - ('repository', 'https://pypi.python.org/pypi')): + ('repository', 'https://upload.pypi.org/legacy/')): self.assertEqual(getattr(cmd, attr), waited) def test_saved_password(self): @@ -123,7 +123,7 @@ class uploadTestCase(PyPIRCCommandTestCase): self.assertTrue(headers['Content-type'].startswith('multipart/form-data')) self.assertEqual(self.last_open.req.get_method(), 'POST') self.assertEqual(self.last_open.req.get_full_url(), - 'https://pypi.python.org/pypi') + 'https://upload.pypi.org/legacy/') self.assertIn('xxx', self.last_open.req.data) auth = self.last_open.req.headers['Authorization'] self.assertNotIn('\n', auth) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index 4c35676..3af540e 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -230,6 +230,8 @@ class UnixCCompiler(CCompiler): if sys.platform[:6] == "darwin": # MacOSX's linker doesn't understand the -R flag at all return "-L" + dir + elif sys.platform[:7] == "freebsd": + return "-Wl,-rpath=" + dir elif sys.platform[:5] == "hp-ux": if self._is_gcc(compiler): return ["-Wl,+s", "-L" + dir] diff --git a/Lib/doctest.py b/Lib/doctest.py index 6811406..fedf670 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -219,7 +219,7 @@ def _load_testfile(filename, package, module_relative): with open(filename, 'U') as f: return f.read(), filename -# Use sys.stdout encoding for ouput. +# Use sys.stdout encoding for output. _encoding = getattr(sys.__stdout__, 'encoding', None) or 'utf-8' def _indent(s, indent=4): diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py index 8ef7e79..ac73b89 100644 --- a/Lib/dumbdbm.py +++ b/Lib/dumbdbm.py @@ -45,8 +45,9 @@ class _Database(UserDict.DictMixin): _os = _os # for _commit() _open = _open # for _commit() - def __init__(self, filebasename, mode): + def __init__(self, filebasename, mode, flag='c'): self._mode = mode + self._readonly = (flag == 'r') # The directory file is a text file. Each line looks like # "%r, (%d, %d)\n" % (key, pos, siz) @@ -81,8 +82,9 @@ class _Database(UserDict.DictMixin): try: f = _open(self._dirfile) except IOError: - pass + self._modified = not self._readonly else: + self._modified = False with f: for line in f: line = line.rstrip() @@ -96,7 +98,7 @@ class _Database(UserDict.DictMixin): # CAUTION: It's vital that _commit() succeed, and _commit() can # be called from __del__(). Therefore we must never reference a # global in this routine. - if self._index is None: + if self._index is None or not self._modified: return # nothing to do try: @@ -159,6 +161,7 @@ class _Database(UserDict.DictMixin): def __setitem__(self, key, val): if not type(key) == type('') == type(val): raise TypeError, "keys and values must be strings" + self._modified = True if key not in self._index: self._addkey(key, self._addval(val)) else: @@ -184,6 +187,7 @@ class _Database(UserDict.DictMixin): # (so that _commit() never gets called). def __delitem__(self, key): + self._modified = True # The blocks used by the associated value are lost. del self._index[key] # XXX It's unclear why we do a _commit() here (the code always @@ -246,4 +250,4 @@ def open(file, flag=None, mode=0666): # Turn off any bits that are set in the umask mode = mode & (~um) - return _Database(file, mode) + return _Database(file, mode, flag) diff --git a/Lib/email/base64mime.py b/Lib/email/base64mime.py index 4aa8000..61eba2b 100644 --- a/Lib/email/base64mime.py +++ b/Lib/email/base64mime.py @@ -166,7 +166,7 @@ def decode(s, convert_eols=None): decoding a text attachment. This function does not parse a full MIME header value encoded with - base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high + base64 (like =?iso-8859-1?b?bmloISBuaWgh?=) -- please use the high level email.header class for that functionality. """ if not s: diff --git a/Lib/email/quoprimime.py b/Lib/email/quoprimime.py index 0c18a9e..cd818eb 100644 --- a/Lib/email/quoprimime.py +++ b/Lib/email/quoprimime.py @@ -329,7 +329,7 @@ def header_decode(s): """Decode a string encoded with RFC 2045 MIME header `Q' encoding. This function does not parse a full MIME header value encoded with - quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use + quoted-printable (like =?iso-8859-1?q?Hello_World?=) -- please use the high level email.header class for that functionality. """ s = s.replace('_', ' ') diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 160306c..4b4dee3 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -561,12 +561,12 @@ class TestMessageAPI(TestEmailBase): # Issue 5871: reject an attempt to embed a header inside a header value # (header injection attack). - def test_embeded_header_via_Header_rejected(self): + def test_embedded_header_via_Header_rejected(self): msg = Message() msg['Dummy'] = Header('dummy\nX-Injected-Header: test') self.assertRaises(Errors.HeaderParseError, msg.as_string) - def test_embeded_header_via_string_rejected(self): + def test_embedded_header_via_string_rejected(self): msg = Message() msg['Dummy'] = 'dummy\nX-Injected-Header: test' self.assertRaises(Errors.HeaderParseError, msg.as_string) @@ -1673,9 +1673,9 @@ class TestRFC2047(unittest.TestCase): def test_rfc2047_Q_invalid_digits(self): # issue 10004. - s = '=?iso-8659-1?Q?andr=e9=zz?=' + s = '=?iso-8859-1?Q?andr=e9=zz?=' self.assertEqual(decode_header(s), - [(b'andr\xe9=zz', 'iso-8659-1')]) + [(b'andr\xe9=zz', 'iso-8859-1')]) # Test the MIMEMessage class diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 14c9adb..c2abed8 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -12,23 +12,9 @@ import tempfile __all__ = ["version", "bootstrap"] -_SETUPTOOLS_VERSION = "20.10.1" +_SETUPTOOLS_VERSION = "28.8.0" -_PIP_VERSION = "8.1.1" - -# pip currently requires ssl support, so we try to provide a nicer -# error message when that is missing (http://bugs.python.org/issue19744) -_MISSING_SSL_MESSAGE = ("pip {} requires SSL/TLS".format(_PIP_VERSION)) -try: - import ssl -except ImportError: - ssl = None - - def _require_ssl_for_pip(): - raise RuntimeError(_MISSING_SSL_MESSAGE) -else: - def _require_ssl_for_pip(): - pass +_PIP_VERSION = "9.0.1" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION), @@ -77,7 +63,6 @@ def bootstrap(root=None, upgrade=False, user=False, if altinstall and default_pip: raise ValueError("Cannot use altinstall and default_pip together") - _require_ssl_for_pip() _disable_pip_configuration_settings() # By default, installing pip and setuptools installs all of the @@ -143,7 +128,6 @@ def _uninstall_helper(verbosity=0): print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr) return - _require_ssl_for_pip() _disable_pip_configuration_settings() # Construct the arguments to be passed to the pip command @@ -155,11 +139,6 @@ def _uninstall_helper(verbosity=0): def _main(argv=None): - if ssl is None: - print("Ignoring ensurepip failure: {}".format(_MISSING_SSL_MESSAGE), - file=sys.stderr) - return - import argparse parser = argparse.ArgumentParser(prog="python -m ensurepip") parser.add_argument( diff --git a/Lib/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl b/Lib/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl deleted file mode 100644 index 8632eb7af04c6337f0442a878ecb99cd2b1a67e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1197664 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%0DCJ(hMV9Sq883g5#Y! zR)9ze{p17j~j-`O3W5l^q#O zYubA)bOpZbLUq2BW*>9=jAHQ`HHZK)$T}AYs4?T-dWl}4_57(TjEjx+Eo1t@3d2{q zj_s`FkmXn8`GWd%ba{?_&E5UV`F4E%$G7j>!_D(C$@=5q;4g1M#Vzw>G|-70_{wmg z506tJB__tl?ckYYdIwNW#FIH{w6I(0S(>}V)6`~=1EK63_B4C|`xt5a7}>wR&^m~H z819qxgP`W7eFsV15jNV#o#|J&vc)F&kwByUpz)`yXI3&_AY9m>$$+%aO~c4o!k}C2 zsd2u2S!}&vSQEE1Ub1=YgIaJGHd+2NcpL!b%7A(d2seAp92Jdp2#D7ZHqo8=x2tKf z>i&oHN_Jg*hz*sxxGaaRYw3-(xQ>HU8lx$Hj^UQlW2IC4&@Y_6O;bU6TAj}nRDs!% zQdMy_{zs>O8gyI$K$}PU&4glxa>m?>-R5WZ&=LLO?X~t50Q>(p9K%pfI zC#ANkDC^%5K;E-L4+`kvR-3o6yig_?eQ5~;H14>WA|*-|OBc&(U+sw^5Yo7AZJFAe{Vb2@pk&b)RW${ zNZz`tD^l$A&=PTGJCyKx0$zH`K_k({h5el67DOOCAWm)@(EXv&HX+tS0qa|mVY7K zoSz@O9Qm7QsfNqiU2_rHq=m>{y=qe6(=`1j%Hi4A4Yp*M+E8gh=6 z$|lxlS15(EV4yA5OhP-&&=e(%GfkrXlUIh;jM7bbn_hE}|2ab)^v(C*qbN@D*BOZr zzac(U008*^&GK2<8tVU_(WhH&H+HiP!Dm&s-vf`hRHwZk(A%z_95sBAmNpanfQNY4 zgVzmo??x;X%=rReQjAxb7)yOF%mJ= zD<+SwTH-5dY2$iT8L#3rD~9Ag7(8U5k`nTyxRamw#;p3mQybCr#5fkZilN#4{&DY- z{?+z58d1-rQm*T+R+z$KKA5g@cDUTRdc#*!H#&;Ribdo^$LSEd>P*1W6+N?Ntev`W zIHn^-<51azO#1HL{2ABXG4#HEQ3-chpe#9Vlk(t2#@I!Mq?RkKfBtlTb#Icct?ToO zkg+xW)GAq)rHT65?8>=47gLV|E=R%eyA3cL04|_Hu z3Ovsov7^c%5l@n{`%ukfk-?2NVwKUr-SVoBK!#fNufk8_PueOWr7#6GNJ0r^{%A~v zzQ*OU5WUQd>>|XD7@zi6Qnc&K@%h#L_P^#$TrbX-kr|1*E(m;F#Sb$>0L3sEE;D$N z2ZQyT3r{_9D&p)%Cj^Giu&l?Qcw}s3kXThC9fmzMK&BJ(-n}s(2?XVRLwxJ^$OPry zgD9Tf`f?`wI62kkvV@hjsNqnz3HTHjq~@1QpKZDGmQ1f?ghjtFn+i#l&8l+9Q*Lo< zES-pR0uI1~K>i4oOHsBpCO>3`GWaBl8AOJERjax6Y+cL&6ndp_3lQ)oW^k-7TXvSt z0aZgjO?$>Fmi6(mcTKxd*Q?Hk1wo|D3Um|ScKs~_&n~2vHo|pG=`h5(^%yW;WXXFOfI0R{J)R8<~5X3aFTk+YMh)y?qN_=mHMI%V56MN z%tUTb=;31*NVmfZFJPcQvfF^B<3A4MkD?8Ultq8jon3?*sTCW7b~2P>TnzXgu?#LDoC6@yYp@>Z@*~*P*nQ=*M# z3~rU&fD!|F+{s#}^Q9e$KlB1eS=tE$RA z)QWmPyv_)HLeet6f^j+UC9dM{jTK->7fUo~<`v?dVS$DpEZ#-L#rT1j-x^+am?&o+ zK@bCR1JWs&@foOi?fx?j;|S@%N#U>OWDm3;OB>=+z+0{I+{|Gq)l^42(#z*io%om7 z>!)p9{{9cx?|Tz0tJ$4AvpruP7HPGE&Qto(R3x~+fLv{%Y^VKLY+k4zdTzEkmZ5jq zz^rtf)x3Lb`!7TC>$7?zqn$~Fs;wj%@}6odN{K>&`C9fwAOg4s#Q&L=oupN6bC>qp zYm^p%dW&7IVoqR9?8fDeacWkzrtwrIrZ<7`&MnfOoB=qgd}@nx7-6lams?;_EaLfi zf~=WyAD6L75?EsIOWUldLrTTOPIX@Dv<-Zq&_vuSq*h52c6(P&jd zufn9(=RnsaWGjL($n*?bCXDcQ4|`#(hF~Q5*?|`OuoZUkGfVHO#ISOsdPuN3RJ3JM zma!qOH@0&!82Z|9`;Z80BGh)#5uM%#3ihURp?QbrXnhY}air~&jf25qazF@NiZH_=Z>*p3jcUym@IpSw--3qykd z{+=Q`8qfT*F@v+CvX}n(ETyASeE^p10{Nz9R^NQq@^6 zfek_+ryeB>zo^}BGdll3uNbLiL;Oy*25yX*#f9}~&b6E*k~&W}6gVfgir8}+)wapu z-6C#8sbGOa(<^ocjNVQT;yoY-CycG7q`qw?a6#bG50GpUC9Qb;K8690&Kbh`2ucU{ zX{HmW8)aK%M)8JR-aA*ypq!u1WA_+h7oD==iFlm-f_kj1;I0VB>t^BWMbQa1h)+f$&2@I_un$W_Nxac56s#YJ@$HlnPCWj^~gCl zH_j`IgO_VVV3#4TegdO|PE#xZvh5e9Li{8T<9=AXcQVi)UAp zoecP;gu6kpK1a`sgU(0SSChkk&===N6YPAxVgI{;8S9IOp@9PcV5R0SpTx>5x;A6{R_#290V6@?HzI)ZM8;acn(K$M%qhGJlx>_NQ6-&h{d@$ zWq-eHY6B39kN;*W6T5DUSyFAj-&Ou#?}ngcN@jlsn?#~Sh%))hi4{? zhp{-4+pSbCLuQpP-FJ*sQl(Oe8(YjRml(@4TH@OyxH_V!OcR^kUvGq|iV~Ew z5(cQ-D>;#x$95)=lNf$Gn`zl9vpX&3RAy9SiT>2QaXUr{$tRM1=MM3>xj*EwVG~*) z&3Hp}gT${i7eB#(cq%fC42Jx4^IoKIU9fw$WzNeKFnrB^ic}uy2QZUn4a%n|6i83_ z;)Q6E%>mX|S3SI!VH=B4cT#&_Js+WHhvxUB@cKhOHj$#V!*m`h?8pDS)gi>dc(Yf` zgxvLB!81S9XNOb|1OkRl%8sf}8l)eU#rcp0UaMCe|{Ht1xxgAiIff`5wS~+`mqikuKK%bjdiL*=mq< zYA3Hf^0M4ScRWIg>A!{zR9{#Y5f%FB$e0jVF*X3r%B#wo7#{|!)QhY?LiN*&iisu! z;Cc#VX?yW~YfTWU-BZfR;J~ci%#cD1&Y`TyuHiQ{nox69>}J6t#6I6Hs9g1uaigwEZz z7ka+y;`tF;3ohVWvqAmwZ$d238h0{Ez0+&n2M-*(@$|;VFz3Zo@4*5w<+ue=!LG-c zeW3VzLlkE6Yx9dv%)3SeM-x8;!4K%4zbnS5_u*!D z%2q#+mfm#V%RcJ@Eh4rV`$U_#X$!Zy7NXcYT}!C_Rdfq(k7gDm78z>?K6iyVLvxZD zE2BbZr5tgcJ@SU#I2f^v7|N%o)KaMCDe5UvaRc;o;e?ba)>}CW(>~@vfSQW7cqiR^ zpty9XkX*LcSm&<1>!U$UBacpP<&~D>D-^WDa{)n5BZ&CL=|CsWB>0*`rKhCZHHwJZ z*LiBe;{D>uov1f@bx3Sydw+iYZZGbPz&%+epKe1S)V32LC(UWaBuDyuTU{C4gmW5m z9Awa;CZbWMe{Y{Bho@u5pKAHCb#!#Hy@Lf@6MHA1%dOv<3V3^Z**iTvbG+JKU*1&L z`teusP;A;hjBQ=Pa;Gmkfoy|=D)}T{{N0nbC z7j**w1$-SgqD8Uegf4~|BWQ|NHDdtZNt^yWS_6bHL}=M=vN$zjP5dm-mgglvc%_A; z8;QGj$<>yD@|P)r_(a8|yz28cSc|eAG0XVdk?^jd@<<|uAeJX|(9joves7zn$)%-?t=-Qa5YG9i3>oKF1g+p7Ko^?&rPFoGkcC@N#!d!p3=r zty2Sz#HiJu2T+HejBy(a($_ZK);IzJGQ$(GhbMHP!glx<_2uN@^0bd6oP04^sq4$> z>zlZh_5FGM36{!DYt&J9c7Px^-IUBh49^4WK1cwnE;!BsvXX=*(_>%^n+#_)@iYU_ z{976}1v4u!*Rg7k2@c5;61Whh2tSix>xOpgi)$LU`dyCcNj9!+s6;)*WrIgtoo3Vj zt=uNU@>u}6EHxcU1hou(*Y5~1VrRz+U`(lCOgO$Ks=ktSl<+})@ZAIrq*^TkKil$j zH!qXMrEXSl3R6ot^&x{!T~8%X#KFZ$+>tik#Vv}2O);`zdVa)l72g-OyGvl154^t>w6nJESh5ZLO)Xyw>---ZWo-nD}&ywBO ze`eQl>UU1)*q~co4-?~S>W+1>VJh(3xl8^}ppW35lNq54B)^F4rs&*5AFfZ|gC(l- z`V3kX#kyb<%Nm6e97Q-2iu>D|>ZDeAe%phV>|#xbp((t34R4()dQ{S{!M- zeE&9kt_oo9h)Pq(DkmR`p$hw7gEnc$QUiFcrt01L=Hw&*lLAEPpC@6!gX+FhhsVh- zkWuIz->xp`W@kH`(I+S&2q(=u4q=U$zM0OndW<#3e`r-mdiFt)kcohDg#K|&V-6Yl zzwSl(#OzdehR*)?ON0o2F+gb)>d*<$vp)SDp|oj9j{;PJEKvN@7BC_UEFl>(Pz6fk z-VW(tg*K|cnJL27D6HLPJ?=8vbjkw6fP9*YiybU8k*oqIeb!d?k?sc4G&{`m&Heey z?V>OG%~>fNVN^={Z1i~4G1k7J1HgW?mee@;(je>eG!h&b5cw=yG@d6e}$t#nvNFN5y^LgAKPlVi$R$xQpG!SwvbQ=dtn*6+Hx zp0~&8`8niN3}r01p#BLnz0U$fHmgvhlVm|0AuOw)&kK-c04O1gWVB-7?qd(Q8vn+A zn^c9!(W0PIgn#W$5x)aQXwU^Or35Zbuj`jkqrRmu;q*QGQt?_u<#uLq z*0huNIaacvJUaf-MIDwFr*S+8aH8d4ocvuNbe7l}@Nu}rEkPxfH8A86ukt&Sl12%m z#yq?IrP-Bmu) z7*Rxu6|hdZSKFhJFir1?azrz_fF~yqM~s8dCD8<$^UH7wzA5#%K5FCERWKU`1QEqgKa4fcLDpYm-hb^u9ct3uWhaW6mw zg&>>Sg{HA&!$YuEEw@2JZj8>E7A7Dd&S8Qz&+z2U7TLJ>1x)V7>GN)|1EJB9-7R&^ zfA+_=NQ%De^qO9PY(4{!od*KCwSh|h#&K|dk_wW|A`Q^r$~g5fIl;0mGQh<037G?n z+3h9CEycmU?|QNCqvG9!EJ7EXJ`8vzp|jRSwt~&}adq<@5uQA=wOyft>_iz7@yy8t zi?;#_mQq03=JAf1%j#avU+y#G3*T&+cc9d>-st%vwa*{Bf(3iahzSY%;br?8O6!QA zLTe&m!J67->m&L2Ix&C9wnBejs>5*1Gm$1fvH56 zCPHLkpXAKV`yz2#+|EEO6Yw9wa%6BZbj_`>O!!{%{)Drbj-rgphT-tKgj?oW>58z2 z*oSn4weIu-<}hG?Yum!r@!jJoisy`DLOkK4o+C=5CkfTnoE7jD#4X;?h16A|Rg39p zRs}M#ikTOQL10KC2hED7?*T6#yy?(~cj0qG15^?3tK2t-DA zN;L*KPf^`)GeKTuI|6I)YPPJkp6H0TxwawN z+A1NBwVw95z1idxjO84Gv1fQSmXj{@kFmYBiYSYw3i{IXBsM5y49j2&k55D$;e-U= z$MhHd!5nre(H%PqKKEFJeR@i^@n-cAs}ZsZR0d4~@_)voK7t{18-E^I^}V)`Z8xlr zA^{qL+cx4T;1#GmS=xY*`~>2LQwbF+4_TFYZY-t&n*qo2f=I6qFM^|gJ=x7sg#Ooc z&7;lWRbASZF20*p8qB*bq)F*hCZ+3IT90p-lQrjNLTlIIlH5Jd(cPm5xDDsrdzY7k zhYME%i^Go7bGC&~DbbO<>32eHFt=4z*)hrUTm|Ioly6Q%B@C0~K`FD0*MayI_M*|S z*Nhy;Q-3Aq58#Ux^k?E*?cm*D=$&cHdap_YV+K2iS(6hIhGQ@zJgHG=5FxXrp+nXMiuc^8hi#Jz@7Z01TLL7fe{6eAJIug|*kl7Mg@-CO*V)3So z+`hU$>vq<$Gkt%$Bjb=x!`MQ$W>U6+C~TAzvXAYxbM=}Zd+{^mAu?wU&u7m5j19zh zgE9wUQAbLXFj3-#g+R@naiC(~Ot3(4bAub$;4D?{F;IK7#x6gyoZ05}|2rJmta5$! z{yh}P`n{3<_i(_`N#DuYQP`qi@uq>mA=*wtvi2@#QHQVhB%JyA){7zFrHJDe^v8eU7_WzY0q0K6Wvid>ZhK^108sl~^8aB8T+NJ)t$vr;?QQA0ITnBF`UM%Jfd^y=*}#+7&aq+Eg&Ui7TBSSM zkho5CL5M$3jNlIt7)mUg@YC~jjs~!hbGZ}gXobM<>inNe+1Xj2F&$gmdDB|CwZEYv zu*+(riTvIHrN|g{s{(;;u^c7mDqoOSP?Ku`kO-&9qGC+{Mc0PWndmhE=Lxeoyb;3&afbn6}@Y zN%>vhQqT2ekwjW$#-DF4W!eg9dxB<(2cWnzEai)Wn={!ws|V|>t#Zc7^R{t3r}WB} zkP_Nm3=07cO+bm%mX0cqwE;V4h{dF_ijRh}1?f})Mq=w^fQ-gGD*M;l*6KW5REy1H z<@Hm_eR+UYk_X|4TH5oD3e($DTAKUI*)jN9KVIVw`NloPb$TiaA0+iPk!Eq8IrW_; zb^w_L>J>=K-d?ZVPp7;0gF}(~t4_2P1az4dK!3o zygN|6Z02n*O;xC6=0<+NfWB1q-_Tl-rqKem`9{_GhPs^Xh6W&Rvt*-D{q@AAi3{=* zW>}|ItGu;xI`d{1wRVLgg}#_JGaZw1%OCD5G%KY|>+pJ{3`>(+I$j@-pS$hORn_rj zJi1+I4A3+1Pdv6r&fS)hLsh2_(r#z_1kMnT*2*FkndN2vWCEj{Rln}P3nCgS#<0ZG zzVd%!UdSItGS6k#IhEU|R5kUVi4yR_JXp`I{3z3GoJOqy zfGk4s6GV#( z(fNC7pcHLEuSUd5hco4gbkz6F1jPC&Yb(*pf5bhpT0|ue}xyBALt%>7^p9jVqiVulLeP>g^mxW%S$5z=1I<`kXlGX+={_)2F07@ni7RLZlOSLie*w4RnEz=!Ts*vi=) z-fG$c50&tR%^SG8}uw2?q3Fj}xQla)O@ktzGNDZ(JL|u=r8dsl05nISG ztyetm=LYD6k%Wi|(bog0gV>+PZv^QNlrmH{-!~LAN;#MhRRCaLkne zX~SYfQRCm+6h+XI&%0au0E*BAxPTg5!f3By)t2sqeVDgfN;00393T=4q8)Al$1CU( zjLWYJGEu!Ted%_d;d_;#vbTIL?8g22xXSik5La<3c#(1l|iQFre0bJQ&lSb zU5)cp`;wogUFINUana2D9j1Oyv zKF(;d(B-nL#$kjRxkyt6q0Y{cJLFq^&)D@0I7?lWNzNEX$TJ%_Ua!QsN5}(A4P&dn!+&^%x)V$-(;?c2l4rsojWXPiSLwO;kO4+BnJSf5Nm7Q*sDve_ z0ASN^nd==JMe*AYguMejUIK^^z>z6HzkX?90W!RBBcBgfd56j)*DedC)G958%tN51 z-U`MUo`rVXQldM!wO8B6AfhF(fXs@+H!Y)fxR*jsyUK2RBCft@94%>w2MuWC1$&SH zqOv@mM|2vsC4RVgKVO=Ves%e{JZE>mU0-^7K76fDM_;3vowWgsA&X5C&q=b$INOe= zk3-5LAGh4WV#xN*djJ9-*{#Dm4~y;90Ea*M{kl zkfJ$6Dg&ir<>_jMVJ-%FC%nUmU@rdIyhjpDUxu&h!P8ezp6xCBbC;lcLyf=kRc|kh z{aWhB0znxB5kJ}Zh0)bXNQ8uj6zbqt6){fY=N9rv)#LVYeQ-6Zu6ND*?ex|!|7X;L ze|Diu-UFb4J1{wlbT_)BHjtL}1mD)*bDK#Ugx)ALs72ODQUY$Y$`lVdMpMUS;))j* z0Wdl`8Rz-k1N&3l;?G%_Xb}+8wO%pR-$jplUgfI;JH-@Y4?w7H6QqMS5T{1^43463 zLf;Y#a`1ND)+K;FdPI4Mi|KYcgE$Ej*|!Taw$;D3gsQ~r?YEd53wJJaH{y{68u_4+%T;#BN_fHsFFNZro1J>Qa_CnJ8$sh3tw-dJ(Wi_h-xz7bVpX z*6cjF9>C}hJVII+bPkPqdFsrr1eG#aex|FzCaXgQWx$rSRD02TFa5187bLP1y+4av zfm4ImQ>E0-eX>`n*#qc+sTF7H^x3eKvfat>qZ0+7P3eWnPt$D1`JQ!Cc!(~G^kkge zpehLD+@rnweH|KF&vA@2Z3sV9&LPkoLsBg#T97V4m5X2maT?6P@FTaOT0y* zhV+1aV2vv1?&jBuJ7l>X?Q-!yFKfZPCALO&=e_e^;l9 z6Zx3bTYPr5<^X?1P|?mHk%;aFj@IzH)rY};^c_68@r~UMdV37~{u26pbw|$Gqv8F| z+V_6s#)Ovsd6$-*K(e~p1z`73Ipov!dPP8WBZ?BJAf=JE$Vl2h0-?_#Mk;iS zM~I+dpOAu6?Be&;$m4dUz*!uG2UKeiKx?D6*mO?cyXYz7#tfsH1{GX-6#M{zL>IP^+j zBV&Xx&Es~qVBCS%p`GP?;XX-s)*~g$+g$3Tal&TNkuUNJ6i^i7>9d1|tYg;o*wi3f6CNjFr@ z?%SP)D7wv(I$(0cFnZSts*f&dhwv6YQk`ZsEdy2!uvD9hpZro_8f-h#P0jn@W{+xV zBLqF#Vd^=yWtCZ#^Q*q=&K*1hzprWDZ49naLwePQyzl%;2W|9UEniPF~aE zVGpx+Z(ZBtn2s?I7*0wXw}}%Rc>xn)A)VDIr&5m#5x(pGOS~$FiAfSO05m+WI!1M! zm-XqF_&#kQ2R=u8BA`Qbn@9FR>5M&t>$`I#lh3BZN;nlT z>kb#Tm}_{n1feyJth^4^Iu1N}*M;LR^p*Fsq|ZX@yctLKNzX=mnLy&4Xt9_3k5c0UK5V zyeSj`i59jJ{5REPYG%jQ%8cHr$MdtxZkX%1C#iRy0;$un5I6q}@dDcqTrkSoNT7o1 z3YmHH9?D7$nb32;=!dy;(gyvpDY5U~U{qM&3y0+eTc{9M|Ngiv*UC6gzX)z>BODL+ zs}us}Sb2ntx^gsp$&kt}6T>tW8;-(94lCG+#j_=UZKO^zlfHV|n5C%KWM6;KG&)C` zsn6_vwlh|KaA}{?Cif7T_)Z>ILh7#6`c4=qi@aCSEgy$T(JVD7mF*WPO<@r?_KC9V zmF6agKopFi(t1fa&udBs!C#ALG<%UI^0HUWrJJeIaiF*`-4pbcA$)%qHoa8)0UjMz ztH2&n7I&XGmc8}iQ2MVB`IM1`WMCb~)$4Dh>f*Hg>^uSsYR>Hs z%e$0QeP$bagt%_Jyb;c0w%V38Aa`9zFm@OCxbcCB=27)*(%-`0ADEt-i52BvL*#Qq zll#8f(sBWBGz;iTf`rd|{CED@eP+BHP)vYD3ZDAD-V*Sj7@dYDI)|e5?(Sizm04qW zPP40K4oo;Q>-GY5pS%Tzihsxg038Zl)l^YEdc6$R8vYsp6` z-IRFU#YBp+Y9mbZxOv=;fIop)FPG1zJb;uvXA!Ks0})0aH`f|6qgUMJwPIti4$OPq zBpBfAfT3nM;Hs^9OHL#=NS*w2~q5 zX+yFG1OIvf@_m2fh{sf%Cw%Re1|dlpyU?++%s^Ncpx8?pdNrC|7UNR&Pdp3MCGNWL7Af`Pb2QvNl= z?L_jpq(e@4c!j}Du3?^kb4{(pPl~pfu}F9o^-#k3DD&*Xm#v|C%?|$t3rra9O@J}! z()%|U?C3NnupqDI{ngYyar0vR7~$*oMK<$2Bxw|@_r>k1EUG%Wm3TzKkBh;?FO4^r zs7Qs>oLFoS1U`_d{p5Lw@{H`Q%LwW3LP$Qre53O=?}hvGG@>s~EdWQXH(FS#>>BkJ z2XNFiv5gJ7t|oP;1m3YXfn7EIXcp`DgGLQSz@MPL!B_tWr{JU~(o zHE}Oc@iS@Z50+q&x!*b5UvfP?UYtP&p{QeJc9@YRJaI2|NrJH3i0FLWTpGWKxguhISF#^jkkNP0!( z(abg`7Z?AEaOHqng~(y3(_a~IxGzP~Bwo&Gs%WRn1cVbP;E6rhd z+PLHZ7ea8wg@aH5pP%0jlx@w#Fv)WCO+%fauvGmZ(?GZ2eO4#%d>}8_>HfvBmUk1$ zBx@s~ft`uhh5^)L(-n&l2NyjFP~B=9hkX&$Oc!#T>o{v0idHq);zx}o&m4X1t&e?+ zjl!$ZT7w~b<}q} z+5WnSg70tmuoqYmUz6J+yXB8Ad4B-YYF(BRu_C(?*`<5A?APWnK1T#_EBEae3EyPf z7W`osY=Eg6>6ScPH7seg>h-(<6vE*(JBqcfK}n763-Z6jTo4X&i2^l!l$~wESEa+f zVPCGLKMKvZf2TE4_8dmbNNLp22&PTM3iNK#c_T7y!f`_49}HdY3i9gq^-J?(SmIx4 zWN=KQxu9?vet-<;ZW8xEafAl?VMvAKPzk0b?Qb2-$Mj|o?6^VXg_28&;_NI7%)=#} zdBKe_D62PR?5Uyp!cF*vW2uu7@XIXqK=7S-MW2ExB(MZ}q_Kj~ARf*H*7i(-fFOKd zDrEeaIt68BjJV%BNuxk;a0y34D8`%+L)VCN^3bYOVPYYkCpHm(oP>?HPSBvuE_oct zlxqK;oKEw=%Jy*lVfQ+sKHc~?eseoM#xR)8OZ`fIG$VHGwp2KGW&!fgf!k$hG{ekY zDnTYARf6yW3#_i_=^U0Qi`)fxC7~`Sgs~~tU*h`b4#T`-J&mG zuqCC7hY8D^T5vW1pfJt#QR_fciSNz~Dz_yAotrdA1*Q>Bk2mrME=04pwO(lykh}1? zC%U)!2B<9)v_gBRKi0{I9}tw=jlAWg4;dpk34*%Q*I3%>lp^=oa5ITh`78}3T**AE zn`ns`R0Gq?@PM_~9xe|e2KnjWK)7Gq5kOOw{xJSHM2{tdn0SBv_=F|W3s3KdI_U;Y z?*#e}N9$V9So-4GbGJU|y0wA7qW?)gy?Y9$*7o=10>zBr`47d)jFz*X~Yg zP&74%aH9}0_Bw|yevdW~fAVM25Z;}C(o{zX831DjznI(>2t*g9vvK>>)l)i!f7{Z2 z{;b7@AMhmtDtL!~YAP_^yXXyyH)<4|>Ic@`gqRvn%;Z3;eifXsW4IlY0@&9y2FApK zTzY(EGV|2#M2c-mtdhePC{^O!ZNYuOnaC##ufO}r_xxtlYQe2vK*W# zZaM>Gw;Tra4+jRsW$Ko!AuH7aX(MQGL*w(Edvw0-Zk|tPgP^!-J}=*g|2kV$eczyz zg7eEIxy6b5#Dj%P4ir_q`XsvoKgIvrT8gv^%o0?3a+uw7(`Zmoi2%j9-rOqT?)^A^ z>N3;wFK4?1XYC2m&{m;Hm~J=~dTL^^4p+yaf4M(bVnql5GciHa&GXEIw=e75tN3?M zOae>J0;+Vq4MbES(7Np>;m)0uMyk^Bc7LBb?H3lF&!FTy_S5sZN}+m|c9wBnx-6SJ zMr}E?k?ls<^vg??#SCv+V9D;oRLwVSN|4xd?IJ%vu8!wD9M6dcbEyt_b+^f@X*1|x ztYdtG#Nw>!2rvofp*OV!4@SU!|CMUGkTZTMX$tMU-G?w?l8Z0cW6Psh7f8DlxkkWL zkIkSs&y=Nqd0Jo0Ob>K;q&xg%vG(pPt*$i_Lj#3X3`Vp}nWfQq3lF5feKkLpW9MI` z*0a$rg$aQ>JDtb8gX1&ZKY4XTY3+Z^58iA&$QdK8|L?Pi*XvPU@z7wV@rdw64srp6C!aHB zC1xZ8X@sMC4IgAJUq>Tn`gf#NNw!_?p~ zFPDs8Uu%qj=8P1B!Gk(XKeHb;a;C>rau7h$KlZ8)A_g%~nnoL{#(Wc+X8d)UhD8_U zo6v$CMu^nay*}19wiO7k+52G?NnEJ-@l0Ni?lntIoa?;#H@?q^#hwbJXY6L7^Md;z zbC;xN)jgKm6ZT>_Y}hcKD6~zDgpu@H2~AAj(gyR*2u}YjlWyJ+Y$Tww58XxsE^pY4 zG}STWgDIt%hX0yWDV&QVT$bX7{STADD@I>YgKvxjR|B-B0h%*mzl0 zl0$%V0n8Pi%5PjJ5jg>m{zE8qB>i{X&IyHnhUkaroq+l;LWEA`uT`&>M3Zv7W7Bd} zQefgqPbAyLNxa=HjvQzv2vvhM@sT2Hf>!`irC_e2*Nx*R^vfBV-YmhOCW6*$IORGq zo8pqpW+L^f%H8px{(Pgo*02 zi+50;<_74^8P60lm)v}4@iH%AY2rz!w^3~uZ(t;?A;FZ8BT)lB3iau`@$&kh5~l`i zS~*RaILD9h(mtYdr}p*Kqv-S|?jOXnwb~Aq&P}=nsou`?3*nt9~W zv=tAU-w(ks*C0Iq)hJDy{vbSRBAp7V&o`tK=#lp~TqhMd`)He$&xFBjWQmNk6=t-V zt?nF^Tq%X^+-T37gJOJoMvm$D-I-omrlnOi#X}#UuMc}T^$pMixO#`++}w;KX&IS6 zQK@jYAX%N-q`SGIKw|G4mh1!4Suu3cBY3W8&o2%Rx7#s3c*@;9tbTZzNuKI-hkvWv%Mz6lZ!uaqbxFg6V^1DpSnkIiGy+=q|1%gP*J7m<%>leLVVNi0?=M2FnF< z@&}F>F#Vy}1%0!}GeW2v0-O(vQvrEtvG&jC+k+Pg8c8S4T7N8g*nmAdfH6rXateHM zG6}MdBr#)MVxGg51Zz3BYdq0qpWfk39=Un z5{*Pn*fQ>vyOd(@MX7ue>&{v9DC=VG8qhNHP5a|HYY|&%l|sEJ(*Z?3EpEN>6E?6Z zrDLB0j=vFz%z4777~O{pW|M^(Zp&M!&{AjN##&)IUW#0M1d$TwYUnm?Zl6yulKl{W zTsD%(lc?kDy;~oex7U>vgAA-D-{P4rd9!)R@l6MdM zaed=g@aco+5BvvQ#g2^tER`LdnWPlu!xbFuhzv5q=*$Wz7dS7SlU|$Ik2BtywOyyg zq||ugYygZ{ve%d zx@_{&7+)gB)lOY@83!Yh$hI~p)pu>U7v}i!UYL^@43{z+^TEoj!rfd-O3l){Yt*tU z{F7lauM5xs_0adzg%P^F6BZ?gzVsAj`b>cgt2?LCMkN$bmY_4-&a7b;1b@@mPnI?V z{j{5)TDa(0e7#Q+@Zl!@fI+gghX!wg$F#JEBa*?hXGVpMH}hi&H{2iH>vbJF884dEvEJYed_BclDNFQF{i$5UI6AoUp3 zp~=Y!*F1rm6L<7({3b?)SMMtwp#?q*7Wdh?%Vi{vMklO$HS6kLvYzO)LNYMt@^|di zpr3I}U;BiF0K$blZ`R?2yqS|BTp4_N9Zp}-3S&R3_3#m8EYVH&uubD&SJ=q=|QLtCuPBCG} z764Ot`C+tKHp_9!;cYek>dY0^@Sszi=d zi+kS%I9PA^Eds;ud-7P|^;OdlugO8^iF;yk6iWou0 z@vz5n?jYIhQ` z;AzDBS>u>aeNxCnQPDZss#~q;!%1C1--jY)P-h9?Y>fw?Z4^*(Bng=Bo zCT6{B*nCN$)-jvT_OAYjFvc!Jc4cm4Z*nhRUukY>bYEXCaCxm) zO^@3)5WVYH5Xzx;>S&V|X@LMaG}sLqAn2hV$RP-{v^18Or9_pa)^UUU_r4(|+gf|m zXi*>5mdN?wn>TN`X__XT>azTn+R|8|oY>$iKB=}6C3W~sZK22svk}-Vyb+xx?D3){ zDtTLcoy6V3w8EK&e9cSr$&+oR&XVM{((s~Mr%D=}?IXL|^tu#l5`_sHER{kvP4DGe zlaO#bY%#6gVPDdBrS#Z@bZ*Hy1v9a+rV)MTyd~LWNs8lzS9!kaeQznx;j=T=3%Pbi z_nz|joFv2hN}Kig+qkTgz8)Xl&LznsacQ<~3?PuB!cVpCy|GSgYgN>umbV1l)_q%Q zq-T0NMR7QW)Xu;g0>B1PIdLm>PkbDJ;B8Nt_>*66mDYGxRYevXfkjy=kK;-mt${Ke z!LE?KBN1SCLaQ4RsZ*cQ!KJ*FN=GnVfIhjrdiB?Dmv65w#Y^!T`4AuP)eh-yWUu{7 zXk%_rub5t`EEPECE>J`Y91xkKjM=u$|Y0JTAtQNi_lhm$X*04fJ_U;F&~<4Et8O zIzR?f&zO<20=~q%nn=ekIH?@=OI0!;LwPy5(Y z&?davZ{^p3NVLYI4*||VDYTd5GK9Kr5x~nEYD4$HOYME>_5!2VTBN1U}46KcjWhm5`@%6~=T&m-{;G6!0I>>XqUjA%VH4HPijk^CDpD+DW)xs%R;92Sc3 zW`pj!U-45r7j@IAoYJ-*`&S`h&r^}eOp6$BYQYBN?<1v!lBHhQ~T z1$B$vy<=r0oYD@dG~}GDSYl$<+o1koNEk%2P@*#h_0(pQx6FY9!JySsO0l308NZ)& z#s{?9@#2BaA0`gg(t+PK$r1(=51DnHR(_FY=}J6XPQ#K%MeX7^0(<%pU9Ij59px{O znF(YddomD+S#mTy;lJ-zT#<;KYy)*FuqUL-EFDH8k3b%d%&K9^Ok`85wUwdZVBMA= zxA^7($D22iGpzi~%(9FFl^u+u>UbK*LCcaoifCcVadb;i`H8`OXxFJC5CxKIwt|ze17O4BS;c0F7a`~Qp0$;bhr$}iD$j8{Ej??e%MytGevn5}JQBYQ933b4c;hU_YnRnnnl;QrBthf4HoK6-u5_hKR{*`RF_!?s0g?*=+ZmJv;2KW|d z^6RXruzI>+3DfdiTI0Ro-i0itbtc%!jscV(zkO$xqr{rR&1pseTyJo-304m>>dYCk zebtbAe!fM9D?;|CM>Eiid>E z&UN^=m^qy{{GVE0c!Jc4cm4Z*nhbaA9O*a%FRKE^vA6eS3Esxv}T}`V<)H zdPv$7MN%>?E0(g3$4+$4#GX6jB)jW%c$#EW>X_{2bT{?LX76X;s>1ux&88%KJh{Vr z^z(iKAFa85zkneu^)bV z!`A66&RGPt(lSpb>oUvP%ZogYmvLJ5c6N4mcVDu3RFqw|K%&<%kv{+7>gWLe7_nuP zCad)#Dw8aQB9lDIZ&{MEA8yObECmYhFOx$5P_VUVeVWHn86T{&Pw{~w5))+>r87p< zquDHviy|&|@T)W~ue1D9!TH+RndjM(jmPtKxz6M9m?g_qmY2|{WSY(5@ggbXJX#bx zJ3HbR{G!Y<_)2_Hl=*sE?(B@mS8-lI7l6tsYYlq+-eA<)0g1iJmMiGoBmru-Y`#vX z*wbQXJf$DTNm`D}+f`gZy*B)#+u14e+mjszpUN_9k);=%o%m)NuS)hdTE?&QJj;2l zRa6u{4d4`Ni>_7Fw9CSu^evEsUbD$<2@HJ0zfb0D()vIB)`$K_c6!SCCyechA!CQE zh+#m=WLi-DSv*&iiO9Ij=r7|d5N;d(*5S?LCy!w)QfzD|UKH`kohf|aL(^NQt7!VE zJ!yUOhgO$OI>_-Hlyrhh1~os1#f_?=n*eFRmp%1mAqDudtDjJ~tx0mxGP;M{^wqzqFIS>7NLUjy2qs067G;!9nm2rs>Iu9 z<9}YfV8obs(_}AGf8?wib+2PQZRURcpET(iX#sO{bLY4ReEL^rOSvH3v=|xO3Z=JXB zzssm(IHPtuu6zU?seR|5eY|~MGG1704@S-T9t@A~!}x#x=XRV!`L1H&jE#=ezrJPt zo4NCmy_0iS^Y=C@&zGwOtqk#uCQQ47mgF)jBA7?qvca&HV=kALP?tTdN)u53#<~o& zXBxBe68dqSr7iq3|AZ4^*n7sVFXKEWGs)tcq$mTXNYQF1zWGRuwt&kDTNEaNQpULh ztf&Q}H_g^*+3wf_ha-(Lr3r^-)cUn{veAIHVfy4HO)!v08Lv(U_7ubK*qJaF2^n>$ zK>xbFOkiD4K*ylAZumBd7c-Vx1&exH@m;$034f0ADOIk`#Fb~gD( zJe5{>JT4YlSOL+<}6j=@iw+ z<3$M+aTyJs@IXM#aCiKh`b4KNmLmc<2X$|aCl#9Fxw zy#!A39Qv}jWw&w3+LvXyIypF)tS^e*iu)v4esPc##X27J`$xl$Rtw^*UBrudmv^hv zU=HjU_0zbre*E(qW*iI!{Mr*O@iL~};HAJzvKw;D1=lINh&usNm~uqT6H)=Rz%_-nLSb4RVM|0+5{`xN?? z(bv!%ZYOA`fmTXvBzm-O5MSQ$*ZMDUJHL3T}C*UN7tqrcx zVA~F0Q6!Tngaf~EON>iC(ig^zp)b|rNaES=B*}s+0xSZsOh0~nIAqt!VqwskAkS%$fbHf| znusmkJ-{4DLmp9XVk1U$wt5wAf%&4KsI~_`ag;schF*H)9Ucp0BR8(dTIm z9T@G!3))@2SM(MKe;QiTzx61m1)8RKv|7bcE)*b2rN&u$)?+Q3z<1yV+-7Uy552EQ zY+Bp6p;a*jHtaBDIgViEm^&n(j@Tm$jro0xJz`2|JGwVUH@4;+XnLNWsX!fV3`ERA z%ND2Uv^;&Euj60dG6?QAS_T<;`6Ug*Th4WGI+voS{O;+a3We~ee~MNAV~)@HEs95G%)m^QF#a$Raql8b#FZtXCNq->bt zshox&UD24*6WK#!x>w9IRAWg;@+nv(cAN8AHwDl66qF6Yt~8A=fZHpY*JYM5m=qVW z8Xwyh1^Q8^)n0I1Eo?_!9>ca(&Wz%A*}E&yg++GlYMQ5CyK-)ayE5n6b+oILW^`Aj z8H~Q9){O40HNbCkM(;L~gVC2C%8?q%aRCcqInGunxo9yKF$I4_Wdt^3RKpBF@RdI7 zS>ckE#_=qkN$DVEc4{6Ms>XUmy4^Yuvfzgt^mB)uvEgPvZueaZi%pis42Upbc$t(K zF@fQGl<%4jlrc8=ofOABNoO*KBEsa#d(gso1EpX|E8?HmF`grU#uZtP4M9iO(1|I< zX+Y9@FD>;8>N1!bAht*fa*vEk!ZDDQ{})ErO~-j6Ty3oa8AdcnSl0Q??V~x}!=ZD}G*KA49ErWBB14UXA|# zgbnPd9X~K2@?9!s{VJPHRytl7ncw);)j7u+3>0M|V7Pw#&p6NU#HDDb>*WMpNc@K$ z&{tTV>oon21A%q;)+*yt1|}sS z6Lof~Id9U><~7`5o=Zyhv5`DJPsD+j`1dkN+xT5KbaeG!g3`B4NS5uhL8l|lOR-)q zqdfU%?93@+$n+rmBn!iAkj9oDJzjtzOE)RE=;iC12m`>nTW4oyG`ZSU%$V`C*5LWD z*YCmqTAi*U(d+eC?I%cLa0o;?o#s>++nZ%mSRKj}_T=rmAOHOF`}6<(di=LPoxgwm z(+@9Sy;h_?nEQCm^TF^bu+4%$4u;1EhXb=$73B{52ZzH}=VM5{N&F|qNYn&Pg{>hO z_pAxb35Wq~Sif>_MR_)uIV4nGjWXHa_R+sa9i>gSJta5Km|?INH8L@jkme!96O>p4 zyBze&ZAIL^K5-r`VSIJ*#H1eoAu3`qh#l;)y%8}gEF!Ob$8&Dfu(Vr_43}$+eZ`jSyTr1L7-~O) zi$Hc)u1VtG)lKd`DyY3jdZeV98H0t6g&jgNKc=m-`2nAXrbD$m*K(|!>a#V*M6A`> z33t}XYgxhaX-s_XbS^@*Mt-f4UCYnYFnM36pVI7_!a{{UV@_1mAsmE)A$6IM8)5} z!3=ml9ay z9Jhtgk;x*Pe)3jrL*)jxrdsRVsAZfGuZC46M@Mea!>XdVK00NOD$70}^0KOMt;jw= zUvO-P_{Smsar6N2BjI@`ze6V;%80M8 zlE`Sp=du0aV`tOWAAS zm1vK>AzQkPVS~%}-`SY{fd&HoK4&vitS6v-XaxT6|1%7StaakdQ2Bjtm95%ZJBl^z zE_n&~vnT&)l%Uix?9QodvUd@q7s^Z8sTi^>WjUm=JvT-553=e<-l%SAVUqZUezYm< zu|JbUFoqpZ*Ay5KRIPHec;UBZl~CfqIAl6=y0eG-6zP+}F64@$GsSvAoXKUm%Zg9Q zYK31xW8koXrkdP{O&$tDZ81^Q;1Tj|c3TSc3YVLrZF&tDG{E}8d-0{Y$9@vYfAKA? z>YQfRDMV|F;8;!=TvKqg-LIjoh;LGCFH7*!o8(zEo8r14Yn*XH-Vc5fAMWmxbggHB zzY?fzx!nH-CVIeZzY?Xa;Dh5Md%LNS4XN9VRJuj@sW!w=)isgcr-99^Hfr|9VdD{R zW&AL(1Cb)q8;}ZGPMBG5K+ruGr#pIVmdOoTbm_5Mq|D$NTDA`#g`Z{oLm0geA7xS{ z59C?#A@ibx6W!6mvw}QE8urTZ<^6Qk6>kCl`(c0Zu{SpSar8_)cU*oxhg+`rT6HBu zhPx%CC#_tvGVJ<71hCm-Gb!saPrY|K`Ax0pX}o;>lGK7(JN<4GA!7W~`;CBsv?%j-B+=Q&&n+$f?9LYb%0Zp;P= z5_O#e@H=_*&5h?eokf_5N=M+cWIm5+^TSWbVY=Y46)Kr_@T+2x=y}vEcOu(XWT-EB zJ_ht3uiNz~cnmyqUk6mXOqMaG4qeAr7z*dt9WY-7(<82v;!?QL>@os9OIA|TNN0ib zf(sODKr7eLZ4VbL{3jmuV8t2sFabvoz9eGPD80{T7Is!^n1y+^$`f==p-n%eWvpgEMl5Hd4gZ=46zPpoAEhRd zHX1i{g5>coUG!{|j0YZS()Ns;@ZG`i85oUzZ?N0xIUHFO=ng6rgW^fLkJWoozKU86 zn;G`|gOl0h_~fKvL(Tv1xHsv|kTv?(5Skqc)=XK3mB}50%E1!q;11HVz`cCy5p=Jh zy^N=yD8oWZl;53*Jj($#M(s@9 z3t*hv-A6OlhTl4JKdjHhQMD;e;*nbZb}b53hwMlhI;j&mNxDK3olc0mGf^lUdo)F$J0l`gV#j^3hNX64$XGFz3G^?6DsY&a)`A&sTBCT zCasW2ea973$=X;Oga`zh3fj$ZB~tg#awRf>OjoN==T3ucNNTIWHAU*HHa8fwa4uu$ z-As=?Pm$#pwz*!lr+8Ca>6l~ga&mdn{mD;pr6o=UYr~ zDuN?a!sJ*$>9Ht!T9*jJC9&1q&>tFe%Yy1zYJ^1s<=DQlP7E5$$1 z(G7S+xm-jdMs;OzbcT$Yt}EnSfz*!BW}6}YE;a+Usdd<_wIC5DL%~*QD%|`=wiX*W zp`0v{i_g=2r&$VX1?|mbl?OK#p442M5gdu2z1U-PPh+vju5p_q<_LRou#Y~#b-Y;M ze~UG=vgRjq*Ov+CGdMVL*Pv2lcvKgsP*Pwj@H+_<42LbLIT4XJ+6Vvjs5k!Z^{ewg zzx;mu-T5ES-~ZIZd+{rD(aUz#P~wNCW`(la^$g2+TQQOxou#Uth-g;j;M{=|A%b=v zBRZOk7a@yt|9)>X{hbBboLKyy0S6|M`gMR8(a4I42_YOAOS3mD%xX?~G{5%Qr8upa zW*z1Acl95xXnQEl-Hm%OIRt_*}5Rx0ow^M zQ2VrQQ=k_9!PmtO1~d&yC8b2s_C>H%CrZ9 zbVSn#l(y~grV+|~$u8oQR&I4{EoL{R$-tMKn#hkYtc=Gb<@qKUapsn=z}0PfskDl) z;wHBU6+|F*UWR9F zO1k)C`!c?1+x1NX?nzvjP}`c_JYaaQWl=KYu7>j9x7liFUwHT&tD*siDj2Yqy+m7n z|JZ`}aT-l8W1fZim1rA~KX^3L)Sc865e|04n@AU(xFT?<_eUHOLY7rIVrbRY1?3G; zEgm_SND@w}FQM1M1_4A01i--%tFi${m+J$~)JV?952Aa@1Vb;w!5lUGNR{FH;ZXne z8ltHhrM+B6T^`qh8_FrM00?E1PuQTVX*vdtr#te|mh+JYy?tZ5S|lKM41T#@89k!x z|GV`HtPpf;sU}nUh5Cl;4<@NPhl)G{OAHzm&~&Tvtqpc4*#a;cs7nS* z>Dq(KohkDaycR+1;kdIJ=zO)#uAj7`JN*F8uKD@;9N*^LxryA0N#}=Z=h({-4-*Kr zOuK%wMf{?+C93hlu2AES-*-=0xl63yUAiJUtq^J@71Nwy7dw<-3tw6t?>y{Yb+f-% zX=T~peU>fLAbqXMf!Jfw;ySu5*c?X>l>{*iVD%Sx^rgbO#qUPFyH7JyNp$P8I9gDA zKPkc0OL4c5>Wv?I@{cZ`K_sdpYUu~R??q^pf zRC#sWX?CM9U};xC7o}QWt(IlLZ^D{ECLPL(Te$ohUC0d8*h02nz2Cr{P8F|?!a21q*)-vYQ-T`F;C{KHzJxbTC1Lwx5t$&Lf%GdwUm9)go_WM__OB4kD&OddGTW?9=wLy>-CzEIPUlRCnpDo zht?SR2@Et_P8#6_dzXO4+Hf0 z(WszI>xvJI;(n~;PO|+ha=n*KJ$WjhmD_|^UB0Y#T3_*!lw9TkT;N9@wPh(^R;Gw( z0>1hL-#_Ds4*G#93;);fuw4k+zy>2OdZIB*awt^Vo1&u8{DEIQ+%qu8Bg)j}J2;|% zr?WjKZ{A)iZdTf$fSlqHuiT{egL%+mG`Ef;{u#w!^7UTwQml~gPZRlX=OmB-0QT4M1 z)pc$0Mc+wwvQP{Hp+x@kJ}r_6t|3tzd~0vK_rY(2U_KGvjutvCW8!*!G!6pgEk3?b zDyRs8*iv{NyTHJ%hK!K#9*7yC2oX+bQj|UXMPW&Z-nhaD<#9C%|8kUL?)CC1ps!-! zJU<=a<*92Cbvwm?ynpXsLelZg`#&;V+RO_>h_{ij2Re6fVQ>sLbLbLAMOP zcP^L+4^IHKMowEIP%6N(+r<)r8goISqcM9GoFD(i-2+v2&5^0yp{=4!3O(6(m^WQw zeXj=0hfdI+f9Ec{IJ?k3FTv%${U6}w2QrPIjYKzGGji5o=eq6 zke4`j{4ZYv!5JAeX#ut-JWf~E54qEzQ})#C>3;agBh06Vpy9J(S4pk1Z1OobYZpQ^=={GVXvJk{C^++e4NgZ1$( zOpl%S;vSF1AiA2ve5Bv)ac-?L=i@Ar=bkxhyiU@}SnH)!E|YdKu`asKnOt)3uuQrJ zSs!EHa|t|qpe2wX#J<8c(3R!B=@-?nQq}rfy+&U_DR7%ves8<)cnR9sw? zGPb0W@X*v1aefu^wOrN58#^0~ADD)00n@k3@M+)x?Z_bL-BZWUPjSqCeDjJ851$>f zVec6+A>c@wY`q;p_e>E46NST0gH_MlqRSJ`UvUC%`!Xt`vdra4Ys(Q_EAZqBeB4@r z+{$qBZur0ylWK!eu&R{qs@&1D(~5!YY!c4qgkdkt`InS}M`gzFjU}NI(utx#615QX zjH?Z2TP+Nc0&U?eQyQ0dNF`mB-xTkm6z}YT6z|2qui^#Q6S+7vUrvZ7!FHU#e*Z?T zF85zcu&O_9A$R-=qv{vHl$s(CP zpuo|||H497d4O7CH3D0w3e~syWK(-Lsn9 zO8<rtDBrwsT9 z{9c^k*_aQAUy3&*(2tRj4j2rQKn_M7x*x)WL=y9eh^X`>>wOpl`GNl8pdis#>e!zh z(HDE{_0MaVcMAdZKYR+xs{e;``*0{8ww<#Yh|bfVIgl!l)f}F#X}HC{@7uL1aRUBLXCh@(bH~P{we?+M<*U{}9NwcqUun1&i>r zNFK1G*;-p3zI#k>YIfNfmWucPwdpP|!_`VQV%vT7bPBTrT3nm_T zYnCsA^*#LIYSdU%Baeo-O#aqGg4}{zVMiqAvkZaN_kUhTZYZBvQ9y!q?PDF^~?MhTq zTGC&7-csOFjOa}udf_$KZoQOu7kPkw60>-@DsRn{NVNtEY0wjM?N-menv6FTdC3k& zt&WOIul`JU#i4USLuTNmFJV(p1>K2ItNDtw ztNikmFk{3{lPSPk-$wl%y)P9JuKLIizJF`t@XE#{9jnST4=<3<_*(z_*;qKJ!Zx z+&(FZu-JlL+LL%^z$}M+rfb|u%3ol>Q*rqM5_scz(4-J^?2H`-Eiv!VahtaFQe6XBZc*mi0 z_ymKo$q>9F6F@H(VeyW`hib+GT$T^L$zSR$djRLM@_Cf^Jn0&?&ij+3RJupTox7fD z%z(|vN!o7yNQ#M3-pI`{qAQX1y&CWoh^>GV(ZkGW8#tP_uDx}NZ!Wbbt#AI&>as}( zG%M&SyB~YAGZD{qgf5i$AKcYIQbY zLE|mN&})PA8lir25D%oi+0U;|N{|vBxaOt|GvudvGU3bWk8fTL`iD>1Vee_>H0SK9 zErb^$GF0Hh$q9(2(nQ#_FiW)MJY>i%uNR`WqHnb*DptuVaup8=T7*Oy72!4a;v(AX z0hsTo0TfXpT3DA+nyl6fJUmkITfGsCtDgF7;SEnPMdR^x9DRZ=jmIquy{-byH#myE zNs*VTlue-n9I-@sVXpHZ>>Hl6?9-G;W~O?o5_;0)+Bv)TSVzzzg%9w)C zC4WifBaM;(51aV+2DDh^U%lX=Y`Yp%iw3^p!QM%dM)_^<_P;($58K%N#yQn-fGDH!$6g|~#c|-NzJ*}i(OfYNPQdF2l zCNAy-B`3P0uJ-G8Q ztgB`7)#Y`_47kI?!~Pw0L(*!X8edfwpr)mz@O=2}u2KMML`;jp*r=RK98S~om3xCm zZ-G>}V{LMsLT;twqZ#e?DjM@$EqTeyMoQ63uvZ~)nbY0?nl%EKbVFUFtc0z5^8r&u z%qk-0pf0GKg>D-8oxt6SBsp+Mh7atU38Ja6HKqcc+?-PMB0N;$klG~Xf#0k0D*WYC z@Lp&PjTBuI1-F#~4dZOZ_nj*B#8apZ!}UR>_1sSw6_S@-3rT+)*)@}!F{QV8L#Ot^ zraIg`i;K{kJGCzx2#G=w1nWI@M#`&b&Q(HCw5n&h^93Pmo7lX;Ae~i56{tFyw$;M{ zlTj5KymYW9+5fDF}U8g>JF+yBKWef32_>mDlkKm9f zqfc=mkSxkPqC-5feVo#xw9`O(byttba25BT6iDYp#0tpEmIBCFx4hL!h0+3oD7 zWSK0Yd~xf}J>#IF@|OcAufL`wC|Z!gBC|P+)x81keQ-c2VEVSp=21e|G)wmg2rSbT ztZsxEGLhc!bppL7jf)MSI_>~yK$pKJF`m6UXTVo)$Dt-*OZnkCzDi3kVa>~!pO7BN z*EM9oy@NdR)Ke!q!(WO0S}`IbqK5>~IevZAkq#ot0Cr*?OQiCIOQ%c?FED7K_qu|VvKtXNnGmMn{S|tRfE; z^*7Cq6~pB}-@&3u$IqOXQ%B?SASDGnd|d@@PHpciq8 zTLgYX%&i|DvWD`NJ*wGR)P4dFK3aYIWzXcrRjJU?{5J8;26C)DSV!%(-yD&%lvd24 z<4&vjY0fNvlsC_@yG|05(~#yO42qlb6P!PxnSxWLv9<=T*xhxyG#JF1erz*8svbd= z5_QMnRPO!lORxLhYuRd#UuZB!{@(Y$Ki z2JaW;ExrJ`p2Ixo$~`X-jQd!kC zD%EHqXmv{fO;bpok{^zhE0vU!oK?WsI z$C(KF06BhuMMomosHy(watQS&GimuVPuQShN}L&0YwyCtj1WC`FTw}kfG`*W7wdi# z<-4SSZElp$q~u^Q>GmN^z3)3s9R`d;@Yp=y>%Dj$PtE90A=nB<;s5gsJ5-Hu)Hi zjOs=!LF;t~Uxic^5mZq^!8*<;%d(+C=0jK$qpcW8x3DG0#2jdn#P~9i$?O6$BokL& z`Gb|KTXAqQ$*$sqNj%TQ6OdLPC9y@;h#0-TcA!sbEm{qSLB6Is&(?IlgfwU^PX*Kk zKcJ;U>uHAD6kC~lzU4w$oEnV>NV||ww zS#6i!OXK{7`h4;qy3Z#k{}E6OVZVaw!9HuNk$$2&7&y-{3B3rNmWl2w(4|N(7aRwB zrLzR;I$z)McBl)3fWr`aAmixp zO6(}?_LYmoT_f3(Ku|*vc<}9NPQByg0!vg-iI~YY^kao{5*M08p$Ap6C`H060#taZltpehBX&#{qH46Z($M z&?A%_?kTIVi>DIPjrPk8gCkw7_xsfERM zPj)#DkQ5Sk*H(FkmqhsFlp>f(kRJ14LpMy@z`juyxF<_RTMNA=_v3z~gcq`m1!_NrxBEF%1T~%6FaX%{c5p^I26N;}0$8BFn@smiE41)iK zntW2Re+zJqtXIWQekz4K7g?%{;i1A!$FCNRzg-V-!yj%9iN1=t_r_I!Ip;hs@xX8% zRlq=347Br2v#PSQ-gkDyICv6Or!aMb1)Vdkey}@UUZ+=zzbf0V=+Tp4_nS!4O>M;o zP5GGk)+(5|9O@D=dul9jp|e0~KVTMoXth3uY|n>qcTYkM;(?q;C(s|mB5&C%H5L2S zo#8yNC-MtD^kR{;zP}4ZX6Wr)fs^TMbGSEaoW6W1luX+jHW>&33dJF^4IW}QQqU&J z#f3zK1R5N4~KLPClrRCD0! zkxqu-cPX%%zLDv38UTWEGR?7)6w((;q&98 z=T8Ttr-#SG(bG}iJ~s~5F6 zs9zP9qj_Jf;fv1OAUReFp-8~&-bV;Xz!SpTj1n|NfJqloREiZMmZ?O&85$OTBX4rc zfh>=oJ=e4BFQBT%i^=kN^}y9WaWui{gAT6KAQ+miM?z`rGT+>a)%3*xGMW$uz$X%;PP^ z&;S`)ieXR)I0DG;U%am3Up1OO1>o`GiD(TqdR!8lEuqOJj3`aFA8mK zew<6zMe(-Dh`?5Vx=0AK3JBo#h{R*7n?+=n#eAy`!i{pVyNVjH%M{|ajcf1 zUkZ}EV*G1kD4}2k%`i(ZZ5nq7R)jYD!Db`@%g?p})<^dQSeI#ewBvVTWwog4BlG+i zw}l4-gmc;esvbIg#>$n*>bkJA{{7P>=4BcpGNh3>MWkA-}gc6Zay+zB<{a4*te3+Z(!dwal>FRutJcviDdt#Xx~Ova7WsZGanPWk%>RAJ|1roen(S~y$Z42kF zcS`g4xR0Cb{w7p*qsqLGRgN1&vg@jR8{;CWo4;@PnIbT-t3P<|B9-e>17dIFB8EG= z!;^#IVSR}qlsT$q#t2Oux^V7JsR1%n)35oISbkPrK#x*Aw0W)U3Bo=ktJ+Qq#_aEp zxQr|79nWK|DDLJ}$xU;t3E>ZqUno!efq;6+y2^qjDbMFP9CyR);iGqbZZPoilt zo=?(fb~j7PD$6eiv%8Ha8&9IWVs=+%msfSv8}*~FpFjU*>+9#+|1*l-C-X^kJc!Is6KsX(PM;bYr^zJBa)6gc>Q!``)mO#5j>@#E%WQ;DVkk74%*WghRbY}$Gie0@ z5I!mdJFj3I*w+{lm|fuClm<7OpHH&tDh4Ry48fnzYj|AY<58MpJs8bbMHyA;WP&g< z=sk_t^pMIxI{;*csI3KA)b{OFF?GiSsJfV!IW(J&Y0w3rj@tZ7I;t5CR=6l8lj0VJ z2+ii>498XN&;%aC+vL2sNoi0#?|D%}kGUr}8#6P>@~XN@U8PU?OHkNsapB9dIYU-;a*oy*~bN_rrd4a1_1&@b2FaUhTh%I=e^kyAwx09vpxF z?uX+DN_^OTd;F*9-Ro%g?VqAQ9=v^p7~lVo_aF9;j-q!TqJuZ@4-fWV#nHjry~7_~ z9lZTR^c~cE`|db8Ja}_(3}BDnQIi7fU?1we1|V6`8AA;b`CV=hgo1AwWCA>h@IP zXk@3J;;QfsDVZY&wIw3Us`2Qw@k# z>oVab19Ut|KYewVj7Az@jFgV0fH5F(m+9qvl9T{<222Lm3_yu~1h!(j8Ao@;d}CbX zU07==uiQzRl+b1PeH&GGz~Mf@qAeK*_K2~$X;P1_@S)WRpb>lFB4Pvjc$1A0wZPHN z%cLY0I}&`?S4oXsp}r$x08U-bk#SsUL;y1@ftO6~aDl(SgW1Uk8ynxJ%zcswn!u7+ z9~)1j&iBCHfC>Frl#}uAI#CaLj9mW`HUmPmumBj|G}`;zc~K>kIrG|=ar7b?k8w@vw@c9m3I?unur)q7|x(M?kk`T^vKm3vY- z>PMSVC+@(%&Bwp%FzhQF7gY2HNbhE4mcxd5#cw)WFM(%KLjyv}5o`zfWluo#`$D&Z zI@oY#bKG8RPOV1nG!|{Wj83}rs2fM!82_O+_~m!qQ-;g41f+=6p?6C`yFv_1-cR!k z))cIUadJL^t%r9Am`E%Ko7BY?5ZEMvB~+Am8$>lxo=nq9b}2*k-A(Mk&s}=n{c|@e zV9&s6)j)=dSQz8JJD~y->>-zrqyX;xknor4e2A zu2Nq?X2@xjx~eWzrf0;!5*)9FGMS`AC;HKhma6)7G0#VJQB3q}n5fcu08=?i&y&&h z#>SJsVOIuKJx1F_74H}ey+bB)k#_N z59!ZF_YLk-ud}kE7jFyt&0p)?oSJ->r|-%)MVa!C$=$nr#NTJUNkOd`2DXb0D;107&UQVY){{8Wr!+lT?>N|cmN40Uc zEEE1coB1%u=Mxvn8~Er5cBU)4R7&cbX$|*^cNg@nxXnjELxedRV#;eF>RzRv7y%pI zt9m-I;Qb}JN&KEnWNA&zGML!Q0Dt5K0-Gk+DGn6yL=EEa|FD0;qCm>ut@nzFe)7Id zZ?a-uA;mTxT5F7VMO7-FPbRO@^ZDiONKvVp)B;u-p`e)UqC(AId6x#bqja3g+93vs z5&_|21{_imz>EY79~D1&WM8IJ*xqQKD*g>Z#3*$pdqX`%$(RdOFhz%g)#`HMFQ%$Y z@=JbcmdS?v&}b)aO$*atV4i2AVw@UK^O;KmC^76RQ2~KwIUoaC|87!@t_e|~7-ztZ zj$vyDF3C_Y6<5sii|iBdw1iviLaoG_6a-Hy4uA#;?fsw5z5(WrJBe_A*ioSS6_)FD zzv=cjvWo~y?T`R?_Gb4#&JIA6(0f&n7HNq0oby7Kj~5c}Xu|H-im}gdY*a<|2f#fS<^QilDgaZh85gRK#tonona; zX!01us*(&rK({FhfU$^g^?ZgKWR;>Qm*1fbKZ!wHf+{dRKvFuX(zfB__Kk0dAmH&Q z`ocp4>7U2j18K0&5by)?&#SVSZDk}DBjF+Sl8U7Y^N0bPDQTZD>>rqLKuFC}5X|ld z(E(J!{fvug=!gh`0%a~3(nXR@DwakQ1!_O1f6KBc5yK!vW~xb{QU#>8fm6vBA~my~ zAjKmQdVh{m0$m|MY7+|qHb7FV`5jWp&(UBoh+YnCyy)*hbs5YjN>C%}M=Xt4cqF`2 zH?ZXm{k$&k+(J(n51?g$z;Ip3XwB3_s9uqt0g^f(`zk@sRw9+DB1k?SOdK4k&F7%C zT$5S}0y)cH*waC%qY9qsZAu$)U{d@s>;oAJW}$5#IMALmYh190WO|v_f_#Ph9*n2^ zX*xk$D9E`&g|OIdpyoZmCJCX}{r!`V7~gC?TOIs(>(!bOzKib_vQ-^?_&5d$==^Ve+Fvm1@AW~`~i!9c4t zCh0a;qw)+}mI9X95VObGo>DD)%y9+e3|?+*h_whmLqXgisYY3L22y)kqO<|)(0PGs z7rod(0Zlpws`c~jufO@1|M|cE_x}N^(pWS43O!BT ztf#*jl0$Jts2|m0u8K|L>Ql;d2}%HH!=_xN_9!}SLVkq%6Rck}1nfk&sb#lJqGyw$ zekPV2JaVau=sHbjv=s>yUA*A!W{S-tIbS3|&d7-hP!VD9Mxr>&@~l2P>ycF~j%H9F zM44hVd=3Ijbvb+s(lsm|PzC90WDy+J7(h|LH~edFwonnRa9F|PE?5QM4ymQ)yBP~~ z*4}O8r2r84w-tud0Kc%+S}1{|vV^NMVQ~f<2{Bw(*s6f=nd=%GTy%a%b~!YuxqaP= zSY3iIwv2-hk(STXQrYGV^`Ooy0B?pjDqNih!sCw9&ou^|wlbyidKHAtmIxXX;rD+PXe8Av9pT9=Z;@e*09!s2xK2eLnmgD0+V%gC!y5h4|)9QjMcFWVvkq@I?&5DuBA z_XoQ6QXWDxlMYzCgDJ>5M#?CIVv1Re(u5 z=1r5VC>C7;+p*CK5Y5pOyezpdjm^TK3~FqtZGfDZGIHPX_LZ-Sa&Zl^TI!9)>dsNh z9t1bZWNuuXd>kp~EK3~c{Y;J89${+NN*q*agt%y!3kt}gf=2a~>gvGlYppnp^fzId zoPkymviU1AHL_K3npk!wo=!Eh7OkpnADUM=1N;zB3uLcS1oT8ZnL%h8xxTzI_OYXB6))E~>P4mH#Gd znr+9kulB@=wvQ}s-1(03U@qb<9Sy20nC zP{!Gy1Q#v_V8)MV?aoVJ2)ruA$Ag?O#s4Up!jlZ`ZPPSiCqVY?P|hae9)cDZ-LWlp z`ygXoZ}0OY&3gj6f8RHSfMTf#p4oiDf>H>Fp!#yMeR{7QCaj8DII`*uUdWfXAS=Bz zExE)E%M+$x#Ac>z?10z+P{NY0Nrf~!JTB)cIg2I}`fgLJYjPJzpvyQWD{FS8ggxmn zA24$~D+8-zeXq~}9r2J>p)_`*NjSB(=>K{wE$bpTw(vPLUp<@?nJat*%qAA9UMG_( z4V7SBnRbfMYoKU0pR^T#1u&l?jiDv(^L?-gjS&rd^d(e;Mvf*P{Oc4z#?8nJ8=3H< z3TU&sRXIeL_;0@nM*3o)$+wdo7b;pAf^c2K_9`vlA638aHR78df&fnB>uCt9@D5!D z&`u10de+Gi41moq6&XcIPC$ajhdVwBu>?&_Ykv$8oFIf#Xz}@iiNG>32=f692|2Pk zg3Kz>6XjWUo7^dvJ2vdIa)1&NpAD1wS1CB7y9MNqe?r6Tg{GC&V8l^Bw$7@Bj{4&2 zE;O1)R5I>%;}cNSnNZGwfs9H8G@ zuOC0}2f>Ajd##3?&0H=eK zpT4d-6KXFFN@TMAWbK=ElmUUmT8t~a-qB`zb@`5xD*a_t9qXVshQQ)PM7 z&+z2EcOBFI&_{FJ$&JV2=jTxA#>SApFI@+CtT&O=@=XZvf(d>|@7tE~4XoGTz*;a2 zZx`_^cx?+U!&)_kD*Asx%O{hMwQ(MfM4lIsrk(7Ib*C{N~;Af1@?8&X!!VY$61T z7r>j!5}gLC1|2h#4b{R%{z9$_-2E`Fr6BN<9vNj~)D-9r4%#52G@nmVUQBydCl>I1 zx3|3TS{Ihv9w>@E{rzS17jF_2&SD!I4g3vo)l|Je4_8CSW8&f$Ktz+%xyx2|4x5vR zZNIYijer&Bx`|2~2rLTA1f-92TA2#hIxmWeHlL_UJ=%EjzhF&}e2V<9X<3k8zJg(E zt#w)k`ht%ac1HOmtyuSD2i>*fnFY}$yh#=vv^yGknZ zTyoJJM;+BfXPJbfD4jdB@G#gKpa1aa8}7BS-x>UnO)53qWk$B9xB==22n&#v3yoHDT-_Mw&KH7*7fPq z8#+MpwMlbBkM8+}77?<(#-eplkAs{QGsW1SCFNxWf1X|6;x~U4{1Jvh9jT?QoJ*b>DIIJ>v833VK&x@jM|!GU8O}6fdEVc<|UUcG5;{0qorIF@_#e zfC0WzNC&5vX{jH_>|PDjg2oeSM}v33K;zI7i(Hj)-cS@I_HKS{_a=#KFtF)t`CW*5 z(?U*vCwJOUv+wqdc1jD7!GZ1>oxFh{P|YwRKz_-T&Rw+$!Up3KN3;uYF`j_-GZzwJ zNV>y7rcPg!Z$cc=Id(z<6Kx(mIo`&En=%rPyLj;l+H_z$)X!N=BDIxiEi88d%xm;= z>Pok}O<_r(_wX+rB;2fGWaNWOZIkGAXgtv+4gk--(@#Lr=#+8I*XRt2x=*Vv9!g#J z?UCC?HQf_bU649k1w530XrbX4w-*)_plYk~@kFa`s7m>~PK5pwD(1db;$P^UIc``e zKhn%FAxRImgK+GUhR0s2gDymMtP1@*7NYZmuqff|0Q!c&sk0DC(>W z==PW{s#tx{v?;|FlBG0@?OB~kKh<7ms`RH&f6|}kN*YtGJ*ZcnrHdPkqeYfKltMR$ zs&gxuFKNUwHmPR~dW5k|g5vESz9C^-50VAHHkmVE{$JyPX%`wM;5eOL9y(S*$| z-Bm4z59;h8Sk2Q295H4EHlvDt=^+4h{1-h3;6s$t6_k8+Z-^%(8IR3m6u66e+O%;c z#&a;|4G<~S@HG+?C2Uj7;x+)s^sH?T3gS9qoOWr?l>wm{QPz&^cRIs`0NkPH^9B2;o`ho{nWH@ z(>yr0L~pmF;iK=+`H4)9eJX^5SmBTr%e9?e*yUPywK+;ZZ~`z89mO9({mt1k=HwMw&8MJ_ z$i>7~Tb{S_nhX1h7$K57(RdQ0^F&+d2Xr2~ElYQXX&9S~7-w2mx@^(uaVQnK<Rx=T3o^LdLNZfIN_{_{0LQ;vls!XDxm4o0+UNK#bzEbbzeGwhzkXdmA<{xNP~`bmAKc!^8(UKRkYCr zlx(}Hd*w;#O)d<|5s%tWt)Z~vLFNmo4Y|hNxg6&~uTWqQYPu5oki}uga^hMjJtftD zyg5`XXk3iyLZ-Vy#hh zM!ZUnmTESiBIiOZ%dL~EA*dhwKpzidVwK&Lrtc|rlsk{Jf!o7YmR!o?)BA(wMdpBSfAR;FV| zB`In%ZB5%Bwd`p$&93C1MdZ0eg_lS?jQJr_2KhhJu z7g8#ylNs7?)t@{}v^%15PdW$3`)@2n$*y??dSuy~)P&WWxL!={0q1jCJj5er|C#ksy`Z z`Kku*n;4^bsNFiqDA5HI=>4XRMA@my9|6(5?)ha}qbTQJ@A8BwTkMfTeY%8;M;+#h zxG&oSycS*-nl>fra{& zUBezZFtnESh(kG@U?eU0|27?+_MXRE+rEoy*gJ|nJ6zx67Q3lS7329-Xjw$=ZZ{sM zv-)cI+>3ITC6{?o)!9gSi6C`MBt}{>uhpH~nncBr3gmcJ?2gdtO-?9WU(`qYv zTJ1z+{t_nH>qb%c8PP&Nj;=#SUSGLh!K4aRTDX|st(yVSru2sTvANx5YF@l2T3~td zZUS4}Lg}l$Ix&YNzq5TRZah>lo7cx39%^oc%{68}i@A=Gz;BjbU-Fw?IwDYHasE%9 zj!$>^D_>)F$)Lw{(2uh?@Eqo)4}EQ!um__0(K;q`cH{fGueRZHSnu8nE@$rnPJOpU z2z5pcUy(x?j~{}s%ooZZ&jzMi8t4Xz zkq@HY51+5p4PV;OIel9v;@+-Nr5Rq4&5^c5;m`7eVR`d_1c>R;_P+QF`iU8H~ z!aPNrmgBEDMPmR3lYn6GW=M7O5R!ak5 z&zV}qS;D|9R?JR}g@!>CfpGzrFq9Ip9Ezz_aUga|%mFYlCk6*J7Em~k9JOhCK&W_I z)ai~BOjyNOk(j-uME?P;gYNSt=aus9vO~%staD5Zk#gJ^#a0zGU?Lb0Vh}|~X&N1V zKKSf}*SFKC+`njj_41w%La~`FXG?~}rYUmWmK@;N0jBmozc}9g?&ZCtHmT;9mn@xH z`G}@TM&+Xf;aLHpZnE@NClBGRM9qXTcq{j}Sj^eNn;7p1P;D5Mn$HF}nli=3D-Jcv zR#73!ZCsAf&YPC*0QN_70ci{ny>45634x@kwMQe{jsAQq)btuzHgz2nUs>VW;%Ss$^tyeNro!--NEb%jY_WD=N z^(n-r`zWG4>%);`+37m=+!PIv?xaQe0GM8TP{5HlPkCCXY=X7!z7F*RoNth*a3>KWEPqY^!YL3tby z6T@#z;5$5*gmELaN`fBM+kG$3hBapFyV;8!;%0SiGZn%X9V_WbLpc~X@YVw4D`$6|ZU3Y>rHIY(! zj)Xcmo^iqob_gW{M%hr!4JtyW>DHUrMExO<3~zI2g?qK$I)@{s|1uF98{$T$l4QYG zMWlmITS&^IvZ$)9Q8Asto`pf89)n&N6RV2dwi=}_B~wMCO1pFB`GjcH1a@nq&>-an z$u3ND&^VAC%)r0?k3T=_Z=Usj|Mbc4hFkydZ{O~8PENhZQ*JNO1Gt4CTc~jbQiM8N z-c6}WjtlRiaW*DJa)kN#=q?&11tFA4qP37^&FON>=}VA`9~iWzK9_VfFy1qi@p^sd zCR(EzD8{Mr&PYZXnzV9*l%qbM)#ttXoWLvuB`263!~txml0c|+qPq*C0<>cYKNlGV zk8Q7xe){$KMrdjj4Ms0C-wDIf1%nI)Kdr~DrsqDBu>u$>QN0ntaQD2T8K4kV(F9LS zC7q+bAVOgDCj4su_3jUc$7er&e{j5iw)g$+ha)`5jXvfd>yIUu0k(EtR2W-Y0^X*2 zSEBd-iguZ7#FD+{0aXgJ9*HhL>Ld%4)vre}&nwTZ>K(LFQhrxkH?p!#QYE{F{_bio z;Sq7|1>MbZq&>+-R{emivggJww421Rusk0eNR<-5kO3W2NLLc9Tn>*W0u=8%7AoRv z84gqKjzwy+E=GB`a43_?xg+2N8LSeRa*QTO^AnCt%F>;R(9(BHV5%owz&VrD(OuaO zuk&J_U+2Yb{<1^4YAJxXWUSTYFn3msXURHGZ+Z8XFjh=mHkr7s1I9k2v(j&x-dV9M zgYR+ZyDH3}!h=`jI-414^!EcQLKH`Is{AAuQI=a5t-3bND=^JgrpXBz#~^CqGWtSA+}i0r(1DutH3EZ z8;F00jm)0Po4e5)46E-tS)!uNVJCZKN@oEDDkF3$A0^7sd^(?S*6kkO#Ggz;*xQvr z*F(@Z*~irU8-cts0!<6{e_Lm&eBut$G_H{MDhhUEK*>#!;Ze^RBnHe*r3FV&#E5j8 zz+RCqc3j@MEPSE6@tfotFGeUoV-j`uTyxU>Ac}r4w>NaE?{RiBuB!q~QYW+HOO$zyGP2Q-3IdctwHcY-Vi^u#@w1Odm_m^_+LXIojO&j3nLbV6_eg ze$Tl(h&z5a@aRGp-E!l5i0S<7Y($By?_a2IFYm+h8^*dvRujJZDgKy7!|6Qp$=zC7 zCp*6KE7pyyjS6YR*Yv2 z{d?~rmDRa>YH`hX!R8!a8l z0vT`ynL9Si3Uo65QOX-hbZ~_+z$$C+w*gzBsxIU#le(-j)97)qkU?RwB-y8fXNOka zq4Vi&hS%DFQpQEfE-iV=dV`9ep5Jlv1IOC+m?zZgv))Oyb2h!&X|(!0_Nlb`Jo@Rh z`mA_Ltv(G=JYdn8CbOP(F2I6r52)34M+|C&5^4-XPIa7j9oa>fgat^(<8}EZhK#Xw zLm@0tNV+CQjH5sfG_ANS`u>Ic8^pAQ7~A|}lm#B5kK~slat~wK5gJ2SY$7qCaE2-H z9Y7wZHZw;`Yams_T?xC z+L)1?S!I>bM!5j$kP)YYCQYbJ+3}RK>PTVNfZ>GO!r0x7jl6P`9vzE?{h^V)QaDNH zKrZh~otEPYK06|en%q`c1BTQp%LS6BSR}1{nPH#Cin4z`3Sb%7B;aa7t=#%2?WpGhRom#`%-&kG%oaJ@0V= z-|8S0#scdqq6pn2chH_ZCn3au*m)g+eZR2-xmEv#Fzk&pRk=dEgsK;-My#&;*l{y`; zgV;?Qm$IR{OTlL;{pbl_ELSHmE)iI+Xr<3x8tzYyw_Yb^vo!k{c4%XGs9&LP-sm+B zj?h)0&6MGlYgli*lMQLZG34lrBldApvpHC_)@n0LcoB;UJDq4qNXPaI)?&#K6y9<% zw?K$Jw(?A|R;0N;ld;x{={C0$J7nU667FYCGuM#VYz*0)BDT*df-`0FTqngY8VsOb z(EY95sWZkp!Ap}(Qu?~ZxhPc99-%dbu`F#AG}>EjTXIf=7nacYfVNzJpP*6kpLInj zG`dIa=o0|&UV3}ef2*|r^I=h$ zK${0P&3oUrMFT0jXGW#=Jx7;o#?jFm1CXi6djN z8Q0F_wX;l~PzZ3O2*$o1<|xSt!rSzd3c27wSTsYh`MU ztwW|9*2JBJN*J~P4+<#)<>XGC0?S>jbMfRR2U9vU)-HJ3JQ{5YSWK3l;I)*|RmvIC ztwJP8V-(9`4&$5Lh>^7}i#Zx$iwnFXp$va2UQa?ccw@x$EC-KfH{eK2Xfz;L8WcjZ zE5;hCBV0-KEcg8K&amgZxAPUKUh1QE(UKDVIzUnqC6TfXSb;#RLe0L15T% z{<3{4-bjn06$FJnH7098YunC)TuJb=5`u8%mJh=lcoQQF<(64UTT3zCg1Xj1i4ubm z{Z<{stnHo$J=V@D4sLa%5_O)&>klOhajV7^rB=B3{*sf4v$)Z2Kfk<+#CiP2K09E0 zr_*f{KqGuj0&1o;&%H&G3-I8kvN%K6i!!PA$u-M0riUA3C$9Hgt>+#iF_bFm2-J=` zVL1gA1>Rr3O65D-e61XVu-PARopKk_#R!0Efb{ToxVbmg#~GYwxqu z+`aO*!E)^PLXZdOcc%J6(8dJ^R4xe94y}oYCOI69%A~rIDLGFo?U>74-fzB#F1LoR zZJ@~o#;M{dAv)2sVy|m^5613!?8W6FF85woG<5RSsKBf^^w?s{`dEe?lbW&$YkZSQ z(5rl(7H%3o&(+cxCs_;l03C}rH@miFoZ7LxAdj%Z@$Cj45JyEWu42rAT%UBS;VU4u z^Az_FydCVWcOjQsyk$atVK}SV7P6aW{c*wmd&uRG0XylSKA2j z#4yz;n+(pHM^D)5RkmNDhWWzz`SRZPLKW{M=F_%^nz@I76bx-UKDDroUFNcnG^4PZ z`x1>AHel`6x=4hTnJ=%CK%PLcNU+KqlL7>=M<#XMTZcBVVe!)dGo+l z@w~8;z*;9zj9{okmrHvXXU5`$fuc*DNfsM^KaCpa2`-&9FOaurvnyCup8)Zq=M-N) zlIRP@zlj{F(bp>G+UlT3gc)WR-*DNV>fZ-e{T1@krarWvOR}o zOxCELpca7=eyVIpw7;qd%B~n{hInr!nudJ^B$62+hy1Wv4D9Az)q6^pLXj^Ta`N71 zL6Ms@Rs;rlH`5pLQt^>LPh|s6$IXr32rE2zf5_Y)RUf{{C14S+LjLV$gM7FnyXC#! z+%4rUoeDusOg@xf`k{>XVJ!7wJXLaGsk7cNYhCJp#fH{{s<5R7&^4R| zb&ui8W-}T}d)OKYO?QZX4hW_FEK8xaHQWk*?y_`Z-2sx(N(-&EFycA$n8nA-2|l!1KRb;8E3NdYe6DmGG$EuDu}j)gNT1&4CvM!fA* zr(svemZTW&sb0NGrUW%<^Gtk0Heei)SX(6x=V9XXu>Sk{gO}VVhs^ekNiybL6 zTJY%>S<&W{c)D=UNWHWPbZZYq$@uJIf-8B&w)3Z7%Pv}0Vdz1z2kKceUXm=dMZW%2P9rk zp==JEl|AeZcSKQhe&p6-o+JtvIsCdGqIAdoL7wg6_IMK6Gj-}F5NRffUuQ1KnE@l; z@gs5oB&1p~8`PkGo916^nw>=V*5p?6b9Zi+P3@MR+PJw&#kxh88}PE|Z`1h;O{cSJ z;m6>NoDh!y=a?`lyp9`ly>uOK{kD#OWfRXs-fFDl>3pK*cBN(f%v#1Ek`=cVY5F?0 z8Wi}(iMi$qX;fr0vi_hy%D!<*BYz?a0XI!mJUKK+oWs-T>n#aC=ZKN>8OHen88n-) zQ^MZo&!Dl!AZ7t)(J=Vjy-Y9XSj_T+Lwg0naNM_aHz=m>7;PDd)_WAiGSAkzB?Eib z%VR8rmW9%K)~CY@>Z7&4#E>AruHW+gN z)WC&~l*EE5`Z#ETH*@Hij&1-*9&wV|ihbW2agfqv`Yku+xmUHfo#t$fNl;73rt_)F zAOsl3IyRJI#Mz5RbO3lD!CCD%O%j7aj>~S#%=Q2Ax&hSpH=4r@n+LS;V`h-B9zCWA zD^GY^6{Du6egI?UD#r5UTQK-Nt>+fj-c#a8&xF|R_fK}dZg^8uLA+Tl`Njig9tHEc z>}n_5r;USozjx@0jAJInNY!d@!|uq?$*^O8ghdH>A<*N*>Cm+x41 zpH|%%|LIG(xT+Id8##=;A6q|xvKBesKd2Abda&`ndoXLEBYNSJAh-PQ=xf~4v?~F@ zHk_xId>&37${k0FvS(t2wyG2(G4T#A7Y)e6^&B1A&=;GoIs=POCdl2{rPnI$Hf|3T zmWM+*jkWiHfj`I20JnJF@3>ld4jlcE!4?t0+IYG#$&#b=m*J`IVH+wW(5lS%X zz;fIeysX@xmht)mKPI%Xl{ib#Zz$|;s!=YxOHUFmZ{bCxQ zLGm&?-Iq-4Z|eQ8VzPP2KR49-PixQZpW7DgyYjdB`^Dz(UAb(Le$h<+wn~2$v&=*O zb7PglgseHYzi(Tm=mz}T4E|y>i0EBLn&mfXsWYxEo!Gy% zEz`F}y_?^;6R5j`uXNHPt8q>~B9w)>J%(iea&HY>6=gk|voivDYB;%0&|5=p$a(2R zB;5P`j;D8Eh@Np$CqOAb7Uj5?OlDU})o;n60$LZ9%IDK+v$NG{maB>psQr22+KETS zd@@G8A8nL)aXP71>_}_NZB4mZXAaPCjS$G1%w8yjpai`ZGPz&Yeb&9FEP~0XMmi^R zs*l2Zb@#xAkHJz^{snYcyKl{Z zy!pY33r$s4RmpFoDO4qa4la%(c`1&Yk{!A&qu94N-I!3UF4%!^hCzzwiS|Bmh-WfK zhfBIfH#07w+(g)?M}~3a_1KJMk|sB)i5?pq(ks4y&I7_|vvd&!hGZqKlsk9E)AlMg zgrqVjxHfqg6WuCOVavs@bYLz4=jefn_h>0|oy1IM*BkhK?s)Bz%c=IznHJ+Y9-E!d zIl?n6Jxmb6VYwd9ER~m46Wi=Csn;G z(UO!&fl)5o`Z{u|tXqCa2X^dJeY7aP8S=Z$qc?~=zM0gE+NCRrE^o(3r-TAra~$>3 z!Q}u$^-jf3$oF-|MP@P&Hbw&PzE#Ua5N4t)#a1>0odHeYqsh2&XpyNX*4k6NH2^~6 zbj%XyTI4y+(`*Y~6Pyy+RB>NgQ-@6~>a7yo+%KWLf2AL)SaVNlt7x%jf*~7D)Q=k0 z&IUVqWyML;>2dM8A3uv#7y|WEAN5Kk%}}fv3^+2IB$Nl!1eca{6IF8&gaDBpD8PR7l0?68?rcXrD}YrZP&k9V!-{GX zMTW|tG6dTJ>O$y$#5asalcF+G%fc{1&6`1p7!+Z|slZ3n0GqKc-H2QMuFC2f2y%@n zKe3a&Cek~lr+zk?_uHdF0~+C?SQGXdwWAR^@Xe(EcFn+MV(Cw9UXMYc%fUc6VkfaR zq*W4{ROIcmvvD@6F@~TxujnTh8(&Y(3*HZJPyw@HF_W2V??~hA3gTEF?yp~TP|D5r|a1vJ9C`+SQ$~`oBz|~B^*PcjfGAZx` zB}2+-mhc5QG}qZGwdmAfkeNR87LJcicZ-~$Y=n~2mU`W^ zfqB&_40#XH!53udHmp(qH#lM?Mf&cAHZ;8NiFtLCQQgcdU(L^{eoVx|aw=Y?tcz(j zvXdE$K||56IyT9IhbFuaP?wnh53I7uO^T~mMObik_IglD1LdIcr_D;d?4!2#4*nU znqw1+z{eKP#L{=Xa16~^iMi5I<9L>*NLpSpMcnSt1{El9s3R#^Io2v~oHIXq3UyxsMKACkkU{v8ih1^Inn2XSRyLLnsQINlwJl3ZXc z=#&HhtDNuAvq@1uld74Vv{9N=)Sf2RL6lIh%!9R>a6gTl>r5k2tItdqd&HresMSqlCvM4v*)aq z;cz=58;z`D(`Tz32L9~#eapE?t+DBVjIH(frQGT45J*GT%*HYg4y&jzwLfyY<_9x1 zoZ&c8K$f0xt}z%Y1o}Z>hA=n#3^pO);HeL@T(>2e;b*hy1(lvrZ934(I|PU+ry1Jqyf}dKDmr!F-0Ke zS83fd5B&3hhwh-xAR6}Ip0&eLtir}t7oDoE>)qEuNk0%A8$P{IR?96Hvb8CnG}<-I zI;YkKKMUH$J7PZct?lIyL&haM)v&{!TU#sr~#@r>#*3`8H%Z&j=^Zp_6FZTm_~$Rjuw$^+!uI3;R+n z?5%d25{Yw9mcNqQ?3V8_%IFqy{pCZ*IPU}!x@fela+BOHBr|P1< zf}_ti9T7#h`}W;&qc}T6VYo+EVp&_u_Yl)Cg9Ww@%Lf2dLJr%Qs>x%!oG1YUcjsWr zIZ}a`TLlzl_Q5O09knalmDk*yA7@iqf6t*;Ybj^JK|Yj0xRkHd4EZZ#TSsbLyx>|X zt3_&UYsM0Tc@iFJ`hF3q;qM?Z`~$Rmp`0IERdgMe78f#3ZbkWh$R`55D@4yWmK)d) z44Zre=Q$b8}qs9h-u&Q5-?`%c1hkk|P+wQ5FI$&g@ zQS5$SEJ;?Y6qa^AjSbhPh$&R?E6S6AM;SmGm-Q7nO`F|~gAMQ<2>?T?^LErrG$;lw z?W?Q8uXZ5q#Eai<9(C@*w`7q6?hX#qYZ81Qc1 zhSK-FY z>*b9xqf@`X11giDinCHI?nHda;fcN z>bzguO0>)Zq*)2t9MyMctX=q@BRSX$YBNBT6g~(!7ii|36y(!z_?+Elh=UEEH$Cw~ z#61i&*y0#grdsCjoII^gH&LiRORG^bOFyKS>8B4#eku2Enm_}Qo>1Hh6l@7{(&)p} z3VZPkd+~9hA<=w#Wjf#vhZ-(ZHJLv7ls|1J%B6t0vtv(aK_&61b1DaKG6E4KAbm&TNtE`Ja0y2iB+M?vY5}B8Jt`VEjn$oHD4S0!rpTRt|1oG z&l-tnmga&&k{;>3+@^6|1lX*k(xVnP?cJzZ2>5ePe#NGF)1Z~(NmZh&`i{|7^>)cY6qUg>%N`G6ds97WWQOp|c#Gl1%3t6Ft1tF_p| zP|z+wV|w}AZIm9O)z@ygPZ8LlKQC77X}~lb?ylWmx5VSpyS)_Mv7$NTbcL%qt@i+$ zdJIGG9sk|heD$Rj|>Kb zPNUfJ5S1GZVhX7>zw@~QJq>i)89Hp|KkoFNR`JuSkK1|A8FFB6ZoGGQT7M^Nmni%m zQ1go$Z%~*GNc*ypJg|aAN&KEw@+Y>(^W~pr{N#mZCDC=%ZRBQc@^!%0r+5vjxXiP^ zvV#cQB`6!U%0`a&=;_+JYc&wTVfMp+KbVr(sD?1NWx+epVIXw;KaVznEKEx4gbT>AkV0pYiG%FL{O z3{^F_MfZ6w8*l@4C*FR&!1mEJ>CliUG5~prVR!)L(WN+{@yIGENji@{`misz9~-ut zzq^$q?8p5GI@DUa(gHo{OQo&_`q9|DAe{&==UJ~gqTx;W4nFX;!l!@e=@}!zmMk#1S7t@&MK$n@Jp{)d;`Hkpujq&Z!d!b#qJ|HOzCW zDzriiBF5y>|E2&2LU!5MbYv)U!6u(s-aFfFyXoGNf~dSd<@AMe61NQ%!{~ zgGvv+pa8y^6FGDeCL0sOs3-t=HsZKLuvt_vkyqw^9F4jOme7K|Mlms&NPnvIr+G>) z?z$0_gjDWpDZ~TqRdbY1tLW(84!aegv!zm}zqm8z4&WB3kHsWSP&5T@kPu#OuTr|# z%Y&tJwrU3d=y)%5r_MB?+*$o*T>4ntmhHzvc}1%$<-jXo#&&}gU95p)i}co}4or$J zGN(f*#tqzRp0lG2U+REmnkxH2VrLFzuk-~X>JwlW)8a;gQgOH=z8%gTW8=?ObX(-; z=3L@6)Vo_NYpq!#L-U=lM)n$8kS?&$Yu132bDeV*=J^^LBd8O*g4BXogtWzRX_hTq z3Ei23$r)`yXI8t`|nn z)^_|n#>5^p+HM1|>!l(Ke+fQI!XF6fT@un2qEzj^53|YWTR{$*FliV866}%Sv@MU zYt8wuYLZxR!NTm{l!?CGc7a^ZiAVO2v0<>0V!_F7VEgw@be@nHHUn}0LUbJ8sz5E& zCk@GIXDcMloHkBoEQ27xiCeA9+?$e_f@pGha{iN;PrNfm_6*M)`CjPdl5Ap|jT3f2~Gg$f0_&AG?%Br+p$K@JBP5OS@Rm167 z0aU)v|0SKCm)hr`Q{odG^Z^dsh0xQyNf~FmRE4>U<0d$H|MAl=No7N=9 zt|Qk1&nj{8@fBh3eyn)ls&08AMbq7Cb$_Z~yTgyg*rH!}*S0lyHQ}he2ONC-4gPoJ z$1)fU`dU#@5YYd}HA=4J81p;h8RJsm;$2@ZRw0A;_xmF`gV4J@mvsdIy)z8(wkaoH zi0#w^7-5Ga&8v=_-&qk$b^Zj&;lOQRB~CLw=J0@C0tOR5Sg$bLSSx5LyU1W4sRv5L z@Xnkq83Q+OFGqs9AyilaTja#yTQ@jIC;IrY{`j%{_%ZKb#`axIjb10$7*kSR$6}!( z7I7eUby95zxUGe z8tHtjJNOt=4>*r=dVKiWeOl7fy$|lw3wrw6DSO|PN0^u2RzpBg4d}@`Eh0(t#t{x_ zl}I8~5XOD$-N^~%%;6?zB2jB3i70r6prQ9Me^Qit%92a}VWIoNk9tOfi zB;%VzdWIVVrlGMyDLmDQ+BFniO&XpI0A6xaq5O>dVV z5b9%C41{8>=`tlU2`*`G31ci;Bnde_3t-Cci>RkE>gTz?p$OZAa6$SB-Dho6|W^B9~HgC^>UYxK>Y9aZvW%ajCp zg5QzOF?xFFi@UPRF*$c)S;j^WOK*94IHIt|(w6FsjTGDHO#v8G^@jf$KNq{A3WJ)b zl*OcVMM@StqSJX1D>DuPF<}M2V~tk%fbUi%Y;7;cRvHmYH_~ zLX#UlQ3cod@%w}0eGaXm&9f*%#+^>z*Zl)>3GWaXqXv4`dBAdqg0k|01JrO@ohkKP zGbB3WAQ?Ek$^9~`N8}DHhPPY`Cl8hm_rxbx8Z!p^^Qhl%RPy6O$+$35NAyIo$jIT5 zL0jB|r5by4J~_2l$bLTl!u26OSC6|gpj*F|bs^*PSH+hQ7~ThS_PB=GqH)&OTnFyF zZi4=XWmYgud?79Ib!uJ)3kKnK?Zk@o*y5!A(3mrP0QBgb{!1v>>e3P_Uc`q{0(?Y@ zL$2bfc259O%D#G(y+~w)`3z-K%9#Pk`3r`}wahRi5Rv%hL{aftTErk9og~BTjc4J} z7~Gc=#B!$A&VC-77+x$~yZ>koA@yIbR{a-cFKFFcnYmERy_H2ty83EI2$RE0ST-X{ zY>QE+b1N8?cUFr~_CD)aiTViB@^LoNj_&(|=(vc|DJYSWcxUhP$MbuWsTH6#Z#x?6 zC!Xu=eKzRO5smxz1N+6j3SC&~$cW9+E1;Bzn7Ph*Dt87dOq_;Sk6PvL1;?#o-c&fj zYgrlv!5B)baA_MHM&8lCTbJ)!m`3Tp=I0!TD!7Ori=q2*SmippHwaHWrHY}$DYx3+ zi*4hitjM&NEH^EgwkJmKnmjk6s{R}h#d{^ni1!P|%L%aqlMh6m0WP*n{> zo?5Xb+j1Tg_>;_X&rm7Jxnd*nys4#=mrEIs`L2=2*gtx0XhW3wv4+O*gx)KCuMgKT z9u5Ysmh^4pPly{`mfsY3ejlh>IM?pcIZ^xw+yuwX6vZp;EoKr`LU*EE&365{4ZQUj z!h%!kAZA(NZkkGzj)w6cd6_#AM;uG2qlNs=v95yE47rXhmTPceV#rfGq?r8o=;&Y6h1pkfuXem<< z<54_zBHf?QYmTzPx=NXn6I5P^9Vy{G7=>|(`u`S?TB+RSc6ThGy-9YR-l8mrV}4h5 zIhGEoMX&KPNY{;V+p})5@dOQr(bqmt;FU47HWtI#d3&TR#mTuW4|C@<+62~a4ICEqX}EsNX6TghTnTsmerPF?eSW7)(3NBS>2bJj3-kn?VObNNp(Z*8_-bPWsngD>7)Kz06L@U1T#!1tI0 z*xkuQY$nYtVSLEGklnh_39JjX!S9{RJ#-Tzsdc~9?_*F0)8WafvmH)n&>N=&Oz9?F z;aW?&(v1Q{-=*a$9bJD&NAr^O)#$|Dy>+ic8FH56%FC65_oTG!xJYztxHDL847j;? ztr@lY11M-2JSB;j%~g^I*_6H)cUcoiUnh@&oo5VGs#-U7Dhd#Fj)6@$2|1a_EMH<( zhmZ}FS2 z8Pn7N!UhJauh9Dtni7yo@V3=$zH3VDYgizBW0LN!-$$?NGOtrqvs3?ZfXY@lKzDY3 z+Xr`Re_Myd~L+ga|tz=LH~u?aJ1ebLCnuCtvFor;$t zETDCYg@!OFaaY0-a@B{gkuL)CU1Hfzi56P!$}25j53L)PGxBEmkx{E;`h1|U{KG5cO6)pdGT^@2(C^orXYT6O&G)mxqp z6Hmrtz1^&6XKA<9D&brkX?+8Pts#46xabM#l_!qP=hRMa<%=?0kT5Mq^+QC3v*nya z`8}+6$b88!ZL34;S+p9x@!ARpX7cu}=A51bW4>O&lmY;OGLl+^=eUFWcqi;Lp!fMN zw2*v8fxQ#SO%j&e)1ZWhu~0hqoz-r5ziY^s0f~=82jXR9-04ukYD#`M3X=M?ymoLw z$&FG+(!+$Bd|qaP9GgJOl4WsHwB zVGf!U+#+1%cWVk)t#@yJq4*$E;_ZjzdAqgkJ=QVfo$W`>>(F+bS-Ql78#Z+AYvSMbb7XcgF@ku2JW<@%}d>s_~R zZ5y?_Pp4{+c8vyYgK5895#G+9&@xh92Gc@1T@6L(^%8IV$Pm?J%U;~#WN4mQ)$*6XP1x$1m z_k~Vg=tIP0g5hzJI=e|Lous#;o%`%v=TlKWzR2hLqDyvL_5Nlxw zEvfEd0vublAGFn3#%gC_thEFFCb~UTbhC_=bjW-O`!QeIK;7C_<|IN!ESqSm`>8{P zD1C1Xwb^&_VqU@@ON48#fR$weA3sav0{kqH4Z@u)}jz-b_`o{Cw$Jx%avhEl=wvM~%5M+5sy*i+Fz08-)lyqL!bSlk}TOLr|$o(m1Y z`kG<2foV(+dNq-UVi5jm5E1l_JbbY4o78MTYQtFZcImZ-_@8N6yer=nW$F*o055r= zj@L$Co-P3GLTv-sz*$cr&FZ?<(&DBzhk;==%Qu#RdoEc|XNM~6gZ&T~+Bh1zP1;^O zPy{+3sUmvL>@u`#zeCo>22K6qI!$M9R3J2O?Q*OSyM!kzPiOn$x}mzcsd}>+q@vAb zc)Ca^jh16{rRQoIRhwZUc`!czz+khC!6l}V2X=v+A}oGl z%hESQLc5_!3Jf^yNiT46i66R>pa8xL#T=;DV@`W_)D@gq*ltx{<1(#44={1ne4}Hv-+xiKADncsEp$^4?W_aa4w6 zJSLf7o~w*Kic3_uNkt>{z=v)94y3}HMi5<*phIhL6P=yb+$$)T{6Jj=;i*5hB|XcN zB6MV7ns;YmLTSlV_7JV)I>^*Ju%CijwW$b60NGB*8T8&{CvlRl^_^bQxC}_Qmt*Fb zpYI!NfpW2xgSPW-Kq!^4`w?Ce>{;h@(5`fHeHvb`SZ~u$C)ZjU2f{hxpq@Jz8&eH{ zP1F5#d_!sI0N?;`zyycyjR0K-edT~;EW6yVTM_#GZ;Ft6v5?!`&##DOtaG_g^deRI z{_*b@8ttR$S8IETI%9ay1;a(w1Y(-T!-V91S3{8!_{Y<3!d}theA8~uQ7V=b4iBq% z{?4H~u3DxlwK-U~Ix14dpnsyN=Id@$r^PkV)Pnigt%UBmhJMm4?Kv}2dHY#FPBu4( zU}9<#P_UNuy#JWmi@(S_gqHAR?elD_g2GC6HkwGlW*-Vuio9YyBfZHvEnVZ&?ewqNLz0Jrt?7{!LF_^ z2}oa%)cj(hRW7h^(m!y_aLeV?uP%2wY`^k{N*(JWYy}ZSVeIkmuB_YHbuY3kmu^?N zavGLc9_`wxNm8`}8ou;G>eBnDB5%HySTNt+g^*x`&BLO&POj2qY+~%oRZ+Ibvn*f^ z-v$wgq6WA`WG_;cen&?GmhfUEhpJdMRy0M93aobJj4zfFu$#2ZE;8jfK$jIbsBk)N z^hUe>NlA&GLvU29evhMMa+};$f<34j<@3perDSp^SSl$unW6z7GVHGuXZ;a`B(u(z zdoQ-cKY3f!yZOo_Qx`gEl9i%CWzJqeK-|nfns}_1ouET4RD>xPV$*rMI!bO)0ga=i z$EmWcL>2CMmy+L-bE)p%y5>-7eNyGFEGE+xa}R{&RkX&9i|FmUV+#Eg283jsckAdj z$;rbKwANX2Ndcz#sJ~ie&A5cGFQC4rn}PEjfh+wtjyjt@D}8Lmq|Kx~Y1p$LIe3ww zfM1af=x?9h`@gb%t#ffeo#`y*M^Fdj%HWFj@~S&KnZ<&rrs@K~hQVSU7BikLUOZdP zD+Cxll$nLyP@PS!(4m-~pqRbO;ftH{-UWyToFu9-Pgu^0=PL|cnx}T;p&t3dXk)lU ziBkomTS`b@l)!V6GJ}%J{RIu^8Z8z)(|+GPRG3_5AEHt5P#TvO)LfY?NI}+;=6tZl zuv!#HD&)jg@{B|RL|cjQx1TJbsLxcnzwsB&;-0#>lu=`2gV7`Hz-Kt%Gi5{ZZ4qu! zLpF&AEX=6I4D=-}ix$+kDXU@J=oc|>qsgqP5 z>v>U3#MikQYSNsqoWX{g<4U9JYN}cTXJIfH0_IG4PJw>?Mm$i4cHjC+sZqIv7wR;c z>x8XxHjnv5`HS+C=@r_!WlPdivsW&oz%UG*jMB7d5r7Uve<$NzgLO0|*vC23T$7EcW$hqG<}olOL5bFM-ioBQP!RK6 zYEA-uXmjx)04KpFPZc6CHigDHdkcv-q)wF#ow%E2$W-p4pXLQ8_2KB**cq$0qhd;~ zntj=1vdgPlMJ@&fe^RCTzy_KL;=<}CS_DF}t#r@68p?M}DHv%TC6Wb!r^()ZRElRg zMlg7->Thw5IHcTpdQphkA~;oY5yb+GMVY!4XH0mYOSd@jkdU4+xx_L-G~8IwKtG!M zoiwZR5?UKxF#5HzN5F#SAL~fSsz@MlsM`z=hqeT4h=00e5~ZEF^>G$>-fbftC22DD zK`ybtKu9eJ9AhTr2TL!(>U#Xe?Y5nmK?EqK8su5O%n<`+Txr@+mL_lTU4@(%D;g*n z1!wlbhN{D_oHGx-uLP#h*jb$h3`L$Pi=%45ywb+VK*H1|jTrd~P~X5Io8jcui=oD8 zPy`AhW1&yZ6At%e5q0zEx=mg>3*gtiCeb`rQXdX76?zjKS7;8Fj7y!=&d~ZR`-#Pn z8#P+(o%m@DTtY9^ytQ?;iIgC$*1&h|O*hf#{0Mg2vR(T9ve&pU`lh5Fj4$L1>rtz; zj-MxZU0Q-AsChyZqK6%Is412*j-525)O9VKw#1}f*ZbfDXmrLAyhVSrDfGC_md zg)eE@XZ&>bU(9Qx4LdF4N^u3>FHHW8q0Y0(7&8ZoJj?e)bOEMFMw{Vh*e7O?ZpLsZ z#7V>LlB|~aijIO22$pOvP@2s(pfLi9#C3P!?T~mG=~;c;#B?Qf*raWW8PB8gHYvx8 z<$NgwJ0nyo6J=FR91h6>oD%vm{S?URsuv`z(p?ngrl$o~=+zv(IZ&#;OwWNDkoYgM zPsq}!EiDcIc$MaUtTZ z(2&y|kSDKGSoFXwZ?R#9Of?G|EOK6Wf|}2yD6UloJxN`ofLD4HN0N0NMf5o8{@g|7 z5OZLG99-J9K~B!8hk&Ajq~;x)gf4E!w57gy0hND_&fz~z-khLoRL@BdfO$!AP0;1) zq;jD2Y%qNv4kZpazay7uO60|9$0J&|JV!NXHmc99tmuyJD^& z!xT=kQC4H@2)wpQ(;*kUU=gGx1&YZVv)G1$p2mS*8GA(zb5hHU&G||hB6MixoEATN zM={23ifl~Dz|qGA#x-4T_af1~Mc|iCH|$#~2EK3LvKpCGSJ{Q%%-<#Q0~HKkM#?hVLZw$hqc|(<%+l>9Vs^s+p^SKU$YfJhB8<5wO`#`eI4g( z<)|+ABAlX)d)+IzX+LyytGjEToc?k#Swb(Gp3-QD+=<*%qbEQ(^Ye3r-L>CfgBD;B*<-*wGTlbX5~0CCS$%GDy?RZIB4B%@1!ET$KG|`CUn;v+gim znOZ>Eg4qJDCPxEmV#U{_?V4dwTEVO2a)Tsjt){g!@$T0FBv_#oV@AF9S@1ZWsA6`^ z8&%T}rEmh&&JhF*#IvO0sX$KA^X3Yp|HRR>7$=h<%l`QFLnG9MLcX2Z3k3k_NSnK$ z;Oazo_;kTEn0*3^Dqcnrg;wKa0>D1v6duOfJ)(aLwNR8|*c5^lEM7-D!Qp4)cyxbH z!^DT$*A1RoEA;_aN@z&S_(zk)d!7>yq&S`r^HwKbe}&P**1>b4J=ty?dyqypGcn@+ z^bF&Zq5DI5XM)frqbn7$hIqc(E6VgDEzt&JU*%zMX}_3q*VGtR?qpZO|)1O4kz6guqN_GxUx3=C)WUI@HK zPeRHFE}Wg*@%NbV5w5@6xi$(fE+T`vX5{~0&3jO-A#GqO{Bo+n}<&1}?RCzTo zCHffJ{>jrCMMpGD0J!j$%j24+^;I$6gTlTY4FQlW4dehrpPnUUR^Rok3eECl_%il3 zZVz9m_NsUi*Dc012H?|yiWcVdsmE}dg1hcS!}_MBC5~&QABT?e5PGN6*JFT6Y3*AN zLWADG(v+HlAo5vQ@4`&vt8`Sb6(6UPa=2bzf@X&;qhE0r~P9&kAS&OJz*T7c#(f2VD&ODCJGl zcNJ_+V~j3-3nPJ5)p_|6M3|J;=F_T&7S5fh`?TuD(bF;fSM@*U6uCgbipdB%iK{+M z{h~`#Y<0QN7&3f@kGtI{>z}*`<$=Dwc%e>{o>oy$#{=I9bratDdEeYjc}w9#_k)n( zc_2E23McPi;jd;+kQUUB4GRgoH4qlao2eJleWna<0{^cY8&5W#M3+&t z1&@#jVVBINFoZFwO4^?q9u7NkCzkMGscX;y;{KkXSgwGH0mW)ZapCyiZLxEtlqr=J zg^VrTxZ7%AAy_)VBW=412AfPMSYw8Sc$4Ptz53Wr!K^$FSwy!jE_jGqX5%qP#pic~ zJvO+gu_GgDH?~BSi9(mAL>0hm_`H^?dX^%kpf&t4#o|Qo6==0(>5vK5=#{hLx2&*Z zhVYC&AoV?D`$=KeueOU!PA!}O~FhKD%KPUde<`+ywd4kN1@s;C(uxSo?yzL|s&}Ap4}01Vk+Xp$-)tM2dZb9VLt{Kl^N#yI z89S&7B9PtBUd@pQ9hY~+3H$ce($js}v~X$GO}7U!Nk8i9YXRy;Ko_X8E9>d(VuF;N z_YP&Mc=s2Sk`92}_pr?kA&UcAJ*Oh4LvIZ~>n}O!QGstWXOMJ^gB>M`e_y6ISuwAi z_>&73yz8%o4k;P3?r~OvelWSy&Px|%F;)E`$8ugZYL#I^1N76Owk?pcf=Rwe=nJGJ zW4_ecMUz!hcSUDvLKsB2p5Q?;olR1gqp*d@rda!J1)^|{qH_>2RM#m_#e{MhGM@K! zD3CZp(riknW`ZrWv%Rz3x#wLQ6%Bgwb>|+s{ardr*uy5POq?eLMGsZnO=5AkL35kA znyR>vY6ua{-=9Mp)(%gN$Pwc>t?&wLO#VH4pPk|3_)NuDg~b2ClC-^oU~&!mgN|Or z#~mKCgE?zqbF({An~#eRG_7gbU~+iPE^Of<`&PhwgslPpt9>g;n{%hEr>Iu9k^CYx zmO#-!t-M;C`Fnw&>(V+hTtzx{&2fNha&91Ki&ri|AO{^mRvKh+4dg9ia5IaGAuTo7 zn8ze$0VaXO@EeElIRs(lAH*KcwF{SX_DC@8KwnFF!?*TS*rF0j+s5;e1`_j~EVR3W z#0x7Qc}G_*wy!KsN3&f{3X8CZM50l?}y##+codgNxy*N0%XK=iTI1=wjwy(nJCS(K2^fo6-cVLpDNaDz|t$G-)DlnU6|^b3#M-A&X)P zbMHkF!Gz;QdHXt$PW^)cXrQEpv0!CH;~6uHP+i_23RlBG2lq~dK8wWTB;&;`gD z_Qs5Lrq8dXNsya=mZK(6Q| zxicu-0m9S-AwdzkTxHRaV1@+3^Y#)2+~@Q%(3BjZ5{9BCSr&qGVEQQs7F?NtbV_kQ ztnXwUq&$u6BG0{+|U~j zUtCga|E!U6(Qd7M{#8QLB9?I-PF5DCO2)LnBmo6v0jrl(=z3I0rsWhMRxyH-1LzF} z>X0^T*4^z3gp;a{WcdHy&@#zRTYcT$zWGv|AWtSTrbM#I2<|{|V}T14tk>d+%*o>+ zY(}_)O#?k&%^4XX^b}Q1Tvt8LTFK97nt_^~RxfC1{q4=$t_We|a?=a(NagV?+b>Ee zV0tn}Eg+NZMHF18KXXSduUW`d`Tjy%; zJkZj8`1YLHESIj7-P-!Bl2UAyVq4r4q&FMQv&8;ukblIK(>B-XqeG~*HRnU9S*B&( zQg-7a-^5jn?aRWNt~#6HDM8|RrT~9Zh>-+LO9j-lBnL2ZuPr>Z#|htgqwZN=nZk`j zN5t0JfgW)^Na*U?vSG~a8}T6a=^C3I*@+x_$RAHfT`gOWlWFncgwP3xf3F`kB;|a# z>JE`!KLgWn;uqb6(LfqFlvl^#@5-L{Qk7^CsnX=Mowb)(q|1Ps?&Ev`Fcne_-MJuw z5!HxJY+})o_3-amghfH%{708`lQflaB;&Jl(Q&x}yWW5UCNLX*=6M!PCvFyH{{Ub} z%gPEk#U`Lg$6r*NUyfJyYiB*2n@{#*Pv8<|R;y1>$rj}OSUihI>_)9AEH{Q$c(+_z zy#k*lfVA1*Z(_-@O+PR7TBuCjz&%m)3nNy#)-Z~Mz3+PsC+-7>-IkIvP*Av#nCnzb zA>w&}pA*lC{|YGuxW6{E@jFEFY+6ixE66B48KPK-Liv|%gxWt4QP@`A`Tk6JA=I7K z5HL~dEuc-z{{`nqilarQ{XKUBF2Kh2hni#e?};SNn}6GGz^4?4T8uSDAcKzNoej#; z7d}lw83PqDvX2_jR=rWZ>uc<$RnDBIU9RxV-hY1%pSG>DZba?B7Y93TYqE+M?)pgJ zHem%XiUPL%o{HUmmK1IkK5r$w+LwM_%F%QYToPhrcZHDLA|cPCss8G(p7C?ru^v7% zWXW(GAW%GBgqzma-Ed3W`8-noU<)SY59$9|)B!)v=#&FZk|Ji<#I0B6l}8crUEc08 z#TSDsxZ_3zX-M~j6r8^5_PzIh4KwosN8#)%f5H(y+c!Vbq)(->KKvIeoVnZdRKfLq zs|b~gWaqR#G}?M)`$k@!jDpaFx|=%?%G&7ZMJgYzb0J6;IvvD1E|*qN6B$8t!g6N0 z!`#Guoyw;94=nyQo?|A}%nSnQU zaVTknDugbEt0z%fGadhnf$s+b>GlBcrP&E=EIMakd0Eb(HkRiVug=0=<}x-ABwdO5 zu#rdp%(X5P=#iOI3$l8e!x3EO-&2nhv|t4&v{-K2we!jJ?P?gSF9t!hs#B?BIaXH$ z;nN1;yXS9A{ULx8JzVfU50Gy^rf_m%(Fxii>AzXPSTi_PNPFR^+>mk@B@6ocQ`(of z7%j0TVIRqAosI_?ZQ;9kKhbtnucDPSDHJGsPN_#L!++Mh^fQ8+b~wk&NX(8qMeme3 z=**HHiKX_AURrWQQf;uVpM~{!omA?$c7P;Q3zKLr-Iozn(K72QHm7N2l^hk4at~~T z4{^|M2iQ0*AVphnv1(U?;LK|8_Q@)x4ze{eCR8ys>&=QQswPHLii9>(uaB9Lswb4m z*(0_Gn%fUZe%-dd0jA*eRAkO1=|1jX*iA)r!u@){^I6NuOQKP@Q-J!N>n!(*=Zm|`oKqT>bTN5hBZDQznm8$|AS zq{>bk{2)PNeI`)F_GV^gtJ{3^qX&PC4P*7wYt6e%T}0{OZ0Mk?Q^HO%isLcD;T>Wq z^H0LBszLb36xV=OolSu9K_DNJM|fR7lc@HT?F&^xO=~duRF(&@Qj^h{(A88sbs0+dA?4e**Jk7h;56NDhYK zeeqQO_ku8OlQuo=GjV)dZp7+mRlLcvr)&*Zj|G|&Ek+P?FufL?KuZ(~Y#P;Q)ax&% z&-+W?TPW@R%+4N1y*prVdyh1X9IPDjAkv$KS&OOq$KE(9C|^L{FLX?x*kJ)gg`?V2 z$HSyzi7i)Yq_|Hey1c-!Uo>OdPJxt^C0UioMtm4Z3(?Iv zJsWL-mud5w7Jin(sBJ0N46}|@Lc4oQ;wbDQFe5!&;6PZ*+3{qnZ(J;4A46SpN~HSC z+YY;%eSENglJY)GlM8|I$Aa(o*7+Ss7(OEqt|1@`{zS>>nD(zq9a1_1;ZjUfjC_Xl z=u(>m(jh;h(R@N*%4p$)+;AJ6p;7x3XaU<0crWcA|z@$k)-?V=61ijKJ*c~;~ z@BY@;#Hw&f^1WI;VHsta+gh!k`znS{7iQzU7GX#|u+q~Uz+Y*ZZ#~qpkh*Zqj?bQn zFS}*1bHR1&yVva5!jg`}f}HR$JW*Op6{)D$KMP!|QNMT7t*KHJG`M!bhS{%G2*)CzdH^iiHq-$Vv--5? zoin6Iz(H5Wg^^SwhED?Sc6hW5=qQeDTjQC9Lui$0?B`knS++w+!xmk;A|*Vi>8kL> zZlnR~Kge56*bt*$0CoMYNKJTx*BnZ1eo z$BX7*A0{j>Iazdu@=lO7H9EoSp#%15Iz>)LNzUL%9^qy0(TFB#C?pm}Ee6x<{H?9& zg$_CUqJpTVBOl~~?EAE5rqOyf){B4!`N0X!_)8^SDqYDh5F@ea2HeVL)&*)C$D6TTY($u5S4Cd)xQ&IJ!d*!xu~3vFyzq#9Ac|K zY%=0w*C={x&NC31I+0962jy@@9_*C13SE})HiYP#bK5$p!*Wq2~9-Jy- zF6{5qPZoeX@TK)pC*C<+a08{fT+S?^GC%wi=!Y3u5bVx{KY`2*Y-gS5vg}(r$*Zb# z=eRgbd?x@kH{vu@cdrGaWXrtW>JAVcT=d^~wz3m9G`s9Lk>mDHqdtlIw!QGBgxmp8zg_jkj)nR|s(BsdCZ3&k&lk z89SDXDaL^x9nz%|HYT?eWh%g1p%pI&?TmX%Ydb-BNXT|<+O z`%5Sc>$aE%f4=`j%T1Sks;k&r569G^_2MWD-8E+XYBViWi;j7k>fgg&rBpWe zV+R;ewwb72DB22B6wU(lSd0S1@Ppma15Q1_wq6fGg(5Dpx~CZnjvb4gP%}8-cvmb(fZ!9JGW# zRZOzLw=~-5QCdj?Wm!#?gnYXahsN?aQt4u>q_5{EzKNBHq#5O<%8NcRy({JJ>DQ}b zDBSulK}*okHPoXqL`wU~y)l%t3!k{52SWCSyCk{2$#ZwMIvXc^CDsVZKyU zy#WrZsu-9i-%yqqnH~~?k|RMAGOZ3qTKhO_KsJBC5;U=QRO7~#jqiWa5B37<_ExoK zUnsU_Tz!P6*z*IaT<*?ne!9w;7Hc$Yx2{2BXciX45^;=Fa&VSpC8DGUTFl@{{LJnEk|P@N1Vn^c`+ zQcYWiusGof^PO;7QW5Y4(WFHEekyQ3e%s2&uwgA9^*hC`B?}Kgtg;#JmLJ*kgD9BD zS&>AcZCu)chp-Te(RXC!KsQg~>S5TEFnYd|R8MO& z(YefM62U1?M||o29NP>xVC$A2u>+Zy{KF^iS+RgA7bczeI%6BJaS(2IsX01yncs_*b%=M0dxgA~MiusjbYFtP4zj_;kV7 z>=6dmwnKXD?tgrk>Y-(jHhceEpb`sr@-fNIYQH(acFF<{N-a(@<_?pT*$-A`kn4~X z19py|L;C%A5NpToO&>RipXqc6JHykA!a+N>GLo zYT$#6`!68`1fXCc2MR=>xc4z;DEilD-!6H}gimxl!D~FCr;kRwMvJSR@q9|0dJgOn z{lCozkkPzrpRPyG-@7-xy+8chJiFhvrz?WARE8>0eP2#KmbJVMN+9MfmHFcWP=n5& zEqp$FelxTeW_M{d9`;otzdDN7#!ao;V%;jYy*@v;*6G;TKYb+QbZjlqQY}Q>s$!_* zQfUG43mABez|&~a)tDo84SOPUhB@n+J3EnQ7tGL`WUf8U=^hRVjqWtMMD0W2$AYSH zz#&sMOk}BV^RYMPtNv!Er##hOarHO@=->%W zb$-h0a+S&;lEGLmFMU0YVx}*i zyx-RfWHOr6ag(%){7?4ALc^i>4M-U%|axagomBR()_^Jx7j9&a3-!!_xsAv=R1w!1KnDO#0bK{g~uYyxC zE4hS!q%_&N&SII*nahH;?c9|i&{^yg5|X}fJk&#kWSA;YiBA4HE))#yUPI>z>DDN8 zvA9x}D;148a+4lsM4&3;8NUwh(W$Lm33}gsnPkp}U$}&9j19P^O&+juykBk9%_zG$ zmA6H_hdBI)Rq;0UsU!2F>(!H~Iz-o2X9vk&#iGyHIbp7PuEC6sR(Q10N$(6(cvDKn zE1WoEHYMNl8B5Bo4y!7E#!lL9V0a#b3fE8Bp%EO+9<{_&``6^&)_;*UY@ zvQ90x_u1I|hkcTa)h^u>oz|UuQ@E0nd!|eg;%S7>oxEE3Fy+afOro6IXg%-mdbf{c z97EnIL+*8tzj=B1RCGFztq2sF-yx-uT97|0@%Tl0Of{cWnmB}$&eGtGQeOy4 zrcc(r1LVUG5eBlxspR?~n zxy_H?2ie!H)td`sAN={+e+gV@@&*mHW{vPR;D68F(VBmtHTR?%j}fx_419N7uqbsu zMk|Y3WlX+p1^x^0a0F)}8nZi1y4PhVm`U5Ckl!XaST2eaB}JHfg|-8^{0 zv8g&Y2)xQd${31E?X?qwRU>|$Q&CQIgQ}b#OUk|j2~(ue4|O>StvU;L-@qRc!Q0aY7~WN&6KWy zHof}o+O@{;0U>53w|Q*?2U2kg5RjN82(?dDex21+SJIsv@Ry}@&9JSn54s1!outP9 z4*L#M=-Zp4=h>HaK*Z-$=FFBZs~QKQPhl3JCwSR?Y9e`S&s(UQX`wi&JDXVj_U-f7 z_$}FZ8eg?kfqJddh+Zrw*pW>@Y40W!j)Dg@*denz8>kw`3@nm*Wv8qJ$JeQ9eZP znf?#UxqOWSr63fUOcQ5)ZK6De3VapGK;xB z`IkmT2mu%o8x)zLZK|C0;|KgaXy(#!Tx9%r!iVAX9>~-_5#7TZ3s%U5pME{=GxY*& z!KmQ6LYk)Z;F>Y>l)))|Shx-T|pXW*iId!(G*RLltSvVidMu-q$_1ZW@yd+Qj@=_q6 zr~m)}5>RC8Ag+%O5n~Dj0Dyr20GR)7?JevX^juABjqMy698Ku{|B2q-!$onxc90Ra z=aq)nRh)Z4@+y4T>?&9uwVw{3s3y^0U~_CvVoA}0Hf-5p*C{toDy`QEh+A(S@qG;S zWjW5ks`ERTQwJoYkh9?LI%CU?3+IaG?V(!iDG65<17(Wkc)p^E2CA6#{)J0aqc%o= zm78&pw)e<3Hm)j1^VsalH%Kc)(B=4f{+a*(3>_nqe)Xj!Li6SZ6A?BIALf%mFRIRS27CeMvO;xu?kyX?FJQ zp!Jl0pAU|;2Cf4h2Nj>C^;V?yQiMj^ud`;og5-!g)w;C+CE7D38922bPBXKtY}bqG z;1)Pvp337bqmbCTYm3y#qW1_&?rF}fxh`TTpIP)mt@Qod>$TqhtPPP@H}o770PsW( z0AT!|+BiFUSlF8VD@~8)uiarQ+V74Z*neM)T&GIe+EMTu+N@nt3;H(9q!xA~*M#%P zXpgd~tcj6E&fj~l_!SJr!W$jLSq|;$M~A0Ae%{62&ceIs$Fg@}EyQL~OB{9o_0^5j z?IaLH(i#{#I)na>$MKqW7(-P!Vv<_UjEhJZy(!I2PcTS}>mD7^YR3bhN}rdVUoe8# z(a<&kwz`yx65yEHiOFWs^=0WPk$2g{Bc;=vGe)AV+BIx>*kr=ddREbfC6w_>>hgn1 zmMF-TmIZ5)DW?<^Ti5Kxn(Ot52oxDaNfi9LJw4sMUEXlOYcRgEEaYTJS9@p}`B#== z=1{;R&R~Y7&Qj2VXF>XmWzeYZH0=lPL)qiRDq7T-gQVKj18OObS1aKVnp>dyOqogN zBX}L1S&4l*+d4ZlNJrl*-v}K1dr7YtZEYB9uWD&-M<=P>JsrMoE`BafaB_P|QI~oX zdv&#YGf*H_Km;$!(93|~BXfyV^QIl9lkj+SQBsY@^fF%Xm4~oMKE?-mUgm@#(PCr6 zAu>scln^DcfA_kyqJp*f#1x~aF=Ia2pv6QUwq!@rjM@lC z^*6owv?}WlZ-#ViJmvO0MJ|n_&}{!A?$99tPYd``57eBvB4fs{L;{-+=&9C|0j8{P z=bPEn&%s45?Zo*(7RR2q%g1RGhksT*>R0tJJ*RBBd%TmQceeNL>?{Q+-_p7Aug}w5q3(H2U$mSwj`a`yw&m{1rR%4t@* zso7W}8GI~8OS5jBAifjXqsoa9MxmTA1Z)bJzAg%v-JkAw()&3{Bt8X6CDKL` z?Rdp>WLWSa*uKCWqy_fwuKQJ3XAec&qxP5EA$%e-gz(X# z5Q;hS>U`m)>##Ah2GiNRJ5jO7wX|~}8<}VzD*<2Y;pY-Q0y<@3SB|SX(M^a)p|Dc85+p zc+Yn*stZ79_4AKk)~RmNdoh^tgqv@V_5L;mLYtR_s(YK4f@rtM~x%$U5OHT zVA6SAa^IN;T%BvhEeBj)!I?iLo^6;t3BGfet^1hSvjT3kIJSB&>dAqEJ=Ml`e$^n1 zi)j?{Fd@oxBchrV^XJZ~~pI(AhI3BQ^1zClGf1qyd7rtmpTcZV$itabX&rururY}faIcC!^HuB>pwr`>C zDy!EZ-JO||JjYHuBn}5Q>~8q`XSjR9yq=~k_I&GR;@!6In3vc>B`B_Yu@QI#&*ba9 zmugL8pP9^Ay)dPIoMJ6&O|BFFcnbN51TqEIYH*Ves6%Ps##yDpIqQmc#?nHm{sn3wgR&@Zf02=e@R^#@1sfWYK;W$oMbEt7(a0LS#pw#A6=AMfL-#yytlL2`3AI zs~ipdLv|2|JQO+!ec%d9v3w<-s&cvO{s>R5B|Ma3SLk`4-!IAwq{fZ=tQ@vsgTQ=r8^&9sJxjdK4}ca>Axf7RoL)K+q1`%~4bxTlA$Rm6(ZbhVG+ zznZekw%>-{`O2o1MvwIaosvH{?tA&5o3kTHGf|qsClM#&HVqfXwz76Kp}H(BWKWfg z#k;w{W1ov2FJZn+g41Ry$UmsirD+g3pZv6Zvo+@a_`@E&JoAap6#OW{s_xLLk=(p= zdwfHXY!}V0A-oiQbiR2gHP`Qb4|}qHd7)IMx;-o}M!wu|{Aj!gn|amC%L$rbwU$k0 zlxrA=7}~IV2oehpnH{%JF>CZ*5*z3gJk8k;!BhZBOU#FpG(#6$zB@74;Ywa@7DPI1 zS7J>^FIl|`*EsfEWqbmT)JxWPKK%xr(fc(ESpp%9B zKlxYl=i6zkHL>rquAgd&={a{&D!bV!se(tvx@6&xU(ONh^|1#hDwIYwRU(=AmZ#l~ zU*8UxKww_tu{$#o&=oy;)QI8zz_C5&S2mbIJeYR9N_OKIYHktF$q1j>#^#KArdZ$z zQrE7j)f<>Fa{+v|H}hh95crdwwfTMO>-lg*-*$JW^6fjUKi0k zh--r~M&lSjGdl>heSES1FSQZiVQ^cF&)EUf8dwFQFo_d19%Qh?-<7bYK&&=j;5u#(+HhEXU0E_bRL>SW0O(R4#!?_DPnPU#z$S2l$zQhiKbX~u z@)~0r#~QhgV+I4@Y(T8C!$hzMVx?)+T=jl!t?lY481L`>*3Chi`d4ks z*Y`c$=XF0K8Rh5 zai=;O{k$)EC_Os;poMaF(FP4YT)j`LNFiY&k2lx&3cA?|tZ9-}=CC>P0h;vbk9c`v zhmxoamxLyN?^e`moSjv(H-6)u0U(K1d(W-kt$uzmdLc?487R-}U~LEbNwJu2@IKlW zDbO(Vnh=c{>8>h53gpP2Cq8UDavP4JVy@UB(Zq<%B|E|aJGo<8C%~o<_G}rJ(oCcz zmi$J%6QtIMs9u3AWfS>|>w&Szz8Vf^La|xjWW8cX{l4*2WALEyCX_VKT_$S@n zty>tRlMx#Q1Vy`&ciKLm2nr(6;jOgaI7=ut*@V=AS*ZmQ5 zEOk!iP_qS=Fxe$ZSH7Z6FjpI>~Pi#C``&^`UWZSydv#k+#iq~K(Hw$+)AW! zlaZu-%RpI0w54ZMj~XNl3OHHFR#69nZMsnhu`!n?CrU|ZU|LHw*+uy*+p%g`)rAe$ zzy#=w{b!u^g>leotZZrw-BpGp_0B4o>9KD-dl`x~+3cKN7&J(?i~Dfp{(CF6Y2W-r$`AuK)Zawwj730h$v?Ft0M`gEas1N8 zB_A#5Il~BU#eX!*yC1hYOf+wrA@Mq>q5N(CKAi0}RzfVM=f@#J-e%e4);R%!aOcF9 za0WuKg)z`i#%eyWqRNu}Z<1=g7fwd2>aDFj&;r>CcOQ?8hJhbLSE{E@lFsm?*740_mxZEt>fS9LSd=nUJ~GxWa+1p#8TaDLoH7 z))En=h8hfnA-FnJ+39s}$P>mg$5q-LJu^bVH>ASp#O(#!KG46UVC z1V`xdn1jpMkelO*m&BVg@%DC6;4W~Q<{`*cONaN%`IU^X3SXENhO8vNKm0}P&Wtg( zMKc9VpE$I*e~U?@p%<>sy;*(0q@!w8FTOMzKit@x!|wVGRR;3JE$y2eSYZH}2}VN=y$>~2az zqg%yVFloXVtk*hz_9y^~bOY+ST_|YqR?y;7K??KR#$_O5CF>uX?D*eMvQcYIjb-}s zup$;$fIaeBm)otUr$CnMSC$mEMrP0^grgtIfX~iKv#0{;wPVf?SU;zlSG9h?8q@WD zAnO2ODV6PBWU!YswvC`^gMjMEea&|)P#P}Xbr(VONZmxf<9x+JQ?t zb!l3s@vsGHFtTXRi;@;cgD-YSRTMUHmJLCk@I>AuDfp2r?SS;?(wics{)sSIOL@Iz zA$V&EjM-6{kC9@)U0D#QdEV<8i9GG(uZgWL-%An0*8NnO35M^5sGD~fY#ub>`@Bdb z4vIR=KYZ$-K9{mprkn9*hH6DY#C$A>ISUX&vt@}B3)+eX~^MZ=16rLY*%M@9Ol& z%H;uXOEQB4HTLvddq(V*@urK#HLmK^-syBULC*)~Xxn7&`+rk!k{8#Q|Mlvum1>1^ zt?|5VgC5gxPU#biaB}Z4e66P~LEOH)n>M&NxR2>$&OJM!=S2;3OrWG4?|u4zos}jC z$?aK%fTOM(-66n;LIUF0j28krq40P~rcmikoMCERR7P^zH2E(7k&Sbk$-B>-;-zj1#k@ zXQmP?I!X@>^YEvN)5fFg%zZ7ujp3B*kSRgV2GZ}Cmm>YQAdEdenWAD*%G){wsljcI zMd3mAT!f=2G>4H^G_Gd+W&%y99_M)-?XVmy{Hj+Zcw5pNMxqDP8@eQ(q91Em0 zF8NL|`^>xM7A9qNvvxvd-xDfPH+fs)kHv#pz$HmK*pdDAI6+KoN00i(pMWZY7_bRG z+Vq|?=-7BX4GBwZ6H_|`vEJeW{K(xHPc%qQ$iro=v4+OQjc=-x?2GKto63Q-fDOG7 z)1bD@Nqnvn+#N9=70mRW#lE^qbJt&DGM$kG#nHHtBw|FjX+dn4p%DL;eP-27C!!^S zgGhEP`R|!ZD>qlYm0R15>*ZHoxPjP-b8PWT6P9a=Mb}21AbCtj_*;?*hnhVp#lPl> z%sVoTaq4y&2x%7G(M^jQ6=Y~ernWdWWisjHx&O6}!?FpE3+G)H-ig>`etsW#`}%0g zI!DTLt?V55u?^9GzEn>dE6Ts&bGV1KE7q8aKchXYqU@8&RqN-0Y(? zMM1i4iQ~Lr`7$Xo+iR5PaA1$#Cna2HDhgbN7V>i#s8^!l#757_@l3{*;3yrZiQL9@ z(QLLZAM-B&qfKdoC4t{=RpU{4OK6a6oUS-vPCoFt-maXT#xD%_$lG^_#{K~#au>UJ z;a_IB!Vra-cXK0Xls6y_k7s0Trwaov7+(A#DtiPo5`)^j1RQbj)yhQpnl{idR@>9Q zeAE&c=v3z~0^8N|$ESuTDG?60tMu23L5|@Q61jgqMP6rQLaP zIR`V%`v#}soi($?J+7VHH7~NnbSO4lNH2!1axp#LaNMPRcuU*xb56@ojwy9pH>H^! zn!P+`+7AMK8__i18J*Oo?EkPPS2`TQfa%YBHdDUQ7!T~5jmb&j*N1|pQf2rXDTjg zCO36G{umUzmTCezBBxjc?Y{knG2cU$s>=)OFqx{-bEP(a&FK1e@PZ~QJjY<@&B zb4WVM-W8Y=w!PDeK+2OuBLwi70f0%E4xHl&qV@frRkJ-a=OP@BEewVJ4yQ}nHg_^d z4BxKb&Exy4(}91$HgENit;-QthgWU>R(pJ&KO33(ZtsoQ-8VDn#xHkfBFJKU_K!*^ z)n3iaZhmR#!xeF>TFVkE3k7lhmmv-NR(AsMWd669eV}byNpuTcqe5ZTFLZgG%cd$`D%^EXTi_(DEi1_rp+Dq^A<^}qY+B*?OR$1Zt2 zvrF8lwP7KDTxyH$(>GJzzBAW`&YM!^u8wWLt?N`iw`Vw= za56>Ju0;+!xtrlIyqktGobT{^d&%{Lu6?$!1HvC4dT5iI9hiD-{N#IX;(k_g-90J5 z@0WR7DNMO8CA7KrUq$J!Kn&9GS{MQ>*N78x*MwJMzUst+9av4pmTkS|XX4`$sXXb= z33m9DHoDNfxw@7E zA*L&YRsR+!XQHX>f-Tlns9DnOjcwf9dLFhAvl=(DU#T!SW!KI5(o||@utf`KcC?Xq z8olUn8}Bh$KD!4$Fzz|K+?8NL+`1YGqle|D_r$Dbkp%OXFfR>+rv z^o9{eA5v};1}2*1NU4;8WPe&;1*RMvs|8O#Z$(Fqs3lis z=HApVb(o}o8h9qS8w?I=t7UqF@3Hz!hEsmk6S~FvW(bo(8-i{uWrAeJnNTkR`T;C( zr%nW&h8A=cw;4Yh$$evk?z!8jUWsbK@Zhxt`zb`98R{ z(+C=|Unr-fA{$gbUQ|RLspah30Z`z!4c)}X+>qRGF&bYZ4674hFs!*CJ)}C8+*$(x z2e9M}owyub5@6e2M0PErPG^Vl7ro523kj+7`Mv&WnAruw+ao6oWPHM!qNE(R^#)rN zCCZO7>Vgz6Xa8bE+_3eAGCAM}{X)tznUuYNwd5p(Yj8Ffm=bj!nsP)5YQGW9H}tQ= zZr;feIuM`Y^UzHbw{8;4T_Hl=Ig2xM2^(hjG}@b;N1VHe2R^~dQS>L2H8^bUH)!Bo zLt&=zhPi_=p{2D1!D80~zi?iviBThz;Z7{UOIF@;T_Bc~G1?Ma0)BCJCQzpUKezo@ zR+=mNRcZ9yQW9B0rmIPPms@{OOlKSZ6k2$-n-4k7jcRr5o>wU=H_%Kj&1vS$=+!40D^g|zmGU!uNXCub@M_3R-hSOhA z9tvn48;~bMAC#{6Q6du@Zj)13h!9>Or7YArhN(_DBWplDQ|fnY8&2=|N6vHcg5H@- z`!GxEWeLj5Xqz&%-O1C+XZH3@Nn(CnIutG%n^sV#J)`YpGO12fbiJvt=K^c>%A(6s zVU*^DO!jt1*%Kf0m(7V}4{l(m#BH@PB#85w==btcYY7#D+MMojB^?aU{Qbhpp2zac z_}-CO7k$XQUG@H@GUneDDUz45rHzOn+zy?KikYfQhnR^4L%;mSsl}mgruus4G3K|j zacYS1x{#wl)I;{V`&P84IISI<3OjaZdM|ga+sE zZrTP>I8=3r|E|GfT>(XaDSOV1Mw=mVV*UCg@6Ug--LnBx?-%T2k8|k(K-yinfna#sX^e4 zX8&0gUI{jT>6s>XV4rX!*X?d8U$z>)|C$iiBI~OlwhN@!Kvilkfcv1AOGh86Ce*F!J>3>sKC}RQu5cNYBiM0*(vJY7I zdkfzSixBKT9|z}*KF+7y{Y_aH%7&=}m}er#0xExSLN-;&NIrJAn3O0UA(^E0Ngl>$ z8&H9adFY%N2}8_CRQYlVrUq(0E zD0Az$2IDXg0>*OpU>H=_$HYHjLOkt-6Q0Fsxl9txgB@GLi6SohA;vpF^iswENII9{ z8L{k3t7NmA9rMx@3C06MSoF}x>Se}U9oPKMecNAuu&2(KRDxtl5|W|`rlq7~Y)?|1 zmTEmXRk8+yf*j{>xPH}ppxA6>d1m|{5vLpoO_cOW7zU-}$Vo7&(A#_(eWS(Gmk;5u zKUymF#3wVztoJE=pVR59S)%=>&$5M;4Cv=?RgoS5a$pT0$uO*`6rsT+tXb=7yrM{x z%z&E5+xd4SBX`c)Z~|HErzG+s=lIRs(X~>0-Pp-^6Gmrb0|Vd4QA!Z!Rl9WiUlQ%s z-%PpMdU7Yz#`S5Rp1<)uG#2R*4}Ztzl3NPAdHb-nr_;f-pGz`AIe&s!sI1Zd)wijt z{24xvii@TRm1Wyfc7oO##wu7rl>+0JP+`YZl+xHFIM~T){_l&nme8r&sFCaHPJ!hO#H?+=;fH6;(n9^%IBuw)7N3U=~WeCs86X0 z>Vwr|z9sYp08R9PmCUuSl1r|b>rpTv)O1e5FwU6cf=bA)r_fvzmQM~lT`sLyDOuoa z7=Gd(8)M{=KYKgKctI|r6o})uc$|SGVJ#|_%n1S!@0jN4c7#RJ>h19Jjsd0 zblH6J>(eh;ixxHXbnGv?W#UY?x~)_p#ObJtPgP|vu?%c2-te%6J$NMI-BDfbLePN0w5;}-*F)&`_V%o{QXi450K^*lWTJZyu7``twNfUg>l z8_Mq3L6&=w{de2jcQq^K;;*P_QLT*O*W5mvoVlH8Ha&gUPRK>@5bgNKV>k@*J2l?u zhQ57j3jxrT{YjfExW^lpp1)m`=d_7f<96u&+^}J)>8iZw_%xRoKu^?b zZzF&aA}czCAP%BTK+IfR#{O#1JI>mFctLgquQU03Rc0fMfb!}{uo8S=)2^^UcgEBi zesB$ORkEG&gmC2c#{savtp^Ws+&JO!`dYrnXhJ2tbc#bNtH02s1uNao7BWt2n zno2ie*uNLCJL7$qmw@XdugJ$8;G8g^&QxcB2Hz z5Yr;^jJ)4_90;k4Y0!=q3&eoBu0ZA?jTE^B1#uZD2FU%Rco5z&HSCU~BzAs{r`6S# zkra%lh)c9DW5>|nUowa^<{0zrV=#vDqe>rOl?u%p&Tt;l%7gqAwLleccfmqowJ6e(1LTA4UnTNu*o z=~>uXIP2;C=&;f9+_r-ZFk4PgK)4qG0dVpJMqzZ>9ncXnt%9TqdFJE-bDe4}sQr*! zKN!H<10Pa5!#!%^LxRR2k>aXy{TT^CtdrqDJ{t;BG5{9Vz2_p8(pLiRj zjsA2&VoqhG1DsuvRpYs|MO+mJ9C4_0$pN;O_lOFzz@8NFJ)JN(^m z0qD~~z{dLja4*s!Zx#)M0sut90{{^I-y`_HW9jrSAzRJHZi5Zst47bk2|?Ua$3SMK z8sZpm?F??Mp~yUm%lE?*t~TT= zLnf~`vsc`BVBE^?FY3=eV-Hx3(1c8_n)aQxz2*dHU{%0GEqT;cEt3}q6hOWyv>oFf zQE)+tGy!k(1|j4@LK0J}hPrrYjq*yn+R~f92lwYqcIBE&E;HJ4Jj^n*)(HierFqh1 zYYBz&>g}~fvx}3elJr5o?`K=Vsn#b(-%1H^q^VVHs0q)cgQY%W_F(nama^?;t}}yW z{B;9)^I1XlSkycrnwt*cu?^P;loYVHqNC_yjLF;)cUcB0j!oXEsa=MZ>&M**g`(PJ zCd8JqQgZ{uJuyVi)lHzL)}6{FIxfGVuG6|)+xISH@1b;ds)TJqCWC;Z2&)Q4&o1k^ zC5x9D8o{a`>l?*BdUm5jl*pM^G%f4|l{ozLAFlLdgzyr zt4x*JH#YFEerYb}YmNn`XqcfVa^jgKTxBf;t!Z08BI6JLxxCF-FG$oM(3dR$PAbko zOG(wQ6RQtemWFm!azZ}Bm)+Jeg!`FpA|4$J-j{u)Ju(<7)UPwhYgv6zc%E|x*v0wz zFoJ^>O616RfnuON&QhzR&-Z(|-hTr~gx<#pyMX9A)wG~eBgpt&PTsrgn*=Fh^j%>m(6UFyjM>OA+vivAvLFB zsG4)2GIrD`T!(}$SMO%*}`b)<8uuqHa14a-mg$x0=S+c*RvIEP>0aGJq`m5t? zx!uVi?x?5mQ;6!~*L-=sNiS>i!g_h#4#i})WfwP;y$nYuXM*K&stX;ob>c)@Ptna{ zq;WD|#d3Y5Hs%>Q%U=Zj`;YdDWzeTwL`jeUKt(2hT$H>95s`%HnH2hT+f2uwa{G3X zjpwTxaYLAv`+zijZ11n6u+XnKV(?|r9OLlJQ?;Y`#NFTA+Nxz-YAPWpxdTe!-w_MW zZkXt(N>zK?l6!yvEo$*96L1A!Ny} zh|*^dkEa_=A0x~P9`KkOQbSz~uEl0VgX2~zZg5t(PN$D-)w+D#ucQ)Ra_ups7Gh&Z zAVan&x6ZxMoTA8|bjR%D@ajYvQfb=`-S>|9nn}{1#!6M50YgrUe`=rU?gfkm?ED@u z$B9zEUNC%qA&zv+iq$I{W)h_DEm2)ubn7al+yPxKMn2hCDRU9+pfqR9>jU(-gye;@Wdi{eljfZ zeU`+G7MAg=C^&fO?n;oL&%)G+fwtalj!07K=|k#6is-X1fIQ+ z!iOpRhW}3(l?9-aulYIr>3*P;gf1A@pi?@$r8 zYqafVx_LM>GB0rYA|O`Yf^_7c4J{BPbn9;~zdJE2odTP3y!GxZG2UJ1h(v_1V8F(;~|H&}*5eF&0`if=PjU_Ffa9tWLSsv5tC zciWgH^nb2*U0Jjk_=hr3`~V-pe_gMUjqwlWg(%6`WicRh-&1QJ`NykH`;fv}D6)n* ztFUG^n)K7CgKjj-6g;iCeGE0o%>T48=}Pyw&xvoGTTYaK4^kFV$*#)z9UppYCg0s6 zOy(b=2hDMQZGwug30HVU16%O2skrR?P)kE}B#0KL8e*=R&W#RgKbic4dCMcT! z#?VGf)F5UjF!@X=n`uKl_e`2|p26b_FoVlM-b^(ZnR2PcG!FqeLxp7HYQ-=<*dN*7 zEY{h_8H6px_%jt{BSD-;X{blzo{zqmc)dbml3{m_p^KR*V5c3LB#nK#}?hIkRH(t=`DQw zyxwoO{9R<*Uu5QLip{ny_fDBF;|t8$8sZ{CBxf2tL(EKEN?TCg4&VtCYKNIGkisap zz}Ue<{>+-3qsCeNUlajS8j7W)L7k3Ol|1jfnQ2&5Ma+g_ z?KXA@RE0JYX*af?cx+s2*w{#wN(BPnG(2k%9&d?qZ5ta5HTv$ywdvTu{P0bm7Xobj zZ32N*J@`qrD!j(wc$nLRbVef5)R!cDU=KEZi4?a+!8!;wOc`l~zGX)~oliA*sgE=_ zoaf9n?tGW7vOgFGzxM^tV%EhzwZ;xSX=vLCF1}qjZ+2Kyk**RRv(Cw601WUER4!t$ zJUxXTN?g)=FJGe2>=1*l&&n?%zg;$+XpnD#pP&Y_ak=_7vEcj3Ag8MmOzOHYaM(YP zZ?g401p%s-3BWt4Ufti)@pKcWI@-?$?UCb8QdIA)08G_2D$$?0H2NC47kL+Az?fDT zCWT*1MZ#XIZN|f7Evv~o3I|Pm!k3tBvCXy`MUW}NE|pzDEs%WD@Yj3cH8QZcTM2a= zxwG&zEsrsLg4F=_PY#KX;BDMJM|^HOOCA45F61<0Z{hUb`1A*;*8>5#B|vq)Sir_B z!qFEAOeX{-rbU^}EWacZo2=5y$@3l|wn=_VnYIURN8EuFgn*CD8bw0cld zoZ3TMfh=}@cZ|?47A4e&_`_kx4XlAr_vZs`81@V9I;TiXu3NP{SS{^f-pkkfSxIeQ z$tA;#nZ9$7a9)QmdtJl?vD?Lq5h@=@fQ*d|dNqh+7?C@Cz| zsA!7vGCV1%@<4rdgRDSU%<|tc5bnmanZR}Lot^k~bLOiwiz-1N+u3I7DOi$Xei_F& zgf|XBi6>o60$@#@Re_2s>Y_9>cU@LgcCT$JV?EPIB9Rcxl-tT(%77kwYRI@H_}5p! z1L{2lsUY6J%mnU|q_fOF6Q_*JQ5tPmjW`O+4q$ACD^F>1WULUPhQ#f-eW8obxUWv9(vdGE;YQ9MODf2y*BDi+jvm_4jz>5Iz6bvP@!S>YpgB zCQUk-)`yx@>zL;QZ`d7NkC19e@ZMdP^)2*UF1*iI^S^bfi5Q6fta(_<0#YN zb5o()Hi!XX`xAwnjHsB0zX;}2gGfXn>}s?*c6WGnluuJcVY}N*9GC{R8XRHMr+2zR zx@!qSlFIk(8D1GAwwAlh8(^Uc4cpmx(_u9nw8$np`GO|kH$lLezhWc>HOK)TmbEuW z5L-l)8&ei^e7!iTx09BPwe%%$|8`{}f}jQ_G0#}|j07pZcNLo;0KRGvu_E4_sujmx zI=DTzKt{OzP1E~r1eacP8^=)fp3*wpH^7Q{{EgoD_!|cSd0vXs_I;1Nh|spzoyB1T z%e1`4_Tqc&;@Q*g7K;!TdP-!l%?^2HT67c1SRpswiz)pI=n|1je>9GW=7rV;EX~!+ zggkEs&i4!qn$86MB)xP!CPmG})gHU2Qn5)4AJi23F`nj5i9hu%>_0>8fh2V^{R2*U zKjHq*wxa5KnnW#gW-A1Ww; z^x(%b>+)Qt!R7=D*K!9M42^&2TYb@j!PS!kklfte zI-Pxg^M09oi?FRoet`Tl8Y8ygm%u+sjz2$=z)z*-KT2r-BO3qay4L?j?Iq1~yG=Hv z?;bx;InlcHiJFVmfLgP@%VJp|5b;bRiCTQ`tH6}D&Wgth@z=S*&ueyO5>mz3=q)tx zO`zY81Yv_7U#4XQ5T?0qftN`Y4G(W=x7J$A){D*D4v2YbA6}WR5we3Wf91O!p1@%_xv+hSk2A zrwS^XBIjBJ3d;(e4azRal_hAGlhAZSoq`d9B~;z0wF~N)KnjyatJ#=g^mI1?9+V>4 zcQl{XxHn^bWoC_-SCWeto3`}pP>(q|A?GgrPW8I!}pnL=cR*PZk#Z5 zzr0;vruvueht~EpZ*CB-Zl7wQ+d4neYXf1!jMIRxX%}D&L?> zA_&l>M6p|jjr*z(L|C>O6YOExva#+Q7sx}erq4ti1%KI|H-My1W_YBMZyils-8FT7oIxESnrTalT6R)EtE6gxVNuljA=aM>-$S+5 z2zT$*>sJ^n`YW<8Yo~7}%cL+gga!u)pchAUP35hwoHvOtdE!dO+oX6tygr){PCjZ< z^dz6;o`dBy4J$1m3_^X`w=i}&@gk~ON6$bEU-rPI!qXnYft z9|1jNI&WB=RZ*PtL@~D;XPaO$dc)T?vF9m#zTEPTGuD8*lcZ%GV)xtr0S*Di;g8Zh z{lqj4`6Z8O9%>;eDu>%0qtif>BdF}@gdZtcY=Q`eA8`?IYo%ctJpkJUtX3ZIOhbJw zjIVXa!*eNgaj7VGG5pZgqg$iALbLH#rgxjJPNqK(ZBBET#_w^fkot&cYQF6F*Fz zT(_`LmTmoESS=#>X3!CC4?O)0CrC(p6bTq6|FmY^U+}C+=ul(U}DxM5-7alM@rJ!zv_z%4POF zS@faI%M_KYwUie+p4Ydf8Bh(UN4&@HO;G5|TjE*IqcDn$)F3DQ3Ek@2v|z?;#vO4R zQy{;+G`scvI9Kl3E#h~b{f?I~I*(Wy3HJl|N=N4?esQ$T%)D~)`l9@*_Q=}{@iE|g ze${!%7MaO;g-fZ5F2p)va6_KHRZ!Yz%LhWMlmyUkOI2oc$d%kwpL?B2NVeD65g5I? zzfUn!jCvP1e^0tw*Z$q#$AHoA(kcYIRv@g+zG45>Lt{59kQo7r@u=f_JQ4FU;K0~9 ztG-$%wcfWkd}jwZ-O!*w0T?~Taw86ySU^L7VaG4Y4F-_vb)}g^J%xCOKGI|Liv4CD zj^(%MFb2fU%YbdT0*?x!5dWY(joNaubDy;uYhz)nrI!xtqtVRH70VwoBbb@`Dkw9 zWEg>MK1y%B3>`uL5o=FqwEkM=+tDfA3t{iUD_5W`kZg)$&?4`fS+sM~n3K`*tAe0F z1UGl0>U28XFK_^8$SB+67$rq$7f}YUQ}@|CV_+@hvH32U);L%E>P5GrLfl?dofi&H z&-x~0{S%9vND|Q1bY9^Las&a5$z-7d1P1WBa=`F^!GQo zG>9$oP=Tx~<6(`X7*Hp{qC^g{KqCu~GLU={p0AWmal3VT9 zplH1yxUwgCxsKW4$1LMy1s_4%XqI{MGGX`iP}T~}6mmKNe-%E3PPiVMg4**f6G2$a z*f6*S2jCf&28v9@4{`El2l8Wx#eaVmHWl~+i5QgRMFV?ewO#;aB+AT@Ksi7k!vy5T z%L4o@%RiKMk(vW4AY9}M3h=FZ%P((@fx8Se>+2p__72y}8ZAf1hRzv8-O+H7qkS#A zQAl#jle!=hdC67EM_f6v8T_qlcV7p8unwkV-d~|w1B`>qGP@YQ%oq!3F=|d|%w%jJ zG9l9+1I-(~$D%VYF!~45>_Q`=t&sR!AbbX2*N?*}m(UXuMj+2iJVi!!h&ByeZTQwC zk@Dt=MkvIIo?s6iCBArtJR9{?RRSa_z;YUYRM_B*l~r_}2n`_~+}Mz*yn?Qlkj0RT zdI4lEYClBM1qX;2(7b5Ffs77zv`L$Vfp&1#F9<2P7iCE4Xt}6C^IA;bXp|ZdyXw9P z0ZSiMkSjUWr(t?Nnm-fZOl+_zGLY3Byk)YL^SRHk_9atT&K3M`;_-UFf&x{(XqchN zkHDosMkp2{g!ImHQB69i$rPM4X>8+dRPP=UDMD{UZIm7tMd*Uvpg&C_FxjPFzuzNS z&$xk{G)lpLmbyS%p6$c8SCPUm2gkoL4FWB8j%U~$^RX`8hEE0aJLLAtV2`bY3>gJy zd@%g9oH9)@Q3G!YS>m*E_EWdy ztgP3MF5+Ht`|bi00?f9^zq2OnPo&v0#mWn%3@+ot{$AaB3Q1G0Cuc^&CVHJk&nkYo zxORQ4KtyP(4W=Nk7ecM~W|TBC<_4q6@B(eZq5=#_V1~NTP*K9POd=RdDkUh?tJs10 z4rCn3x&HFJTAxfEkFE@}s1oM0bU*@t1%308kXd2h`@y(``Pi;?Ce$Rec- zaemNcL9TK6%;djd=g3%x$B87$>oe0sOR_Fvc$<|T+n{_KWabd5{%mznJ8k;bm!El) z@)i?il-WP2u*0#Z-n(U@lI<_KxwC}(6txKP_}ybt=)kItwkcP3NzcnrC6v-WW~Vp5 z1;;JxUGXL~18=%S@8fEA_xxR7uc&=Bu^NhFH_^@N!_(V2f|e=h5fO2>(?+7K8^`}?T60v6 zU|+~V<=$}P3Af1ZWtCUs{0dP2F_>WU=oXQn@Sre}l)Jw&u@GI&XM^NIzXOh}DQdw> zvFNo3a$oqViu6M|#yAcSc@Xg6;sR1?y}&f5@Br$Z-V2YBNp)YoEoaAYj10nMLOef8!NeIAk3^{qnMBATUQ(SutfqaCK?iMyTA?}7rm=gf%QIcEo*ia9{1Gbaqz z(N9xe4Om94SfJ5da9RzJy@){_VkA}O@y=(w&wTmNK<7+oPFJySthPSPQg~rV`)unW@o^QgzwLvH3uPBH zhx2p>@9V@+n@7O;^0xY92?@YJRzh0DhI*1v=v4eUFPfce%sEB_-bL^vK1$E%K6jn> z>h@4zL|E?W_+>Bh$xFYGmacl8&2eM(qeE?1iJxhtn~Q8sb;2;bh0zNhi%Hy(!+9O; zh9M@{m=B?^8TU$57F(0{ni1iB!-xW}{MWwQ(+YKrwO`XE>yQn-^Y2$m^sYE_xGT5t zn*y;v&P(MN|MtSK8ax<7eyUxjDD zfakF}sYO!Ue*c|5Rrwr5!qziibng9_si*|Y>Uk1;{tQHvRwz^H4%A7Z{GK;dXHIIG zdgTV9-XP~K9JlCQsQO|ZQdpzZUZGo))w6i^()2m7Yw}P~cs4sSjP1)El$$JnNt#(f zRs0nSG)Z#0Mx&uNZMO+>k|lfoR+*QNnT^7mBAhqUhfwVFxclcL` zvd(%f2Yi0qqho7sj3kH4^aYXMdN)<-Ab$X!J*!axy>fFzBhmk^({STkwN@|OW!aV0 zqNk-IqN%~BvY7s6;Aghj56Y}3pOwxjGTGInzT+ysZyXCsw&OTFOS@H4&eL*A4uiXIH-b5A3)Z_s~UqXmG7 zAM<~5H|`Js0ObGe8f|J}ZQ|x=U~m7wv)`)ywg+qo-S5<3V}xvR<07$uj^eF4d8s9R zXsbdB5Gbq-Z6)FXMTYO!@1YH(8XHpQL6_=->~`B-m?e-s#0O)}-SEGCdq`q>yY1Mp zZB(KjBs8=reLk#d{9r4tIjwyjqg~d!ts!c|!oogYi-kzChY=L};cLi5WaNxEvNa2} zxPHnkP50s9QWvq@^7<;s4idU zJf&9o$kEK&gDL5jx=zhT6qvZ#0df;5KPLO)gQ{#Ky`| zm;*hey7UD?Ynn4e;{B!QBxGWdC1KJYZJlXW_Qf;iaGBV3XrPcH@2_i@y?wPDJJ+B_ zQ013%=#!n7`U;;Fyer&a9)n(vpO3l_#sx!#F}=l6CSML*D6}l7c!2w$L>FU|F_zZG zkN7)@w_HkCmI{=`= zZ9fb-en>J-tG{g<&>OltXs)u_@PxCa6v!+CGI$Z6*5#iGJZ{C{0F82hb&6ZK0;med z8B2jP1ig}hklb#8s(}<@!r7=?J)TYth8%AOrx`4DWFzV0y>@L?YcyvB*G=usapAW< zn8@#z@$4NcU?i+(I9D>wS8>>h-@q(mwEGv5nfrKrzXx)o^iGd0+}H^oH1jpwdxV8>+K2-6^EZvP(Z-Ypn_A|I zjt8m&nx-lhMJHwjWjL{2H!C2mA`VatH)=CiC(M%ekWE$_H@!C;mkqM#8T52pzzq@8 zG*Y<}*Va*<-w+y%mQ3~@;YGt$)6Akm)K!*uvn*Lr(uvY4u6jK|s`?aqEex7vvFPpC zb+eruG5R^9a(;)W@r^hP4DMl*ZL?J?BW;46Cir5n9diBkk8C>-5hb_C+w)tu5tFGW zP%wirz$O}vLoJEodgu=!N(snr&1w_}7$Z&SHXb1)*jF9Uq{hu@_3Qph2YSH|B!Gce z-f{0=ikpN!eoBY&TG)yo4X@z;{FlQi<9+o1h@-SW`qqCb@747y@xb|M_RDa^j@1;}S zk}XY)Ly6zWl0@25M#fYJCboLK=-xH1yC8T;H)AmU4z9`y)xHP}NRAUmPe?`TB|;Bt zz78R#EuiiHeOr*NQ>sG$>!vM4)Fd&Wtb0LZTATp`rq6t`PVp~%)hH(=iAu(BfVv-P zeZ6KVw5^-E<2ZW&5e;qtaWZtxhv#JN#--{r{sad@M}HKVxvSUtqXK5bt2_cjm7&DS zarZWoxMLS-GGdlDZPGNv3e|&2JKOF$8jw@=0@phDmd2 z)(zs2=jiZ1uvOQ_0WAe_H-8dtWTUie-Wu0Xq7|MG0z%}l8kR3tcG26b*O9m%_2KBM z%R(BV#!vHcm$ZUk@l+e{>EZKyz6~BdAptTWrhjSoc!9cK-QaaZj8ut3C<0*}IWfm; zD!(1c&B2zQ;t}DIzzf}AB{_DG@izmC22+9_`9?OHgC1;)WS+*W3l;j_Pky8dPvgTqQ33bl9horX2=?H^32gp`DrjQr0?Pv8 zEZKzd7TVy9S0-^mR8~O{Nm9ZUq5B@(d%PleZYiaiMDT@ePxgFU?IurdPVAqHvgFq~ zGJ2I~%Ltj39BhyjqN|#QterT8laz#LKh3B`oHN}4Lq7p_``e~}MWDeV< z|8hq0zHEFAa8?1gZBR@vET|-z0Dit(jr%pM~}F_`nJB+ zwi;#Jj-h26o+S~ z0`aGLihMWg+-mi2Hf3m3ZO{UOgy2mCvR#|B-*!oi*1$yG-mex3;p#GciI0cg&2L_Y z9e-d>*y+DHwV^s~DmvclNnrL#kU`%Q(xf@&xQS}X8LXSbK{GKPA=OT9PL#aiUP2vm zer0|?4Ro{}ve}!>TSs9`mC>mIm1WTkYpvmowRpm?&3WPr(C!DGLQsjKMHIDs4p6OmmAorPMZ6atat(IGwcA`;4o=GY8HmeU_WoJ5zXLwzb|QO~@&?ZsZMrksGpm9p8A!7kYnAx2Tz9 zRnyv6ScswAFiRLT(wIG-^mNABiGSWA*pw{A+y>m6zuPoE4qt;wZ)TZlhmWNLlr@iG zw0;n{B%&({p0W;RH;u;Zfh{4X=4+|35|HC&%ezIyif*&4Mrr6i5-ty)YvO58)nyu= zNF>W3SU|Ub!63^eoP9}~P2G$myCjXM_)HQwt z6NDcONE@e6J+H8&1E~)1F?VXBoGmhsI_zgyP7?OOw4zigT2_htc%F_+62^Th(E+KC z*&E^P#gx3LY*>zC7|Q*{jrb&+w6#R8GJf@TEl5I6{xc^sA4#Q)*FHVjMf?62c1=@6 za!sZ(JFD8RY8U?^yP`vRFdF!mV$nL_AB*Ov7d8u4HG>AeUw|J=IM2z`5g0>NC_S;vwlzQ{iiClWKqzOp z6^ygq9Y(VDwBsJgIP_=) zwoanvWG(G0AHjf%L6xAk?=|ZLKc>#>r1@@@iIe&Zd>Tyk_6&6o5!;D zxM=)or+Cqss)$&*g%%c9_k737^=X=^DHMS*y1>JQl?Iw|s?b+P>K0$W;y|FuAZ!Hs zw6E7%{_wOAlIIqb63J#0r0zt0MNV)<1Z`bB)Lvf}PNa0YEC4rcSDwl-L+n-u5tzyZ zl88e_3bF#~08`!BWr}ndj^JLdU@l{r@Myt-`Yp?FwFM^;E!&6AAJTL&d7f`xmvhN4qX8L2d((Q zWUCO=z!=QLxHS0E30#uqT)D7ym}@Q(bdK@)MQYe?Sn3yiYi?K+M+kb`Jc|iMCKgTU54#U?)g+ z4r}p++oxpP@>~9NY=~ZC3a$t1tmfq*U)}D*j1{i{gRYG|oQv=-xUGSo(t9-tklLfERNUp#U}0F`q(t)wr3MT4w03fjGZy;@hiDk6KDEFxV;bt!4nN z;(d8MaE2o~%s7Y3pSy6>gj(=@gkum{JSfU$?OU6TY!mjldGicq*bv$oSDdn5NrTF| zsGuO%$-%;Pq3Ble$b5|H)89x7P##1PZFjcTl}*OS#wmpYT5H~#@=SDPzz6OEqp569 zYm&&ep`fqxUcOTZQNYM4p^N*=d7*rNKt1guziYjqDBYr1VX!Kcxb>Y`n`li0NXA}> zo#8p#P9$OeWX}E- zL{N%@7gX&EacP$P2r`X>y7!D$E;^8i;d@d0+e(NFeijs}x_$u#G@3KINuA|LdRM*m zgR(lXE`9(;9*$_hm7L)LjM5~!5-?@=6>TZo|4168q+7Dum|GWmQqe zxVI4#`5&^Gsi@z@iH%8q2KF5RMk2r?mb|&yA8+txdDw4uJjDcZh|Dp+n4(0cr;jbz zaCatGutzRpV`SOgk-{3#*aa2C_Sk7`Y|d8u`%KYZqhB&vjMN>pQ>Lb-g%Ib-Q06#s z-MwrNSAiLxl4QlT6Bd4V7J81HhX!_Kak}8(%i(afUfm*|n-(8am>u+x4Z8wpUpPEZ z@hE}W_mhe2YZRupq_soJeYHZGX0?E&^=BSKvU_4jjjgnO+w4+$Hw6^-X-X@xh3e7{ zbq1_@Yk_E?4bpJQtx8S&cHU3-6V+yLwWv;gfQNM3A;aU+@xbSNM^1UResdZ4CBxfx zG;n)HsIoN@T&^Y_Qpk6@EDC?&@{r`Q2><=r#JT+rJ)NniF8U4hPm&PnH6+;eLk{kK zOeX);3Hg6=K`wE>;DZPdhTQl-Gt)4(WH5fTi?eM69_rr_oH50@J&50Vq8c1`zRy<< zu1LXT(3a5z#Kefj$NdoBRn z_QAz{vb_s?1#$8evR?tW)0=kZIGDHqEXGz%r;Z%8qV`0v{9Qor&Ylgik>45*oFuv` ziR&h?Cn!ehv{)mZ$}E0+*nRR7S^OSuph&Qe_Ka>rMkWBc;{Zwd{0}oz4zB9Q#Lwa# zeil#t-x$)r4JJLc1-@_<5z});<5P=?-Mtff+$QDh6kV zB$UqKRw9MtF@$8?z0c#h(7(P` zQ1+viVF4dlJ0eHc>Imu%rjdUvWc@X_J0pdxk{K#hN%j(KraPG6BX^!q?y~Ud=Duc1 zIg}sX(8i9fzy2d8{iR^vT0g0SN!XwC!T&={{*@=x`*(c)#UB5^;-V|P{&svSvrr^w zEpQBoIuaRwAPbnHwT1!;5KS(TC{jg&Qx3eh12-{6Bop!t2A_J0?f3i5cr=;HCKFV4 z62W9IGPnkM?Q1YQL8+7(Wl~r zFXNS%PvfF22+@zG!+Ha=>|o-e>3+q5Q3q{oagp`xqa=a1H5cu^e@E*uK<#5Eaz`D>TUaO zJc@pfWmWMSw_10eZ+9ox_ahfS-`;yyxZ-&@(A0$Wzx-Vgtw5Ii>kgQs0!NPd93&x- zB?vT^fK8t4?qa1_SdT0Z{gapdPH@#GVH4Cwe6Ad36kR=Grc$VR55OC6+5Whw-qOp4R%ArlmA z+JQYK@oNycc+-747=>*D3D||x%pESzqc~n-5nL`$uGZa#!h%HzGB>9z@tK_bep~B1 z&zAg#8VbRO=_3V^u9Q8Zu6SiKtWIpHs$t9sc{Fe_6Ql4PI zO-n0oUg77B=PuDjSnKT*#kc|EZNQf)O)HUIoqxq&4^SpC?y>ueJoaHV}5srQqGM@{$R{Kj%v|;N$oZjzpb|DWy zSQxd&xJ8ETQ;YVNnoy1gWcqKH+lkhnDXTt@6L$2{@hKZrKFR~BgwdK0qnJ^aAvAE! znuByys3CJAqK`#eX{E}w(}}&;Bwj-?f<##GI9rDKoBatddoQZB+tX!dCXWTK8pY1a zLlBu9XPjOIU!SeJ#1DM8tlP~Wj37dh!I4_@92s*D`UCDOfXWOKsXTO}*)zU;XEFKu z-+M(*=5D1{dZpd2ceZ8fVaQ;1abJ#+3j();w4<%z-;H&1E~YA?x27n5f%qSDiDDgN#3@^nJ-YJFxW!)#CFp$xXbwfY8 z2sJ<<|vh&g3qoAGyO7w{;Ljb49Jd$;-GBBKMAgd_|l`Ctotw1bqN&2wQ zJ1@5`ty`)?G*WBOmU%UM6RzFcDmSmz_9M{?l>PK9Y(6V8VJ54+`a;?ld4#|U+@`pe(!8w~^Ni;G zMp#ZwXB~y3g>b?5qXsiyfVTjNn+S6VmwyGh!j%b0#Pxa3&c|+_2eW?2LR_bGC=||# z?dKjXm{cBxVY&cuX<;2$s{TnRyf8D{mhsEx$7adr8(l@h zvO>J4azGWQtK?bqpc;~9Xfll=tzx*+1IaT(Mfw69RYdy?0w-ZgWxx!G9=0Vb^}5}m zgl_JN=3UMPMzQO*O+8UqykdW1US<6?36x>9p!vMNIx-nM%VicnjeW;m{_CBqY3HSy zk2}kUY08{F)cCyXlY0T#(0gGlO~nWXaDxr>UpA+kxc_^=e5hsmQNPoB^VgdN=l^TK zhIY=DzxR$7HAUxjj{nJ8&B@@wIO8<*+m?3h0Y+!dA)Nwb=#*V~p#16Y#9AYdDEj=+ z9)}xo=&{5*2N(D_`*5rIT0V|^)$~QMNuszXJWwG`PWnTo0tNo>S4)x>oof8=XG{J} z4oFfHL`Nu00)Q#!wciFao>jWQdac#A28nE(Ey|rT9@YUtC4gjb%}J;*7z&FLfn>r6 zrZW04&~f+`jM$P)2I7wPfF(uO8qz@;spNj+!g_a$_hZH>{FfGDTQ<*)Yqi7rxkXtl*)l3l@IBPp?Bs-v$iLMm{0y+&bh zVbrG&BvBxdf^_LwhW%GwBN+kqZtEEn#H|6zbBb9GBQ4Tsp~9$rJxDH^U1@}vL-8Ve zECc8iP42LqWj+e)Ht7;{dY;;3R>jB-6C6#hzxL}du#D@XmU*B9$|#Y<)X>}2MN|#s zZ1URDuuw>%R;Ov$^O~5?m+%5^{xn;@i>_Fmar;%&-+LqZlc@x;nyp%P2XYfKI_}rk zGf|7(TogA$7&{%t=D4A|Ps?Yl^YX%;Jo?n1jCNe7 zSHJiExoL*;BlxE7y4m3m8G#E9f|7NMNYY#v8-e#&K(zk$WhoFH;7!^<12u3juvZ+J zvWGIPIeKRvFmt6`K)g`*ej8RE&~1#qAD-+S#%-+KGv7w2^FCS4YbK4Q0QXeE+A%6X z@74=JZDq25z;I@n`$H$5WGF+p%qm_0PR)Gd%fmeTeIqJE!_o5O?l08NYKFIE34SLk z0J*A&Z2sDS$JMdXdY~xgrU)SKWt@0HO3;9HKod>>Fo5i-1oBjeJ^tTE#_g^2Fy>D` zk$^^(xL$>=>~^=>n}cUe9AKU(x0a>$t5<&v;<%EsYp7Y@N!ESZ8Y zSU3kJrGpZQQr(%Tt*Hy;=}=EI z6dFyLM%f@==I~WS0RUS^XK_ERvsGye2LHrw{haMI94Tw+nRn0K9&>9%#-w;kJ-hp4 zxrAefrir%ams!?eq=buuqmqv7M9bmvxA{tf3KCt4pO>59)>>;lb`WuueibQmghkB? zTS}Fo6Eou(RN1tDJX5Mt#c)TIMB>gDI~w8$+9)@6ni)3TL`4b$J8uV_WmXe0vMf)t zkjCzJX7KkU2WvqfO)zO9Q|f=YdYHMpCsBNFgYqVOf*C_G$uV z5K*Q@-h*iDb;dwO9VC}g#R`u%k^-DFpd(6BX=77;!$Af=BsUZ#(rXYR=R+CJSye4# z;67%fJHR^{9xuxb2vo4{xd5jbo$W3v4mis#W~$<Fb1r z%wZwK;h3*YADFrDpXVeOnMB#3vT?W8W_K_nfQdKSNdZ3mU}m#*t;*EW&~e|#lP=2B zNXz0e#vY?UD#Lq;gz$PKo+1#S8EP7e4D<@XDdo)2+tEujk%cC}XAX|POiKiWE#5;u z#>I_f`6<};ulB4+#+AvhT-TDo2G10jcP6dm3NF-3#W{u5BM~rKE5+bKoZY=KgCka| zcO+ut98<>d=H=t#{PFsHe_9D+;Nk!1eEpg}U83;L7w?se`+njGd?`Co$P8r=FjWnY z-du+mBi*K-7!oV}cyr;#K0iVHz%*t*DZ0IQIp}S9XZZ3C#46(gY}2kFSk73rA>ao8 zK$`+lrD75`sI!DTm?cq8!nY*TtjfRcT!inSV2dB8g?e6y~-E$#W zDV*}Binc)SlT|Q}7=-ShV-hx_RU~pDM3z>r3*!PhE$VUmBiZL1PeYQNz;Xpyir75% zZ(?Lctd&uoC#9w-GDb{RK5%q4^xS~x5aS|2hKyvF%3-rZTu(YASu8D|tMsRxWVY}X zjP!m8iPyDI$q-rsHoQSu6b_+#V~#dGUdalOoa3giIt7qHH9t(|9zclNnYV%UFDC&Z zcHM|ct8T!>;mms6h=8F5{CbYUEtzTniD@jb@x(tCXM^3CjTlP%27^XL$w5KL7L1M3 zOfhq)6zDfu$pbL)O8|R z0hm+~`i;laBrbocuxX0HM!-m54-(#%zSagfG~}>2gVv~=QClSgTb`z0%{53)n;@gh zS9f4F3#8J@sTy&inZjdtrR(DSkkxVDj;Ixf<|U1^{aqw6BS4*deBBJ=&(fL<-N~aNd}sfS_$dwJlF&0Jw5_LVE>8 zLLD7y;c};|%0{`*Wv}pFFMOt+jGdXA{j;SdOi0=hjX%iBo66CJfE!U+lkPV+IKq~# zY`@lCY#2ixf8HDccHbAKN6(fB{4MXz86ASydfGE*_&6Y>|5{hE=^sDEe@%a0*;#vV zntWWF@%3)o*672p`DN(q`uv*88*Iai|9JADe4f0;KaHMsy*+KYu>0FG1T%gx;YtAZ z;5PR7`FXM<0GQlP-tGzlx=e-9)W$DnqTGGv(a(|ntNb9siZ?-k-oA+_hGY&e(Y}l@ zTV;kY&%BHXv+*Ld%scsGq-g{@u*UX>h-d+9uf9K5BQu3QW-v{VfrshbVj+o7d|f)L z*+)Bz=VEKU*w)APzB;T~a>KoO92jGf4BJOKi>v=;k<4~$i45LABa0=pOct-tpUu)* zKdTdSvqaYIc75IC_p972mGN!$$n<;JTqT>ymEzc*6s_c&`E1WgS93jdZO;ofay9<0 zFUt4uB6h7W3J>!(cr{mqrT=!Jyh7`23Wa>&?yF8NKi{v=8U59*U3&shfr;8U-<-{T zQH{Z%dH*v#g*VSjw7F)Hk>Yekvqz18A?hg){&cT_Z>=7{E+3|T!Ry~X#(wd|unK|* z8CR5mO-8WWGbX9mf^Ro$#5PQCHl+R1#puGk%^iQucY-JTNamQbkBGq5Qg*zpn9Vz~ zfXz42_I}y7_5zn(qV~bI`l#9am|^AWVda)N-5~31cg~%a9I_a;Hu^+-byLhL)DRyr ziv3wyUjWq$x5}I2jKZxq5R2TX5UiK$Vi1Xj0CwQvQcO6)RK|08L}G^DT0d4bJo>uJ!n#Anx7t`wAU#f@b5CvvKJ|Sux_4apYlwdVwr^1X};^+lb1~zF` zjBZFCA>O)$XiOAji0EI6ru`@Ga@oO_dyD<^ejN!(c+bD*ub;@>7hnf!h~ z^q{n#JU*L1yQ0*a^4lCVtyA6nv*F9DD2a4hKP5K%EhmfimC15nroA!%ev}-GX3NB_ ztoY6tKbduW_}sDKcMaQr4IXnEaoksZ#cX~Y*Y@TGS#IR!U$9qu+e0)q=Si!Q9|o=5 z9x2Rw)Xi~YRq9~lS)-dlf*)K#bZ*#Ub=ltiHs4{$QP4&PD6_maNn+N@x7qRx4=-@ICqL7fzW@-?9DuYEk-?p zzC*>|uj9b6CyniEZE{cdPn0SVxUnV_-O+|XWpAYHMmtBm-@o{)tuN1|W)IER4-rxH zcJ`rm8^qT(kX>N)YAn2u+&KO93utj25$@0~>5tXvr@5|O?gq2)JC}SQkPi`kzfY(& z(o3Ptc(*7?FrF2ryfYDS(97kr__CA0%3AfppVenoo;7p5@Gez!51VF2@6KY^25SUk zR4e)-nkE{ZA>o$$|2wEwY^rt9`2~rP|H>r(PmAq;uBZRQ9{V4Cg!BLCBVtr!;}(8V zA}8w6Lxu}fBK3a>MS-Lc37XS%`vDb>Y{_autksRf68++?I3jYkO0X*`dGqYIr(Qv; zmnw*R_%U7!NtnUO_K=B*>w_-T>(oiRd%pmx(yaTnVhCR0N=ATKh`hhLw>LNK^7nuy zqw(b zU{xH7NMeadute4}R?mW;rkD~(MtFN{ZRypX6CiCvG-F^9tXQA}gYKQ8X^jr$l? z!tbdGT<{s~upeR~(AY&H@2T-Og&pi-t}^Bwj*oW>1DU`{44Plw>d<_?|0=x52uPU% zQbshGibwz|s=qr}p4iMzekW3Vw1OO+T4khP23YU3RcwxCU9ng|=Ux_KED4w86>T9b zoI|WJ%AZU9dVg4jKWI(?bOnBcb7T&Z1HQ1qXVU?>96z7gVLn+&R(-5?@nY?b&n{p2b^+5uJ2&c(W)j`<(qhWnZZnh zJu^vG3=$jWiZ9vh{BgN!e)3BLr>!vQfuU3WY!A&J4~Mrm&n(X@s~TBg2{+zTIS;ZD z{p-5IG`(JE4SldEgncqUp)31&2uQl2KZg~FB-26|_ zH2qt6DdIr*&eb<;S%5`R%lJ z0onTZ`q!azDU(UiyFnLtmb3%$sYg3!NcyWJHLGosHfWA0)*yqPDYW55m;ZildUVaB6Jz>M$FT!j)=t3{ zF6YKHsnxtZ&kQ1yt65UQ1c;*qxKgB#~jI!DRSxk*MjHDf9WHjcl zd%&IZ0W)R&Ci^qugQ7w3dEIRuDK*JzQN248KR^%>7e*2~E4%T*TIGj>00(J_J$Hol zTt8EMZvxSowcf>&+9A{5MoW5m@O?*KywREa+d@^4w0*Ymx;j^&x;If|2$4Q(w5Wl# z&n3=lChHM6-q10Vds;cM6^)x;xWUAM;PBR{DwGEE>wbXJgdLsDPe;O_8^-jNw~sb- z$Y*k;*-}yVuoE!U*p6O+d@!Z%Ns32W^K>|QfW>W^7(m!%gtl(Ypr5%7?h+Jfm4|d( z;q%+Sj!F}@*z6#?Zfsd7j~iV_d@pDwWf{bpE1eQC`dME$r0VpYa&E2`Z3V<{N3_); zE4h1iMlX(uC|*r6)y#}T&Z7^Y^@6}{aF1Qbu_hYX{yD0h=#acy7q?!K?wp<`&7J?c zaev>5FaP|*Z8W+vO*9hlP|<}gF_y1+mlH387dB(Gt#mRWP*$Y4yMuvy?-JOjOt;0lnG5>+9GPlI#|2My{a{b3unlN?2r$ZSWsW#2Lz-l1F)0_u{* z*hfus9V@RlolPT%OL%tP_$1Yc5%L~wDop8&22#6%QCF?2C9;Qh5Pfm!otf=)CZ1kA zCu8e!mgZSSpU^JekW!JK7#&RxcTbjAadLtei`ApP@#@&5Q6BO&b0qsx3!g@^YoEhQ zEEEM)L-v~W1h~xHoxc5CX*XJTkT+fYeQSP*3mlI&AQ`x}=P6TBqZDH+zXrh{NPV@j z9&N3b=Dc^Wzvb5MKxa|mw@ySnWU*IT7J!IWzKn-)upSL?eRJzk>jL~y_sS~@_fTnO z)b4{ugao`Gc^9NyB^<%wW5};TYcYQ9&JJYkaQ7e+4=Wx=7Nh{kU3j^IZpuHG7;%}{ z7Q$0*x~dO9^&M7G&sAwAb9W6|S+*ae=Pw_+ZW1aq8lGt@_T#IwZ0!_v1?>`)&?>l^ zhv@oXLHwwBLqoi=QgC&A^lHXggzCQgpQ|Yb;sV&tMI@iPkpEo%O`J_5+^c`I!it;m z9ijGZ`~B|>mir%b!u{WEIPq6SiU0qz4gXT2Y=7?uR~lRPSeyucv-*rkO2D*x1ZPi` zN#)51na6Y?$i-F0TwfUF<8z>iA1UA{frj~p!KkD^m2 zY|fH=j%X5?0|vPV#3xtpHg9oS_Yc1!&B%GNj41)JL_kPOA}a~)9(S(bM}IKLQdr{3 zg60WBC%y$jLrw&Kp;)=3JD8HuHuj3p>SvOQC_)kR!8pgBs8CKiO~8Y@*Ms$EN7fgOB(c6!}wo!82hrc7i=B6(6R z6_Eqll)lIf5o_5SPlgU$o-QP6y{(9c<`cEqlU_r`-u0qW~A$F#uWv&+6B z%|+YnE)9s<4=~f%`E3*y+dc1e2c*S7)#4C$qbX|d_+7c}pqlpZt^tXoReOlB8Y ziKLyvactcB^bRQKBvkZu9$%-nLtjv#F4w;=vSsBjtovXqERC)P4UJKoP;@+n zzI(Esp;}-&*BmJFG zzB?k(3YZ|%^1;itfSs5S`6D}h<+4-{_XV_*V(~)u_MOeW-oyK)Dh0;_soVZc@z};2 zm2<|vq?h6M(|B7OPfJ^5bOZ2$D~B9hamyPx7ri8yPK!O%sa*E~HRIFZw*9wX_b9|v z|E^TWkA;fk(uk3MbKhTS3dEJz8rbHQeLS!%LWZM>lc8F!{q37iI0Dsfcv6o{iSE0; zQ7%I#UShTle|jr64KEe|a%K>O-pa<{Dv3ct@^X9V{G4X=^K5ecrCY3og=>wol!i?0-fru+NYn}u-kU>)23`}zMZ?3nKV>LVL z1%k6F16-?y7OCsZ8mb3Px4p*{*{vUD$u}h$!?dnTyp=NkP+pVD`Vc>hVGH$+Jo4a7 z_Bs$ndQ2}#E{D>u=MWVTdeQA12a7f~+dXMkyem>f-+p>=rG z?mPy#84|>Um$C(md10u#C}On|-%{R4Aa|zwvl3$BM=&Gkb4{e2kLXCfjL6K!;+9eD zLrYQDwxwHcC!n}xI?fzXPCSAD7hLM}k~N5MoZ0JgI0+JB0gI|UVHV923c=#~aw;l3 zAN5s#A@T(JW&gn;ePFuR^}IXjr=$hNu72PYsGN{7ehjCs6 zP^Hs->~a5Cr<-cr6z{@Gfrw-zcO_Km6#N`qUkrf9(7}0A+>6Ss)zL7k zs9-KOdB5gqB0F$|h2VeFnM_GG62Q;qT2^xQihV>r>Eohge>lSyM=NqQr~KFm!ijikHW!wReQjp=jsk4>%UbgQwrew7vR0LLMx*1?hwx5v zeQ>%^T(GdOGRdNOOqpON2C2&q;#G6H44CNp-YougV!6QNk6JW%$tj_Ffn=XJ zs1=lk?V|1K{_e}RN%oI|#{^3aap<~g3Whq>WKRN@Wr8U~*f>k3Xj6oeXH6GeuFPo5 z8tEv`#&+lrI%orsW=(yv5m(MaqK#T5|_CY4}AzpupFEDH{i5R>$P2000(q z|8M;CpFd;#A9B`}kM^Gpj>g?TzM!!@oP{_U5jhz>9^!wK+_EiiiVw0^&#rl6#bu+C zr`bd+JsXO~k9+NP0T2KLB_-wk{+RV1goz*p2o+Q+u%q zqlb6Hy9_Tf>Y!S<$kGB4Cw9Cw`8mV;drNQjd;|+!R6!neSEmlc2Z_Pb1QD~VxWfx&6qQj)k&FjrcxYbswnhORXLW)m2v+9 z4u5zfTEdqS@vc%s<-s@lGuTyJ4bW?uIU5y4p0+=`e^!9NZKNr-5_PI@2$~NQg9q_i z)G!P1^Z9wry92MCkbFsu!F(jfRsye_QbLN=SU3W&vV||Yjp4aT(krez+G@a;d zgQ02!msf$_k^)=0P(?O<&H|1lfc;j&l!b%(#`D(~Hw87ZM`(TUh1ADB47N;t{xX$| z;(e3FHM4~_lc`AVyyKm3L|%5=_q#;G`CWmwsW~<7tO=Axx(=lrpeGelfuaK#p_ffm zmO1wyIY4|Bys2A#^m!JK7Kx11PM(z`!1O4`7gq2^H^q#dLG?i+%|ru%OMH3}I0(7i zF^`=>3>>RTd~7q2)3PF85V`R%Z4qPx_NzvSWNcg@VNJoFM4NvEt0^5h@GgG(lpz;R zdobr*vS-rgy8rFmW|S#Vu+PVFN%oNY$w}RtF+FYhbem$zOfKuww0nJaqsX&2uIiGH z;>eD^{kfmnQ&Ug34!&oCv)(HKd;tS&Hf?Nr`2eWMenv+rjdnWY4c z?=U>=a1Zy-cS*9{TI1I+o_Rt5LGcq*`ZRTM^tItQeHIo*Ie%OH0vF{);n<^-j3MlD zcjW8Baq9y`Rbnf!k11q2oBwVjO|9Xrx@fKiC&}7SSih{|QfM_SSkUtt!p~n09U}CD z$zB8HU!j6NoVbzw4YnaWM(psM4Kfe|>?;>_ZDIBBm<|AKrlqLIdgD%|>Vvwoohi~x zYB5gzMPvz@JY;3Ur`v+CnckU|H9;c;CIZtg*S-Fe}OVw%bmcOw)RPH1HhO zu+vyjAQKLL{zNnX1x$rQcVlF4Ae87Ae(#Wrj2&G@*7D9koy0pUltRVru-Vh*$*HAOXJU}6)H{wM*FB?TK5P9+c1+T~u zHPw-QwgtZ9bpvoEEnI^!!Qv0l{yrW~cs2Ujm9N(ji5Ko5(rI)Z-UpaDRv0l2f`q+ZF zgGjClsy8ibf_TWE{X*_dXG{{1XaH!=?T6U->wCi`A{nKP7gK8buEyNas(8e zgr}bGlU{^kNI){gtjJ0V@ee9spfS3(vAI*y2z;h-?BAM{NEFZrC-aN0IXdVDe5{&T!m*Uh+sm$nHu}6M^|BM9%7VQ_i0N+`5G%rp zd{ia^F;_NuMdaiCZ?c>%3;;%}XJCXAlX0?01UTlxrY_d7d2iCqh^#aI>*h~MKoXF{^8Jz ze$DCc#RKdwX}jlIQ#T zHOvr$=Z|i;=){OA;PXRjTrq|j5ffB-sN_jC5WLG)I4zV6Eit#;_3FQej!IyM_Rt`V z$dMr}Ou>Kqc$)|-tM|GbFbctO35pSa9`l4*B=*Mj^>cbS`MliRHX()b8xUs*R>VR} z+Hhk5Sk0_2Y!|+Tl}aB_YrnNFjRtiQ`)m$C9^e?20Q?JHhJXj<)v34eqX#t^yJXLA zxhe!_Qy~a2Vpxh2F1xIDbr}TP^Wl2deqTt}`)om`%Km7?O^=jwA9AY2SCppBPonlZz;iJ)odF78eM&NhOfVAb8mRwlrsMWhCLf^DyY zo0mLFO-fN2{xLewzmTp%;TC%HXeG77H7FNXAf5=tm?Trs4q3%;kC!8~|xD;#?#Z1Y~oTjkl>6APc?)|bn-*c|Fb^}k#_$%-@t570nLn2QVTpDeM zD6sXQu+_dy=)blwY)wI8|Mtb@TYqS3t9tRSt9qxE00>R;wPN}jc3x_pW1YF@qTUPa zN#XX1D((whVizMpwZH1m*?cJi+3bXiMxTulX@MX8N4=1W=F1N-Gsb}D{opV0Q?VV? zFa*L|millkCEge6RWl-`2i^f$o`Nn|!@xw2yqkRySpw3s`3?ju(!fqr~rv>Lygg z&!;mj>g6Ycrw5{|$d>_j9d>oKy(oI>c6`9!GGxmgxPZwHnqdN00IxL))5#G~c{!5Y zQwFc~n~6n_D;(wSC}&^_Y(ly)X!{%21Av<=F~_5u!|^& zkjj~4w%~KcprMi5LVNF-h2AhvFaiHq2G4v7-7yoHwi(^D2G(JroyG#S#a;hv92=K| zL8$8wXUGa@08XFs|Sy=D^SVIC#J7e<=YFabsEIH?q{q9L!4QX8ytK)cyn{U) zHIO*TDAhET)sYA?#CDP-D8w^O!jjp425Xm0qzg=)A{iQAy@^S;6)9upDY$?ZoGi*? z@$TJ5?zH5(;UW=tZfKNr{hLXg{N3{<>vVjm*I?w8SpuTJdBP)eRKh%mqhejdQcEno2bO!c{ig1B+~lhVObJ%Epo1WGhMp@7{`Kg z5|VhP<7Tueg)a`G6Tk}E4p@Ajd7(^46YyKQnljy=DO-9x#LsIES_1n-iZn_I(zg^1 zRM>bJU8z#g(5;lQe;XpwSpUcY!2}oN)@dp=fhx`TO~6QZGy3ENzXN3+xgNsPW{!A2IX~fDxpWL8T8Wb zU#&5Q9SOAEY+(yQf=QK%yD6yrTts?&qHuUg=sbHaBdG*-DZHT#;FOo;>a} z;96tAkGfY9lyQ_L?2B0)Di|0W`;W1!P zn3>!dZSmvPMt12tL*F=(na7Vy)_PAtP^sEW>gM_+s@c7S**5kuYtJrq zwooW{Y=Fw1_4djxZ4N%W1%SBY{|vs0GU+LAkW)KZZb&I&i=7r*h1LBQgoTxAZA(hk z@!Crch8ugb!}sXtby*%?KJCOzzBPqbrEXlT))xXff=pd_I%j*@S^ zt3Nh8BO|RT*QP4$?-A|Y%f&xsrw=u!RfoqzaYj@IL^!h%s``^iv$`s+l0|&UQh?Xx znt;dt?OUl~HU`Hzins`bQd~4;dfI;|xG^gbgI2Z1;1h02XSI=dM zpg^XWU1GGvdB}-oHyi;`@=6J+u!SPKOxAE1is?=`h(cLcO7&ad zcG%YlM^4_?&uShz$`Ec!oWNoTnWktfDWp6prB3epun1v<@KwJD$5^lvRzWXGIO9#Y zrdZd9MXA>mxmgfx%5R?V;Y#v!A$F`i2}7RW4J`lXyCG4!-Gm~NS*fH3RG=O>!F{?5 zNy+^fVP6hF7-@*b<|gxR0xt;_y7Z=E1dQ1bKtETwGtk^afMVr}m1h}*qj7V8XdegS zBc3PAJbVh zW&~Q@Vm`bnMEa4FFpwo}TvfC3B7+aK1UAT1*%TP1Nh&7;0Y;|)jy1MaUDPu8l+*+e zW2p$F$E^_h6VlvrRFhXZq}<|X^&AXi4%$(3Wt8b|dBF_KoqR1Ct1!7mGBY=@1vzW& zq@1@=Upp4u6^CQ)@m=x}xr2&2Js7wVzWQWUMghXP8VUiLGA6q0Irbx1 zS2+bt5#LGhdXINJ#DQMX5Cm|mH^6^U&4p4r_?(?tb7$QtA{|LfTVeI!*uJk4l-=+@ zYQ8w3IuWRSMGc{gvXc#L3@(6f4vkM#^n8}Oc?h6jF5U(Rb6F|LK7UB(wHQS9-56ar zNg-h-0obC*Io-xooDP9NS0?Au7E8mDn7aH@HbvYi)0GVliE>oct^t}v@~5oJNR*KV zOb*G&;4(ki=&v_a2TLY!H;T-6ryJ`6%0v$pyk9vKj0%ZETjV z!cDWO-`HzdKB(e+k(CeqHyBGvj}?#|HPO^H8{@-L!nS?Csx^V<4d8>^I1lA(Ugmm( z60xojVPwfRPrj`T7vMSL(>cT@UG^$M&Vs8HCS+N#%pSXKvYl8tVZQwC9_O|doUSTj zdQ~_Um-NGDw?;LBPn)(%VM!?L<_0Gnar*(-o|>P1%|K;a^IXE&*f;#!pu505L!aJO z<4D;?Bz#q(L%H`sQzKB`aMknyrGDtXyI*2nUo09v@rf$T3y?<+3h+=hoUg}!!C!{& zuIDT-xS9Mseaa903k|PDC|zVH#{z}Vi|8Qj=kD&vBSX?{jt(!T1onk2KYUugV($gO z7k{>0KrE#Hg3&^Y<2E?Wa&+sFHGx4mhK+bihVhg=%V$Gg5;o}Q+Tky9VxmUNh8kjY zb{y}`E#sZSD+-K_qS-M{5ZJibY?$R@&`@@ji*5sjF`Ah3s1qvmMe(Wl@~RGkcvPzR zJuC;%Oj@oTcF6qw*JD$Lni6+cpt)WBa>tKR_j7Id*!sW@l)Kh=Khb z5PSe5`t{<2FWVL0R>}C^gxbDfoGr+t`P}?KX-us8Wm0ojjt3N@hw@_@6pxt6V=8I$ zhj~+Bct!Wyz8;6~{n2xyE2ylyGGkK;=)Tlt^QjAHc1slP;{ar zBylnb79R!KcQ&2x)aun?a^7=*fE0gl*cAZ5ENaPtVIe0hUD9o9>c=H?kRzax_U7E1 zU8DF&FN&HR8=k{Rl`~1A`7S}IKa^IPz9^^Fo#5n}L;wCEK^h#Wu}W_j*wsp~&UZ9H zI1f6@Xkq5q?i&>pkezGD_S53JI~eXai{bkfjVV02V?royuX`m$S29`M8_sjwSb@cg zIR%>j+bu4>?u@9!R(+0BtpSyhvrlb1D9wV>trxr*qhs*|DbOOHYNR992bB`hV565{y?uQBA1KU zJ!!U=4c5_a_&wy4W(xgOEWNbG(lED1d_`9Z5Saco5B0q)6U9x^V>KHQD_=mP_*Aeu zgS~KeG^bPIiV#V5Xn*LVdgm>&)D|+-$nC|?=S447f~rc^MW`^{{dA)P)#5~nt~sL> zq6o=06e47#Qo5Yu#;R%_wWM!vEl{x9pPM6VFuEFcekPs)a;qL=7oQuGVj*hGhX=&f zM7*-hWY+%cWPp;WlAe5;%qr@J{znl~2t zKW;`Cbn4GOd~66mWI+pNLQoKXna{#bDA>4KebukkC8q8-1-5D~QbK1glf-K#Q7$Kz zkOAgM{Ngu0(t$UZ;qdr;<K3igb*50cC=H_y2O;L~2aJah^@gF0gBP43*AY2#!pi+G5T$fKb_^ zhOIhr`|xZ^=TVsyo7p`bJ-0&_r;1Gi z)aQ~t3=q%}QW}ka)Ck;%m^VARBpGlKn~+5q*(%&_KRMzZ>4luU#t3?u4)z)%Yev*O z1|r}rjsk7${S4K!7r=wB^@7!*vT%E3>t5tSq$pP?x7`FgZ1cO4ixH7~B-7}%K$BFmz zLl@?OmuF6P&q*|m^jk=7njLb3sG+Oy&$J!cAa}u8?Y7i39O767yDhOzS3n(Z%@~;k z@q)a_n#;q(4>T(wl~oP;=B>HNbjUm!j)yPUNBN_Ns}AyJM)&PUe?FLW@&c@8S%o02+7G~X3)kqIH_&`Z--wM=Vl^3f-4=;V9%8T54>4B52H_J~ zk-+FTmGm-&9OX#mc78UAv+~sybE}R9wq^c-L&Yq?mo`-pY=sz?O*7{8HXP(9#q?sE z0X$;jJ)^G*V^nnwrMc(Bws^gtPyOWt;MMJSHd8O+tVep+sflHKD6>T0YuPIAd$Y#Z zvB}mPVmYy@a_J*H0$5j>w1(o+I-h6ugPm!Ics^Tld$GtaO(O-t-E9}*5JisN7&Umk z**X`TXL;>nV#l}rPs^RnPND^~`Fd7AMv_&&-lqDZ8nD2X2(kldGq4pmW@Ac?rUhA} zwQp`1kNE-1*N|RD-w49n)AN2`r9;EHmGJZdkSV?2*O0eFJCB`PU+3+p#YnDlge^PS z&e`pU-9fu>6F0);9m}}fC1>%E^+vPW0=;GIGfUn_6shdt^B=I8H!%dEnFX=utEDS6 zoRNBFKsHjAfdK8K^p2i@r)=H~Na&6fyGOi2yQ6@`tpBva#N^L)n^%`YBGQ;WGA)@ z=+<#nJ*5kj(qqrbKsVW0_?yM9DS}%x9IRs|Etr{(xFRo3f|1I0J7VFO&4(6XY2vk; zaM3WHji*-=FMW((oI^^tZX%kFOqo0-8Y9Fv^U-OeOgA5$6-AT@=UpI9VRyVs#o2g9 z#OP(}c4>J5x=qC3AN!13tf^whY5qFE43FdB&B>A_Pbrmojk-|AcaWEnyL*T0ebb)T z8W+2QufvkcF0PwB?G0ELjJsL;=O(6br-FMwdP8;GYt4b6tR5OzUVJC%Y#Bt5``w0P zY*VUbbmfK7Mk1|4x5Ubp=OtcotP*Vyu5l&0n^t6x0;(yFb)5wFzU~MW%U*%N8`o-J z877j;+nG;Twh}pV{fygh8Ju9drFck#o9P|+Pj56tYW6D)TOJ&|eSplD*S78+J&PD0Cz)>%RBri3No!x@od~|ZDr|O(vsrHTX&_)r-RLyr!OmFI> zm3gyUu?$|_UJ*=s*-h8TAs_X<=dFXT&CH$i$XOjm#m`|EW$@jsXd|kVwtV_b?sJ<| z%~u@Jea4b{w;f;%2tmw21y7F{3&C`#W{9ptt;(2pZPyj)FG(pfZ@S&9DXweCOgp{z zbX@Rpy)`}-XB2xj5a6xrcS+jvBr>|f^T>S2@f1I_0>|5Res>2|HVg)lEeluegan2! zZti4jXkwdW4f27|ij%F;@&8lxJ=o6lxO}hI*~vf;S1DyH-X=zAXZmxzjhfh=LCVX? z>G^|t)fB~Yq6F8;jL9<1l(S`~k!tN6yLlGT-fqErAia_12E(*!)JYs$El9cLrD=QO zK30*@l6TX;Iwa9AZTYn>2iE+qP}qW81cE z+qTVnY}>YN+dgyuNoFyb%&wDO^rDlmtGb?gpWSh6R&8UE+Pvocf`sIH!v`ziSjL-` zsDEwe)MgoE5^O50oU~#4Uom&}tnzb@6`9_oB4wM?o*upCNK&gS7gXa$S1}u=e%!qx z!}{onrhzLdKw)7i(`0Qq(@(susXWqM`POKNXx07NjhpxZO zZ{7TMMR$x!=IVKMfXKEt!zIZk+MC8 z@_M_dDv-Sv9R=2i=RGW`sET>=SndyBZ_DrFQAvmFH=RcGh24JA^!K~uUV3u$ZodS2 z-Nrq#;}}bxNsmDO&GE;d=~R`*@i$XCRf-?DZ8KH9>1L;lnf zlB3s{Qgkbv3!}~VtaMZ?gC@kY@B8Q#up%Z%ho3`7_8+jw%jyG3UfI3~z zHToQM(gkWoA{W;NDO*FTx2nvc%Jg+q$gCY;=3PQ0S`K}!#P|w1i6ogFEuprBu}9p_ z8hD$;eg~yvhRxh~)0TB<*H4=-46IyN6|*agD)}q*lG8$ZkURPe?xwjD>^AK@l#%Sz zoRS`om`qk$gS-72OQHl=nMyFEt~Xgu;TR90)YA|t+2#6s?>v;}Hw{qd(%9u~h{4Tn zHJnS`ZRJo38hLYfL!C${I!a@4V$LQxGQaixacSznjg0K!el~ed$!9yS^84k4d2{i_ z+N<%0EN`o2y4%Dnd9FRvhP}O;eviL;p}$s+W^lKkZp^&izs|XKgB80$;92LrsMlWS zHwEpLU5N7lw3}GRGFd658>+DUDppFgcYapae%C5delHU;hp$Q9-!43@8$ZnM-LzRh zQIGmjppth%8<@j7g->634Wf_>x2@v8{07;J_LswhTP}mc&$p}GW;rWdrzpu|Mw3+I zBIpaM!-2L(IqVs--s@@^7xZFfwZ46;r9Hl`zP?{4DfYS_pRapm=iKh;(emSA-iMbC zM)!^m*I>@qv+=b5J+T!ZNwJcN1>m~&Aw@%{Fwx#hOZq{apIuvXY~g)KP?Is0M`z3o@>np; zwtJPKF1A!h1%ozsc2{U?;_V|=sO&M&@iW;MoFj{kTnmR);SJtVbg40hZX}8uyZh9t z$030)sfhZXPb6VaKK7V{OeKD3}e)@YNt&Qv6gGwALX zxFYqEo8yqYd0rHh|C+y~ir1?mnk8Zenb-+Sz0&Be`qOU1hR^Z)X7)meDAv6JC%}uR zHm09N^bq!Mr}`e@wf+%e<=RVDKItwOnBv<}!=|?xq-QPKefpj&-eW2p-$Sji4AbDz zi{ezV_V2(59za)f%7s+Ki*gSuV_qVV)QW+YL;z0H87!^yQmh+)Gy}`T83ce%EkY#odG&lQ zSdUwRF6zNs^hHQHwbAatHnO1E%oh5*&VgY!F}Ye(JuNM#VP|94>Xyy2()!;&CZpsp z=@8o+mk3$a&fC{q+Kf}zgUjRl&xewjy}S5oaJ7i*Za>S5*H>hmAE$j13A=m|bZ|HZ zbKG@X`5?bd-Hr!l7KEM*7puk&R{4e%A`dMG0@+Q+|MDTfD{5RCNiuCQq_W6h2Gkaf z393G;9B!7U>HN|BZUiSqWIW!uK90!0MI|KsZL#j$caRWfk2NJR{865E-dr5$&k$0w zB%&X{Jm5ih3_HWnIZf4zxZ}=ZR&Y;UM%oNXqVM+^?5%c>ffj0^vptM$O4G}E?lWM4 zS>2CeP~d#5w-LpjJguI(JzjgZTUuv@AH3L(Wu@!`QtTFlx>ZJF7${Vh;a$i3ug@CD zML3|pYVU@u2p!OP!IjQs96RW;HDAy}5A{evqrma95V{HvCauJllTqe9kw05x8=G{S z)uJca$I1r)TZ+^P1x%ZW33ZPf1;bW-G-r{%exd*O3P}q2abf?zlrHdr|DO>yHgGmD zH2Cio(`%nkr%lnsyW0=yI@NXoOG>Ud8Cxm0joYr4L?@lEH*2$`S`>891R+R72nGO( zh)%cP&u60@_;|Yb&zo*seQmeji-aYL}8# z!rROUZ;tkL)>$fSS+wlmrKpXVsTLc2n@gn5>QfaB=r#&2;NTB~Ci4-szxlof86IZ7 z%iV3al@E&D?Q|VhmuAb_I)F$^v!bio>^dI3bRSmFg_{?4ezdD!X;)Xu&-Whd23lsX zPW2;zG7YNE)1^64vZ>kZ)BqI|y_Z_%U&B`K_o_{}ONx56!u*#ftNwWsFFxBgD{rba zKLaH*8!Z+l!zpLb>0y7Cy(#_V8q&;e^Z5Kee$KD5(06mXJwG0-6Tk25%*=MD1L2XD zO6jRVO`GU8WT!OmCrhm@GRfAv{PAc_FIzOCT6Sfb=#eC~< zg12QFI?+rQzPw*<=C1-gQm8p`a>ex4<&R{dkdoss z+JF>MkQ+tWz@l$xlC~_<3G}gMDnr{~vSAejh>JDJOcVdSiWG+IzxEnF)F5V@;**xbvjr2n9)+8e>lk!c zw|h?ytV53meeo7-N;Cgm7A2y}p%mG@GRWA?3)rJrRel6{&FhP6PRG~cC}D#6?gBj3 z!dArPV6NB8x5~=b*LNqT9y_ciDaRZMdM+KqGByr(4ZtpU5?g5cJb-X)x|@m{P=__{|=%*Qwe)j zc5rc#Y|12J-`DJAwr|{|WY12fA;gXQ93)7@sCrP5ZpZuw{Dxv1IV$>Ny2B33y$qak zM*srv96v5XNMCP4o- z2&|Sm=RkqoR&4XuUOMie*v^IueR6Z#a2En>D}!ho+Ij>#4Za(mLH8RFfFM7?e`bo1 z23VO6l=MWDTCf18%Z0WhLCazVFjU|4zX3+z1t7893PAF}pjCR{x`L)JWtL_bqkK{n zgCZ9P4Ma1@=djR{chllBMcQ;KTOAPVZ3K6nz_X_MM>g~Ms}BbwcPCSvFf&v0}jwqtEb)lvi%=Wqm16K<@z69nff~zH~I~ZX8gb4VO)b8M`wd!cGqwXfDWi^=vPEftfc4YJ0GW z0|navXvagFbW}`yfGfW`KmdV-k<`y&Q>Ri*NaM@qhQdEuth2C4Z~lhZoV`&#$XP+f zAKq=q**Z=(=*HJojB+2VF_-fUJ`iv4WJ~(fY0yt7hdTQ411x=tSu(BXRN6Tp`YL%`C&Q4n~Am!lb%7LT6B-$=JQjJUGEQBau|o;MWB}Js3Q+y z{>VM8@iBH7ZUF1rfsmF}sUYi`edPfDfuH2og@p8lGW=EWXXrlQeFxEIRvaM}bt*Zp zf*;9I;|j3UT~bR-UPQUSmz zKS&=}u^!cQ$k#qL#?MNnJ;FeQY#_abmORkaFc%U)A=a;?GBnIyhlaV~ukh?x3a_}RXAD&K^705ZY8t8jc@@IJCD*pMz0XL2=S(Gi?8 zO@~K)D3bt8pXB7-VpsSOGxc;(Zgs@2mbn&? zVo<%9Wf)0=vSTx;rNNmb4RHQ>G-*lpA4Syz&&CcAIwP`o;kb0m?EEuR(HJsh7RcqO zLY=l1lt91sltDo!_vooJLE|QDeMs0y;b+FNIxCDlQ_>Ab+oCWAKv78omra|&fAo%cKiUoQs7V*QOKBUye@F1CJ7lb46 zIRk)xoJ+9C8_j%3oP^@Jb|9H%ZFoXxyqX9j-SCb@BQlyrG5jPfB|avN>1)}hZDT3* zRw#WRm04Yfg*Ay6hISxPhNvW%v7I~GzoLWSXdg2XD?l+QS`f)W>Y(nH=ry3uyo3)Ds>ShP8tt{nIt5 z9H_oxL|&Z%J9866e{&@qTZq1Chetgc!597YX=JfETLH-tFHRqTpk{5Iqn&3o_f%lj3H_U zd!7*XGYII(m7o*|j9XwCUm?-VaY$5wCJjaW zcYG16JqVa=lCxkF$qT%M`1~(`4*(#fh2aNT=HnO@&V?8T}TRVo0TSYQIG9ls7IjkJWf11e)OKLpm4T&>WbHB1awHcjWtGb8dLK& z8WHmPFzdSt!6HsJmL?I2tAv9IYt4Wu5^-%rclX_wV{awYYB0Pzi|>%Qon`v$1X+~p zFHQXVy^K!13=hgH)DwicB8W|Krgk%-v(dfse>rbr?2FlxPzd7%O1LVHMp zAd6X*g1bK9Nx80HSVut8C*ihu&m&2rj1$00oO?&9I=3^@(uB?OILQes=xqchIy{Oc zvjbBv1vi zoDUt0M|pDkxc;8x_#r*i|!bS0WO5KPv5G=7~vJ)Bu=Fs6@x&gg~!! z!kw1OsVIpwAicPiE?YZsw(?arXJE6~Tn0q8Q@E zz=z(M1*5nCi#@`k_&RFCEzD+66fl<6#iAJiCs$Y);sdp!>&`aaLP_sK1#1qL6q2g= zcz=dq7aWmOZ7@_YJy!d+B#d4o{uN{+{E9g~B+VT|ZL2AyS{IP3nqg$>PZ2xN>=j^{ z;>mGTtOw_usGN{>Ru<@EX;14;HjUZODR&UHrXstWOh1`9*u#+o8oNx|7O_+9_Phb4_0T}f`BCb7;V~LlxC@iZ~nVi zWBKXZu(P>dGL0nBE{dY1T~aez3z8g@ngtbHTY;SvSy2G?0PSrwKTH*@NCw#Oj*^jC z&caX}?}w?O@@(+O6L2z-(rm0%wTK!c?x{7&ii+E`5&Wgh5I?rGu^Y{zeYYN`2h1P} zHsQN@An3e|v0#lt^au+N^M3L9MZwd;5+s#zlImn*a1L3X-3mbbQjI8hBE%>C`|U8! zQI1cS6}n&3Q0B(3Q2iecl4vuKs$1lz#%ITd>QyGs+C0f;3%H#nE7Bbw%Xk%Wqz{iz z={N96d38!^uf6+}D~zB;3CANoffH;>s1A8%0oMl;Eun%*y|(K@&rdOK|3j484o&%8orKy9u))2aHM9`f@W10b zFO;M>BG|mMaazDpUX#?Kg)){l_+%~iOTFP}GvO#IkVFvDowYk=6sJCOB-U>6idO^D z|FAE)PfV-b5q~++jmVgWphIiyr=*$%P>K-=C1`p{SXjrZvJR}rt5aY}kX|&}&}5@f z4KL<_M2z!~IAKSAhGUZivtcq*B1U5+WThk;S?Gm^XIhQr4yd7dn*gJsyL$j1aKqYD zpkdT{ho>4viBtrXafFDX;4q9xz91|#A*OIaZL~*GGQ?>KFOkW*l;~(Ik!(Z-vU4y6 zZQhI!?kh6Sjr^OIrIXf5LP;ufyoiXgoWC6a0ZDjKp7D%Ky@|3^|(l!GyjPCBJ<4nvLX}5 zzGVzoO9Zb(Xu%I@Io5j%s}ieV$6D-Z!hm~mn48MkUV%83mmtL}n6m}0lLL{_yoF2XX#$k* zij{LXbb)3J#XDt~%7_NPjIh)Xakj zxW~n<)lQw9&7=qzra>jX?h-_~yUg9z8f^?E0wFbr!i0`O7YbbqhKZHZm5eVY**@>B z97~Da%Qil?y;tIcs0BPbjdK^qnL#EICEt3K#>v`W0?VlprURryi>RS4JRP75z}S2{ zkNN3IrUSOGHm|LO&_17>G1q8k4 zgnPYz)(a_7yFID_hyEWirVnT(Pwo8j07t=E**o`)pm_ftRb=DvIw|r z+lYP@iBB|iznH&47MP|!S_DKm7;}u6V6K;921?RN(MK$K#P^LW0r_e-*+`E)wwLSaBeT?IFyoiJymGDfH zgSB@2YBFK-148m+3Zop&33)R{l<)^ll5j|&LvZVxVE9Cet#N-LW?gUhX5yeOo`ko; zB3e^bO$4#D>1|u9L-H4T)ct`jwHS8EFctJmeJY9z!&Pi*P2{piUmDGAezUhr*=<@Q z4^U{^1dK%B{puhmS%XQhH6-Kgr8NQA*8{}nrVelBZ6>VIm!Cgl5@$0C)ky_6mEYAEL8D)p$dr8`((qEJRFfTM5~cr=7ynTFG8L^T za{OTgzh?{1Zw9qDjSoqQcM|iBpmAcb*_au>rG}^kFe8%ynlMP8n*lrU*Qpz) z%-cc{idh9qW~y#-0Crryw!UkaX_x2s&sA{Dr`&FrzFwl$mPvD+h=f-)scpT_8g>>` zbxuS%oKaMJpzTtJ5LPPsd4-Num2VbKfT_S*GNLQl#8A=3P62dc^j6dgXFYRRRe#%( zV2Fjk?Bdu3m%V(wR);dB=5H)eDa$fR34P)sNh*1pdj6{7M%8P1EIbo8t6W*xjxkx8 z=BXPkEB9XH>g&uxCb5khCfG0Mh14KV|LM8dItD1Gr3w)y*O|&A8d>I#}UP?7fgev7)I}p#UD7~xMm|ciImCM1Zu74V$fXZ za0gi15CsufC-Z{snI2lwb81F;Aps}(5g*(O3qvR;gTRI+RZS?VPmTg4=?^>81f#6@ zxBY5A#&AXI@9YCCGDxY4JT8w2*}9Vj=}g0vBswG}mVvhx^VTm>l*B63&k*c&m%yJD1eTCD-1ZHV>|-_5bIIOzC92F|Zx5IPaJ zTm_M3@PeV9(D14E(ZZ8X z^v*TqD^_P^w)M_Tp>C*}Q&ZAttu0LGqpPp4%WtEzH#rsRfVrm2Y%A4>C59x(nk&VB zmWGDxA7F}9W`(~-6CHC3e%M6R&^rfAGgcJ&H&()eTEvvCM{NXzD3DtsH_6A(!(uO; zb3^?t&{1B$)pnU!hZ+M}WZ^BVP`*<>>y&QB!{Ok7IQ5ob!K11;w7AD{;6pDLl`XC= zLuwV-<~GAF!TnaCkp`3NksrOkaFIJ)TQ~R9Y9zT|b1i;V`y|4*!u6`!31o>~i+Xdd zrewseqjMcLQS@M+bp_dnE09rx zZPU7sOL9U^fNwK7KfPY6vl)>a6Q+&BkaEZVI~KyB4_mKxB&H#>WZ7u!psm^lq3o%FvM0Z@rE8s`bAP=AP^-D)wFU_c zHlcAUX`FH z8>lcvV*eIO+gHV4@TFfNjQZI#MMKFe|HXaJych2z6`9kwg;?{&cLD{(pxl=Q5GoxB z6rp8>Lsp{&9=~y*W*DR^ek3OBU(wY{FI8Q(7GDbDe+^|oaI;KW}9|BB|#R&mK zWmf9pKmQcjw-(z?vjkJ=LUY~%SCTwIfIo@KVk;ul{~Yj(l20sSk;lpjduTC_pew6B zy?h=IAS`GYY&vedHXD`X1jJEj)#q~Za3lVi7x77?vMRwGfC~Hwb~|RMZ7Ab5J#uRc zH{qnn^OrZ1O?=9GNC8S}HGB;A5|x79XsikWJI4!-n}lDwN%_@Zx=@RG5zx5}!&;?? zKw>i5+FkFjc5(Nv5E!wEiDz{}<0A9fk;%{gWJxy*M}1cE5R3%)3?b*Z0d{+k)HED~ zPS{8&dZ5irGo*w0L=JMs4#6SVrq)@;&m^7CXhLNRkSjY@Glc3|?ZEi)T=9bGTLG;* zDcLKcx4w6W8P&(%d-7C18UuLy${p5J#gSeZLX}B$0=5UfHNwhr*cq0UDX}mmS7*z zEleJ#t=*51A2LAo95FS~KalF+j~cw_GtOI^1)wUqNaL+=q)rCkrdrdD6eIg;F@--4 zU-~%yJBDN}kT=R?cUm#sEroF&4(^*3lDdXQ)>~=Ji4>FPFf}CV8FYf}EB0?4UMn(# zc{>ajMR5{0RKdr$a&pf;c&B|RG1G9_UXeXeCV*y~$ zf_M7(amu)t{UX@*6(|O?3s$(9EPC8=*?$SlU4i~oS+VdkE|wrm0%-g)#sDLrn5OJVBhixr?0yH2l0(;G&J zUP!pDZP$uVbA_7Jn*h~ZIon5ym?`oXV2r$wRBfqGu-514MtkMzPU9vxoW_1;?>Fk{ zIco>`k~oIvyKY$YwOjG@9aD@x6LNhU5c>MhWMW{|72gP!&kC9_ohE506D4$vBVhvm z-u&YTaTjkK9Uvh#{D?4SRgxhiz^nYvr?d~vYm{!T zYvQjG5n-sc^Y>mG^)tzPi6}@8!gc{o>rqzuhN;u=4y4pvz)OD+N(^`hkq-=OQI7Zx zpjLsl%VFQf{*wJz`eOZj!q80J&yvTDFgGkr2l5XWTs6E`42})%2j5lQs^Q}}b6xk0 zXG~}G06;r7-e0|=YDb5FEd0`$V!X?zN~Yl@ZBU}97la_A9gExA^786~F|+~(C304}X>F918=ot?~Fab@; zJ8CQ_Lq1?P9wl$4hee_Y7!J{s`Fel-J<9V|cvv<-c-BA-D1mHeatJ2{%Dsq%!I*1e6at@iMO$v|KLO8@ z*uTiwuNn1xE)eU8e4-iEcX54PHPcOdBC=;oPfCj(HA+aEasM0C(K>>6e@~>egSVA*qw{25-7V>J})9%2o`7nx@ioD|=w2y#uvc!KN3_+-M)QvI+A31d% z;%l4G3%twk3wePVg66#UJrkeq`zG3uRz{FqjJ8uGUS6N&mJa*0@;)G8TeyoYO(-yU zyy7z(X&{fg|I9BA;jaG_IR_)S09}DZmP6BU$eis2yZj1TNn85TzMnB@1=uPVYM`8^ zzH9ccADoLGNbw+9F%Gxbc(Q-z{hD4PxQ zG*IE3_ldhMJ8@3@;*dEO+Kw~NU?;K^LO9qpd2d;4#gB?%bt~A~iUD`1RM!cBN3L6+ zU4c+*Fk^EH7bwASQ54YJdq)cTg_dD}G>k9{0waxKpH*>vZ;{5c+eqxldRMZV_cyt$ zg$zCgkw`uBsC zEm1t5^+tIQ(DD_@JH<>ay5{ONdB9)vVg*RqVrtB!D!wM30MHvxxmYVk#RoOxLn%k> zlk~=`;|#ST$IthHunR>{EYSfp3hu+S#T-Sa|5rXncq*_%V^L#*(sG$ja12CK-bM&Q@gki&z*~^`XWU=n|{}5I1Yo*#zIdp z+iaG3kuW*HWRyF!7m!jrpJi-F5^q57$#AI6nD?(XgspCicS3sQ!s2vdhVZU8cdaXF zP0Mr5m5Dz5$Q`j)N=Bt{gKI1NFlEE z2<~%ns3GA_l8?wIm_wuKhj$42WPIk`%spOw)3Q$F z^d0vZ+}@)Qq`B$g>?Qox_cO%YP$UtYqyeb z_>^&Ne_F^HybfG6>v;E|H|>U^KcrB(4@1dS>b5YN^b~=L!ZEd!h^V_6ty)|j#IDz3 z@eArKn~W&V%#i&23rI5S9ttGu$5m&1k^;_D)jPcq_H>BL&j>teJ6#aDiyl}wR53b7 z)Qk^|Wdx1rNZ0eVjuBOkgo|=M!{Lev^>P}-N9!hKG-zo^gJ(9S-r(m#dqQ_&O`nF) zxO)QF-}{axkZOdktW>xi{5a_ykri8azmMsP2&HWQ!Oh;LM8A1*TWBPqIQkX2Hi3JR zsptJd^?U;r2J|Dx#c_W+blMud?KD6_ujM~?O@I5xh<4o`nRTe2_KFRHGzbZ6{&u2q_8bHG0W1vuYZM4-OpizmtKs}vn%&e%nR zAXO58!6r(M+Qmp6Eq$Q8=PWQPN*)zbn4OGo@?Gatsx+ZH{k_ngkj0&ngv}))O0fuc ze&)zKv_aoQM)n!;F-|;n?!k-QuP6FvP7j zQn$TaLa>Xm%(vSY!L^kW&q?(D0nx7Y7gxxa%uQLR01s3cYU8#hLJY`Ekl)@m zDTO20ba(?;-@!e?=KLsQUEN&5>IE#49;Zu!^k z+q>{Nr~%eeOBxTUpF36d%J>+W4o~ZkKtExR@5(|g@lJ_7sDcNlAb^WIsDVKY0V;|m zb)d8Sk;J%|7(0Q6j!Ul5qS8}iPzD|48;FxM8}!ROrR`Y{MJaA+XdWX;rG5ZN3M{1e zg}@bCCF(~-w&@l@0d1Ncr6UUcL#HiOimt4WAxsULt9Hgs^H*t-e;@xvN=o-&BF%o# zdBg`auv7lK`Xw8eO}9f6koGV7|EAv$z-F`|QU8gH75=Zs_kVJjEo_ZV-2Y=w;Q4mi zWJ~S+tnDLBBV3-4&fal-X*$gs@3>iEwz#O@-rgKHC5a3sSwa~H7MR?~`rdu*2KNW) zHD(>(a^^lZHjD(p!`pfF0(i^L@pYI;Btm`n9HHvw`sU^1^zePi)5)!lu)J z5jxh4G%108YfjC!^Qb{wp*_92ULHQ~+?*8Ww?sRo?0nnb-kx5@_v`xHKS9I)(}`S9 z3;lPUOf^fIW_z|uz19Hg#;jl~XG2-j__@|nV}fYE!ngLlMLQxo&%8Y^hoMciVQs*g zBrbtss-?3CocxP%zrI>F^cp-V(EY@7z%>zC1Zu*`D^Vm+3gW+Y`0hf0y{?IMz*c%U8#fj(U;hB;yfK z?WMbd+g~RS)0?;T?H=BV#tb^Hxa6<*nR)^8yrIJn>GeO?MrEEkrZH z2l*rnh$V+S`|}dp`e0kJtq`VQ&U;s*S*=y-^Gy&D;X2joy8c|rJc!i&O3Y@~tw7zv zR15`RA%B5f;=tzrY!PE1iwFDyXQNGSUdt1o=tHX->PR#o>=#=A8n%L3Ot;TO8bk3c zVt?V2m6XB=>jl!(7`#7ITSfsf0Fm}K&3&^%&Q>IJ{cE>Xh!mb>9 zUcGxO^;L!HPB00o_-?uFCLR^ZKtQ9Gd=b_*z(CYPlhLS3M|}0jz@Q+Sgo6S1h!*zm z(v9C$*jTTX7>rbQ77N(mr<&ozWM2Cka9Nmh==QsJ7xIREf5$^NC8po(Huv#tlQqM8?? zLsNP?jt2g!=%+G;A zbFL?-J#Kbc41|jztR0pbhW~QE?+9558>Tk&qor!8MhR`6QwL1)Uf1u@eKS0m>`$zf zhn^2DY_URVrVS$?dnO8Ezf?a`k^{Jlg zQne=+psmknAsswa!0!j9>F68rH`prk%Gw#qB|YVQFqgcQF-Kr;iS4`t@PQ6SA5;!@ zvjGK=%~va(D<-{u8Fm1afQ3`26pS~gm8j#Hr&kc*Jd0O^t^IkrH~BSGUz_@q<+kC?iV+Lk%YcjS;iywSdhKyx_!EJz_&IPo5{6 zAyD-|p#0bRugA4*XJL8`nkIWsq3v#(MR6&Lu@LTn*AduZ#s#o53Ry;jvyaJOBi46q z&;c4a-_G2xng>VNwt=agcMDzW^{$FgAzk7Z_4gqriAEN_2B32y=*~Rc@lY!A zwaN{$AZ6MCCQ*9*_QSK&@LJQ0lP-3|eRIbGAxil%L808^VDv=b&u^|A*riAh3e5>Z z6s0YvBeIx4kyY}v9voj_?8*1_15`@D8PeO20yO%Q1Go&E=n>kx6KiPHqwQs#MM#Ol zYSNIv2Lo>a0h#Nyzy@zzC$L9~T2`0v2mt=jH+ z$?KaKOq{?Z(SN_j;0cdh7|!_=ck1O;W&an?9%?z&{fO z4!UF_Cc2-BQ%oNK^boV6U6K;7ub60Cz1lq$q&orEA?t5ac+eu?u7CqSgndIn1)Xqe zBtpOJq4-=nky&Y9!Ww{k9RVxcQ2PQv5{26H-Qhl0-EeBY0P)XE{Z52XH0hs(BTYq7 zZ7Qa|blB4~UT%k&<>cYI5ppeOgIgV$fJj^hOr5`rDv^*-sLHZ(j|a+^K6m|b7`WV_ zMgt$$9-UY$AO+jV_K|NzqA`B(LPq3!414>Te&#C6nh)V^1eYIg&iQmkIo4BKSm(`7 zzNqfR<|OfzlVY2nD7W834xqQts0AFN{HR3mtYcALbs**Cc?C+Fke`X53ROt-PuKaW ze*_Y&WgT?E`qgcrEo=$RV;YrU)PoGDk6_T6Sa*PvL}!aVn5{PD68Qg3$!~yEQ9giE zS+E6c7o5KD5c)kGY?qr0mV}S|`*Dhjg23u0ENDl>yYun)A{0-)K9WJQ(HQM1P3`uW zf;TBFc9nskMC)`Bs&P55cXmVrQHg1eRwr$(C zZQHhOn>V&?+fKh8_MqprYEpw*b?V#u(7a@Bx@u)e4;2$WbWhSK*k6uq}Z^zl!CHvG30zoF*wSqP!H0nS)7zilF>-ZlH?sF%3b z_=H;|j>PDIUq+&3-ROmi98Q)ixOgTc*OEW->S^hVL7_`L2>&Cuvp4W_)Ktx1KQDBF zyn!zD505xs9~SqcGBAWTB`F1huS@(l5)CPS5&UaXQbvPCBc`=VH0(@_F7;+p7gJb6 zn6?=dEBwi^EzIpFaR{eJXt%TWIXVI?7ko7B9l^9+!+*c4Yx8g%jj`*(VTbv=RMydH zm1FfD)ADg(47APv*(DIy75Z1iLduyN`wh2x)RUT5fOXj1KHjP=?i_I+oBy6uCk>4t z@FA|}aVW#cX@OQSFQ)D%Kz+9DTx_YoqYMB#bYPDpVq{L*zeWR%>R}NvveqVw^@19t zEvli1;Y6}OTu0E#KhQ&ACBkG*)(I`w@Y>9>A)qh4&D&pF;UVK9B?IFL%u0MoNd>-1 z|0Nn3d1dMV_k}x_njypKKtvyeD?Gd0K|%fwnl48KW1-$^qUbpu3G+B8p`cvob8hQ# z0aCGuE1M-5eg;yIK>19#ALK7|5o3sH>dP4dMhqkPPW0hDPX3j-61R|MWw3krkFVJn zgF`8aGc&>XIqW|HakwBg*csR_?BCqrPZ_~lXPI3^QcEH5gCGS`C1e^@>jKd^hNVI@ z0$oJW#uLw7Rh>QellqOw-la9D>QCm=eTIR`SS%m?{Of=Vt{=?NuFcnYt?Tmp$_zdo z(b}}NCJJ$L4QcPJt=W5;>}m}Mihye*NT{1s&#$*i?tBB*CQzx9g=2uG3v$JsVIKLM z>tYl`Ve%W*FCs8!@ruth_|w6n6|b7}EjBl3Onf?ZMf$iJyRbX0)ByNPLXAb0PpTd z-}%RnZa$BTFlJz)%L=j;N(>z##<6P>iQ(9x!GJgFSEg=sNRVknZ5r zP{CyjuQe3hV4fj(L#E+NnDdH)r5=NwA<}Toy9edc`_r>|&{6@~Id3S$MbvcT_&)3M zN#($+Oo3eJENf|mY{t6cGS=N{FVObgM;qB$QCdEi%{6%)3F>PT?Fc}1STo-9Y*t?= zwt>*E)L=eviOiG*uMaC)uVo+}O$^SGp7yHWaBWf0AJp{uN-MnTt^S69hCW(^{%1-f zh3y!uO+7NqDE4oySI_1rf zI7Ze|Dq2?$HZ*^$8PhAzKINGHOvHK3UDDMdylTNo%F$EBUP{$%t&GpXB^>Q@Vb`7BKHw z(_VXOl*ITP?ohCON34#3j*5ce_uSNL^4x1-5W`cjIp0AZs*HBF_jPNP<8fHIL!jr9 zJp^22I(Orj?^9YW|H!;ik07d5n!m0SOhJ_^%lZ?U2k-vPh0_eS z#K}L%z|q&y*ADfjx#d(cl>u4x?vf?;KkAu1b;+=}ZoW%e+V`Q5L?8aR%slaiY=A?7 zVM>@}$Di|unUVMJ?_ODHF54mv-RF!5cc^FO*f!D>ju<)m^}?{q}E z4H1?W@k~0`cd)f?I#Tn`m9_V~ImHRXfR;}EhV(TdN*3xj7?`Tbu9;|TmDW$(bMbKE zZA|3t*kO2uT9VJ4M{Q>#@Jl! zTxsx`GS1W$6+I^>;fyWEmu$((fi=>Bv;sc_8%7VyE*Z|}v6rR3^Qp}m3C#8%Rq~^& zO8!Fwkc$zum3^omDyewm*8;g6eyFf>!xyn~XG~9WO4RW$t z{3hj%i(IIW?{jt)#Kh9m%@ZIm8pVk3$qLI{*BV4G0Fk@iIYCwLSHm_d-$2_qWEMvY zPrO=S^ZK(M5^}%N|2CJ09m*dQf(5$OjexhX7)q*y-HzaX#V&01lX|7RR!0<@dn3wG zsCszX6&7ckr2$0J%WcLl%e-{QKse>PxEUbYVslmd)(`^RJR1zE7X%z#!rP$A}q(Ns!SA z9uoGi2qLPh$j?@&$N+vXkKK{Jc}oM>A2+cKTOZeG6Jq)ceW$;u`=SZJ_-7R$QAGk+62L3#wSl6U@MLKe4B{};^>Te*NQNVu2Ul$Nk;rnutOj8?jTz=%uowd@Wef4Sl zN|o#Br5kO>*DD*XcJ1Ad>^1o`354=rgCr85k7*qJlS`4e0lZry(R~bfL3(-s95J+T z{ALWhb1LdquD+jvfjSFaMUfUufpKmsKt5t(FdM(WGHKco)rZ!?+==0ZZK|cd8q{4y zpFzyDVW<|AC&%Y$mI~R`HanVtaY`u#O|y>zhl4RF*2n%p20LwomMk-l9@wR{6*|lV z;sMf1yF7fVH`#jkUv!TulFlba!lDyW)I`Gka>m(Rsy?d7i9 zP4mcsbBq4o>N3u$E(ZI1yf?6q88Djx5YW~#b?P^enz0-{uY%kF4g%BP@8T{KH}`52 z21nD2g0^F~1yj)7PcO3w%1{c8GNq z*RqhdH}lB3FWX6CRsxF8tS>EFHCD)EHSgsmeJvBsy{fdGCA=>uzxvUTB@cPC-K3)O z?S^D$H%y)81=KA=Pz@%qb^lrlnCWw3t0_BfEj$HA6fbE!a#}rtNn@iJPGQBjbB3>2 zoobl%8oSmih*pQoOLv=$B6N1ErY|051WmC5&b%#bny@F{$zvbY*{lL|tyqHo4{A@= z?m3;H@T+33#gXlHVD}1r#|OFp8==Yp+v|uk0Ri!h{Qm+GYda$YXFEry|4mVStlTz5 zQ}^7yp@l8!`-1~*jvKbG#<1EBrMoE*{wq8%j;od@1XeUp00Qw(&2ats+)_iUga(Uu zTwq>zLZ@gDufJHi?7dv6N!oiFTGZDq^=QZj-86OhF!OeDc63JOref=&*3)GZcrr%K z=5cp-h5q%%{^Fre)VX7N7we5ESYvzV{(C_Km&s&a+qCyy+d&t#XVPJAn?w!MOWh`t z$->bcgrI>&I;T6Y{BFIOd}pI!vd;MzJNTJtGSDuU$KzvrvdrPJ6)KS!F4y~ay9#6W z=VhqsRiiU})JV3NKP*`x~- zR3tL^8+p~##JOwFjtpx!VFjGK;z^pye@^%L;mVyfkL~`;vL#~af-i3R)j2H{$_>>j zzhnDoo2ZvZEcjaSl{*<9&Y)GJ3!~F_k1U&lquI^IfeR7U*(5mcN`vLd z93KF{Ybk<=3vfL(9si1z-&>cDOyr<3k0kb8oF-i4`j zym{rn0R;Nq0y&ZlSpHgLaKvd2lB>XXY^~kgp}BtpoE_t(RNbi`m(>!8p_RWi-f4LS zCz7*I+!=ai=gvw4^;M=}O;AeQIcgfvl-U%2(=qZxZBk?||MS^-g{j!7dNAu8RYj{A zXRt!v6ENT?S*r`w=-)AjiR0?BYeO4I8z7hYJF>#Po2U+)o~pdNmYsg&v+d5i#k<9K4obhs_f z&(E*M>G^&?jiCPW&r_4&hEjzO<`u5C5yZ?CMIAZc?>*6{5yTA6&nMLp^tr!3rRX$6 z|9*7-*!#vD+U_lKd=ZQg#O}@J4Kk*B12{iEmfLov6D+vDZ(IENaJh0Izjf z&lft40U_xqR-M0qPFqpEYPGqiG`T*{uOYU&(%Ih6hx0gjj&9pb8J-S5zoyNj`_MHl zZB?lce0;o;^+0kKjT*=r)YkbmE7FNY@B`^zVwAfI&wT za}x6Ql2tX-+f*D3BU&gwH2jB&-9g1GMKrpj&!;tjOnlRAqD*nT^^84IX2l%tU{Cno zN{yvqY6C8#?Aa5jDnJ75`7)*hIO7aILn& zSf?#wENu0SQn72qt93)IEjH1o*l(Q>G6EIEQ&jc@oHLkihbOoDL#O2^G9&)5ebD-+ zSmJeBLH#2Y*#nV*v!M(iaClCDQb3CWvzQ4;2?6MDtIZPq5V|7Q19`=LL z?$sr6T4Yiu8Vq`?ted7xHBt3Bl))2F;cSwTq!aluuUF1^7R(I`?sgQ?k+mP~Y1URx~c2w*#1?AkB`pp-kY5(pp4Ecj!f$#q?-G;PH%R>{0(-T)mO#Tq$jA` zhm{VwTnj?4MOUH!0x0ThTm4%BMEz`;6=-^_x?UV*Pt)XS2-!>?Fdr~Q@(u_6eC@*9 z2QRKw5v0=rXNwXqNr=26!Q2-sq4@_w%6|y5nr$4K9oJvb^U$zgEYTzp!$rtCVZ)p? zXAfXkn~`Q4^#{!jd>A)r&AV(rKllNy4UF`UCCsaXWPQK@ndLmHP}pdaVJ=Z{G2S(L zJ2AubG<^CgySORGm(p~d7}L#-KUDU7@*VfdQ9eYqdry*D-hUJ1dkP5hm|!KD_xDM?Q@OEB9O~SCr$>9QnYm@RvogZptxS!Fy-* zykJ(*4pAW12|Bsws#v?o=nGXPe{-N@E{s)hUOv?@@?PIFdDdwZchzS;k^eh-Fh=w5 z*ZHH;nPdkzE#93PFgIC;mkU~LqY2Y)h?<&DzvC$Ove5iU0HOXlQUh(JNVG?<*ALB$ zEJLj*HyH}p%0ph?1|KCAp$?01Wu^r`%bb^G4ReI4$MjYbHrp-;jGaEm%JZ7POV<1t zaNM6Iz&a;vW$+kKy8_ae5lmHEje~W6YXiTvoAO1r7P#rrMMzP?{6$lUg|G+-YLSzC zu)gegv;lnhAS~BRv#tdy3()=pNQ@#`32Out_=zg5Ej(B(D|rd^H&()8cH|{qqrnwa z`2!0*p(+|SXOOB-;~A>B4Sc5Mh?V4$>0D~V79(1eG_s8hcUvx`crD%7+)CB8r_qT{ zjwvf(epXwrPwB*gg%wT)qam6>=5j@SE zsgQ0eTfR6++M@Lzv)w1i=8wd^Kair|u^qrw^URL))sQGaQ1Qa8%!%EqX#Bz`x5zQn zlE3(ylRjBN27pP(^Y}w6{z`wvc^P4005EZduK$Yg!!f{&SwKJt^`R-8dZ2JOWxC0g z!T3gO->ETTLxK8JEQXl{9d32X=z=rc6kwg+1=+lML`Gq#`?vO&{=X{&^ARz@GKv>b zRP#bY*vd_sSMi|2bIQD*SgSv_IuTD_Ap)iAUXC1+P|5xYlaLkCH5pHNA)7suNrzpl zfGS8;LpNO?Vn87RrrN~<$dUCo=+j>gf`KEzvgDhQdr;h?Dxna(iG^e_OyQ3WGN0%d z*WMpXCUXHYZMmg})cvIPbiFjPy`$0z^!&XcuKFIWW5an7n&bRCdUc}>pVaZ-6Cjx% zkIVVk<;n7hdoQhxIqTUVwdK~7AP*jszTFORtRPRNqCdD9mR);s)OPggV7m`kqDSJ< zs8<{#U@D(foR8P1 zmjBDL@+!zd8`yfU4kbz@!rw7f+H z!lx+GL0Sd;{O71{je97skAsevl=1DI$kIUs{%JOhlZ*~8V?CQ2go;OxsCgO#8Ns#> z!NnL8!lAkhiwtTGjxE7`aX6uMS#byiY8R95yewkqdYY>tt z>+r`TADg>Xu@2i2!rAJd1oU3kN_s4Zp;e!5^jw|i6*#1U`PU#2K)}USgA}Vf zx1P|XhJZkBs?D`<0p^2Zv0d-1%vakjAYtuf@pm**3*I%!aB8g4fp2{La~h{aTV`Lp9ictg8HD*Aoo=pXp%? z;BTNa7CwnCbB`SVkchW^QMQ_yZs2jd1v zgq0E9ECeskji^1nBs1LO^OxhZU{N~I;M4dC3&n1CGf)!U+;Yi%v}$Di zSmpIBEQeCwTD(rej;e=pp!033m89B{WK*{?r)T7pDAP1X2g0Mb=_92&=?F{N0Gb64 zRDEcoV$0@YTscUG&EaD2`tJodO{I6(Lj(-I2r2sIoOJ=ux1HU`UE=5KGgfG~+?z2# zkS;hD+e~eh5#gjrSwMBe8gBu}&dR;eyu(umqw^xWLC_axxKcj8YfY@@;$F!C!+#{Q zysSZv`^i~r?}@G0;ymwr4N5M&COE18tl!?F08~fB<_BR_kw!#qalyVFKb}$9!bq}k z>=+!{>9*VLfFYg%H|E7T^!ah^lirpB2?KerztB_zK5_nv3Sx zqzC_WsCJ1F0kI&!iFvS4=etdgW{WRupxZ5>%7Mc2>~B-Pho1=mWF%hk znLukcJ!ppMbeawo&Zm0I8Epr+en5wKQSP3o&GAuhZqtp3ZT|d+>ja)5I@0o|*nUJT zFL#+BKu`$w?_yLx)+WBgHW5e_fH8#IF?7~8?mcZEBw|MDGtp~}aadN|a>TRk7ria| z>I#%-ZE%OvE8qpO;fm{@1kXxP8qi`=hJ96tE<1?xL20KR@QN#jlMcZ| zBG6xiOp?t5iz0Rdan3^qVwc-dWTOiajOZxk4RWwu^+jz8!R3G9rZ-QRc$uP6dYw!2`M@#@Ly9t@$uhtx2lecscR0}QBNcbn^ zD#JR!i*VN6-g*4SSb{Y&w!Srg9K22Rj-`==pLx&kATMN+ zGcCLsF(~=E{eNpj#+EPc9{%{g+S4>YFQ^j}A#OpScSkJxH5EV2*b`{=J(>olr3@m> z6}8V`LluT^P)%i;vqUDbwA5H+60DOarEWJ=KBsWlLMgkFxd0`@GmEaaMaFXfQU^TW zY{E~ji&%jfsmEH7Q=_Q`iCDx9ofX-x?2RIW8h(WvRG-|G4QvWnP)-thV)9{zhzDj> zcgg~K9B`iOQ^Zbzm#`u7Ak5xQLB2ljDV@6vrba=(&DGS*?R0fw91v=|M|R~({CCc9 ztb3>&jKa(KVuEh9PS^Ve#&uPV!WA&vey=rUK|G{2d ze|2uwwlq4mkkpPkK+LNqwB8E0iH({?WvTFNCN%$E=EmsDc_7!Tm>A6UKpz*jq2V>} zfl52CrJ$6~`zD@gcp#}XwBc>G#t)i{g3kANqQ;{2GfouHB-$0V!xgB-KgBlI<2X?? zN7{TsoFK+ftC*m2L(h-{a}p&S#`{uy#iLOOQ}+wkL)mB@1rz%*6n5da;q@;Vj%b!# zqD6(kXf<|c)LpoqBu^SjQf@SG+sOx4q;>;N;Ht!iIR!Wry?g$h4KRy&>^q=)_~qbZA`n zkHLR-Ht}=o463zrg!gAy*IvQ;k2pg%;xKB4H!qN_HTyjy@AI{CcE+i z`d)AX{rlx2yo+Zuv0`woFQFOI3?kov5xBmuirT5?-gR=Uqu49^J)AXlIn+0{Z!nQRntws|36ZpZmgGhCZ=!+UgLF`C@J!LKa7okW<_;~ zNMNk?#0;ap>o|A4Jnr@wd$AQ`woCE7b7UqJax6zSURO6b6ORK**rKj`qE4Bc+*M zMlR(FO$cK;z?Jq15U6K|Bx(|fW$bhZ~ z>f5W&H(b)E|Ch48`i1o)s_ren9o4Ls`gSn4*1x`swyL@HqCBlXlAg|sdS&w&n}^qw z$K$k_3?FupKN2-PHvfA6bfnODqKY2h*~Da%YEfy=Ng>@Q65-ihJ;n12_(H)K_!`L` zh7f$w{-MyU{_TnY*zL>~gn{$yG3?1p&>QH*!voi14SMMJ@!|9Kh8nIxR~6H-=?1PxH?GFT9ThcD0NWpas zF(EI6kYDE+{S^M>zjRe%?0}6p2<#%HHBuNRR68zBdRKB$k(Subt61$O2q}bfeorJ~ zhc05mZF=Pep%DpB41vTQo#5g=75Cz8CLwQ)=0Igep14}S`I*=>rz~x)q4UNYA+R`$ zo+l?QA@Su6ZI0;0SEqN^{LghC`YOJB42phs+w(VY2&%s=wahi0Y>-8%P^u*bxBV-t z`Ei~x+%a>f;GPIxW$kw3&=&3(#iie+xevC%R4S;z6BKp{sX)g{ZOI7xQW%FW<3h^` z=q-~ynou=Eb_!AxU4$J9`#lWXn8%-2_iz2Ukv9}R%wwM05iq;k6HKQKN^gX4%X*Uo z5wZm!osqM^Ik>rBM5@e?7qwp}{&x)bOD5N<;OB`^(SvdP3FC_Q>sU+MhjYMxm-FcS z5mFQis8J~VWGK?u!?hveycP=kEB8V%I7KeePC$or9!Tq4%c!3UCsNn7c*92%5G^0I zw%E>Q(cIgGbf@YV4Fq(z%CFsE?f&UuqZ#{n>zG6x5>7@4onE@6o=7AKOyX?WNjE9) zrM%Q_sbC_O&O*foXb`l?bD;2VLgr1Sp=kX$SI> zri29r8HPIh3B{frtfEQ-oO-2WYUl8=nFOPRYoT94HMky^e@Q(#kCAkE7Im68lob|7 z=gZmqW$*k&m&|7NpMa5VpUdN(vD^Kr(^sc|a{lt8XdXjsEf54o&U3B)ZYc~5MpwN) zme~K~dYK|e*XQEpf*A$b87g#)BP-DD?Ud~IJpsvEvV!*NN=|;?$s5jxA=C*8U(Xjw zK_RqtAfu!Gu z9zo2l+>htaNZ$y>YiXTcA6L)PdOPG`ABV-_QzGFvfg$5W^a^zfS_10IF)DU5s0s>eJzDlk~I>v>Ud(@qRJTarysH=_=HlPPYFr zsP2bVN2?E9J0sjQ_41gumm>ybkM4d_`g$60IxZq{OR0=`^r4=@dZ#%sBre0{Zv*!T z@2tM;3_adb`riBd+r0D;KGr^ObWT&!BxD>To1iiMX?g-K&Wrrd{3csP%>`!H)n$Fm z%+P`M9FZzx9x0SP5CQkwot~z)vv?pUcE#jheU^(D6=Jf8R|NenRrJ{3Df3Om2Q>Ta zT^EVX0nAs$c?b&Qa+C|l!WUV8HS`z=D|aL1fqyv)ShCDenNbjFYxKdHIh!*ceVtE< zt@*mpKJZ*W_*QiUi(LObV5``dPkhr&5gixmP(Z{#)LUpT0Jm7Dpf$(Yd^3YhpS!Tkyw{m#S;xTD5>scaxgRaf4j?7#}DKIsx4^Ru~31k3~c+s zjyZ{8mNJ?0lS+cp=g?rrGG-_f_t?K&Uyo>#cw0!I*DuCnTC6T)0?K-7$V(S#mt)e zQuAB$Ul>p=oNo+4xa~OLZJ0bOe%~J8wMkZTaH}<0{Bn!r&S%wGXdXi8sYyS`$#9r# z-esr6yz$-b$~I^u%GOE2Bj5QC=;LvYDFKW1GojvDq%p2wLSyb`m-=6B@3E^W9=?H1 zUC0ToaK6^1)8_waBmzOki#skI&E`x}M~M$41%zX0 z>A&H`OwCSI-c3pt=zdzMw2$ihbx!M&$EMLkH_hp`6-p3F<*7daU^%wVdz6m)~L7Ma6k z!%0Xt&9eHDHQrq<*uD zKD)-*xs0=XZqQTG9EW7#YIJG$-Qp950kDQ|uxh~1NXZt!s*`-ZGk@)+fZ4FU z*swO&`GJd=|GD_tmMqE>g(-179Y)o(3?WN6I@Ft-F>*$?Fy9}>JHmtS35kWN=JGnI zL|NzPa1(MG9e-3qdzU;A%PzulfI#SJ#3rrk2Of{STw5gf$^L$=ceVNbSbwZj+$LJa zWX$d2q0?)Hv@!I?&FGxD}Cw)I%l_6|Qy zT=_tr>BE$ftHjGbJ5Zb4d+&o8nc`i&2y#?kL4uG@aHKR7U?5$#N{&Ie{Ai zKGXiInu}&vm`tq|*paGIiX&l?_?Rup{K&guHs3s1;dB9;2`zETz&XccVjFH6{kU|( z`e2Z=n|0OLC{vjszwpo~{8uliDAOyk_uZlJGAt33;%{Ly4lZ2@ySfc!9DG9se9iQ&ZCO)x2eEt)vAauSEqgV+|t**>~Y7_QM}bdeO$ z+k$kP#5q}6@d%9TV`(^PRMpz_f>7o`-EgmjCfKoI3?;H>Uo#jrgsZg|GzDDtSAc@ToredRCy-Q0Nu!+G+QOUDc%@L6$me1ey< zsr{d~bY+-23(EI4*^xH?TeqA!{2QTk2SUm;kb;h=4`c%Zv&is4DCfKVv6$&$+!rz% zaV1XTiLxNTDfDir4&HyFw;x}1v}#h;nF`pTpJxk(Qk|fGRH<`r265vw_0v5So9ZIi zOfqkCJ?!PiB$_57rB;BWL_+27`yAK6SSlPMrjl-p9?)(rp)49nSe$jlgyig_@a-Cu zp(C&r=|(&yrCWynmrmod)mDZa5MOw(P*`)2cJiD%>ub7I$s;DG8ooN&$%X+R4%yTU z7gYqeGp`};a3s1-T=D;oB?ou>j|y`9i?eh^+U|3%^N?AA+jatv{tVOBUD+}gx2ve3 zNO@li{tGUXRSoPGOFfpa92Zh+fi#TRI|)$gbXS>)QtLzhrccy&28-u4sz`1ogBM2A zCdFjr`HXm7K%js@n>&p3L_@>Tz06LsN2G9lbSP3^cmX~CcR0!DJ$N~h=q)phvC1LvF?sk#1j zNgIygIKCgu?vJ0zTZy9Fa+<5eo%a6g0@W1qO>_h!rFK`v)lF7TA%2+EJxX<~*AqLb zrNM;b0B>+|Vk|iaW>0}KBMyP87wyV?;9*O+nlZ$hkr-8*7#5_fyIjd%t7#P2(Apb5nTu`at3gW_;!`!*^UQLky>d6TwN_a=zC%r{ ztrVz;s5Dj+tk_4+>Aw>hl{Z<3+lL8pr_^ks|8n3x!FH`eUR^>)$r~MlXYN&C$zyDz zT;i5H))f?NGoNPW;If9$TKXig?(p?fGcSM(H#gU=p@`SsvO297Q1pV3aD3Tc#l zDg{m*xj0g71ql#sNOg^GBRRW;S@fQrvGQ&P0(S~6?>|M$TqC_iDM*y%Lyw!T=&MxJ zHm5NvUrhX?kx3|0oQqIphZx8{A`Lubg`Z#n#a2q6Ij)$QWUE-zY-ugpLQM_$x!^?@ zqD!iJ=em_jaY%lpv2o?-;HH5?T4cDkvo7Us<{aAlbX(^`@-M*XgrlYr4KAm=nIVdh zG-0n6!MC@5VoYb8xl$n60+(76UW&X2LF{-+#d{E^0~83n>sfq*;eUQ6pnw1)a(=|1 zE&|kU7q#PvJAEGB+Vq>b7ORcXG{Lo$Orpoba=))|RcaJ=Vf$xj*mi#!x9?2Dv~RGY z>NVsY!D*d2RmCjyw(=+MoESU@Hu(D9&gYNA;tHekc>BK0pWX@1ZPESQ^Hw2Sd9+F$ z#m4Ch#tc0Cd@08U5Wa<$anYIEF`oKgg0ZlZwncFgHLfB6EP;E``9gc0Junjvrg{s< zD*9Ep_N~cQ_P83?+CZW^G0MP0?MqWoyAQ%_4U)f~pbSJbB!Lpd8`t;>yncz!eN=LS zcG2V$46R01hYs{ z>KbhcEx0P4;`PBTJEk@->GRxFjR=Hn8&{~SHK*bRohoYzzETsosWgVW15vkY~F#N zW~t^TF*6VB2!?t2@h`xJLZs-nlJ)u zm0sKh#J&23lU}|zs4-DGDJc;4%~Bvf?;SNvq&Rnoa@set3}LcuPb$=NntOj`V z+!Ha`?V0Z1@UW9V$en4W-JS!k2gRwRy=Y%MalbDr?4A}u{)E9iS6lYI%x58LV@$t( z;!qXw5G)sQMWJxgX6}fES*RMEQ69sK^2k%UcuAZJsXVw9;eo~L#M_4bAjXR2(mHY` zM$J8QHp-O;=B{pXga!hwUSO1R+VVSZYW6 z5UMqn0q2_x1YM7|wgj!v*6g$+OD{bjMjV^04HTx8w^aFgenNb>{K}$zN?4qzUGWR| zf7Tw?t}eYcNc(!l{w<O6+ESw;fBzs2cHx^rau_ew=41(Uiyc-{riJtIa1*duqB z8B9^dRfzg=azpTLZ!>^)UcZh^o7}V&#}|nWgZS z2XXi)zo>6ZZ;aFs^uzY^<~giqIpvw9R5E zkK6|nZUKNe4y&bs4$-5(3y%!$vpTPUMd?aBxvChCYRomMs9wNN+Qw_Nyz@u!)!T&6 zSpY3qM(_zt&iYWDwD6B%3EK;7lJG?N{odW7jT7Wn8%@F6J9__PRBS!Usx0@7^$03FFW^>>fbwTUzHczL)flV9Tukko;*E#drav; zVFtXd5Nqc^0vo3h@KcwBp##5sZ6S{7oqI8kDCM`-GK0+06v(O1K5?t9o5Q2sBV(+S zV+0Y(P@<^i8IL)N9cR$dIpms>F~vsI@dHsxxztW7K&A9l`a1)$vU|tQRM^swk7ct# zax=UzH;-j<_`_nd_8ijn|HPjRV>?dg4qqP46b^n;&qv!`nZSCPm?x&KWC7ttdERWBDs<%z2MJW*VwybU)Gr8Bd>JGuIjj2BCv z65$m#+G@?Kd|cUMv6%omlYn_oSe{OxOuL1~5{`V@`kyvKXwfU>l6_}2$+|>ud2CvB zjMm5`GB@x`R&rLEA>tO7pl;^I$IN34U()0!U{udGz8JotAnfX-&}ITavsmzUg(cmX zdK^6{DuFC!i2z*cI^H>|Hjx(6H8{D-$ga*z+n60xEflr6Gp@ss^mlo&P3^R9M6a>w zKa~n)+&bAc05Bs~2*71C9W30^u|Mj6iEm9LQ8)l#)EX9dxpF2^nm*I;MG(6^*?LVi zKctu#bn5SmzRtbpiFuwfL|BH_%P_p-n$m zwrYQ%H&@Vi>C^5XhX$8s^{XiNF_;=qc7RewdRkGGmnjvR!JLZJ(-DV_`bTbOS0ZEU zgzwFeIxkwasqFa!E~=T%*##j^U~>6*|R<33jztJ&QTJO z`dUW^Y%(pu+P%qX`lFDZ1S8WN5YwT_eKYuNV)ZJU(Y#$W;?`+E+b$CEU&a>@iKROJbN7UsHz@D4mmeFT?O{-qV@m@<<%F z9<8BZ#x+o!JKj3Flsh%RVB?bew{CZkv|&1UG;UQRoTyNFzGncJsT@pCdO*xt+t72n zMdNd+0kD)mLzI3OZgxrup?<@R!P#y|XY|kY{utpz9VM*rwRXk8-SfVhnkBcI+FTfRk+r0>uU)C%N4Ed@Dn_WI0bQ*nC>l)#J3Y|eJetRHYaL+NuAD^jf z`WXkus_=0GhTxgb_>_pPFa){zFkl8+!+5sj*jXN={4OaBuY`!Y;o2scT%!y6KDw+rprONBZHt@Q<7b_quppwy|r*(4Mxi7q9Sv5HL zXS&vvSOb@J(_-}>0h>j4Yl;a5LaVsr^?Ri^vQ)k-`M6<0nVRKU)QVWD6Nd>m zYN<@CLtY2hU4(PT*pf(TV2v)6?2^Kud5?3I6JjLC2QS z=*S-EBYPTdq*w8ECF8i)(vkTFs20I)gkwf1XwD3pxgjmJs`)DyN607Au`vg88I2V<1Ls^h?~LA%`DVv#JZwSp^2z%PO%zSbXM%!9CCb)vVj3v2DE8vy6IJaK?Dk(L?IA$bdWM)%)vBxU)+Kj%p!HKEO7pE zFa0&5)eIv((WkpSQT{`+erROjNBo2VMyWve+hv?Jq4I=%oTNL>)ih@9vvVF~%skLJdEE4aVgM8d`5!Qv1lcuft^PIUbT@7N1>92I)Z?6!N+PQJ4D3xRr? z4+`(2rL+6k^Oy@MYYel((Q|SaLE}tsQ>m9)naxCVavExrr6F@uW(6??wGwB@nxin~ zj>;eb<=ZTN>LFUG8^{k*hGV5kX<-v&rx?#ArG}1OHDB%?s5u;c%X)EB-vM9wflNUC zi7h&-w>mw~tMlaHddj|i4uU&2c%n4BEM%m}O*_6dpG2)XmeB}0JrMHbkB--w;f4d0 ze3q(Cs_sr;2DQ4IBAMj}r8Uh(Y~le!Bi<>x2yaMt1a?Vq$vO^OTe&SB%ANGhGD

    opD~2-Hq;klsB^StI3ZE8UZaQS@i;Fep7S#G*Eg@TW?Rf;X{Eljf zN-V<4;fmrpvvP(IlZ}rWHm$=L^b7nNGA5$$Y=&#@6T|Mk0k<*_ML80N4V$xc252iV zc?t5dyxUa|dieZ|dfM?{Bxo1vIc5XXs^l^evR77@7v1EJO=ai049v5!9czI`e>wLw z|CH+Oy+MgM8I)b+v-;e=1N(lJfPnl{PoS|mEjxj$%@+Gme4=25v?hdq>IvrSx2Gur z%%KG8_)e54w}#lIl(R!?8DJwcp8At-&aLfaNqR~fgty2dMQKCZmruq#il60PZ{cHi zGTi;%x6}>Gi-+nB+|)cx?9o+jsf(lf&D}e&bzD2zi7jZP=E}otCHHHvpNQOoe$1rz zGGH}$>Qii6q9mIE6^QFW{h|GCQ!4Y|ONyH2XDDC3l%ET#J4r_~%J0dImDoD{{!8uz zGfIcw?6z%UjLqrjX(G8|73lQPF--m7*8Cf$GQ&n&IXtzFmBS1N?aiRwzAQt_#*i*dV7 z@Ic7jV-5!ZC7xkqI*3zWkj5eME)?`}_HlHtYU;A%!Or=`GC8p@Dz!*7V)|fY4Jh_{M=JHq^2BkDEQ$(wnsH1sMp(4*>V>lC zSl_xtt=vI;RmsfY4CRn^5Vtrinvid|dcE-!eGekD3iXQk85z|M8hu`^dnV0|yb5g^ zAh1s*>dzX)qWSLlzvxWN59l-EN$c}Eq>jSl(qfJ&j|+5}Rq8-yAsNE3*UF?#S_;WZ z>OHtIqKi~=i|5JLO>sL=vxyz@C2l;}M52ZM20@zbh{s;ok7bL|b;His(f+5|It?At zN*(BoSvD-=)Tc=Czj$1nUVNGOxjlYV8Nj^b-wSg3i!i}ve?vJn7 zkWvPA!UrIX?dK96swEeY9U!KW-8`sas^D1q6iU<+=musLQH3c64m@&g?XPL+ku|8m zxkJD*1gF*M1#qo`fw_P&3C)l&=hM`u)}1qrB{*_EB#WKqaBGKuDyD)3R%+XJq znj!YrpkJSK?^6dhjnM@FeS=AA0stE~2zIlC1O^<06XEcHB|uu7@s%5fXCggj4EFW@ z@Bg=0 z3HencBo+_ZDl33&$O#7cbRBAA{89`a(YmVQxl35XMuImsDnYsr*Y;i(gdrVC z)4w@6$#KvdC&aKRrtvhuYcCBE6aj>3VolaxR)(-=XXRhMHslJbOdJD&4yv4Nnd9&0 z$Ri(Sti7R9vgrzw158KpPxX15pvLye3ToI6r?kSWV>MO+-Z0PdNsbdHxcGF6Gn`CZ z8W4H;Uh8{N79xBtyFx-`e>iw0mUV7^aOIafx6;PpT02=KAtOenc4e4S!=K&Orp8bG zv=DnBXq4u5990Z*uH6QQs|3=Bu?nr%OrLu@S(xKDO-jINwW7t6wfk@m=kiMogv`4ujC!@J^ zGoX_X#S$o5RH^1cKYP^ka!(89ENE9uB|;+tkW-T>K|eO)k-;QvLYQIWoP?3JSuSsS z9|O5vsQS1DW79_UB}YCc*!3T*?7k&T#AsGkN%bPe4&sV30aCdi7%;+8iZl=_vM~5= zvbz7o#K6TvS5edy!-PM|;D5jFj~7ieQ{HzUPwJxiNXl%Xjp{sg1-xpFR73%NLna-P zZu{EyZ4Fq)JjdzX0C|;G!!QtJu)ypSmEP4eGAbdu`P6IGnll1K`-^M)v&q0v?}DHM z=|D{jzMB+^4$x?oZo$zWJcC$sL$o|PPchJ7D3A;hZvc>T8J;Ebp3Hbw4xk);@v-TQ z5nmXT(xpgA(Qb=6@sg;q~I)!M7Y))8--9l**u<@1EzLa#Y#_}5t8Y7#_dTx?#1F3)2G|PY0E%?X>M4}-!|KyYZ!pWQ zLN$}q7o*yNvliTr<3kWnZ_4w&Qz^gi(HCQQd1#{-7HU_L(TTsTOj0|r$?!se=7arW z{d8_uohR(=gHRpzQyj%9zWP02Zlp|#>O#WIy89?)HIP&ICGX7_mvz@rmtR-v=bV_J96pQh0 z62j@Or2DUX@VZ8c@RlKoFV!%mtQ$pX`e?I-a;(+!&2{8X0kR@Pf}q9QpW}7<`@FRz z>KJVn>r(2iaU*QS?{6dtu~-R!jq(_{vQZ1Tf1~&+j@Px{*@5=#?d(K#A{3f5hvts^ z{6euCk&D8XiYX5btbCW=nJ%`E-`8)4Mb!Gg7$xG!Y^LJvqEucF{s58V8ThowpC=Ui z7<+8B#2IH0ZZmJ;3N#ypDjtf4j#}w6@Y3;mf4R}ZW=+K^(I9K;&v(1pQ9J9!vZebf z<3C&co_W?PQI+khta-lvr=rcp#Xq^x9a#q{6TOBsAO27IH^DPu78Ezm^)SOa7!P{g zH9fsvQv;0G?n!_=zRt9c;M`kR1#p1&LXU65yH8J!R)iz4WGC?rzM(|?-+!t8%X)sG zMwT@f4xsM#xID2D^mk^5KdvjLt4TlnN&y^72u1^TeU8y5FRElMw3g6in}DB$21t)4 z)@{ab|3o%xyma6r>1FG$$*j55;ZVO_7KJhAUH{U{EeO#LZO=0gh4j193>1=SQJx+m z#9I!VoP{Uoby`3=*)Lgt^y0XLSaBqM1#nqn^D(o3vPs>LRcy-}GDZ=>e;yYeKvGf4 zhCTv#MxRJ)_=}xpu5+dKb@c%|Ag;2qR_@% zf}KT+vAZh3Uf*ntJn1FUq*}cY*A)6doCb?sUk@6LJm6r1QW#zar4pE)axYL2ye!;s zR&8bqsrMv?c)`aKkyhv3hJKt@^uDb`<;|89GkW(0;fw{GG3)N@hnp|kYdfEo3mCB_ zmDto%9r)kO7qld?RZ@jbiw}c&WpsRwoP!}JnOWj(`moaQQ!2a&R9P#^NP}c>cvjV?WpLYuhMw=hvzZZAQ9|cdByZu_ zOM@ofb{zdj>uv)$%~1$KJ%rnUFaEMjqzE&=A=MxJggnF}sG>&!bU2%A-!QG^TTnAl zpI>2lJkCWY=DuFj^D}WzDwtS{i+z_4EUdNh+iEcmd@tR#^MW|O>ij?pud$_9C$qWn z(|F^m#Wk<`z>7+@^M6-%Tok4uy#~eDwd?B8`tpQ%kHhoYAKd8OcYt%ui)`+HF0>Uk zDhHu2ERmbT`dnyp>f!&c9eP9zS%bA;ISa0~75QBYt#<0{@=_mnEKFg0?FHrf^b}1M z3n}Tp7wEkF?{hD74R-#W0{(f4R+j$eYEpHY1Rj_C>7N&RIDG;{8^N`dyKnsbx2LZZUA^DIN-;{Gyw0(zpPxuS3%TL_dK3#Ti6m_DzQzv#OW~XC zg)=ouyG-eLsh|OhpZ+ztT=uudTTuseS7N*nZuV5u8~su*Lj5RK93e3=Jp5r1^mevR zRw4igCHckeR>trTE)J@$nHblB)iwpRo!nZINj?%AXG8|fd30izGfvyOBC+jjRM^>5 zRYyAp2BRBZ;L)It$L3^)W&U z*()vKe7us>rfTXwjPd~h`*bKGadf}#(x`n^UT9x)Ff-I##U+9ls_?DLF zdjf0_rLn~g4q`UBkHRSkUe@PbE9`<9>AKCEE$GDkb{Vl)TE7nhwXm!$+gbNEubxeL zDjl<-{rz3CCr(i>Y0S*;e&sZSn=``st3m)r$Z7^7%4Uc3#7aF~Hol29_%w#R@+nD8 zez`(g+v<`32#r5c$+(qn6~F7O>8>1X$cVjek3vl})~h-AF)v3{;M)%qezWs{)zFYQ zz$T6dN65T&#e=d`Hz%z4&M#T#NFLYzMUU>liBuw@8<5#ujBS_@lh$>u_lkR^E&De0 zuA!Iz4!O!*E!mqFvO)v?HUh%g=5%e)3$@7;FzzGH z*RApo=l(UppQOAgo2R(F+nVsop%Jf#xDX6~X@8cZb7AqFCq@bpRzU zt#I~3CO7d><$PV z{I_odsNZ*wYK2l2j`q(E^TT;wYat%HVO36<=`ra%Gtv^yt6o1*et*q;0-uX^--Z}- zt4Wl&277dze(kP~Z(AGnQv-QZ`S@oHzO7I9?|tiLOwZ09dEbh&M~70-jb0u5PLORlS=MU+{6G zn#MvWjkJTr4bzS#sm7SAD{scMDw9g27SCcwpR;E%I z3$RqKn!L8Hz!+I(6&K_qUlu^Ky!Di8PP~=C?##^&$b_k2GW2#~Li_!K*^W2Gz{?w*;k!M5^KU1GFm+wMsKxd<_;kVYS7~mKH4rb zt<`G4j@@2NkkGYjX+z!9fO|L9#*!bxI%24|C%l|G2_%q8oNsu_|8j}mx&Q|S6pcPu zouVXIg@%#V_OvpEDHYYIiwFsy&@ z5W~g6sp+b)-6JV;>D!5LUEk|s3Jk>V&mQ2!i=!-I*6@4vqeYO7^oS_;&x&Kq;7D#6 zVdJ*}*?tlEEj-c-G34|PpOp0$?kT!Gjm~F?Kwi2Hs!3VEC`D(~%}4}^!Sdya3cQl) zs_n)({Zf%F6!}@gal`0W(1)G7{_A1!O_mC&rixTj>IJ9u{lC;tfMa3K1etTugyceE zULX`m7@kuNN;7jN*4vssEu=A%)Cy^oL9#I(ih{xm#%tl^ zjUoKzmwZd(n3``OR%%Ra+PRe<-q||^H>VB*1J(3y*9gT9@#yEVhXlyg#$U;k{ zx%E>{Mga21@7@g+Di0l z^&hvad~NIGr@0ZQX{?!xI|An_K|pu52=9!d*IptOYm9fmmOL(hyokalMab4(R}{%e3ZGKw{X6J4RIbohr|Z+?D6Fc$x8lRT z(V_E8yJkZ(Y>(`Mp+O~&O+nmXGom$4NV=cjBdg0ZUz@zKFatX6A^Y7>S}ea1^wc1R zlkb7!2{^Q?kfHM>jV~gTfz@iQymn-Z3gd^i^akd%n|O2KJfU7+F{1tb8EGft6>o*T zQtlZ;a$5PZy%S~^N9<_dk9e&3U{U+pPXYv<{h6A=j8!%?{6vm@LV=@IhZ{qmA-Q!J`njC=HP2;eS4RR-k)8| zB^}u0uy7;~rH&UXTa32QDkl{9g{@M3DsvJ?DeE3;YiGD!3qwj@!u9~;HhchJPs((z zLdpr_F+bl(+<>Tw^fYV&uI_GTA7H@Z*140dI8(rFjVEDIw(FqQGmssBaY#~gf1zXM z!2W^#e?H`dz%Z@_!~g(vY5$)T-Nf0z*udG~f1{ju{oJ-kWB#s`q-#DCuC8rqS9-c^ ztE^DHa?TB>d=s-dRFpF{V@XuIjzfNNg^}Kw_)<%&yg9h{&F#h8_ zZCO7X51X2#qNgFZTGEOBg~+wGwzY0NIeMs_q^ZG1<-xDtF6HRBI*x2?b)8nytUGut zY?q>%(NC!)l*s6!8J#;%b9%YldwaU`;IiXmr=nqc{hr<*pYKn(k=w<_J`grb2rLF=+CXQZH41K!tpBmuQ2>m;XOS!K-DE=lP&wJo*1xLaMhw`ixTC^b3rnL$?# z5ru?3%)Vd5-$c9J^LGgg8Mu8XKg3Dtp0MnDGl;^p(p5SRBpw^CR8!@W(C86pw^BJ0 zK+2tZ3{^Sn+SyE?zdNf&*?K3OI;|KDTwyUt-^(~A%ynEov~|)f-#tA(BAr+NR==;N z0mIu>&&`$Ln|Vk4!vu0<@2)&pBT29^J2A{)s~mGs0vr!w7gk-elW=M~eu-!O zHWKce(v52F1QV##((Rv4MYTJ=QZYIO;;nLCB{_4OVC}hqhFTvqV#}Fl#(Gaf19lsf5!@|#b~HbJ7a2J>IYsoxJ=cqhq8&Eeb=XN^2hChs z=-r^1{Y1qvE$EOm`(({~0yFR2dnn$j?Mzy}W!=FQc2WP+25x9Yq%&m=TAf2uf2ZGe z-LNDMiw&#s{F+sl7&Me-mw0jT#7++f*XQ^jP%pDL8xL1TkK#6b);`^Wuozxzr9QI# zLIFyk4)N8nJ?)Yfo+%nPp*a#_B~tGmszU(De7ct|?c0zwZ?9nsCwQ2%dQL@C`w=E{ zC^JxB--PjKy#Bgv&NpnSE<_oS0;hj_N7rG!VCS3|ioh5k;CN-=AQ=m%Th296$6d)` zv&`Qc=SQC5;b~}Yq2C7P@7YCv-S=%n_VH2w^KyidC5m-GEHNy8G^{@AUhisQ%VRTN zAUafQ`X?e*4LTmoZT%9o&P+wN8qxe6w(q~S%<9opy){#P}ERO+X#aAO02 z!7A_3sLUaj*2KMAp0AQK!Zj;ntRE#)aN4{hylFua`9Ab|i!+nVm|fhS!M?rhwUcc2 zZa4rBtrT{TQOFo#!f8vHy0tH{J%BdE0U83_9!>Y=Fv|lGBc89FzKzUo*#q;Szo-xf zzY4h3N)I1)?O{a8m3ztGm^rK!UD^a|+trGyK41D~yt1ih;_NjMuC*#tr_s&?pnRWQ zb2)mJ_xX}Kc#?m1Sv284O*?<@ez{-#BTgV3eG=HVXcIxj@-w1(NDFZuO`5Shvj6f$ zz#(FOP+DYWXy~fi?(aQex60qOJJDEiJpNXwhe}!P4g-FyyETE99@n{YhVEu6)*f`F z_V2x#v;ZnDzLJW3(s_jDN!0`J$5J}M}#ieEuW$Fn>2)}s9TrBO}rq$?&$MDzlZTcT1P0 z>Kz6!M#$IEQNNmKS(!Hc7ey(Kc}DdiX)o6Y5z+s(M99tQbN6t6pWe^7h1EB~O$EYh z2luO6J`N6ojNz6^6=N+L5Y%g=65!08X)ol-6Z_&ofnh_%VnU&DAosKaPC=mo8w-Gd zX}W}A`OR<=QQojEzeP0~OrgN2GuQzLpZLcMZ#=z4K*is429D?S2<(ClBIvolcPZcN z#!>fD*!6=500h-8(8y@Uwmx+f-8@H|I{)L`ygiF;-QvwG!JRkn%9EPVDJ(vYa%Dag z=BToIB~HI_hp|F#R86#>jamoh7iefYiomJcxmaQzh(9MW>SJ20!oF03t|V^IUK2Uy z1mBNmVn*$z&%o>OQaR=yd{tH~M5Bn1Sk(`{rSM`Cx6y>rQ{51q?C;++@#6Jfgq$jG z!CJL_Oul)s7euF#vco730coK@Q^KvMpVsSI)nnN9|7mNg_mR5y=|HlL>PFDz9ERnM z>kF9p1M`U$(#|yLIJu_kIUq4NRU<7AIWP9+`uB&#NqwMqPOinwHrO@~N;WxL^_Yn+ zP1ULxn^T7cc6sG8WBYU(iBl+}F>3`r2v^HK-v3-W&3raP=l?No1&cCpVE)u?p-*L@ znz(8GGN4hS5jvX>70a4ic%@to3=$LWZTy6^?%aWN=<)Qiy zRv&z3@i2BpiZAGgGYQ5zDh>~Q#&dv>-Ig6@hL;7}ZVVbde#ex3*_0g#CqI`!xG2%X z(Xmv}rPlm^fYH_x1*cO$kM%l|i zSB6GPs(XUQ$_k08x6sPOLB{$@s=EsanuZYC`Y_$-(1uF7F@kaS`YfWpjZ83zRuhBT z2C3et<_#>?ZYrYH$zo1svs8zL`E{FQKQ@BN;()X&Qq-Q7Z=qCKRWGr?g6X0jxTvJr z+qo(AgIrSrzQY2w5wZx&rf}E_nR+V?KUBEs%DGljToMuW>@#MTGs0buZa zWZ>y1sp5v=;aYXi>F5y-d|7EP`te;qFg?o5Gv3mkDV7kn#3V42I~?R91OKU+3eCuV6~X*`*Wf$MeQKQT)&BnKDFYt{Rg6dYDUy!w;SnzrRZNLDi7cP8w|u)YXE~O03aCxU zZQ-r$u!M*Gfj==UnDkl!mylAaZj65Gg`zedZL>p8*N+Y85h;bn8ELe*zXGDdDS#!` z3e@r>l1iFk@@$%#MT6!&6bt-0Y78;->^0R$lw!B)2y}ns&;lngPcYf&Jrt62xj9M< z=GI&z&RN!B3JQ!-KtllJy>{KK5r&DlU9?FFE=fUY ze}8r+26xFn>h43Q z+*NJ5*53Iw&z{bqvJ*jG)==hN9Ft?agAM&@`H$QZAy!c6T8St!a06OptHGGn0rl7X zv9gsDC}03fv>{8hQF=y0IRT$OPp0DAcj}9&SDU-+s?>LG>1W8UX~7iqJJF}_%&8kv zuvHzw98qTEP!#~Q3rEPPFOUqbkQ)G?fy-LW2yT}R@g`8-;uKYu)X9&DEOa|{)migE z7FbRgodY7w5;3qJ*$d0v{GA>X90dv8W0}NZ);v9!2oSIHc1$KtosTpSs^7xkVTqN zS1^; zV=K4%F)8vaq3(1Vs!k~=D(A7yJ>`cl>0F}(8)VlGKf(sk?3V`cfn|7|TraHzkXM-Q z!Ne>vApotPYXQG}mTc*ofeJO&=9qbJ2ExPQ#}5SOV1eKel(M($ym*G=1ja<}j^ z8Tq!g;K(2cw(rdrm2_|}?!tB2_UhMum$rBf{IA#rKaO^3)>B2_HE=zNac!-jp|hAE zqQ^)aA9Q3p+rFH}6z`!2_Oxk>wzM;a|G~z8KUOxK;Si%DV^4gs z3k>&hzS3Fc+>7-EVqgtk0q~UV_%k z)~sPaH){Y|GXC(^rsZ3YEFef55|#GuqRq_l$ZPr#S05iJcDa9rB@-k(qY@|#vLr|g z<^L4S+;nAB5dwa#Gl?tTbg}Uj9)4S zZKw}#^9c-7NCg^4N8JOH#DdN+N(p#whhdNbWHw@9Ackrq=^UEhU?GmiD&HUZ4_jPL zm8S-lx<$8o19_pe@LToHrvCex0}0pf9Gx_Mi=CrtSOB(V%fYR>cC_Bdbcyt z9d^9>WGcglM;)FghjTHC)@sCUIf(g?N9AhQJVZCjj)%Jr%?kSr3t9Ck_`~tHC8>p|es0!g(UA4$GGp z@FT9~AtN=&9{>k>3t&t2H>udybL6mlN)+N9?|29NiC&y|G6t_sOd((E-ON9QP-RYp|n3o*xMlun$ItDF0@b^?M# zUXkw_*l7<&$lisOxdovYYJjeO)_&zW_b1E+=B-L(v2DJ=j@uc1Yk;|d9C26|F7jb_ zS3KXE0CY@crbHAWt`#s<^ule#n0q25j&WtU*I2zXAV&Z@FI}Er%3^HQ9#yQhjIgkn zt_{WF<7eq+P9r>u$FAZ%^Bb&wNb{PV(lto{WbctXUY z<-r3{gt*4{$`EjDwle^w)y3=f<3*K7MjbnC>5Rcn41$UH*Rkqn>5$%|eM1oot5y|M zN|56J#u!Y1NC^;7R1=g*8%W8Xp(w*nrjs6MsQ0N1gLITu5Ym|ZOKP!i4ruu)s~t{$ z`rNQ!r%$0k8e8G7)mIb7QA_h^L*29IK+kPf(cQJKq(E`o@VRo9TYRG-g*`pGOdQt< z5Z0ok{xPf&v%G$b8$Fl1ctMr5F}QcsD4^)FtV*O^^3?V;lUqLrGmJM6oQ=%Lxg zE|!0>`jV4MbEjEL|3sWqMm9THciRkHN+%fmOz-S$*Zfob>r*pPQxdJ@I;gRfNYT> z)jUb>2F+-13T2d0IdO#~R65dk;7nL-K-g7?S+d<^^P?&Vvamo(C3~-;5%>m`3?UWd zDNUKE=pBi>ojkah5p*QH_57EY*GVviAEy9cpM(|Y;c5zLr68s<1(9EXIB2PtSch&A523Qk84Bh zoJ(ZqkqbcWn{o?Rd13X^m>*)z<^(ECcmA-D*+9rY%tUG+>9dY;*=VD=Ta3^%u61#z z$SuzY(Vo?cp*NhbrchPElmL~L+qrnMApY442MaoTie$QBhyyR8?;#qcI=t$2&702i zuF7CqvVEf2VvMMKg)wr=2Dd*|!Baa)XSK>8@H#}}qg(_~54+^be90-Jcg6QJLAte4 zg8v{Hf|mgp>MMu4CMw4DSWS(G#F6V6CHIB4x2LNA@EM>|Ksxo++@v^$M5Dfm1qw{YYtBj~qv*tzY>m!nT8_@PZ0c$}5xG?NtXi5I zA*1hVcP5RYTdLaLDK;a7Zxj(#t-cTjkmn#>S3b5?%Lz)7tx6wdBzQQgf5wuP7kj#7 zXhT4DfGN;ZaaGzEEUwZ(`|*RGYTFP&Mz)Q~==Del4vgq4DCN0J`taK#O+hN#fcvZ}3YT1(Re)-Esb6s$I!+O*m}V9-+Z?~%Y+ zxye`exer#c@ zbbDQzhWX;CU4IR<8#3+{bMeisQPNqal(|Svvc*+KeUHT^ca46O)m2FD*csJCvpD4h z%De_CqGB2cR_a^C)NAxxp`t;Xo`J9md_?fs7C{70(SEkKBbQRO`Hb|gIgJ%Np6X<{ zqP&GD>658rk4vi#$@8sM&+Y4-B|7V@PYB0ZiRa#Y4)wG34RGW|q1q-}#-R-k>*rlA za2KW}`VrrVaouw-vtHruQ>R3?ynR?FV5e-iu$rg9@C6@xV#GS;C`R4AVzlH z1%w{K;ZdSSLdWiO`*!(1dySSK**ieCE1nk;a_FKycb#04zFsMtZ3TfWgSB3`_3nd3V-}2P22K% zGy2qlA)=-CawUR6C&{OqWHT6i)>G7n;53C(Qio6q4>wBCRuRKYG_aCn=t=L%0$vQA z?O`{IsOV3pucQF02Tf>w);+24%}wVOEF8ywkFqFbf|M@)L{8j;LUaS&~$D zVbV%mdO$Xdn-3tZM2bXIZc=wEBzV>TY?TF079Y!#nGxNb&N%V3nUG$axc-8F!+SW? zhqJ}uhCOcbNYe{!5Qx+YRm%|ul=I9GLW_8~CneP6h%%+w>42I9~glnQAQboy$gOZ~mSufYnZVygsI8O`& z%VAgc2>(2HT)Mq46KRcKuap!#$B+@3rPSQn^G!)43Z*$n1BLfc_`M)+OXKy()8ZT% zs3AigK%B?Yngh7p33W{LityGLaUaaFF^CM2Td@;QNy;u30ZZ!ocS2&3j=*FIYGfbP zxLx`g1r8QL8y>w=dtT5s$mdf=f$jwD2jA#c3_!~WfPhq-R@50w`m?G zN9rV407Xghy1CKQDp@j@ zU{(u~r&sjoDU-*6csJ3s$oFNlfy4uUwzg9V_zU0{Y0uKxOltGE3H3eZq{1pk5?5FNekflmWT%ikrU4jrk7U+nbd#h6%F z<6>@M)L%PccwSwztNP&NlsccE%UziQ1eAQB!l)bzqX5Xe&Fp?Tyl4VgI1b06L~Yy; z7I;-Z9FE~9onYty4lJQ%yFh4^gCKZzrJMkfHwM!$BszCRP$>JRyCxTG3JRdCqHxY6 zL^A@+;`|4mQK+*yQGtRy4R4JZ8>lAK^`NKKC-J+`3Cjqn-v629uYE6GcXi?H>vIZ8 z_-z4QsHfVdUZ#OzQCJ%*jN!T*u&y3tp7Yipvp9E&^CkScR38bWQ9-ZqnSy)M#gR8mhMGmnax43VT z>MwqCy@=$A^b1r^QTaZ=3i|Dw*itx}0Qa`-t+SPi^{atP{Rse(TJl&o)+MDL(Pe+u z=p`<=98^oV(xUEF{$(XrR)f*hgm(*VAu$WaWFS}B&wQ!`l*Wx;}5!0^LB@Tln z^e+T=t%qte4^=hXk~nFf7t2+x8alBtEf8>EzO;D6Ak^{zrZaZFpcF51u4(lVDi)pH z26hRK@)t=sQG^%#*|+d+xdxe>N^-tUm|<4X_f*AYZ0@vJMpth;;SCjq^??(DBfq*! zMPcXF$cSek$wadRI^aI|Cg~1xV2yM?afp*!NR5_)29D`JzVvH9s;F3bE3B`g#4Zo9 zDjFFcSYbv?U@ia{3cx`<+C8TlCquXGH5USuqysPk7nz+;cEl0aBt2o6s!@}Vr1F+A ze`|0N$wcl;&#pQjFp8W>MR$YyvDmta;nqQ9NG#d`NX+u@^zfPojZnIp&TfJVV02-n zei(c@&~yR}Xx~#xrLE>O!MacTyh;?o+Bm}s#JZ)g8GVh%#tq?xSUbK2xelCqKPBVz%ne+d(inK z)1N_#NViL36I1%HV7Ouc5{evD5 z$+FAaT&mO@(I^)J5$e9px&lLTsMQE}ev;M9`5aKk9r)g^w#|1h>Sw8oGPX(^)~T#f zUX_}#=}|)k4d*JIC~EJZI-|H}(%ztAZ_4%EE^uu9NdbmLB9?*{{JiJJ*c~U`utBX~ zffGq*BlMw{IBg}BSsM4uvt&ZB8R!XC=#0lKK7V&m;SA8p)>VIG>TY9ms8Au}85xSrRHJG^& zJ*xAb>Tey?Y>=rBiMd*wdGJU*iGfJbQiFKBo;mN#4V^kF_}f{4Um)f)q%~IYueR9{ zl6@_+VDKXB`wf3 zXb3hOSoydp=4-Td#$ig0?WVM6C%n@Lm)3Wb0ng&(uH@-GsGs87^HB$w?T&3A4;tEG zeNr&U)GL(>q5_x6Yi4{NxLCQr#(t!-uOG+A0}hP{9j*zxwLi~9EsjIM-*zazjm8>EuHsA= zQdtjJN7q?UFFYT0Z;aq3g3Uey`k9KJo8f0#>pYX`Y11?&%gHJF9B$?0swA7ClS8{DYNa1>dq1)z~y zK{Th3ZEZZT*T;X}2A3*VVX3&?TcE`$lq3V|3c0#Axent)g~oo=ib=8npYujI&Ow#7 zH`>ZORhtjkVMHo7bX}!U;;K30mOYJ%5

    BBZp7+`2nk|0D>!vwe@=$Da7v5$r2VS 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≦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 z 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%0AImYhlviJWc5oE;z|0MYj;!nXRweU`AK0JM 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

    (q(z~w*qBb=|&aqR5%Q9;W%J#=i!8cU? zW77e@3)da+h}131Q3fK_@4N#fgy~1d+AWYIzqs*^qeY0BVcA){_lz#2lu_ky2P?pb zH~{N6KlqW&dI+Ps7AIPi1FQojM{B;&ELmUQ`fJdkYDnlVm8^y}=GIph2Q$up(>?E+HFZwlKsKtDLvKP+&D=p z-Ex<#)9i)L&*vdv0GG!gqh~j`Qw((^rlY%o@4iH2Y>+_TL~e$zZ=cAoQxl`p^gvf! zN~A}f_e853!MpU8!s9U*$~$K8yV85)J)+uE?7L?#&C_l7ABT;Uob@!$&y9QiQ|aOT zKbP6o?Oziv$`e2B1^CW$DpX#DQvAkc0M0@YkBhMue0)P-ve`lVf^8m9Igj)s~m`o)=@OTBJE5BJG2{qj)qSRd7shQo1vaC zuj<5m8fr}2HtMbDOSX#5!!Noi)l9DRPoHfq1uX#1#eSPI+hT7swA{p-;jxD!Bhf8gTgY!>M+i6N1P*~&ILtK(;~ zuoC)kBcoS!Msx?L)w#ae&nZPJOnX}g5M_)%K}NA3Yi{Ac2dD))Bt}AtV~;Go5gDMC zSb{9g?WDstER<5cIL5$W^CWUpHB1H#owKFd`M^v6)%pNefQ`i!LX%Z-y|lxLNd#~} zpx?`p>Rir#`hqjiu(3pn+~AL&9Dndd2bPGXQq^KHWoy-|O%hp`2W~hmNo_! z#%7lPaf1zMSjDWf!+u@q5EQ0HFr~C^4&m0KTZUi$(bVzUJG?N#mWZD-O;jpx)gG5L zJg3R1Ye8v|DmqWIl&nL&DX5D~ahWIYG7=xL^&5*n$a-0mq=EM6XrfxI#cS}XYc309 zu&mG+UOqR63g9y;(xOe+)fu?V@ z8UYEiLWrgC1hu5$f5tOIffeA3qQG#qWVoM-0MYOF#GK;K=JUzYY)Qb~(p$u+Z?hX! zFU%s_uTz+wL6TKChJ!VG7GN!6k}e$~X&bPXZB$Lft>X|I0nR#KZQ7l1N5CLk&n;C- zcCkii{Fi2%u>!kmb5yXlNQI?=st>vb#DV@-TXd*90DyM@9M$4hrCLF+(AqF$)cay z-L*v?LV7n3ov6K|rNx?Wag{EDU?y83O}3GyF2d03wm>E(0dz3QoeEEIid>{m6KGXM zP7ySx>Wvx(l@6?KXE1^Yj0A;;uk}q;sBY7ST`HLUd;O*5O@uDj5_=;lR=?GXD3L&w zo>Tg|tXv&D{KoZk2b_RvNF}ms`I5Sw*uCG+E@vXyNJ7^qPYz{G1D^WWR~hu0C^bX( z!?fb{sjOR@I4{AAEf1O|H&;yUMUKwM>vy@?kGB4TVY0W29UbXaVCmh1ay$4SiN%BX z_tAcCV5LgNbAws>jvZetr1l0NG~Nf_{G1*NO{h9xYIt%6?2#TPghqklo*60*R$2#;%+ z(1*OJE(%8kIPG1}550Xh3w=POm#$CgodZ*n&FW#po2(!JkX6EV)3H*L(tk97UL_z> zlz|RnE5t?Ip#DG|m+pzIC>JN3cm{#S@)gd%^HRbMVBKTDWW(VC9s0qI@~&JW6kccD z#hzUG_s#OK2OBI;aRj?$@c17n0C241OxpR}oUW~Y!CQT2;m!qhGw->r5V;~5ieCKf zL?&;Si_)!!X}RZ+KYQ9t;zQieXtZT`_h_5{6G<$^mxD3M9LS*WoCvt^=M`L$ls ze|3(?&;7(9Bn)UI$EtkG)oAy%3vdL#x-uq*$>#Mg+k+VkgEOJAU5E#u{?1M|LiNv@ z&gXcRg5Dm)WIlEbAb{tb`wc4e^K3pIilK1M#3_1Y;vu|mLz-Se0DOSj8n3Y!FNA;) zET2sD%JKrXc?mTHY+e(Qbp$T&%^8N4-+S}XEP*9H_D6ZQ(W_nv^5NA%i88BaCyd=; zfAwo|&XjcB%YnL355~tk zK3a9;kV8XOQ$dW=U*pm@uU@SQG!6wcb&r z>bVhQCMXugmZuJ&PEMkx)~bqv>(^CV2+~c#8rTd6VoDDo+EfKKDJBk;N{?FyiqyB- zDMZmaz@o7#Meh#+@tcQ6o9BhGMySi35{zaKLRW;)Xp-;NS%%<)chijxR!urz5yxEiKJu$UGyyQQP+b$&nS^eMm}4r10Slv`|ybd35PvLSZVIqj9_!3mfj zfl5b<=FCu06zbNh=q-$ZwjENLABvf228?&yme8xShagTa~s74$dLHr{FKfs6VwGvc?Mi0)R!#Or2g_3`Z! z(q@4$+-mDt+WKzE5GZPWpRSrT21MK50b}GHltQeAZBt;FGr;KKpgR8@1@4ErecL^A zSSd$@xy`A4&HUWqI!NACf9Bd;n&5x-3h@8~)up!Or{0&SQp znbWl!1-rtxvV$oH!RFnm9Hi<5Z5j0O;hHd7hv&(2<^&BHu5u&#$6}0FGwYhAn{eY+G#E@$o80R4On{JHrI|n z0K8ukzlV9knZ;wc@g>C)N62vHf3jl5^^SVcjJgnZGo;G+X)?I>P738)l8alO5bU<7 zua)q0|JtH+6ZlHWmroBUB6y7(3J(jWqi-82s=lMe0m0nD3u?K8@>@eIhaZraUi%^T*@XUDyMLVZGtZhh(j zg7XzpvhO4Jl#Fc(x4Y2fxj!-hL$ZNn%zts7>;>CsunoPYcYzX>C&LP~(g*Y7DNGr_ z9xRW|+l&kMlnQ>Je3)L4#Wiha34fT--OY=z7OL&#ixUYWq!AzJ5c<_4cJ~iwBC4%B zGQuC^LhC1o{Yhc}!^isnXwS6{H-XwGpVMz5s66n7Lwp z%_^)2l8)l#(cj%tit$w`Stt7Gd$1-ZCK88|sIkRvMwCHjkew@%M!qyn$Vq*Fzv2Ad zw{CuA)cqBRUB4*|3&%Y;dqi7c2jXfs(9&fMATztzc7JJY@%acx^G`@h1DW;mh76)! ze=q$ZvLxwh3;@yT;Lz_jdknSEazYDn0a-Q)YM2w#kDB2qrKecvilTagXp*#)PU0HE z`p@QPutR8l=+^=00Um8y(Kb=f{?Z=C(_#Z^sC!_@*k%v_#`5+qfOa5!Rj~_-6OEh6 zEG_K+kVuwcePS^8Sw{#iO`#<&ll)TA)2R0^gmsyqmsJrokKAJg*j8<2vHkwgq$q3W z54VdFBMI-{_|#Zb5#GetI)SIn?NP_ZUU8cz7Gm0a)ho?Q1ho|OCH4a=-^L|RRyRL3 zhkpJd4}joSF~0oxRo$M}6sx282W-3}>Tw{VycX*r=;#TyMK-%HxNH(*P_kcUUY(CT zk}6s@GcWkjj%kUptVwL+@Vw&T!=z9$JDnx%c*qE%TNa|1Xq^th+4U8UAYoB)hi$k0 za0H;Bv6DGW8o5c&n4h8e^lugBpdw8A4aWxb>*AdieBqwOAI4qf_3&`_S=rx1R~Fh# zV1ftVdqw>al}(A$Ar@(o)$-zG${emn+N>hiX`!WAO`S#u=`D08rUw{6OWq_%tkqa# zx_I&3lwzLLkGd^fNBNzDc4L@bc!fEVa&Pr!|2`Fzg(3GxGE59x=BuLipbyR`c> zOc|$2B^AruynWMM@Ih#6sKKuiH(%e}Jq^&>bxr&mqQ|g>*S20FRRF4EPBn94OcyOJ z)hAE=lTNJ`@d=mmErK2u&+|DG8Y)%DLFqTd@3lJhO za)o8h?lFfX z)OTY`mq~N;y&)={hH2vy1Z6?8IMy~-JqBGQvOS!nML+C0Pq$RZ3Wxux-9|v#>Fw|n zW9ZQTH`Mv>u%ffFFf_CO_tQ_16{-9i>9=bQT%&fqv>*twYNS_d5qPIZA0V&mG_5OA zieEnJ+0HVgva>XST96_>zUt7~&Qda07RpYEvSOZbfPYjmgR(SJT2#w^zsH8W)kM!T zL~cS<`P;cpwQxB}YuUD>D54+%S`W+iTBwroJbA-0dzBp)j^^-ENsY69IS>u|XAfek zbaiR{9GWir zql3Bp=wQmoJ^IEE?zyu6MzqSg&xEW19PmPbRyT)4PXZ$F^bmZK?K!K^xzR(VqOhD9{ns7}-DqT&@1* z8old~{tHW&Djc~?!bBfQlZP#}zZn{-(~Qr+xIK&fSrbT69Uo;!?PW>s+s1dNe)Lo` zV)sk#=`gF;pdNhNX7{WZ&BfOf=_8yJ0HU(yqaS$4AxZmMTliQk$owf?E9jtCv$b3D zIr-1hAmdp_cl}~VhCo)VIt$AzLdCqdZVgp;)6LKKtM-Ri-(Hq&{8}r9_X; zH~Od^tUR*=6C5fO-$#8%hYcQHPH<@>Z9BqIdluSiDe|5(PQOl29Vy3Eo+GyRB=8jX z!9Zc>kt@U~1)pqO@gX{5iNScIDwsS_HVn7^FLiHQIAXgFyTH6vE9GUi+q5docMeTT z7;DGOvMWt&ssvd|STpZV+8u-v_mg85ChO98g9WGjL#Ble5G3pXYsKeqZ*N^6m?`BA zrA!;7@_uzGojt*bvupo^ zEWWdXHG2-zI*viQ3HB+KB*u^g=9m3Gh$jAk{lSDp393a8#J&VSmwkQ zRK6ZW2eX7HG^`QqTBiC+MpN+{SYEubr;Pw*NF8hp=S3xcH12F(|DK^R{p6j;rknf+GX$U8o(A)$LpT1z4EZNC{O>rWvo$mP_xFFrtlGKtek;nC z%>w~ASip+5*qCw45UZ8HalHfuNe$8$8+q7dTb05o)2a zz(Yp1IbC{e*wrXi_KXM+pZIcn{(Sf%kPWi2RUOIK$t`UkIbZ&f9l-fM{DpE|yG-Tg zdBW&8`5*S}MkzKjTE}*PpAMQv3gw49X{Wk6cnk_iC_?>Xa>3fP1C49@Fi4zi=r+|3 z-nLB=%*4$b&}ACDM->=aiEUu{g)9BbBK}w#134@KpuE@83vuX@X;Bqa?P4$^e~35( zh*7~lXOz^23Z?eV22En8Y2<{JZN+N*`p{(AedfutOcb=Nx__GFAR|0QZTy5{Y)_a8 z7sU215+MGAVg+!gAK)Ok?QkE*K)bdrz3iO>3CoQE&%&SJh6X0G0W&eScTtpI7;AVw z)2#Mzo)RLUxW7Et*l{u9Opt>0<#t?|E5zk$T%(Pfr-e&e%AtdML*joysrS_?CA}x7 znV)Kn1kg7jrxP0fx}9?E-m?gp&JIOI%nDQ~yn!jy;uC!=-hou0o6%MoVL`bHD_8u| z3PX>A8P6jrH2>>+JcJJ;&@3$M^PW&k`!M%`4$*w6s4!BZ(6Xxy1>RL3936+M6Kk$? zPya*JCY`1*d}~dGG)S9FALvU;khHM<_MAc`llBz97?qz_nN1@g_c;f z)O`pofUd)7`~0*Y?8KMA2jEpk-kS}{L!%lLjVSTh>#JS0ET>|~07-;_jI8%xHzXL% zF~6&)Jc?b8Qbsqdzc?Yn?8IjYTU{}UOafQFC8u_uO3iX_DaR=*g2P+d(sltxqCDEL z+JN@)qy<>vv~yOo^>-3=Fw;e&W5_eu95WBpSPv`bUoNVbS2;^uNa`lApA?)8Wc%yt z$`a`BPw%%Yg?Xc60j^NYQ0)f&#%sRk0ET*kPxl86sxo7$wFO&T8jA)LmRhv ze)Y?03DKNDv_#pfZk6Ma13_xy3YS)*DYin_2n!L||1lJjvK^#LI3$RLDn__OO`H_phkf z##n$<<-W0CIzcNwp&TQDRh!A!u2<R za&_;A^gP(rWij+`vAN}SwT>do$>X)=x!G47%qT4d_NnW=M!eO-NoTt$kiVDRiniCh zk4D^{S0Z`YtPQv~#cZSPZ8a15GXY&rgv$LCj(K-g)fGb~T$;O2Q}(lqehcQC0AM}> z{cEak%xi!)%d^@q)fKQWZ8j}=eom`iQ;>E06Vwt>%sQaK>od#aS| zxaSF%;CqsqVsYnWy|J}oHS+w-vS1*A8ohvYPvkWbET+#Mo5hpgF=i%Awi^RS=}t6= zMGM7Vwm^f!v%7|%l#vSCg0n~E@EWAr_?GT^mL~v9o`{jXw=|XOS zy0lo&2C_1FZnY3=5_yFH^?esw?i@a2rX#ZW_MOqGNr_{u!VP6J9 zDi8soAv+oJHL#5S!w6zDCM{?}J^}msIxzJ3=tqteE6!rU4hTiX>89UNyJ~x3~%AYSjK_-;I_NAD`I^7;xtX80Eu* zln6m)BYq?pgxkP(i_GWU5t zzT=iT$rLrU$ZpEgvGp3kpLWAXFfTmUYy^#7Ef+90km&<3;ang!y zZFEA@2aBY=k+A8M7kDpQ4zhbj9}dT^*oLOmy9O;dkzwfflU45s-1o2W7`!j-Z3s)H zGE9&Jh}%%N1+h@Bc+bpg{xviN9)YM`OcM?t=G+AYXnL31q0htD#Ls}an28)(>;Ctc zXO|W>A1pRUkU+p#oU(22_siU(C3YbwKp8nkQ`k&q{C(CYqN#aUJ5UHKpQdY?$DuSm zo0}kvU8s7%4#oCi_!(@vD$>+)q^j9m*NKyv$NSS;8&a0|YPM?I8%69+i;w*A>nyn7*7#_hf*uUI7ynG0nY~J+y?ZW=@kJO?g=%x$eXX42p z1pt8be=52i>@3Y3js9D9@vqt04OaN>AOBuRXsN35wJDmDwG*n6L6Hmq0R`k=s_Bo2 z#e*yoZe8EqLgDeHBi-0|?&N?(T6WoZ$5`>|5(@Funv3npu||POSOhG2QY5Zb1Qy<8 zg}QRm3<@BA3A2@f&a_JKrfnW*@Yqg6_6qy}GaQ!8Z3QGBq(6dX%Juk?6ZmQv&t~V3 z0i$@{#gK^hWR0(YL0R4#X?S7U-;v%TQ3#)dB(wU7?XS^^#R7C=(`e6iHVUX!^AeHbWDhydhalg7HM}yCt z1RvIf0f+V)DjBRdgJ?QpmEjZ&ELt@HY;dLm>2t>VMGi?e z3-fR}!h3KCQzOd#wTMokH8I1U44BV*g_zhlg{aK_NRbq#_>8Q|QU#fe#yu;f8t~vt zFl+B+XUM4R@;Bn?HM)R&zxBK2GwS@t==vm(g*AIg+CRNe4jbSlT6WZE^xg(g#BnIu zI2X8F(H%HpiDMr)gz(I#PQy)-Tc=~;X5vvZ<1IqG!dS|RY`2#@svx@Jf|%KG9r?3m9$~tkj3SVh_RUp$)H?0IL zX0)CuAopgYSY|sSCz^7XoSlz0onv;XObByD5|9&Dq3D$~Ncz1tF=CCMmLKgMHdE1M zc;}QuUbD+g*8iR`ZeFLyK>r)bInmi{$48Bw=3P&;9k1uuc)rLdsE8LHiuF| zB0M6onv$Uv0B15*-=Y@?8$|7r))B%*QV6XVq#7wX@IN#(0KaFCd_hDWuw(!|?b`S?>;Mu7S{aW?R^pLU^<9wgb%~vQ)a6WVfH_?%A z_3L`VGot7LR*xva%MQlF>Pt%ijyX--lMovl6v9D>sa2y;|gmu_@0LX75GYlKeFu>G)&I zxwZtSJ9Fim8J&ci(l_P!g0mxMgyZ%7`n6#7nT?h1xi|#&jXj<%{JZ+`}2<)3P%aYPWSJU{3P`wxQo&k@pppPqCMZdU&nh^c9_K#%M_Q^RhENt_=TH6j7x zHwcVKPfU92D}PW(R-w#B+blHJGcqE(aWpU6P`+e0eaN-l)|wQrIeK5t5Y^8O*1aiV zA#o2xMD}A1E<^&n0l&n zig==)8T{F_p#e6a=3!+*))wgLcdh+BbtnF3W!Y;E=zY2sLNY4_#_B|-C?l%4kM=h& z@bowzjOt1sJH{Sa+dw%&eo%3BT&YockYsuG+=ci`>62PYvT_ZXI4b;g1pAaE0SoC! z-Chr(3n=flmy%?89m7zosMsM*gLF-Nt9?)6=z9Z)qn_{Fl)uu`~C5tPRg zXNUGhq`jhepH%K7Jk^FFP?kXOo6$tEO^jLbMp$j)@n4x!_~x0V%@~DdSnwWrSg@E0 zOwVRU-iBV^Vcv&x;k5_m6Y%hF%Kf@dC zF~q88b(tXNi^T+0CEyaR%`}#B9+bjO0D=r)&WcxYFULbei$c0^HvppF3GwN|=x-+eL7!phiazQVZWvAg@AIzv)K)ec@B&npT?uxgLq;H2n*jl&}o@HT%M{s@1 zD+{+g;j<*NP=ng@WCtu-I$2pXs;iHs8OB1`&#~5$lm^S9e78Y@uCepV9|4)DTB^%> zXH>|hHU!JZVlswyi0s>@oX^}*9g|4dSNGXkiqM182toR~U($GBa9=ip*8+~;c#u*= zs}ve5dk`kh$t;h0i8wITy?q3|2vFITwh{K9p;`OlM=~TaE0`q_!M@6Q=2;0LhxSM2 zP`;2AEq0;CcOJN7Q9Yh*teDw+F3TeT8)h2c|6o^Pp^P_&|B&cre;8K(WI)>L8Cd9< zm|2_r&^Yzl2`jmr`q=Uv?8_dNFGLGd;N3-q$%x!Oep!9O~v|Ady=jh$9Z= zZ0y0)GF!R$59I06rWJmhz>+WugawNH2`<#RaD8dyrKlVHa@UDLEIVnH#QvAWP*sWZ z!^B5$t`+z^O^Sm0igoQ{_=Eq_45nwa%DJAX#QLisI)Y*4WGhM7a=thQ<2*ehJ)!`) zYqM0>EF*b#aK`6F>`_^P1oC>+#~_HzNF12gdS@aVMMI4Zou;UC^q?>pa^0~RXBZj6 ziqU%Cu-uUVx;RFhX79AVm3YD`56jD0Ap_?THh_QF5F5k(mDXl{B+9`>%zRiRH5xq=z1I@qx5!X@nO%-OBT^CdbyUcBB|;4Vy=| zq#C{J^Lpo0pshkX=aJ&$^MJc9n4y31m4EJT1?Y20WqguXjDcn(1h=2$A0WgfTVA{@ zwSw`)H<25=*zNAJ=q>U#^Wf~#^3Y%>pgp>Me7$kztVAmwG9XlNmg!|zcoOt1>-0nC z4FAn9aH5b2*Tw?$8`vU*FlbKW#*Prxb~{ZFp|Kq6NUztPH3ufuj^r!(x*S z<&|gyy|iLYL{#4*L&Jqxd*wSaAJJec_wY@I(mrhNRwT$3qM>IG(&KUFO<^fr)8LFH zFMbD*H>G=%wZ+1?4ndg~o`x-Q++t1J;joh6(KVv%ZrkImH{})NKS^RoW|I38Kd)8m z=bFO*pI@tijg_sQ@}khOD@&UEB-Z)L zg`$TZ7h(=liYnT8<1LT-w!j&%jNF!J{wr%iu<7OlBq#dUXu=ymUkX?VK^@*}QOm>j z3VIkFa#E~LjsD`czrNj6wa@PvCelD2`TCvjwqEacJ|2)K5j4TQ%9@O!%)y2ngX#}& z@Odx;C!r9W`i-ZH3s|8bGX6OZv)WF;JvPxO# zX0noHayo3a6W2#-Pz+1YyX%K8E0?-NR~6qKHA>U-yFgu={%|qmYdqja75uXL5FZ0K z+=}Cb*iD2fCplXl(n>NK^=G9aWD{Ua;;U5yi7Kx}yE1)M6@&V9oQ-bsD|rddFS^H3kK23X@2MC6bQw%DXcT%#x>HcMAO@VgP|8{^|>t2Pm)zR#4^_J zKw#sH8FiUA^D?+Mi>MmL-526CBd*yKs#frf9oDYc{~7L?uQ9Ljus;*wZL=75b!RkQ zY%lEF$Hz)%n@H>)Q|a_QMv_<>MH^EV$?-c2;*%?LOXeL}w(Uzyf!MbUKNK7=ui9O{ zZhHI2N%{6!i0JUM5kh~8zkhaH|66?h4BI*xI6B!IIs9yf%>*8s0DAb~f3d|Ie1#Pj z>l8!03l$5=rShwjfxucBS({?SU!Pgv(}5H79Z%%xhPyqc>5i9~R*>ffNKyQA7BtA^ z83iusgEUG^{UCt_H96_kJ6y|!_ezXXQ2V$v$fAsyT4SyW;W@1qvX^VTWT7nvogLa- z(`uIP2mIPM8;0do*QsjNFv!MMx@uA|pu#Aqf&ya+A!jbz?(BeqZnMFEWT_GtsbrI0F5x9!C1MOXdcNW3DWeK{q*WzX& zK&?c9W!xv-*6F5agwG{F*0#@;N$$sZEiJvCNS|-%KL1M&O z0=GdikG}iGTYN4H_4taTn2EmvVnkyM*2IYp$jESTm>)u2=0{lx-v6O85mnS>s0sl9 zP=)>fie4){`+q4n{;Lb1u4%L1j^O=VvqK4&jHx_ot+3M@iZ*KP6`tFcMNCF+j{eJF zuFly=A*3)KrvB81kEv6suRNEm_C7z|SV!J}!6=QymQ;JILeSKC`i!PqE@f&1;j%lXBH zxiQL;yNqphq-8CCZSaJm-7WZ?idHPiHZ#iaNMz}``uJ5-l9%9v*K*}5T{qcrnSmg} z2bH^WWoot=3X1V}L>MUvqHzsCp)MuUlOKR87y`1q-Q={J1w}d6b3gmA02`xAX4UYO zrvi$${-`c*$KC5#I#dk!i&i&o%9~ofpwao$bIeeaA`P*uH?@OGWKQ^=z9Pagu~X>F zCw1p|FA*yAjSs{oBk^N=2na<)(%Ygw-yF^*tk*Z*he8x<Xl` z68qi~7YbH4h_(W!-$g6MeqAKB{9`yl)i*3&9ykHjli z{B<>t8sO8KihTclKW`F5-IR$Np({^hKDpC+EbGZy%0_oD5+VmSbGtACx5x2{ZKQ@! z${2sA)e(Pu1GArWY*s=l!6|2>yMAglr0=*&X}S|627n6F*~QV$&HHB02&5{b%n??A zNJSv3L_~D3LZGAXZpaCQ?y8GLDOc3ptK(NnZf1Q_1j4nz+JWRJolnoFK zaJ~Hv4zi|r2cQKg@Gq+?^iL;R7cG6h#9W16K}$od3DT!~o`vs%T60rY0uacjlqBZ! zHreTT)V9BEj8jxcj!j;d7odD}iWkai$UWb%xp6?{@cc`@gFOK=nmrud9bao!jl84R zyfnQDVX}u6!NjiVJkQasqh-BEr0+b0v7=b5YFVR)C3+v6L+QP=J-ah=a!mJo0ek_c zQE7i^($2Z3Z1IKFR2Oh|XJ`FNv$n4rX_I?Hzj&@p37dIIo-4QNl;LS(Z_muaDA*?- zt4)U_HOh>n?NXI^89&YVeE;=XXT^SX!QRd*2IlGFt>IGHKkZ4QpM!2Bf&X$7`*Qch z0}Q{e3#QN6!QTYN?Cj{&3Pc%I9UwJ57=H+kh>mSONLlw9+f1881rREKj8c^{*#*@% zWeu1G2T6+*bs-7tt1{cq93@$ggOS{?ZXRxHo$g@CtJs?$SbqAy_&TQ`O~NqEmTlYU zvTa*kwr$(Cx@_CFt-q?eY}@wq#9qwKOzd7{L|$iP#E17h&uKZuflyHjqif(;OB_Xa zss2kQgcFc8>=wr7G{Pa9f_v(S7*l=57d#64=L&_G66o+IX8J@kl@8<3P?vrsA}0`p zjJP`VTud<%{kh(3Fke3ph*LUr3xt0(poY+DCK*_fiOvn$6@5tnfTQ*K(%7)iYGT$H zK8>(~G67G?h>jOHfIkEQZ(3*8okAv$B;1bBBjHh1Z)Sw6}IV~3RhN>PBn?2vXNWRNt zqjblTW&QN!J*$S9|LPIqfYVjE0OXYWmQy_pPM&UwLBMnWgGSagu5D{=O1z-*B!`^dZ(V8>9`- z2*uF(N~VMyEusLMbbP`ughT-n$fNwPKo;HONwfqSwgnx2^5qGCk?%1ik?C&r zpK6*y-Wq~&rdGqh z()Y_>D?9dRqojqy_Io8hI))v-D*BatPI&C|_gimNxc|3fs6#u+adOBYYw*yy_F#4Y zX33fZKS(Gpd|O877%iTrV9N$XYl>R1&&EQy9BPl{%^IrqO$>lO=9tN|#&yl)e9^WR z*+&|whoQB|egX($_d@q3)^)b=jf9u9*)PUYbtEE~7VU3Dd8<#Y$Ew*iVgW!_eKQ52 z39KL(A;b2R1EB=2FU9r6mg?1cg^8`s>`QN1quPPEiPUD~TJy*%#_tChOa#4PsofoL zwwY&z(@zBWI>I{P(L+;u*4`8ykKzRMdSew!YCaf1ggezO`*`K8z8&`t#OJx~Tap1hkJdzsaT zp_zt^46AV;A7Yx)U)v*QKzBxzGTWO~Wp1k`y{E+YAqpV8%g+I75bl56IO|4L-6#TD zfgQ)vV`eX0ZBl1~bBn2Weem?AMrgFPf&-?E)8p$Uh8C;-p!L1k9- z6NOj(oIk*sU)W&N=krN)v&Bo-agg{1d^n|rDLBZX!?%Z!+cG=2T?rzX z1P@nhFkvvOOgI>2kpS?2KT_2q=RLUpOLLtd{con~zjo42rjD+bPNue|b}s+9GfPp| zbpFrUuai2#v+xAcumiV+jF{gmh9(qCqUusy68LGL(Fw7CNU(tJ=gEG0U;~N;BPWXe z>Lo9)+bG@ABrH5dz_k{Gh+b#f+6BRN6MrY**-m9Ukl8~eh1i1`S%0CZdVmX{4q@bT zguqTppFn+~5I{nub(nc4=Cbh;OGD3xC*S?bEpe==|7)JjWLZA|B2P_GZt@9yyBt%5 zzM%r12zDfDq!j_sbZ!;WY~7xuqtpyLEj7|1@gdh}NFign0iHagQw;+z-*5gyq*z#jMq-u_;8f_d`SO10BHJam_~!Q{k>Yg+vAA-6u1 zXGjcP!xJRZ`x(TZ-cA@3H%a0TXROSB@@1qB&OBK2rmZ{7b*)rz@4CG&X=lxgjy#+3 zthuf_J~&}@cd+wDnvPzNG|0W&Acon6^%L4?wC03wi3Q=);DH8Rq5r8t`l)^Ds-_^j z%;s4k8t@04Wx9zC)IaSqMDddjvMG%@=i5dO;_1J|(}E>>PlU09`#qU~3n7uQhz!6S z;1kV~9V-isfOwwMe<8wEsAW(mux|xFr+Q&z!U!h201$Npje#jR?f1z-flL)W6ms#} zT3a!RrrWv4^SeQQEh4?@PZ!wxDKQ+VH+iDO7qUKU=SzK3kB|;%R8gq#< z+sp(!#}n{125D?Ga-er3@W0NpORcznr=3UVF$iTX`Fj7+RGEV`Ep-j1h_0`bG&j-D zI=jei2a3lfS5#yK34ex`MPsZCRX7mK7M|P#W zfqM^f2mc#;v$rUBL@To|FgGT}8~O~~P1yX6+8S_o(}Hi2&RQYjp(+AoWFh}HddrGW6v|FW{HfRmkIkhkn=_qB~;1K~>1iV2#Aeg1#T%#n>v{vD=?W=Nx zwz*+hv)(Szx|BMH{u)q8=*@`HfYz#W(BtI|Yq1sKMqSm)tj4Y)hyytJu@e>|)6eH< zv4Y23;DUG)O9a{O3gOZjAkrHC&;Y;0RSwm@l(D71;noRZY}NDpVF`u#If73uJC*HA z1ydw~(ZcS9P+?(=ilQbb3( z9;ovQxu+?mRRmf^JD1JtFFSMMmHwHK=_l-Kefup6AjAi!o>Q*VM+;2GpR&|S;E=SVN6V2#fwTwS!Tx)Imv*weIC^xBT4+*<=8Y;&snt^%)yZbW$>Pg0DJp4?M^Dlww+A#^HrYN5)+y>o1BUm!d<2w* z*-A}wJHD11#S=VKXM5^p`rV!%*Rk03#pbT6Y&h%&ic_j3_obC>KsSw*$<X>N1xRP6e7vU+c95#1ji1B;3C29I)OnJTb{93-3(^Y>u9T5V_8!!+Q z&<8cy;#6vNZA7lGMyK85)TF^8R*JULoi-pyYcE&5pUJXM68L%Jbj`o)&x0l3Q2K&~ z4>UWwnCp8b^k9^)Jlio{jse04xySAeF}1KtWCNHg&78i;>J54g97IPKB#o2^_}?>ej_Ug8k>Y_QERe;sLwb?h`?h#N#o%C-ZzGvoOY$=BU)K#bbuwbM=JU&Vi7+< z8=`f|ftzTsafpK%kL5K+b{!r189o4<3R0@N6FG^-sTI{&0^?xUs401w4P-|yNiy+K z3Zv-K&sqsoof`QGc^d6)tUI}bVQtfkd0f@06^OCQy=nNW1wt)d>6^+gi0mcMvV|Im zx(Ka(dxO)Hfu8x-k=nld9jekopx`t&}>t#=DlC&So72v)fDXD1t2K`jz_-83}!O83^ zybnufKx?CyWT|RXb&i_-K#^_D?oexF1i>HJ8Y1rJM_?l(Pdkjv&HkRW>>L7r3ohlc zd@qkLbzb8o34!-~~EwivxcY1sp@^V~M@@aPdhK=hC(Pca8MJvQiAGYA6~GtVX57HhI$+oER}0m@-P;3+)!2YB%h zKCWU@RLFAwT|fYjj!`n4AK){Iwyw!_o6$gwZH}b}Ibcs`6TFQfJCe^9u}Q{xg!50f zV-sYfZlTo!L!n|4>apu`03tlXM|ELM#Ijun2%bTTS+-4xfqC+vfn$8{6Q~IPBUxKf zu=0m3>)(Ar#2lOt@QqAc`e^L&kzu3({;~vRqAT+gy4YIwc1Nswh+s_qDi^RR?wEC{ z&sx2yc!C)rLb`zvkU;1M2shQ0_7^G`EzkwFNeJAnS=be+$6}Zx{U<3+m4N^^Q(1E-l!u_#s1wXtFb%*9Tts8Q^bg zlBi(7s`8Z(Y*Ju&+7N%aP(p8*kW}a0$X7Z`fV@@&BjAo80zjr_N$V}nA}Yzo@9;T` z1R2lTecZU$=MtQeh}PE1MaRol*bTN-s?{2^UE%$CnmD-LytJ~}n%-5y@3he)qi`OJ zX-N|vx9L@K(1gTib0)cL8m2tc^dvW5L$s*G8qVzZy%}+G+Lpv6hzyqMN>XYvFzBIw zY%LqcdbJi~XWBQ(0<$fp@U-VaE0MS&OfuQdc-W87i2Sn1FH#svOkml$7!UD0JcvhP z@;NiER9`uB$>BnE2UTAzv7tWkYe>o1gfMJ}wL$S{3VR|P8F&*-#7ZO&`;S0bq?I|6e`DBc8qvTMJpD^+7fg@<&KW`j zQ#j%i!%_qPgakT_XvNv6Pu5;XumCd((kZ);-3vRZy&_|{CGhTb--8hhEegPouAY2w z?D%~@b#YA4`Eh++Y}EDnK8#$r+lx0y>O~KkfIxT(-rWhwv=5Ma!4*2sdp;%Up`)~> zoff*{W-A7J(#@+qHhZ28+KT6KuO=F;g0MZ|qP;)A@pUm6n-2&M-V~TBE4hrZMh3YJZgAipD#S_m4zqxR7gkC#f6Rc!gOio9wF zF{Nt_*;USrY%F?Wex{h^%3z-U(VPVglclqN3<6d6Ym6}P@4f*Zt&YVhwaofO5$huz zv*g)0BnB;~oJvP}!narbN|b(I6x{p%|p9|Bdq3#c70A zR*wXn*Xu7P?YC`y*4f4AmoraH?I0?uEc3q?~F6vRkK7q#RfVHD&DhSnSc!9`C);TDOjyp04i4NzQ zk2*yLpAo2g{hcUszfIN@gPjz_p|0yCdheWZec$|E;b*kI zW(;L4n9BiJ_K+rBQVCG-IYgO958VxSgHWuvA-|pC&KleG-qzHqrQ(Sr4W6M$FM76&89_3%({1-%!)7@cT5YBr0fO;TK4H(ZIO6Bu(s8ZoXbZy!!476VQLR7yeHv_`$LiazeTv77?fcOedj$5F~%<&F)yINCK; z|K)xus&iz29JIa_3G(DUKa)r3{7Z?9trb0??(`{2E$hiw3v-X<=+0{hZ$7ITBo||` zTZUIj$(+-D=DA7fUyM+g+b<^S#DKpM-f0)RUCi$lC=P4nDcbokc`@^7@WWm`?|FUW zcCe5DR+O(Eyn#RQ)3dpRmb(s@6J*KBzrHShtuuCPh8WFC!$DEMbq|PA0S>h)|7?o% z*e+uTQj~zf2Jy^IlAQ!ftzhSA+wA@^pYvlp@7h{d<^=gbKearc_MZTyH@2ET_l^7N z9?qt*gezuGmOonP9MxhSS6g1^bEQ%q88G}^xZds}I-IeTiXv*0fUwY~?s=BiMC*i} z-8~%N#hT1+(8vy}aNl!n#FZ0ycntmyCg+q~DgHNh@N3Q?pb0PLTJ}COeg_kZ1uJ$R znvjyw3LGHA2$t}(RPH)xm- z$3=bvo-~|GaVI8B_f3r2wG`<>;OuclV>Q_IMUm!XbX5vU@=vvKvBC+!v&2b_b5iqU z>S>r12|x~xlIaT04L-j+bf_YOn8RC6FJhoW7V~P6#?)#5kVMP=J$;r^ySzv;Ck~8o zlaTTlOU{cQnK47vSsN?m4Ej5^Sf?U&BC~c4x)TOs_nsnvW2l^y0zWJE54p$kfZbvU zcDsqhiLrd6ga!fD`x_THdtb`bxt9JEC{Hq`BjU8e?!_JmWMBks{Fk!V9BB-O7XJUr0k%ib`)#^9Lh z8EqiyPKbfTdV1j1wkFJg+GXF9z3x7tq7I4;$wZ`-x#9((iafFa2h;-HCA7=DxG?VD zV7IJ>oiSVpE9T^8di;~tfGC}pY*=nO^2fiNsEb)K;(GTYf0))@d$Sy^2Xez`SgMNo zH;s)*a_Jq%invR)MTTUf9bS@+tbf6%j*P8_Z^?1Tx=^^D+wH%oI}~uiJj`9MzVOM8 zg5Cq(12W|`oVrk@ZnrSA6jDm#8~}XvuOXfn`eEa~C~L@p4+u0HKG&7u%nET#PI{N=Oc^AT z>vyuOtUI@7&4~+|p;40C0giIZ8R5IfCUsqA0f-k*T?nCmPRX(A~l)RT`v2q>bb0--18k<-} zCMWTyooBt{GuqP%K0&TJoO?lPEqUH#xiyETqH9Cv=5aWUv()1stsjKg#EZ-J$ z0OA|6By6oSOb$ZEHwxct*OH)F(hs%t>0zEAv})y=GAt8TgWijh2;3hvNy-}G`@aCk zD3OsTfb*AKI7!e-7pv08dz-SDy>znUEwmj9zuq%BFX!R-1zoMeX+!UfypV7tu3OIA zo)hzO2jWct!WM$1dF{M`yQm*!B~K;&bx{vC?RwF+g17hk+DO5RyTTB@Ta^3hIq`fZ zy}mKS$1U&*`qlTenDSvPG^NK2gvkL+tp}!tqA#;X{S}pYzqd!>kN}m-3i@+-&}D~c z#n^jgW$kS{u%3M5zyP~bjYyZDi-F8orzA(^X4laP3h}kL*aq+AKSsYFYDBeks5z${ zoX^ZWZ-b{aoBztPo0)6q*Fm}ysj+lH3>6*AGF9w@!$q8)01cjak54Egj;SAN$-i|g|b-;_hy%#PHyUUNvkNpBRA5d^i;M)pEY zl@riN34@mHI_`}ysUeEOOLPfqmgaRhEXSFsiS@OzoB%fo>jg!to;-*d9|tP1Dos0o zg+?&BwJ{+k_etZg!i&_VxW_AkGtx!<0f{p8SwEbGza_>m!-*ROGc=LxulM@J$!Cb$ zeUz-^JqMJVZOGZ|>+0si@8!51O~zM9e_3*6jKoEkvX#@%JY%C544%JtLe0 z9|w6dfy}r(bBkrUj7{a4>7vB$SxvwFf;$OmB@Q#{F5-A?0|}MNq#e&i|LGw#@6 zJJ<1Z7t5b@V^(a>>%sBy=xW8ypSx1Y7ZBpD5U)7PyN54buk_~t!%Kp8@FI@3sai=e z90Y8QuN0eUurcFG$w3TMPG~#qDhC15@UcIW2F}XEJ9+3h%kU2b-8-wyjRwg4QDd#& zU{=^~`=gY0_A;L>TdUUh*`vXu6~06(9FO8KwAg95+FI^%h2#SFP;Sh_SXJrj(DCdnnla-CU$}d@#Syn9ig{w+$Q~PUGVQEjk zz(sz|0aERa@gjM}H46zYlI<(MkqE6TBsl(a_DCuCv{G%o5y^&;8)Fh`!9Wn}_p26C zlhaqD1@Qf3J4(VE!2^O{E^QU=28@vfU(gU2oP#Qhb#!hUd_t_R!ukUM%K73kI12q( z9^ArYg!snspL|#Z8l1oB7xG_ex;cPR=nMznK@eN-DK$*1Iq*@Qf}-bn($C5L4Jy@= zAQ0Q!k=GFP_3xR8_wu~*-PxCQL~e`)V}5|d%~krwq>$g-2jt^riU4iAQB?b=i1$Qe zCboS`?D<_ps^TPpN?^{*CV{^>++*aBS6QhWIzhWTo2=H(T*~$y9bngdmn12k-K;-I z(sT+W|9n$d0sgGAn!Pq1jfUwU{3Z9f(}A5~zE%(MB}K3L!}_oezS2?|S@NXMg^pY; zI4zu=Cj&=Mcl@Gz*d!QYdS68x5l~+Im*>tpfKg?WFQ!YS?;+ET*FJaySlg(&FF#u* z!|gT5lA7;6*A-Qci3>luyUJ_xAoIM?9IfE^_ceN$w~durMk*X$RA^Ndf(W~3E4`?# zRVI15`hDR~JLI5@v<$0U_uCw?89cnf@uB}rsB*uE>4|;9$|C}PG>Q`eG|LkO{#NEMaDsp@KR}ovS>)FGPAA&ZKcQ; zajL{7j*4BS)}QZMP@aAdcF&zl{A$`1C^k$HFgUmo^T|24p4r9{o;C_$3JOP;{S>)z z=BU5@4J<7S@FNoAB$ zqb|TT0Bli#`MMGOs|DRJaRas`Vbc3lHYUu@6Pij6z%Lci#L&-KbP$#mFPwtvo5pO) zlb8B^of8`SK_l(fPZXe05!3fNr9kE^;V0{oZ8DuD{;#rET164YReg#5Lx?3Ijdy;F zq@w6p_tWR4q{i85H5K7qv_G;i)u?sJCxnOh(85n)2<brq8p;T zXS#VKW^YW52$mRcSfw8SarftcxIjnFDG`zXF|8&49)kZT-0bRNY4e{Wcw0ponPEnx z-V=2n7Y5zSFtIxlkJ|=F!^BW@1`^^8*)4<2KT_uxD_NypNN^%y89oe+{X_HOF3ZSH z97S#pt>lCg29IG_XOfb`zM`j-4s56FZC7yCw~~0aw?=`=9d`LW|KtK+R}A7t3M#1^ zU0E|Xl2tRWW4yK~hm;NrON14<-V((9eS#KsE3e{ZFWQfMQ%IGygE}cLEdPO5ob~!X*~bbcg-N2T(D>&$#S)g3G_0@g?DPH!bj!1 z?B%rUMcM!N;Sj>jXn`U8KRB4~|HqoT{TmBe+S~p6oJU%=|A+>Z?^^x91rF4PR86j{ zt(II)%Y}FD+==#F&SbxOUurR7X6q;ep-F~{kDZ$}a6#na!*Sc*912vKe=N1V25;AH zoQHpks!{6E?_K-O80SRuNLuQQDAPn~x^o&Ts|w5%MV9Zo&KT5BPwR2<{ouc49kW@$k z0&^0}dDA}2o#L4-v}jT|5S#JR!Hc9+FHD84)$Aq?j8f4xeFd=KD3Uqnh^GrU388#~ zn3q%F#7XLp3+n8Tc;&CP5#yq>IOi6YlMy9uX5;+%GqQXAe!fq)q!`=Dj#Gg)wV5Tv zx)UsWLOjFFW~7E9{PQ3g&78z+TBc2H4yBIZzo^)Lf?BNKv#Q8ugQw<+hP^7Xp;P@m zjIqKX%>s#b`^s2Hd$Y_r8j(_^`-L@`PM`oNsnj9Uf+b?K2uZxPmBIQoA$>4xU+`Xx zJWCX}HizT8pT9Avn8ujbY-ZLqN4kv$Fwn~+%J#GDM`sx85?SnDXzyJrpL&#%_|?2< z#EiiS(%d6yCthq>cp2%;!f?)h!z zrmT6a$Z(U$sd?HGAts|?(O+~*hvi5lbY(j_(E_1>^#KE=m{l?No2?QKI%Vmm13qDx~g zIJ728Q!ap%HQJUaC7R%9^)A@YoHfm6Q_{)H*c3Z2qYPEM%;A{Llaokvongg)vLQ zUd>`1d0_Zf%<4Hq7;T=+zM*i$DtI_~6=IH=sY>WLK5q=W^q)M=Is(%GP-hwh&=ZF$ zID14WNU}omeW9s{T$Ag^<$+t0Ep)_v-t7+$DSi4v$Og=P7YHhcfvmi_xL2QR<}lC) z&OKcw&0%tnA44Xn*;i0xvghu;i9_25@AzKe-r+X_(2!zm;(&mg9Z<1P%YpuodBG+k zzon)6#!6J_BFc~xf<>;%N#3d~%f~&-@E%S4(87-Da8d4k=)L?bne^CXkPNN}5CMO( z%JL>7s-6r{U%z^PDJRH-uM>U$hdKYRkBu8{Wp}}}#<&qDV%Joth@wI;yLF!g zsP>E#(+!u$TEe{4m`38-_wJSCKoX;g6-;)9sKn+h!gU-dvXiE^RzYrdIGS#4>e$1; z{T1mD@59jP^O1?dR@DhJQku6DY7#-|+oZujC@f*_-9YKpBZ51smCT$I<^E7tIg}cw zFe$S^GXL;hi1owY`Q5psqBJdkBdba5t((=#Dn*cqnm!xfHOco?QrHfZf(@0Vb;q0s zTRhp98hSYvZXt@a_8a?#mTkqtEu39xo){k$v=OAR5JK7l4n)9oS7RONFk$G$)GTDl z)hbXX=X#)1X^66-x$=m8cL#K|gENgRk>_z-4qtIim=GK zeE(>vjxwOQQsL#ZOte&P)J;zx+_zg8e`u0!Xmv~vwHL#fTA-+GgqI2)=({CV#r`@J zSL0Rb5|ADa_`50wWhHG5B%$sgCfyYg6zV$;VoZ)HRCdk&C`x=Crd{(t*+ZV^@q%# zD~7NXaUxirfD>Clk=d^w5X>h(6pHA;)XZt5koISJaSx6L&`WW}`_6V!1RhhJCyG){qyE9vOg2BkkM3jWbkf#dA- z_Qy2FdJn(CWpV`N0v5eHcr8oL+rj_3%_J(HxBK{QDdCfk08xNBsc~K2oY7X89hwZE zQ87&>|JRHl3Y9-uPOiUFEG5R(X{oN67UhsCXPs%bUbJj)pW9wO9rO-PY`&?K!s%1n z(oZ6LNm|C+#@Z@@nh1-uX=-%V(C&Aev4IhFZG%VQYm;8{mt|f}F14&#oxt*`x!-?^Pl6y*SX{$c<9s~!>+&RU5h%%b z9;!7gFz;sDHb9?$?pK7LvgQEwc7}?xM1@(6{uj9Xia}$pnFGg?{-3Riwuf{tZ7C2x zd@3YH?FbYRrNUoo`TAg&AhqfsRYVqdT(Yl51Ux%%4;C+(fSY9}|owMBTR4Tgr%AjN(n`U>;sp~W& zC_??hTS0}U=a5^3OK0d1WzBQjklz`SGK*Es>_6GuVM;f#i@&u}fr{cMHXXZ?TGbn} z3$&-(Jq_O(B;kK)sU(g3%`N&y1^68fxTVITND6qaGKv25r?uoO&Nao8?e?gaHTovW z!d?eQhL9D@%}=w1?3(ws`>h!S6H~V&?5mwMJ1vhhRS_kqq%fC#qmugfnl*-$TWM{+ zqCG2hEt(QQoQC7Sb>Efheti_M>DvEe{E0^r6s z^CWd+V;@Q{PK25sj?D^u2OK&g6Xgl^if6Q;y&hcrlnc^KbwZR2jEgqGxx@-`Xq(A`@%xv%%&C~aZ7 z`cQ^3XG$0e;M`n=e4Z4v39sNp{P7OIqsr}RoK$vAHoY*!6$l>ZO8O*Bxh=sh| zvF&rX)p;DQvBfaU6@HcXrf_XR0IUU&>a8l@41qu<8*ZzJg-gzuW^BIo;|Zz- z!+F--Zdz{w3ah1?xSYD^Vkg9_!m2-BUsQ1~%@CoDqukgGrp;*ZHwInBV6WDZySzkQ z_avL?B0Y+*I#QlNB4Ow-k=(wNc!W5q(~}n|wsh0!gH2Z~1G7dwa3Wd2+2;gf3u9M^ zt|?{?v7^I4Bi81NgtxT(kjQl#v@u*$wJqNm^GzavAccT6Bt=PapZ>ZXV|JLRYU}xk zrn?gVu*%oU$s%bMCaj=z*2`QiH^*8-P0b#gPgTw*Uk{F3{=u~Uk|M8+BsU)%vddq6 zS|p~r8dG>kRTnMY-3Z`kZDHWq#0PpNl8XCC@oEYJ70O}uMQ1ncGB-nDw0wUDepYtE zPZ#Mw$2f5=*}Dfv2GC*u1}lha=*k+nS?%2snI2!MU|uu#inr~U6j0&SOkX){gx1}Y z%j9fgp=(4ah#?~W&mlhmNTJ7H4{7FbXVl4JTs-gQr$)G&Xyr% z%lpet?{uNjY0T`TsKvM?tR2jT$i6H@uHSIO#&C)qXcMS+7gl(jgJ>4^yi}XcH7Ib0 z#zXDGprQJix;K6Fg-ce%KD~74t3!-FqrSPWo(&uOU|7 zChK^44H7sn&(q5lvMo1ns*6_189z;3QyBAbdpfzr znYN7JX$@U`&&6H+S}MKDXq%vm4JjgdmbNR|Hc^*Fe|w~P$Xid#c^r{tH!NW8Wx2}; zo0QPI7ZLYl-|{EnB#xsFV0-e$Q6EpZ6Z}8((Fb;|@RLqJKwbZwG5=FqimC8iw=9Ny>Z79e|_fk8Nt=)!;v|-G&D(__Unli;@eeEC7SSPMnPhMh&Ty5 zK;!~T4n)q``(G??E%EUY9dUX;dm^w~Bd6z{U!R|!cfJ@fu6pOpF+4nwSVpyOvp$e` zzQ0@83*4`5c%S2>*d|dI|I)n__&{LNAOq}Roz z`$vvRe`SVUQy)!EDbG~u{<@Hn!NXW83X#TQvy-suv(n;a+0`jg9}}v;W_RWZ{Ie|3 z%@+9Q*cw}sIg2lQW_04KQg27Wj(&H*b$(Zykq8f=hw7%Ea|&bhzFR)uv(YlT*p9_Y zsSd_MaalD>a8BJ*wU%85$Sk}?Vn|v(x{*8lUp5ymzdE1J4g6vJ`Pr)sYE=i#)-!H3 zn8WV;I0;gJX(olJeXI3if3kZg?xk`6GdnLPxm$}Y3nmX3>;b{Z;?nwLGg5je==Z*&~nmf;a-PJdxo8KqL=lK*mpGF@IUY5`yy*X>C(r%fxW9_nA zLjm)RTS1~}ZCkaWw;XeA8z{p1rWzP(@odek$1>`Sm8$Nv<+HgaEz6bZ=*HXoo=0}! zQ*)zla{aS~z7FQW-S|h#UOm(n?xEkZylx@%(;=Ayy*j~mr`Gx7(nc9rby?=a!PT=@ zGfieg$yZawu3WvW#dr8niQ`!=KbA#<_rX_>Ax&^ZQlM69tv2nb;!RKI=m;gE#u645 zLTxi^w)3^V*YY0yKsC%fA*!n1A0(j1wTW+4W|vgqZeH)sP_KG<0{P2jmDP2~_L{t| zt=>xYUh^4j)C-(UKR0#Csb`63H;>F7J1Hh#$8_ z>|!+yv{f=zuR~cy?%|7VJ3W41=QCXpfvkDc^^bgUcU%+n)bip`ZP zVlDK6e7gy$BdSvyZc4Ndbj*Z8VoZHNc1wCKYkHnxJhY$?t03g^Q|Hz4z1d`E<_CvO z$hJN{a10=<0dk-8B4`xJQq1Xf5#kV#z;gWp^{H#B{E)5sK+1F4FAsmeyVZfjAG@}d z1=prJsXJY0a0~4t6J*~b6FbP0=2TioT{02aOxH0WXolwT*IOOPQq0M_foBRnoS?lC zN)66<5AvP^dVBIBw+*q8j^f292szAO1+eG+;iIQ-`C51qw!GCNGn*goj z@HmP%4Hpt8yv*H47<0DVu*i4>UI16K4@Qy9Ub^Kh^c<8OmTpY)+p=c2-andHr10(?80AEodp76}L^X|cG@MJ7 zo{0;Kjv#!ruuGD$K?HYDf%oM-w#UyG47l9z$&jb9y{{`Ve)raheGv$KuXp;)pA&U_ zJ~-y?uO~k^m;P_oh(Ek>Ul0E9XaC;g`Q_i2`XJu&KG(=NEI`ICJV5l6YL zy@cC;zn)+1NyY*VUvmw6eM`xWj`F^4!H2ZWA@>?Cxb6||H zeSZ_4zvQv>ujPJ8YY+vRS5(ag4|H3R^FKTzz>bHmvfih%($jXKLVyjJq_0Qm;87+;Ha`IW|x^@(v zNPU90*;5JuF=1ogB?h30WuTQ3SdK5+!~6rq0W)OI05U;0EetMd!#B@Iu`}>uaF!Pj z$k&bz!6~FU^cL9n3lG9_@QJJ5%i8Z3y3$6~9_cQc8#$A$0M=;XO$9Mf9Lx$Z@N&%l zrA!pox%X)l{DBzZ4ZeMe`!%LR-Jv6MuJPj~k}Es8_`u&AiKJED(33r)L?)@+pq=2@ zX|fn4>%6_U*8_x~E!*`oaBqy7<5tG7)=_RvI;5+CKeOleK2|oWw#SJksog`w^;Gqo zb0^wFWC8kvSitcCZ;kK+Dd>#Jtu{)orX6_Rby2u9IZf&Cox;it?9R-E12CBn)FCfj zmrAL4suQYPg#}e&##oOA0fCv>EW(boS(VfV7`EFsLL5O#5dC-z!lGC;&~akMXGx39 zOeZc`_2kabw{hI%8#pc}=s6|L4xFPQY(&MXA<_q+dNUt!F%_Or7cS1%fD!<3rNBA9 z1%Ecj5mhjlpBj4p5Bw+S7f>mhBbtrNw7PU!%U2z4c=C5 zeC36YCVlZ6LcsUmx_NdcG1z}%uCVZ+`8nS8it>j~*3dEwF?`CG8~yEZfY_LV#F|;? zm?4b9X<(2A0o~*qw@4f;iasp-Sfn6cY_R|u!5g2VSqJF*q;cW*uENGiZb63(kXTv4 zIa(-yUA0(zE{;I~Y4FZry^!4Hb@!c&FPsoN6*-`x1pD_znCMStK$q6d#v3iY?}dn;$tnpGL=pGi^lz(vTJW5MoQeKY{N%UwHd z+b_wLU*JSTJ=8QoQ~@59<`dCAx!qn_pJLMnPY@nk6?@m0lO2e>KmST6IB!52jAj#I7jxk5@;7xjU3FcS={56+2I7Nd@;dOEf8fd-y0#T8O zwj|tfvtwiu$oCY5-Bo`$48m<1MFRRb5@*_B)YK;SyggfX6DHpjc=uv zx5Mgn#CrNYDQsLQju3IzVjZOz&K_kYIce(J%l22y;TU|YsU=V@t;m9rNZp9gF{t5dbs@Gsh!ic_fMZBBdwco zWXCi*^nW`N`fCcd;?Qd@qPsh&VjX*&UCQ_1Dy9%W@>*~E4DT(Ig7#CtYUuZ>40@iZ`FHGMCf zugHt~ocw?;;d04$(UUkKgo@WY*a!Vw^%6*AfzrdMCQw^3RaQUD)=bjd{#%`jFcTON%^Be9^m+=w|dA)B{U+>RL?)JI(>vePAF0Yq!b-mu^{vLj>UwdtJdQqg0(?5lPe*2_mctvv_=wPeFa3)i22;86Ywht-!zcv6pi?RlIipTzC^ENC}NMS zz8rA3G#Go}UVVxoL~yz-w)HYf@)&}CAa@`<)rzkA| zKNjDOnd%FI~nH&NUriwB^w4@8J#zfwh%s5}A(T2_5`2EeiZU4@UpYZr{l( zxR*O~j2$qh)3?R{D7>)%`N7g`nXro`Bl}&LfyAMI>%57pT znfDW$cj7GSqOFE&W4})ZB*`XcMUD|w17pBAFRzP=0+Nvkt+X@+ArB-{^g6N0_4Qw; zFP{GAt2fA`T)@}y!DlCXM&N`;pY17$6TUy$Qz9pPf4t|(obbz|JuP&?5BrbVdKQzI zQuQ~*G3v2ywPB6lO=e-68OJ_f7WQqn(99I%8LyT16B(<}(*a-51@U#9&W_QP{{9O?K;RF$0qJNPwq3c`w3es$I4_ufnl>*M{u6aXfDKO zWh@>`kF4&onj{*Z!$CSrrg@Sw{8&qSYEBWx8uV7SJPsXl&!!^u~6N$?=KcT39Xr z>}G0Yr-`*%Vh}BYNG)dZ14=NQ^Qfy3HN42@uWRkVF3%jONirOUW<%J`Xg7TLmelBn z-$>b(l1k3eM~E9FU%8) zF)~mvqMpGy-V@rcZ}Xstk%>IM^6S0?%+5U_s%32aG3XECW=guAnvgr&@vfm>A`f~DF_QXD= z$Pi#2sJ52pI(x!qZD6y$h;s|VpHmdh9uu~8BLofviN}xm0cffer3DYYkRCDr>uuC= z6*zkKT>@Ssp%iEY8+(K23$UHfPcjoiHb@5JWH22>qf`dQ3$e&PUF?6_4$u(+glTpH z(E4bc=pP=#51kDd-3cGzr$7t>p`cd;x4DV;b^zoa?a9En zwWkR%>edp^Ys~DM%0akrmIKE}p5t<8n+7_kn_bZW?;F*mqLprl#Bp)Y0&X<{EOfQL<_~t$GsD^AsLUgL~!xq>}(faHK zquyjrI0$m%Il;*L&9s|L%u~&nioD%Y5Kt(DQ6iF9D6RLF*e-f{a^oKXnD}&u-1%{b}7l1}gouqDjTkNb~h5DpG4>zhg77S5_Yr^qG;( zJ<9$)OP<1B4&KYpDF1{`HF7NCh7Z7CD3*ylt?7n-;2jnVPQ};uzpi0$$u#wP!q3C?!|`PWaa- zq5is72OFK^p^ptG9Dt+E2b4ZXd@pWxKp-99|{5N3=)HQ?tohyf(r}L#4ZDUz}Tnp8jPz+0ZH>WJ!h+e21Y4Few*uZ#KhW5RsM*jKvLPevzZ^9*#B?DC(irk9K|EP^D4dBy;v3!*z>9V}Ux*Epd#;``S*(lzZ1d~O2`&N)?JK`!O zLLaUUi|Ww;>vY$9KAG4Hzw5&f#eB0a)NJ`J(>VtBF3V!!-cK;98E80fwmRjyV-rt1 z+ef(!?a4)kd^r?a6M%?y6M_mXZHIoG=!#g2_x8-m zQ!{}-!bV`^bhfB-!9&+4W%aTKYZOV>8; z2lYhNcR*k!tAxn%LWKk9p^k56vuowMFrh;-KCyBeCx<`cyReTtyD!(6BFjMriWik( zYAr#>$>m-`gw3g?^=561_^pXv)OQseQ74k`N)f9?ih zrxpR8x{8fyaoc)%jR(t*fGZXCo+>jP#fKu{m8?s)9U6gsDhjVQcP$n~s#j%8LF9%X z7|)kKeUBrUr+!DmaJH;YBUNNk*5L*fVIHzTl+#qNwq(#ifvhti^TYAM3FAuo>Z460 zMc1Wc`axvlQ^X4MbWGpFu4gj?8yyPh`e$uo+dX|sRX<=h>!wQZRL5i#gTs&VjayCv z!^VN*)Igfo4G_Yr=8nblWRIQg*o3}riDAGbv8+=vqlegs1(YvuayVSr9nIbPlPfS% z2@NY8o+;a51-;w&S^T6Xr~9;+=V&FL&CGJZq~^J=V3H{nBlm%s)m%%#8D#5fUf2nE zqcP!A9&9He82cd4$uT^1?Rf8GqbL^$PTUMQi|_%nNP7S3liRrSg>3Z>G28H#m5(2# zVv&%BWaRW>+61Sqm06UfPG1(9x-0z%xAxO)bhoi$!iQ|;*=ZbXo&B2c&m)WonH<(b1RE?&C z8h0;!yDADv-ZVD;@KC|}Up5Vsb~TQY(=f+~>AQ~6Tw_F}p#R!T+5 z=#=qN?)8TYO%yACR7=}WkE)|y<;Ta^{3LGk(s>hY%n>Cxi#emjpu+Duf7C8t6n^gF zkD_+HJ}HLc`K9=$KHn66bQHIVCunc?Q5mH575cKf%qMax2US=5iw#GZTaFr|f4AXK zRpYfIx-}=Fe5s@a4JArov4)|q&EFI%w1DI)BYoYfleSo6(^J;@#08O3Hb-1ICgBSj z30DlHlrCZ3qoL#tWhmqcg%EN@%T7~Uq03i{v1~=LjdXU5138I?ZsH4egheD|!JvSu zyGuH3Doj#t25K9r)qQs45vYGKEh^N97=r!E5X>x5428_0%3aN zR0yA~88rZrzNwaIVV{{L!v&mq0u1#?LmHEg<;+_qT|wspf}p=SrK&~+S`!mxd%%yW zIy5SqB(^_&?1lLwZH?xp`M;+taw%_!&HRqtA8rwn)fVV0rT0g-S zPj_Wnv+1}pqLIup%@%lvb|Nd!E0oPHN?0$E6Y7|~YfsUw+wP{56G25NFJ_9( zbh#hRPgF6ho7@KCNf*YGejuE3M8r6)iW_Z1F;;T4&UlADS#^*?t{tnQ47`TF2iPH$ zPfc4G)uE8cMfJibXjNF;55%&$M+_oTK^2#VDgnOhFw;be+H%{Nu)(v+AC+h*^ zQJ-29lj%Mv9i*2Extf$UQP2YEO_?C^0Nkwj)KRpDFR0jh6=A%Nc{DgPrbDnn!n5Z zEaGzgg#xu{i?hv=L;_BsM7UIwK0ifUx=r)XLWEI*_(WfFk;!JKI%O~tb$)V*O^v7U z=n-_e$_Oa1pW<#?U+hy%M!;!*q!4)rkm_$f>ZqL9kX<{x8ZnXkh>yMbb`DeJ5bp)- z53I(ehtn^C>mS94f-4%gp2)zA1tqQv-%H5QhU7}L;qgGC{RQnO5%chhfe^%9tvNko zLOi5_MMnyjbU0Iwf_`J)Ho)sz217l=5r6P8*o0N z!gay7=kS4q8xW5=yuafXaLAa?HVsA1MyhEj^xgtU)5b?4M~jWI53Qhbrk zE8_PliAx=uN&pU;bN$&5MzGtpu zrR5xc$T1_23s)W-_*n8_jHQYaI+24EcRRz*I%$?D{V&RKouCZJ$y!b28F5A`C@1$KJu-l8lQL5=tK(=@1zAr zwxx(*nUga|JH>`=GT>faxY$6eJ?2+5@$(=Jg$3%{&H-C+W~fA5bCZ<3@03e#)EQd> zZI9x`az+B%xg?m*DPRmpceAeH9K-tz0TW{OLz9&|9|4P=r;^QA1cbH4x*Cg(niQe+ zb|v7hik$0NpwGV9syI7!rhBe)qtUjguNDjItZ@@nMgm_U!?;S2Sun4}KCp&4^rcb| z!|B!*CF0JFeZ(2&%<9Rjv*c`|85(bK8&MqpY=o<& zod!W`se>=vm*XRSF9)jGAy+fNq)cy9&;~|I9Rms1E*!~}!0p*}d|)Y!(V}uq_hV|^ zg-kteVmxpcdW{Tfr6tWxWyX})t?Uh=CQ;ZK91QdDiqbp8QQtgts`A@lOv`uehKS!~ zXp`m2x0o1_EVP_NJm|(G6}JJ%5?DWz==yGD91FfjyULo#Z3Hac7;;*yNlRR)%Xb3U zSu4eeyy^2@Z=RO#BbDn0nP))shDr6Ao$s#eVA}^1b*j6ebu=G_Yx{nn-*Rm7B45-u za)Fy)htSg!P&{N~XT51$1Z$-L*tWDDcvQM)d{Xi?1Hr`vN^Ih)AKnriblqacmF=c; ztbv>aui%HJX|`-rWVn^z($Pt`c_*OL!J&=G;kj;dDjtwb%${b{0VKhnK`|@j*Vpl0 z@h(2#2E6w=0T&jmrA?YAika8ZhDeaY>HAeOj>cqe{bB7hb+MWu#(UrIy?2O)x>HNP zN2R&Y%2%5LCngr=vM5%`dA&=QMqATm1nIq9_EM`|>`3l4e*9B9dYgg<(YLf4%5E8B zWDuSNWD3HII57sa);B#q#!cDfXdx>=r)yctBKe?g2HZ-2VZ zs}Pxaqs{d5<%WE?CZv?&Q%QI+zGBy7DckSXs0tbR!~~x(H;hMBJ7Ne90>joB*p67t zE>(&IWl7LEpP2}aOdKTUkk2BS&7Ihbl+y8TrHnNS#>VPdL{dORqrhElC2!-LwLbD# zV81(oy{5(rWrrNaQ8$Xqv=5!3%1s)LPDQA99e8ga`o58PamTc~oF;1P;AGtKkMpG| zW6$Ug)y^LxBB{6Yg`I=qw(2X)iVlGLoA4bX(Z; zAvHU{mCYmaX4^v~=&#X}Hi=qVh72>c-WFJ=i8O(>%2%MrMO;iZCF@a3awqOe&EjTM zt6dCAre?&X@BSBm@%T#WiK(yYZ_c-7jD4QwaHx(cJnf_aSU2fR4SMFn@?Bt$#h+tz z{yWN&5xC}+PESE=Y@mpnB>dK_sB1mnpll`~%r$9e`O=(d!2w0Gvm7j59W?xKF757O zaQ4hpH}9bG>PH3K7Hef{QP_%zI1^fAnTIn%1@nOk*u%DH$-k*&O(_VM7TI|Qs2hHk zeKwrUM$Z4aV=R6NbNt{o~!V&)vgFa>OBhJWRA3t*XZN0JJZp!w8 zORKJu`>-kRhcXh{H2#L@1z2qd!=83+YM|MgS?;26I}f!-eC|Mr4SZ*Ln2V??hjqw< z8*nER*^~Z5)S*+g2^4FECsRKju#@}hc|0Y=jZ0~B`f@Ghp48s^$~S%bISPnLk`Fy< z=L;V_RH-9Kc?VqffLu84cTKgW#ZpN1Be>v;)j z+Zcmg3p(`qzEn{UbuJ2BHB1+lay^ui!pYS!7$yvv&O{8=gE#jUhg{Cv?KT-r1LABw zyFj~+3KbF#leIO6g3PGO2=@~kwR7b83vPkIG?rq6S6qP605qZ~zy zMzGE(n_#LTa8Mj2QRa$^mR;|&&XDCyyUb+9qSQwL6ONo-v;h4|-=G>ts>ikR$J*AR@|%;|OzHK%RHP;&*TU zR~*jUmny7nuQO56uFKqxSQ+blNVO0n0xDWPo){FQNT00f4z4ivfy^LdFO7$FFWEC{ z9xH_0$QJ)4*r@%wvafM1##)=ZrcKJ^nFAg zAr5I%l^{0<{#jwOJz*bVUaL-qv1c^-UPhh$N4vATGx5VoZ}7~U0T!k(q9iRuXh7bV z)SQL6`SvVa7^=?^)s_50nFPMKx+Q+B)XO7r{CydPq&CK=D|FjKtm28qvv>`|q9(@4 z8o{17JYSIM`rSH}I-liq(t-ThDj+B4G~{2 z3^a_m$d%bste|Yx^g~v;PRq3+)o~2#*uet|whd%cg#Zczp`_cX7sH2e=-_a1S)4KU#S=&GUFC$WjzvX{SjuD931bc&4u^GoL(uh`i+_QoH904b*V z&rg4Mh0T8v4rKKIEC#SZ=Rb>q?hM1?!N10Aaiss$Y)#S1Up!sP;tk7@Ms~Z4f&OPV zxEb=tZE?lt=`@N+*58zT;~^j0AWUPJy^;5Tl&@NSgd<(2tt-EYpL)3fem@tBF8sxX zut&!#Z^NCdHnTlAf}q3BP4Yn)B}yiN6vDUB4A*9iW`HCUo}Y8Sdwag55lASUpa@#C zlw^y5!lf0b8bIBXd);7cpSBF#J(Ri~PFO(WmAx&CbHwbcuZ!j)U$y8QY|z71Z!i?c zl%S-PT&jbp${CZ?qU*q-Z*rbjd-IFDI+qmQU&W&9=!`d`nsm|Bpt>1`YABB8~N3omHNtI zLTfc&)?7Cd$TwwM1=>9&vObI!aP5C8R|xbI6{O+fp0Fg{AOnztgp#x*V_Z-()>kZf z$sS7BbPh7Y3=Lw1H=`wk4c;U_;PITF4_htqnq}%q1(3cdsl^r);oL7_+wQhg8)T>b zXOgW>qFkp_Hf$1b${i#71Vzl1cvN_Rv2q?3(A_l{8brKy?vVt5$`y5r?2NOuzJ}>@?G~gzlZ#B6CKeQN+uadryMc`k zr1ub(jDmCORe_Gf6^9RDDAuMjmv!M0u*OtQ)S_!Oe^Y73j0*FSN)xFZ7$E}!dC+6vGp;CB@#YWg<}zxNWLT|-?gB<6b9Dh@jrC~hd^{fBV183GJPE90_pl<=5AdwU4ChtRP$6Ck zq?Nsl$u7WPV65!$0e&OP8Gzyns>Rhx=gM)?4~!1Q0Xm*fO@K*rhJhQTGlrzTU=@}_a+`G;)q9ZpgVogm$6Ns4N zlNv8?9(fWNf)NL*SzE8vtCiSX)g2fl>!z40uoW$Vyf*6kL~(xwhg;i|R2T42pqTQ* zFl3A`@b>uig=dt!ol%IkiBo@DYW70__qDceH8T zjpB*Jo#=)K%ZRw6<8|yu{NQN9;8ibughI+9!rctr^yv>M;cI%qIogs?vsuWoX0s^I z8Z$e@uk}V1KkD!jlR1V#ZFpp}5uWFcVN3OVWAEFw=eLDt&hb%q-^&%S3jgRC)yJmI ze?pY;G&d_9F+uTh+%sm7Rc3Rj+hWY6LxemN2}}YOLdFBi?R&FdotDQ}T~j;*(g5)f zqJY^<baWjvPNksW>CPOP ze*u!?Ra5QX&zY9|m9Il;xc)g-Qm-B-^yS9@)vd4sDHXxZ{%~JG>kefJgt>2X0}G^ zo?Ukxoc0l?5A9(IwN`ZqYo&^nHi`#OFkmC?{^9v~JJ1KkR$IgdPgh))8WHAO40Y>(Eg}`nYu-FrM7pe$t)I6Y~XqpKKXg9Nfe`? zg31!n1bNOU?{7m@esHQEKN^0|A4EXp{tH93=ZE~BKOjElbuf#6&<|b%7i|lX_j-LN z9&2*^Qm(5db04{>{mW^eaU?$3)|%6DO_HOexA8e+YV~*_N964z7?_*VY&g#!OX^dR zk_x2hrkp>_-2J62D2uIbVT#JhDK^|6`m9PY+7ub!I~^YX@2C6!mGA%bX#e-w$%Ek- zUvL-P+WDD?c=^}OlK#E>R88nKKkVnB_h7~#x-ZM0_?YRYaIs5zZM>^!05d6Z-v@&o zX=dAPepG>8RW9T$HwH7-iOsbW9H+ws_)RwK1fcCksu_;PD;>&gss1IDGo&|%cO;s- zlFW3-Ow8Q&Bw^YV-%f$2HkV}ak+e0%YGyQ9n?l0KSl2Gvqh}l05XIWn9U*?QuE`x` z-rq0UdA?$y=gJ`kmLQzJ^W6HFfMG`GMdn3I1F)pf&|L%lB5y8><`8vsIxzi&YrgRW zBdRRX4C|Ko#_%9n=2xeS{JCUvi$}woX(5>aCSZf(Wi4_B_O(8Nrzd?7JzX-t3 zJFZSF+iA&61ZIR(z;`BMiOn8`?R#vDC7`hlhta$~e4Tv$$OMz2h$#690`0VyABeWG|MI6|}Rdum6V79EDk$+V2v zs81~l=0o2tl;4mYBKJlqw@~t=lEQA!ad5);0i6;mqo%i?Nam|l!7~+jtmEBWL7o7& zJ=LyTdX*h%UGte2nIjcpEqnLJCN~IaaPr_C+t+hSy3*b z{4_StI@E-bBK?~ba5`OshQfQZsu#u5&pEu8y!h_zJF@?S^3tsL=VdeBp!Tkah6--! zInyEOz%D(vo-*k=NbQ;rqNX=19FC84peYdiCi*^vzt9sDj1i+sHif3+>?!gsQT=T@u2B0EE*4cw1hmmS@UV!)HP+R2y6=P|GJ;Mqk^ zY3~lE1X-aBdi&USjNg(gK-LQm%ckQa>lIz7aJACEmOM#seP2F(ao8aSJxN>|Z2npF zx-aSoBOdDYu-m{5WyopB!%ma_qImKmn?K!)T}guHx+Io8tyd}h(2*j#1~2^ZYJq&+ z&`ZgKWRRFG`D-tjp?@5pl6_LOWr2IdAANQ*+C{l$-bl4D4L8Sn)jgft?bT_$%#h(8 zPIa?I4ngz`~y67kCy=whF^M*&%?)m@PIEv;9q)=&x@Ey16%DPZ!xDS zWqg8a3ugu{$S{Z=f<-?ToJ)%n*&q0KNRQaMUY+cqu24$1iiRlGk%V3Qx9FzDPGtj4 z?9U|P`APQq11Dw^igk|0=O-yvJB}|t znLX)(iQ)x+=kTEq;nx7!7bGx>iyeEwh^FZY8m})y8GR>(S|~+ zEcpMc+bA{*(u-H+Dw~4Nyueq{hqzW4QRx{}I2uVeN_6fOb5qn*4L2R_2o#oCPE@yQ zdkA0C6}&})c$teqKW2sK9Q{R>H|H%#S`mva_HSKnmXpZwCRg*Op8E4O`Ut5!CXhTv zE$rjzNe*~7i;!7q;LJu8MB!96E7q-8!0tUnS&H3dnX`NN!JLSKK8uQFa?6B0!`WzkY=uO7}K18cAZ45dqtA?TS#caFS;ZasK$GU-zXqJ_vU>eEV4&^ zlX&~?&C$zmg6RI9`OE7RbcEc7d?Y4)F;e)eJM5_PGN9^daH5pP^VHs^Ohl*I9zXUj zEc$QIjpIkZ#>*T8klX6(Vw>ZG$0sA$p@ZXxa9#{YcWOEq4u^wo z)8YH~mY2@;Lztd#F$X+`4wS58R^RKg!_G@V6XTtExmhkvte^EQz2jm!mQ|}DHIxU< z3CB@x))Pl!(xWGIxd$$!37aj>&!?f06MvK2A?$Db-tM&gu^bX%dcJ)ZxGd=(M&un% zr~GV+J~qGB1ii@(!;ByCrKb^aXtO0?!{JDU*~T-pWy~D#*PmVM)rmWk+nUwL!Z&-m z^-{X;+G$y5f82u7b@Yn6jU^uUz}hhmmstIAlShO0ozbBB_o^I3QltC&gZF-Me`X&@ ze>=LdC-Ueav+P0igpW5xUCeT4@m{I?g1`=;OPdrLV^`&L9o;i(sd;bV7*pSYe4M2%G! zL&}AH{FY(aF%Bx9P(o>^ZH5u?sV_axIr|5-WU9JA0LI~f#u&|1%!mHF_*04i6zOOx za;jy=bwL&mo0DgBa^76H7N^G7ycEM`LeE+tspMr?ixv33|}{ zSxU``%lIrXLQw zd>`AZaTyt;gD34UacT_gcuF+D!19oJt22okXQpZDC({0EOCahTh2YeiwHsSH8hXoM zR>~+`xK0x6H}>>Q7aMqZer|qDy%ts#HNUuYy*#-toAoANs>IS=*ROOGM%_^sZ|tjx zSOj;ony#ASto)E_g7Y2(WrpryZEh-HUL=&O#+N~E8mB)?x&hy_g~|UgB+S`>xn34) zoq6HT=US7Mx~lkICZ#GYG+iD;yP6We+f$3>TO5qf%7Kq_i5Z9iv|zolmBlLRjnhbiluBW zojhuv-22a}FcXHPnBZoTokxogfLn&|?>-1D1k)^d{hzmAu()+s9RVn%IUSDf!kj7Q zke~~R;fv^3;bF!ZGd(iGUYsS;e>jgOBoZ|Lory$-o(u{4<$_v%nc*nt$eY<)n*G;6 zJm1Rc((Tl+V~mcvD?{dlW=S-Iu~GE`b1@v&a|5pCjDSpL=%+z%^2EeKIK&^Q8)R@z z;%y`k$Pit;(J@=1eaqh6YJGBo85We@+B$Vufz3mVL)d?ns~34yp5avKM#~@pf`(oTlu#dx8+s2%o~#)58aD&Z?pOA+a%q$W8(r* z2L?IXF*R$A`S~!#Bjmb#kn4=-@9@rySQQOKcw4M;j!>f72E}S5HyBA>0ZiSpkmznb zU8R@z-fFwrs?5f?zm{4)!-|9-P$+=mBB?W*!Oi*;vd!SYlF-Vo9us$y`1uVFhm;_O zQyNE`Q;#T?QAI%JI-Q2yQ_2+1LUzv}@Ecu3>Nk$MU?^Tdhh`#Mz+3W=NL(&PaaChU zB9CtMmw!5b06KyLG^H?ttFi91`~?N zHRp=po>Q)jfC2oTgpU`30ubWG_c2-m{<)8J#n0OwqQo*w>t-{@)GRZ1m{|vd zl-;s|LuS>K7_1P3rS!u9-{gwo8TROi!3$|P`VRUqxGU`plcGIGnL>nj{OuNRZLK1+ z=D5Z%F!m!-!npMkA`P@!@t8uxsbx6m(~NPi(cKk4HN-pVeb_(fc4jw;zAft113m*( z?|9k*$Db<4-&q@QuX`>h)Kg=L@u!%d#+(96q2sQ?Ko!hvH2k;SoO%k$J#&+gxgs%k z=Bu)usD5(Uz9du&@wW3etOKX<5GON!=Xhy^aNAhr6_6?7Y1_iQt-;y1LU4UF3idH` zL{a3^mMX1sA7gJ-I&o~Y22?0hkWUT!(I22xFiqub_nQKw8Z3N4PY@_o0?8DhRaZn$59Daj#nvv0 z?28>-JM*`CW>5cM&;45N_RzT)F#_JrdPZ354r9bMSX`(JZawUYFF8fB2rJ?^!cy1U zFYEbbP@`mw*~q|9#pXjL6Ul;YAsAY-t`R%Fb&Yrq?*K6GSq5zVrc?S!mlo0(1VNY$ zFx;MZp51dJ3hyD1f%id)xv}T?VTh(qsdekyb(QBdI+;}5|8^T7JKUX7MPl$QrkGvO z!U;sv#I{;~z=X+3VxCZHA2n7>yS-XmT(u8w7WsCZZ0WxX73@xZh)8MSxE~)R=_7Ki z>_67@^7!|^djz}m42v}w(RQJYcla`ZqD&n8JG;8Xe^Lv%gEsrdn5L!pYX_CVj#E5W z(~6}@djk=ubj648>LE=VUbABZAabV;NFr7=?v5|2q1oYjhD6iHI1)_M=aP=7d4!>JT*A3)$QcZ;sv_PTzj_`t_?f?_zB3=oPcJ z;h@HxKO7YW!X@~9Q!UHta$sw*I;Pf5lX9P7E%DhlM?VO54lt814bPIb$%6XjaUNlq zw_ynZ6AE~&Zv;5A0S!|rc#zt0M1_Z79c^PDZoOHfx6U+|Z87ilz)X>iThPH++>f8hq7%v>_J2!yG56qB{F$0L(0mF1l*ocVqXF z5e>^_3cK}PF-&1Co_K7oa?qD8-CN*5#gp}Z`I?*0Jy!wlw3s8SGG$BoST5ya?27_j zAxVB(Ul(yJ5ktdTZiGy2i0C3LAhO}9KHDysPKp^YX4X{MLtD<^*zl-n0(vc{9 zrS&^Rs7b5#lJ0^R&{F2Jkd?hi+R&A~_r0S-c$F*u=~Kf%l0zfdS$1e~eZ;@~9px5f z6?5b^+o2q(Gx{pSvvJt0_jVHY`k-Nz(RuH{ghHy>NJBzAAM zz(O`M5ub(enM37N=GMM0B6HEyu`WT79O)=rUq%0j(BFHKbrV`4j$sv9k19wI)QdGfs~ zfe2;0=}9o?4N(t)`|Obfld{fS7z`6=QO#?-l4>%fw1%jh5>P`&Oi?p5&D_k%bYLzT(g>OwvX^wvP>*438mYQx0kgZ370{D7J~cnHnJDr27umQw<~UNV)(C zEbWBi+4n~}Nq51iz54QG>XW*ZN|e;c#P&9}gPoW^MjDIXN#J0J_5ho*L!;Q-zXmmL zwZ;Dy>p9)Ob}Oa~%)kn0e^wENqg~U_FrMDo{vFuJtcB`!awfHM0gv(nnmk=FjF2>c z>PTBVbA9~WvJ(&{A11qoZB8~{)qO_n9pf{)pt<;5#S*_e;%D+fRDPADT8u>E1)X^v+v|St z3kt$ao>Z>iBoGgd3{fPh2a({3=rfYLfT9DWs}1my0lwnnB43Xwv=4<1w{Z}pE#_-R zX>TbX^Lf)IvzgxRvzfY<{jA>5y@w)=nD`?EEZ4rwW~<9{r8?sXr*hE+-e$m;%oQJU z^fPA0q!V4-V-Jz207Y6!-C*j*TOJA+n&QaD*xFOQ9&da>cyw3v&(S)I=`#FGZMEolf z(t&q`@Y1?>=yEW+MT~C?v67ZywIWAT3ocCxVl)3)wmME(($wsxtRC*eXO`j2~+SYDjrI5Cr{Q-t|6`sO~%N zAyZ*v)alwJ0coJRA9F3)o%iZ3%!;yv?8(u&kK6)BhU6+K^R-Btby*thBtUQjqvmnf z9*1qSH`7;tzJ;V5B!4My-8m79VRtKe(r%A!P!Bjpy}QzC`l6D%LeRaW#WJ^6phUD; z1qio5H$2^J5>TxgbDxJ!A&H?4KU6*+1z>#77Sj(~Vf9daq#3gr4`|Ai^%guvVw2}_ z`y>YM-NFiJP`wscpUMoloz6&$Lv`~S74X5+m@21r^!D)6ryi+c+oAjdi*28=X*bNi z4Pb0MadO5_i0!dD5<#Y(7Yn>yd-DA7`@?Tvy`DZldiyR4t2-`om6B@=W4n-qJNuc} zH;xRXAAG%2kYH`NtXZ~g+qP}nwr$(C?dq~^qsz8!*XcbIF%f@E?6WS{eP(`o^LYSu zC2iV1LK;ip6M%5}MXC_qf8i8u1O4#*9N*y_waWy{e7~EsWG5cNMs6Xbj$a>p0>dm{ zd;1%YM8zT>T1u0Ey91KP-8$*Ot7gcf^d?C7k3=vccd^;`(=cU1v7=d569z%vE&)J&|OkdXY9e$?Oz)SEvTmUC$BwRK)5&)ur| zt-OG~328Oj#-9EpZHH&Eh+9yov~7u?T*)0PQJ5CUi9m+<)F&Pr2Q#T&luo*BsolB( zBBieQL?k-QF%&)l@xYW$ZS_6x^R*VysnZi)F(9BWh1k^}!j4Z%Pun@ol}sl3B||5W zat2jh)yN{HYD=n@L~wix8@gSDrmsZG4oK<#O%r|DtpxS6mH~IgI* z7<-jjH&OUEtS!PP8!5WcOp|o1E7oBgofRpsV<~3BgRc7BNqAzO>tjpuva-j_!(=AZ zokf76v>O|naB7)W#QfRAh^yPn%MY!!+mYIYFaVO0{44bKE&`BMHC4EPkzfo8fDV~X zJ-eqM{B|CB{k&grl7`nSk9Wi_+gIv3*rvIcgGkR#?Zy}Q$Z;9 zE}ue_Qh6*pNa_0zew&!f9ObIW?5a-_?cIb@U1(i4XquFwz=%w1ggVWU8>)#?0!g8J=}a&A&cHm-XnFd`zlkah8;_~DH8gafp+qVy z$@T6X73-S7*mOc3I3xZTZhf;P$1@>!tXvNa>`sGK1oHsXHgYqn9_`b&03fBJ@kR?L zibhKJoEcG?B?+>$Zr;v6SC1XzkVdvI_*(# zBT+Y|drGUz&VSCT+8vYN*{9GQ5H7O~BvFzsW7w!;xLkcGf)v(#ttq4F-mvlWV{{NS zkGeZiqYh8UxDW?Lc4T9nLiC09m5-2)Ds)N#!dYyFEZIlalk8!W8)-;V}RyxvSVqadG$%uoeoFK}HsuzexL2qJ5<4mxYtubsN+ zz0D96MPnjP#H>Tdx)@OPz=^L!)00C9i@+2TKW(mcNxUGI=sTLayKKD}$?Y`|4WAaI z49x$vGhby0Y)mYkHmt7wbRoaILs z*dq24o?`cL8JgXaBQK}*8PJ(8v~g}pRYr77jWJWB=_pn&P-rON$p*<0b`wm)~Kdt%FQD^br1 z6Q_qS52w%n`!gwHxo&p%uMco%>L$MTqiulVaJta@O6?yaj9!E~Vy1eHVDXjxmt$v6P7GcQYSMMV1XA?H*Z=M0dZ9YKLH(EE{Q_Tq z@K>JfE?=JP_l-X}G04OJVz(J}|nL7kXK6gZj0I*ft?FTgAkBbPSi?{tGfv zu+IB;*;a2qPjwLUQaBgL4NSSdbQMq^R%%c49i*hta=kR+e z+!$o=TbidEZi06pMhr+fFADP7J@d33h2>F4>)Q3!d*j*)UzW^8MUP5woOB}* zCs(@GP7_vKyenqQos2Pxyael&dIzp2mma1Zg>IOlLhO4vZEy7P1mm;g*--VWlXvkF z*BPsxz|fs^8skM-z7{4Ld#!oJprq1C<`zlg)9wEVf#?cmU?idF(Z_7qF3fZJ&;}gA zetU(koBjK|eL6-~Lr0OnOT}2{3`jRL@^b~E zC+vF1)hc~i^k^q>&I5QBOn(HcBiaRvaf1k$RrG7m5_#XOPd)fGvq_ z90G!{n}vuNZN>CO`x&%)ef)C*HAHEDY%P{(zR0yK($?uv*=@2tzdXjW`qp4jkp&i+ z8uvvEGXY~Vn>z8T%$(N0HDd=XaXJE24dH@>7@PvySk)+rx^d=rIX;gv%HA}N63NLw z&~%t7fCSznVPgc(_Vfs04wd>C7yI2laaKL|zJz{s8dM*6e7v ztJXC>mhIG3nAMnZ5Pi<028&?n$XAXe8IB46cvtYyh~*WHy_tFxu{d{_5AYE3(x0OV z2JB$)$)Uef`R-dDsvE{{aVMY6W?T0JB3nN0D$^)zp=vJ=Q9QnYeHp7T;rIzqO1~oI zBxC+ycuftCL}@tsu^1iGa(hTkO(d7{b1v2N*b1xfsFkr37sWxmJiW~l@wTub@%CNJ zN}_akKR|G~$X~uZ?H0@#nYv>W;b&u1&CeLzjZiV0(o#575}&(-|KhL!ce|_^I{`El;mk_YJ>+!8z<%|g5nWb8CIg}D=LS1WWY`ofOP7R3u3bgiUcoM0)wOWt zYfZT;k{Rsg5iIFjRn73!E*KZ5pnwI`;54+ms%pAaC%g=#a zmfEP2P30~A7^m8fu=g9|UMD8TzW|dUk|4Ie_K0NO z$cDSy1Pn*Qe(W4A>~f@&H>1g``)7D3Nf8al`L9ed2Z zi%>A2q7?GC5Hm>O?aopsD1C}s=OYe=vVMJNoD!Z|g_rFmQeMreA}^Ni7==P4^=VL) zoyN4s%i8k~US9S8F_VgPN*+G0dDa?%0gS9NVYYs&PQRAp_taKBvBI*SIU=wBP%@d(Mj9*)^?F;GwV zg`GCHOFN5g&<_%0vbG`e|A2+rNUWGfgEO;B2xhoK?@R3M8!{^_*xv5iG9DYaGS8Xc zx9PqA<`;AX*0X4KJA)Qo(u#qdW##0c>IYy7adi51{_MOAtCze=v1NemE*-&s4PjTv z2~}%rC}`-LWngX&2#JkDO+nU|CH@9u79Byt#|(`L(GnXh;De$D2~kb+IDoH)>(AJ; z{R*FceF6tKPos>jBG995o8|JBuzfuPAv3%Ck#pnbXX}f650)J3FJ?q^Q~Vz7~b|N-oS_BFWAc#!^-G_ z%yM@F*}wj}QF?D^1+`9?)UBR=<57^@Ri2R2o%I!{oq3B_a&Sl>`yrU?zg5t?1$cf4 z_Iw;Ch|2#Ggw&u^Nxn3ga-WODohQc)NhHozG?t7=A(wb~O%jdg;$m8@So~@&Hd@BA z&RBY(c7=gl2|852D~zowyv94?SqFpc0f-3Mrvl%em z*!$>UCYu7H5(+;uKY)HQ%qY!glCtB^GJBhj*VMd^1eANrb zI*5RaX!(vX9X^ZR(J#rT0SP#+=aDo6Hgwf!)5-QA`urgA$d;B*`T$|*n2A%|8!&Tm zc%ovD080~4RRa`lF#Sn#2SUxaHZ@&&H_EViJXg9Mj1sZuoPc5{Kq-y(?oGdZ11vOu zfA@Lii&OHKZr&eHv2M^ZFc=9L$SccaK-MWX+PpmZZVgv{P7@C$+ z*G_PqBIoJ=eS@!Rd{Tdw-NO-Yggm{#2|5D+mKbXt9)_(~BhJc0hWH2@=yO6#r# zSN+&iI9gfTi=}OoHhOJM+g~D}KT$Dm+4RgM)Qd?4X7H8n(8=TqUE+4P56p)NA0QSt z46qm>-k$#OW*@IB)4k$gJ1~%&4TEu_y>nU5aCq9{rZ_IHP=d#f6@?48n?n1^fOP0K zHkPD=g2E9V;)rm5qMX)ty3V`DxRE#^pKNDbh`&rIb*!Z;BA+e_RWpDe>hYvDUhw;1 zQtc0GeQ{~pT^dfl3p5%w@W(udp{%Th2X-;nxiv}S4oG|KdT#W-Pwxar<1CH~cH3p6 z+UC)H`6AGeF2lROyRaB)>@}4=U55^YAA4^#aK`T8!tCop>ug>e<&eaCzBUxZ-l^V0 zdf!)Q>rJgJqHA)2hPyc#8Elh4F;<$_?;7Ct3iSTyn*SN}7%yj+?p5tbs@#mBkFj68 z%BLA%g=24XTF!Iv*^8!*>j8#LsRDNP3Aa@5$b9vO4ELp0VwCO`{A%oAOAccO<~ckz zNB9$F*^5m3;hwjGJgz^ZGYEE;lU^&V+NS=@U<{P!{jsHc6;{xMq9 zwnyw4laUOT*`&IM{o$8T#D2~AY6jPnrLpm{1*ID*B$Ksf&EVoon_55X$NFs5!$$a8 zC0w=j#H%Q@F)}+-H|znHwMhG94q|vtiGt-a)EptMx2EHEw`S6$Sq296GsWFXX2{_U zW!WNFmnpxXSm<99t!(cqQKJHY4n>$=K;*r8cFf79Nf(FSP9FEt(Vk-*v4^gYdN>9L z9T(pmS5YM{`nlA|(Je?6Nc?1OcDuJQh#^3e?XX&vMLV>*D@t5{rJeoe`AgG$rL7ab zFZ-6%d0Bt@)t_gVygaBP&C`wrV0%`7OnxDY10)}>l|K%ZrdJp{9q|LudWQ~ESto7c zZdrC+KSH2zno=K@+)6dY;lrIb=I%3I7=#YIk8a&J8Bm3S;5haA{Weoo|YbCCYN zciqMF-!*DB4&8=f)_y#gA?;#EXApZ8g`P*+R~A?+459iyjsAKCLM(#US1Qs$<`;JJIa4DUyX`woqekV)zbBg^3dQfWw`e;xXTD}&ubTmj4<$0HH zm%#`P7{5tGh!Rk6xD-eXesehy-3_SVELJyndH29bs8$a=NUsSPBrf<=bY1nDiOLJe zuv@E#vjkj^SpuR`l&N^)!f>abqEYj?w^As`7q@6u9#9ZLQG!^^5QIe@0TF~B;Z=A$ z6_ZN0X^3=BR~>Jx&6|`tIBeOW0C>^|gM?t2iknAFwn5pCkQs70@42ciinWR2-n_=z z!;rAuTOOn`Szv1rZCt(DiH%cTt6UmZf_@ID%vrH!8v>j&^Ga=|93)4E(=OsvsVjkv zTav7js~{`yWUwOcxUi~cx+3;sjet*(f+NVxEi`QXZ87qvvmEs6M(u{huU7b&wTiFz4o*Ggera-ft!x*4`J_rf+C)o~DpDzk zXQe-Po}_co?KO$4ku@XTLe4}JR+x!{0YF%-Q{Z-e`0Jm!Co=A1z}7>F#FAD!avp{n zn!a^CV?Gw{FDyH(Y;e?9HrZZmlEWMo7%uEWohGLtAP16$4FH0G>H+g&%<<%!Svp+%zFflB` z*ZsiRwF-l}!i6D5ZFFiP)3}6O1V{j@WSae)iXewcV+;o-c+aa__1_A0@)QbkMCYOG!g*Vg?vgdhA{D zR2mH%4u?~YaYF7>9o9i&v=cE->gdl0Oo8iBinTCMzl_`sxE_TeS6nmC^QxXim53K; z9HO+8|7$6}n>vu2Sk5Xrl!cs%ZWrZ42zjIO3|55wZ|>M!q~*FSBdVG@NoYb8Zo%F8 zkjg8IiUay(%x}YKXRf@~nM3KjN`j2Esy~b{d5cB@7_8);1D$oTI)izo1AwX$p1P~*cr8tmb+z}Ojko#Ce1zN>|N}+kfZCS1}r$9IT z64tZ3GUXf%LrX7rNDH92y)qlrblOTY$qg~=$SbjW)S;+GkF9+wDnQNx!z(6;X;iBB zA5%s@M3tV-zBxPynaMXB;a6;PXn)?{)*@qWen-&G{slVWa*VAsWRWkvpoD$|cqtAY z^it)m{y1bbSKWwGkRy6&Mqa!C-Gg!YW9n>g)-lv;Mz1T$AV;G^Lat2&T7$Auc9DpC z4k)@QqSm?b_R)#MtNX(%#a4TaDz z%(4j!x{P(9-Gz3q5RE%{=el$D<9SGqrpZ}du=_exOcv2G=bP0L z3(5q3p6W?Sh?yiAc<+f34ms6;X#! zqZIswI|Jy;gal2-3-elesVY(1l`g7*?ng&1!jSV7XMQ$ifUR0DDi#bQeckJs0i2K|Ij!I!0OSR z6C`;int4$Qxe)Y2^BnKW8yqNGXl5m4pT-D+j`W<3iU}k+T zF!1L2`Ndf{zZ_IR0~~~h7$mv=22T1>Q6&`rH7E)E)6;&CLV^4?2oSW`OM|v82k3Ne z*(HBZ=ZJI$?bbLE#W$eiC>n-5>2I@YdE4y)DmLM_m>C4+v~g)-xZhfsro(yPKj-Zr z|7KMcoY8Er)q!0DS2T#!_Nm!u>I<7J{Z2ufP(#DeKK2A#t&u~&kD}Sy(AoFOL6#0W zU8d_CNk{;s^7u9w%hmxe^yJ$=3j|Aap;~oT6-%tNX0@{}UaF=ny7MtD@7tR`J+nMeaamJA+S6EvT_>q`_NlpZd$}0XO+vPtiIl;O%DL=V)Y`~Yfa~(C~Z$wFewFGYIqoByerVSJd~=4 zY6<~uR#1|!EEm@0@j9w(Y*UAE{qDYempqAvzuk1};~@HQO{aZIlx99(yT?>2TM;=5k)tY1-Y-n7CoD~mp-HRwI8=MYBS+^D&PSX*6 z@d8NQK)>GL78Aw@#+3@*-5xFvNHRDTK{<&LcIxAAgYhOZRyhwF1zO`W(+^mb zO=4OcXj};=P%;~~hjcz^ffs`Y0<7Ob)mu{yJKW#E(>7FWjHQeKU}aMOLy@W4M2K@BmFBdZt2Gd)!hp zHPS1#kkw09ws6bIEF1JiA4%>(Vp!;Eq$V&X#Q*gYO=Vt7r`P9@2GZg%jWD%nxv)fl z4xNEbD{=}=Bj`Rr>jHS+53Wy2uiqh^%k%rReYlYqw@<#+Ov2v-^JyV*Td=k z{9AphpFpw#+ll2{mq&W75gNw68`%Ue?_)8*kUr&_z|hw41iZg z&p+gIqQT}*j=w7&_&ZI>YQ<9QxGTcZ!aWE$v(u0UQg1P^s7DwQHppW5 z$SI9%LOHNlWZ#ExSAulMfzoGk66OK4-byKHxDd_C{2Z#~*DLthw!|}Cd+d__7knpG zYqq#lSlb?kKhD;wtKMPM3OlPx=ZMk5DrVnJ>YRN93zy}tYs>X;+gWS&UEh^fNI@^9@a-bovxM26uKc)qenDmz-*Q`@6AHVU zMY-FArktZKj+18o?Ajd{bN!}o?VGNHbwn@cq;A@A(K7{JR#RRSya!@KW~>OGm=WPNtk8*+)h(Bc zWtkb+T>Zlo5MJ|3WntxCTDps;G|lc%ULP(0wbK;}{!N`&2rx0gmhU^Tl*RMSTfIKN zXE9JNDU}!MwCQkQoD)(3Oord>8WOtFlfeYGk^vo4B4x}=5MnoX4-BRV61I{k$Z@fV z;u>^%H2*SESk4w>PnF*n_CCfnSY%IBp$W|rdIm^XUV*4Hr=;{TlzU?f6SA z?G&~)1^IP zpf}Wzqc65*V6arMl4h6P)V``}+WGq9zGrMU)($vmtckELNHwU4*K5`c zR?t-5t?a?!GKzI|4|wgX>j- z^100HkVp2ZqDpR5?(n1XlsIKr%@rQ&o=mc-_ujcg>l10!&&X^Sd6>n+p+^6wc&Q zn$CWx+|*Aw#WwZWAoaj!`DDIbtKqjh?I_LcGgO7_E1rL(&|bEDxx!k7qy}b}XT@uq z9X}zwPTO#CgQk9Y7HDI;J)t}kYgU>Rpzb@6thNN(;Gv+za(xNv2*DQ&_&`ADvv$uzHDH_LKk^IWn) za-;gRMvHJ3WB^=f>UpejU{C(hD&x9~WB04P-Z}a5`1JM3^#J%UAC<2+@4-!kh@ebs zzQ%ZXdm+{%(@ZN93kVJ&9=L$luQ=pCHw&HuqL|HHwoRnvAZl0fl$RnN)diO@XA;IXqU3!|V?h0yGmnL!pU zVC@0Sy0(k``Q+UuD2iOqt$HRL?C?3|R(A$9R=eiZ?UP_w1l)?XyEPEQ)Mo~i2SJ^n zM!g$r_513jL&}0zR`a>keXiR}ybFR7)PzhL5JNy#8fGpuz|`G$S29abB;@qnkpOxC z9RSguXbVBsV2lIv9PC>ud;N1FNhxV2G_sy%Mk3rT za)1vs!MuqCBDHBFMP@0*0*KqfrNmoN6-9z$0V$bBEiW~!P>wod3-N9FGz4YiAmjn_ zMQ&~+zZZ>q@QMDXJCdz2ZD9-E;2^|!)d`JIqYnBERYUJ+jZo;@p@{KFw&205gNsMN;zaS@z8q` z4_G{~RKw$C+SRO;y*0JE{+gIyV90chBf|hxuEOYJs)8=5UJ!Al$y!F&LlxSjh;t1P z&Ct+t>)et!tY;^x3FyG1B@tWh0K-C&kg5$v)iOH>J#z2!!J} zDoq6`nD;jn1ibGRfS)=GnZ?#2RRl%yOKd8pr|`>d>F;1n4TI}3{#Y2n`((&vNIj^Z zZeMR@IhZ_gfnNlKNjOBYazg@SdIL&@VovNpW#>wcMjoaK60D18EYbRLNq2p%_KLWO zD~}#zUWRQ_HEvxbTmx7r1DB7rL#D(;_7s6a6sgf6Avj8?^=$QnYMV+ zAuq0Ol)ys?5=j?AXxd^0HUxY5cc(-LV9YV;v>T>Eej^jIt2K6?96ej=MzM1WRQZ=h z@wty((TiZWkDYQ-u1%KG&TigISBO0W*R?}s+lfshYZ{ieaHai*r201HT-hJH8HMk= zl*~ZfPl0-OkU}qfd!5tcHn?6i_SDNIB=HXhR~5Gh<*6oRZQ*0fC~v6;7`I!`bEVvC zXXOJy?@&BWZD*noM-Fk>aeZzE>>Qdy0MiSFV8ctl8xJYSdN8!g4$yWtF?>>AWcls0 zhqH^!?q=`{rB&)MZOBzu47t1Cf~2&|0rQH!UKpm1h;VyK%3av+eL9NQs!GhpVIO)R z+^i=?B|+)Km8;qH)z)V8iI(SfkgThiR(^I|2V}8ef6Yti;vTakTrq7z*S0npPC3Du zUhHcW<@n~tZ+K|p_n$BF(p)yzU`zA#2|Ci$5DR_8Z0AvV+<0^e-=9;_FYy2R8T^nK zFv~wb^MwKc!2aL-%*fD*&cU-qb<=KB48iwQ9mWVF4MfUyE1k$9XmLr3NFb3;avcI_ zs9>bDnO2lZda*UYC*Uvj1`y=OhM&N1rT*gjaZ=~7q%sPkLA;yWY-Upvb2aeU>j%Re zQ5s#Ifa>TseTev9xc=z}R`Y06$Xri!xj6j%{tQ!}L{tYkN8+zE)VpKZ@8{|fDw7F= zyxKfVa0tF)pOL5_Q_2)f70_iy$=(&i&`P6bLoC7JsHCRLsuBgd#G3Jg2eu=WgBas} zEYF9iQ%%ABv{Y$<`ahbgLNb&DMv|O8dP70smXgG{PI=pZBE-hg)868RJaV@cNV3|> zC7Y6FDp3fUPOvLy)bjo&0810fAO)H&=HVbN!AP3NDH!f(wXSxjLx!&zDD2}OfU?&vFdK;+z>mnH-6;pTmgZ=MjM0I| zggNVcHy2@v*&0{GYXru{#IlQE*cm6^n@5N}+CQIxWlT7ftk8l|o`n&3YorE0cQSV+ zkYjk%q5MZze>^Nxo*@(w1L&XO4fMuw1U>K+Za9PxF#pjJA2vSdXAXf1kFm9u!AXXw zpgsg%9qP}l2jIfUJC4q|p{a;Il2S5pl$fD}rnd@|Dgiq%L@WzC!oAiT7WiwFS8D)Z zlWN`_!kkCTK?`-Pw+OOXZsA7HL2a2Nw~i~#Dw|DisMv2g&b^84CB5id1n6g{88Y*Y z!pEODg?bYL9Tithd`?ltVdie+yJl!9a@)CJ9-gZj(F)fN_pUly2^FM{eGB#hWks)h zeEdOWwzfvp>c%z|?A0-h*qNo?-5=-;1z2A}_Kg@@I9dFsBsYkxA!!$3{*0>dTnI0; zv=jz&$^0@<=V+!wTc@@x)K>7LD@O}@Jw;rMeM-2)rugnoHiSpVKHg4T0J%dodnc}$ zt-H27M!mXc2~zrU3fm{Sq4`mWa>;u7q|Sv7a^#1n9}ew#{S16{C>_ILw59ZVvMQx+dBXL`VzJ{b(T}tkaN(a&FGzp#v(94 zF0_2LG$}vzTXG#g^;>ZLHuYO>eRXmN-}TovYmp7VRi9V9#oXHA#_0=i6Tbs&EjS*t zSDwEaR%mi?-gnve>?-Pv)%^A+KCm8B?+IVO*Zu0=@z7(=8^V$+0&zh*<_f6o993;?hL3IKrrznP7(y{nyz>Hio`t;$T?CL2QUB_-H;@U?(73n!`| zatifdHb6}$Nl$b^MHH>*#>llI0i~{W^Ch!OgLb@uzxH`Np_z+j#k4w7TNL_~(7W3> zdVRZB(k?6GcEwBEoyR^E+XTUOedSPHNyUAf{^mSeu!BRN6ia5ybM)&Wa(jq~ z?S3F6*-xS-s?*MJ$Ye<=e?kG0$^t0l8iN!ARn%)TfXkT&5fh0a&gGUglj_K5vY$Cx zHOgQ_Mhm)FutwP#T$V^b!(HFbn!?5Mr^z5a7i;3J(#9;fQ)~b&+MVr=ZZx`S3!a=XjuF=9b!sHHCOt?5v`5 zjt!IHD|z-5SDJ?OGiM zu(nvG3>|i}co~&3x>HvWolNOYrPb?fvdpx5d2eXyUqX=_<3x~{<*APBR+ecj7O^o6`x zN7xJdpdZ*1{@@+p2QT>Bly|f>B+nFP3!Ay<7dbfBXYDsU;p7c_*tRR+b_R`!*Dah? z4{<5}R`_wvSXLhW$zN6HOu4bbY|Yv23sHu?e!^KjjZP~8$Fw-x%?1^>!`=Gibw%HyaL(F+CH z*R4|CSI?Fx;qBP_zTDYhx0i^HO;|e4tiYL)w245R51Z{niS!lUNJ|;69I<7yQM4w2n z^fpAObwrO7d0@<{Stl|b3y|#Uo#dslVdtq5Fis$)9E+m!BBQw<0`w@p&kRYy0fPtp zJAt`K*bFgriH2Zr5j0Md^9Bfm%jOWtY$~9Gj)00l??NG5Wlo+WATUNE5E4&N!ma2H z?9S%W-7vuUSA2DVgq-J%xFloIfMEdpXuvV|E?JV#NhqFaMHuSNr$BxQI#8BHR(KT{ zbd?aEE;JFJ0QsH|(7OaUyqzry?u?*0ao-^;+IVEUhKJOkBad1x&VxO&SE867bYY6pvr zS230C1z4BZ?+ft__F|R+uqE~wa{uOsrb_k_ilW7<<&1h4 z@1{=@?nM4(?9~$#@HJy~BqKqjyoJQ1Y`Oh6H3CN%yEq5@WH^1xg3}ggKIPYC8(emS zpX^e5Ybcwzx-XZN+?;YL_u34}ZEM~GEZbCH;bNF&xDd8kHfK)A7&fl=QJT_nMRlU2 z3jGFo;GW{VwJiIzanwq9tSRnR??y0iGr(Pz{!{4pIPL50UTuVh{CJo&8%93!Gj?B@ ztjj3ydtRVpyQ>=P$U-D{Z<=nVe!W*}b3GU8S@ONmOSE41P|wDTis`Q})#Rt(V+qG{ z+?RLZ{`5pDzBBm|ce~9(8FZ}Jbs@ijIxcj7DtD&KMLK;aCy2n`u>`?P(8S{(>JGQ5ChPr?i-x8Ru-@> zaw8OrI%9u?E1`@P(-o{%wR{&^pf+HWIF(z}LsbT9uq~$0gyo=-^%LPJe+Q;NMkW5fmLiNhm1))G=oi)#Dn}ag0%hz zeAGm)YzGW}{^z1R3z5=E<(MN|qik`GVgDUxQO9HR4+;ut1PNZu=YJwtBF(%PKa`Yw zM^vnwGJBDx5HBm-FVopZCkhV%cwfe2#)tA%dJ>qj(ZppA6YbVLP%a33(h<@b$%Fj& zn@~(qMYAaw@l4m)2D+xsrB-{noZTuqKfbFnPn%}unOj#}v3Ub+HqgRFm)hG$I|`m; zsQh2_D$k-?gU%T;Kt!4;a~$9K@o-=cGkAP&dHtT^eg1gk z|6UyK{&x9`-}nRmS0s4s?fOUm!gUq=|9{HoWa{W@>g@8LQ$AN!Tl;@2)t^~?M+ZKQ z9g`1Jj8-h^06K})0!uU!ycfmN(x#bIB-SLU1GH`X-FwkSWSby^MECBl(+>0xn6h2j z!lhIjH|n!3w~wZD1~)JO(S81=qKtX2ZUld53bP;K3rv&d$+Co*L2gk0tmYAtH;K8J zh6Rh^oBLb1+NL|do?c*5cCifL&(l6UHy#?=h?7uBIC(LyaM*FM8#ufAY@F7O{@&{I zGqA|GY3<;nbrLlOrRbqwZ&o_d6Xcb!JWF<>WhI z96H(C9!wezmm!xnf|MfkI+RDH;d68leT@q8LI03YlU}@9&rV1l6eJj;48>n64HziViYfk6 z`W#=QYhLjM+jz1y9xSBJL~+$hF=hhq~k_D_qu>Q{?wc>@wtg zgY}WFH3rWO#GdFmjH{K}z=_?x+k$Fx6cEw*2TuU-|5#G+Y!$ocb7)g)8W}r++G{H! zO_S!I0*=o-A1_}IsagzZAumGZCQLr8z0^?TxIje*K{4GF$4h=ij3P}}Xgsj{?3ZTC zRZ)$f%sn1|&G-lkEg-rf%l87D&>}Tf@D@E*1!}A4y=;y@q>^W?x3Q?ZUiMq|i`k$E znWM~X!y7}xx2^gjIwfcqtTZIWF_^82Sz|^cde7w+HhOqM6aZ~MdZJ5 z@(hdmUwQb$h!2sS6Td5qYZBx$=s#cJtTc*U-+wv!AGRcAjGSv(e=D+td)G*)ab<@u zKxIzvD=CAg?1-X(M7t~PiwoVCGr;OJAsD zp~l!f6Kq}7Rf^rA^vrXRKuvHo!}e=-4ptibfBdY8`i7V|OAmeXeSGi6QJ}UApHI+m z?pyL}KCdQ{18GR7YpQJKNaeVz~*uOSOAH z@CDW{S{eQ;Sh9@s0eW2{Pj4bLPV1)Fk~$v0TP>=YOc>*-7g3D+S@@0-W4G39lto*O1mLk8G1Y3cqSa8nYo2Z@ zGBV@hIYI4O)X>z0@Vb5Q9_6(-8w-foAl*-3X|xPNy%cHGK9$+B1P(W}FqszwvF%Pjj&IGDZ( z)?qBBKPLyhG@}s|Tu&Vorx8qqB~5YQvdLa7%QPQFO}mQJsaGkPa)%ZJ;vttd*Q zszjL4h}Hv!oD-LEj+|bEZjpm3-MRrWQAe~Ap&1BsJ=Z2g-Uo;ooT&<5Tovtm9M%Tkc;4{0nOI!ez3CscNT2uY zZ_ZE(E0JL{sOwY>ZXjZUbZJEKjS&%Y;@igX0yX#9hA*nPHEr_+CQpb^H6YPMnUhpeKn#%7yxBA&xxh;1ft17%^Kuz168$2>x*(wGf8IpZ za_t{LV$`%EHE`Q8&zV#P@CyHm-7N1&m@{A10(toiW}t2E+O59AlGc#}g}f12V~1 zx4C1?3KJ5C)V;SRNeF#hH6KaV8$gEvLihS%hNCOYKsY}=Y9);5pVHIuS>w1s!-EP! zEHbx)y%)Oj0$&fX!~D3MfPyfESN@Sz0g;!}U^J8E)Rmmwri7$lM9r zUBm`2Xu>3>eBo)zeh!?|`t)NCBNWPmK{JFX!7~GbaK2$n>Y2MDG3%)sC94xgp}k#0 zdColY3{+}D;ea`*>5%pBt)j2e05&O~9xn|Gf@OCB##H01s7$u^=csHEpE8>r@U-ei z3;oGZ&#CpaY_RP=W!5C5Xe>Yhm4R8W#=QWqM`qIgKV+R_b0$!mgk#&bZ5tDNV%yHd znAo=U#I|kQwr%fx*xIdk_tW_YU8lPH?h8je3%JNqjTya=O3TM3_|kjGRdb5zmq81W zxe`gAhHT5g{hmiZ)?(wwCi*tl@UHaoN_I^ugMf#Lzm4R{W$vo0OVo4}4uHcpBSLa0%U+GrS$8B}SH1D(x z6t)ugjfeCI>S%Ig>eNYPpy#qkbSA7eYSIQmOo>AdUrr)q&MJ4@OxTDa6m>I%^I?v6 zVA#Lwu|RCWpLqhswwSRHi_QZR{5c$_dJJs^CZK;yPWB-JJfKy6??lN3Q`w^DaY9Ml z*m|?Ne(PGs<-gswcQacPpxke!>$RrdFPYa43rkGJV;lLs)OTsgi-t>kH}BM($icbrJcA*40q zNjt=wGM!n8=bo|E&}Q=Y-O5}plBRm~JG@gNpG%iHM{GBhR5sa25P21wkLU1{9=d7k zZKfdL_Iloz{j8A)K&aOzMRJ)v zliWksq}&&Wxzi#R<0T0sirf)3SyV&kJX8$jH8xMvujj4XFasA09kPvf@JrLZ0&`7n_YnjEkvvcbRzqc-{hZiRW=~21bn)=)U^)Mhkvg% z7mHAOGPSNJ34caHEm;FvLkQ8HaW;K!?4!^lVDNW=Mg)?7O|9U>&t^HR#rMe{w+rVs zxC{H&5y1iJmtGy>%3RK`oW@x=r!nfKu!0C8$E1qv1Ff=UxH%yHTogrZ&YlwFxbc4? z&qk;26dpf}>M|qc$jkGZdmk_T#K)ktw2MWTNKd|G)m*Pt(TKsZqarMn?_kMd(BDzP z$gtF>Db1}^` z2r?1DTKHK+3zZCNYX9}|66WEcr<1pb$BX~@Un=X9PiL$N7P2263Lca#0VQ%54q*%Y zyl{HG2$ga-bv=W(Iz4nWw6+Sms`$(4srTJ>Epfbf${Q|$9HY{`9c>W5WsGx_T*sUo zHJ|hS`!$ddiO&Z1`Ylw#xuHSKIIC_MU!qvI{EF29=_ko!gQQ19L)I{go2?3K1S3O& zQ4lBc*YN5vM$C`m-}Nj(_7Ilmj^wm&?MwHWDA3OOK!}YEk>0SdKW)ifr+h$qX^N6h z&@|}Kni!AjR1eLCwO=+vzkBkVgq%0XoFj!oS0$t|@Ql3kz{GKaF}eb<3fTc--3+8d z)`usq@BpK+7NkxW+p?m~bdZV+99RT}H4XTfKiNa%hrGU&Y0#s!=1ydpdUfXM6s`}C z$$``LI9SVHZ>dt&Yt~B43*0Z2Mj?yxpZw2xG7Es%l3nd`(9|~bD6Xlz@l8Gp+u)!#3n*{9OrUtOn5e>t9!5WCY$u85fl z2mXyaB{F%{OSUv0RBpNJR9@N9CmsmLEbfJ03Y^g2)yC#;?DhD`i`$|iOXZ`%s zn@C8s{20owHuJ;Lwssm6zSI%1yjT|a_In)b=NkqLZr+~%S?k# zJG6oR<8vikLEofn+TL4?BW~!G^%kvmpmqpB~h%1GXUqUYnw6?8GM;*d^(8JP7laNx}-_QmX)Bb|{bQ)Xa6(^IeXMZASd&toM#Vx@2G^x8k2lfNKt#-Or98n}M3Wdo<2&v0#W>jM1 zQ*%v~qF>1elEBFk=Xy<=L`LCjE9;ES=eQ25>LY-D(`zyno(&2sn8r#RFSu%)gJ$?( zHN*fP-RpT$eSIho96k&hKUtR((*UOkaSa+f^Mi4~*i`DaK4=I`q;oh?k86bngZfl|u3RyRDs>|yk-RZ-x&@d0l;q>{FuP&rakaXYoY3*0pD8Z7R z+<^g0o|e0`+Uk0fVM!(v+Dp?D9;WSRvF@%PQ51!Nc*h=8F!NgZSY8a4tFwAJPF^?- z=cgJ2GP;RidB*hIZY2J5HJ%?tjH9NZw-AD`F5-L)kdwk6&5#le?vu)LVPr{fI9sQs z*VT#0$cBZ?;i0&~SH=`^>x@5kw(>HXU1qU7R(@0nw)4s*ZZRG5Zx9^OBH|+4H~LK+ zdxjO#<>u>|id=2BJWmlfBa39*Jitks#C`?JCs@3w*&hJ^qGEL{&-oF>1;h(B@f_If zm~aSbu$@wEHWlZ!Xcp=P;8}hFI{CAcfwyJ$O2ztW=(%KMv&Q>!ZI(B9ot|}b+PAuw z1s48t89^BSqhC&7oAHiHLh(I%|aKuEMUu9WtNJs zn#C1Q*)gKrvsn(#)4x6T3w3noqkVKE!MhPvjBgH=JSr_SjOx!dyc@4Ps_p!F%r`i& zt6T;Sm9mWj1(U2#i0xSAn&z|`w5}S5$&`At8~cmCJYuWem>- zF3bS;`*e(i{d5MK#rUna)p`d1^@+t~zpQ}ES^vntC&ukwpvRm3O$(&zHbC3HPLCwK znh6{0-?_WX*L4!!7%}22@J()Ff7VS0s}&@_+7}lu$kY&?sC63rW7!WHYEl%4Fh;jAs;nR+n<)ofT`~cI zAi4t(HXV10f9CyoRjN8^LpFX|xG?~p!9!o*4Qpp{LmxpjyM}dH97cr8kv4iQ@u|Xu z2!gDFBG3yOI}upzL?R+|1mG_TD5^U7!U5W@H@es^LOJ&O<5=9@Gc=AvU&pM&?+)w} z{T(Vjq-?=V)tG_q=urL(boz0;pbfBNc=}hDGHmZhEqO6n%<{F&A2*eAy!J5Qh-YUh8)6)%!NU z`G0A^-()*L`9CYCO-I`byLyWG4iTW32fyHQ1-9@aZ72C)f8V`eZ6uxB5igTsK3S2E zrivhhTJ8|YhLk%YLHJZ{@syU>hHaQO{{Eo2aM*u?`1qC34IY(iImnEvDhr zu1ox z+lhZjpBIn!Y4L2cqwk7UP`%P23^@y;=R1>~5bYW^FSXwl?4923MgGQKgZY29yI$}% zP7YkR6$l46{(=?664x?DDP*fZQX;~xG(9PhKFOf;x;)V>KAS|0r-YJNUN5F8q0D3~iPWW%iAOsp znMV3?YGs1lzR{v;rXhrphRZiC+BDXY+8q%Qw!NK!9^gO2#Qj~R_UFF^p!#KpHL&0e zbt2ruA$^#_9DH5*+S25SR5KZ8$P!ZfH*ccpYwnP+gfx ze#IHi@6$WvE7N3W81k(ixn3YTo9j5@k%i;oSmrKl#WS%G|~=sJ^o%T#_CfrUfs5jo}5+ zr}ypg6l0-T>2kCFz#Ih4z@QNk&*lRU7)}wNn-G#?nVFn;YJ2wswK0K<(Q0v3#

    D1T1J8Q< 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∈>n)eLB$?*yd1_}A0)FI=p+q>N)QoE7ol3Qz z8tWz?)Ho%h2t!oH$VtZa?5#kO_IYa2xOhzyabk*yTd>p~_4eWmrP(DMM&n5R*la>N zeWXZDRRrckHRrp7sKTNl5}R1O94?e!UQW{ew(((7&)SU>3>WN72J++4ZfRtsB3y7r z!R|0(W2jKOXM#=l5+8FkjE~J79xRKyaFc1h%W+_Jw1l5n%CPwR9J+7(XMXIW(9Pv( z2otZ|@&~h(VrO{tXn4^KLj8-nlGKg)Yfc}tePDvnzB$pxp~@S55=~52lwuO^`bsVjEB}f;#v{XUv z@`!cx#o1fhxOwuE)dta0v`lvq%cC6(d2~g;@=8VicT_S!-qt1$KznY3{wN8eE zN*x`qa@$`v+lwlI*YWGbb;}ef&wB|Tl}#GMZ}%p1@8h4yS)kkT&*Lk<%WNq2H8`bk z=zN`(dNugqLq3{ApUg!2!&vvliP0(S5_H*KiMSzrJ#g5`MhEl}VB&hQ;O;ra?B-)s z^;%eKnU^Ym#bgpp9!gJUqsq*4A@N@;bkJI&yL>G38~FUjk?k8FIqZ8MxnP9MS^TEm z5d^1y@18(E-ju(4PoN)f%HO>w(2qCeckaozsubuKE_L_oL7)oh;$Dobo(c5qpA1bD zT|;oDXLOM6kPn})j#pz__CCvrhUN5V>7ffN`?x<^?L{$n_$y3Mw$C(#w{z|;7`EoP zm8F&O<`F@dEt@;7OU@c=Wd+Klaxg?yS>O-PwfFawBWUH>Zl7e1?D^LPIb0V;najx% zfF=30ts!!!1c~pOS45(yesop78W<0GHVVD>?7ipx2y`#?*7RJ>eQst&!1^W9bAYpAG3x4TSFb?}kv62#AXV=X62nRbQ(4eMp* zWXH8F-lBk`B(GFX8Gcd;)j7SAJ(Ae{4w+3HA2R7>MPeQXve0hXgi%ZO1Wkv;CzE54 z3>P)Q=3FXi?{=h^sLar7_K2Qckt3ODhU_gB>GSzHxP+o+hv zi!Ah7!Sv2kW@=`P?E&RcX_I$iU${B1&BC*rxYWd%WbX_$cie?_W>&7W|soW4!kDAF%$z5x>hX{#Rb-2Lbt4 z*7#i(0E01##BqeA2$F^gnxSBX1a^D)vVkHI7{Q58Wjjd>G^p9?!2`w&WFTY*t(X~5 z+7Q&*b%_B6kS}~C`Mf!2ZGHh>12oXnGBHrt0(oo>YzUAHm;(_cAU{|Ne!6@PjsszD z_A^f)CIZJVVLz3vrg$q!qTw}$UoG~QXrEcFj232;t^RuCTK}P$_o4R-_sUm0-DuVC zfVNT`P_Binq`#&qFldRSo_}Nk%-+6~Aw%kqo$6KQEZ?cm&GiU-*5jbJ z1K&wd392^Xkd)l{WBzLfd|(xCUeI=k+leq-ceFkN{CV=BZ$4dkALl)*5{Crs)CI3U zNButr{m|Dzh^y+z{f5)9_>Y|CM@j?k-=AHH{>BXi_YeA4Zs5Ck>c4&izxgfv*KQ!V zf6%u#@ONdo3;!9k<&oW;t_XB#S>yIh^*u}_xjxdi{i1doVY9Pz!W+vfR9#Qoo~Ax2 zrqY8;lE2-$dN)_wlJMeef*$a5-d>pvhvat(KEz?GdO^YzLUatUp(;jHRS%wZB;m`> z_Z&%kx_vc0b8_pS>qMO)Cp`vuak8%<8Q7?+EZ)TiYqZk~y{OX~F zKXaiWC8K8t8gM-cQFjQ@rZxB_7MNKD;tIDH3WJvm%dIx2qkN6-RY3G3yTy$DaLO;Q%xaC1w6?ki#l#YdSEHjt*MO-5Pht^?bdkmwT$Fdhi3#>-N z2C*r21L*df|H8H6sEOC{gz5*By9N4;-7u|w45u9JPIbB8&mz>394_9FQmDN#G)|WW z4IVAqY);FQGV|w#F60}}bqY3Ih+NYmUakuvtv9ic(}GV05K%<7#g)XySST>_;BHUe zSB;AqaxPvZtxMf@;?BAsW1NZw6K>eYvo5Dbglmc9{ALIFB2&CBBp(%b{#LrDeSC`Z zO(urU%`1CU#u}27uEs+&=4>04{H}$s$_VSz{&bPcAcXMTvg3(IntTRh_g*MXrmlxy z9~~*d$S`y#M6#6K{xK5EZ!4yZ*;A9aOf`HELytD0^Ce1brAHfYMo&joHAvfioQrKF z%`dCINqfl=PKH?r z?vNjR@fn7q@P&RLD1lNGMbj9GQp7?=aFirz5{0o(hbN^8aC%sfJEB110bQ9#vdTOb zF2bZB(}1S$gO5_=Qx-z6O*_e3Nn`E#!B!WEbWLY4DEJG(0ER=QfPbW`>u#R^1Nm99 zWFZgs z5$`$2!{csdyXz7wLt5}HFq*HJC+7DD2!4Bj2rxiva1mRu90CkhUoK*KkN{e zKGf;9#gyc!D|s7FwCY(sA(iD5NxHrxyX#c9kU-Q=UKfU~e>t@FRjac79$+D;OhUupvx+D9@)%Aii#0Zvq^S9=`L9C?1dg#t4lo zahpuaF$w3aD=nz44QX`MSqZbDqVwc+ zEPa}}N6=PM9+44S@y(_+Q+`_a(syO!i601L+m)9STtA!4APm&mD>pl@P3>~f^>ACu zgcl_mR9#d_xelqV`n>hvw2?y!+7wT^cIuhiiK}l1X}l$Bz#;|5@qQNKzPXRO$8c@z z<3)v(_C(ZM|3-Uy(gK@;AczFPoj1z|b8O%#g3MCnHHc_!;j;aHb2JJh_nD|N9))$J zpu04?m))T}aaeV8HRN;|+;l?|p5ANxxroKC(RBQ*FY#sxpAMG_>x8dCV+fB>5ne$r z*H>sUCyQS`IpbJPU`27{-vIFN_gr>&jK~=pm)E6$!Z^V`=lfad+xgzshG2a-7d{OB zK0>>Qy%cW~}k%si7mLvOGv{u7zN^&Rt$umBkfR;w}FL$$j?c zfgxAP#hJ|`J99?_LzUYTL{yM#2Ld&n>DPWgL``{=WZu4Ck4Y(#n|*L4=}p9!9?Y54 zzSnk^Cv+;}*PVE(iPPqC+CvIl?Zd&MEk1Hud5o#jmIW@G-Pv0^}I#Ed}KL`Lhl^2_n9~)_Y0*&|4C_xFv_aE{m9_LfhF_?!@^ma;4?d1v_UeE? z_N8_m3r_{LKRk|HIC6U`4Z8EibJ#JIrWxXxOSVUaxPLst9z&d z*O!nv;Ew6V`IU%fkIvoDyM@t)V3VFW^n^XTA(5ub8;RWT_`a3!Jz;RWVmcZCXh4_0 z9v9cSMbr|IFf2EBmr5&|bMs6;QQiKJ_W6#Q5%XQ8+-@1%DF^z;;Hh zrcbNR9FKu>BhaQNKw(betH&b@0_QaUN0R*n;1L2q^+F1kxOh4562<~6s`W4Q>URlK z!0!@)SDoML{n#Pq~j0DwHbqA0czaPT!S2Q?>W=N2wKu zhDqn*vMq`+ZX3yx%Sgjg?|iZ^iCEAN{-y~hJGV?tEy&B^0PXov){2HqhMaT-9Ur^H zF^be`uH|XoA3bG`?Xv3eNP~6Lw|9#{P#UPK2GWP^C@9$Xr_50v1+tZcQ5%c$2 zOYghy!mlO+P<=gI9!TEjtBUnd zUTE1!xKIt6wSW;OPfh}r6p~)>Aedb1TkL3LRk>6 zR5H{!^c(tF2jXk=BEDGe*z30;+0UBh{+{xE7izsp#(#pN>;7M)s4uQxzCCvDe)l6T zy3}7x_6NBB|NO%~p!{!r&@UYu7f@XAFCtcHIts9vTE~Mg@h+8vbTCP+j?L)WTSk5g z)c~7uP+Vowb@E#Ru$f%P%u(5gZzBxUTwq)ezSeVrbM!y5pF#C<0J0_qz%-v|WdZ8} z%a&zT%Rhh%Nhcfa~kV>ho*-)g?l|y2f8!BJ`_k{M98wzc0WNo-ySxS++ayyqxV>o71vQ z5Bbw{tZ&of^1%3sC!~foka7vGz0D!7^zxEk7ye6DBKm47p_8uW^>(VR-4wC4LhLIS z66!6Eln$)~3g(H-3%ds?TdBOPnrS!wbUr;4uv(Fo#dR?tl4 zdVt?;yhk!}8<|w-y>_~D7hAn^szY1MyC-+@y&-Ts^wlLTjz0yx8Za`;}iP+fM!=>n%Sz{qpw2g{|}gnyELLR5~Y$Rt4|n;15+h z^u0gzcNu`Tv1<#>%5y^~Ta3Ge56jxX7h@MKkNy4a1Qo=o^371?OYv6+++?mK9j^T3 zodEsL7v`_NFVOFNVgBm-0{!|6)2?1pKP#0(tX_L}*RdB`r|w_`!?$IWy%KXi?Woog zcDWpct`U3f9_@$Gj0hKNl>7ORgqe(FMhb01K|3fO=3yPPF)0`^Pgs+MaD0a8{<5&i zQ5866nw*!r;WlR04&L(1ZB@A{^O@|H72wV(A`CpcUq_p}*S2u52vbRRLIp367GgS0 zbyHsDBZBd6k3P0Z6e-)yDcMrgefBR*$I@tDX0JJm3{?6|dfO>|W%bcG!E?Mj+!p2?wI@bD1g5<^V>=xW zjOzurbZ2m-&eb{c`jj+Hd%T(fLS=Z$^AmlwS>;UQgP)EY-~1Z}*YC-Bk>~&Q^1$Ce z$qyxhzc|6Sqyt9?ibiRSCMlRENicna29571vWng*2BTr-Q>8nwa9mv|DI5?BY#kCo zWI$tvNAK$Og&QClr~;rrF*{n1#xp<`me3wgLHM7o1D3FLfCK@r?e8S0tkc<=npiUq zKh>BatHOR^N>l_=5eN=C>KJOBM3I87LC~w0uS&JGaXwx<^T6jVAB+Je6VqTF=*p9j zbuh)UriBlI!>L~}6TSq@q}Y5-A}DY++**}QB+fmua@L~za96QAt|%6^Qtc0*=r_N; zm7ss6Lh$C6^k1kD09DV|iAw4p6#~hEjpCDTwojN!F&bcM;9Hg8Lx{d?Jc{_YLi8Ws zyq{en^s8(9)g?l|y2f8!BJ|@mrWI>(Me_dZQaK@omi01Mf9)=iPOKxRm3JE*O5jQp6%K{_APco9A_g*lq?w1 z(w7jsS#F*$xTU7V<(U13{SNev`1<=tbu_Q6z%^_oveanC+3kg8Z1;NLRlcP>Sz_zm z<|edIZdLLUxia$ZJP%I13)ojWcWpi+J`T4$dIzyEetWqu1(NC#u<$bz{J?BN|p z{o(!l7rTADVb@*0eTkwtfxswD;S}|$92ZVNOq8ae+zF&e5ins(XwXg*uR@XGR+L28D1I@q-kX-HLq8Pk3fm28dHUi_31ms?q*L%FW+YxV~+;w6&7zKcW$P_d{ zuVa5O^p`;#3-YbcuX9nQy)8+iW_{`jR|M{NJ{u5QhmK*bE=z!4sp1&Q?*p(Wp<2ET z>yF8h^SFh?HS;%x#+^8(7Ibu&qYc}8!@@`5qjzQWL<=#G&QaVO?D$bwl$_;jrNiQ+ z&g}Uk%!ELk$y=f?$<1XUY;1z2bzBl->=2h2^H9AFKaA#HU7<9+hjPE|22QD`ZhkSEX5&v57or?WWZw&~X- zUEGL%U}UR~%7K(6d1$x9fzi%+RwZiiQY17F4q4Ynr|ry$@aBZXkVMA`QsCE!)>Arn z=SV~LTQ#N4v+iGU;cAVD7lg-KD5MH`$#<}>1zcjLc`sk>j-4RyPK>)QdKvl|BQ6(q zaB6BB+SpNti`f+$oTn6-8lK$}`N9qQ5Zl|Xg>&kaBC@rYQ|Pd8?Z<}^36_lM@n=RP z_xEJ&TcXyk-W2JO;;3;r+Ek;8Pgx11Qj^XGO`^14o6*Vc%)BPJ|rB6NHX391-2l%@W~kuh$_hu7}8^ z)e90o7j(2_?-kq&i0`{-t6lF09TOgOlV-dt9gx6n$2r=}ox1JP?sUIe=ONuUg{2;| z*Elp-vd4+Tn4{5h6P@TN*&Asz)y677Q}uAR&YP2qiI;Ss`aAi8<2_!WV|wpRf=-`y*@b zU-ELDbsd%dA~3hKzeZYXl?mjn{a>w|JzaU z+Bmb;YxCt2sMS}0^_$IOz$kuc(*?qo_M3$2=XK8Fhoa%m6~qQI_^%H3i3@we5r)4` zOm(pa2z?%)4tRXw_vHZ>^-8=MeDPtKafaSAD}ZeSsqiB{dCzYm4#_LuX1rPpKD|RK zW(dJ(uEX&_Ys{N@>vtOgqy|5<$v6!=X-BsDXp>PSQ(A)tReJA}kxT+a9Pw!h3}E`H zi<4{f__Ty<*N^#rs`r+{S=&iPpc+}C(fAv!k?jRhd!^C zbMlqTpo%v>!pCyhjJdFB#U#Tf;pyNqcQCvvOyTgFx&ED4?g59Ef~C{c!Mfc zf$Q&v!G2fX6ucedqQim7cxbG_v3Iiy1b;a%VVqf(8G7Ivftw}y}$-JwWX-+$-`Wu6RCDj_~LSR zehHoBEXTz&#-A+ZV2_4$lEbd+oGgTH1X7+4p*=dYrcS3|r)Rxp?-Bbc%j`h6mEoxM z8S%I0=0Z28y4achW%s~vPnrZrh#^tyMqTAs+rGB%k{I5hu2BIJ#ka)B_=WUN zw!G&a|CMaa>=btGymMc8L}VlHxOPlJ)WY^$bM3k2Iw^LdCeufW$vQJ9v2XP$AD;n_ ztm|!h6j|Q?@oq;!Y~QxuU7v0I4mxdoeRO|H;QjAB&Ib(s<`_SMAWc#TO;Z$2Aqa*c z1OqcLOv400FbG1U7=hCm@}){>K@@<9$l6<$0>ze~Ad>`!Sp>dzibDa#L=li~`$Y#D zf&pe-0Rk8zD4lt07DKGYlM6=D0NoZ+yztfK{}2X6Hp?zy;5z=Rx|!8o9bH8|Ks}7F zwqPVMq5!rSt1y^Gz-;0IhrqR*T6rwFmd>nA;Xulg23QS5N+g(}1bmeOt=7}ux|s_! z7|{FXTY}GYkZIgn4;kMHX)4?5&PkhJSy>e2pS{FI;VmBn@Q6d={Q`yu|6Ki$8S5Oe z(qEBWPf&1*uQAVlcUW-5LgU#FDD@qHAkSlNe4 z6<~PJ=A*AN18t3u^c4y*0ap?Bssv@uQ76osOSgj>^VM69xSu+OMYr*E-3RyjlA2|g zpqI0z$4#JN+!MZ#YMK(7qaCGu&%FHYGd~Ht{D$-lgmaj6xJu!` zuyuH6w1_x3^Pfvwp}*o6-YwMcQ3iA;w-&ZHn?9E|O1Qt}H*o0vHAcujYS)2-pOaa0o14kXs$JdT`dH5J5>g?rS2$J7OKCK%GN&9>Hkj$l3(mem zu5;50h0^|oID$f&E)!bx_R3EvI&w`MYo0uo{aqjj7oBG~BBmP`(<~-i_~w-%mtDn+ zV@^Y_W3P8S*PB$IY4WYrka^d{GJbGsJK8?A`z@-^^1V`-F)+JvT;sB(i*RmT76zxP2NE$P5RWvDJmRJPP9r$Uk)iujr!NeEyclcLa6vt&Ka z+#?H^4E{m}e>8Fy2Si^e=>&z?!u}>sizV}^S>_;SABokzK6p9_Oq4><-Ten-W&tvv z>N0AW8S+nB=G%yqG<6#`^f$H42g2$O3%_Z275p7wM}7Xj3<3)^S^1PJ&OOZ%-zIU^ zTAG}XPgWjDYuERmT(hB%Qvqk<$kxIHMOWjL4+K8^cy@qtFIbp;%$`Xua)U0|{sqb# z70K;g><0SGzkcN|`IWW@`a#^&Ppsf&=a+7lq`=eC{19EF;s}?h8yld7M)g zh=m_13WhFaA2PwQL;O9Ax8^_%a)`(Fqw%|Yuq~KdK1m9^PbslYn(MNzyx@f9?T`1< zro7)qh(u?Su^v_MLa5a9SPIFXMBjQZ-hK?p2K%nrZ{?KVQP~*X$zK*BZ(x*$+linF1bPS6-e@kzGOpo@HZ}%UKC$HyJmx1`OV# ztRb>t#t{%$fi$^^l}*++xsH`!@S9|fij4;0#!A`S`?vLG@cV7O3mXnx3$c>O`mB(% z%PquB?#fCun`CSTmMiRXSL7>LaoHdOpLgIuOJoJJM{WHa`sE7CDMkZ#14nd++k0?n>m@|%3N9OE%LdD}#w<94?)_8;aHJai4!{m%1zh`$6|P|U6#_?G z_B4P6hk<>ua>T|1hp{}q?11gTr6uc*Be3BMEDu-?VR;&ySpcy+jXh=TOH*X!qgpGA z*dYty<>#JdVY2+#zkI-;ub!|_3AnNutIK)apaaADpPmC)H;z9JX?sT*ei;91t$gDK zVEHn%bq?Y(pFS5%dpts5FF)>N9axJ|JG$QiSf68 zi{M1$QCofO|Efr*xBDb6_=6AG<;g*!R6qTOVSoOsJ5}+_E#yfXly|!yfxE3x_KsxV zPzxF;?FTga0W^j||8~utF)L#3oXVd;1z-yF0V+1?!waZb@5S~&v!R%+w|o;^9bx95 zkxP-f_lYP?%mQ=B0%>_9lFUB4r_03&HTNmPFA+2M!prGr?0OEWSm35lBvXMr=hsKw zm8|>C^6-amOA$xd=kakTur~C;xOwykXak(^oqfKM$@7+$uNhoZOJ~RU&F6j{6hNZ+7Bx zzh!e~N3)S@i0a#Vue%|(*{KqFPe){nC%JqV35}huw@a5$y-=YrLT2c`oin48Jr6&O zaTqd%w+$eg%s>>*z7~ePL&O_r$hXhC>ZY*jq6+@ zirzxnQPcF9a)+W|BTD3Y0txEeB|hl!Z)M_=LHe?spE z`fmuEL-WQN~ z>p6{sQiNq^3{celf*d3m;48pYE(E)dS7w3JfDB@9tCoCpz06@GCh2? zyvN~HLXv_hIAm=!yv_bb)t;gqOgZ^n= z%Bq!7ELju!&>-`!bq!7k5n|RYn!k@}?63^uZ|Jd%?|+W8p?@HwSAwIwNBUsaWw*(4 zs_PHb{cMO0W$olkA{8m;)+ta#Zl4nV79PVKolF z@)19~`*65`9;B@2Qsf z?Qbt~23BbYd78V8 z(!7F;O>7ZaVK7I?fwkik7G7-RI_U%D2)O_;A`#b7zK$&qR5=)=xr6QUpUB9eaisB&(DfJ=TLw4p0x9&A^B3196A8e0h3t^|_-J$*=A4a7efC z5tU6&_C(vDY>mzDfq6Zou(vsIhPpKe=rqZ+=r6HPCBG5^J;&+hTu1!r#Bc9UI6OZ$ zj(_;e(vAg?gyh+GQJ(zaBz00{CvAF>iiemQ>w@9iXd7jf`O+b54tNcX>V z#~=9k>z)4O)=qz^Phac7@!;D%c>_i65K-b!I6HB$>#nTZiedJx~b%h+tC~ z7`q{>-6;`+NwH;5prPB^iERN;3$_Oaef2!9<`^hu56mI=x1%zN!=qf$@#LZ z{PSf%;5z;@m$7P9{xg>Wt=e=!`DYx+A3UicxYFHr2hoM{fTl&mB*NK??K=fpqU*KW z!XavxQo}VjwPuy8<0I<1PWGA+uu}hYk;v#M=c(pAWa``FmAWsZ$laF6A!_=oqE2qR zSzzAU${9J0WV3Z0w&ymwJo9Ziu&3aKpxKOQ2W0Db$dS@qJ%W%cs`C;&S z1-O@AShr52N~Cw@g)3{czds76*U*F{(`!&5Hl*tvNg*TR#*dJmWrAv@i`H50&Na1- z-+NSmr4n0YS3FSdgmAbE?K}E8Imt~3H`fR<@2?#aq{o2WoCsr=H?p5k`yGvd*@)ZD z%r{cZKZCwzlz1#}%tXxrJ3C%kcN}xN%1}QBXjt90Kek}`RDL!NSQS2Bo`Z~OR-CW> z4jt5PddAxPJ#{7W0xJP*TySys3$@6X)-Y>dzFM;Uhf`O?)IP*55e#_ecyuQ2j~pD+ zT!y15MP8aFqc*3k9iND%F%&_v;iJ1j{XQo+Rw*XS++qvF)q$X~jEqc@J>1kZqV|je?H$>l4@WZ&` ztwKM1YMbras)0{1Q$B~;sr*Jb)DT(h^2#tr<$}Xq8ohM)z7zFFTa;1$s_POzs=Gqi zImpg*^D{>Wq>EYn3<#>J8EqU|sUH%{P$(#bZJMj11G&HH`*1wopCb^hN=B1pv_i=m~*% zG6Zu-7{0vyRkM+`oFGntkITX<6J}M6tYSpq;l=MA6GIS3Ur0`S5I4U=!JC!<`VbR*xARs;{i93Ao1ORgY1y}< zuQgo%nWKY)uNkO+MwGwN3i@SPrk@|Tw5}5n#UH1Be8}bXJc_N+NWs-aiD@|_D~M;p zO1%)pcmqWYBt0EO%!$3d&`?NlO;7N3wxK;87TY;U8|jpZFeRyt9U?w!&!Z_Z!mC91 zVnebNeuoLAmQbU1MDuK*#UaEzqd_M~KJ?ij`Uf`k_K%j3ik^eZK-AcddTx#6_>}sF z#u$-3FwNdFAD9I+eaY##{N)5xafEuT({4`rz^XJvJeb%jMN2c$JwD3U(_Nujga=L$j|pj+>Jpr7%mq-I;S|>zC&wxqzrj} zU$%c{R$&@LYRDWWX8w4a*$Z^G-S%dFb2zItMJoOoH6ip#e2?;SrzhRiDdHq~v^zUMc|rU%2ci|k@LqD<|71$KI(Rc>41VNw7H>6Af!@u4 zVr4Lw$1`Aehl`R72sx`m<|zJ2tEuB1C3lB2cm6830=>JIo~YqkUU!yJ`{{n8w827v z-0Q&B3`aY6Dk*a>zYQhdqufb7B**=H*##R}E1}bULBaIMC}n5BW+4YN+&FH=xY)&@T1Gl9 zKsgWeYpWR}%^k{%#ciB3ChnC-{5(FFNQH&TSSq-DgNqooqiDW5J&;Xw_F_IG8$P_f z!m`|Tw;}Vh-5&01c)C^NDZWG|cZSOobUGj>&DtAcl;!wAv#QfM?A1UqG{XCrh(>woz!ZaAvSXOEJf3Wk5y^Z(~}_5p{#UH2y)1i0C@-GpBoa=(Q3rSpXmRPONfD_8vzG8vn1u|3k7cjX{%76r$0XK3C zq)b5ybnOuidVQy$OpshLa(S_U|WHD#u9HtnaeUa&-&z#=jLZ z?mCbuCBC-~-9-iCyK(fOiY3CLDy~=Q_G<(1&@R85T6Z!iRMVy#Mc-V-x&~a zapHtNVx$nKoQ~=^gTwJt?$GB?NH-D#$l$v-nMm_-UE8!#{QCw$5NS z40@jqQw8oO1hV(^(Hy(j+{*I6un466hhq3pNPMqY7>3;UxC3N=C#JvbIrZ)~%72B$ zZ$(ep3dZ~j#+k_CwtJ+mSXc-;;?rm^V=(D7XbexZOQSkG4PqXY={?`EGGtGF$h&%{ z_{4qEU4c1qx00R*sE*qlJxjgy;BN5PD=nKtMJZ1;X771R zY2-bnqLy0J&K!`ZWXr2ug)=_i!{=AMbxj_#XtjL(SEpWq(J@Bz6&E2_p5~#x z9$Thka`Je&qxFU9_P3EP%t}l`qEU~1N*rO1OhUe9{eum)4y^0~*JN#U*4p4&o9LX} z9uzlnxOm#;C7qDMBUoBVjZGQX03S0`2JEyr^n@0 za!jAtcI!5!kPGL+zaphjcsgP=6VX=KZBk=T5EnB0R$Ot{r0nP73JzZwtKZU3$=+x6 zZrHiR0T|a+_u{?!G!}ofVK>Z+=ucOfWzA9J>EU3m#Yp?_J-b|1VMN5pcMD?7t z>$HOm@wHD=b&m`CGa>Dc+%2Ck;;(F3mp?QrR&6@llr8CcAMYn4;SN`esV~x~-Op_kw!`)Alb0Gg4*tz+k3!KbG0D_$ z9%f3@ZN95UhWpdyLB}WLh@PB{;K$_^)lHt4rR4G2(=5{q)e+jC`>QKkUdxVt>RlPr zH)}U5Giw?=&1${Z5PRdJvwJ^<&$zLBwlasFCQdwGRQ|zlq3o7oWQmcR=g{Bn!ZnaE zhHDXYkzsi5q{WB=*L@H^bS*9$@u;7l;iIf?Ji5lnoos8Z+&Z=v59Y z)h=3MsH-GP2lG;k1V&s=WPz8~@peOJ!P=lRB;AnWaYYw?U?-SYnFEQ%c!iZ(e3mJr zoVp`v%lSo>Ub9bcv$pS=jT~B?zvs4$;fT_Jrk7H9-wdQGyj<%DhbyYA_=o!M|4#*CDG+8=!5?xlH%b489sI|CuY>77{x$lKf9?L`U;p^q zANIfh+vDH=t@#66B0Xn$T@_RE2UpZZ(*)ky3_BjlYJI8AV45QYJ)av|0uAYRzXpsTa zJMrpgyqtdkgNPn9GFXMw*eYTG7a06D+TMYAm+d!SAWr<+v5;r&?sK?mLzv?qNVv{CI}OMqO5QZ-sLxBE~J9BW5-$@@oeu4_fy-=I*c`v~h!VG8;!xk_4ojFm#1hkm=lSMU9nl88 z9?A6%rt7}jPrPvgsp|9a>}D?NP0*WOuFoTEt!UC0g7EOqx0~i(2m8ZhP29NyG4kVq zb4|DV*lA|d1_}Wi;}2F5EVRUyYBD@|pyW3n_e^&=w_1b4`Hb`qJKNaP2nAl$Vp& z1

    ^ME8S4Z9H&)n*NrY+{|q14hl}l>@RmbZq|9FN7%gG;pNh}sF8Oq<}9bb?-v?# zh|hZj+`Pj=X+G`=wA_@@7C7nS4j&P(i_bd98}7nohim$$sUPceBK8Y?;ouM*UqMr? z&k6M7gJPYCdHGi0fg0z58o-e}%k4SK`GE@#Ltvx3KDOU(KJ<3?cXP6GI;38%uTGk3 zv`bF;&?A_hBedc{>~F}fp~-kd90a8;z@Ih2Jsnap!YTZo+^ zElE#%tqyqeCFX`0yr`Z!>B&{Qmb@>aBI%h*oVWBT2``fDp_2+3l+}>k$Ziee9v%({ zHtwbub9m&@CKtT3aGLXTbjXphZLOUk^b(SX!G=cYyO=xO*?`i0orZ@7S8lp_qY*8V z?wcUYtMusY^Gsvz`;flERATPtG?MIcT|h-nllhquA(nL)I^yt z6gfXlyS*6PUghSHC^nxKrq-q?r*E|SZosH>b317AClh^6H?y4jK2!dBc*-ps1zq9u{c~G>1WjLU^;`4hkOt|uB@{?u&@E_zd{CSm zuj-5lOj=PSkR?*9x5qCm4wsl=Sp~Rht%{8_0#ZmS1crtPy4o?*s{|wlJp*G5OtCEs zV{o)zH9|^P$HWLsqM>WbafyR~8y5_$mZ^0H5a>B!5Xt}}X9kp2gBd#p$VSitryQZ-%wh~_T=#)*uGxA-v^I0+ICp}V z$5R{iQk%6h8fAwKKk#5D?vdooEzqxlzJ25RLMwpqo*lo>v$4QpYtTw}Fjm>6_<7l2 z&!0>dor?b9NY|f^WO`a}IN7W@msy(?OtauY8s6%U1%b2p_*@T{vpy@L-mSj{Wo=LN zJIfE~r`EYjM|1G`!t~o_r0-1Em39!8dFj<98+l5L&MXXFOUKbC z>Vi2p>_7_-HOV9Rak^EGEh}}qne|uO1e?5-@WMDbKh(rLCsCdKFE*dS&d(>p2`W?KZe*I zLn4)BcB3~I=X(%TzJ$4B^u$yoYkj{mLZl52>J#FkUMCPb_3+SB_QQ39(vERFqoRL6 zQ@>8+VZPpBvr^A{_UQQb10OGyeB>xe?2Y_;0tX6F|8 zM4LWwX9i*zgfnIY``GU}>f~>()~E*i$*7>i1#dG#$*ytarCaeS85C^G^ef#;xpX+? zJYi>-f}L6pLlI-Mb(H-2mqAA4q#wEXZ_@$Bx&>hW|KqrD-yiC)68#@RkRVWkA`ylG<{&VN5Y*QeS`qN9MAv=-Q3%A0_}a9G zUP*OG0jG~30Sq5Ter0D#M{8+w08#+}$3kG#vHXvNt^x(7)O=zCUUTzF-*(&UewzF#kQ=uXL@{1Z7JvP>zUU&t}}H#w#P zA>YZ#aJNOX-QbNSNOr)v*T>AxPufAltZ6Fe zSOnoFD$txK&%}Y2_(;90H*r(o9n>FtsmU@S!_-G%Sof%FYu{p?YPN~HO-2#y_)PlS zc^jvX=XKt9G1v zA~v2GJXC?&tJ^E@J9k~$1uqN$sZk8zb+wW1yDkX6}*nckr> z(rt}}4{kS2HmV^VEX0v^8^{r)=|a?b^o;KQzO|o5jo|IH-0o{|@AMNo^1)Hj?Y@1U zdUBFuvLNUtI@F>uKW1WvHkE>Q_IbybVxuE|`@Cz1G!C&MLfUH>k#gf7nLFq0cuzYB zntrP!?PZ!{kaH7%gAM4=2F&@TTgByhJtE%xVmfjx%w2ukEBETDtJ$&k2+?Gu>veY` z}e$XfV6e1BcB{|#S zo6-f_9|;4G^Ee{{ul)EZo-c2t<^JE z(L&>evb(GLWB!GY=+bH6>m_)NV!A>UjeB`B!f%eaX(1NWEYLf_m5 zo1Irt8&2wzmTbI<7|sqkHL1(Pa0`xD6q(EE3iW;SMC*r;y*3tZLPF+`QqF1H*4u1H;%vAF71@a1 z)$_fR^|F>Q*+NB1xY@5)b=b1hf_x_&J4MChI9KKlsqtoa)HNMfm5bPo-T_Xq8`1IG zN=6HD?9qG0S-4*9QN_&qi=802AkX$~^5x9~L3$`J5=r<#SI}=7lNt_QSqomR~X_a&u8-9HNr)REcyjcBf2@jaCUtttAZJ3tpqw-ef1Bbk07EanRgp>xd)e(;mjAkfwEI+g zSMQHMc(JJBke49Pap78aO3~N2=%cK}T%7=R`rd-^%&nNC$8!So%?YLi)uiUA&&m>6 zy;-ek&d6D~_dahNaQ`JX6Zvy&L^92&>%l?h(Qjg6)IjA0AG% zDcy(S=caVaJT!N65v7CL*^)OJw7Z2dPK#EGG$eVV=UQsk%Vic>Ynl*Jb<(5wbENgQYelJcbP%-p%wh z@UkPoN;dcHe2(>Pl5KR5#h*JlM3-*@ z9B5VG7`(Q`{Iwk($5aVVU8TxA!#%EgTm6IV#Rkr&J#;9~^hQ3%M9b90(V85s>X3PF z&Eh-CD8@aT9dXV{Mf=Tml-Li!u`tI$7NIt zo)>LNWv}tq+e=Ug-PqM0dX+gMjNn|R>DM6~dJL!4%=nfrdoUj3L0xc+3k-G zVt(}h1Nv4J0xt|ld~X2ww(#4s^3O;7d_d^09Pu9&BSN2i1ROn$wh@-}Yk*UZ9ov&~ydq-^DkH1&`}O3rrUz?Tguy0}_f45|+j(OCEiHbTQ=>EUZU=q$km=wY<8I7_lku zINk{yWns&plClFzYhhe8RB-kU$lF$-ud0ssh+oZ#3i-^A#Kd4_x-V;vRqx5J%1W6i z`Lw^?Dwb(^M>-a{zQl^y`N2by+@eY2A~PX8UXJ0ki1CQ#SJTX9b{MhO-9k#~&a>#C zy*BnG$a__PlFh~~@3IePI`pFK4CRB3f-tj=(G77^#4ENvDr$n!^Fy78_V7`R7|q=H zxyBy)p~(JIuLY~7OQ~01DTaCKiSHtQFsawAcPa4)rU(6_RuJ1yEYDAs@nJtOhC%E) zd&q1j8W2T>p7FJ@-n&0$hfv*IJsw*jyrXID^oJwTB^VOju1kOo8HP$ouT4TU_=H*H zlPpgd;~SRK-*`OI&X=7q!QRk3FDgbhSk)>{%VO2}L1av=zhvl{3GMSha~{3JmOoU@ z*h;X>7Q@z)vTKY6%XOkngJR=65qNa=ciV*!Ik0yXCQ8m;1vKs1?OnNO+hcP$U(W{z z=?|BDCy%a2b2h_uK5hoq)32YLm!!Rs-x|Eu?~)82H)eG|| z@S8)%53Q^*_3FYeOyjCeLG=qEBIsLp$6SdEtBRBJh=9sED>gwgpfBH)i$zj~O460ErYKN6@NLx8qm)%S z|7qNxvUceAcZ1%M{XWji%Y8H6?h*H}B{wlKp|$X|-l$MY*cAdt%GToo?`d5hd_G_0 z*DW0j+Z5@(O;1lt%x66d5}zL^oj-+3{Y@a}jn&7uz7R6QYy{nGX5L2zEd%Uh#1EhZYEok2w9?nIt0sJ!KmNyV^YdBk2} zh?z;()JAigG}>1M(><%jGTsL11$prsMp(wWBJUydB$jbo3Qy@&(a8O|u$w!Y#24)0 zZ`zCZY^SRl611Q?{8{Btx~CaebqPyLtF|w)2HM{DB~dL=wqRVW;ade`qA61Nb5Ww@ zp1Q6%VzO3?mxbsY?*UwzP_-ra_!nK~PH)`A;&#g5s+OUN!zVkqoB5;OQ5D#2Q*sCwSt$54`0LXU>Wv}Xm)B627{bdi_rjdG58 zQ5~Coi6vF=VsYyS>34O*KA1k85}B@q;R{Y11P; zOxmoUQc75O=3f^INy+ui9On2an&2`0vMcJ}{*Zu(``h|T8?6P2?~N7cKYsq?Z-4Br zk3WL9&F3WkS3(VWKRblYGRx%i$HP=ju z+jC5jEW=TDl;_W2)x9-+XoNpEX#d%ZGOk19qmaLTUM74r92WbqqJ*^XT@Y|Z{L{)n zcq@gNl3l(P9o}l6=MaGY3#fNc0<=(q`QcB~Td4Q?)}Tq=-@?;wO6*@3T|#Ts1i1HV7`YR@Ai(H zf)fI4R)5#&HiMSCENk;$>*n<4(K#3AW`B_#{cM0HRh#GQkmFN}h>w`NmUmyl$3}JW ziX$%zUn$isC%r^_Dgv2R*>NB7lGmcn5^rlZ+qeyscR^jG0*T;u7OBipxK%`Pcfk{gwc#fVUfAc%xQn&Jzc+vqK8A!5k2NFd?KI&kAD5zfwWW=FXTdd|Un ziPRh3%?^EjLC0{1QK`8%lly@2ik%O|aeIRH&DdR7vvz84lO~&OEtW|?VsWIvyYs?f zn(cw7o)2q*(f(3qv6qEA7LF~2Yw2WU50KEP&$vEq&sefKRu$*Y=w)x}=ze#Nd;Pg5 z+qUi>8g-;@nkw$L+dUe1?6Bi*p2?7wCk6-(Ix(XeyUE?EMmHnxsz$J ztd9?L-i5V*Z#9|jKW9Vu;XNC&ghTyk9gp6Xqms5@S`zP?Bz>X%#yw~C?Y4=Zfif{m zWGCNE@+>}bl|DI+5!1DcH(t<9F6#1SFgU!vt6qpjFDKslBc`AH^L+`^QHA16 z?R*wTKZq6@9+o!4UJ}%8Gr-TAYyi$QI_fCpi$ z*Sig4vEBK84|r69x?5G?k@y&i8K;rWHOmhV$rAg&92WF>F!aecVEpifTYwPw&Aom4 zUp`|n^~X;i{M8WPfA_II;Qk*R=SOg-kOjao6ecN@MhP5&;pH`nkSGH1eF1w4#bNRn zmUv7Iw7v@?Me%iVEe3+)1(mU6t!R3)8DLhR{Ms^hfmYBGJzBkhFwo;LT8;LAJuCJ1 zF#J140|i!!gXHhBCJ<03APbD3zv_L6gG#Ce(+L=4ju9Hq26+U60ox{T!N6Z=*$xKn>|1)*)YG9k>y7Bp6|*mq zb3;;R@2i&W!Y4KH3hWN+d;@mbx?avP?Avb+K8I3VQ1kM^zF(@O-Bw3CO^C7uyz&^c z>cc+)Yev#4VM^ zD<5%7_;HVZ#BE?00j-YZZ}G{bEkmNnUSxpJa|we{f2ZQ2$nuJC$yo8)pQ5aNdTqM1 z6D8dgd9a1JBuuZv{wSEK#O|bJINaL@TdmBp6}Q*zeTt+FB4XPXyC?W#M>lu0&9i#W z8M$qqItkr^+jB$R=Sbt)LRAn%HG(ch`{7BCn|ndf+fEs8vbC8S@4fEjCk+ntl?dlo z8l0xjSdA6h0Nd;&gFN&dsY1drv+!{FxKKmiV);a-4c{3I zbK%u`c6AA_XixDmNY(D(a*{r|;N6j{BW2vOwZp%*+soCV{CQY*qS<_&;+lzXyq*YjaU*i4%c>mmo9dGE4IEXSe17`-sUC;;hIGF*25tG<8XDj-?OD7^OiTli?Yb|6e6FwGYv zs}brt$Cu#ioMHsraF&1HjB=L4({GYv0ss>LG7795FP9Vjwp+alDB!4mLx~G3oqITF z$%hR$y?;1t6La$`3i$Y}IQ>0ReCyJ;AVms&!A^j97G2)g(Zq?t*}p~Tviu8(0SL1U z^4b41#C#}}{~E;1ZxFMf39PNy_LeP%zBLL220h;)=CjcFONaqy4Sj={?|uCa;>i4& zwXT|J@ZOsh(YnP=J%i=Yudr$1mA}NMAE62QpTVXdplOEwnWT32pxeXo6{5RWoXB0+ zws8YxQMY-?(~~AIZByE1AnZm%&XIkOef&t>2D&ov*!l2prxqfxcBw5P&}s5_6B)5dfNyKcT2o8UG=h89?$IJ z-;Tn9*y7zcr8XeK!!fvNW93xP@!gj16CC~>7>3?)xbf!aRpw(VwYQrR-zR)mvfC8( zqMy>r+SmTm2MeJ)_u8Wdi}{$(4^-L;v^p&ib` zvyP4_67^6=ms&t8yBl}+SJEa}#%c0d!dRS0qOpWvDBs0}GMd)!$(hvM?O`a?4MOhpVb9gnwLoLuT*X`MD;&GaG! z>(@CkS-Do>LrEiSNVY!7{{NF!M*kwMOZ`tsEB}9W{(qBJ{x0&QVczAQCBP%K;913Gm#*5>QHAqekpC3K&8EOktn}qE;FZ zel9FZ0AHYSFa&Xp3Rk`Wzg24E7Zpff!+#@Con=BG?n%kl#Kbiy{gnkD*i!TwN`ix& zG|)Z4FL4m{r7;&gIR#26iUAs;?A4o#yxiK?hnNT`Ws#Rr?)tij*Fa)04*50rge3nq z@@xR7D7_C(v0kTPi@me>Ks7sI<>3M)gv-y7XZ>m9`43XcAfpU@NhxFhCZ!BA%Fur$ zr3^C4Q2HLSy`_{f-4@5U>hecQd1W)=if})tl)nya`IjkWfc(%Jmj3IM@&_&Yw<%>n zmmt05&=q=QZhp#^jx(UEl(Tw{W7!Lfsw~HO6M2FK$vIt{W3L=0=|VAk;c(qCrW6GjZx)2dV7RVj@|5k8&BNz5@}uX+aJ#DGNeuW?gsv=OY8CD8DE3Ok2T(| z&WE%c?@jeJR{Y@^zY8`0i*4;4h5q5TzQZ9<#v~}5!f=?z2^wKm6e2N-KuH{jF@!=% z`g1E-06EFa`UwF6AfA9(@oTh5$FFqdYfe3a0}T?$GJY;_#a_zOHDbjGpfy^-fbltaZ%BaD9>I>C2vhe5FW} z32Y?gtiKf$HaKg9&*bA>3Cla}5%wzyqD94tl+ViQM`pA?2E4zBcbQM(-7}A-aW&1GAl;cQJWZ!n5ouOGUSpq1=x7aZ@4tiC40{C!h4ouE<+YffSU~ zGl}+8NfO~RcXBsPsT@ywni4+BQhW=0_Q)@{x`>-}WU;gom-Hwu_@Eo|ZKFV%MxjiW z@ObZS3v|CbkDP|l=Y&vPQLjW&xk-H(w_4)(DjYY~o;VxJwkHg^t4b+3KwC~XQ{V2+ zR~tR-XqC-$V`unht7|6Z{HQ~s$b+XHP>kB=gECU%?P=|&R)x}*7WoGsT|(bQP5BFsL$qq$?!MRc14|AKgefN zO72oSLY~c?b;+^K6%UQ<68qiX$FnaX$Vld572AJQIs&neyPo*Sr5jY*9|?&=1i&?r2j$+Z_QlTY`!%^^W0u2)sg zzbnYI7f(Is2)Q2V%XErQh`%{55I!rrop5_>O}91&BN7wt5R(VS94dwii_Gur>9j5L zM2Z`EhjN{6+|h@1ew>A-;m{4lP0ENQLqhn=h}iov-vnp;zS#~>`8h0b(j^8?cIkK) z9;dL}oJKiV1L)>~hK9$eiV0m!;bGtcRgSYgUhj?=MCmB+XCh8in{&-S!qWH$ng0)R@aETq{c-A}>m~l3h!y`A z1cv%AbF2Ra_xTgi`WJirmUWRBf@5G94NfBjM!+OV5*UIoG(o_~%ECw-hKWyow6GAk z)UVVkeI?vM^dG(k)?}}&e+JkO@(QL=FdFnz*0ny8ygcq#3PfkX@(M!$VWSh!S;QoO zW5q8;IGO-Eu9yKcL`hK7{srqInU___YgP`RO|N;X@oU5zf`R%+{FF?o#=yP|goSkjF%RiqI(dDn_lgW( z-H$$KZB17Vd-gg^nbE!k=Fh{%yn#7A%p>+@hJdh29U@5l#1? zD#Q9mO;w#m>`FYrSJKrIk&J-!$oJWioYiHA*JZyDxV-kIJDwr|58?ZaKHN>Sve-7M z5aARXNx`3t<`B>aBRVc#%~UKFMPk7#2Kh9AB49T%mazW5-8_UOa~FgUYCzn2R$R5M z&&pw%Z<#zliWE~!Y&fxm0h8AA-aVL$yzk&%Wd8xAuTZAl(Ei_kfa(9) z=YEIYe{$aM6YT_!qhRtILL#3^xnct3&R5LKGLSM)UUNv3H-~E!XsA}0T!9ITLB50j ze7Y%20(I7klEe!uk=K$i{z`%~uSwt$FiwCm&|bA3yq=ArfN3^^{0dUzmw9Cfns39` zyqXLKI8DG{trP~T@&tWBY6=W05eCQ$fCd`@1%Z_SteBg;92?d>F(_yQTR|2lL6V>O zTWd;D0*Q>_L&_yvj@S|`YkVf=T%(@bx3Tyd`Rr8J{yJ-$1GBboZsni3Ym6D+7VOuU zehs(9Y4FiDx6lCAN)dxT464SlcV(#`smC&s2%NOXBD!6h(37f>Iy5R@d|I@I-mBJo zFe+To-zR>zcJ0Ep%#?3F&r+XS?ET#b(?ppz;H%thJrhcPI&1X>8T0AQqS_gcf;zqR z5`+7Iapsr%R%C=8KloN#lJm`|=y<(2?vOy1#^8K_b<-Ke@x4oD0^p}Z5xTxUv8&e@ z7#L$C?=3po)hwd+NXGQBOO!~sdjt`p*CNo5OE`m<^Oh@zK36zYpzCaTHw4wbdG~=W z_4+dN{TCNbNEMSIl8uKdMpAYD`K*6egNMG$Kk#N6Q-l_ows6nv@=9<$n98k`OCK=T z3g@2dh4((r_fx6rO34U~4P7NV%%rXx7VcE=8G4(T-Jpj7{}5(j>uwF)zoHPr>25h+%@$q@4iXD2oQJz8HwQ{GUr;YRwwyjn&2)Xi!ohk5C z3y+Ftk&L6&Cw^fO+z$_o~_jfqox zneB`De1AUaY^qHeQnh5vmL;_gz2{Idk!*|*Z)2}e!m~GTDB1L+ja*AiP~V=J3O~pi zedH%P!hOb7CKTd!U9)kxgcWQ>dt8xQ>ZvUGIBeLHW!xfG290I=i*|=sVzaQ;w>5Y$ zQWg3#Q&s#OJ=}77+^Q{)_6Pnta@68%Q5|xajerpTuM6?}Zc7!T_Y6kbG5CDsM3oEE zfT(HiBAEpg4Kg9`k$sbqoWUO*ZQCIkPv0$6t#V)07*ClLnZ$j&Z1U`Jx!YancSk3P z?SiOL9@_BqHP+N(*GjWvZgfpQij{r{OR70B`{epadmqkPsjUJ;vJTG(cS~IrMkK(q zy}9sEv~JdOQNvsMyI>2a0YkRSASXG6?aUg_AH%h9qI;oX{pMl17(yZ1w*l6t1@p9BqQH;ZMyerfxU^-+(9sUH7A|a%9qv5} zol6aPD@!&{Qxew0{$de9FL|6f|@9k2g>k?%BiF!=M*HUBKNjzJn9ehpM5qSrWy z5ph`i#CeN(^3tFCWKp9rV1}>Q7tN9v!&A&)N?{kE` z#C$I!jx}7SXkfVn#;cQ{U_oYo>ybHwf;aUcq7&KO#Vdar(gX?%T==7XG-L~6s&nJJ z2c+v@X5pWWJdoWPq`$%K8VdF6ZLeGHxHsO-CwKM=j0I2$SHW4$S2$g7cdhRcRp8-2 z%CzRM9Zvduc%f!K9gzDO5eej2<@Qn#oWN8>Q~K3>RU5X4w{kHH(PfD0$q9A zvm~^e=Hbl_*ND?Cn4euzQVt=i+POiL{J0TWOKwhRFUrOw2hYN|ick1LvRr4-)&uH~ zPIhs++u%tmwZ$x4=2ar9e4j6cWbV6GNS_CWs66W-yBkyMvmDC~4octx*9|8J3W(k# zb?Q9j4;z-d-E}yY{ODrVDZUbCzSTJ+-=&9b;xS%D7rPDccE)m*DViDvLa-IV(tRD*x8kBLx_r*fHhr4r;-oot)EwbQ=cw$kW zo<*L^jD_PTdQ)Vz@hBC|mx=?!!`D4+tud=&Hj|Ad?f#+iHr%hT`T)uGIoRWuu#QGQ zdu;p63+PjWI=!kKmmnWgT^a(0-<&txol2-n8&|D&zF5zWZhZMPLxf8bINgvL!po

    IMpj&{+zppcunoLs__fUEu_RH1VD#ZHPbc5pce!64E9wxE5Jx8c6w}UQef3po`+0Vz z6&HP;ISReQFx8)8;@uD>58^QojPF8!=&J^Sd!r8)D_RS;)5TckBqvc>c04UC!{vFy z<)E=U=2_F9-h*{W!xAi+iE-tj!z*H!-ABL^eZ(_kgib3Jzpm7inL$-cJ97hYN=PjP zbWt3?=m7sh^stle`aO0P|90szxjkHRxHLN2zn9H>I0F69T(&O4-wo$++duYPe&u>R z$^3SyD0);~-sMbcMwy+`t3^2woi?1BI?@eVbpj6-pzoH;EVHd; zQ^6QI5tW#Zysaz?R`BI_TWpqw)CN&lPkML)DmcUz*(HfNdXsr@ z7dX=s&$XBt_A);Ni;d=jReIUJ5v4Mk#}KI@Ccr7|BQ&j@3ah?fy&We*26xzQ5OKga5voi;JsUX^Mb za;ZO8VJXp!9{ z3J%6_w4Ui63!r&?TnjR&$JpZTSWJ2xu2J`+b~7o zE?CJ+mIAdQ{7R9aFXdtSxy=k3zLFBJ3_mCkq(ESSX0NIA8IS~m{67h562wb8LcT;8 zRQOTI_=$xvC|Cj<{Tgh)GOsuUJS#%}#4u34h;hKhfTzvNxSV?Vs*@C07sr9o=DKY# z2Q3ArXh4pL10uHWX?=S9w=7H)Ko|3n{@nnN{SOSxwieNbfG^dH>rDFIxa~l!zN{1l z^=;99e~d5my(xoAZJhfSv1sMjtO~?Vx(X=Fmjk}!C;U-gRG^huj<){hb!Pu?U-`Bp z=*KPn(;Y!SZt2Gz{goLS@Ir&WnxXL)Qz~5MmrT7f3sf2A_4@fG`>`vV!`zc%xKA{QAj~ILsMVa#g^dNm;e@2gaHvZlKk22cr!W}a6yhn_D zhB&)}XNkeI@qbn_ybbVpYnDkw!x(fPRX+bP0~I9UHuTCi)odWvTuUB&^IK z?xC*_wu6s~WAJu{jFaf`Y_r{+@AJLy-#*F%Z-k?Il?G;Ffx?+7{q-Xh*CQC@m%T6O zW1zu$&i7CDUR;8EqL}0HLW7g^-<}j&?-;+$0!YgC@OM27gO1ohSJ5$>=%3R2#G4*=-urJBA~nd0(U1 z%@}o3C)cYRJStbhcpSPdB|ao|->CjLNZV?=yKE6Jj)t5KvAU`rlum47dwN2msIW|T z4BOijR>8tH(xBQdh2idLYhW3DtGZis$d;Uub6laX7Eezr|68VGtU@VEQvW4a1lJSpr(bGy2uu9fF3uhyrzZ^d*KQUk0KW z@h9=QI}8qkYCRr-H4q9Q8?bPpKoWs@4f%{CfW|-xfWL-qC7|RG(SOp+ulzw{P;W>X z@b9`hNRMDZw+|W$UNTRHcmXy7sw4C(B}2dZ|L9l#15Dh)!SUG(>ERd7A_PEH;E4UV zg?y0!fjCWmWHpXBp>01KJuPs_7i+7J?;OM$6({9a5QMPnSGo^8=LbV9SJEwYRNv+8 z)0K0+8Jz(o%Hayi!I8IK7f^QzF?Z2T_U&>9%Ee={PtNYFxd-h_W@FNYd|7c7)=Pba z^!I65LJra$uRGWK)+?Ck>zw~B4DQzWX&1}g!%z;5R=d|90a-Hb6+3zM9drZ3)nD^F zUpn}+xdfgI^zrM3s=Ka#k$4de=u3_l0I_1-TqM3AE3*H-)e6L_(sU^Cg=3;pS7AH5 z#k1KCCpp^Xx)Yv@!Scly)U>ocwMd9^?+_pl$cQXIv>%cs6;P@CVF z6IsfEYI}Yrv(4qyv>Atbb`e!!tKG!S2%F4s_BQ6AKpNj;vZQQqWk8?eWr&3Cq;0l1 z?8NErnvISLFV|r^cs3T=iRd2m?0K33H6_G27xfc#igM}H$;&my{5jw92AV}3amv-Z z+7E+!->XMrw7W+-3!(j(Iy`C)CH81rwz?pAt3l|rxZWj*gjjeIo?zUzID#$o7ps*c z&xYeljpX~UjMM-v^4>vb{rT`Jq=1T?;mG_2$OR246*yo$xy|x0SYQGFcYavz@90>$0y|jG=)B!3;Fit74kB;@8D=%G zu-LM|niYB-n6Fz~pBUs|HuyC7g+CU@_0vH340z z0#ARJxPT;fjR~u?B-DD4TY7KoWB-J12l9+=bnfkUua3rgZ3x-Vj)guB{-kt6{8V{! zKD3u9E&5mKc!BseQr^{R=p1cT$-$io`y~S(L=p|NoZfrI!wK8$Op^;M; zkLbRil5M}qp(?J?3T5bAvfF7aM!~13ydR&wQalc2WKO}nLZHjeJM)@scW2e}spamn zU3nvb{`hQOm0PWphYLT_Y)4RioBgzf!57 zVvoCGLAQ_z#Uk3*?m$N@5ie;pR%Ai;J)k?o{ybaGZ=7K)nb7WMI*CoF%5#*r$UeI-KG!W z0J5V&HV-X2&(FC0C$0<1{gzkj-#{>Jm5#epm?v5dudWbd88VudV>SMEIIP4g>PCa*PB8u#YFe8z*{E zhLwt}lwpmtBlJacK&j@}6Ueex&mon7Fnnb}Yk&{G%+F&O6ntV5C^KO6rB5V5rDhG` zQwo$*vXzq{fJ&_)KlyU50oq0yq$wgCG%?1%Gl5Ld0VEb5_OU#>$v>SuX8u^@7uyN? zzJ0J5qB?0Jl(?x9Hvsj6DzNE$4}b*!^mq<^Q$=|n%DHk32NdoR-PWhWtD#SQzYjjx z>I@qC-gg6iyPbct8|d5Ze7Bq5?7D}*MW{K^c-LQRwz`$~#xAPUl`XLwfj0=T&G!s- zu`I>XQ1reMnT$H0#+!o$GQvI<11jC7aN~nfG}U7b%1Sg8rqIyu>j@}^x1@c0k`e$dRED8rXTP^M^kB75Urx~eSXQ3 z?MYHvD|BiLyz zbbQb$TSkmhw}c%n+J#gx(Cy~JU6=Fc@@b?k#~*H58&+6M(FTi6y6+-%o$95>->%rO zO@|H(i8bmGB?LCedRstG!ZFV%Oy7~|kR!v~PW3)lTdjDvlAZl=C;VLT|5ET5pwD1q z`U}_)s>nUbAd-UOQC_Nm_I4Lac0I*O+&F2` zDZ7$Itp>jPI|_-f9CW|vTp|?iW!w;2onBPdz|hC2!Bbq|>gJr<=1_<^zkX*UqBO-D zA&rd6rG#KNw8A8o}QpB55N(Ys(UgUz0%AFaK;o5#X&&GvLq@I$0IqD8sf z%`kOF4SVPEd>o-nm!}Pxd7TvxSF-DI4!gkS*ebAn*=nSD4;Bi!T-hhEnU5;|&rAIM zsAmdD)IrFH0^Qkq*`;BSUCmGsPo_A)5?~jD0<}2$d8T-cC1dn z0aF|kjB*lx8-BpGYPjRLo!P>`AXViS#$8S$HtDb zQ`TZsE}#$7-@3@0spIxMO1FgbJbYAXs9^ej9_8aW9O~)rN(`&X$Hu+1&nNM-%xH+&YHI|hHH zQJ|k1;QoP^_*;Tv&lg87sI_O}DYG1N!#$y*>N44Rjf%vH+8?%QLda?;D+x|3{O&nF zbZ-!rz0YG)4eg^a$}HEioMU72coW?oV>9_jeB8AgSgYk7vW6)uT@Z$Z*eI};xA8%m zT2E}KQY{SVOgQndK^wJkuPyG8w|s*)sY}ZE!#EZwBSaJBO03p9`@s!aKM#>>oo+V7 zZr)C+*FZ+Jb0TKEE-8ZJcU&)x>kjh{lvmdtdy(&hy9>xOjLdXl&9@D=?XC^HjZMlr zXPaY2K#$X7zT&1Wgl9u93NyJ@PQ-2-O4_ic;tDx^lkxGfnK|CgNp>`q3Zq?t1D3%uml|Sll!N&1FzWnd#{Ksjp{(wV&ckIVF zjBk(o&ZZMa8Jxiw3XI>Q5QM=$1)lXu-51TeMKr63AAS<4N|H=X@&vQlogW@8cfn7UMg(*1s3$LI?{oK_e;LEuFHgA z2_$yE}xAN0YRF(fF zmgFxi;om};d<7F?@2-?rP8y?~r9zztly&(v{+R7;C3}&mxYUR?k-s84U0meuJcUP1 zsXXmQK`@hdHwvB)6x~W5y6G~bfQzGv8fnKGXOE^3Y`HRgZZt&L9|d-wH`>*)eO%d_ z(?mgME;y$}FZirMp6au(7)pvgZBNjiN35$vsz^Nb(VzS+a**;KOR-enSRMjl(5;m5`Xg3QTM$eb)WIJPmbru?qqD|=J-Uf;w7m2RMiopJR;KNdUe=6 z)WKFFVn#DQ&y8AmzIeE3lVN3w&*X&RM>V}6(vW3Vw!Sq=rr8vukS_dTsTX$G_z`rb zm|L$J0b-tql3q+Qwwdc68b?iKckB zL?=->i%um8UY~EJr|n^=!FB%W`4A~?4d%Br>mOS@Z*c0@rJ=>3Y$bGorR@+!n zbdE{+c|AECfgP^)elk7{D2pE?Vi0G<2Mavx%h3@da=^QYGt+q6j?yac`YLpxy3bu#5}S73=e_Kl)o6l z2nLNGHMX-HPpzTM7;ibgm6-0Che~&xTRG zcw3$WUfA-oU{F5XrGtGc4q*l_E`BnH$S>y(-lo+Bv;pEEQO@W4Y39up&Q*~_^4?S z2`$h0nhCpo01NR793_^-qKZc2R`S@#wp$6diUjCxJi5d%ZJvf98miJFN_b6 ztW+yOHT?7Sv_D8nXBtgiwkdyDsrykrK6HLOi|fbfhIop2t&A~eZlS5@c0p{c$FqYP zn7=3C#LTm*-RzfKaf2d#{F9zQ{Sr6#HjV#C|GTxU@%sHE4UEDtv$C#_ z1GFyrF;no5pZreQ{`!gEr3!EuS-BfZQ6$0;6piE5r}lPhV2?AvoE8+GV^Fw8U&iFX zJdOsEIjk3Mg3U#VX5l5znjyVqn)FuyDWc?b~eW5Dx{0wzKrZOy!#ir|-f z9-aPz#9=WIkge=;T@lz4g`kR##;FNELI=O-$m8EL3DB2R!e4jfea#Z< zf`dGKY&WbI?NSvd7z%iN+AZw$y=hFTzBxd4ItP0^0+blOHL!iz3fW=?tVEz6>fT1^ z5p@J}SM7WtL69HK#69_%fE1p%!q&HBQA-1+V6`<<5u{nhLHotFpw z)$9A6mj@;GKNxs&yy4~cP&Ua^M)z5648sYk60+V6m*C+Y#wO_dxje9$hkDUdJeo(U z5DC;VuKRE}ds4#BccDP-uDD?3`t!2wVknMoA$6ke*?n7S6FNT?PeHY`Anf5(I}aIF z^&pG+LM&!CavB)b)2nUkePLhOL#Tp{C{)Hm5? zl$^W9?%Bt5LvG#VI^*%2j)}S@RwjJF@6{yTbcf^0^7(wo4KK>~h&WUIf zrOmopl$~5Vy6m!f9%@9HlBSDzXsVVgXD9*XX7p$si0!FSck0olDfj6ZijgqULwqWP zd_Pfn(G%@1gOl7}47kp>V~;?a#`&N{xxj6HnSS`ps|S3Pzm9CPHGz&YqdMuQxJNAh zSje|$y>D7L6n>m5`t?}olY^r-UM7l?z*@PX$iro2 zIy`oGp89)lD0tRf%_2?Po)@ySx;^SQ3QyWpuAn68bNp&JZFGSobg)_2;y@i%d&rt)HO$`g&{Ru@l4 znD-Mu<%UCcyl3-%D@n!1VVZ-YxVXiHBo#yGsYc}$-T4JZXGfd$E+PFivd{%P&HLM~ zW|qhk?Q^tTh72q1I|+x$y4%qX=yD=DNYM|7`NR<}jL@?H7t}QxXJ5T&=ZEve1R=9_ z*ZjtNzwd&3y+`5ol_@`d_aEom|9$O$GqE3SZ2!#yA3n67AMxGvP#PmB7(-X+B^Zie zaFhfS%wA4*_Cp`qyKJ@Ls)h4yB}2h#X3 zNN235xUP*8pw=8Cpj3>K;8aBPCr!NIo%}QW)$Fo3dKHu3vLh5I^rA2OdNKs~z3u>9 zK%>8KMcZ|ubvckYd6j$76d*lJ{rT1b2&SBce^M__K%p;990TrL_k=}%o5Mc?AyxIE z_SQJ|^@mg4!shosUD`o^>}U%sR&e-R3Z9?zvx!cFUrX(`DR@;paKJspDZia9eYg24 zX(M!3MA88u5dOp9>8}s2k9|>pSEIg&xNd*r+fu&W2YuXGa=LD@qw?YWo+y#bTzqf( zCguLo9cSrZl;O~a{QKLNP=1w$ulW4KW8Xs_^p}{YkJseE5!@}mNW+=UsZg9Rmvn2m zs2F?QMbT);%y+^>?e{ms%yxR)TN^3QtEh0Et)4r{7#)xbP6tHW>!-Yg^*u?R5z1d9 z7mnzc)`oH=)%l~egX_mdo0xR-2<{kO-LCc}By(-@5#$jFSAo98= z2GF^=oL3T!b*L4l%^FUbr=dnQO7NE4l`HRQoWiKDg$k3CMTRykEuA;zXYh8KpqU}jJMYRDIBaGG%#SZCjCW_B4EB5)wnsi|wu?u>9= zKbWDsXX9nAhdR+}lI797rRM3-p>Eee1c>t)ZwGKXDOJc5?=q{Rp}3wL`e*XN&3fJ{(oVek39dsUE@0oH5jK*3P%|V z1!Gt+n*P+Kmcm|>xNy)#v<7HV^k;~H3P4Ey8Ka;W4W?PruM|7HBHHJ3x?UaISp=M2 z)??RbF?x;aTH`tV)iw^`B?QU+HS&Yu7c{*@*x9fA(qJ5Pn1g}WG*}DCzz=IInY={R z>q6@f2@UE1%xiooFj7asNUjx4R}^0NfkmJ}3WLGVKx2&qr!+8V2L3bs+qNZH0@vN` z{81BdHX}t1{cK5}7T!kZ8)I4s2#ZWtpNx`Y-$SOO11wLOIrPjT0KMVg`<0h(RdDpGs;vAvD^)>%x1+f*EcjkrT z4yB6fi!mO`e9Uw80{x<=i3dGR>j9vp31l7j*SbHFLrKx0ir@;PqrD(FUBW2@e2+3EZ z7rH9{EJL3T)|XqAIbLMH|;~ERef7PXOhl`Cx>QObfvhb z?A!W=z~Dtb!}`%af`=SscDYnT*S@x0?_DA*dl^w7zznECMe;_2pw z+>cXs4(iUwui=j8Q1q~6o-kRf&u4P({oCb+-1p(>c4^8G5~KF41$83Mrp(ai3%c7J zGdevbG7`3ZF*D)P?>N5GRyf+uXlULfWvH~QAC-tvwl=g^>B(~kdp7oUCu#fWkx>Ti zsJnWzXS9L2&6lT;xDq|-q>_|usxn-#jOkUj`g9y5h&)u>MX16n9#lr+P{la)n|vz| zPVNlL^?>XMuDfqM#XEWxQ@bm@n!+89ab?e59Jhdu)=80JtCUhF-t5$||Cm#*47#ec zI;Vci3{;)<0W$y^i(gdqzaMOVUDCcem^gd7QEsBMai<&M?zddV3|g|iO(rfm-lZh(M@ zJz(Ed@-Hnq5V_~vz{)s~ocF9uvq}DT|AA$(FOL^M+wPCt^`(}7$>(K}1t@Nx-rKh-c6pVwa_iD)~`E7<3dJp5wc=8S92-MJKotDaz+Nzf(&>8fk# z&+>7;>bLBS!xlPn;xpGO1`2C}u9;)E)lc4i6IA>2V&Zn5=9gi+L%m@$`R>FMQ*rc= z?eCK$y@^bQ17#TSBlBG}oC8zoH~`)1s*i;H#)wyWur zuiwc#Znu7Y<@NH>dW(wQY)-iK0kM-6wi@@9t(BTC_^vs^Ok( z`@ljs5}ZR;XJ!P2+*9;COD1ISXA z{-|#+@d6nzpG(WqkYzu{&#>&BhjuOkmC^R}tj^XHpjo4+=pb0^LGB+HLSuU_>nJ6# z8Oz|HQqwP_*wJnrCYz`3^r$CAHE|Me`2Ms*-QT91>XP0b>HmoD^&iLoPy_LB692IN z2m52~;V%w*CyZYY`L4YVp$HO#NdjkJjAl?AAsB+dNRlQQ2EpN#7k(-eS*c$HgFHP= z01B3bphf_s95~>H7z6kengO0gQh!pPQ^NIeiUxUnlmKE!Fldzm6$X-c>FAMHp5oP6 z&cq*wZ7ZHsy9X~=Y|vrh*X zusHNXDqeCH(fNWKz+XtS+=paeIZ2iDHO&1kjiK|^m4pJ17z687$^Gg-TZ#+F_a6ln zfAgRHavx}}TU5j=S^UQu$3H&v`-vfNWvy+w=j}0%9Ov0MKbEM*qV!g9q;XNj8>v8A?VCP2Ih$op z;+ChiVas<6d`NnoM7Aj$YUG7Uk6hGBa)h7@?T7 zS^IIoW2-&2rB+pweYE3}I_TUcWp}2C90FY^1ox?^&D_c4X#?#V$EC@PF1Xu++RJLU z^5H@~Etf=sx#vyinTW?OspRm{UZTofdQUu!yK_oCZ$uI{phj~l#=e;MB+$@7rr?fH zx=g0?EC|9C2%JrQkm7DXlh?sKI*}1?i{hE>VfmR2;(UO(@(|wd=W8W+xqlr!dl1U| za2MppXyfSMYbzk|OdATDAyrLUPDWp7_1jQq3)?%i1{Ifb12?xP&OEOpoIJ!{h*ppY zE*pf34>6DQs3P-u%kie3Y)ti1H1d&X9D#1gBvCoYke-J$+GqO0Bj&9N0<{}WuNjT_-4U?I~dAETSy}-6e9|~03b53-n!`!39w35Cu zJ9K4s%gV3D_sT;au8~dXaRPenp`d11Fs3THao5*)fY9P9o9D_>QgqRI|8i}9_;P_{ zp=Cx_|gUdW5=KrPcO|~3Gx~;)EPmy!hcSYZPYuy2T zBY^~>5zOctAtccV&>Pir)Qc4+caPR1BjdaGuUa+8@N@)*372f|bL^bGyLLr$+Sq5B zA45%KwVIm>$9C5C4^Pf_hEX>%(dn*(_c5EtMRb;y?pz#H+ST}Hu?hP8UY$p|h$E7M zqUmyaXD`AVDOY%uo=W5oyycOV z)`5(ieAl++osS*aI8{2W-rF)$$n5#d9wkYZ29+lq8BVo3o`vg-WwxB1l{2&}_p!;5 zmkhadp`KfIZ<6gvw*o3!qlAb(DtNFD%!v|D6Q3&g$Nms6-0q$qFahiJ7;Xlh-fUKJ+T1#2KCe}Zx>*mDX61Bgc(ssf!QkPk?=w3`kLTga!B86+jHB+>rS({# z#zg20?eRCNI-2dRWhfyLBj-{-@}^R2KTZtnCgIEh4gGE(E=tow))MfhZx&u~7WeHb z7|&hk9X2C=6@y(W5vWHD0$H+$%QM~x(fXnI6A_{^y2M%6|8>p(60Vm^)+O279@M|y z{H*r>%?W=A(fUFTl6#*~!2fiNFCs?2x&FI46!c}ih!G6IAS+{}QQ}ioXfk`Xtz@9! zmyG_6WPsZtFQ4U=mE~`>#SG|4#DPcQrz~-$h}0|j7`=3jqWC>ew{pVu_)7Oy*0~b8 z^(GMmDtm#DQUqj?@Z?vCLkiq(C7SumX>lccX%1YM@z<1)S0ZzzwFCyZCP9JOrVMDl z0Sz}9$R-jQ*cMya>Uwa!CFs#fK|*x>H9>yI5>@9Z2)vVhtwY%!)>Vo+_Yoa^R(Rxp-qL@MWmjOL$u8o+2ZVroQ^F>%d2w zKuQD@aq=%X;7uzb-PHkFB!ZyD!w&^5&OU!eZ2C^sD_Mur2<2aK&5V$JC`~ zxW;6?%}|w|H#6|<6)~-13#2KId<~^5`mLlDSs%zbRP_c3R|B2Pw`7P}#=f_Nmu885 z={*PX<-D6=YZD~BB}QdwYWS5}Cb^sRznET#0$_?7f$*cInuA$%4YvI8e!(=Wa=bx`stX6Iw znH#0tU}oyG5XSVTt!l8|Z7sLE)%&FkV#RR&BY{C|7eA+=xK# znQqhMj(&%{Ew?CM3#-KAbnpeGJlYRpeFEu|D4Nvw_2Degnbay;&rX=AAcez-Uss~WZ}$yJXIhbs!7?z1JS zDI3}lS(uv@_8P}8(J{L)?U@LZ++B|3JOuoC2Qy2Wrprd}vBMcJ$n0chxt+x0DOrfvqfv%_L%>qG99y2rdbO3cm~(CWp!N;QI1S`B zcB)(XR;~o1%WR%*uiEC;JPInZxsLD6#=Da^jy7YwEz;=3gh!Feu&MX^V`Ni31f$q( z4(r<>4?)%u?DcF>0ouC4a>^70W=TuQo~d?2L*}Gdx5r~zEM#hOEZc9*WF{g1jD#k+ z#b-kqx{Xch`hDT7aqiH?X9#YA(TTkrl;VJN+2anoyP@$eWjY2rTF1MxhL(upPkezA zxw*3iGE64D{m)^QQ|8^y3Qirwa`9w!&0` zULu5eGw;RDGrMVaz z|DGpdtxh$vDddfAFx^hJbbQphINT|Fm+`53hO=|*+Wt+s?*|krny9@~JQMN8lf5Am zqcH9MXw}=B$ex8W%G?gQxjiZDrhe2MTOHeFL^hraYZ!KEA{COa8f8#Jq!l$@blrV7 zu3>q1MD56s_iUT&&K|diyCjDTnqt*n9}4s)it_$GpW4pEpxcqBVVm6YzQ*6G5)Jh1 zDEb8KIH@Rxnzur7_4JhRDx9N(3~!Cvj142xcSsh9lp#X%Bc3~xSs3%eE8{VFZp$ZT5GeNr`A<|fkmB^Nt9-$w1jl+74{?Yl%+3N+N3Fw5If8+J)w$$~Q6I7Vo7 zn!6gO{mvTuSwo)5_Q`A8s=cfqCUXMA$AJhH6HWq=d;%(gH?Fl zDQJWOrFYl761Rc!5CSW9vXnMaqE;7f&czT)k=pvhs<*#B2>6%!vwzP0|FaRkuY3E| z)!)~jlLShlC{5$&`Y*!}?5CA)?2Gs3ulz280(np@1C?qx^=doMUR)Ug#oGwzOaEM# zEdu9e*~@B$1XX4@2}nP~0vY(^)gK?BAVEyVAcdP#z;Y&9ql{nieiR2)YU?Nj4wyPf zRnwqaZk;MhftJTL2EYi==}2RsmSAQ1$ji!&j={~amnR#OgK2?U2nJlW&M(eD{E_^& ziBLT{fcGok)StH|0=Hg%JnVnL`}_YN^8RnCz#a9YyiVXnC{k9Aa#^SMZPA{9yj6jJ zlq&%KFG{mf8?*WDTDu;@ji)q29|ymEFn{t~pwAx6pF9`nvj_7h&jtGI!TkMm`Ce2X z`g>J?^YBQqd7?y z)-ReTnqFl40NdVj%1?E)PfR&UTqDKO?r}1AG^Ef7H6-J3WoGF%VWVcdoAGpu&+RF= z@fuOtm+e4^N21mr-fgkbYhekriG;e21cw6#J?HWe?6ev&68d?Ocb8xzh$heVw>lA{ za(|`I+wLM1o$DO~`gVEvbpgjjbk`JGJ<9}?rU!mg@LsQ_E+u4^X`_ZgVW*9rj2G>= z*%_Dm!79P}B^-iHy}f8oY^M`>jirOC_Zo=C{deX8lCy6CaKUp4wtClB1j zig4dv@E996%28IGrCqEzD-Uc3QA!^j48Q7;9bHXl_%xNr8QV!H=gkksK9h&4EZ_o` zZsS!QEX+BwGkZm@>~(*WSiOX%P@#|Ox>X~JaYUYRWbZbveoQpY3=q&R*| zP0?TZNWfg#L*}Ah)854XT0l=>*qxX2;fu0vA>V=cL|Fe)jmP-5E&}5DBPk^JL>(SZ zEZ(|qL|w)k9lmzQQ!Vhs8%?cwO$`lA^@|_QhrYYuuJHZ+$aiaS(23tGQrVvSN~yow zPC5HCTCQyU289B5O)#&~6cbHay@^|^SYv^8X4auMGx%9y2 zs~K%>j9AXPuAW;=ith2!gbdswAdOw7@5ui*u1ynA#WCT-o z#_4!}lSD>4iEU=vr|T0sp|HPGs@>#fhl}2`)Bd?*Q(rh=Efk3fY%hn4;SK68x}I)| zX;agc?@pUO4ObdyZ)PZ;xAU0U=N!v@ZRwCvY|_iVC~vUB9$YO-_1n~8W$((U{@iS6 zvB57pDL)m?E#!9I6N)gSU~5?x#Pgn2dDv3<=)m%wb#IWvv3PJ76isffUb|&I_d)HE zTjx}t_&Pst*=0$gpnPK8>6zYYDH}Rf&9CkSzT5X)qWv5=mQj3XG7X zyhgLsT}54X4{--NjBX5LSj?3xWcISJ+J38_+qNZ+2hF=D&&wh?-5QRCOgqen`Z-^= zxvcQohV1$)WFWhnZQYnS-zwR0BNt`E3PHp4jg3`XI-Bx?LHKlRq>3nLn+tSnV@LnQ*o;Q;ZR=!fPXm5x1qqNI*2Qi#v{;i zieZ56XA~&-WnSVNK-lWIXW|y(z&PvS%A4wuea?^+XN<*FBa@ikxQO-*& z;0-XAQjHg00+5s)zqHf5oO+>mtKLSFKzVWrc7u`ZduuB4)iU$m8S|d1#|mM z$Id}f&v0`_*!iI=+XG%mO+X#DA|z3JN8+XRGiGVtV3d`IRrYk+3nNdPM5j;cxX!Qa$ z$XDKsVu2(={xa#IC?L*@kU$5L{alM{1vWGRZpn1=YCMf!9z$>1k0gLuECpznzjPkf zyQKsW0Y>r_a(`81`Eq7VVt}amOQjg-L7-qqpM4oOukekbKyG-QbAkf}urz&H1jQh? zw$6rPUNR2oYoi?ps0&mi;#bcP`CB-}0i5>!Z{f85--1)!;p#7Ns>&u3fJnyo`cUBA z&^NE~h3#W3y@e;E*Q90)76MoqPanyit@rhsHDvrAU;h+dp&#+}E4(uQ2wtHd@%1No zJ-U-NeZcDs%qqcVRTC>#;VE7XMGE-<_VMfc`6@pNyePR3I?;T0(T{Ko{SI$`2e;50 z-r~b#9T@hyVSr1EPqG>oq9k$O;v6RX${O|zL%uyY?pV18{OVs~{CbTxwoyRs&eqeX zcJm$>No&tkd)yXWNXrJMG5_lHad{!D<1;DchnF6P?!@@|&E}7l8+z=nL?Lw_ZbM?(#VPUHPOS@E93p>J?%^A*w@jl{i(qQFRTc6Kp-`YU45`LUT&=m zN9@UgW+r&b&j;zdUe{m2E%ZCQmDR~GO1Q-welx4+^@?q;*M#bLv~PbZV)%-;obBh= z#+l4Vqo3(Z2@9pux@qCNr%}3|F|;~at#IAeF4U_o!8rE4&5n6>4K8jL^hgp6@y#uc zH;t!v)i%WYnYbilt-GRLkz(s!XSSeFaW~=+QKuWNyK>iwq}|8Rjn9XK;EnC{n8hlI zsw4$tw^x%p;j+I^2lDDpGI>4EyjbvuynvW?o)?D5=j=(fDt*X1b>P<%AtG41#kd7^i`?lOA10VXnysDbk&1?eJLb=`cRzNt ztBw28Z;}51Za-v=|4-rW|K9jN1Moi``?pAp(qP{R6rtr{H;6)C+L-YRHd$cVw}yu+ zx)LvKqzL;IiC2_eLrEroSra9|6#yZC#?cDmWDcYis0eJC0c8f}6>&14F#?zh#uJe76`Z*iUVS?A~D7Sz+Vv^ zi$EX^YVp=6{`W{s11X0g`z;b*#Q!gm_)Q`24T;xi`SC|HukI_3u#`^A;#w-{<vuHBH}i(hvVfY zmPvL9b{4viH?ek1FBrtkH@~Y!Eajci2h&`2b8?A8RH~Lc zVOhp21%(qN=a=Xfa(Y%gJCD{I0xmIzBi#;cS9k40R7pFJg}`7O-_p9m00v1giQo7p zwswb|u3TbVl`ug}|Xk58j1P?Tux34>)-ik7?jcnU8J#Urk#7`JdLSwaxc zjabHEpU}e@qAoJu8LjJ?u)1TCs;^?BMH@HLH_W5DK4#fXQkO4e!WBH{vdbs;2Q`ZS zFd~-qIp<9H4smHRZJ(8P?aJYJdoEI_h<~R>VcsJt#oBZ~U-ED+3Xmp6fV zRZWZ^_+7{rc#=fX3Q6%bE-T@1SYui732R6{9aD8_y~n1^7W2eIkBmCTPaR=yim;2Okxh)!+hauEeYrB13fmn!Owz*hauQkyxnubD#FJG0jDp3_H-3d1 z`+0(Ke>-4k5z<<=?AjZ)Eg#%B1lmJEe3I7zZJ%~Avk^dmm4183e$3?fjfk-g;om->z zZanm_MWx>h%3m^u$=fuL7n~E|;uX}9H!bY!Rp$M|e)6SCfl~mVqZjtGuN*fJRzzM( zNI95IME@2(9k5i^$1egBDV``R_rLY0=~ERXTl_&l0^q3pZe0R2`23 zy=DUai0FSh6X;_qKh5M%{BhWFID}KuUF{RfSG%1$DGPy{GJm%9-EPoz+wq_M9=|X1 zVLq>sshm^NJ&nb2dw|rLQj{pW4@ZnVP1tt2!?JlgFT1!;f;wM%Z`dA^&P=?`&FUzZ zGU^OI>RM>T&7BE4D2@=BIdq=Dz!91A)=lean{sO(zfrJgY{oqtHn34lX>hF)*oEmv zrZbb1XVpy)-1-nRtj=h8OQ4I9Q`G zf0UgCA9Lu3&-uIGYt^%ywSOj@xtTf^-Ch0Da$z&93Vo?P4m^T8C#GH3YXv&F2c@hC zIH9#m?!wMJj-~DG-f3at_9TIr*S>My8u9hNEu8i9I@qj}S$XX%k3Jm9IprdJIs=9QTX6UrtKz zRo0dX9`l~*+~>X1AINmC-2DOD!^LPDyEv??n}LQJ<0G*_AZ9JH1!R)Avs_RZIOw#v zj#cxRClB;!y0XmOf`_`>MhS8*d$&<-H$!ObibzRgUivv4*g$~V=C%)G-|fmrzKuDb zi5adf5=zF7D8F;-6{EI|GoJE2^9Ke6-vEG_4b!zduM6luhM2#(y@B$0WdO6^QVquWs%&kjp=BNN2&ij=fTu zObiPCKz0@TcTR#J4anQAu^9?5YCXONR&RTdz*Oy55gHPK^eup>2q54ZebFz;J>UY5 zyjqZOfE{ECx|r7C*4wNg2jrAU5Gf`vy8;{q0p2m~WiU;+KT*xrv2lS_=W zx1a9ii2Ta8;C~ll_TkCK*8rl6e6sx+Vv6O>hV5I3c^&)ThnVkY@+S~8XpUjb$rzD# zA7S$Gx*zK&esP_>?-qKy^L$$h1GWv<)tW#j{Fn!i3vrax3SXc=M<%CVq%za`=S*dr zI_eBOL2a`@oASz&=H+xfad^pX4jD$Q z^m*3ML-N4f3zU9pa9-9Yw$sdLxcNil7 z4aD&C=17vyXu41pWbKYq)^L`qI?}R3{znk=)lyt*PJJ0tcVow*!zI2v9iiP>i!5R7 z&D`{ldj`YOAwE0#9vVb#bY(X(T@tf!sh~*{cS>*CU2}1=(E&F`RA;S~Fvv&ud6SU# zpv`Nb@!j%J zoF7`4%O^GSLTFc9H?djUZ072NGOwXnSI91=rap%IdKlq8e&n_yazQG1dS>Ubj*DE& zs+-%f`Mi{dxYD{!8hTpAoPMcuQAIWjX3!zt9*c+i#dVs(ePmV{|sUdU3RI)%Rk1K zU!DIMxV)eHog)sz;xxb%gvJS+#8y=QRK}G6>of9_PG6aSlz`fB9C?+8zlvQz2Jlr3 z&a83B=fO+LykZ?31SS~*iftGPPzhu+ zUmdSFsLuJV)QJreLCY7DaV-ue*Y1>yFcLo^ivf_u`ceJv_v`srKQoaxe?k^3xp+f# z@`j&K#o?ZBfs6GORo;$$nFaLEQRVYlK<}vXbr%272?rSA%=|8g?%oErQaoitcuQ=e zo^WR3(mex4WvQ!Z+;I&le2N%iICC&3oT5v8s2im&y`kl|oCWC$n{Kro-=KML6wb~t zD)8CG^U|6fMZaeHRzK7mp(?G%jun~>a<>Dz3e6?DUo)}`A-JwHTTVPOuZ+cPG@?L! zeMYiH+sk^KQTN8==Cst zJLCR#hfiQl9IB@fMHhO!2UpV=xR5f8;`V?M#R)SKQVna~vR?j>jiXF1p|>=b6q8EB zN=Dtiq{?A8GRrX6JD=KHsh)10kKJu+@c}aI@RWvVWWO<2l*A6r^R_$}M9#;pL|je; zY(?DpF&^rKAJ5~ZChZ$5RWo;Q_fpySn|6~&qXK#Gow7rgj9L>?(YO?rNyClHMHdRyJ9Q=%0gO)br=S`ipl| zALB3^oSxIN?zRTKxmrl7AVn3*7mmKP^bsOQgrLTWSL<2x&gbx7 z?YKQ`yHa4aEsn~2E0c&pd0>2uI45X7$w+hF72IAMBe;|4cH58i2Bz-!D{MZozP)UR z%lG=X-ppoS@{6B1FL;oZf(oMdy2`E??{uiWT} znIn(wul;e__@V_F+ckvb?CPF4gPD?410(yrOdWTmIo+a55>qKF%_uw5(ufAry%Fq#flK0L@a((1#Vjrs&o~Ea$O8vbqf;{s+}-lf7sqUT?)-` z@5cU>n&X`Xjl@Mc!&SUk40Xfr#5Ly$`_VDxvT3TT^TaoVghlf8DlliFxOn{Fd&?-D zn{i;+n;}CZj6SI&Zl_LrA{QsdBr>-MI74`ge4yTR)SH)VBz?XI92rb1#wm2!*PE+c zX!A{lf~(&=`7=@|@U!E)y4~>faf^Fg+O)&HSsDq8j&VxpWY?-cT8| z%>-=ZnyX?@f%PXEAfFK%Nf7>+41IRZ-w+~j{&(RvfuI;hun5gi==uYrJ|#uKvjqVX zY9#q`14jYDU|A5lt^qiTgS6_(cvj++tzmfjd1(>@Z2MN`@`|8A78YEN zOMvWsL;!*VtY2cVKME>}epTrUI`dFa4xGQt)YotuIOXP`WO$9+sh5Cp`qG34((FcIj3ifEE2TF+NM-E4^5Y}Du31nnNR z4f^R2K$Ji~-N!LQa$j4N(D!?k)?4HK%K~ut{%-Gb{O^{6C(94tno&GeM_+E|s@}wY zgT_Z*wh&`VU)?RqN{s6L!P0oXaJ#~?IIS=%jS+!I{wm8gI0&h@3^OEKF%EtA=^P~RgxdCn_k4C_%u#vNWu z4*Nhv%Dy_Xw?w3yI%O#|r`j-|i%r~yX1iQ!pu_xwHOVpRmWG;m2{n(QZE&I(JxC6X zX#XH`hfiJLIO2VPZ=Buun%nY4@&4XdoSV#+6Ztb&b0;C+tCh@09kV{5j#W<^uZN;* zT+Bj>kYeeelebZxPCZxfb1BY@N#ZAxE)^!nN}`okDAvOgIk;{LQ^<5){GQUFyh+$r zW`$_us=N3!6}JQF`|ubZZUGte8G-HLAyCbD+8UYlCo)A@H>@khYyHU5k9-~Q$=Lt5 z+g8tPxPDie@oF>%-W%^1e(#t4r3B+gA*26ecljc9^s763yAWbDOB0`VH?J#Q_A1LH z5Rj)snfIDZf&$?k!vYKJb;Ut)(2Y!g?(4BeYHJ+0#(3+$*h}qvy>yM{P!=qOYY@1` ze$mSx8;`)j=&dG``ZxQlvP_`A$$&X9Z#!xv2=j>7qDB+1I#LYOYR0dGC5nJh7OaUc zJ1rstt0aSi+oUfAPhe0&gF?+U`d!~9ll?Z;ID%r3`~G9?6M4zuKJ98&f6&utcmpzy z+N6D{=x@CE(oo^aeynk36JX^SWAh`#8c?S3W4GH*nn@7?bqlGFd}iqVZ4JY`hG@k{ zF^J;6YCXUz^&ZbD-dU5#CRNi%a_ND0$Gebbu`Zw37#LMeUx9$jrj3A-d1G03BO5z0;81A5}?qpT)>IVz+Uk!H9bUK)^aqO{6nU7@*z@n1U*+BNj@7P4grUwbx=t^B+-^lxIO4oWyp|rx;?iKZGBZG^1U_W8^1rn zz2DN(fW(~von0Mwgp+<2%Lld*4VWOZ20g>5&+o~?z0z(&O2|kZ&He$OcFsQOV3jS9 z=K zTPbi$OM86BZVnMjDT?+H-ovkd5`3D9kH?T))W=U|uXhOH2(N-LCH zpk6H{f}N6XYFQ1bsmHOCM$eT7Td3<}o(Y6rBYQd%#gw$XzUn(6vb^Pz>_rz*^BttI z019V+2g^6n!oz#Vl!YgT{N2B9NEb)89ZYlw^m0VyQtKM4Xiq7pJy@a*F4={Fbk0XEMsiHHswJ8S=BXT`hO$s(cv7dijjuWx)!~4b-9zVn<{m)a)qE!V zqoNGjY{l2dqe2|N4Ij=}?hA|9_>)mx`7Inag?;RMao$M{J^|JPr3lvHiDLf$v8uNa3Q2=*6&<1EXt$dB$<|HGlag~wkG^PL>Xr)D8J zNRHAB*mgs3U=+Dh_k;zxQn0VZf`9l+b1;FG&I4?wK%*b_>PaMDMI2yz?WIZxf(8`e z9}U13U?c*x34vk=IDrH*gUBm~3WAZ91gv4pZ)-i|7Hq^3$FHT5KdC^w^2!S99}q-w zSNaNlSVIBZsCR%{5fQy5Pw8avU(jOzsza}kOB6bLBqxP3!G+-ec5DoD{oGfCp#sm`+Z>jqX8$)?W zZfuJ}Vs&!t3W@_@=lP;EJfJSY23$IZJ~ zktW0}#8t(`+&i*+I!WhvYL?xId&Vud7_Y<;UtpYujxSdSvoTrTZbIwUviIbeYNhCB zPtsk`_b26V#o|)2m{}Vl#@XcK=19lAig{D3ju3r1 zj-(h>7Jl*=ONfclIXxv!JmMuqo-lgc5~HRc98yv9B$Kg_Og6)?z6JDl)<#c&Fb3v1 z@({3l!y?oj#;HQj7&0ZUfzI=3-|X0TNWP8TGN}3WUDR%U)_wSy?bwR7atdmWj?i?w z>vcH@C+omW?4ikx2G!UcVdG~;nj5p&!FHu$twdYoSS{2emAmI*-)#4&1hp-CykfAw zD;ronnDIPE`w`>W6bn^P(>TfJd!tvbd;ZbIx57b3f?#tY7sm~31S$_9)zRCbCKW}y zNhCtKZYp7mOcg3q1&JdU9jSBOjm%?JGUbgXFY_%NeSgEJ7-lsH3y}q{6%A3avm)Sq z7qoDI+e?s9c#Q{%$%k?wSa}-}rb@tB&AN4ku|b=E=wv|tlMnyYbMqSpVM6sTEV1*E zKx~_xXp%jh>*?9w?!CyJ-aI!s3DjpB+@uKAozDu{Uso;eWmod~e(L(A5-d32LRifh z>M%U+-MmCQPTH}Ck7Dk5W@VJGgR|j0*dDq*@C{MK+CJRO{=H4Lrtt1s=k!^y2!STX zX0j2CoEYOP7ssu?k+tO%*_)fFxFa1J&|YP(hIrbvi|Gt24U$z3NL~U>L?myh)~oq) zOAKOnz_3cF*RVZ+1L;m#Hx3C2{0>nlD|=#p>a@pszPJZ^5R8)_kk5MCV!UvgR03&r z*kv}6qB2aJP?(zq=`}Ho=j|l65N5hWqp)?BjT@mLG?H;2BC;*Ev(0T5wcr!CB?8Nq z=*}-olwViqx=Iha09V_wz1PqcH*hoHS*a_YDZ&xc;g%WZZW-?T8NF}4hEQU6L~qVv zB_;A9_T*lSJv;B?`l0X82h`50IAe|=E@f5vVWza>GQjX?Cg;$gDne)brx&wV;^b+z z9MjL#)J7!J_xJh62BHFyl5Oo!N4lR6vf;?VBaG$s(e;kco6oiH_3FfnUQ)CN4N{IG^M)*lvk9uO}%~MxQP&hs~oHFu5Uc z6OMya&#H^-k^h*deOQ7jS(|lHQw`DZmlrizn^aL70fmKMyx{)#VXG+~_XAn`-x%+M zvHks6-}!y81c6fo`DvLh$X+C%#E8s5MwcW2$y#|2`lgRSfhwjn29zjS`P1iJF44;U zaL`l&)D==7wML;pyp5qiH5T@A7zI^PB*<2fG}wq{lUI_M`UQ0Z9eAcKuP6404}u?$+=0&9^acT=`5HD-8k!LA{II zhdv4FUdO8&^J5#+SF; z1!RcQw9++T2fi4!^`5+V9h(iueLGhFJoS&6L;va2KV}a7CsSYJ)9NR)=69WA{!Qmt z0y@V4;*{-uI7v?O(5~Hx1~k>Og5jDhN$e$HUXzg#YRT*GAKdBy39-r;d+Ng)zi zTgxpfWJ6WPl!vRj$ zz`6VUPFvT^fhG@G!xi&aWiEq$CHdA5&GL;A*!uLXiy>H(R(#cfGB`z%FJCmE9szDn zyO!^u=t#EdMOr^Z#xFH}Ik1CLTW?am+;OG!J&?2p1$zRdP3xKt?!qY>&jS5s>&d0D zo}ga8wey>c424xqT;Xa8nb#;f4>xOf|Ay}^3?3 zcLauLVC3~c{4zu%IML#^oHVT$u6L3w;HXvuKeTnA<=dG+uc;{D1TZCzOA4{%6ytsB z2Dsq)cW({)^u4LChxEGO?HMI+Hvn&m13v@s`Uq|S2KexF8^C)E!3*nqjHhpAro6uu z^)+DgZW8x84|<*O&7b8@|0>Y;Q#Za&wOCJ3-7j}a-reS2zklOO2Zdn7b>z3FY^)=T zPw&(Ea{hcK;W9@u;dr7>+C=33YNf z!wZyg4r8n|;Ek>u>-Pznir~)u>H={7)nCrh`%({mw$}g2QV)H$*8j;;552ARiolD5 zO!~#I^OS;JIu9RRBu&_MW|Bs@94B21H6q+Zy01;1!%51ek}4)RES_~&=PlI-I+ok$ zd={e)71BfG`Xh$SbDutia}8_iZh&Iuc`Y!>w{Po5&K=nLb~_5k4HnPO^Yx@2YT*{i z_+GRT=diR2t=-0%COvH#KIfci8E4u*v=TIw{FAIFt}noi#U0S0xw< zXS0bL-myR;s$~%_u1@>ef`H zgt4EB%vz}(%q^W?bHn(9`hmr9jm0wx-zSV zzF+zwyJUY=m%p+mI}hD|{Ut_2);_ZCoR!^Q$|Y6-mHlzl9}67*-@56S3W*WZKL?)Qo6L8`9~XoLfVUE08>1HF_RwAFi)Z=7pWO?#b6nB%Z*M191q zC!H3oagn&)fvOJD(WM&%z97}MH@eIAh$_AcVSaaFH9sdsqtc^Ovxs|YVp1NLH%in` zoOnT&`z}(=g0E7t&(x>0JBu?>sg_LPEef4+xmj+w8qLLU@a8?qo`}O!W@{qvg-Uy9 za0`z(t`i5Rr|_rL8^#cHezfA;9F27kVHxfv;{tn=y5~JV#|OEn`1K?7&d$x6Lw=PG zl&m*z;62Y>rS)riZ~WBDZ215-=sqb``8lfP_HSJL<|-`{oKC2^*4?diL}}>xAeivXtJg7~SLN4!N5ox?gsk zmO7E78?GlKYT38D@qnsJgE$%XU}5D5T>|y`s5@0gMQmVV=0XeGh>bLkR1SQbP^Gm? zFQzAE;zluezrSFQokwT78}t;le#Rit9A{VHw#xZVMdh8P`G+i=Mv52XC<5Wn3i1X}$JXmeZfCuc!#H4p&9KBiXO*F#Oa^^553az7zdQ}l7}N^J*}q8&D8e8aCR)?_VKP_as^O5P83IP5v7l zu${=IU%0t(eEGG!ftw(^kcX^<{oRl2H?=e$r7QV%TV<%0j!~tZwvDGvqkH_J3?leJ7Nevj*`t)?vhb~0 zZmnD`tX|`j0ajILi=TG64v#~sq}nsBZ|p2wE9}VggEgH-;!r+xuQ={@=r-=6#-|c> zv;GXqr+^iCc7p7D3cY9F#qb&@=#9K7@fp^$y5bRBm6rpd2F;}riL2~vY@Nq6R$JzN z-|^jsf$7Z?`hS>vk0r;^e@kqSr|6{=&|Jcse}oqB9w0o(9XvpSBnU&8XHjTgL3gj+ z+<7kn%*yJj>Z&$#H6cZJXJ>*iADB#>^K<8P5#pXoHPJEye&AMYBTgA5I$^vhlGSL_ zmO6X}k1yo_cMIqr>$Nn=vZD?qc)D-DegF+;_gvicGQn!hnNJM)bR_I5e}dM#;qvDg z^mp1|oTnxBw@XIo;Y&T{jmt~U<-+mdZTtdaz>g@lgV@mw&|}sWb@G&Xrt;&OwXYp9 z*&c$cH<#z?!^1YXNaJ!2FoaIM9_S}doR|V@xZ7}Y@Zf0a)Vd&LBpgQ7p82O#q-$JM zjB4QutTonh82gURnjVPq#3pI;d2X>lQv!le6sBW|I~O*gJ(v&Qslh;f9vnd;+ypDf zTa%Jqg{~>y%LKv$O;yo+=lj;ln>Fh?JaC+p@9h#ktThi0ui?1b+%q_NP*Q*hjE99L zD2+Dq)Jhio>khd zeM_CdZ{6t>-HR;ycptq-Xe9Qlo>2I$yPdv!+TUl)-i4AJ-`n7+x6k?()n&zA&`IAq zodmSQ-v<_>#Fvgy1m4RoSiIjI`S$VL5U?Qr63en3%Np=61j5+t2XN4QUT6S=Gd>ei z>Bc;H5Bh9pv`ha>sFyA*?=4vGiH`7N?TC~b%ubz$}$?pvFj z-jf@%*$ry;R?aWZm~e7yF2HB6=Ubj@2f)86kolp$#RPyAXtUp0#2nnXS%ls0((>mM ztIr25e3?Dc(DCi8ERX2LU$|;TQ9Pwxf<&Txss>-`fHi5rtOY^P!w^$r$f-EZ!Unw8 z6^=?H!t3*0!{gxz>rrf<8GFi-(0<&x*TKewHZXvIiBNNN#1ifObC#sMfI8?MGoI^9 z5EG0Dp6570&#nJ#h%vo%aocA8zzp22hsE-01C_}>m&-$9_)NxSJn~jhCy*SgwN89B zX0Sctgd(|3m2;JHj!aHYM^r_iU1Rw!4xt4+F889*t4UtULw%T;=w|Up#du0>)2%dq zjxR4NnUhF9z?xtUR#}~hj!O;yAPunVPCz`F_T)m8IKYC*rE#_eZoe9a6Pc&@jIxG3 zSCp;D7>}ntU>yaGGxtbsw-#q24ccn)_*5^jq_Uc7)* zpAHVW;FT8_0QRpOUFr?Z9=gK3g+Y8jkV=Q&{Ni8+5AIoddfkk2>fW4J>_T~o(6?6* zDH9_rPI>^`%iUr9tKO0)w2Xu7qCM8=Av_8#qgAkHx(9^*?LbV^QdtP$a#_Sw*~uTD$UQv5S1A$({mDe;ybX`JVSA@I8p!j)vZ+p{d<6 zj(~Se+prPI_n0h;_f`am-XRV_z7DJXF)&Pb0L6-b!T64YRPq+eruRTEe!E4-@6OTe zjmjIO62;yvx-9}B-xd~cFN-byM6#V5;Mf)nz9-S*U3r^?{|Zb6WAAXBZ+`-&{#$Lc z`2nFESeXHbXSq*^vY@I-q`BD$-4<{s00IV z(7YQTVHWqp^nuSz$MREUGE>gsyqAmG)3QAgcVp8KZh`HGD!J`q(7}2R#pQ&QyHUdi z;|-L(VGdtEVmXJm-%ilN{AINNJ!Aox7hyH|D{Op-lD#(?-q&qYdG>$Et7fj@+mrnz zuL=n3@YALJt(6JyCRTg=P7u@+8H2|@eO6Id3i`dW6^GmVv=NQ-#!&X}Pa%HYZf!dO z5>)BUeC*Ps8z#`YCk;Eg}&XCDN) z=@|&5Ii8%V5v${6MRZ&^u0VFWnSSo^Car0;0ON9(x~Okr?&Im=L#Dtsc(v+AFq2ZI zZ)Fyw5at)0q4JX0VMi4x@&@fdD9&*x0uw8+2ar@Oye; z#IiKTbL3C#_KDGN!8P+3sVwagNKo~@?Z|%J(f-^~_bkc z9L7wdt2I5HuGoUZ>TqPZwty!FL^LH1M*%yl(`v4-jp+cH(npSaHpEuq54Vh7efV-d zbSpD!VZKqbJ}idI1qAO9#nFkO>Ic)PXzID(0mYxG6 z9Q*rq)pUrPx_<*~ejmOKJU?b0KX-8dt^GIV-wx2m(J35(XoCE)So)tj)7J{?RNrrZ9{o5e(VBLO4YIG&H97F$pN!p%Z%NWZ`6wV2h6=>RSdoc~5#5#J}R7yI2(O zfOiXrcY*77A0k4%hqL2%u#CPZ81wh^WU@!Gd)YGI3$F36%wV?&oksR(mwHcp)5Jb# zNxZRp*AM;Fk=srRCHu$+@qV>P_GKq;bMRsxRzYLAV_qZhS zHO;F8)5B>XUBIZHi+{%J5BfQ7U~i0`F}`SJ8>|nv$%f#DYfQ=)J5ru)*%P{JXE*C^ zLz;3ptJl;77^?wWTV!kSSHxU@kDHlk$~WYK_Fjz*l-~K%-N*dLuo-w~V?WWEzb?jZ zw{+P6`BO3U`)%JX|2^&gpIQFCdf-2^{C)MnKT+&ysYGbq+f}y?jbwzAubD5v_r`*2 zI(5317}qQ5gRKtNB$P*=IiL>wkf)l5w>YHMcx;oz#9FYl02fS@X?zS-#;lD+DYl8#p=!G*2cYEAHJk{vF6WG0 zQ)NL`H@~K}!$;z3OygyMo@A2I=MpYXflvp|>*9>Z%Q0i%Q`;p#H+xD*$VTnFw%=+( zJ=DG^<4l$(uY0UFmu@fiO51n#4mOW8KS~kun9J>5JJ|rfF^(tSBB}tgN*Z1G zNyo0ZBP;p~gc;I{^?NqUPoW%5FOcuq#>HH!%oDwfspE)6@XJ5|GLZWr*JN__MTGSN3< zw%a(uP@h$Jz|^pua9a*0$j3WK1j)L<2T;fQ z?~@dweyaISxueyMJl$6yU#qDxt{iho>|d3V<>`x?DqBwCgYo^LR;<1*aw!>rx-dyg z=KRH0ICEfrK8EshJ@JjmGCGi>nmkF|&Gi>0v`$%lO#QP^-w?6X_$%d^83oIkH?S93 zDLwoNXAmh}^zq6=4pfs6aOus9UYoaG%E5$87-4P7=Tm{yvkChHalglqRbh>rhTD70 zUbFI0$66SIG!Mo|!LLC0NUQY3nhVHaw-qG8k(s;{lpw^nCFkNalQwIp%Ej7JzI;4J zs`?P)H47b)_|;$m;2Mx4CU-^)7Kl(T=u! zfEknV6zK|G=?l)8xtsdb zFkL4dK*J)sMJ~!%3SA%0kepO&lNaMar47Zf2BWLsP>#BMJTktDHDk^w=;eGnta$?^ zgAbg!RaMDAzuxiYKpO*=G}cQ7ueK}Mc9h?&jcVRUtAM2Qi_Mp3b|((;9G3(c$p=;S z0e$Hmb@9<$n4P%e*Hx@C@hCoBHabjYj`Sz!cxh(a=?wZcNhgm~&w-GFro3G%h&@2R zAD`#C!d3_JUj%p57Xs5ChrV^q z^LI_2NOp@57~4zj1iqIz;I}6k0_{4r1o24-_G`SUoeW;Q!4vJ z2l}tWU!~tg2(ZTZo|%Ej5vhbU7F$>EkYd-X7i&VZs$hA+4g@oF!@5v znB9kD7y4NY&;BCiu6&69Y@}_YfG7AZwEJVa2vTN=-(t%z*&-hP=y%)ag*~Ym;>c;v zypRG0`}nN2c;75n^2OinMC@NAGWI+M@P|Z(5!gA7k!Hphv$C3(_BA{x2DuduM?6!o zRE%T$%+3{cvmM_A0mgbtx%=Q>9)#Xb&20cfEqKJ}FZS~E(M%gESt5^;C2b$FoqtwT&x$0Aqc!&tu(2653& zTR2=@?S=)c&a1G4PEf{GdtBx0nH&6!m4P*{zSMfr9dXXW4f>=4-nNGC<^mB{P zX7c^_U$QO%-i0PV4Uz5oRaFi%L8@2&(O2j7_XG#9XE?@JJFC%64!1<@(;^WBG)XLK#@jGAsx)|2q}JIZ#qtbu#{Qa9;~@78-4eaL>Vs^`D)by*K_^PRDlTbK9k zDg6_>um33*`PTF6&o1yS5MuaGWq#kvxBH|bw%6;6^j+*G_TmA8?u}|V`L?fw-Zl82 zrzv7|Z>rwl4Sj1(V94Hnofi8nWCrh3j2ph7^uC>@c3CCjqb9$5jQj%Ra(FNQ({BqB zh~ASY#fR(Iy8uCdDBH*TgywD*O72zr_&xc!8(q_Trh>%x^>64(B71@&eGho<)r##d z{<7#GSNrf|_N>6sK`bFpr?)r%! z^_OCOqXC;#>s;MZ+yr^)gJ)bOs* z79M>JMXuj%L&6J7|A^D?`}!xh1^n#3{>g0tKfAA=x3?)jZExFCz1&BCo3i(}ZE(x8 zwb`pLX_gAPE}CeB4V+)nn;uTyX*-RRuVaH!S3`T0=PS?}i)Fq_46lz-K zPal~<54_Pq3-~&W&&dv&`_S7`VL$UsiNf4p7!&OZz_J53EH=sxo%z<(HbSoRX<@>r zi@QNYdypT8k@P%UNb_(F6neZILv&;C+&XA3e&7JLJ`jU*O4Cb#E|)pO`>s+SeQe&( zDU%J5$VDKTgk{YfvfOwK@{~sgBMj;NPB_EK1GHz2x6hGx9kijwLxwYwB{9$A2{yti z)LOo}6008E+FtE4rnqXLh#Wg-K#peti_993*O%~mvR+UJy>H*q=kuk#(1cFTul1gd zhhrF1ycj<_yiyvk)lnil`Q{bN;wB-kh5;}y@JxVJ??r5~g`FuHx7n&utdUO!L2D*q zJ<}XKkMxq=c(zqw1n02zkSiWeVm3ShAYwhA(i8`}ld4g--TqA%pE0S+SQM3k8A_Nd z+wv$>j5%M_gLFJl^szIOR(_b*8wg0(s;wz4^qhy=->%VQKW+Hc;>xu?jQ61hWnKpF z4-_#=6S|*|yFT>*S`IXzuj$62z8+0XQq zTnuc^IKTH$ax^m5blpkefwxxH_Hh>8S}xN+HUbB}CO`yCC+FwY7RN?JZn9xKpjbHC zc1$h?`;q@pCVQjgG4t)dz#n#26gK?Gb(HM(y}uJ)AKL!dM3pW3eI!+2P7-WxD`U3T z0LCjPz5ISEQ2BjY_G2jUND6+c%D{9Z%;3820+&;oOL9PX&<;KflA3!GLHuft7>aD8l3thL z;1?@Dl>Uqwh^Sogc{r$Z)G_hgJ-r&OUH1`TIRo;C8XWXvac%W}03a(ht*!*u*BPUq zxU3q_i|HlSOvUoe?0OKqEo+@8wP6U4;-rUR{aUi#<{=b0OJ)kRj{3TGn%5Y)B2I)i z-0`}`*~1eeii2gsqCh>3flm0GhjZL8pM-p@K&fGc=y7DV2G~BS6O?2gg)sj32)39_ zq+~Rx#D$4+WFl?1NwIj2p%gK0;84oWy{Ex&LS79nX@LkFp@t7=JyT7;e;g3!;^r`( z_deUUM!ra-^@OIq?u!^=r_1y?5)r45m^uJQEru!$fNiQJjWaWGpyEj-E20IYvd!^T zbX8w7l}kf0!Zq}>yX1j2Rl$kv<(EG#nqlLKegm}1o+r#7E^0kjO?#|^>oBGTDjT&{ zP+Z3P-Oawz^#g(0mIcKp{c6gz9<&Q=M8PNk>RlG90H3#azmbsjbjpkv6TM{Zo~_aO zHGMZ(EZ9lj%X6>e4@B`Wc`yjtS2%-N@>M$7a;)f=B&Qd%CtQJ)EaG zIyz|O+3EH6D3-9Ht{X+vY!Sv-OLJUIsMaYK>q z0l~)93H0qfmG51-TTHSA6ZD6UcDyICaP(hfy8pX3@BYdjWOqM|_XHjBj#}uqwCmpf zv_&u}FPr2>6V%f5;Y*8rPUkK@Epeef>5!4=Urbg?hBYpsE=qlCN%#UKS zAQ81aDT`+d)d3R)Fj0?p!vgmf?BgvYJ zCW69zB-8*I$|y5y^Zq(g0oFfA{F(F?INb!#Q7%QyX!GO3jH3p~e2ZxJArz~5(K_pi zZO?K>rGy)(zU0a|g+$QTa7j&MYgx^TV&_wL94Yy=fm)Q#CUBq73e}z@7Gg1}9ID|u zn|Y*W;_B;iR7`ZHsJ<{wX72_7@tA%$N>zU~Npo-IyVVfX z6xf*>toO^d7Ch&oF+N&$nQsx-hM9_Yn7EWCiKlNIwgA+>M56@0Kmi90ymm!NA+qpz z%nw~&UdDD@@Aa%hJ;RWSNK76HLCs~T*DD9MNZrtY9Mh21Dfh_`^5Z?ch|k+Auhr~6 z8}UlyB>`FzHymlajRSZ&DkhBzh4w%?wTy*ME&*?>XX_A!$w8Rl>5q!HKa)}awo4lL zSx=Qqg^(?cgREPPECr);iPdWI4Ziz>;H?gPm8g@==(wyw%7<|RT`Ia3-p9Q z(#9CfhiCPSomObIsqhltQHlug3!y#HXLxmztBPGS&`=ilh$gp;J4Ubrt=hcdv{)nd zq?uUZJmyTf3`!&yNp#4D1|SZ|13pHfM>t8AUqtA}Ey&b>>S-XyMsx2M@-atwb+lM5 zMTTm{lGHvN4oZPtBG=IXIx`0zQ3N)~Ipns*q)ULi3+_v&m!b2}L}Y?=0L#Vc2-rZ+ z=#vq%rk7bbAx1UjRX{Eus-n~t-{02+Lb!lo%9hrSIN$irxpeY9$C3~HlE zc)T}T?HmJocWzTV1KGYoe%|Gcy>*32e3!V--gCg)j~MyxEu(e@RS{D3Sc5eC?#EFjgPPA^kO6fB1JVX5NXGrrv*M*Ssm3ikv8B>mpy{f7>vH*vClU?!Hg3fV@S`p}0PpgBHPO3Lv+Oa+r>Ti3{C+h%Fb2yjSHnB4#;TyZ!3pqhIF)C> zXc*hOAE2r|_LXT_FJU}HjA*ednu^NP=bqj(J@mStmmWJ`2>vB>P+$jzw^lT1p8@-p z)zQ5uA5GK`L(_`1PjrwsxP6%8^5b4u0SptJuI5D%PhG-8i03`)a*g_tYOX90cd0pU zAF|@nW72xLaZP?c=2%5&N0?`mtOh6O(oRpAVFD3@A0@3$_qkM7M|{BP_Mr58RB#@L zbSRFe05x*rY~!qc@X*U8AH-uHJ4;>k?h$8)sVlS^EMBO1b8hjOR{dD70nw@M?6p0> z;R1V!v0{?kMG4v77;1rMSU+-j%mkXl6?#ED&=Y%QFV9N89(n`4SB?uD4_>_<)#^%b zfj{z!{3mgUwSln-HZlVfqr@Y2@)h}PBvFD7hQ+{_PSRfHW31EZVFI+fJM^_CaaVXZ zd&$uZ*C(o=(X-qeAPFalGaAw*U(D03mxDYfZCO$4D!XWy7tTlE`&sEqb;i^Ej?#+0IX)58WR^VNKhWV+{;-)dt?$iG~;trcU!uE z%ut+_VS=B@*s#v=bi`xU4(al0=??%b`Z~=Tx?f@GMY=+VGbxX4%;R}@krhsKrK;6c z+GQ`I50vXw7pTL~X?O3jJg(=01hn)_MjV1KNQ?|bl?aU_4t4{c?$va7HqVoO%J}=$ zIHcWERoG?1(*t$SJ9|;I85|LSS6oh4*v>vZl*t;Km6KWcD5Y;UPts%43|MnqVw z03Vi+*9(<+(H(tx5zPYmJs?xA;uAQ^54Sk$LrZ6o%Q!^6@g$k&b48(O`;gJLj9o9N z@*t*GrJw7ASo#|eJr>;t6mayzd)uNmc(BF1kKx8fV(W~BBzUn!TwRO+ZM7`l-s*77 zbeCsi$vSCC9v?ANBLRG%sic;;DJ*d>aZjOiu2UHweNS7^{|s6B z8wdZKETMm!EN!d{AYOgK4czlb zX-zKoI$nj*vYESRV%TI&=kw#_5-Plim3j61yfx>QE-(C0v1LYUcnTa)#$&8;rahBz z>2m-wq3I&GiB61%*-ZW{imMm)I_23iGN(99PmdgV!S{nPPCgX@TE(xc(LIO*+&vc} zzAp%ul%DUGlBau!bdX631!+!>&mBo#%lVbl4=oQ4adE3%?*y#M1SOVo(dnxz)e;_@ z#TSQ*xMVMbt(1CdsRUG#r&y@TvNCW%ytD}SkmpKILi6PU7VO*3BlzF;8?j*)P5W3OX=7ENFWOJ;F!V;zWYDzCG$^$4ii-wp;5aM>{*O7_Z?MY5~ zuL+&IdTsH7G}U!Q>-r3qhA@ibdGS^Gb}YiNb;9xpXf!_~)w(?=FPa;w!(y_R(*Tz| zTt6>_M6q#jd-PP2b((P2MZ*eo#?ZUzBJ^CZ$LK#NOG1vV#i2<+66?q51$ZTis|jZv zr5FEC$r8gc7r^#>;cBSN>BhgXOJKk&*kc#h9yRfmy&j?XbQE)0+pD23$78A8>6*op zAwg=t-@rEjQrBMSzSOC1euApi_hrFF_#s)1T6=c*GXX_aFs2#CIC7*er$>oj1MpeX zsn!}!$sD=7DNp^sYR7 zfwmDqR`m(DPbjJ-x2w9X9-cc1iX|ITi(@IsKI~-Y2u16=RoxmVmY0SXxq_=~5U%Au z1}xk~<&e7%=k>0IO%%4HmtT!ZnvT(_ubB4PQD@81U|jT=xGZalNF&JI$Q8$$*8Bn> z6pdZ+&G3t?h$)3*^|3p1z^`S#EFkG#1k-(-QUX*E%}rorxCqoes8*C1f$U~# z`IT+1Sb@n8&Zx#vf*+K15RLw1mEp;G*2k+!u3l3HQU_Cy>x~I(-qnwU;woQBTB~7 zKYMynC7s}cm+LiBJXt=!jN937GD(N|8sOjsD_+k))g4)TF$i zRcn6o{E^RdYgMQ#Y)AvaX~l&Nhi)Lp(>)ri4V0kNkE_QM@-C1vJOS)bk|RBvFybwK zLf)RwAtpR|WV?BN&1TKD2YEcF|3G%`zj%3*yLtMX)I5^7`JgRdIE=Nu{HeVo+=n+i z=<}V=yy`UXzsj!uzSoCd50~#d|ENs&KlMsqTjl@cDu1b4m&Wg04zy>guzatT(a2jL zHQVz}RK7bnrr3Mzf8%Jy&$WK=chfnt)1WljtAiUCOS8Q%9zpkP7WwWoq_Z!hh%o$? zZiWAq!M}32%Jv@i>|J|=-wY8e_NwAWuQukG7kj7uc7fd%m)Prm(7SywqxYm4p6_k) zWWKlXZx`NpT!Fs(=r>Y^>?4)QU$?_gZ~w>fPju`0w>&}l1L<)De+IObX+K$y(%8c{ z`aWWEcbfFhE^%b;Efw4Mdn-k-eyWM;yiw1;5V zO%2RumnV=DiLOuK{7L3MY1B6!ko#ypvsj*we3T50F9y5slHo3N_w)PvJGTe?+5P>U z+XMdW{{HOtK85jqR&)HpYk{M)^Km-W>PywgGQY=tk)UVQ46)&`ngAu}C4tsT&=AS3 zu`|zJG@P=!rksx$EN75ibfZ22{@osh1u{p2ixOcOtDi zRH^*5R>iJBl4e4lOwW0HrB1Am(78ZES)RdJn%Y$rM;tikOdl9k2_dKG2+Bslo9oq9 zi1tpC+2vNtc#K#Y0WYcv$!7u|tf0KRbO_~q7d3+c2zSOv1iO6B@`+~e2-ME52^PfA zE3*Z4zNp@YdG6pSI1nsZQM_{q%bED9<_i27f%$89Cl>~oLxxz0#Ko2Nl*D7lERz2^ zkk;}m0<){TUeMPT`_stXT7Xa|#;b;$RJ;J0M4J4P!@S&1l*mqso*$#z^{K{m3Rh?h z-R~-er!A($GFm!k{ve(KSaL-dzr9r3&KEy!8=BzyYMAc$igc(jqfsxm?&^(cE7N_q z&|^M~etCGYF*=1P1Q6xzMIJ2}pTfMY2+fD(@QTSsrXGVL= zSsfu+b|wafi^v0L*ak~)qY~jW?m@~v=1G^(vZ7oIeKjc7IO}K0GU``(&7}(-_oLJC zqC*tEX^qOQ0dhL8kLOrgkIK#D;ODhPVrgI|tbr|7XN!7a!Hg2<=A=7L`yh{UjU|L^ z^PyYkEY<>Ed*oZu_QQW-0xt+Z^rGy@)#cyL@Vh%W?RyM;zM<5u?yq@&9s3_}^gnl| zPn`UVvwR1YFoGf&g-`@ZAP|JmFh#;NLSQINQ4~gR|KJqyQ{N#BeS57_yLJwl?TU2R z8;y#0Gd_~h1#2U-ve!@`s=Kf5vnP=f2`_@Ir z`^Jg5oX&P&l>TQwO608PFj)59%@i4$?LQbuSK(oBr_Zta!r7wHpER(%kteh5%5%VwwFg2v#K6Td27dT@-d{|~G3Xk3_eA5sGhFI|k)$4#$^4f#iH zpFsT9Gn!``)?Zlfv(++_H%Q-pXm`uVcmvZI4OYV~C-rN_gccq5XT6zbvmx?wc3Btr zn$&U1Ni4rjom^S5Y^E4#m=x*9bLjt6T^9I-VUeO3e2*D{{+u$bDNKQU^*Vo~q03Do z`%r%>blp8de*yAwv_uFD5vC=tv3g02-0(OYe-T&lAT?=of@^R?H8M4wBI7*#wswZ_ zs$Md3@Y|OKB=@1AF7-TV%0eRA5?gHLQv%WyhrZDtNY_qjyDCRKTA=wxLx-q85!xJ) z_NjEY-w+UrFM5qHw?{EgFNJVZdW>3hs=5ox(ta%`Tu$GY04jrUqR|LB#?CdS&qtiX zna)0BfH7E9U8&y9xT)aGWL`v?MMa0aD^68$D$DtRj1?tZz!t6fNH~D4^*9aY5it_S zFa-eS0%YlO6P|JHeDlo62-6ajIZml#QXnprho!pN^l~ifUk!^+yUu?4ZV(6lNr(8? z>;S7T;e~t#)p7t`?M$H z+Z}~(cjUh9=bo;A7?}fppP73hxWSmus*wi>jvfbM7)kNDp+cs7(8mu&2DwK;SZx{^%U=e6msaffBBbbFk5 z`+S^Nd;~_fF?s){3a4}l!L!a9muqC5p%iyAu`Ru(AW4K21>9?=j?X&0GuE`es6CvQ zbg6_u&7Ab%dDa!~;-eQt@4Qs>Q4dV|g|g>tj$U_hWuNUSC(*22*YxEqT}m&^`Q z;RQ$mr=Ej zT(7r$_|1*~Q)f|MBm8^!odOY~7UgZ~yUsHTh8g_y1boetYHnwvX?n z|Mq{s@_SSN$A7KAoUGYU_BZC={`>#=Z@>L7>Hqp0)5Xny{QLE{4QPKXP5l3EabII@ z|MT?Ujq-iQ?#J%&sI_e;J5xf$0{lBG9fQL=k)IZ4B)-l9c)|TG@L&5bC|p z7T5mVuW$os@~zdE5PS5Sr8}l?q#;K4(`+woA^jFkZ@W=%J@}oa(7VPD`YWqxn%p&f z_nnBhIMIjne6kaeINsR+1nsYG>|tXzTYyi#Men!Jd~X>c-oAwIoi`3ty!D9oXrB0D zQ@w?Gf5jV)d$NBC|3W~XV_&OqFnH(_;gP_wQoz3szTX61z-^J~+df5oZJ}KE5tusd zdHeq4vPvAa!#T1y4j~J7WUlhmollfI1L^kVN3D1N^1C}AJ57=u;@v4yD>h7l-pbc6kBl zrMbzZyLd;ML6OhR$D8@(XQAL<+qUF3x7$iuMX1{R25}VR4QljjAta;izz4%N( z^W!PLK8MU(Mo&Ben%BRM$TLk)6H#*vQWSn9x?-A{&eX8jUvjhTeaG#aM?0ueRMIut zR`yHtZ#6af5&)9UcD&f%Zt({4hPsUHashh=-Z&);pCV^YCt4>CM@oHk>zSG2JM@f; zhamMz{mLak9+p_Ee2IP@C)(m=(R7@G0wDxJUJibWZfG_mS~lNZ+n`(fP0kyy@1)_~Y095|gjE)1oH=`*{rYZDx6+==LCgMbPU3$Vu4C$wf1 zYv_|OZSPi$7V+sKU4sf7BMe5721V-Q#>dYDTo%kST9yK->l!~f9JtNS+4RoG^uu2Q89^{vP>8_cUMOV7zX80#Qf*3_NEsTeRe&HPzED@BHhm z+|C!pjO;4Nj-YWf8LfRdPsnTNzfD5;|MCH*-zCU*h20%H=?%~MPouP3BLBb<{^_xw z5dP=KeXk9O63|b@WOn)acXuU0|BK4@=E?YN0Zh@mp~@Cz?+prX6BRVug6p4W&#Arl zAx?ImGW4w;gT4pjsrS)agbgQq?i!)@WOz~R*TIV&cZ*-m*<c@!A$M(hZWQu_^}Z^dGq+=c(szaj3sKUe3k z!9LHOj_c3#vJBxz^DsvQ49A~@=?jiBv+!wA_L)KcU25Ji_GBvePGtN zT_dl&pY)c;{A^i2U)4WR#x9q^G zx1}cvzMH%@R0t~LKMQg*bBApcda+&L~wOR6PKD^L9TCRL? zB!%Rvuiw~^Bvob)I&C)xoP_xMPk1oRS5YBB4&tV=KL%xFsx89Z%4(g@3D z&}!s)URh4IpB-cfq|Yq%xu2!p02=WbG-hkxUh<)Jhno?5s-^LT?0^{Ol4}cAcmFvC zGRR8Dp}tO38_%A^5JDZ_ai;|i)jdOGlPc3^h(5@nUls9uvLSp-=wRmH2#pUqxjp^U zugbU_<2?4@DwgiFm@0OZgdLlJKY|m-LLXD!1*^!q zp~#A%NX$bf%0f94iR4r%|9I($)26rJ0%Q`sn)fd7{t0|jOVv}R zj}Mu@7+(q@`!-|om+hl$vhN@2U0+h!l`MO2g};7$_tzW*u3c{CkG>-wk+017vXP1g z*p`7L$d?S+#<5b=o@|0;A3P`>!|w;R&m0VW)Nt@|qtmYws`h}6*hBUqs8po;GDZ6G z{#$^lHQG)bt!nZ9TX6A9di$eX=r`E{FhW*dK?yf4T#+bc-V#~0tywoX2{zm5dTR(^ z;v4D>kqOh#gUQJ6H4vx8nwotno)VicIIv?xxH53?4k3pDVaWUOsL8pS$7X%GpNqzp zc-O3D5Yk;tq+1Ahpa&l%xfAo8Uoq16s_QI|FdEgMYw(MHrv|Wdi*CJ2*9$UvXB?hS z2PyI!k~9t+rU5JGKTX@iPO1=O9?TvVqma_7Cot7xwdCq?s(Cpr#M%riDLK9`q0U{5 z$T&5S30o-OsD!t8dffP&^KKG17X9hkU~LuQl67tswOSLi#{1#;Iy+@dd^OoPKxeM1H&u$0F}R=E%-HP3c-I0tABa;U&Hm6L;rx- zKeadAFfAqaEI5+xNp&Q97pk${e`X6}@efUWcvn-y_AvUVh)ol_gxm(pd)XP^i_%*x zy^G+y1LW*&IyDI~JwX|Qa?0e(}{?xlh zz0VczOk)kAhQ?X1XcATuuV3n&F5AM*%k~a5mr|uG)@odJy`45-anUk9{&$<@3H-;vUds2d5UkYRV}VC8QvQS5awn2 zW%|Jyl;&jS$*g@lmSpGY^My`kX)dl2poI#d2$>@f&;nH%u1%mPu%_=i{Psd5@g?Pg&YrX!#x`hL zf;SEhcR%aiL!u$vyTWp+lr)zdym#)gk7 z=b!Efe?9lpD?xUnS3&~(hn?Fp=EF|U{;hO5Rl66}Qt)f{kcaghbv>nyNdQRd(*EA8 zWEsTxzH>YK&TZ{Gx71xke*eehEj2tuVFt8}?->F#*TE{|9>9!`uc5Zw&OCbuTnB;Jv#f6Z%QlyX0<# zul(%y05Wk4r1%w^w9E$G!;#}2TmCvRwb%%OF%ra8ey?M4x@&)n4}+5lMk zL!SpC&Sd+YzsFb;QolEmHXr^CV2_QbY0mw%f_9F{$uk~BgEPK zPu|0Qdcag6w~zYoB9F_e?YFA#@4w2uU*<2Ngv+Md74(T3#QbtC>FUR?lQno(fYo={ zn)`*!w;?e{)ZiHY*G=TOia{P=>9}u+pC4Qx9#T!@!gF83*ZV}V84%jdUSWR@`~v(9 z8VCF0Fl&fB>W6E-qv9XWq6!fuy9-y{03FNu`fUOK?$`CF2m0Y%`OQSKm3``eWkk8% z1(mx?*Z1e4azEFl{DKL8E#h?%>ZaWlTo9j*lUoMd<%pV87BtU>AJl3`0R-c)bLuLu zrt?VuIi4@9gLf+5)g$ginBL=_Grh93V^jJrD5o-PY3`Ldi24{#*L{6pSTD^kq>;xE zB_k7!I1&9|bu=8BQ++?@ak6D;jXPT?z29xm!b&xOry&rFn>-?<2o%YEhZ-_HQHtC+ zCnLR}ql`pbRdu=fEPD2~EmY34@Z;{b9r&&%pG7>671%z2hMEGdk<6TLeVZrp@E!$H z*Pn05CC+zHx>NQA9g=Ih=#9o}r1&&$*YinH!amIq3<)nW2LgJQ_n}(eF)ln%2{xaRqOurw%Pmh0nK3Bf{X5eXN3IdqDvMUi@w}&gx=R4~obu~qpEi?~d3NM$E>9~E zBtkUDk4i_9!L8Ka3Vw#GS+2O4>QB*iXj~OXS}nMp0laBL$GSQ9^?4uT($AM+H`tv?0fr+)T5Oc1TVo3`e&R__h8p0FU;E2eppDBuxcXsh{c;j6>&!Ig zC2s@cb%x*Po)b%qIv3cbY_-UVyR%bZh8;C60o?ZaU1;Z~7l@`?;-|}}a&#x}EJR%B zENi;q-M`@JCPt|&2qA>VPY6!ebF`JgDM{Wy_%skSi`wrgDVgFOdD8qwTR(a|I8m zyPJFTrWWAd!Ox1x47XJ1v#-xaHdWA?_|EO(*(_u_$B)dRzmgtWEPam-{z4AO7;Bu? zOT0{+MF%An*Nj!2V1K^D6Nrnu0TEQ6yr;{BkxKrP3-k474juY%hfGz!WBlr~I`cpH z$v%t9A!{o1$+0@Qb7p#nZj1T82uEnr!NUXEhYk6&g<3y^AH>1;bus3SNbSepmyM(*xUEIy%DqTP{N?tANItLdCRYmeKdNwP=4XD{Ma|bMi_n^E%4)T zj{xt!T(3ub*N6GV*cj&9f~(d0H+4juk3@49+iwZm*GE1B9v_0&eXZL&+8502PtW4l z&c9@G|Da?2*)$rVjE;v^G23oje5{s-g|#7knc{t}@AmUQa)g0Tk}&^eF7W$?t?(Ah zwfp|?%ZAf2cad>f(c2f>j-C~^W^7|UCel8u6z-OZvoH9UM?z<}-D;eTdsU0_y&IKn z-$1terf$lpZVdcodXs#(G2>x30lzhz+TToViyD07^8V~fd@Wjcl`(m81n!k^bqmP0 zcz)A3lehu{b_wV-&!LY&d0b$Bs5@Gz@oyIae!7ZHBR^zc?a#-IR%N&p_n%9ovPRG<_LXEpeQ$w>cTuq8VoZ9(q0eav8EQ!}2PCJB z@{2UtMp{^MkXYEhA%#+otJq1N?@6HH=LutKZ73)F#rx{A6cuh|O0q2BRce4 zwSqtk_RXN3jUMLE$?I`GNuBl9?y`=>^e|W!iGUnOcvNYNG*uwEW}l)nn}o2;{bvcT*+GPAMH5upbRqY4T z?$!LAh@QL-NA?fdWM5=vcXRjO?%)@j`TyvJznRbfdl&u5TF8gJnYGLs0F5n$NymH z4?ev5$nhx=9+v;%*-t;rQRxws-);7zjE(r0b!*h&#~;5l-1F9zr2mvMSNu}j1sEW@ z9M0`;#a*|%+U*D+KLlPsgv#j%qGPC#l zjbUmH)_v&BW4~wUr%HjNM9th7;ahA&uhb6sPafE}=e3)i?#~#_+wcD?5yOE;|ETO| ze3bo|kFuY^(+z@c0PzBegwtZnOJ$`{SPvdq+Q(1Wsw#A)em zywCpn*q76Orq5@9iyNK~ZzvdzA;J(?zzG%lc;m4)c9X?A6zS{bJsI3AjQ!wU5NeSM zD;%xm4Aqdc0NY&?hI`~v)?#N;sDm?8z3=Q}HynMKv{EQnQ^VKflL1Rr?SmoH8SIie zZoYc%#UO#4=_c>WgJE8$=@R#g>%D_j5+R4i->`@=KJpGX10Ndl?h~Y|VN-v5!^myR z8)moRx#-l$ZXs_S9P|{ORRI(S3G?Iml1T zh@lgZ89YlwC)aEA@TvLe_>JljR^}bK{~|79l2J8a3(1B4)6pBe^8xjGE7ne9UHjkT zh5VHk@}oqPN>^EnQW}PDwT(?rk+ZCBcyd|&&$RmQadP&>Euew`B?XVYd{KyTzK1^9 z_1FBm&g=dJ_3;8fpfvLAiyLF0rwgN@A?|Hf9QG_axuPp^CjuCJCnT4IVKR$PDNHlN zv(#PReO@6&Xc4-;2hcsS3yDgfOa+zYBT$G_wC$4~$I*=ek|7D=d=h-3+yodN+h z^C)ooa<)tOC27c@#j|ATae2;yX?~hfP!DUNc#?v;1MsM>(p+a%lSs8bIgot8IH(56 zgu%Pozw~!iGKJUcJ%<<$hqk{lm|{)>GT7qlZM`nQ)=^XEKxZ1cgV+tenvR*gpJ>;I z!#R=KS41c`E`?8P8oMt&KnUv;UaVHqYDF0 zY9H?AZwIye|NN~K%-8(!Ux}grH~acd5&e&Teo~SFaf$@7kNPbIA{0u&B#A&641q8L zgD42&F!kG*Iu;(Xw>Wk9kb`}jLk@PqW7{Q<)Nc|$V%5oqH5xx;ZGZ0uCywm7eMdfM zqCd^S^zcCM2XXY+D!-Jkh2+tI!j3(Y3=YAV4$Xj$eNFi5^?C0;TC)j#-AAZ zezComeVdQ5qqr_akKr9OJ|9Lz@^cFKNxX|bS^3a@U(nIuAO-rDF?9hxV#MTkJ|9Es z(GKU!6-&-s%6EyI=k54=j-Tq+lD9J8c=Kyy^YCh3?nvB6h+2j)_(PfWU`t<>S%BY5 zvwX4K_ic0$H~R6-@y^#O5_sx%2nT#otvB|~{EK}1mwnczVWl*V6ggC}&ET`mevaMu zZT8DCMKpf$ZUA(nc8d8`pzH8Z%()%I^%fnz;{BQmt9(Kfd-K6b69Lj&FT3 z&*A+R>S*Ibg{i)IWvm~b!QT~o7QKGc!Ug^vG2Hro)$%K3Vxw}!rE743+c1$>O?dM! zpqxQ&>vcuW=u3hRTdCW@wmNwyWI=uk! zRe>Hn;3RCo+i;t=MeWw1lySl~1(rX*#wkCC%Ucpzajdnw6;>~EaCCrXr*jv+ zW&OlS&a!y8`shyzU)_87;=~A>uNZit==<5~CHFNoZ3^EpRlN1iNj%aJfE7QVEvqCm z4N{W$Mqmo}rW4FCj10OU^y_H`U@77P9{T3CN%4L4Lu7>lE4$L?eUbp z5@{J_&J;dxs095yIcC1dHxC?Mv*W+X2qn-M&M|M;meb~6;wn*P0ACkNmD$_bylVA} zdqvVI(bBjvUgGN|$U$5&Ua~$ZTtvAco9NsxVopifm|%mZPC;POJKGZrTWgZ4rs%K< z6H%$g3|5FYNH6F5LA`VEBo!T&veNo=&r9%rie?Krl>MS*Ac)qvz7=hLmTjx%A`iLE zLVHhE!tnk6Irm%hYz{mB0yp8+chFO~o^+A(o0V{qItMCTp{P*s3Xm*^>$|SS?v0>Z zT04C2-+1|!n33ZY$Wvb*MB%75jc*{h>baKn+!-_ghrS7`-qthv*0GuVmiEBp2T8;4 zN&x-uC4f1@_%k4Iho?5qa?fDy2iExEy~136OqsYSw10H8L(1rT+63^0W(aI9?Cok% zy3^CoJfw(%?<9e==joqHGe5Tlero(@_1u+x-71kBsdsnvim-mB=N&*=s0pND_R!k~ zdEW9>g@aI>;DO%;?G4LwtDces7i^2hm}Ka(eu=`dEeGQ&ZN?KcW@vi@XP9}UBrJ63 zKv~RO)8*2p>3zj5a>hKkPRi0CVgLEaaaBRJTZk;vQ|O`QRqmhW7r^9`&enUyGWy$` zUyvtHD>GT|U+}9>xz> z%wDMJSXaT46u+*lmoZzH(s!D-X^Mhm@RfQw>%*D!qJp-8xnrLfYgsgdFiL1+KuXju z?NziH*nL&hG9=$sv?{x~$HsPz|$Y5}HP$lVYCjY()m-sh1aa2uME zEvc)N)-_vvLjtXOPL5M=HI##EJi}aiYKi9Ev6u^txLV&6ka#ZE*%o*X7fv_k@t%qX zj|hV5PD2^6CzV}e+7qt(`Z}@iYK?No3ZTdS0YIjw#-Lq+akd+?)X~0ybheP6=co5J z<30m%to9#}ogp^+dS9bC567y+dA(J$LSA5iVmEy^jwq1G6Y#-Xyw)DfZ8b`HV`H68 zu`kG1y%x;gzTPasZrO+M%oPvQQZ>;o7%*Fd)joqnB)x_ks|7ax16qWiQP|-H`Tr0c z{!FjlsrU4(&Ksu zLqqf_c>LT~2pyi9ef%MOphk6~ZVfUNyw=%2 zvZ8lmZw4OQ&kh_P&KCZwxp|1)vcli6?rUnmm%M{z;R84Bfg^_WQ}o6&e!UdG__iU2C4caR3(Wbp=XW9H(CjtwSKF!_2d9(jZ(!xOW_sO z>#~BAPp@A7jH|QM=^{P!5a#Vhx#_*;!O12R)=qNvGRR4}R8K~ifR5#15$U~~RkZSp zTCNXnGcRg?zu6UPj)nLzuH9MZ-r5;_CtJv4h~D0_>%B>7b*)T5dcQ3`NCZ(bF^oS6 zf;L*}>9&}0sc?7o{K|DJSch{@%EeQJU>DTV_sfchH4wFhIs;fLcaI`-uQ4OnThU?) zc?Io|V+kVAK+`WnVrjGbrN5Q^4ku}umZa4K=@Ee2Ei&Ff5jWUMR$QBoLoJ9N&rBk_ zbfJFs*|dG%7e}aWR|Ep_mCO9nj%D-FM$*f-)xeA;8PH-{3~Du#f-`)A8!{MYW+M=+ zq#DX4dE7&ZfCHz#!NBKD90InT$>(~JF)tdUG++VM7pIdnG1&Avy>ugJ5HrFrWJT3* zY!1c%=IHCnCcJp-1`@E@KW>Mj>I@4{m964_16vU>V@@?GwT(NAK6lHxq%K>q<+Cb=WdEcUQfJmIhK{ZI1#1sWj=QPKe78Jd|c_jQf^OfK5 zE{PxBrBA)e#V`(0pqbBn$-g)t?d)Lk$M@wQBmUg4L3&{~+nBI~FSZXYU==c9bx%mr zqT7FZ&^~Q}KQ#U$Rb|cf8`D#kwJ{N-;|t)i9tNS%eEv>b)f)-fmD5wNd9i`%RnJb0vrO zxkqO?Kff2`#ov|mnNYp4B3-l2EC{&I396P8UHArH`>>kMjs2#q?x~q&7}pghXT6&h z=es8I9OMw*oE75Pr5Y2xQvrPcOYB z_KmpR(6cm%ngfkRBVp7k17eGVu+rK^9uKKi^Y8BYq&yUtn{26w`U&^13_ev;zyEq9 zdY_nCiM6_rU;Dxyk+A`YtB@cLe})l7e;KCF#vo7c%ZWa!FoOGr)X@~Kz|}+Lw*`|W zw8D6FZm;%mjq@3`fc8b|t8q7w_E`@0w(7Y1ydur0cwl-?=SL8E@nlov76ss3(n;Fj z7KBiFTt9Ujb5!8X2-C$|9xB!v%xlA#23&=w_XvVAN4S-i8pcG__zoyn(#0edz@l+V zeb;&7t$hK~%bBwwsLt~9gY(-U_GE%M3({lJwpHaH1sgR@Ut{S)R5C{q#9K;ie{yS5 zcXVV9fy)W5h6Qw^N|i5~@JI)_ds)G`d;bSil{*0AilNB9ATkp=%40r%2mjabt9;zQ zYWqDx_e;B>~QO)=wCQ=l+7FkFX7<>#P9x_+T1OKb5&4eh6X*;0L}@2XEy;4jvyNK;l!1 zv*Wmc7na2RYG0E* zSA~lf&89Jh^C7kVFnX`RF9+xQF9E_kI4t}|n_r0>Y___tM<^?TmppFx1^D~J9eh^D z2X%W9`6*h_MYL(}yT9>(jQrQnzXG!TVn_YP?`5BVqZjv_krF|!McG4r5--Jy7-j`< zuue6Yf6Y{HU-Z19WrMpm6^{sAV}wf6?5v_T$mJ<@Yr)C8@tEEc(F5_e0IF~24$v+{ z*qj`4B3BhhoDH>X6?;abXc0ct^)EpiE`Ij%k^RZoky54twF5+D<;QL0ZU_ye#;Hy! z`Qf(Q3#+kx-g-q)86MfdX+qAnr=>o?%MN}X$j8LPUy zurFrD{ydg|y*A>wElsICVw_564;c~yc5or9BTvD51%LO=)XcXMctw>vMnvrOHJauf zmcC?~32Zuhx}}NX3SO`9TTDZ&=v6SYqYlReidf~ASzBnla{xk@vYdxEkEb_WOgVW< z8dK{`)10A)1tzA;@4u;SG^Cti?hU0C3#=@hW;oRbM$jsb=WO8kKB|cp zs2IG(53%@G;+qsoo3h(Q+}b-jw4Qj%Zn6<(Zr#6K}XrcLn0s3x#Dng6I@79PE*BIy>|Y zgpi(?`SgNJ8R2j&_v(NKtkfeF-3{%9V&rAzL9~_7v18*2yl(KuOw7tjOo-PCM0HB$ zgF_LAZa-(zPLVBFAw{E6$u%ks5%ajM}F#g zM2Rwua|PsGZ9M}djrL5rXGaBV1;%h8hyL??C7E)%7(-;=uzeOf*8QQMkxpNXMm zweW5Mv7XN~EI=#F%l0%BG!;pop0IM?zmvWn(Odwrhc%SG<>;*VUgBO_RTA?XS#}{> zhERcK9%~2?;S(+vln*gK(-OE!tv0k2oJCZFElrSDoR?&snZb8tZxkdpb2k-Dr?!i4 zyMc9D0B(!@UcXwA8=bjJj%JtrXCmLzs?kn8^1M0496WD9G&=C+Q?z}#Nw3P?jM9VO z$o#GVfoR0GES8#H{8D3_XE~PP<9YSvyt?(WsGiM}0cuEeI-HFskE7BxSz1aQ6Mape z0uUh2xa}IaFN#Nn<}|et>OIhJ_(WmmDnjQ{E*4TXLjtE`ovr5Wwc4jTMV9JD?)VQd z@OkNFy~WS74`pIcu1{Ufh}S5KtO)q+GK&*%xN+7f)%^;ORVP5$pfCHOyp zO8;p42dMOuFAM@P0!A=!$Jz*mAP5QnzD5Yf4_{Ckeu{!W%$*Q%U?vnhXgCn^!w`xb zZIJLU5cw@s3b6wZCE?+z3O?d+33`Mn4;LDBba05_Vh2G7`jI?2ikXRnmy7rl!FB>4 zRYYj8U-9s65g+ogg!*73?C@ow@PWt(>d>?cKk~Y9`d1hpzOV3u#dhR`f9i#TPb8L# zj|%4WLsqum#eWQyt~az$r@0t}^7nKWb_zhA$L}Kb z&XmDS{r5w)US6O|fbLo$?iRr^%%M&^PeV6=bb4~kw5}|=cnV<=ic|?`*%22^413GA``5enrrIG5D+AVWW z2T{ulLMBWA!_Gjwdy`<2@q);YhKCOe5^F0Y+)og0iOj&eO)0LCjgO0#HF9L$h}7NT z4B6(X39PGk$}6;zYhOutIHAp3bHgL%;bNqp!+frupR+hYz4df5Qnh(w*(76H&7L!j z@}&WWh&!+JEY>$@s!>Zz-BVI@v}(D~hPIO>4f-~x`b*B7H*CIj74i91HUo@F+LeM} zK%(eJJY@qD>N{ez{d!#T9ODIyH!cb(1(T82&<$VJ40%mufpeN0w$r3OM)!Fn+4$mlVrZNE)dY`NucyO0$PDxT zLU@D0wf?f3{r?|9rSZ|CFM_>OiIPFtbKEM-?OALxCh#9n>4%JTU-Vk8ec1XXYluh7 zM7W6b&5%iO!i~LGoS$cqz;24>-x@&yM%J*39lP#J9n#9)4STK06~z=WD*CtgqM^;# zLf=`#XDN0K0-sv7Oo?Smj4W#XX9|d2Z}($Cz_#NIrX)NKZF9;A%dbk|wFE=uSF1R6 z!-LpPYPCU=ayAFBu{28QxxNa4`W@#J_vUZJ0}W-P49^?|64xX)Pmek%25Nlei!Bf* zN)QL?Mm`9$aOCbv!P;Emw*WXLwIz3B#y{UAxFl4anUq_m z(p1M2@_s2Q7umsCfWn{#Y++p1BwOB7hB8%=iX$NNu-^zCxI{RJrfuUmeDN#9%jM8QJBBnIxd2qjPwr*IMke+Q3Z z@IVrW{#$aSSnt>Zq>l747&>BoMEp_xfRBhD3I7HDp7xYNj#G(G*bl-!{4VK{xV`@g zr-vJff(};>_Ju(86Sl*U!`%b@i7tJ|XLxcru^{-b1o}w(ejrYm9M}q?4pF!rYVEk^ zaCd=6t~d1IeA#i{4uGJ~u#YiAA5xd(@G61mm&CEZpnnOEByeL{Cj8FFa`6TY=_~cz zYxM6DKWC%lt$lI);17VF=c{p7Ij6odmeVai)R@T}9UB%{GX|)-iUH2-cXkx>>#<=5 ze&kxeZ{JhEpby`Qtsu%4e@Ox3c6hY$-;XK$W#LQO0KR2Jvv+|rc8lG(*Magw4K_Q^ z(w!f_jI!iah5oKy#~;T4=U3ek=TP?ew-HYWJcH@%-=E%VJ$aA52R({=)Ne#bC$k|I zGBr1yHE(*_jA%OU7QEmsy=n^Y>CiuKIvSgo{p3O3)Nns*7ZqCU8a16*^a`o278&C3|(a zowOpqF028TPD}E3TzNTD)T`RlKrQL7EyFyW))=h^Z=Dl!L9lqC*BFWBLL>L~-~6iH zZerWv2~JmN4O-8M2vF|w%3r{RCg+=AIq8X;wyba3SfFJWEnXNH%*OozHfNgb&uBs@ ztnnU=rwNYLOqNeFWH?Md1K{oAP>ynq%iy*K1(951v7vmhsg>NOg`-SsS!vw>~cB&4BU8MWOr1c+rnruurM00BR z7vMXWy2102&Ab)<2a@)U{tbzXQ2K~JJv`<8XzBrYxIz`W^(2GB>ce>-H`FHoNc47; z)vwg2#?W`wGA{X}77;u$y8f>A+h``w)$dmdVRehxqs~-?<;K~54*l6yPS_=~MQsIn zFyKs22D3w@WYF{bPYLnA=8vg2Y1H&oT@xE{(ua$8QmqcFB9$lVD0+y#FzIE?{ysRO z_^y9c`W8%P9tDh_!U&i9@HC0Q-(>X{_V_?xaF#Y{+AtW1mJB+anUxkR`mx_7EgJNN zW-3~|AFtf;3Pc$Lei~#{r-_ zybnDvnC2MCenNhXEHJq3=y>l)I7aX|M!L7#Z{f=a!Dr|^Ez@5*vJ6K2+=4-aH0RR_ zO)oUZ)2czkG=HaW2K~9k;}#5BP>!DKuUF`fo@1JsX|AK?nSRq!M8`9O&@B4(87Xv} z?Hzm`;&xOQeJ@tszX87rBoq9Q9_~{&UjLp@GQ89exZXnX3paxY?}q!{cvOThf(6oS zYWr_tww}zT;{(wYf2Je+OyvTr_o>|kM?JD@jzHj|Z^OHmfmp*KqI@B4_?koV5cl83 z7p9EQC=`dP9^Tiw+&|bF-j}J&^9PYdW-Ol*4e|Rg@K5Ro`?h|K7P>#T=eyck`>uzv zjYQn%?lH2u8uzLn#&o^I-agCY19~=#>hF`$x~q4edKH`8 zH`txxlluJ#I{sy-&iQ2UyA`=zhqaWj6wFQMB=x$eWu;xijITRLj0- zF3zaOq>x;QIJK}9=re-E*`TSC3d*GCfVXqHNl%^$NXP9%CX*zi(ab zjEF{GZR@mL>!FPe`nrf$tRw)ogW#(c?iMrwuX{H{>8_kF~;++VCNGx?nK z60CAD+8RkQ!nunKtRCO+(uNCH0*EAcOdh`Mu;7$md-SD8np0I8R4O&pnTFBK8J~ks zD8xy!Wtm=LvUlb}4TkcjjOD-u-}>IN6y9g=?(i##`WN^gZ!9o}2mc z>ZR-|wd?Z`_zSnwA^F8de*DVH9}}a|6LdK{wpfEE0xTrlz5~OVzekJ3qo$T z>q(xsY(%C)hdNjSdfjo2C3wiXRXHyMoJ1a3qpP1WQ&!^=>H0{|r=iJ#qoeZvvp{{~ z-m{*x2G%Q5`(q@VK^@!twjr_|y9B$A{2 zGQp4hJtR746u)RcA3+WNM@Av}Dfax7 zf8yX#LXu)1ZG`kM9Q%Xufl)_f`peZ*;?Q2gz9cw)XrD;pFlvsvQ0&NnB(TGH!akLy zD0Uc3;gKZl>UbQiz59Xu@osx_pPX7-|B_<@W*}?_?v&wV)|-`lt zeD}pdrg!8Fn(*@W4{8nJd%K^E6X0K1Co>bjFF3mKVb|pZim9!{-z4Zd6E4iQ*Hi!? zaM8?rD;xX`;!AT7qbt~RLYf;lk2vVHYu#!ut2Poj2Cr`?c;B?gU{AN1m#Wd)0Fai` zyZ&%qu&=ErM)FzmrIZzPFS{-~=Y%l${v^t-xw_`|rXPF-kN(-Sb;L<;DVqZdGe5g) z(Fh?joy`g+wVP?6XM7!f;|kUaK_Lw3J99(6o=>6Y&LS*^h~BH9+wbeX1ZshrW?+|HFCK8=KMK`1^X_W6;rw{Tzfi!cIE{MJ=&m(IN) z6v9?Fa=!HD{jqur#7D~<^W@kpuxaWC2S0b3(8qJt`-p|gXsJdRSZ_lCdy3wtW|qsh2-yLb7ct(dNaJ$uFSj@TG(ODD$CaP`!e?$TDJ63=pK z5m)*0&YH8#Rzf&mU+r`v-|LffNyaEaVUGM{wZn)9p1xHo&(lOSgI5r@<=kv}by+XZ zYkb*;TwTwKxIz0pR<}jUF+@i34C^l%^PYvvcxeFC7R=O^Bko)M>#EEb`}dMl+!sLp zlROo0{vG+-*X%uSvzT}~xl-)aV_dO5YPfTNXOSSb6u3xgl*s_JW>n!xk7ubecy5Ft zyJIhLVMPy5182yL@l=50i%+kyT!vh?&-1BwE50$FR{tDYK+bzL3r{>G(aGzcp3e7Y ztem)YicEoJ`5WBSeS}=pcWIyM%QVgl3PJddBTjd8!Ce86@VBmN^ZBNu3h5-GJ=6}h zYB@ahn1}xpwMJ!yk1I!C-Q=&O{930wGt^0~*3ifpBThhD)Coljrq7%cIGa}4a}fh9Z0!8N zmd=bbq0VZ3L7NLnR**CrS6V_~v%D&!78!01K$sB}oV;9Gqj){t24=3kEwUv&p)W!; z%PJd_cR|4cuEE#Ws?$_e1Vuhxh{ZjX36h!sZPa_IGv+R$S?SPLh;5O@N}ie z(7TvvGt7_kV@mp>xDY&fpE&-BGzDtAKs(5xEP*B6qF9hE017#JBs{u8jWdZ&(S;0Yv4rLh@1}ibz{7y1p{kd-f_cc99jF7H?;) z^efa!@MXb`ICfGUbMhO>6IAmo$?*` z{I>Z|VQPv3QHa8E0);>dgg}DA(ftri5->y%Bu;`5hLOKRM+k9vE71?rHAEgMcvNt3 zV|+m{5&Y4F`l20;{e}L%WCKMG%o85y>2QhefQ7`53fu@f#3c{P4*0-J(Wkls`4kcF z0EdMCLjL5MjpL&cf*;HpFmyzmQ}C$5*n5PL!)Lq?28KR=!bj@fj-bA@gsThP~L!#IQmi0f&4{M{}LT(hf85)|1R0Mx+meuA#xQi$=0yZ`zdb^|F>>h zK;8KJ*J``N*(o22#(^u?A-vnE4gZ5YvZ4sJS%+es-(hOEB(M1aH-N8rBa2J^tCDlH z?C1wo4zfn>K7XmWxcq#qq!GpZq;!8OE^Zt>-XHGL`;Ph!8)x-xKK<&yImENvUqXD*ESxkLH#m?OD>jk^dLeHFWA(AXDdc0ng z@E~|Zoc-r{B(RqRb0-MjyE%ElgTUmngDM7!P{*x6wFGTTqjYps8|i85;ww(nQooOM zK#8(Z%C&6r)(c6pUUGX{>tc!eBpM{C9_>&L zSWtp1j?iAkUFQ{DX9s|Ul#ygMh;V02^E6r*a%;CwRg@zl#9pLM9-v~n`N3s6VIj2= zqm1_nXc6h^i?^x);&JY*h0Y{ZJqv9#67Gqnz=qhrZNhU)2~u)MC{I_ndm{pv-fdm7 z3a>iZHtat|DFL*cuucNXp^9{sE}LE65xcg7O+6T$v0)Q*db~EHon9J68Lkt-fjP~! z*Ul}A`$d_6Vc%-WEy!N%xe8&4y&Dy#ccVRpV+)UqJ$a9Z+Cv;>aoN72X1R4WM>5(b z3Up-LM1ekwiR|vf%q5Hy+mmW*CWf2hsfn{mgc-TXIlyzKPLP+8VyA6nJ48cRxq&9^ zMx+BU)Vx(gO7D*L%;#KW&o_eaFK>S|&cR(Jxi}CO~a$QP=2GVL(coW(2CykL*G z89?w-*gm^m-h?Wp#p?m3eV1^K`mJE%&`0|dojChdj8p%;aj z;@HYE+oAhyshbDq!V;l4#U?u5t_Eb_8O+D;he@ESy|k}0S3jUmEv4E==1z!NWi2yp`lSSy6V5JG!A)zel+crV7SJmv~m0BnEsqOM=tJ z*?xfX8~yg~zPdkGN5uOF_o}1PcwAndC3$2@D!WC=pJeG`;0em0DjG2aV4$wC_`Sb0 z_gf;Q>ryB>9aot}q528C39;2j5ekjTZtScRCcLtTOz(UC;M4|OJ}-c_)|^@6-VL&~ zJA6{DDRECPYT>Gzoa$iLsmx{FA!c@8iLTY`>rlQp)o%)UH&&Dr0lb~}EB26{z2Ks< zE?7L*eebvAfUri61Uk6h2xGvhXdbd_@iLkXnx(=VHa~`+X5s=PNvhR*(!^WiTd|m& z8-|Yx5fc-HrEF=@?!~2IO~_$_aeLcnV49VdPUR%`v!O&SAjxOmsde0kJ%e0kO?W%6 zyv|hsP(ZK0QMD`1$LrRaOhodl`);Y--tWhVtq?SY2ApJ%VsRG0y1@uO=8r>Y&5AcdjI_D%px(1;zjW z9LRS)^8fW9enfG^f!|O9KB_Vh7()>Z`)yeUc>tgzr4KnM#KQQa6$%}>ePnRdM(kJ& z2@W_$P&=^uy&Tzxzbqj>`rp(6lkntlC{Z7c5iB~w^<9-~Ak6?QAQAi6uKK`Y3N;|; z0HB8+`iGDWiT)L06Rjhd&S~F+=|Pj7T0sm~=pXL+k6$Yb|B-8GT0at4bM%7=n=wBS z+rIdpz7eLW;C*x?k8hD3t?>?Pt_%wVJJ4DlR3BQ*4!XuEgqL^F)Wad@{YB04pNf@j z@&EGnCd-bZYqZ#$r#N%sUePx-1JU;&TFq!hBM?G}Ze)kw!XuA7b%ba4eH=IJw=gIx z>r`cBR&&lhH)2=T-iYQ$NZ+@m*Uxf(Gv@n+ek}B%_@G-49sK8R$L$aWI#^1a_ zf93rF{^$+*EAJ2RM{m$yd4GUEdV~JT`vZI>mH8{2GT7vun%Q@xhhO;uPMl9(1hAO- zE}k?+(-$=+{Mz1H{BkO|rM)QD)qeXjdokTcxq*0XeUp&RN)`#=@Nx#_ zRgk)i*|bn%8{(BqMmTv@eT)xG$%)h2SlVu`A!3KQ@hm2=jjLz1Pnzx`05)wh!&8(4 zg4l>VsR@0LI(k*ocjvKB0S$~j`i<(S2+N_h zx7pb6k#y=z-(p&Y(0x(Wlz~Hw2&Qm7&aaK)-N+r1#ND+TJms#_{q=ZryyGwF zK!mnhqx7|@h3CfD&wjLfNjROR#$%rKQxMHsjBrPyfK3|}e}~TRj4j)iz9(kFts4$s z3c~6^Rat@}?7YZzYXLFW%hr{`y?l-*azQ;%+d5zn`gGiVZzzPOpV(FEkIDJOS*XgE zSM%A!$W4ui;>Nk)ZJ^C3)RB`HbFFt7{igInz@y&i^@g{uRpXhr+W4Z(3-nb=$EbCY z|3-wBtPxUCAZ77(Y)$~mI)EEbUI-rdekix|B^g+=>}?hvjHkV=0wfor&ZfPyd)AM%d%%0dkW}z#1P`WDv<oIhfudV?NDv1?+S8Gqim=9CS{9YWHUiQ?9y zm79q!Tmc6vFezRgcbD02yD(C{H))LrYJN||_$ZdnNLaJ#8k~5cMuPkw*h@jGVU-hB-Nwc?yqwKN2 z9d5362i84aunCmb9^^8B8q`{ki?njltfqRI1~$#T#(NbnnuZ@)>;-xZ3WDBTZo!l; zKrDb!s5A1C2np?pbLy!05jHXwE%c+>x>8 zfEBYLs;YUSMIrTlVq-LkL6jg%ce{9$VoaS>I+;YvNNVtCNN$MV$vyJkpO|wls0=W) z6DZ>;3e_E9+51P9bQ6;>hXkIpvD=LxCPSosO%>*EP{g?Z#m(>eB~O2@Y5q#{?wD0^ z|I1}P6mVYu;14F<9cI0Lr9FS><{dEfpL>1L)B7$*@PGD7zoaSu;3~gKR(^MYCOHy@ z^k?RUOnxHL5C01E6Nwy?FKK#UN0R)EsuVvF-=8(c=?{}%_Nk9jALhT0Vm$#L)!!ID zfGmm}lQ}!oOg~aN8FjRw=05_pH2hPJ97vS>GFD6-8i4sn>pqE(KaVnUb~KOfKz0Y; zRDST>q}eg(gW*R>Hc1ctKp6XEC9zME^`p;=9JDrn%Je%QEn?4KIz-vuv;2NUcG%mu zos_({0P4o{Uon|{w?_~CqLGrWtnlI9?bsdl7{4Kd`Kpa_KKjGTiN8_dVK9A)Vu)FL_P<%eGpF0n_#H zp#J{-{gvAT{^$?{ zsqm(_Q%LDYjF$n-^Rl&Yw@HuZWT+^`rP}qvcJDYkDY7+}&s%yW6E+>hPzpilTu39O zIaBZ+T4pY*Gax)%;yN($a<}VS?iz2eInfRMHlW+XWKP2L&K{`+;dcnVEO_O3>cBgi zUKj3NB7CI+;8JzNAzki`EP!a-Nly!&r>)Ol{_7bE7V#RfNjy&rP3|t}4HmU|Px=c- zaV{ap(-WvW^=1)nt_#ytHt_TAkDR04Y{A*?j9&&s@)o=m)06 zaAAm+QcPeK8MC>uz~0)!9%z4X&QZTG3n;g_u#F(#}LTuP`tu2oJzyo@=~HP;dq8#=|;(dcdzlks4qs;&AeTk!f(6)$0uuKol?W0_>(EacT)Dw^{{cMNp%7;+Q@DX%aGgHi|W;TDo7-xm`CxWVDG(B-~z zramDp6T1ccdZEBv_N(M|FXphUGvPxWqqlB1^!gl+;XSUMAVpZ)0O;-^`BYlnW^c5V z*IlWh=tbPQLa*f~a=8-A7< zA3yu7Jp1@01cE=K4*T|RCn5fL*Iz~%-`ySc zk=aE*?Mg?vjy{q{hp+zdeiYc@#$)Wzv->lrmmN;;4*qj2g0r-!T8h{9yL!|olVfpw zuCwzmV-da`9<9zl8*Fw7vyZ}Ed`=Wjshd__oo56XQzOldV zLfZfH@J|yGH~*T4Oa}x{fDWxP|BD{>{rYnQkzOB;?wc`)W2N5^yaBs&`^A0y1@GaP z?mJA@2dUMQ)lYg482gt~RA=xxc94StYNMZIjZRWw zjjEg`+G)VCK?i(}ust1QU?n68EjYuhD~!9DWZbFrGOqG`Uw}nMuOS zK1rw%H8y}LRnod8KM#x)xguZxcDeOh1BUL-1<(+$Pyz zaVCK=dg&r%$8Gzn+IJbm^ID_`Pg&a@z@G5N0=QlnGAAkJVvCelCXGa51(LE9!%(_c zUoxq7N@5Y3^Hre-+cLGVx*GF+Ba(!``xIznNjMuMjgNy5-+O`6FX%jY9!c8HX~z7q z2w{YZX##$Bln_-|O{5+}n~!BT>QZsU%81iJ4lDujH$1#N6TJHh-(q zx#MX9bmHF7k|jk&v}I54!mu1gn*eo4BkP%75qqRxZpPZfnTS|)J>44TWu2v*$g{uf zitP8pkF)CaOB)CL4-wt{%P-rt-Er?uxPGN)9ALBLguGimJCXT^@`NI9yBiIe} zE4qM(%L@XWz}NCB-uHlJ>673NT?6~$hQ3baxq|pNUkf!uc#GNeqo&~po1uI`rYg5KpepR;dZ|v7X9^3U&AF<=J=bl z>3^%U_BP!ayMA|T!k-~lS%tSNspuJP__*OMcJzTc&vp|FHKT4#Wk%?lDX~@tp7918 z9V~m1!l=yN;J>lct0b1wt$&In2XU=0vrrx6z+eosN8MY?xV)H~6z_LTJ{d(E2s_12 znw3e?@YdQHyiZUQfl62Pn(f8MRQ2zOt8yStMB39Js5mj|e257~GW z^<`NcG{6~z#l*zAC4_g!>m`nu(=+S=uN*JqRmRhsu0#W}`;P0oAEEnvGg`FJdC21` z_wg2K@pQitOjimRKNo>LxeUFS-~))08Ec74b038YX*-6w#_yGK9K(F*&xtDQ{q4Ej zw zO&KTNl~D1qlJY(5w3JXyz-^!ggvo~0@Kq$DPV??@8xCQ}G`A52y|;H-IA_T#UQYO= z=$h=ECzkU>u~}>xa|E_?J@sC(dGlXqI{5YQ5%4Y3!2>S>3MMMv6bI)@Q37I9v*z4O1~^To57s=e2YT}JD%_Kx4O?`J6Ni#Ynr3| zG|zzU#`2bT=_%Kitev3J*iLR%Ni~9uF=T3@(kb^ zzRr@`*(OYBv&<7#;Fc4Sj_v>(i*f6hN{%2sc%?V>Y!MIQu}8i4P0G%q#bwR~2cq+B z43PRJJn!wTG8{S|U4#>p9Bk3fn}&)_EYOFrs%hpLL>FS|plo?8A`f@II8Q)=ggCOH zFF9Xw+PY|K%ieuMSgw|f_fM16w`fa?bCV0SIYfGi){au=<#kZdHM>6$fGRC$02yUL z_-A4jw=O2gvUxm`m3)szOZJS7>X zb*(`567V6TRK${uMnI~7O-`_Fyp4hq~w~;UcT}g>*JzqxoWwnIdP-<+z z-Eg~**XG`ueyJc(c{@1ye5qQ@1hc*JREvzb8`vpMa{W-=nHS%v9f$-=eCo8~?+o zO8(oZsvN3dWt=+ovD?XcPxt_8gN#a5I|}8s5(?n?q&hG6-{O*ZS_s=O!9b_*MntC4 z?BO9*_ER7}i1D;genAJmRB9StUU*iQ3S-a%pu>iG&EC-trXqbwAI`LPYr$Pc!#B>M zqJV`eVMG@fu|UV9Oepbv^qR{H)bKY*uPu<`q8-H%C!Dzz$MU*Tk?|pKr~dZ3dsWy8 zH_2bg8+^0Z+B|V3RxELt5=7QHn|L2OHs6wH=zY#4aZC*!84o-_TCQJs^fE*vw;XBwAA1>)wHDA3MR4m$iq8U=9yw#~>VM|j5 zCO4|PcUjsFe#_T~1{?XyP@jODiV5?EiO^Xm5OBQj=+WT|hIFZZ zq&b&QbN9pu0}`rO9m)O%P`PctF2NhVsw7YGI>vSJxLffte(gcDT$-2;D-x^20Lq zt%UdE0C}ypd$2>;Qv=fmC@%p6H!qfoou#}xiA~U$Hf$Kr^Zq>$7;J#* zHAtd>s%N8NG!aP87(2ML5C4xsRb-w`+5LHn%tZ;P_@0sDDs*D9aL^y1Dn%-89L=3W ze3_?Wcwv==`QkcpFbrPGY}M9li;mgzy}$SNfD)SKb~N1SAwd94JV<-ELNaE+Ge1028Ksf+i-~&Pg3oD-FUk2 zJYAS;6gw}|S~&eJvCip)krwaBwHkD~h6G3(3S8TI`^X+>e(X}GLQTL zY4n04GDmT1&d80gm{S$y^6EVqDIe^l#!Ib^NyElE;6A~v!Hwk(8;z6p`_rxP7{SJ_aYTi?mq%Q6Dv2B>GPeq94@i-H!tP!^74mt=TNWw^nY&gvGI zWTp$hgSQhk&W6I=Ct1mp%I9i0k8&N5d~-d5Cbq66&8o4Nq#8=@quyk55?{5R0Ln7Q zzNv@8JvSsQ%^h&B66?-X)jnbj2rdKSY|ynjqmMEdb5i!?co1HO-ee?y8%(qwudj=l z2Q7zop#HC;D)e7NRX;xLho}nu2375V38EpAfMF8a;nb0uB2aqAS2zOWB#Mv-hQKHZ zQ8a?mIQ88Ig9G+tN4X`=j$%FWr7{5@aEPLh+z^Bw%EB1>rF-@Jb57KOy1q2E9$GTg zr*`vcpUufb`G&|2_D`BP>Mk*M^cWoDN%?-|AE7Ghr@T1wTUmZEaqheBS3dyJN7QCt zOhFylG!i*_a*rfgaaCPWmYOWYm!}Bj}H?BJsCTl{N(lQ&k;; z4ktJ^dvbudhfZDM^7n@De*&sne}}48os*GoQPnRS|HG(C|J$f)TW8F^V&qd$@=mWF zs$XAEF~3PKgd*hS;sB@Re(KZbiyRE33x~d1-b1`e33wY_S3L>6)8m%h>nCC>lnghK zNM6s7o3G&0q0`Nw2PlFWR`YaRW}YuY6hmJpwsDbi$l~UTM2#-R;L>bDr46*^1S{c+#d;=x7tGlSqPp6 zisT)~bO1qO#Cib>P|o_7O-?h`TnX@zM#VxT@{qzeUF)it;78Q+xpq*V`bKmCi&Ut= zL3?z}(9$Ga(EuW)+a zW*}eR%l-lAXNavdca-C7t}VVE^7)QG12lee=V-&&mBFeufZ})B-KjI9m)Dp;F=xF4 zugkO2GrVQ3g2~KsK@Wb#bPbeJ)yk_MiqCP#?2)$|{$WXDIfANng-&;pTl7d~d%)jr zIpe<#Kd&W};`D6Qp-bpfbboV*70pSHe+!IvER>;!A$vp_P$}EF{!5!qA2gFbzV#=+)sc6Ny@V(AIG+hl%H7HLiij0F)gu~EkYfi*Kzm{h~( z-(cnZLsYetg*~bDlWD9~oa1YFdE2tq9Vv@HKvkSmB7O|>kL=K*sts2V--Iot!%{?n z_UMb3X6(Rq94tb;!Y5`5nl(N&P5K2;#nwte;nEm`Kh?v1M6XZ(!IUVBwuJl4ahF6M zZ6~R>=PdF?DoZTwJ#{b$H}?JNWI*uPa_zJrRkzD{Vp3d=dP*m!ShVc%a#n>vjEhGc zje2*^rb&O-Ot7g&xpcOR2h#*Rmhj1(FtXwIC zC2~oy%Ko)u6=9i~r~puvbKid4Vfbw@;rHKk} z?0Nr0tV-8%rIp+PN*5gd#c0yat~udych9u4c!M*x_>BuDD#qS|B3{tSCI-dJ5=*DS zOM*&-J&4GZfdE&gG6Yp2B#9S_p>V6-ZIXmWRHeS(NC)ZUrM(ED!yOrFb4AW8(v@y# zocvDiXvqMq`=d9shAwqtxn|C_xe7sck=P6;@%$~^y38C|wuTCG%o~h$FO}SbJ6N(B zL>z?i1g!hVH3+yU5CgyVT!%(!P}w2J@Zew;S`n*X7GG)j%L$IaYYqKnRCS2-9iu@1 zVD@c8p8Z4SzQ7*w3qSeKugYC|^jyyK{9m(uTe@%iuj!-x25bG>C;N)P{@_Hv>DtI{PmA+QAz3;o#YU&yI`^D$)4JC}Ge+qk|O(B+H=>?t%_7P#QfL%<=3e zwD6gcS9uE$QnXQ%fU1;K-E>njc#KMH~$ zf$1~Lrl4J}o&RM_-Pyj10_wB*Y2`e|(V3q|)Nk`asPoIVn!SJ9YxB34{p(c& z|H`tzuKH-P0sdN#4R^)Y+vL?0k~Xc}Z0-h%k6iaJ4A2plS9~ z_ZNt+vvpfrq!jo$sWNnAH1<-cpp$4k#?w*{@VA;_G$vK|s5wI!q$Nl*kBaoxaqT&D zWsb*A3jL#x~KjU%V@-Uq4sI>DCZoG0u- z64o2Jwi82}R-_ec^ArziBt_adV~m0r|;LMB?ESV_X?50d`?kieVw2l6?5*E#n-rM+U9MFYf{**SH;2p5zp22 zBI!?LGpc2c;enO`s8-rJ8W?J&2$I^PdqotXJ<4b3amx@|HGOMDt3(<@WKtn*4=}X) zQoYU#%xaj}RlvQSO-GDuM+QeWpRhb$TM@jWh61~5AU+>=b-Hv+P`+eh)p$4Ml4t`- z=v=#g0BtnD;%oID8#cXfo101*H}EN!I`#BKA;Eepq^hu7v+1jl?H_uKd%hsOezey% z*k+46Pk?FA)1;c9dSSXJ>Yn&j!O%Xt_zuC1zI|gr;yv?pfYyaRqu`T0=Ol#YSTw%E zLYW_cTpC-VQ!O1mdVKyH9hyIOKj{BRr}!67_UBF!{jF2P@PmDvreFx7a2zF3m_{g+ z!f1TQoj8UNhB0GvZX#NvTA00HuC~o!{&i#J-Oo1N*1xKf5 z@zEQhj=A3S<7fAc5Ok2B9AdobCm}!`4mbXY^in^Xc_6=3a6UyNEIkOYcP|KiIgB_8 zNO1CVN9Q4fd(>`@Ov--tqb5as*k16XVwJ$3`3?BEN9@DhjUH)>KXZy_=WvQC@=vEo z2r*cq#Y6KIM?D#e%DzaBQQ6yV|4#4U-reRi+ZWFQ{5uZu@GQW;;}8$e0vs8Ff7Kx# zs|NlZhj^?S_}3hwK4%|Nzw`-wc~=khcyGAbHY4ARiec<4POdLU499J^?Sb_+UVh#? zXGjnVZ91PQJ5xY7x+?{6?XUvR=EMmbZPTyrxkrr9*7jJe%bELt+%FHac1yKtI&sn? z&SbK}&wB72kW~SbHsD+sD+nVS-eX7VjONCqyi~XS%T5CLo|o92ga&Cyk6mwq7Yl|# zs9c^BhIAR4@|zD7z|2Os!>op>nR_n_0@J=O7u1Jb>Q-YYw`QT17jidmxUfc7Jm(eV z>JKfqEL>-r_XtqxD-Gv1RMyQ|muAE}F*6=0wb^&o_|(aEa|vmD*i9$ojbnCb?7W-T zyuy=LUSH`15dF1|TVH5;j~)NcT-h&n>(^A7|5kYMubk+2R`j=1-BLmj zM$qJLK|fIjN#hWTKnQ~GFMT(sn`4J1qT-`)jblesJB}QhMi}v_QfEir^vKzMTIezC zy9PA-#0>|96#XGEAdc>PlK337pBp-|t2_FKh@+h_O%MCLn_BAN{rrIe-A(6y#{J); z^By{kdyXH035*`W&3=6Lk<&aBEa@ZfyIa`e3%$Z8bUkeAv_d zoOto4QAPcUD&k)ZD69IBUi$D+ zH^)97mgqBH1BV{D%rW^d>1pVrN6uYC1(Nyfl^{x)oWCZ9)AgVlmw!+A^D}LL{hX??$2h`7pYOop2emYGN) zx)i^CR`C^T^TzwzP?8KrvD2tr$ji&O^S;J|4H(ZR>58yGS#kgBy?L}?-H+z(a!nYbSuS^*~$m-xADerCjuOr3u#ATy*1y>Tke4( z%ZO~JD$c|;zb_Ap5fQ;EfPg%n|k69)1EH=wDe%f|Agyk=NZYviht zWBMjTPd3GC2pb|GWaFbfahq;HGzqX z;<>^~CCcu=0BR7;HWntH6xg&NWc5{A{F(LPlkPcrcylcGS>oQ>%p~YR385+IsajS1 zLN|&NyE)Knd(31&N#UzSeZO;+EH+)0_z8h#TpFQ84(;#RbkBCsOxCNh2yhS(+V$EJ zo8cCBKp*}F_t5vf&A$^x{3|E=W8e3i=;2ee#IW7(K`6BQL4<}$Vvi%xLu`=3Py&Oo z?*-oKZnyYMOCOE&)X@;O|9cP& z<;R*)vq6V=O*up8JBKj|R{Y?a)7whoe#V;jjC>qs|HZJAUtQd%(Zr_YSuQ{0+ai=~8rX zZA*te+-m5c2NnPo<9X&RbJ30A(YUz2u_tyuy|iMLE|f-q=}F&0=SdmnkT3n4f|L-U z^vyn#eHp-l2oyawb|7I!^Bj^)Hq$A{Yt4Cw)wh!!K;)2_jUY5gu0Wg(Vm6N~EBYkl zo)Cu7vrOPh&-H26(+4Pnf47Ep_yXY9&frCla&NWel2vb`k#s&V`lxED3l+`hTO|K{ z@BHyxVuqQow!8q0icnNLpZI2QG`HiC^q7uk5MvO-R6CBt?ZXEk`mR?j-3i zyS30@9l&-x0S`u=&ET5M?ZtR2xV?J}{}OBCLT}C`q(UaC$F{tc`7FP-UkX7ih~{Kjr#IE+IOj#D&Aq9jC;B#rKN z^H3p!V1j@#1pR)}h5F3-q=%yE!PQ?J>G}jalKjWi(HCL|^wYF~|A;*;%MN>c=*DM9 z?teE;`=NWBaAaIQgb+ujgZjBgcK`F3-u+T)_)*M&f652sr%ku`NRh?GVJnIBu*BrY zTpoFp;%GpLlY{T}h;5+5uu}OaUWt#Mkp1#|nDTRH$R{qM>7OX-Py0ZcqYnhF{%JR_ zuf)d*Q+Bn=v~#*gGdSeFjTz=6W~lyCF$4dFUg%>x%U@fwUj}=Bm2|QHPSU0NPbFRc z`jU?o|D8sX6W+61yhC|hfK`iQDqU6`@FmaIK)phGyN*7!>1+2SVI9M)#rN{g}B*2cihr<2tr%(FPpxpU2 z^l%&Wo8G$)&+l)*2%f1q=kd-alTfNOdrruT^MUokWYOA;+k45~SLK3dp=>vIVAE?( z3a@xFCuO6Mm%+2eE9_gcE98q>wmzH}zEGI}cYdQTkH7?XpzPQYXvFq3nx_60n=zIdsMiyUU_l!T=+m%KdgQVo<%YHgtYVJ_mc#YMbOcYJ>Z*P-6EKt45*M3;-|rTbBcz zZZpHIkCCOO@*sCu1&CYUu$^~sCEHJCm5dgO86gr*k3P9{15u-i8>B!XJXQE9V{Ktz z)yXlSYIpEA_gyQabPHu;X6=>S*sJy=Z)u?fxcCecT(OgDY{b$t23~dK<+o&2v_|25 zE<9@@R)tSqMufAP2lW=qH#;kwPIRwC6_?fGhA!K#9xp7GOB+CXHbssf(p#qKdVk?L z`=;EN#hOigkR^MD-VAQAXF+y6_H35EKH|$IYaRm38u)-402Brf`Sgpu8IeD4NWpsD#h&6yD z+XP+6JlXpb>ZbW_GhTdF)mLZc`sNdllovJ29H3SPhLd?|lX$~h-hv(;gTqXWvv0q1 z+VXu}mzLxi>3y;}h(0HJqfREyfpx$1X=x}=4+c)rJ)2~|l3eZbIFBBA?ZY{n2wtbI zBQ~lcMzLd+`yN;!RRAZGSbO_dLi1uJ0E=@A+*B@*29x4u+RZNQlPC=oHwgW95l41m zB|b(Z%PyQO*(?gVf`1vb{fN}|QT!u#T&i2QW3HcnIWs@#)%{n`@fE0jdF?mFFa*c; z2$n<;8Y6Lx!Z8d-2?U|={WlbWksbLEIQiYNC-?)*=wn)YM=v{cA>*G&>?ko6pYqYc zXhI&tN)+}J_5Bu+gg(;0^k-iC;O>f#jBE0tKG|W^9*xqU*`#BN>64Ge>EqQMJ*CMH zfZ2W|f*hPCG4WHJA2^TxB#g5UyY7x5@sENmL49Oj$)D)-*f~!R7)ipPNqF+OFXY31 zn-NC`FM%Fyx<||Lp98b(Nan)-Y!M0DI^aXmi(ocj#Co${ozVO)nd=?E%>Ndcac<4W z2erh{D97;;+TB6Q`_tX}tL9v_W*$GY((b6q`(x5nS)|*2os);$yW~smb~fE3hP};z z?jC`W@Fj@-dE?h@y5N1&tZSIM^O(i2@=c2n0tsyFF(~$F2X@8#xL@&p<@l$5zI|1b zD(zp%`|bZfxM0~VbRG$+^gt#xw*-l9U+?wrP`pm*(*Opoas)pPb7V~OmzKwLTfTJN zmQT;_k?f|icz{S8^~n;^m^fkY9o-;X`(UJ}_TXU;C{nq~t<^jy)uYS`{eI1~%&78W zVi=qul%Z)J4*RfMSGJU>bbAKbxMhF#w-=XQ(%lt+QUXnI7wfhV+7B}fxe!tE+awrl z+lvORV92%WLH{M%As8?5nL&DaZnX0vo#8tITR)IEpKo@NeQS-u_&wGTwqcUr@K?0|4c@|@A>oiO)h0hee zfS4o1cEhOS;#ZU{I?coYml9Hft$Cc{cGzwlt~I5myrbDw{b(H={??qj#=*8jBjdD4 z)b4jx3FUhE$Z2|k-?mM$_E*~0^J7I7=G7%^(M{A4 zxV7F*x}{w+XS85IGnF|^Z*PRT(yhU3a(q^Ti_LaLJDo#Fl`$EDi-k)27Jty0N1Od6 zWk`X}A`){S3ZTEE(!84VYYCq&GC*|nI%()?1ZPsf-1c_N!9*}-~cSNGG&q%jn7lYZJMI$YESkf*DhoMMN zeXv_3xh#X+JgxVK`|ebz79gYq+jenhccMw#IVbNuIC!Vl5Ozua!c(6K-bt89uh$I6 z3E)tWwoQ*@JWJt-#29_{<_eyTciwle$r*<+D7)qqbzsvm!w#j#*uqYu%=h$(k9ixg zn#D2uc!nHnS?F6k)PvfjPTyq|s|JpfAayL5vus~;yUxz*&C;y7Movvo3pX*%fkk9o zKlAs{Eu-GOXGLB^tX)8@_S3bH)Z{1mfz>CW7(qZG7h(dr zgf{xilwrCrF-zl_{;F-WH9|^Jv-_X$iHYs)3c(MT#C($E5T+C>anbL9Id12mkm`_+ z$?H0wo%bWZs7V{pEj$T33h$HT`HE2anSk4wg&r%?Ywe`Xvh2u7-~xG$^W{K>(%a6# zztgO=BccEPfB$d)-~aNz|M&mnzx}`e*Z=ze{I~z}uOO|zdeCp7)j!T<)y2O7SP(%Y zFioHsN@6?8qA41M31Z(0qc8+x^p3Y^;=61;2Zt$ou=U``k-Iuj4|Wv3(d5{^zk0|d z?eOKp?na~EXX_z8Ty^A8#-`{4ts(G{=b}HoMihQvn?pGYJ5pE~dSt7xk1Rp{!8py*^`3U%IDA@@Prg;oi|h zg&qO|hal9Sv-Nz$qoH4vo@`HIhb_CgCw4T=%~+vQkn8VP%f){gV2K-Z{R*&jzS&UfKO(|6&RZ{$Oer`$jh(z~Y*cs=hWZ=OkfeR`QY$)k8031x? z8rCkSWT^u#ciXMTM)=)>W4SEkg}N!Zk?_;v8QxQkpARv726!KsnTdqwdj1a_h@3$UF#KD>FB^o`L3zHT z0WngSgyP89&ct+FS^8$z0>~O!F02X3JP3R$vB)etsLuv!O#tvF-^Q}6GMpzLw0|G6 zg=(ZUb$GG4Jf`6uYCV0sH>i3WJJi7lU98T5nUVyTxH#ei&y}@Cl0!>)Z6BtMntGOE zn`db%Qr}eVrQK0x0}+i)wKhdaq{>1VYGRXU;aXe>6=!c?$$3R$ASjM}zCB?88tAKK99O`vHpBgep7dlt z&57qP7rgQ_7m)~HWn$26rs*{4%jtEcQl@7EV|cXQJ6OYtYNh$C=8$qTBh`G!XZ5Wq z8dV13C3)xUTmz>fcds7VQFs*%6q+GdoT)heVLo5)GkJb-XP3yUIHDG%D%*VJv=2*oEW=uhVe~PqZf9$z05{Nh==`maFeN^L zMO!cp(GazRDiWuVJzzzTIVTt;P#nRiqthFO;qRui;N$=%$)^K)hd}6u()ZwjCyvb2 zA+7o0gfFrK&#=j{&CS zhjm8e!^{XDSKm*4@YR1f7m<(t=a+89gKCI8dMNjmCm&hzgFT-*dP;T_w!egs9}!RV zsFPyJ0SFW9z-#EAqb=k>Thu?%ma7i2=3GzkzEuL>ulN6#XtA z_A}M|mwZ@bSguF&?#f=g9W4D(_9>H^pX-v$QG>*RqX79$VG=u-?!OY<|Jf}9e|C?5 zc8kED-Q%C#BJjO?{B_q8;Yqp7R0#ANTE7^lBqz$bQw3Dkm`5<;QM^tzN_65zpyc@s(5wT33CZ^rZ58nV)k!z&>(I2w(ziv4T{u>NW3=SlMTo3_HT=gWM*1DlTd?oajn$wtdOI+Kjr*T z(X_a;cQq52`2U%ElVwNIEo*SjQ^c^!RGFf0!mI}Loj{^T%;*IIBm|;+ma@uMsGQgA zzyEs`;C?*9J=`Na?#;g}-Q4}0gCx2m?Y;K5_gX6e4o}C2n{jbLo-AFdXNe$w%~L7% zls|I^5_b{4#wnpr)zT|0@ZDD4C8maUpcL;!j6i!if^QXh>c=`0qJ*p3MS_nx-z>a$t-ikr)$0r`D4D_vh{5<;%a+h#nvRz zM?(if@;b00n}Se?gEPd{;nCD?4L{;xl&xtx%Haz|BiUdWkK6IFX!xlbQ^ORQD~VoX zuX_<{sP>BxpX;ZDYC7g6*IaCmbNDP;Abw50)hnka>Wt%w(TvpZB^ydr1&)`~VR4eS zF%KU9je6sk-XyR!C*L@Api2aQ4m^32@t!D)E1}>rolfT7$fRG> zif{QI$ILf8&$h!mw4!T`HdMeU*q6r&a4uRV|6uaylyVGuTWH1nQ{j@CICzwYYh3n3pcqIk_@~$F zp1*I?`}S!0(d*1M0ND49G%T! zAb6C5GH^Zt78sProCXbvV@9IBAz?70xwRP4^2`;f4U`E-EtzZAT}C5T+3+l_`&y!w z!;;X80ONeKyCO}jS3@VWs2|a6MqaZ*COmk9uQ=<0k}_G`W2|HU@(M#O~4Hg;_=32&xnmHpY9e(N%&a^ ziTu$VZ%SR+7~M!K z>lQrO;AD(!WR^Hu0qtMnL}Y7wlE34yWKgeN=5nsYhe%9!u5`H5k8on~jV6)nY7@WE z<_Cyk?^u=0j2igL68QH?;5N&W?XlQq!RJOR*Q?ZGxZN}JH)SA|pIj#to!oVG!KqAZ z{p!g4x-%&m;<}qoCEb0&iHhsmrmK9|3H>ds_(|C4FR@Eoiea=l4%))aVlIL3u`gllX0bE`|6;1~Ad7j_q;j9ecdGut3Rxa<;Bhl_x zpjRa4TH8^EYa)5gui=v}E~n+dA6ZF|1{h-wXXtF2(@kj1{ASMR)p1wwr5&+Dq%223 zc!Jl#70-GYHbHlr1FE|PFUhHqoLk?lIIb-ta+*{7f)7k^g(N5m`{VI^uwmqMieSLi z5gD6g+zv6VcqMWDvJja=)NGc)SA!CvcxB9U%-Hw9t`|M0FzetfsS$&hMeB4MAgFhH zY|L{QC$CauZKSg$PCwqXmeB4?Z>Ead6bF=Y2UG*a`$Zg&i(&;Y4MvdYp5ef{rz*?w zDtPhFj8pk5kd$Kq=@y?h>zuY2I*mO z-Gr_bn6Iv4bFlPxVBT|LQ5rC|&6J$eiBo#^Xt)&JIwnskP2-|z3OEeqyJ~(o`eu0| z1S2q-+T-Q7F+H{ZLRTi#;0%M?&&HpmeHXuEI(#a;1DLtNG7EvcPVs%+@D={2mXzF0{4 zK$fN%l2^gA3_hn8b?fRD=J_a;9Y9`8;aI2(J|E6tUkO*kXDaycNE-E0pdBS~c7<0^n)2!Zg)SJPL z>@6ekTZ+$oqBa@8^=I8PR2T8oWPCMmuegCX)r)$JlQ=rdsOue0xRa-9;@Htc-tY@2 z=@E&-HDrPz1DtS`Z7IDpC5|sMve$^VFOfGC%f)9UAqnmefCi7kQTbFT;!f+`j&Z7yo2GUk}P5AcT-G zLckzIQ78$mI1$6C^+yy%D2l)c7(&qRGQYxY+-%d--e={AY(sKcvY|C-69nJdpYTqn zf>*c&eV@UwlZoSS*KpY9+cuN2Y{Q`|h{K7ExUk~Q4BVK<+g{^M)qz-#1O8}GF5CLA zIJoT#jdl=-??5x#PBq(go*;PRL8H61{3qiTWPcRhIn`0Jfz0()>vQmMV?reGW<3^e ztD1kw{3MTKwuVfgfGxhcLwtbSc7@V1{j0JplQT;E-hw z4jF_i*mzC72ZL#_#37M1`c=DTNc52J+?#eBLdecU1s>5tT$Ukoil)hd2dW=VL1tWI zd#aPMx_jqWwrr`9D<+&@n#=ikswTU04@+h%$D*{$)c>qY!GNFg^e3$e14oTogfuc3 zp8=fk6^xu|XsY$HF6r|pKtO&Pg{QTRIyZ9Tl>^r7Z-2`E&WeNAgui_AmL2uSCjUj3 zG#uc($Lh4xhXOliLpD=)BBbnjf2XKtyw1m>la=Yb+&c$k zHG_MqwIG#(qFNw&jW3Z0n0oN0u4g=Q3rf)|&pN+`Nma!BdTY=3$ZUgNpFJrAUC0k_ z`Oi0iK9OKQj}`y^2j}-cZSnI%2l(H9G0|@V_CLLok4XI|&-yApqX{9|h8})vg0sielZhP>n#~9S-Y<^zj=SIcdW2z=R ze1NmHotJyI=|!`RQHLJ;sr~Gk0Y5smpFJ}`6YiU^#qasHA2(_(H)77nY5uJR7>H7x zV&K`Syay6}zOQe9>TJXcAau`i#iQaue)^-EosHqSJhG%R1~MHDc8(hDd?e!=W)}Ch zucixLI`0_Qq|Y-Ez&|q-vCl*Z)|ldu0KCr%ogF(h8r}zuyps>qb~XATvTQ3_8cOZ4 z5X@%aPqR(jd<|#WeuNe4CCNsFK=GaWA8ikX;Sa(Vw70pVy?MT# z50Y%lnqaoK#nUYuBIp+UR=B%qw`benVTSGa6WU~YHk(>xQ%Hc2Uo(88`ELDoa2H&o z)^q(!U@2`&k)ib^Y+Z#)LD}p34fz<`q-va1DlCrQvcdnUum%114O@RWwVw}L-;oLU zy-I)yI_GNWDL*39CNXv+|yt<_t{ZOg>@ZNoFyDTCdZ=8kXQmBR?Gntv(FL_%(X1&=nh6Aap>p)qPJV>f6a3+g^}eb9fuMAvX^T4B6sn3T?fjU2}K~j#;t|O0PI> z4U3zUW3~+)tzmduDcFS@;h*50ZG$?{{1NqdS}BV2_s5{aZ>FHnfc-m1ZZ;oX2QhC~ z-^c^eowv$x`x=SDd;R*>tZr04hYpTa>_il9z#4e&`-DsFu3wez>S6c5L%$A}n*zzF zsJCoUPv13Da!{-Gs3)VJLZQ5T4uzvveq90E_uo5rKQzJB!K){LvS?O7TrlUrGpo3s zZc%MkQOUnF_RE-b@n@IxMI3pXr9SO`tLx1y{@`BDd|t7=(A&+$TX(& z@u4q52SWoWD>EMsR_@(`{FWlAqU48eNiV4VD(!r^)6ZExKA?pSCM^+WKvhnGH|u@y za(f0my`JUeeD4REs;4s55Y;YW2y@klj8For%)Aq?DI0duv9c82Ihg=8TliJV!}^jb zd?S!u64+eFqUU%Y*Ap(iHQMh{w|~9aZ=m67s8pI!dQJP3b2GgPM1TA9NDH9fC}plT5gU%h3V* zcrFMgu?vDIgI6YWkrcvH&nA|_I59C*kDaxmtkVItB+|SRfSxZ;kg(N=sTe1(Z&Jjx z19}=_fxl_}C?t>NM8Wo*hS;H0gr+6^nW)Mu@*)sykuE@_-HAAs+~VX`gT_6CDVF$` z8-s0^-wC_UANr_wzWzYrzBtU~=$s|&ekt@5?iP#R1I*HdEd$}r5~lo%)&f&C1dj`p zJHw+;kUve%3Co2tlJV@_Q<%V#TjCspW0%fSV)uaW)JyBVPQk;lA$QIZoqBKTp0V%C zE_@g`B#Az((!ZzB3H(^cng2$i({x_hOS)I-doI2BbUP8)>6rksK0EIBgwS{H0Z(g6 zoiO%E_H&e|X&x_HyJ3zAemJKg0<9p%!Q%E3KS&eH->B&lWN=!pNoy!(P>l-Z_y)?I zp&nV^!F->?SAVgSGkjskxnRcU_ykTxQ_PyikmaRS+cgvzB@%dQ$a-@Qv%wfopnMA=z%l1%6E*E|^9w9xq-W(_wrC z5ORn}RSiQ@6RbDHTp42o!0=%jHDSx6%(G-rAqiw9RLg{f`Z(k~`VOL2t*53!Yo~cF zH&^%XVN(v)3w+fjL<3nD(Mh7b4{$yb=lRrRm7)ia@TAvEWjC($JRxhXTAdCK71>YO zrpp*(b4xv8lpZXSB2)`M|K8a3@pgWt&b`*`>A!SJ&DbKp_N@NT@hq*x! zqoeCR0H{ zp~5B`08l7H$X?v6#r)6Lpx;M3y!!?4{42=or*`w_xa+rFe2cnP(1m=ri4kv|ig4FF zO36*VD1$cM*`~xqZnYh;Ycs8&X)WfWAIR6?+dK-9Zpde=DWk34TfbjlwBj6M8<*LZ zucCAVUNE)qJK3K0!zD6wcPXWy4acGJHkdV%|b%#(ZqFS-n3c1pK3TCY= z;oXt~-n=WeEz~}E6YtY5n@ZnK{>T2Zi6O*0>MDMZy1XBd&#wO>>bj50_<_2ZKSy1r zd;JZ0*`L)}xwY2h@@boD*2-!lrOkj=e%Ux`J*+*TBZpjXI1ji$Dy+Wlu9-=kJj%&Dlfj824 zTpA&pf@f~%5@BMG(pPVGB-hjH+4(Tyy(n?wQTz$KGCd8~oGo$~qt3#Sc=QP~hKWHM zPqr9HwZz4FnYr`OC|vT|Muf?f=a=Ly9#0Tb0Z-*-aEzazmp0Cp+XFnQb=qd87D0!i z${T|?;~FN}Pb_zRG~yt=&62mZjr*Cb@!!!^W_DS>>*Vr7Epy-{d9sprcXY9sZQ=?N^bX7T9Bh^hNJ1d zoZPvBL&2y1Ip!|!j$vts4J?*Fg?MHG#~^aS2ooEp$yq$i`6+4CW^OK+5@L1!; zs{sW>LYC;l9G(y44Zulu_L%I^TJ<{y3kkypH7e>`AdmrnOyA6nJ34U~*{)OB*g4>7 z!A>&XUb?h49LWL(w5T%BCts(c>TONSJDXsRL5o=)?~jo>UauIR^w-6YiIb*i9E6AH zk$qiiK5|%_1;&d#i5YFGQCNwz8bPqG#quOQMxFCdRbsZZ9v!Kmd=W{5oH%bDvQik% zm@$cwqRs%@>YB^TSHYC8L-Hcujrl&3BK#2TYwJ?(>q*676MC?uH@9Q2XVCHv&x@Owq7b&LyN@} z827}106xE}e(GP(tUD?c>^|~$&{0v})%Q-1h4-6pPS}}Hinh2DbVQ=~L2}sgZHJf3 zLkzoy6rp-^fgbglnyl1S07 z@ekIyvfa=l-3B$#T@@JJn~E5=i84{twpIowyGK{LdzHpJxj+0B#(qRdOSUfLdR!{n zc>T#fAwotQ#M+vqyLP~)5KL}xYlU$bxcx<q%?`HgH?KOR;SP zCQSdX0jj~~0-Mw8AIB+Y-h#Go>F+rRag6#s;Y(|+bU(;einT(Ns50lo*Fnu%Q~Add z`GhGO3Ikk8f#PkU2wn>q&z-Mu^*e>#&2p6gJmq0*10Aqtui&bbmrp|;#zz1D-Nuqp z|Lz$9-=5OXoYCLWt!x~oNiW!)f;e3yJ<7aZ)wy*JmjJDjn_k%fVvLV9&W}eNcMU`h z4w0K=@{2Lv{NzZsnHvzf1l_F#FU3oR(pya|?Ddg(rAj^CZwEM}x0rn|$68m1I68w4 zMxAemgEgFx&R*oP;5*;1GTtFiF#Sw**ppwwY-HC5l8r?E1T3&ZFN&TQ?1`+C2Rv(P z0kM-qi!l^6=ObN}<5NefPL=Dld*yoT1j67`{o(MwfE)xw?t?$ZC^#2(oUmHt+w1S8 zLU`KpVNC~FKRD))lT!V;iyl$0SV@t2<7p}0#{GUa3%~}C%nR+#36nlRUzNk=!C3JO znoT1LgcQ~cDtXxxlCN%s1dO)~@7L2~lSx4^=f$3Y;hJIP+?8yh!{=kXpz)n1;Rdtt zQ*OVe!+oiF=9uuYL>w6CRdwNFirO;ksjFBE~;p0*SP^-Zf({AgcMo3A|*9l@C(;z!%E0 zjZnSlOu;>D;$5ak?4J0<>x47J{C1gqU^-BU?kly=;5WANKWqzq4{?31Tj?0Vs9#3rF}$DB z`(V7|+SQ7)-dz900F{Q{ckTo~?>%Ws*WhZRjjBPZdnT*ltjYJw{R!dNgFTB5EtJEl zzzz@^Qztz!S#vrUF;QHYKtq=+c<4?g zF=~g2e2+bFG6#)N+pxo*d4B8qGkNAOZmL!{JWir=g-}q=%4Y*aF^6=ZdK4g#2HBE$ zxQFpZAwWY%k1>p|zN@-K+$2hX^@q0UAIk#-g^GaRkU=iqkw`nowk7F$u|x8j#^}8) zrp`ft!+13gjT;1|AgRd{u5ZgTZ;7FPRVIbzWnI_qwOlIqO2ZIju*ai_t?12>;p5f3 znkwMI{!kc8BB*gbPer9fhJG-l@zI|^TDyT|%eR({Rq%A-(Zcbw^nJKNoi7Wfc?X|1 zK#xP`$B%{ZPLvtPgGWu*hfJ^F^W`6Jn)7_GZyf%~Cc4cfP_-;qN*pQ&C62Gh-9EKI z1?9Zlqv%M^WE9_*bNx_5`;gD)=Uk#wc`MFTWY1pn^mEIZ+sEtPir5I}e%X(Qn+Tvq z5SWsa!oH_CF=*Tr=yuim|7*KFN*HI1aL?4@PUm^>eTN zBfR>->;4*HK@_oqTbx7@3PEs+{2szWhX3w#mP1! z`-3&D_37JM60|{?6{}I?Zoq)85YFQLB>8eKh-##rz70HW;3*C=1wN)>j)#M*ll!1$^(ce)g<3r1c|@(r=L#EI)1X$rl68Cogub~ma%S1Tp(jSb<0+l=~*NZuMad&o^RZPZtAY4T!-Gaj#Vt5G9>7 zKMs(0WH}N%N~h45U-8?ORbx_xpCLtYpJEi~}ul7kV z*tIf*!w80COO#Ywr))5!tbw<(cBWoAavG8=7c%9Fz~VBzl7YU2Q?12_2_Pjd@mzF! zhbB(IjL~(2`mCZ{#}6-^(J&>=vEXf8)AnK2$`k~T>*1A&;~K9;4jD#(cRJ+3n|(^Y zAEhLLP~@3b@+ILNp=~)^ zYbJ#0ScGm*SmDMFtpxjl_j7u&Jkpt?9tu0G?OfUxtXKE40|3rSKkmDD5Me5Ck3+#Z zZBQKF)Jv~O?yP6ZjR~FW#h9k&;rWI@QD~R=d4iqUFxNc+UMNT|dw=KiEt6J|+#<41 z)8W}n=M!3LR7O1lbH%f9cgf@~n%&+`e9WB*56UPo=K$}B2x`m0@qFfaremVgv z*~J)C2}^JxXEDTX?&0N1F2I>wpE)PGJP>r9m#&cnF;@uB=)v5$n@_*BqhOhewVY6V z(T(?+_ES9rvxq3@P{}F44ms5jeJe&5sG#m@WgoAXS?|T3ZxyBqZjt5_$nD*_r72Sv zi9bNI;!{cI>mw+UB2bMruU?s(ls(fUa_%1Iv+`!9NrGsp$(lAnU< z>P-(7)ou+29HI(Cn4^xbA78EqBN+7W={si8r<)wbW^~rFwenqzg)kQ@^SDy0K*I<* z_Dw8LCWUY5ha29lljj2}>f>4*gxLs&Ao3VVhvHgV?u*rLY*FIm#z zvH>8S6w3UuW6sl~iA=?0I556@C!EqgbsdEsD0iu8@vcQQeP(pipFIAncR9D_q@H2D9zO+cX)v@w3)ltZ-f4E&qkX{AWXV(@F1A$NUBkUdc z#t@0_8s^77+1jJNwhhW6A1~C{Td7*~tZ_6Z^S>Pg_}~i-u(jp&JFwC{Q~~Z4g22x0{-lV#la^`o5fpsH` z-%h~{W2hD$)Bv|>=7~hD_9|S%d?|1(oIUAuISwJ4M$~dOuIkgut{rr=0nW3a_2aH!1=&FQYx&wvtRp*BxNondz;CI2zJYIV?bPk>`9-VDb zLGV}hz@iQunELd3P9{bqhu%F;+I*^_m>Mt43rC-Q(?2dCP=?-cy-zwS6kV{5W*!T; z49rqd&FSm0us>S8Fy)VoI=>zZYvUroL53KzG$uk7GAYw ze!M)jpr!ETdDWY_L5Jy7@nuj9d~e?1@eu&#JzMZ&QjQKS7^-jeM+>UU@Yr5&a6y|c z!@lDiLWcS>9ZsPW!n&pST}!<_g2#aCn3UohcsUH>Ih;G6m9$1G zGm_w|T*h8kijW?iJ-oT9L$!-oOKYWkzQ?3$A0gg&F|I==CCNmh^6*#ajy)BKn$9Wu zlq0kksK3)n`^lWjv(P`E>>>DnEfD$t@8td_5?N2|_fQ0bFm&hlkPwA{I7&ef3PCu8 zY>QUk?F!<%X=t)jy~$r=Z0`idpLN04q`szqirh&&$*)oTefc4969`&?2nueXf?A;h zwk;+>@b=Bd@Y$_cGGc2klHoQgzcClrLlHkfCm_5X4&3n2zHWwYOmY<4WXrL5YZ&6h z2B(OfNsgo2%zd)kx?sDSc(i-uK|7a;Om`7ZaBB(T>2`h@_LrQW!$wtne37ZtX*E2h z)_q^9a&*=_*ncFF56h>d3;bEu{h6c-{8`rh^Q6nqThjeDwf_uCS=JYSB;6MHv#k5W zr0ZzY2MY<%YwM35 zm8F9D!$G#o0XFqac`bPp@ixSDg$JIIuTQFEk$OkcePdZoAGCJ${^jVu5vMlW)X)o_ zS6EoTQg506vNJH<2@Ec$*$lj`95VAK{^K?g%~)?{O_~Kj!!pgthCL@N9ytPm){B8d zZWiQns9emb@G1!4sqPI|!;DplnlWTHqafSGdO7#L#D+yp0LX*{hRS^4>l-Tr2%JeQjE024g znbzTjigy&{8}27Z!!fOi2CInz2A^FPFex&ARp&q;fia)PyEU@%G1baT)n*j0V+OS2mu-PX$eh|LD)i(ZTck)Hs z_;)+_eNsR{0>dzv{JtM5x-IdqX`ej$+@$0-M}}yt0@vD;gw~DUO#tam zN80)p(dSW+aA!kp2?gGUVK;(RyqQaEdLO%u1DWkMUdWHeLgHO6ZZ|hY_xyyVTLQq) z?eswOvp@CbSdDHj6kAD6ZEUEuB!%K#`y}0Tk-?pVwVu;9i;L~$^Tv<*%ce!SB>?1$ zng}oQFAe&BlfwJf1Ol*2e$-g>V-UA7;M+5*`P{76aO`0#UKYAPi>SaSi4AAuKPGhP zi8D8s2;TK%LAlt_hux{X*`1;qr)`DdwAX{>eFC&{jl~}u%RiptU!5WFSEu+_X9#Sk z`17j3obP*s&U0kOxQ)v=AOds-(beqxESLy>2RlD6glP>WzT=sr&?#={z-PgOvtb;g z@y(V2b=6)PS-e^baoOhyu;r)iG%t=Qh_plaYD}x-lCGs5enHf7QRE3~+iAV2!7Nv5i z?73FMvN&9TkU}6Xv)HwsnS%l~)Jy1l&D#?mBqLf-7d0g2(ZM|*MJ^|G{oaG~^hode z;qEQ%qX$BjRCCY4V@-@+4%EBaqdhrqK_t#J)-VF+^{JjQ$1_pH7;TP)DOY#uq1Kj? zhqayqc5@YL9;b2~Og#Bf-I9|Om}p;iQPy|SEkhr?Y&y^6LLVB1O*odAiV_Rk6(>kt z<^mV>(pRLG>X!$4F!D1>GKq>_Ot*e1eS349c`f|wn93Up1TVv_&)xj(b5WTO7!TbB zAokWb?Ty7ohgS$h&VofikJwcxjnB;sSQ}ULlI>-zrST$1dpTp5#{!{Lojw75)WVO> zIx_8JEypj!Y593CROVYla`cFray^}KqdDYj++hfmSs@X?Tls@N9tQ`$(og3B z3Uxppjr#t2VvSf+3=4N6k8KiUywI};z3{G!>IY7JlThW@&cFqe@+Ai&a-qXlL>9g| z*u(4yb}Cw8a|oJc;_u|kG5D&><;-We7pGM+#8nacOdtxFJ%AO~DUg5|ifnGVJ z4Kjlh(7C|RI*}Q)({rkyYUd!mWfMwN0sT+rRUwmPA7+`2`|Pj$AosBQMw|BApo!@8bJ0;obd|lD2G*JSb1RAi&grKeLvAj z3`)!4+Tlp|{%QDS|BwI6R6j|x@l|^7Uyr7^Z}4XWO!x2?saWc?|HTUb@gG$<|KmU7 zfBa|nkN^Bd!Zu~M-(JfURbKq^kN>Ai`{IB8M^XPWq}#Sn-;4j_{~gk%D*o{w#pnH1 zE4=!J{`dd+fB*Y8K<>Z6>3l%KfBICu>Th5;ysaNl5CNm)cS-bXdA$2`&np}6dpvxgNQstF|5zA#{#{BJ%XGhUe*pF+1VNs- zo%g!yuxZR)c!#hsUu{9x`0g`)n|N0{$IiWXoVA2@S%wY0sR2TZTc0vjiP#7YT=lXP zRO>lCqmQ5Yj2qT%Q9V5;g?h^T?U~ll`uu6FnD04YScK3N=(H`~ez364uFW-qa&iU5 zbs!@*y{QTjbB&_B*}QFAacur&qb7^fH#pXDO8&AT%zepa97V&!URPhaX%0AA>KQ3o|(HvR~ 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

    $LVW3aH8huHV+D3YLuj_$qxH|%>H8KC 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%0Dd)@cVq%dN0`L%VT6RH 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 z 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 z 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
    (`*5>A+H^B~> z(bf;B&3w_*)APTAy9ypS{8Rs3q>aC>MvFG*sjc6kY~Y4+(AMNoW@wABmVh-V&;r~kk3ZASTor%! z`5$d8b+s~qeh>WzcC5?cg=_)t-Md$`yWj!pE94#cqaKhvuKf#f7x=r+e^NW)n*RX} z=sTgmp#6g!pg%(22_9q23Era|wE10>1MFz?(bl3JqcMe8*C3kzYTO0>klm}vc~kQ4 z-WI`Mo3{X;K_g_H<1^s62IV%+iI_{8h}%`fu6zK6f$xK&<2oy+#Qb1yO< zetGoVxfP6!u9lEYe=+n_P^TdKi=eJS`fm9aC|Lei;J-*gE}>3APX&DxG$`0r!O;pX zQjkli1FZkuj*yEE4w zZ!iW_sb9F#cz3-s_nbNR-1GY1xhv!SrPAiJ44Y+V#N1ypJbFsse;OB}?wSyJR~(Fu zS}>TxSAHqPv+oFT<(A^*Zai?WkI$Yx`)e|{tC4eh9D62X&X1(MeP7z8e@eS_RmSHL z8QYf07?@`m7Re)B#v3^`yUS82Uhm-=$%RzQ`*fWeNgnhYaf!=JRlSN*T~(#)CeBQGs=W6R!S^y0ll*$B)Z=zp}Bh zvCNBi>v)z|V(Sx4PpMiW^<3(RUix6K;K$!e(#ISZqXFv!V?rP2|H82knm+N57b{K1 z-{FPU?cx(=ol}n;yE!br_u*6?(8t0geav<-)5WenCgF67zRZ&X2M-=B^zs31^qf~3 zcpEiU@C9nZr+->KBW5`Ku@JSAm(1TgSQ~Q!ywgjcxT2w

    o@{ZDn5U6&|RYAPXAx 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

    +3M24ZU#4*L5E@Z@4nSW@98m(8A|i?L*pN37Zi7 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

    q^~X+%wU=F&VYr(po&T;E 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�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 z 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ν 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∈>n)eLB$?*yd1_}A0)FI=p+q>N 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%0AA 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%0AHiMG3) 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�o8(`R}CM?dh+jq`B6NA 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 z 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 hWJW4F(iS5Fvn__^CXA&i}OKkuEg_Du4A%E+7 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�H9kMxYZ-?&DwMxfbsOm<}dtF5bm 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 delta 251029 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ξgBOj#__VewK^2llB0Gexb#V@gBWt-Nfkxl zHT*qV9a{3S2FJq5OHnaWu_K2V-ihb~%_kS`U(AF8-2NQoGm<1Gc0AV15&Z6L9WYst z2tXPq+J7}MP7FxSn9F6Y!p&r8msw48Lz6azEGI@?h2n~MS77M@ACyVKWez|@R=YDU zG`iZ=l304tj8B!YpfUBa7dFhoZOUXA%%MX$s^v|6trUk0!&XEj^Wn5u;xx`lSBqLg zqu%JoL)*dq7H2H0=7MD>6YDU7i|=!`s)%NY`F}SdMGa7isOyj=B{av!;ijdAp2HgW zAxG+K5(hW}Qe1P1N1~}~p$%410Yu_4VdP$Ajceba$n6pWW^YwEp|wX`@!LVxcs2S~ zE^oL;IN1+CkNVuHn6&#Sb&%aEq-v7Z#6XL3`Fw$4|~8P&K&-qIsE&a|!E!e;lxlN5pI$e;HE9^O7WQ({5dB)|N6d1fhnRA`@}A zV>s9pUNh2 zAdlCSV#r6fTt+VRfKr*kNX(cy3#VPm_JROqIRBXK;itVV51wJ(+YL?=Cy3r2@tnUC!r z&IS=Et*nv$RAG}Ay^k`|>*47jR18Qi9km%9U*Rf2!ta2%ukvWem~c(|kpfBbqknV= z;SPPkt+H9kr^LeD>|TO}|bjIrGFJuGL}I*4ahT!HL4;sOg?{d4%3QKZJ{c`*GHJ;V$KF9%L&Czz+`MYhcs* z48pit`J;?{E=ps7Bv^c)-&Cc^J!bt@CG04t9T}*v)uz$kspA&c1 zQQ<_uaX;h!x|?gaA!>a_7Ac&h$o;ItOo5OqsRM!cSr#drtGhaB_qE)T;UR<@Rv#OY zEQxf*Je+34_81=;rpBxJ<`Pb{h-v(73`c)R{>9__NopEgJ&Fu?&cX$3s`O9tNk>IL z@f{m!?B&M-BL_Lb=F_L$tAEJL1-VO&|9ERhLLBm71pSLob2rJOLy!V{sA#$gwi&;-6J_xnCc0KPWd5W|q zR#XR!bYKbYwjiUEHQx2w?2vo)Zf%EFJkwv%6v2a342#6fy#sdObbqLXTvH96KK4Rz zFzTE&maa#!ws~cS>s$h1r{vfMsJmI$Z~+MRwEy{xPZlG^Lvo-#Jh8YM<{3?03C|8#=XH@bNHOh=oa76!4V0JM6#XWEe zM6~&mv&H$=B~RkcRez7;6^Ocf^6DhJm=`F+%*gc6V$NOSi*8HVNiRLGF+&Y8SppU_ zq5EXGlF>xahz-b;F1K9=nS*Knonk>i&2oDNV8XHwE@w&h`7tGmf133t!J17_$&AN{ z;teJP+%0R|h+0d&exbhX#~E5}Oz0FGe&zSF9Nb)PT=k$1%i#b+}3ML^ks#*$@#@DE)3(j=e^iT7O)JL|wFdxZ*qC z-&r4thPqe0KcW<3sEw>O5sUilT$kl4yR7#K;i&MsPAvM)E_Y(9+w4S)IDW!gI$8C> zg4ngS8-I$z8KMUh-UOsW!fK}It6JMim0I6s-_l33kLeQ4bqBv1PA8^(#;Yji(Fy0Q znMe|2k^J!>5COwrC{t@H9H@6F3avNf?^?Rg4v!&wZhuv`ZFLR|<&qr12F?Ox zmG@YLdnm4OTaBlQj55oa-xC!nxo~&9TI>bNoPU}zH+5mU`ZT=%#sJ`^OHQ+!`33Qt zk>~txi7;c8s+(dNFJ{qLbHa4KAzQP$zLFm;F)wP<_B~c|{Ou2RnyUKB4LP|+U2ijO9~*6rIXCG=i%{=7@ST0wx+v)+l>P2@ zs(0Dbvth@M&&6Gafwo+J>jHA41yJs3m>x469$^3YdVD^%Q5eqG0s9|j+~+W}(MIyp zL24GHUDf$?TevVMGrO>ri+2iUy8}tkXn$lU?F#XFYuBusfA@8^oyJ$2KwPH{&ueeKSfQOmC%$IJWS8iJ8SnCTy3* z3MBf3#j~dHQff&C@O{CA+>ELVh-y)@oQ!r=EDDeDiZauUG$U+?Oz(A!yL=|=+8uJUWK~sKITf~Mm5tT-=#ovu>Aog8 zy_hR+6R|2JMG1=$WbVTcM}O~6U+B0eQ!5J97@;4_UEYD3J;mkl#F@}0%RIa~GMW!e zz_DFrOXhYXbw~=sewkn9uynmI@-KRm$-tZA_lzY>x{n{M{kTBgtgq>Wa(}Q{^F9!h zN9d+3gCB4V5qqT|1=`jd2M(yp6(<8;WeAkU zdp8erM#6i7LUC{u-RN19>#lAfuNq>?Q0&M3JrNL4eI%*6|KHh~&ip5=1HgwS$Q^pfc!{iX{ zu3!;meC(-)nA@%@BbOG++G*JTgPy6I#ZY?e4)*T<;sYS*DTHVDm_Sa8O^`3*WAVm>$YfW-2K z6p_T#Val7Vs_T(&q}lqA0M@Q&b$AO6+n5pNaw?%rzK? zxM^o1kl4X%rR|u?1*hGGPg+16U+Ok!-&J9P7y$il(KM&G3k4BtR3Wkbc&Do7;v9oe z2$^@|GKoakx|?R~Z0=@hUyYnj2!B!{V%4K8mpB)WI56vO+<%TL|onilf-&XBPzMoKS=M3te)d;4N59m55(!)2b28EmuL`l~i8A6Rw zHQ@|ybR3?$;gSw6AUO7bM_Z?a{?dizhM1%jxB_&2a%lSw|K=g*Iau4$>JA)Yf-?SQ zoD}rKp3f{Qd&7!Hlh|qcUQxWA0uMnDZ6bs>nMEYkeLEst7UUFv4!FO}E>S;>Aui;xEKCAbXcz^_ntKVqWbwNQ| zP@oKX=zqaLCV{KEz7{V4tU8Pb<=mG2#1G!(;$p!*1eDRD)-B}3?h!%84AEra!>8xg z(@$gf%zTRGazngrH%3exO71!W>E-)`$X6WFW?2E>99imx%zOkP-6*OKQ>%_0 zJbxsA?T!k#ygfKb*D}!L$LW%sp@)gr6Nd$P`|mc(b+sttnsZWn)A{^lTKt&kkEX)o zEkH%hMU51Vp00TeB?ngdvrGyEMOAOycCJX`#UWV=12vFKy(bSPJcqJ_L{JzAg^7;? zZ%%|m7l-%IW7~v)_SKykMBP-E)v}n6X@4OCFbVG|36vxMI}eFWxG;ZR)&pB3)#O}s z>(1X(gJLb0r@BdPFI5Boa0EKCYW_z(U+7 zD`b?kk>LI=p*;(7Sf@K2*Ug#hJF6YpF5#wtkI=whUT86CV%P@ zwf^k6-krVG3pNVo=gv8uW43ec4L@N4B>n3@KK=bUVgE&IAfx|BR{&GW{-Z0iG=l{eM(6y6_jLZXcYQ&>w%Vx?Bv=6$BkpN_f_jamhF9 zR<>TO=I}0tHQhGAug|aq{km@#7C+1w3UD1Rafp|fJc`i0F62QX-i0G+L7tZMf(fv= z>0)k!9sXabV)E;}oY?#qv_(+@k@X(=gYns5$xThd;f2GsbeQ z&!0X2)62lrVnN;%O+^$GbB$9XF=nuNWEIPH(n(lo2ryxg&naQOQ9HwqB10Q7uZT>E zLb<_fx$=xrC@ek-&^f^~Vt<>E55zigyz!n6kWd3p!!+L>oX{t!$~dw%9bY^HM9~968kmy_J2QCD+Kxr<4)pz z^)TJzVGbY%FrNISamQv+$@2>AM$uEFMF-!&2^i0 zgs(_n6o}=L^>Co0Trj?puyYKxmOjY@K}=_-Q&zzea0-+pO$vE=R(PoefaLX|SW;-VZ! zOAt&Xe$fhKr)E%RRQ1}C8wm&X&m}iCIy_d>I63vc!O$Smet&$g#A#W|KN_@Cvv7R_ z)91WMh<_S*Pcktk>+#3kBWk;WgAS|dsdxi2x)yM{D1maG*n;Ye(1XF!W8r(Zp`HLC6z1 zza^Nv2|5(?ze5h+;tS5vrCXa!Vv04HB!6kvkjWu_tv4pIScjHqv?IFT;g!wi0-ifM zSk=>wt7Yx(ZwF8B@j>_8OL=9p{%FIs*QSfv!zJTsZdTT}W6AO=_KZ=FOFbN>5|bA6 zqQz66Wn!=pGG0*r-0OMuQXZF)C(jGS0iqv-0h5XF@$Q0Z$-l}lSF>_nO0}|(xqoWe zXBJ5+6DF60{c=+@1qd2t7|*e*GZ!r`cP+bza(eKvM}yA&H}$%F%F_`s(daB<=9JU9 z^5Qy6l{@vK4Zyk#=4jD9K<;F26wVs}yX7KyQ|o`RV}?7*F?e4z&*Z0!qrS>}H`|Gr zOJ(ZOw1=`!UQCyHgd9RFbaYKfUVo$@H}B3InSQ|{r!x|}zh5veg*)qrvJ95I%iQVF z5FNf0=hh#_TtvZJTPN^R?i0D^z zcqG4#XhF5MK@emImE25RM53_COF-)XSfP)NTQ3fTZ~+if-$~U3OpX@F>ZI zm_#Bne49eP;qBt=rY``~&_B8iq*m6Lx%|TiZr`mN-6z~WbcV$#+=P|YMii@@zY#3K zA!~wSM`GH&KdL}cYjrmIkHMW?WMTz zS3|$wdvOHlm zRSGKfdhSQ#cGXQ-Eq{6QD~o0+&u4`jX!zvkp+!;j*NU>CB$GOD4usupC^HpK_0vbg z?}dYikUV^$XU=?&-wOxC*SvMR2`~D?6QH7PDg53}lS@FFJiU}s(4_7ogL+u_`8mf7 zkZ!FxuhzslN+2HJGn!v2aE>CoB*DNanr6efDX?4xCDvI2H-Ft!(?_|l4a|(P=;~&g zK~Zk8-f=G^RkET@nZtVbd#C^R+3|lB$3H$k{*V0ZVQ+{p_~OxSe(Jj~|3<;j_n)dd zdGo{FH1r5&46OUS`jM}hZm<~}&(~@PMg^D#?|mB$c3_EZxB06j$W_%$-tuG6v5s6+ zpsaDfmjS)Wdw(5Qx&4c(!?Ej1mojUre-7qIO!PgG=DsL1?lBS5N^0UzPM-MWBI}}F zW}k>#W6Z!ulXbx^ycp}+`=#tSM$VbC_PKJ1o~&y!N9p^=Wjifa%=9e$qQDl!^Y`ZA za3x@v$$61_(cu7WDKyjxRE$Jp4j=EM%{@9K-{Nx&*MG-n?Bj9r@+AA!*6R3q%3nRXuhoD-(~Qn zT|Ex*(g!_bWqn@0ULD!5fh8RAJ(F=mW=2xcM7N9|?#n1W&30N6v5`zj*vPW%YwG zIo%^Ltm7Ed@Ha^d=YHe&_IqItWx-=_O!qE`Ie+Lv+vjFTpT_)bjD#w5Ev7fQVQe-P zhNPbWhX;p%^?HLr=(MoQm+;OS6NOykw{0 z&Pqs^sBv_%M1l^pY4#7_)Y>209Y1T(!fgvwM&lY2(>uz#m@eIVzWV#-`z2nO@c*4q z{5SjFuD1;Lx@$*d6z)y8!l(WcKl42+M7ye95yx>HVaqtmj5YHk^2+J7&C#sT4}Ucw zQ#PTZ^_pC13BWKO&=5t!a@vbjIq*{-0T|S=ShPo@|mZ>hnM@h0D=qDN8gWxU2=|{aT-N*K3T*`xV)~O;!k|Ycx#=wauYYl4W zW8!V@ByOB*(|+iU^iSIY5$8ycg7vxF*!qKBunoFXDsbUGNiw}*AZMDidw-Xg`eQ$6 z;Y3mW#rr%I83^|4O))p#Is3Bhbp%G+QJ!ubiinu=V6z&pn)0Ih*tZB5Jcy!7jxZGq z<*O+(GWc^A_)X*GXR+CEf?f2Wgdw5f3+8%VuB{ob29^e$&aoH>8i0OF(0b@sfaz!{ z&5f00C5#^5%f;Wf0v_RaF8Mj}s8P(yp!SxP$w%5mzJ+v7DTAsipO{0NSLfqJfw@CU^it}*r&;|Gkm754sTbx5CF)E1E_*vA zD75c#m`y1sYJ|DDAAhW&+*n5LzO-A)L9$^VL>2ND)#T9_=?4VR>kAnpu^8nQ)ufyk zi}P8L`8|4Satq@2rQ3+zRq-?3=#;JYp%U3Z8~1dxZrKMDkwKsM!uxwY9P5S z#g7wBvJ?fD`9)G7aOg5(;k%OaHQ6^BGhTRKI1C{V*U=a9?iWTfD+~pD_P1lqlP-|u( z1;9+&h$IeQUzdv-LqGz&wO`_F+0tHv%p5Yep>afiMi=3zm@6qB2&MWx+YFTe?r1E~ z@NWq?j((?Cu=^WnB;~voFa-yWuV z10MuV+8jGqyR=w1MoPd#(M&l*`o)MrMll;Ya4nol)S=5%d2o&qH0#~hFGKF5TR^}L zN7_2X=^ik_h+Mu$i1QxPow1oo8gMcy_6}aLa)Mzx_tOiX-uLtT-$OFVG#lleL=vSP z32@Ls&wt4Pcq@bz26)02U1ZAViBF6wM|6^8ho>T(&!q62n^7 z&1QRR}cf4(Z;*X7u@S=^V*OB+Z2_#-3{C)Jxl}hV1{XD>URrDlL`rB^K z1KH(Bb4k0R<+@;#0%j%O5SNtTg2)IBrVd zYS7V`o*+>2yv_}vRamr)Z;9>kebUKJTvP z106l=iPPUBTEr0u9uV5mFF}%nN-?T zcNc#kH{8AP;-VWZ$8c$lTeyK}n%LIz59k6p%Jd1jVo_tWwcEw)YSBKtofRPKZ|VOt z6VE|?2utbU_#Yo;{l{d3IeudC<;j2i<}sYo3v`ZE)^=v~eE2eeT3{&z{5xM<<3D`| zxwCBUjUi3T(AUmVMkmhDT#G9XCtYqz5b1x)k8x5;iyJ|+Qw5O7wg{YvFWcA|Us6JI z!wqzf+K0N;#&5+{jdihtz_2g|Cq=tsZzLSQO$HRMeQ+K_B-9&*svWuo8XUxA?z?xd zKD->i|K{Z6?Yj>tGWY5&leXR=jEzH74~ap;@0;bkT3#Qz*mqCVddaorPtR2?6!m|A z(cqFNU9>XATxpi_W*VA^-%NHP!6KDx#s+8X9P?)#s<0T`+n@U%OV*Xv*2{AYAng;cY5e*tuV)84gsD3eW)4E5mM||qoE)gU! zq@?Nrf9xKO?x3gcEpIn6TkL;~M^PP0YGV4hh#iHzipDe>h3|#dtPU?8NmI`2jk)-A zjcw)dPtU^P8n&z7Tax5Eo>%8>zW%sIJ#ExC{hT0@I)=bqE#XuZjwh$YWV5bwr8r$i zoIN3!ndwNtBw2rXWDYFxlhN9BZmFoCOG9tPwC9;7b$;2UKv*Fps5^hA%N#JlatgbP z!|ByVnXy90(!74uh~K0tst7D3BO|d{sCgaQpFTZ)a+W5^q_C#Y{F~Zg{MjRix4C!pb{(NQQ1(gl z)bUPjc*aW5v_!PSh~Ix1QLH}cjAkF?(7eA3Hrbv65V?1}PIXB|JZ(RLi2ey)!W~s= z=nIO9r#*hc9gW97r|11n%1JZ4Q^w}*FBChC-rOtGQQ7`lsb*ks_WE>vo?XFxJ{Ow_ zM;Xqs=*G#P*aX2Sb(u63fG{nr*veHEA4^jF`lWx~vf7ZSNLM zR>mF3$`tGUmq()rMLB`hai=@-|4Gmkcfd*Ge0gcJ(CmL8B}dtd@}`{EE3)*WJH((#>*b9rVy#*Y98N!q`TVU|I781 zQvTk#QVM@FQiQsnjsN9f-}G~gKJexb4>mDt!MeS~+3Z|IrbC~uKpc+!N%c?bm+WS4 zZ{Ryl0>b3`blu5Ex3areU*+`iD11n?MMIFF8N_IOsp7B+t+SwzZy51pMrE)B|~jrC-_0j5l-=bnG%r;un+!7(FRN zl!jX$zEY&f`T<0OC*0pa(oZG_NZGV7uN7yNyDHX0@@_Y{?9jIG1^6ee#SKk?*4IUd> z1ZZGD4OZAHIZZ=O=v}q?hgi(C(#&UICXRo1F;FNHe|EkQF97{ZwbdM?kOo2hXfy**c@*^qx7 zcO~lQVXN$N@vIrP>;c!1OiqhL#Lc-DpLV0~MDb$KQy_SB0zd>z93v^7B8dG#F~13B}^p9bzMs%gNaxj>o;*b0m)K_dG*d?|#tfT0^ERP}`4Y z!oBxdy@Oa$OqIJiI>mY%a3n}Bg%f`pTxXVaIUMYSi*N&#bh+z*!nXOl@!LP&fl?k) zxRrOFoP^S}dz1ohcZYh^4mgFq`+|^mIc9g6prfpv7E8}i;<7mbh>K#!9{PGnK(uN! zg`5qzNi7?GC}R^c!1!LLSh?8@dSnT+j;A-sC`K@PjL0U>(}F$vFWx~4Xi$GUmChlS zDY(7%Sht2I*)Nrn#oL(D33cT5__IqqGQ)O5`58*Ylk;2hqI^QMhxSd4JQ3p%vs4oY{VKNw1K- zKz5Xr4;M2iCcS%3$zy@0?_Gar?`?y3OoOyy_~*DAloE`I+K`q<&oRA0YB*N@>|PRl zPR?~6$R2|V&mCLkQeSF!WBec!RV_DZ1s#6wIRDgBBVFw_5bZ&g{f-2<0?O*#ffV>* z#BhRD>ch6G_&x`b2F5ebK~8%WG7@r=!_{fL_tVjSNDlr;@OqAcNJ)RJ!F#!XtJC8y zLD{847>nrGj!;OxySY|ZrRI@P-2ocQ*PR9_>AKU1WNR6i2jS|x{y&kZ6N3unX{vvT zf{E3J;_B>P6yfNUB$GbmO(6vm!axQ5IRC=JyoXDJZod>TcZK19;j+AO%cc8FLKTrV zNxv<=CQfRVBAytPDc*mh1gW@e$O#z*`U(??ECr-wnw*z6#nQ<7L)9W|ZD}vd6nmF) z83Io`8x!)5$3Ee>da76jnpn*60D3v&vnH0}UR0Xa1QaGP+u z+Wa*=#7gVk4m_mX;bY(@gF4AEyBXz zJ$yCzcJxPGG>w0?M_xYPL6Z3V2AFE&p*U5v`laCMP-?HSG+AlFJAS=`DU|DU(S^L*xP6j%*t z%?Sp_3TI!1yLaBB9R`9GKGo_@BXHSTFpaOmwmm0-(i+{vqsdtaw58vUoXWcPF_m-n z(A532P{-=iWZ|5}v`1GVXNQ*Vf_A*5oI{I4mAr++)4wjaqtyBi3~6&1a{Bb_?)`He zoC&%rcjkYNcyKlxYQ7L&NtEw=d-P1x9y2c;UdkkASgi75O2wH`z`PdmBJd3$pD+g# z2b|y&Q+{*@0V)i=N1CF|Fw9GXu|;_gJ23r)fE@^EsC(t@%96tguqEN*mReK<7Pj&Z za1yh9=UizW<;ES4lR%TM7IL=3+l&3_I;0do_wau{q@};d6~iMmiscVj`!u^XcqB@B zoja8{I+^m>k8QEAzkF4W)nQd0+hwQ!Z5(|no{iIHbtl#kTY~bArQ}@DM zQ2h09YC~hx7jvw#B7TV(aN*6kQka$w?zQo>oALs)9Z<3-c3DEsd>8>^rgw`W-}6w% zcQ=2xC`BreAX`fS9b06@(cwXkt!R`#ZdQqlom6JCdn=ts~EeWKJ z`?FwfZ=TnS6&6^93c8hW2hW@|}en=DmnR1uRyArD6e&n^CcoN(5OE6BF`x(&0O%agVBFhyEwn zB&LDkvQ zF6EORxy`A|#LDQrtKL-H8V;XSNEq#0oVZ7RK}NqP#h)&XuOkMS$Q18xzd8uAMu=?z-)nu%#4x?_<$RpUU!)U?;tDm$MS%WHog;v*Sw z8??g<*H!jzZN`h$fky`T8XtqFnP3H;3Qf zKJ0&=!~X{l{_Sv(bMzS2ntJo>b<~)#TQ{KpyOaM!Eco*D{~n(`92k5*#z!}0(|tlu zS6h5e&YS5L4hDu(f0;jw?9P9`JBa?2e_&ukIe_`MFW>#)?faM6f8&=|U%h$z?&b4m z?_UlNbcW7N5*5uSfcomfsss%ZYqc#N>vqA98$DF`Ba9Km2(5S$l^0SFn^7yXR8#!C)XS zhQP!G3m=lQ@pqd4?9x~gE!s8Vp{PKsOQsO_R!N%-?j^aCy;`X z;k0{p+UA9Bo)0@!M9+VnNx}|2ddm`j)(j{qzNBkTC!uS2XGR#Vd*4K0vYTF1a-qC_ z3_~tTj8=*H4Tg`W)6ogG%P2Cc&~w@1zdV8{BqXR;-ytN2Cq)ArO69dE$qXjZYp_Hp zdIzA8o@d!}lzMX=7bSz}0?KtjlI^jaZ}Y=$xcdtMT-D3(cxZp!HgG9Sujd#{F#0@v z8eoldm~b$bCwHegWK^8DV7u{0S=?3^QJ$$5A#7yBg{&igju0dX5=AW}B(2dNeeLx10AYsa;A2 z^GNCtngCN)JVAfZEUXm5o5F{vT;32FAF}%}7QRoAbxRT*)1Z_sHHL4N*US2L`I1WX zN$PX$c;GUe7lE(bAuof)jvrh!I5t##YSVN_Q;6Qy%{4MtSOZrv2tmHN!|4C-IWwJ{d729T-zTPp>FgEkm4m$@< z7~u)Pn0UqBOVg~S>S#cA(H)E(1TX~bX_S3NF7UR-)JU{0Pw8)*eRfJyd?NhF=V$)a z4~_~D01AJC^elyF1__5|uKav9nLMSFH<{oI4%TGC{j_KBfJGXz98o#JVxA@=m}qrQ z@+o2pb8&rGjZQ9yD693Ny~KOpUqW01`wr7<1%1_Z_{L(u!5}(w8&?h86 zWZldQ&>O?Y=^|aFFFbAhD&&!SXB6F=`8yamp*H_L#;nL)w$(gL67OKZKO{NB-bduJ zY%kG0nd6VKK_=d;gm&NuWh?JE!DHG^o-F;z&Ry+Y2YMMCWqLEg>Ih>`kMGUWQ)}hu z`Bi^^Pa@+L43dFITzd(jfn!4yV%{{)-J)?+%FE zp<7jf7}=5l_NhEM8<|Kjr}eDv-a)*EX#dzb^bSG{tx*Nh*}XQ}KBI(CxYM{^mH5L_ zAOhWcmLzn%X{9xta=0%!vvl9bNZ`M5QXv~!0#O^%)LCCMM2QiRd{-sns&(Tf%IL}~ z;J2sjysK(kyN2@8Q_;9u80^J6M_+%X2)f`5zarf&F%BEopdY{(P+?YTI3D7EJl_$I z2pJ~w!|3;P1S;$WHPP`MJw5|n3a9r9;<;nZ*LMvNKU8&1DP=QSEo)3mQNb7Iyu+07 z_K~{V>#Cmo`KvL7rj0TmCAL#5rU)dWl8a^GuR(k{{S+KknX5M5>f}c!e;t3ne)hlL zz8kuXjET2RbO7o*F*2Z&C&ToQBpDZ&BiZZ&Sf8GVWxaqe(SqPfM>5yR*q3xqR<)0Y zv^DMhm#C4<8k@+UVFO)uL@GVP(ad#m5Qh5_HnK%ST-*o7@B|e__FT+ij0auL`i<)o zMd<{1qfy&otC*O*aP{mhI(UC9K({1>arWSs?seY{mvQVQO3((u)?!6Kp$%lpx8gQt zQ4aT+i{W${of;@-p_oSU4aR1QCO$C=840yac-nl@st^zsS<<04EII&Tx+$rmC8_V} z4*=55jhYlef>wT?ZM=>-?#T&^bnxLx_9s6zzmfjIsN-H8V76#-#?*f!7p7GT9^F-i zp_>W(s%WpKi`9-d`&~l7m+d$?#pqBb9$uH*@Yf{s5uE-(st-?JkgoMoO%!jU20?KG zoc&I{G(PNW_B>pq;MKXm9_Z%Yk-bV@&Hj^H>GuFq`Du_wyFp!k+MvGN1L@NS_2r&H zl|SqRC2XY;PpF0F4jz9KIUbKYaTu?h(@4N0kSiR!bV=Mg$mm8_V@4k)s!UC3v}a1o zJ6A_lqz(+feuO%zmQrNlIYfVC3YBMz{k-^b%Tp-Um`>ir(mSibaw~w`UA6(9XZ~oj zoMT}-a;IUIXug$TggndoRbJ*pQmBOi$_lL5(vXoq5C>@G8uWjlsn!;Ufm%Lgn|2l% zfV2K-X&vDOqlCKCr_#LyR|EgQ!ww}wZKY4_ZO6z%8kflHX`>1l4GzcQONX(^UXx*) zHtYe>mO)3kbUg_WwEWbc1#u~`y@=*{QZCF%=El_o|; z0|%Fp1yHl9Kti}Opae!>s@d9DIc+Hpl_K|Up(KGrKJ*rZvV4Zu|GIB=Q26Qn-5$-K zvi{!%`cDILhd(cIP@+OWOOxz)c)2fO60*BVIV;cpT5pJ+Q8J)~a1$hf65ra$8s!cD9*ut&l}^ z+0f?H4j;9o-n>kWy$y#13ph~W*c5B067N~h5QxyaY!mA}cyI&j$#eiDb{GbXLM*;J z3HJ`_v7dOyBHld+xF>@Nm5fi89b{w7RdOG6WDI|U;%Tj+CM$ehwP?Z0df%#!B)cjp zJ`ND%5#Y&ZEgj6RdA*~uBaokE!N_7erdg_hYIhfYJS$hE0sf?w*S9`p>1PXPta)xZqMK`ffWt`Y&cIHg$by=!yiu6-y zf$o1U7;eA6Aukn;ZBaDWoS*~0tL^G3%1xNyfYJxb}Uh;hWX_`bwGFZLTjV?ANs<6PhM}AdTX|@(I33t7(yZ`#+dTLd&u5l z=FG$=4!%c8-0>HkBP;<%Ot4;v(lKi*IUWvKBP&5NIw^#F8t%p*3a#4dw(M56>#vdA zM)XO;fb=C6i=18wGF+6!8lzJ_Yn-ndZNHF1K30F5 zz$K3WhsA@0?5AgT1nsC%zUCzy8a}K!g*=;%RME(&13j) zwH4RR@GRG1O}s!(1=g(dT;;$!)n95yh*ey&o`E(j-f9^;x_2I<^Fq)#KC;^UZqH8b zwrejm;E<&BKWhhubnHN}uKC%QfsZ{zclgzINU3K&wfs8|K@Dd;4uS3X;dy`NZx_7a zD)c{_9XmYTFu~Oy&kp0Y#>KH7z)3~(Ak^5=G@N1zzl3Q2qC|me&Eb=qB}yxoO9~iU zZO-S_lwKi@k-SjzPKMlwPGR%F=Gd)!%LOh2MwI-mJJ*5T1aGpDS=?ouaR-NtGd|j9 zze&a`{r9Eu+8s?a@cHRndTM|3%vlTqaG`GBTr;g@f_BraBAZMMGc%d6Du7HQxNR{t z!!#_@^?bYAAta^MPbi5*R*KbHt8&VeZ#3GCu8A)8W+yg4KNV`cyIn6WcFb}MPxcc| z%tbCBa(cvtB4QN$K9J`iKAi;KH^6F6=+y~TJdYi6?Jki2l4DSK1XO>N)pl+7tlZ%c z({=l`E-k>Dkyt=UfoUm&4u;(do#l$Fy+$eVd4wvR$_gb|A+tbsWl+LIHbIt${2s{t zb0fJqw%8;npcRvBC#N!z_;jf^2>|VvQ2+wXvcq(wI2(gF!qYHb1}_J@=scU!#&)*{ zI0h0Mc(*XwSF%lNlU#po-}~XQaXXdNQ)Z(cGM3YRO(r$EW=|&?Up_-WKq?-?{U2A%$hoXh||gcG_QYKF3ss66AlkO`Z}-QKAs&_o0jM zE|;4{iJHj%GLgHJVz4pm?1(1OWwyJOp-9)DFVUPxvl_c(uwwwataO1Mx!CVwDRr1J zkQEiL21JcXqH#OZsaR$B`{fz^(D0}pozpf>>*d8fbbi*4WTZi4>#qnmyKR7=PPTU6(jt~qC=ng7}q9GqK>=0{tmB&BcU z@N;#b-)3lUWEX&JrrwV}e2z=0p#Xai#mEv#x$X(362koe;_~oGQYW&Dk;hL8ykR}|McT@wclBS`9Vcgp`Z>DaUzFTXgygDKuORfGJKh=?H@q*U%v> zWXG&pBtlaToYl4~c2YTjc3rJEWbvkqp<5tm#qtvN0tm%z-OMOr*7A~ciqIuD@LW~J ziP3sF=Pt(rdZwWl5DJPItGFDTq*RErDO}%L3k3&chB_hsjgE(3!|=795}%$ceD2B# zMvH$N`Zo1xNq1QUC44FEpmsVdS*F5&9VJwAUWM7}R%f=>(kqY)0-tL8W$^UgeuZ|= zPJGrW4y>GI=Uc)BOvck@{W8DIGvGi0O_0l;R;#T!FI;(W)0V^tVu@_)UOW_&y+1VM znxtp|P|q=B8uOXKj$!HOOB?`ZLvybHF}Z(XhJy+Ov3^FzHO!vmPoCtD^I3WG_~GYY zeEuJ0QCi0k^LQ+e2f6rgg@qo-T>!6>bAOt|mw|WHq!^pkx3E}1pcc4Rb`yBM!3x;f z7uW14L&leOU9yBAS%`53tg8pF4iP@Pe%^76Gf}O{O-&tKOi4#_pi1uf!n!d1W43>L zy#5@t{eI`ZUFt*yK?8Rox=iS2g%AugUv&ZYU^_2UK?Sd0et7oc*@tILjb8qrm;Wcu zY0^LazCS#}K;QoNv-|3D#IjetRnw;i>kuCHcwf$iwp8dn$wTA!Cyev8n7W~7M z)5eY2bpr0Js#856-L;=W5=2UAEDe)pF8gx6!_uAh4lxJthsf}Kl)ZA!Yjo#hVqMWh zW6V?QyiW0hw-<)fR*`$7?jhk3+$#N^D016lJjz@R<@7AxuOHg|egy-gAQpcof_4mJ z2;3RE=42Tmw%!?wh*7%YM#68%w_N=(`hVxh>E2VO-#;Z7U;MBU8UXmAqE{J_Kp?R{ zmLNZ``_afF-ek7m2ohZl1`s9NCrq?dk|Z-|TS3R=VP=;;}Si?!?i z&Ux{U46@^_GX>)la?lA{L3DqmmYl%sY3L^IpK$G*rzz%0Tlo?@Pm^~GxBE$g3qyvS zGoKiynS@dp94Ac1p#RHxeGV*mDih}syD;*7+_Y=X$O1@!TrrmcXtM`^d=E0L@(WvO zUZot1R+f}h2t!-202{?#qpWkm>kn^m>a0)09^@Be87+2v8Dap>?4f^7ZI9f7B@gLK z=(cFm%?PaQNs!maSJ5>_9l9ad>f!s6#ol8M*09wq$cRMAX?PzK^dprUE;h!o{+#m) zm2mx%EvveyyrO!7U?e*R|LtOqHIp3a+Ka5O<^7JiqTIkoqEe2``XY=JJ<6t9+Z0*D z6}6;S)^)>Kf=gR9;`@JNk+TaQ383Mj6z|zdjHg*|jfYJXf_;>|fa^BXoO9XnaaK?u zjY;~#*=o^4m-AZ`**EXL4&0A>*-=k{M_48yu<+06Q;IajBhtqg2EiS4!E3~6w&^W9 z*1`0I{y4D84`a^jUGxwtqHWn4^w@E zOw=HW@_lcdwfLEvCcyy+LRrllW5%|~N8oMt=Iw{<`LnOT&OZF<)%)z5H!t2k|K|0} zHy>WU$bhT;)7uxnCHm2|tPXy$m&a^3z=!qCYvL%IyCEh97qeSC<}T?b3~Qv#vhf$)LFr+#fFGm1U84erk_dJUA+Y^7mmJF2a#TWnh{(txh}7;i!0$i(MM>oq%8)aMg6M@;l}=TSjSIa!o+p;QxHpOdjhw8lN2 zFZ?NE7==~}CrP_dkH?2PPD&S_hMz*k-HHhJ=TV&CTSBNq76*@%Bb z!sCCzr=r(Vk3pGHX=Y{y&lkmY2@hKLRB`Hji<>&WV;1k>44>B@kGVCfC!9xSVg&{f zwte^R)rXhk_urhHynScf8N~PMEi)0lLmcKcKsk)6X4jnl$r&y*5w=WaXx)g}ND-`% zE+mm56EY|VA-!Zf*Tt=$wxl8V-B=#izy5#KuXJ_ea2>Ot_#{Yw9m^+xia?h8^74>a zaJm6k1?(f!o0ljhO(xQ2B31o}eO|%BnLQ$(0&b@9TK&UQ`Q=O!G~uF@3{rYikaGzI zaiCe&0lreSRVHb+yP`#qIi_-b^eE4~a6uJTmRpX9;1|UO$;j+HK7z)hrUbLw9wmPx z!~@A`rV43qmjcg~xLk#zo-TuNHkR3XW!$b@YHdg_q|T@_&K{n|q01fl=kP3UBF%JI zb)&=Cr{apyqSMsRlH{rOHN`r2dYwe4)R*6N0|o@nWOAIQnV=_ znjk`zEQxGj9lE>-D5-<|*|d@#0nJ`l*wYsJ185Blp|V_1GE7;WwZdzW?lj)efd@zl|?fL4vx*0^@SwSQZ*LUjzbGw?7&8e|1cQ4%nzK- zD}1+q$i6v%ZRi1Y31oT{EX7cUrz|4CBNpOsMN>@c+@%)Ip5$LJ4q@2*xM-_c*}vG8 zANwMmn_1&Mpqt+tI8vViWc7cFJVE-GBd5L8YvDcY2B16tp6NoPWwy9Pf;}te)p^N` zGT)I{=k~ZQZm?)3!O*rN%I=J>zvf@$)L)+V#?q#DMrncQZ%6dhmj>@NdDhL|K%({D z*oDhet>>XEm;h7P?EQ-aL!^o-CZ}-U-<|aDNrO4M8SlBZCND;xEKYx4TU?itrPk$7 zo=oWNXD6?+;-;vm`fbki<^%E=gbPH$C`mLr)xq&7FD^(kS+lq!8$_$ml;t8m8m~yd zTp?YOfOgW?-PG5_(7>)r<^%R8lZmsUldkJZb{lTNQo##BY83+>`VpvgXJs9eekl((G&NNdHzPYDnvmE2s)jA%Idmy(D zQr}w)WYfF@6|ihu2V{Yzd`DU5wPzCZNP$A3n}hmQ)k{+=keGiiFC++*#LF{5B(ggg zRIdUVoLxrFHPH>8F-j|KkHCN(E|B?UP>@?uD(Y(F^Pa4{Qpo(0|XQR000O8X>*xK00000 z0ssI200000Apny!ZZ8pObD2n%A1(#Ni~szE` zH=Kz@0^QZ!)z#Hi)zwvxqG>UnPts_1J4?zc%P$7A+b_R(1pkkAirHEd1c(M?ug7V|nP z)2c4B5rT=K&}cFrOHWjZNjA--9fUwgsSxhGf}vn2j(<}c-)w$1$*Rj3!HhF( z;A~#Q^9rAj(i|(ofW9iqs7faj1d_o3XwasQR0bMCC^N)wEf}NLZ!U|eJ0w8Y`Mk`b z;dD&nE&zSh=zm|+Q7wS5#(6QB6gMzTXgD8dIJ9a@Ch`d0CuhZVN+V+m$cq|!&Aq`% znVHF!SJh<#!#E@KGZLW-fbzr|T!}rYY9NUW=3`cr)UH41f$GP1yV3iD*GE5WAMQqb z@1u8z2miVEYWG#t*?tedJ8|^G-qCjl-ycO#;&A)z(SM(#gV)ja+doJDzW4SOVSe|& z-W~3~e;*wjMtg7G?eFcrile=^JNw_i+I#z_=v%1z_TVVm-+Qxn1aOZIs7-;kw+r=N zBa}D0hdbZFlkIQ!_VG6R!aB z+r7814}YPd-8Z{$k8o7bHaw1Y{}X;k@4wsL-=_w*zlUKQQZIK7-u?M-?@!+yMc*Cl zzuJX|-|j;Hw!huq<<{Q*nU?1M_THN~dbRy#`%k-6@c;lFQc3CK58v(5BWQ9P{=ajy zckmYRvvctF=n#GqevS?fk96%H_TKNt(e~lqdw)dE>%#+R0kI2}4hRlZeY?wm5cAk~ z1fu5%O5t$6f4^&b^lEo|AHcoG`u2qKB!BtE=_#z^)6-}eefaW=PN(zb7n&0(*0dSz zOkmvu0U`NKQ&^MZidXe{mNQYNAJY-6uSit|zB8S|cWeUbxdAjoXh58GTIR5_f!LGT ztbZ($(IrA2l_@-g(grsEsMG!X!s}{4v|E=6uOgu9N&4}t+hjD-5M!i#ECuWW ziM>oO=98oZz%$@IxQGBs^aC&()6Y1%E#_Z-F)s2htiF_&^CV45=rsJkiK<&*eIH>V zmy8E{)Y#rMsYjRi&}s!xiQRBf0T?ff>wj#F_ytaPRwgAe-;p4_zD#QD4D}vy1Ayvs zj_l-8;{teG2^?l}i%b69Elg29K-_Xavh51Z+QzI^O}`1LpKYQBKBx=tMo} zG;RqOuu~AWg)P7cr_s)*&WkFU%$WE0%-3 z?0gd_Zj!*NDoPL~h>W5t(QW3?fp0}5Pv%r;jrQ^OwZCWZr`I~iV{{OoEf?GHFOlPM;yEJeDHMe z|2o#=qimY;tAB~!7S|EUi_iXL>*?22DwzX`m0W;?NRc3;7qfagy7;#_qG3=K^Kz8J zvcE_Nd0M}umSr7tH^2OXrvD~QuFCXWt#SMc6MlowbOjV)OzqoBe}4x_Bj*w8>ZV+o zo)Vi&Xz&`;WReo?m}fIu$ol8`JRj9XF);;T?n-$AJKo>13xld2r)4=n8c2Il2WFRO z!6&dd60Am#Vd*@sKIEO~an!TsAoda8kNP}KKyZZS<1fGHZs)YrcM@2fuq^&Py}bdp zWk1@-UM3TI1oC+PJ{Jjm07@=Z~u{9|%^kdOHLjQ3>vUJ|%>xY)jhf$x4CrGNAqU((ZESh+y%yE!Z+ zuFsE~1@)GyAH7cMWMY+6EgdrB(&gUMw%r6-O5^z8KWIrZSHs_jAb-FtU#EX!F6=gQ zm|mnGvDo{oY<5IEo~sIC`G-dB`}vGIkKd1qt2EbNc8VOR2@sD@zMqW%N7TR%$be+m z7^}Ym9KUMN|9_p9g_;MbN84gPpHfr2N1AW{e3nri*ztEJMU@^U7xMF9mge$n^uE5G zq&v)o=t03Wfs846pTc@URd7G6k%xxla7P zT&3yk0939Fi1rA!0(>@+6*w`AWnwQD{E-*b!Zf)`ar}Tk>IVM)FZ(Af9b6yV^-eL- zPu`X3bymzPBddfHow>&DN0r^@G(jqDgeOp7=>&uRl(ft3udc} ziNEHmGRZIarCCe>r*c;l?A4=`7O+9WJkLhOI5n{5GnY6}&e&E020_hoKnS$|?W7o8 z5wa{A0FKIFFBAvO^7HH?u)l_V-?nizynDt{BgCi(8&pHIJr-2gWq*)U)ef+18` zwAcN*3)@C^9$~R979mgHZ2#Bk9;m5YYnptlvcIML?hHo5c)+)H$xm_EmnA%be+9-I zUaBHW=02Ne6Bfo$X2R_bgqEbdpck+Y!d6GJlZbM25#v~ANYwU=u(XZViE(~dmc@mUv578=jVMNEZ`bcI--~kHX(hz28BC~rT~YODiOYA zwmXC9JCOQdZN<a+J?iM4rGI2mK^q_|g|Pk&E9pnHRkO<0QF6WuQCj}j!2F__ zljc?Wo_NiNX~!mbALuSH0U>CZYb04<*U@Eh^RGA!Xpe^fra0}R%OV4X6N_v$z#Q^g zho;O{$BQGaM#(HCTB-aY1^PGOzVwg{U8J=vE48Y6K%?EWWOP-b*dh$(G=D`Zs=8}* z>c=^1BS2puXI?!}x1=}CZUDyC+Zc*TiU$fueobWqQ*-lTT#nV$UDFKT< zN4o$Tw>q%H;07c6i{4(i=d`)t-a`BUZQro5;J(rsRI^D|_iQHCWL1sc4U!p%!{Z)c z7EKa8t8X!Nso!t#5iMGTcz+0}wNQJWx=%r6yhwAF&yH?qxU1Fhr`Nls!IM>wcDdfO zKDGGe7qriPoK8-ejC*5HfYjiCpYJkp|1pkU#L>$*>Y(X~%no!Ypn1u8gcS#3Utmf| zrg+Ff#$Mq)LP2BR`i!CPw7Q+1fpQJ~?f&uQi_V8`mtWR}^{UtXV}Ey}+US1M<=vL1 z5gLgu>IgO_lqjQQR#bY9`qsQ-D=~n>N`K2{J-gZ1YR8^f91^rkBa^OkJ*ptkWi4SL z96Gba(;a1Y=rP|?U}x|ai;1mqCn#00L|=8a@RvwYnI- z1r-a{(*_d&ovs*Il;;!xWcr#)R8ot=VEj~p0 zK1)kw-8IC7c3U6HsF-*lMr8b23kbCu=m_#{J|bTT#FM0Zf}kNx8xOJ*wTRLDx~GXJ zwr0!TV|q1{1EEt+nvJG znMJ)~tp?v()lih%%V+c2;4G$xY588M@tv1{c+v3}(k`AwjO3ijkQ@;tS>W+`hLD9{ z^9c`$j(@)H7?F{}I#M$5L_e)&=?MJ-ctdSd53%u6u`4K)d2a=ALkEqU(KDA5TI2Uf z#A-rqTRrvcc*|SWdSOs`=cT z43WHXf1^9P26z8_&i>h4{j)f_CVVCRSqOIz92R38&($^w;Us5;Cn3vGP5~tbDTQYQ zyO`!?H0WLgO8WR4SnkEFas;VtI!(vunKijx)NSwlqZb&9)$zZg{6ERA(rD+?{-;3M zyMMcw)N&aJNRsH!fv2rBCOq7gz9Rr)_V1zVFShgX;8g#7d3Og&!lpTY?gON8hDKF6 z$Y|4_w39%`Gji9P z2#ifvJty6rH)pcdSwspP%fT*yG-svow&dP4b|VXMP-Ro?Gvuk4k$0N6bA45mORA97 zTyJG|kKU*35JN^Y?bGHXN;x4~Dgp1AYUIu+Q@dK?;7eo0Ma5juKpsLgu&-2S2Y+5~ zYsGn_#|f(i47G}IpSUCoH(R2oiEYy4S=BRa5w4Oipa%-Gc-R7H+lP&*@6HKr&`^@d z2hTcC|5O#5C1s-bNwqOh4U1_#DGe%!4L%6F$j&D~M+QoHivA>->-{n+=94iZBb&}j z?$UY7vGY z18KHr_f$9f^aKid`5|{B}-LrdW_O@G({mR**V z84=?Zj)`}WM}N{e43i=P9{MClmVa(5`#YJlFSNV!lPyAmLw+B#nPEg6K?KyYlKbZEZ%cqejK z2niW=EM&b-CRG|N!pb}CB*FJU*=*ctEdeWGK1E7Hv*D*Zw@eFt;J-eBSRkbwTDAGx z@z#l37)=jB$gW*{r8e-70?_xHY1kuzAdcnhNf1Nu5`9n5!VG_U&VN}V41;Ym6TMdl`K zcF~@j;l0J+j!P@^Mf9|7vxqi^-2XsToK|d^z;8TjcyGWYN9=t$W^= z>w0q=1f8#^zrT$B>d%EjTx?^cfy4nWq^cL{HBsuqfn|SUS$gylQ9HlkYG*|;(dLnbwP3g+)PvAe*uVr)8iw z_;_)5l&92+m5;Z!Kpe0^V5zJ0whGw1I-Sm;9I&7+&6l{?Y7t?Tf$w5^nN;LZ<)S@~ zI;xS*Qpre>KKE(Ksk1ds7lN}b;d?g6t~o}or1pPsA+k$vgVauRO%#7+UCMeVVZbO}km! z5LLsi(|Dh$Y;9ax@#oOYqcxYod0Yh%qyd{#f!#*#2E&LkfL-G|1Bf#Kp1Z#8&`Aok z!MA1UjP)Wd_2Zbm{ef`MRznSG_%0l19@=7YtuhWIikige&9CkLB#{FLHmFU%6H#wk z$Wig+R=bz>-M;b0YC$r1(0!w`IglQz8OFuPFT@F+I%`vg1IHzkXd3`ySPgyk!SScp zT?T)Ob$g>68{&x0y%Q3(XqVwB^7k;*xRHXq<&2NeiUhl-dBGAEX~j%-EkYZBy+Y@! zuJpYd5VWL$9{#06h3nPKoP5Tq4IsS^4J*39Vc>yz`Vr_G9Xqc0hNwYR_i@$56RWGf zg8j5S18rU%j!rwi6% zT1%^5N29)nHvLfg@#pBp8;&YSShHoU&(ez@WN;5XGDEX+<3!OciXI-RZjZ<6evYEl zx`3{a>0XZ24Na#~Y%z&S!`PzJq4a-a?RBV1e+>31{c*0OIMw3)dghtexXCzLXm>;j zc4Mgex1t4=1}+1Xn$Flq81g499`E2Q64>=vS!Qe%Sp(Kb`yA9GUT(U-!~wtIf8RVi zu^Fnj+~ssc9gc)6`r3sn1Fgb@RJqSSqM+{o%%>E5)^oCwJ;B_X;^|4oV>5p>1@61P z(r&z>@$Alh1=LG*8cGgHA&w1bNkf2ede}N61u-Wvn!7aV$&%2LDV$8t#z~ZHsrq;r z`r;`eC`vZ?q1O<0LzxS_J}Lejs6pGF)H+5RM=N_pnN#->em*_K9bspW%Y-Lo-NqpLKe zInU~B4QQ-eRNKL_3uK{srB&CG-jFveHsq7Or{divpu^e-yi-n${!GAp&o32V(oG+}25fQ4u{^ex$s0-aUvKsm4;gA2}?x@_S+3EnIFkard_K{GJrHpxdgK4<4PbFupE??{q#DW>=Baj42HjK zL><7XeG2l3BIbW3GmP~(uccgtt5Ie}F4Uk@K2EEwOverLrk=lm-HlrJm4jyg8YL$3 z&=ophrW;H!Jhb@|Th+VA#%cbHqYU%~!yH(+5fy-k65$pE(w>|!r zu|Fb{=XExoClhAuNWQ6Kwocf3z=COLMO7i@p*}0qqK4y8U=Sd(050C{1-z6Ks82W~ zjQT9`;?;khR{X&)@Nqi%wiw^acv zE4K$On`>c>Uj=xhs-pQat7ibg)9>)edOl-Cwwj;WY)?!A%0qo+EA(}Ym&MgCALgUz zjtOhvx|L|zg{d(RUJPac7io$RAogcQjc= z>B{A%A!LcN!C}p`+s?Gf^|;!M9#>lt*~o;K z_PSBjeL{56kE5%g!PWQBU&Xcwb=nx6-?Qrhk*aivy0Y=C)$+S!7qtNMJYI+P#Kq#< z0szD}lKj^8m$>#Y!W)7a-cYBI7WwJ#4cRgNbs*bD*iV2D(XN^nS9z(Y{?Bo zABwQrepTH!;Dsbo{{%o?zYCJ5BeFCugL(oD&P%(3)-dTUEXL=-jk5_C12O$*+`G4L zz)}fEhVWgrtzN)D?4Mb_9qg>t#lCLhS@Q(E^#*e5;gsE?yXVe0Y03iQQS*N+4Sp^* zLHpHwA!SF8x3F^2_4?vtlC7&wX821QV+H~|2sivge*x|m~Q z3oJxDM`?Pd0?ocH>U7JAORayRr%2%EQeymovOyPrle0>BUD@$s2-q2BDM>jfjN*?9 z954cm=rD+)_h}mKf7<)xs<&?iE1W3goeJ$!Vht;)2&%U_90Q^jZ9p2el0~i8p`1VwW@KX#8cR_+HgTb~ zUdgm|dXLAk#OUnVY(cfxr!b!Gqp08SH+np$$UQB6riI8I&&Pjy02IEZ@`u5r06Gkf zWAi0F#)nwf==hBe=`c^r(1`zz8l5nq%E(=Ryk+-hWSaA`zx1BiDh5zu_f@e8QV)6> zbb+%$L5W;OfsiW6Ld0(_#A1WYY&<86itrI*8&RM{%DPr&^{wJR zHRiCby99?&kJV49NDqNfCK1HP@M|j!9v*zcOVY6YIPca%fs*R}6uY}s@g%OdsBTXk z#X=#x>iS`l!%zFco<+t!9Y#)=J0$@&Je`wh!}?MH!7&{C z)$Z%<@Ar>RfB0_iX!msIyY0jGcy1Vd$UoE{N-2K?)PGh~82VVEr>2INafyFJy*(ST z&}hh{NO1a;lggu5=t8nABg`=`2Ud zLsG0&-{ZRKd9m)Cb}`5(&khIWq(moVgvE^8l|_P!vb3N=g7m#2n6FBgaL>MUv`}^*>%5rfS9x)h zzwA&ZUy2tk`FwRb%mh~Jd_y?Z4Z$h z;Sw+y6HrUWtA+yPk0*N5>~D7PYf6}_#%2=4rw;>2K%OkOoeJxt-aWZtQ8%Z)K5*F}b>2V>a1FiVq`KtR+dG7dm{MdJQZ zdF!+J#s0Hzk}J$erW|KUaN2S08Fzn!DEhuiF(81GBz>HnpQoh>a^Ao|6zS6l$_S_J zC+JsH=ISs6+RjX%XO*x~#j=<6>af_+3`dE59@ryu3V2-7XPnN3EiCS?D}Sju#nlOL zkVAM<27AQ+r2S7(P#GUx_%g^5Ax=vi~M*kUg?d2D}{f-uz%ia z-BowZNvl@19Aw!cVqz04x)B(LA*tsQ_vY&E8^Th+|N0PbO>{r~+GS z0B>bV1U{lv(yq6^b0a{<`gO)51g$fzJC4!rY2Vv}quni@CLNz6dV=)zq_Hmi)hVv+ z-#7pX6uMPt9}AGfCK(BnNv?nP_XK55(CuZB#e9(*N9KkxlOPciU|o=c$^4LjbO>fj z&n4OK3~yk^Z3mq5^Kx@unw*_sCS7tK=Ntg;`Pt4Vr0`w`>vb^X zc+NdS1oFFqM<2TArWZd#th%SCBTD~$_d%LM^uf#f^V(kmh4f72A2z zAb)GM9dB*=!3RA0b)^t#-IJ``g{aDS+bOC^F6_oKlbYU2`xdix@|vc^ov$b4zK9+3 z_Zapng8eJYuVMAjbc#wo8=naa!s7vyl$cqG=977mPtM34i9~j`H4jLX-}$7waEGsH zKcx%Hc)S*iJXX754#t03g>M(6Pt`!ZnL4GmWmw9sZRT#w3R46Fv~JICI4(rGkjT;^ z5YW;d`Z&~G;=GE0v*tT^i1d9*s$S^Uf=X;;^}S)u)V*>$VK))r z@TW@Z5iq7m*wNpOFh-T*PN?a|ifT4#{R;Mel`ZC-ks@>?qVs>;a&BnZR!qK$8Am^7 zdau~-4dN9Dsd|@jq#u#F+~gDZd1oiGIM3O~8fT6&rHD5lG32M4Uu(}hnO#opx%25f z?^SpR6Qe!6f9G>mcx}Dp2kHj~CBz6j^bjB1psTkx3!4!pL>#)in5fpA%2tkzddPTz zA7Sp`NpaKn!Ek>jzEBD*jW*CeLK$y2`J7;Ahul)tbl49}E-|`FE*LL~$&{nK9Mx9q zz}{m}%34S#ia-sV>ExCTgaRJE-*R>q3AulX(Woj*N^l@s0h7+sh917LR*Cw~ohLP`Q+-R~YT6PD0MZ7GybuWjWF!o1cgr=~6A-#4hjTJ7RO&*r&K9Vq*vc9hVBOC7$9cY#_D=CQ zVGr$nlxN!nnzPg+hY%5e)oVOnY#a&jajGfcQGio3kpBmniiyNz*&qY#pgq4v_)ORS zAhC|;(@ ztjK5DOA(7$-J8xPLCpHbicnA-Dt7F|AOX3xZlA80)s~5$!p~$Q5KXmOf1UQ|PMPk@hi`q3l4h^-EVe6q0ouS%Z>HT`@XPqj|W zmT`8m>(DlGU$?r3^`zH0&q7~^R!fOjuwfzcPglQb^GXD{Xghyz6>~_M>ysjD0h!KoQ?W}kJ}lvp=EQX!q0h#Y z%|>GT)FeD-Hg9&)&7wg9Dux}t+I<^itQ5XH*rcoHZN506qV_1Qxr}AGqlmJg-PT3u zG}r4}#fNLmPjpR~NR^ zBURnDW%jgD(myxS*)Kg$9F+*Od4?3Y8*N)okkWf*Xli$Kl*B-w8oi&cMNCE`_xrIx z64nSlZ(sffkqczvOdDg{Z>ss9r8Bg+di$p_vG)ZOrUw>8odk*4TlXd$Cw{zl%PUZv z`rKnb!;jw68e1CD5E_6SqnCf|b75FvVe5HV*ixT|+wt%d@TzWMO=~Zd2U#TRE|8yP zaXiSv_;nV=f&~#)MwVzE=~(F=n=d=D#vx++LY*lsQSvzHG-NGZHu%fAp*!m`H z3M*O%7Dm<%TS9C-Qe21JxGWa?aqU`uOUon=g$PI9u&&G7se14}JRX1fQAEYbtvc0} zn?Gmb_)Tu7bO@|H@w62)+Ej2c`*wnt9Y&War`)zmk+h0o8H+h|d~z+u(7G(kn3g91g8YF_KZq)6K}V-41oS)_iJd)|4c*!k`9f_m!5 z@sLa*3u+uIz$cAmWJiDS;JgBw8bWJ{sYWu61PGUbVBl%~^6W%BkQQHm56e+%WY%iX zCYJm8i{NJ^JmD0sFcfd}0lX{}2WCO#D8-Nn=sbh#hLZM$!_cidkXie65q_baQXCvx zficv{7_Uj(vBmisSD9M&;v7t_B+iOQYy14-G7>-YYun~8=1701^Hzw4mP-~;Ijxxx zY$9EN5I^_9DSB9xNxe&cS)KvBrB(LfddC%e-eC{}s-lhn?x^ztbVbR~nQ=Tub~!B= zYk0ZKaxRz@7um=?6gpIR6}gWOSL85B*r&P|q7G+z+}0(Xp}D5s;=E2t%$lN01ztIu zq#vV;GMP>RexHAMu62~5{V#aZC0m>;E8rSTld*8!^drn~ZQbI1ik7Z{S$vE&#e5 zJ7>uB*a1kvf2(W^13N!YM>RTryjCvE0J}n$37Kqj7F2&JXFk4d;Xu4C<`OtSxzF9I zJF(FJg1T~z$KOmC4EY>rU|s@ShT5*UFC&Vk==X$cPkd|fW{+&ko`>$hqhR!>-#hpF zSZc^~ygRY;X;$5i3i4*`Alcwi0Prpx%|+3nj+s62$v|%l4G6{R1@6t+6!-uq5e&c*z zA;+I1@%d)Ywu}=DmgnRSRyZEuz!l=C$i+{LnUa6!ylypp31oMc;`V}^ zRH%Q<+Sr%u$9Yz!#seK1&q~)13?Mt;9B)WI8JDDH75Vup6dE_*9<~C!%VbaT-OKE5 z5gzdfn&)UY9|L{f^}}v%JC3gz(&;1{Wwl7!6}y!KqeLe+B=e%_=jOBSs3^y&V28O; zSg=Q`W?IQQF85_iQOcYb(E8wJE)nrxW3GY2Mvjm?VFNPgR#GmYuU zov@}W12ZSw*qm|SoV)|MR`?7Z@BCWh_>nb(a(_J0rD z8g;q)sy-EIOEY#q)%{H0WG!5t0{IJjwz^U09*YwT%7Am8ZJX`$p;;a^3cvnlW3TdV)#_ zY6q#ZQPDoEq62&4s~P2;l^hxN9*|#Vgdg(OX5q1$cUAu>zX*kVXiC^Sp9D>AI#ZD? zD&rRLZ-T9|5h|i{ z+HP(XmPgpobqP}dURXS0t&>yj9AHMgqBkHV6|hgb1J%_Lw`0c@hSh|+j^m*2GKdgV7ba=HwRDI3XkXY<9i}TXo|2Atomubn@yMovL?VYNp^O9$Hg%xTM*BLm z9oLA!bYSlJ>06A5Oo^=lg2!l7lw-^0O}6gHzCY$dRVWO0*Ul)<);@x)3Yx2EOHwdk z5SCqcmwSXG#n3RgGnRkX`d%kp#jBWXvYcbi%yYCe;aFA6y13$jq}vuYc$6M2lRf2{ zNV1E|8tAFMLBp0eU_S2Dv}<5F!bn5OZ0@ZTdn2x5BMI5UeQ+6BsIwAND0gqf-d1(e z;_%p(C&E2%tXE1Hpr#MlbgkV1+PJLWKq&WE2=KkQwuKo##W8<=6oq*_&Z_01(~nyx zL|gEI8=36plpwkAj&Z#V0(3JF#nAZle1fZxlM3{I*M^%LO9kLYmuqObjoY9(r+rBm zZ#fm2Y|n3%#VjG?vf_xc)sV*MT1)L%k8E)F4e}4E&=NA1X|yd?wpL#j$6e|;s#j!2 zHuj^wn?3z^>UDq9!!zABleWVIp^Gn#TJKLA5!(4F!sw>nPLX1_^YPuCuYKDYl{uL< zg@ieiP{>koE6}=sJ4>U- zVsda`;?)*>%h|%)9OB+nsGlFWxtM2*f@BV#_k)D*dToEm!)@G0k0X1=PW;>&%>?Ib z%_@0dU}QgjM2>)jTPu=;8v5@O{&P<_k9(te(et#LpS7p44^Hx?p5(Z>a>bTL*CFtN z>hBZ#3$A4NF*v1*9`6D5m}jVMZ8v6p`P$z6eQp0XNr1<_8CcuX`9#g~YD@cxwX{Kw zD{d;XALxIOaZuoECzPBg*-@E|$ohl+G`q&pj+~+>w%s&Uq4LnoaRyJL=bI8)&y_ys zGmKdVvTHVBM~aF&aq_yLTwP zWxjQFQ^xkBm&aHNEf%HqtWU=%#`D6TZt64@&H;Zf`=9^MR}y?xH2rc^K&pWd9p;JUS@g`%f^z24G#w=Ylsw`*u@yV>HDWlW$@Cj;&36@RZ#~V~ z)RTXpl95g4QnAutI%y32RZfUKOLtr+xs_<~o*j%Qud20b1g1jK8O3m!1hX-0vT6J#V^^Q%Stf zEt$bXh9m{`scd}5&wPtVpoi#xjUy-RN>zVb(2Cucp_|~w{s;p%DMNr;s2vy7Yqb7~dZ9NGX@(wvzI=(GwLu!lB$ z*;#I*uCujw`3h(Ean+6SpT2~_t2(i@<-_RvvGo(EZ1LrTd-Vd_4>sTT505RRL@$3D z1j&v6CpuTRwC+kwuwCcr1s~p%OLoTcv8I8%Y_Sa<~>6KB=jgEw4I zbbYyOnF|zJk+4RakTJFPeOA8%xygSWE%b)F?%{vIIK)XH)O#C`>kb0IqGEK6uuq;? z-RZB_QhO5hXt*kzaP)%}P-M`vMyFba-B21RyNsg}TFOGx5a4EH=b~K5g;JF3s+B*r z83M`b`WjdI?<(ZatwI`HFE_kCsCQc?9bTyHSg_E7+PqY)CrKy4@EidC6n1@QuSL>)PNF4rSkc- z+URU{n&qluRHdW5@a)v1Vm=w8RROJ|coRLTR_#h_+pUdxnSJ)qc#bg0p3QDFgrx+% zEi$>2*L~8xqZE(Hs7AUcTdt4CJ9QhwX#iu!sw5WZig&jl&5+xfVv2v*7{?L~rLyh_ z?tj8?6L)tDg6c~$p9L|DZ0*sTDXh7~FlJR&d4vqbs)Wzs1@m6sij%6Of^JLf_6^QG z=5?zJ_L7`o5a)TK9cWxyn#|F+l8=h8%t|yWmll7GckyLvC`)Cb@J zorvJ~nd_=dPPW?FXj+Wtc&2wY=SbMFATi+vM;WUMpd~Ym%?dr*$kM37M6@BdYK9_i z#*}W4w%*9^%1rR#v%H4;xh!F)2T`wwP*Tp-#_ZhX4bzz!ry75wK5;ThO>~|Rib_7C zv}Zzmb`T`{%ALzj-iWPNd>ZOB=0fsN0iiwi1HI0kRB!_H{2VQ=o7LVY~guaTc z^bk5Boiu=^>*jw!N~QvSYnS;2F((4@nc`>-(M%m(v0%4S7s z0s#v4bG2IC!>K=&g-ns=tl=yRz~>Ci0mLuX0Ocda0;YeRXf1GU`FvMepK8u@0*y&> z(Tte(AXDLtn$z%|FU!EEv+nsz?7W#~Pl-=14Ytnbq6u1v?^RY-OHSpsbP}h)^@B={ zE!=T_Mn~yQXA7(GHP_0H2uO2o?$9=?`j>daJ8#vJu)Ae|l+OB4Ww2JXM%$OjQu}^n zf6nk=KuCX>D!rAc-$&?)Jv=_~>2(L2)Z&@t?nFu%2d{!r%tstlgL)__-6?rqYDGdb z`Se0tqCdD}&p5$1FJWQmH3r}DBnbaUmq(Ik}`&_EZ*>aZ8E9qh?z!Vtjk_a{R4C(<8V z-84h)QZ6EVfy~^cYJYa$%XxkT^iYYZu*UB`qhFKHC(z?E zV?R@br{Z&fRDD_8;3`X#(WT3;Qw+tg0h)h!jcoHS?Z!B#*C6_jc?K(#Vv{7*ZFGaF zxZG68FgAVf+3I3)fr@5rWlgOTw8*M{F0i)&NdYfLowMOtOqhee7E}yoKp_|%B*2go z*5)WbrdZ!ST=~$|guvIH$b2$4@C1cSN*R~%EkHE)**do<-GGjqucu>ALnBqr~wG$S&hT3oQSt{d58`NtTKDA_98{Ddo%ez} zAYO#Ue8yXp&Y3Ggk*-t8j9i z;-WU8UGRTA4vs2D_3ZxV5yscO<;%D++xe3T@TiLWxMsho6~AA;LQUfGFzSC$VPE>6 zCbx&QA<)~fw&Z5P(ORJy?AwA)E}FxYa1rDRB2E)+X|rO^3mTK4%&wlOV7JSk}4O(;krTTl~Aq4MKfG^Z%$TJM{O z#5`Zp__F!priV7LP>FpV#>#&xxKMMUy5vbrgn*`Vx0z5zgVt0^-U)P$F)n3?mUB5k zrwp0SnRHk|(M&r_tY)j9Jd2=DQ%r%|sip8T=yo1goo@8lGNmv+{b?}ty!#P|0E3Qn zCrF8(88|^o|qRCKUE_j>F!PxYq?n_)a}w51}R3 zMK;!lsAPbx@TgZHg>pB31|LADb2kO%a2TZSMqt&RvwnudXA#+lWNn*%TjeljYro&H z@|$!d8xG9aTB4uNxlVugfl6c%efh;Q{}Q{b;&}hgX}0gr@o=&em90D0H@+|^lH6F( z!?ferpBH$WQeAY+i+och{MPh_v4)E23`1P#sLay;JJ(@CvF%QF-s$tUY2tHCfR~6X zL3ZAy%bN6cJ0Bn9liNLbX6q>mAr>r9{Jz2Q&<{G?T@F3^IDCKBy^Hx)B>e8(4uLOq z&DFl`5zaGc88?Lv3qsM4$wY~&jn1wDFq1JS7gwQ46tZ{@3@&y)Wn-vA$DVhx*tJ?@ zoprN(p`1V1I7&5fYD=r6VZx#;NyMmx#IV_Al0zrUY*Yd7>zsCIwRiqc=NstB2sE4t zXo`30<}5zg1gd{l=hqsv5;kLfs7lTV#QxOe=#BN&?(6OE_m58hefQ5l92~wn-T7|& z@I8>W>P@xLIsHE!-;1ba8;&D`uVD~!9I0^xY_+^`3(5R%+PG!NKjX$7+>}GS^OxR@ zoid6x&>ca(I{T1%7@9HlEm0-zBrR$fZ_WAO zH=ivB8BE@^mZ%WEJ#|lchsJYnnI{bHv*%^K`B*d^KjSpqU)RLibVQ1N7QUUEVzLJ| z73Jrr%ejBcTM7??J6OYztq)sTGAhxLI_<*(SKPnWaQymrOPFi(`dZj&&U!|7hyY@waC0}?O0MY z&&9*d|uVXS$H1tEe)~_QAJ1^ajBjnlwukPO;=S*yt~#)1qgfn5Urbe2 zvlLf&K8-DwPGM=N^l<{X#FEOwfxD1 zfx5%>$!E2cvxyF6eN)0z;w5u1QY3c`$ZT{wpK!LsHo;SB-!RYtxJhzgLgQmF^6b|D zMS-R8yE%D3p$)|%A@SF{aHD8w&`Vt{NEAisZB zM3$)<;GI7#HWFm#4isO=SA9f%Sk44TG*SxMZC<0+sd$bJuNk&Nk2N3->v!Si%$lRF{=KNIG^l^C;PvUZ6Btx$JNCdDmWPk; zwdjh{)yL>1hD3KT0F;SbW7XI#EDL|5u~ji1;RFDK%{V&932hCa-$5gPOUq(Y3evL7 z@C3hP2HOerJj>aB1z-IB@+d-RgjZ54`M4bEy0i-Z>@~!EZdp@QDpWv?KnjHAS;x`V zDX_jJYN?S)GaIyWs_)*QyYN3p(6E==Mu1o;W)pHZQ204P%*WyIDSH7Cmm7aR4cuG^ zQT;H`Vw?M0nQEP(bNskE*+8A(G_6L-EImvw(vOEpej(S5novVgwopI|lx&M3)9A(H z3j6T{`|)A1-O_w|Wjf$KhnimI?XN$J#_iy^AFmdMCy3&E3~%)b`31(Rs7_P<3Ii`Y zAI>@(&eIKg=2l(cr&;1EhiQM7)Ve*diJ-UBLRjoJ|Da~qvgx#mmI{?;3VKgcywM8K zY}Y_8g?*%oZSKPNHgl;DC(_|Y25B=}pwWC{RqCQF=Ce@7FIU-%PMRFAp;vwO7&v*` z5R00J%_K$3(}y9YkF*S6lfEefj979rQmY&Gz7;41EW9VbV$%bwO)GyVn5sqL4jhBA zh;*ZXG-$?Yo@4I#8{^j3*tU=_L$ysA!wY+B^}QW^P_BQGqIE|kN;ricz;$w*tvsX^ z+ic@FXmp@~y?pAnOApcRY`5K~(0I_L7b|u)WSnm4vD0U_%!4lidy%>$MvKeIYS)|E z?@Kf_B!7gqcGPJc8~;&{>y)AaS2uZKi>K$ zkY)yhL8n=6h47+&=g6=XP@MkYGY)zh>bipikOh9&>OHRF$5kI?fu1w+z`ovi?{3nK z4RC=#;`f0%u(etTd$E5tOLQr9kGol&TsE-z zDPAfoF7oVe?CQeC5K5FDy}PY13v67j|NE8-5k1C-yA-5l$kA9VnWS^Pz4_lK9pzOV zvTTU=E?@JkT#+8p#CHM26Q3@aQ+Z`xqFQ%kRx)S*HRS-e`q96O&M`0qdw6eV)qwJn zVmTQj7Qd5W(yV__gz4EN$#vkCTGH>#YUk25b%eU%UBn}PL6aXasknxI<9n~s(e8aO zD_%sadwJ-CgJfmKbjnx&B+0UDjFnE)`J3=)zluojtb;wY^~_(jf2;1~5z z9i6C~dFqU0o>NsJAX+RjrbGV^1uzs^&B3c9jFEqfI=K<^uG@N{P4hFX@fBX}Jl?YB5O@ zlyiT9QzV3%o6D4LR`YP_sIZ#BKRVnF-C8tlDF5C@J1&_lZp`-6q5QVhrE+Q(Fk`z# ziUQX}vqgeylSrD6mH6sVi*b;*+UJBi!hF3(+&zIU+X}d& z?I%bHZDowtdWfW1_C#mYAhI3*bQWUTF}$Fp>4bx6zlLz@q2k-k_sn&NngM$yJPv;~ z^jMaE@TvG_&~0A?au5yQe7}FRx4-vxH~I;GzB)MC-rrxS3zXf*RqtQ7j{owwdR(1! z!)H9b$UChv6BJa27M;}CXr+WMApkvvU@QJ5sqrn4r8wD1yWN%Im?^A1T@^ha@(<)E2n}HT_F3MBGgh9>J#|@EdYcnJRodgb(EaN0Virekq+@q3NhUkfwuW!{X zt%ez9Wd0}y)%>j2&Yj}Uhl_s~&t7)W=F_lthx-=7nb)rn+iswDAb@*Lt+**>wjPT< zl$|Q5?){SHD$$(PI-yfuQoGUa^0-2I-1ra3= zJmK>=KJ2T~dM#gd3`pvGyjKlhaSc)VjQlXg>Y(#<=u&@)p6+FLsFwvZ z=RL5{9>nVFFXlUIQEtG2ANDJ@f*hI?;T-X&K^nNnH>%W}DBeru_VB93mO`tn-c5B7D)p|S5D?86%@2Lk$Lh%mNEfEEGelN|2x|n}e*ui(?l;j&X#7Zan z@S*f{Pzj;dR5ER)0{OvH{fVWQMn7xzq(6beg8?n3*Y(6{gI zj&Wmrd8q3k=^{V+WTv_U|J#Z>FW$e~d1?E~bUxG_e2$4L+~+wx-+%2rF6r^kq4)Tl z9=~==-vwkE=KFs))etaM1D^6ui&zu5?uA2JDJTq;1O(jpm!U#QSUR1?Z7eElJf0>GOqV4Xd1rAVPJfK>v94(XeY zsR-ZjsU0+Z<;C7Ah4bM4R2&sM#biFsy>5mAe`#lbuQD(K8jWSR~yLnJ`JFeeDdS@2~_gcDrv{`$tK#z-S( zDJTzdc+-ElLcHvLiU6hhi&GNGx+N+=rF>7NOM)HB>#$qdUY_k2A_iF{TM;LifKj?j zA#w)lUjkM=blHtrQV+ymF`}lP#6}05c~V7RwoOiuWB7gP9HEbkzHKdgBhz;$mgQ~f zdg%?%6Gy4m*xFRxad2Z>=qZqfs^4_V;}_cCse*s!<|!rJX>2jo5%nC;|uZW)x+-xpGVVHuaW5v5a5P$g5;&ZiG&cP8yHfNNerwal@2Jh}79phU;X?%xgU z7k4VaWu*gXHW8qqQkre%M`x+rzo;-PAl~(A72_8kAB(9~AqMZmX*7g`X|2S^ZGaee zN&jwN)Nf%rWe}R>b6B#LrTuU`-;aOgE71hJk@x~G)eN1fx%GZY&W`i5DqNjYaAwic zhGW~dolLBWZQHh;e6elYwryj=iEZ2Y=hQh@|Gw(#U3=BOTB}y~+s~`7-w4uTv(fpS zZ3EIb(Gpe;Rn6qF%2x1fq=md{1UfQ-(F0kj0va7#?|+!KnuPZ$fYtkk!=KuQMH* z%SFC4=wi%F&psVUbvBF!4lcrN55*5n3$<;ceYROru^7cFKUK^yNeVZ*I|rH~1OlSL z_ufDR6A);b&4hdF(F=CkAm>1G^+>A!2_rxVEH9IB40*HcE7+GKZgZW|Hqz0{1oPmO z6O+)hnLH64m*;wq6}OoLm?$=P1=?^Yp_|`4P;Sr)ozRHESR|+s1kBi?eXT|)Y-JJUWbw>n zeJ%2ySQ`H88(e^EI|CYZ|M$9q!VSI927nR8I zMT_69$#yuf*Kv8lTnLy-ed~J?Q&b1L+oRo*Lyl+**oR~Q3L0#?ezPxalXXeiD^Lsv z5GLy)6pFmBSa;hjJ{eKJRO1HoY7QAbb`LOnOu${uoSaDpRXhsmjF%*p)3+ete>q^d z$uY`6S=mF``#4I+w1=d?eo;Vv4T&zeo184cOd1+iy(gUrx%9q8T;NK-# z&G~NY{dLL$IM8IBe1m89qk&Al=kbNDXtc%uw)bdykNXv5TWWqEW8JyHxD_TK{+l&? zb(Le+TW0X~*@Q$aQ{bG(4NGG@R`(Wc6?|h8wHsH(rH8!2b!X{@be?^2?=GUtQ_g&z zvHTb=H)-lUqjoA<6Ri(5%_!+W@Ps#z-U=?c%G-cO6^-N)PI$#2 zm;jpBq(kR|+dfeYt--T|H`|@xm7|mBVon3H%~tzUm3Pl#rn@c*oASL?k+2@XCpif_ z&yvdv=;$1$M>1%d|CHAHA>3& z{5L}U7R@zK?63h34I>*|C)?I)lL~m&NdJ(Ehltu;4}9a_I$GC4c#ndB+cg{Fv%8&|3Xp zaZ+T+{%5hrZoSC%cs1HmVxf}ZMN8;`YJR5+0CK)P>Qt(<%YvJ?Cqxgw=)XxA!I6Lc zA5RUv1$xM?^{ltM-fD)H(nww4YmlyHTWdtka`kBDPb5^y>kphj4cZYT-wYM?Guvg@ zljx-=2V)CWE1Qw+#HVy07J>^tOVy!Skb{QA`=ivde$>%Vr+vu+aRbu5Y-=6Y#Z=E z;7XEK$ioK+*B?0;j8ODgKD~m+sF6Q861B(md*tv^;aJC|&Z`YsI!=f``NSomCSnK- z5vwDP#v)ra)I9qJ5_YU0JKJ33*HZYJ$W2rCl6lajwj^%SsSA<``apM8zDcw40Oozd z%d)DeB!FcCWsR%n+^@1AC)Yh`$O@==*C>P3om$%T7JbY2x58c-OUyOOzQY;wZ|9t` z{;ldIGDLjDf+IYl?ipdsyhS&lI$S@yfGX%`gv-m`dioI2RP+};3?+z5(h}sw#tbj0 zz{sdc=0I>S2ToXb`wj>j-n`Xofd0n!wcSm{`Z^!3=!QSWro1IGD8a(H5&_zxP@y}N z=m=F6XcMhH+k-#kvZ-Pqiy}vXBwGttA>h^70NBokwo_N)sQbHo9o_#X;Fc+yY_Z7^ z#dkB3{kM?**ORC^+Ie18&5Ubs$*RSFXaTl&0EcN0+pcUp z_)KK$YC5yBP5(2SG|^M5L!#Ri4lLId%{6vT_q=%i1lR!)xvN`_8h3{4*uA4mYk8dL zn{#+R5Z?#Fu=tmrt5N^kOHu;y;J+Zbn5|)$- zwQ1?_$!jnUSw%ceH3RB5;IU~U7{a)3D)c1@{)QI3apKFbtH@TuJ$1^f>-gq=$9xjd zdXvJNbgNtrH9jWQYF zpRl3J6RI6{)=9k&>~AqWFqa)DY0Ev8dE9+BkD7=Th5>dZ^uTMTa7 zD|8VTAS$D;jjZATjsRt*jtafhlg-R>pgo5vJbJhxo}Eywu&wY$p!R$roK+8M%F^rW zSP&2x^7@g4kGs#gnHM&M*rU0Dn4pxT@o2)y&!L zasiKTr(*?rH)Q?Y+*!8~Hc?kMVOL912}N9KWVc*}M9x(Jhz#RWa;4fTOQI!OSk1t_ zmnx{HH0h>0c@dbr%EqsOOid*q8!`5F32P&x@jfjui$jb+qUI(#SL`?_zUMNYl#@u5Bt%X)C#Xu1DBB=d8Y+;Xl$;5(GdysO^&PP*0mMW|eQOE2S zHr$}ezM~Qv!A7dvC0)#X{}VTl+41LD?Su!Fry&=>!W9hYQVF?><0^anrcC$Zb@Des zJ+0lVB-TdMfdywBiOQpx$w4(RivzbKy1w$W7!X(gg`^>w$B=;ebZDy(O0MoLp^)gu z!3~X;vZ%K?TX&W|ioWJWXt{+=dTpg&Io^JidSV~8C$hRZR}a?MZOaI`JMI2=b!IJ3ztu( z71OVclxncr!aT4@?|?f!Jk@4=H^1xMx=iH0c=GdZZaVf0Ov{8n zTCOTq>v0+Spm1`pTeH$yovnvB{6vGXfqrfQZ4A2XBW4>%9E|G2%BcE?uJF!Zc6AF! zPhA^sgl5Z8VFfdTJp%2=Ow&k%23p)ch;M@2!ObUWu#G?gemUO}#+%x?J$}9&mIs_q zJK9>BxQ?_D3^0zr$9f7|{#h@P7pamRrPLyYmE=J7h}ocY)C9)Q^%!(dei@Os^`;sC z1b4PW>kXl6K13Z;bV?`I4kP2O`+WBMje@zn@kEIJ;GELr2qaX}sc`eQh*XdUsEzP6 z8o4>8TeW1E`$(o2=$4tfB=1JDL&Gmu#vzmR+Z0 z>bxAHetrdp+4z;Iz}j5oyT%R&nASm^UEUQJ;wbKFQ*a!KgO-&K+|-fkx0p66=Jd>Z9CIbr~P!Rx|V>U-LbGW1z3eWM&rhY*+oxazRo{?XyB zn!pE~81y;U@1Q|iW9IqMBb5G~n49e$2L&>OI%l^QS!23Q@>A(!Ad=~qp4t2x)$h@eeo1vYoGHi+)v2l%SZAl8v zbdp@kIK=C}pZ-&8jQ*enC|hGCViUptyS^Erx!0^5(txl>=Afv_)#qvCG__Dc$tkU! z%!vC%_jbZat@~pX__$6d$BY3f&QcQ40evH1`lII4Jc76G?hpM~xZD#=ga?Vsr?}Qk zT+_0OElagT-X;f|p3m|W*XrIZ-FH#GeIp3NMUz_3JR2F#fKJs6m=2FCScca<4yYK9 zL6Xq``F&v{L?_8rtXbN(JM)j;l(>;@cWr3#)#(q;C4T^J5RMuNDINzGyT*JL92yG= z8SoD6xlXKgO8}b*l4l<|gm0VbJJ}oE`$C6?!^n_Qgw@4leuL~-xR{Yuz|+j6;?Fwsya->L-fk@?S_;vcfqMNUU}>q{@dbjq-SD6vD1j&fGGxFnrd z3eo8ud3Q$$lIAXNq<=^-C#D&$c>MRZA*+q#+F9$cG0AhN?VWs`LLnFeB1knIL7T7D za74_sB2SvbesoxBE)YvD$EQIEYfOr>D`$6~PskR<~1SI>B+Zm9p8(+B?ZWW)Pury*qUS#FE}(x&@JEe*J~@ zb8QWFj9xh}rS`l5dwbu@%|?DeEbHSXFhb?ul*KCgrr^4(#gis)!fS(y#iE;m)`q#N zFM(reqMmpmK*7qQA?2&BDV+b-nGk0nZaBy)P+M?Z1{Sj!}JUx${Tl*IX2#{`bsi8ucrLYWJkS>#H~Co`cT|ig79bno{AK^@8lzotH>t|S6))*#z`*mjT&AYp?_Y!)7lqxDlXobd zs!{_4&@Gc9*nFtk2dTI@QXV7SGN#QH-corUnn9vO^?$@2S7~qH2>^gdg&K;lB1oS9=jE zvq12f09%pghcw{5Kq%Mn>@)Qhc7~v0V({_`k$Gq%DNPU#RB3T?6IA{ zT@}v;J{3mbcV{XQjBMp{z*y1A4(+&>9Q}TkZtai2mVYU`K>T3e1wE+8oOAuV4D(TM zs}xK%NgfTJ{q=u`mp}vixlHYrpk6?i-ce+(1CVoDiCWU0j z+O>`71cg>)n-o=#?gD$j$CZlOEdf!Nk&hrv;5Pk@49gV@Hq_z~MQ~Q0nx1*XK-_n= zFw0xxdJkq=uZ^;iIcvWYAq-{L)pWL4geg9OFN%#k*seccyOOD#y4z)N=#x#U9drXCO?Wt(br-&vb-e8h@ItH7Jjax56drW_X(M~>X zEjfMdsPc^|s`9yeFM#I;3bm*!Aa(^f!&f%f(9NM^pK(@YBqpGsen+ zQTNk!*ty!+fxohZFBS~T2r)O#A`1F%?= zYPGR-hdNLUdZ4y>h=@qdx!LSeVb+%I^)k zm^SFCvNLzP-Mkta0{Inf(uDmO#;A3{R6y5C->xxk?7M#wx!d6QFz|`ALS=BQSYHS6 zTC%z)mDocv)U`#GTy%<;^vYTG0ucAPACT+FMwgOI$Z78=K6;Qc5IiGnU&ab~uJrI$++%pxl=-Pfm3%%rD~8*YwicSV3|l7l~4IYrRD(Q(c6$3w>DdhdWZ zhK?djx7;%-Y^1_EI@!>6rLfGAWHMYW=To`dD~vU#?&}}vPFGj#cYnu~28aiE4m#^D z2{*wkBg3E!k9D=J_0N{sv3%2BMt0DJT;~K<^dzgt!JvtIJf;6Vs9zN1N$abWuC(}=Z_6b;o1q4ZZ*!#UIjqaO}&~C!GbY8-*E(e39(<3r&W*=UP&#>TX zuiG!SjEBDH-PJo#??!p;tjUj^iKP5%f|Ymr^#>ShfcSK6_w&lq@aNHGBRAa`8xCDi0k-ENv*ird!pa5@ z){KIFHAHw1zWI<)FjO1d39T=`{KmE)?c%|q<6lA$x}DYjeAssF2I1TTY1VDJ13u!TSl(6 zcF9AH*O_`#Zvrn&3Sb3^{sq#>dfUgbs7Gm@Y){~&n_SNmGifsFZZT{&F)#j~-orA# zsGH(BpV&>k!H)Si@>t*cBPmQH*0v(UnGe5ck(L#wct3KO5Inj%n%k+R0H~ED9hig> zJLaU5rDlJ8~k0~WXSA}OyJApbPp*~)o=u<`wV_p@8d zy1O)w&E+@b_k#iw*X4Fo(i#K~&Y$xyB>$OSuqOo_wbgwo2sYKiF7a8ly`jR$`mNK+ zn2tt=D%htVrs&)P(CVBPojzA)f%JcJg3yL}WjFH2bO_-htz)ScJyd@TE7QH%wN^;( zXg9&1C4|yQ01tvRiAC*TmSsc{Ytd^73{gm!;6G!mCy$?M*^!R+lHdck8l4H1(JFwG zxBu`V_lOWAfC^QK)6u3CXDou+;3YQ=^|zujRpCO;; z4{Mf{q4c2m*-3%0luiEPSyqBTOS2tTN?_2>J#4jrCj%4>Vc5%Tjiql&EDZnBKtxG! zGv>NWVd>iRb_WOYiQ3rriZ_dNE8i5zd1l=S*SlOc;_TiOH7>bpA2I+<71)}<-mm8f zf=r+lK&hbbcZKT+Z&MLl0V>Sid7U5Sh+opZ{B8@L^%pBBZl~YFV8T_e7Yv%JB;}+1 zydcAi_ME@A)A7**?nm_tkxTbdz2B(OM1H?gKDqvt1WNm8maUM^ZaD13j_Nti59~nz zpx><^9urqpUKSK$AJPe9kIQw|z4%l@-;WdssNeIX3JyTvy&*ZUH*w}%fQm8UO+pM^9z&Rf2owIxa2T7IUC(_+du$b+{3h-QxjOz5Dq{C z{3@QgV0FLA9+RuIJUX8+>a)EZFn(ddjT4;Z?;>YytPzJN)LaJPktg$OQrdjZ+Ikal z<@=SQ^n>G9XLM8eg44Qw}W6h<&=*)6nof zHECDslb1JV?NnrJQZdng7xhU%YCJ^%uxA$7am-(B6ImT%v&NCs0l1AuPY%BxoiD+< zPO9dT&qi(+^w&y8p8pEz_XLlL_nBC@$`vP#+cBHF~-h0HaHnM)uo+JegsADfB}LJk^A6 zU+PKcHh97Eku|h^G5O+Z+|Mur_AAUI(|K6`e6ikmfG0KtH4#z#-ML%F>sVCul-6my zx%|zyl>-l3=5>{wD<2>Fu-%)9kP3?SM?zPiwQJ|RIB|q{5y)JPvJGNOY(?M3dxRS$ zn%!BPILvR&xbW89)GG)5VKU;i-6EyS&hE4~nfQdjoV*+*N&D)-O%FpEutlwd)F`*q zIfw>%x-MFy&14Lo%)2%Zn1-4QA0j(1B&VzBDzsn|gd@=rxFyQ?XGJh3zIJV*T=vij zqR1tF#vP7dd8wA~Bvb;2D<3sMm??n$T#U*$Ahzz=`c&;amc?;S_IT)dg3$SG%PqA= zPFp2oK?W}tr_P&X}?JG=66Qt%gU zw(6xJlR>~J(Zw)Hrd42ZNhjpDx2)$%?`DVK=pt|VDCaDOmYbsR9>R^FFa5=m9U`N& zMpEC~Y3O1pyFfKXSNWt%-zO6zs-U1i+n8!i(i6YY^(erCL2FbAu#TP6P9lXB*1@P% zAWFzf71F~wbc8oyIB@{t9mjPz2bjYNjtZ2&Ew>M5+$}rH@j{p5gIiNezm8@gYqJY! zZg5Wi(U3qL2=ut+4ta{DE23eA3SK835$rKT2$;iveyEor^Q|>L(ozDc!}7TEkyR5; z=TS=I!en&OV#!Aa%^I-0K&>K4D;gBZfkETrr z7C|}2o|>ERmszq&nVk`jUlSrGeF}BUwM?8X>=fwI3|d5pz53C+N zkQl05K&qs-nljXRl~!d34I6&XHZ7!>6_jh06&q+?A6cna7{j{GsQYu2xl;eFa)I7jb2kEXHIfH)yIXv_=SmgQ0)EP!j~P# zHv1I{TwoUl*st~N0V;^03q5jwTcnGu2RU9g%7pTZp66|RSp!pnH z&5ac9Zwpayrd5^!fw@#x6&;aNZ5SxGY#KmPH4a;76*fdI{kwyr#u!eiU(AIMCL~|c z*yHjS>t>DrlbeTKtwd;PYFwwNTuO%3uHL0tYImFppu?A3I(m~XuhQ)bn|11)jbROA zp$%8{hwx+~IB2t;C2iPTTXE1%l`nB*_A#z^MzyM{Qc)fge}1b0<|Qx};uxr&^nvDO z1^=v|I-s86?~3X9IgM^}S8KC$C+#4IU77jFa4gJjrQa~lpnI_F@=srv`IXgy#PdgP z(~ltwfUF9eEV!XbG8M~*i2`?)yw&*D4n^`9jwvu=B)Tx+KN{UHx1P=_b1@>Gi5~B| z-(*7Pwf}w8g^TRC*t0F;x)njO94h0K*v|(ra|OvA;?JVx2!)#L zc)j&@b0e!an13mI3J_A4u)-23lT(5q*PTg^p27WMIxW*v^BmtlK^Wok6a;E@^d3^^ z@ym(`RwtFyVm2ObaY28DmbS@q?agUx($4K|qE=LM2&UCFgOz~ooWkocBkPh~!sJBsuW zs6equcCl_M-Qr5ytGjhNyZ`+K2$z%dpV9s{NsYO6+ec^@B_49O_cV+}C+(J=mz*>* zT1w9&4#u#t{#D}EJ9z`5;K=8xc9*R`~*w~PxC#o|h zy`LwsVQr5j4&D-1*jk;A+@>b);xZsw@wt^~P!`8yVtO}a@q~@Vf?`QOijR+=Nd&iB zqEt}c`(a<{|2xCe@+eKW0FqH2FJ#5eoexx^g;nIPhn`Qd+0SVC3(CfdS{d5XL>TmZ z%jahW>2k8Ak!IQy>-oeJU>V;H%pyCFQ44J}raD5#6ZVKPKEnR86`sw4;wFV-j+$1% zDGR(1@XqCL^IV0tMBF7=qn93YnAI5-^k%CiqeE`b3em5__4c+=bc0ZSE6yZ4s~dSv z<{78I>w#t!)7c4$BV+~QIi&_CWPxPy90EaUwkR#tG(Fb|jh;3LPz}-8V*<^Z8z%3j z=*WsPp#>TnO7dewTQ=n|uyk8rfmEf+5csY`uBPxEo2huEG98YcSA}ky@WfBbp5ZtMuNIfVc^3a7g1FL&cx(nE z;E=$ekrEa@hI7Cy{6!3t)i>afL<4SFGb7==_H)vEF zdRzm%{jUKe_wAB2ia;)k?~9;$#oYl#KARN$wdFsVmx_hHt`{5e4wI?(_#MmC+{97T z%2)m#QO1!uAXN0kCf+usHIU5Bq-r`=9e(^0lypHgW}H|{rC%%7WAg4GKdlJVV4Ik~ro#U!|mOcNC z

      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 zⅅ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

      OhCOXV9wDJy(et#YyD8);-OQ>+`S(JTpW7)1 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 w15D80pXxg0b- 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 z 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 diff --git a/Lib/ftplib.py b/Lib/ftplib.py index 449ce71..3739741 100644 --- a/Lib/ftplib.py +++ b/Lib/ftplib.py @@ -264,7 +264,7 @@ class FTP: return self.voidcmd(cmd) def sendeprt(self, host, port): - '''Send a EPRT command with the current host and the given port number.''' + '''Send an EPRT command with the current host and the given port number.''' af = 0 if self.af == socket.AF_INET: af = 1 @@ -842,7 +842,7 @@ def parse227(resp): def parse229(resp, peer): - '''Parse the '229' response for a EPSV request. + '''Parse the '229' response for an EPSV request. Raises error_proto if it does not contain '(|||port|)' Return ('host.addr.as.numbers', port#) tuple.''' diff --git a/Lib/gettext.py b/Lib/gettext.py index 43202c4..765cc8c 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -59,74 +59,147 @@ __all__ = ['NullTranslations', 'GNUTranslations', 'Catalog', _default_localedir = os.path.join(sys.prefix, 'share', 'locale') - -def test(condition, true, false): - """ - Implements the C expression: - - condition ? true : false - - Required to correctly interpret plural forms. - """ - if condition: - return true +# Expression parsing for plural form selection. +# +# The gettext library supports a small subset of C syntax. The only +# incompatible difference is that integer literals starting with zero are +# decimal. +# +# https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms +# http://git.savannah.gnu.org/cgit/gettext.git/tree/gettext-runtime/intl/plural.y + +_token_pattern = re.compile(r""" + (?P[ \t]+) | # spaces and horizontal tabs + (?P[0-9]+\b) | # decimal integer + (?Pn\b) | # only n is allowed + (?P[()]) | + (?P[-*/%+?:]|[>, + # <=, >=, ==, !=, &&, ||, + # ? : + # unary and bitwise ops + # not allowed + (?P\w+|.) # invalid token + """, re.VERBOSE|re.DOTALL) + +def _tokenize(plural): + for mo in re.finditer(_token_pattern, plural): + kind = mo.lastgroup + if kind == 'WHITESPACES': + continue + value = mo.group(kind) + if kind == 'INVALID': + raise ValueError('invalid token in plural form: %s' % value) + yield value + yield '' + +def _error(value): + if value: + return ValueError('unexpected token in plural form: %s' % value) else: - return false - + return ValueError('unexpected end of plural form') + +_binary_ops = ( + ('||',), + ('&&',), + ('==', '!='), + ('<', '>', '<=', '>='), + ('+', '-'), + ('*', '/', '%'), +) +_binary_ops = {op: i for i, ops in enumerate(_binary_ops, 1) for op in ops} +_c2py_ops = {'||': 'or', '&&': 'and', '/': '//'} + +def _parse(tokens, priority=-1): + result = '' + nexttok = next(tokens) + while nexttok == '!': + result += 'not ' + nexttok = next(tokens) + + if nexttok == '(': + sub, nexttok = _parse(tokens) + result = '%s(%s)' % (result, sub) + if nexttok != ')': + raise ValueError('unbalanced parenthesis in plural form') + elif nexttok == 'n': + result = '%s%s' % (result, nexttok) + else: + try: + value = int(nexttok, 10) + except ValueError: + raise _error(nexttok) + result = '%s%d' % (result, value) + nexttok = next(tokens) + + j = 100 + while nexttok in _binary_ops: + i = _binary_ops[nexttok] + if i < priority: + break + # Break chained comparisons + if i in (3, 4) and j in (3, 4): # '==', '!=', '<', '>', '<=', '>=' + result = '(%s)' % result + # Replace some C operators by their Python equivalents + op = _c2py_ops.get(nexttok, nexttok) + right, nexttok = _parse(tokens, i + 1) + result = '%s %s %s' % (result, op, right) + j = i + if j == priority == 4: # '<', '>', '<=', '>=' + result = '(%s)' % result + + if nexttok == '?' and priority <= 0: + if_true, nexttok = _parse(tokens, 0) + if nexttok != ':': + raise _error(nexttok) + if_false, nexttok = _parse(tokens) + result = '%s if %s else %s' % (if_true, result, if_false) + if priority == 0: + result = '(%s)' % result + + return result, nexttok + +def _as_int(n): + try: + i = round(n) + except TypeError: + raise TypeError('Plural value must be an integer, got %s' % + (n.__class__.__name__,)) + return n def c2py(plural): """Gets a C expression as used in PO files for plural forms and returns a - Python lambda function that implements an equivalent expression. + Python function that implements an equivalent expression. """ - # Security check, allow only the "n" identifier - try: - from cStringIO import StringIO - except ImportError: - from StringIO import StringIO - import token, tokenize - tokens = tokenize.generate_tokens(StringIO(plural).readline) - try: - danger = [x for x in tokens if x[0] == token.NAME and x[1] != 'n'] - except tokenize.TokenError: - raise ValueError, \ - 'plural forms expression error, maybe unbalanced parenthesis' - else: - if danger: - raise ValueError, 'plural forms expression could be dangerous' - - # Replace some C operators by their Python equivalents - plural = plural.replace('&&', ' and ') - plural = plural.replace('||', ' or ') - - expr = re.compile(r'\!([^=])') - plural = expr.sub(' not \\1', plural) - - # Regular expression and replacement function used to transform - # "a?b:c" to "test(a,b,c)". - expr = re.compile(r'(.*?)\?(.*?):(.*)') - def repl(x): - return "test(%s, %s, %s)" % (x.group(1), x.group(2), - expr.sub(repl, x.group(3))) - - # Code to transform the plural expression, taking care of parentheses - stack = [''] - for c in plural: - if c == '(': - stack.append('') - elif c == ')': - if len(stack) == 1: - # Actually, we never reach this code, because unbalanced - # parentheses get caught in the security check at the - # beginning. - raise ValueError, 'unbalanced parenthesis in plural form' - s = expr.sub(repl, stack.pop()) - stack[-1] += '(%s)' % s - else: - stack[-1] += c - plural = expr.sub(repl, stack.pop()) - - return eval('lambda n: int(%s)' % plural) + if len(plural) > 1000: + raise ValueError('plural form expression is too long') + try: + result, nexttok = _parse(_tokenize(plural)) + if nexttok: + raise _error(nexttok) + + depth = 0 + for c in result: + if c == '(': + depth += 1 + if depth > 20: + # Python compiler limit is about 90. + # The most complex example has 2. + raise ValueError('plural form expression is too complex') + elif c == ')': + depth -= 1 + + ns = {'_as_int': _as_int} + exec('''if 1: + def func(n): + if not isinstance(n, int): + n = _as_int(n) + return int(%s) + ''' % result, ns) + return ns['func'] + except RuntimeError: + # Recursion error can be raised in _parse() or exec(). + raise ValueError('plural form expression is too complex') def _expand_lang(locale): diff --git a/Lib/httplib.py b/Lib/httplib.py index 7223ba1..f3bb22c 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -242,7 +242,7 @@ _MAXHEADERS = 100 # # VCHAR defined in http://tools.ietf.org/html/rfc5234#appendix-B.1 -# the patterns for both name and value are more leniant than RFC +# the patterns for both name and value are more lenient than RFC # definitions to allow for backwards compatibility _is_legal_header_name = re.compile(r'\A[^:\s][^:\r\n]*\Z').match _is_illegal_header_value = re.compile(r'\n(?![ \t])|\r(?![ \t\n])').search @@ -273,9 +273,8 @@ class HTTPMessage(mimetools.Message): Read header lines up to the entirely blank line that terminates them. The (normally blank) line that ends the headers is skipped, but not - included in the returned list. If a non-header line ends the headers, - (which is an error), an attempt is made to backspace over it; it is - never included in the returned list. + included in the returned list. If an invalid line is found in the + header section, it is skipped, and further lines are processed. The variable self.status is set to the empty string if all went well, otherwise it is an error message. The variable self.headers is a @@ -302,19 +301,17 @@ class HTTPMessage(mimetools.Message): self.status = '' headerseen = "" firstline = 1 - startofline = unread = tell = None - if hasattr(self.fp, 'unread'): - unread = self.fp.unread - elif self.seekable: + tell = None + if not hasattr(self.fp, 'unread') and self.seekable: tell = self.fp.tell while True: if len(hlist) > _MAXHEADERS: raise HTTPException("got more than %d headers" % _MAXHEADERS) if tell: try: - startofline = tell() + tell() except IOError: - startofline = tell = None + tell = None self.seekable = 0 line = self.fp.readline(_MAXLINE + 1) if len(line) > _MAXLINE: @@ -345,26 +342,14 @@ class HTTPMessage(mimetools.Message): # It's a legal header line, save it. hlist.append(line) self.addheader(headerseen, line[len(headerseen)+1:].strip()) - continue elif headerseen is not None: # An empty header name. These aren't allowed in HTTP, but it's # probably a benign mistake. Don't add the header, just keep # going. - continue + pass else: - # It's not a header line; throw it back and stop here. - if not self.dict: - self.status = 'No headers' - else: - self.status = 'Non-header line where header expected' - # Try to undo the read. - if unread: - unread(line) - elif tell: - self.fp.seek(startofline) - else: - self.status = self.status + '; bad seek' - break + # It's not a header line; skip it and try the next line. + self.status = 'Non-header line where header expected' class HTTPResponse: diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py index 862e6ab..2fd8532 100644 --- a/Lib/idlelib/Bindings.py +++ b/Lib/idlelib/Bindings.py @@ -67,6 +67,8 @@ menudefs = [ ('shell', [ ('_View Last Restart', '<>'), ('_Restart Shell', '<>'), + None, + ('_Interrupt Execution', '<>'), ]), ('debug', [ ('_Go to File/Line', '<>'), diff --git a/Lib/idlelib/CallTipWindow.py b/Lib/idlelib/CallTipWindow.py index 90c2d7c..e63164b 100644 --- a/Lib/idlelib/CallTipWindow.py +++ b/Lib/idlelib/CallTipWindow.py @@ -9,7 +9,7 @@ HIDE_VIRTUAL_EVENT_NAME = "<>" HIDE_SEQUENCES = ("", "") CHECKHIDE_VIRTUAL_EVENT_NAME = "<>" CHECKHIDE_SEQUENCES = ("", "") -CHECKHIDE_TIME = 100 # miliseconds +CHECKHIDE_TIME = 100 # milliseconds MARK_RIGHT = "calltipwindowregion_right" diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 0c5b713..8a33719 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -1384,7 +1384,7 @@ class EditorWindow(object): text.see("insert") text.undo_block_stop() - # Our editwin provides a is_char_in_string function that works + # Our editwin provides an is_char_in_string function that works # with a Tk text index, but PyParse only knows about offsets into # a string. This builds a function for PyParse that accepts an # offset. diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py index 1233d80..2aba46e 100644 --- a/Lib/idlelib/IOBinding.py +++ b/Lib/idlelib/IOBinding.py @@ -13,6 +13,7 @@ import re import sys import tempfile +from Tkinter import * import tkFileDialog import tkMessageBox from SimpleDialog import SimpleDialog @@ -91,6 +92,7 @@ class EncodingMessage(SimpleDialog): # l2['state'] = DISABLED l2.pack(side=TOP, anchor = W, fill=X) l3 = Label(top, text="to your file\n" + "See Language Reference, 2.1.4 Encoding declarations.\n" "Choose OK to save this file as %s\n" "Edit your general options to silence this warning" % enc) l3.pack(side=TOP, anchor = W) diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 298a82a..35e2a7e 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,6 +1,41 @@ +What's New in IDLE 2.7.13? +========================== +*Release date: 2017-01-01?* + +- Issue #27854: Make Help => IDLE Help work again on Windows. + Include idlelib/help.html in 2.7 Windows installer. + +- Issue #25507: Add back import needed for 2.x encoding warning box. + Add pointer to 'Encoding declaration' in Language Reference. + +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu. + Patch by Roger Serwy, updated by Bayard Randel. + +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. + +- Issue #17642: add larger font sizes for classroom projection. + +- Add version to title of IDLE help window. + +- Issue #25564: In section on IDLE -- console differences, mention that + using exec means that __builtins__ is defined for each statement. + +- Issue #27714: text_textview and test_autocomplete now pass when re-run + in the same process. This occurs when test_idle fails when run with the + -w option but without -jn. Fix warning from test_config. + +- Issue #27452: add line counter and crc to IDLE configHandler test dump. + +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. + +- Issue #27245: IDLE: Cleanly delete custom themes and key bindings. + Previously, when IDLE was started from a console or by import, a cascade + of warnings was emitted. Patch by Serhiy Storchaka. + + What's New in IDLE 2.7.12? ========================== -*Release date: 2015-06-30?* +*Release date: 2015-06-25* - Issue #5124: Paste with text selected now replaces the selection on X11. This matches how paste works on Windows, Mac, most modern Linux apps, @@ -174,7 +209,7 @@ What's New in IDLE 2.7.9? Changes are written to HOME/.idlerc/config-extensions.cfg. Original patch by Tal Einat. -- Issue #16233: A module browser (File : Class Browser, Alt+C) requires a +- Issue #16233: A module browser (File : Class Browser, Alt+C) requires an editor window with a filename. When Class Browser is requested otherwise, from a shell, output window, or 'Untitled' editor, Idle no longer displays an error box. It now pops up an Open Module box (Alt+M). If a valid name diff --git a/Lib/idlelib/ParenMatch.py b/Lib/idlelib/ParenMatch.py index 19bad8c..47e10f3 100644 --- a/Lib/idlelib/ParenMatch.py +++ b/Lib/idlelib/ParenMatch.py @@ -9,7 +9,7 @@ from idlelib.HyperParser import HyperParser from idlelib.configHandler import idleConf _openers = {')':'(',']':'[','}':'{'} -CHECK_DELAY = 100 # miliseconds +CHECK_DELAY = 100 # milliseconds class ParenMatch: """Highlight matching parentheses diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt index 7bf74c0..bc169c8 100644 --- a/Lib/idlelib/README.txt +++ b/Lib/idlelib/README.txt @@ -161,14 +161,15 @@ Edit Show surrounding parens # ParenMatch (& Hyperparser) Shell # PyShell - View Last Restart # PyShell.? - Restart Shell # PyShell.? + View Last Restart # PyShell.PyShell.view_restart_mark + Restart Shell # PyShell.PyShell.restart_shell + Interrupt Execution # pyshell.PyShell.cancel_callback Debug (Shell only) Go to File/Line - Debugger # Debugger, RemoteDebugger - Stack Viewer # StackViewer - Auto-open Stack Viewer # StackViewer + Debugger # Debugger, RemoteDebugger, PyShell.toggle_debuger + Stack Viewer # StackViewer, PyShell.open_stack_viewer + Auto-open Stack Viewer # StackViewer Format (Editor only) Indent Region diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py index 9a9f74c..66a871a 100644 --- a/Lib/idlelib/ReplaceDialog.py +++ b/Lib/idlelib/ReplaceDialog.py @@ -59,7 +59,7 @@ class ReplaceDialog(SearchDialogBase): def default_command(self, event=None): if self.do_find(self.ok): if self.do_replace(): # Only find next match if replace succeeded. - # A bad re can cause a it to fail. + # A bad re can cause it to fail. self.do_find(0) def _replace_expand(self, m, repl): diff --git a/Lib/idlelib/SearchEngine.py b/Lib/idlelib/SearchEngine.py index 963dfd3..ad43130 100644 --- a/Lib/idlelib/SearchEngine.py +++ b/Lib/idlelib/SearchEngine.py @@ -107,7 +107,7 @@ class SearchEngine: It directly return the result of that call. Text is a text widget. Prog is a precompiled pattern. - The ok parameteris a bit complicated as it has two effects. + The ok parameter is a bit complicated as it has two effects. If there is a selection, the search begin at either end, depending on the direction setting and ok, with ok meaning that diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py index e0f6907..d53f5ff 100644 --- a/Lib/idlelib/configDialog.py +++ b/Lib/idlelib/configDialog.py @@ -767,6 +767,7 @@ class ConfigDialog(Toplevel): if not tkMessageBox.askyesno( 'Delete Key Set', delmsg % keySetName, parent=self): return + self.DeactivateCurrentConfig() #remove key set from config idleConf.userCfg['keys'].remove_section(keySetName) if keySetName in self.changedItems['keys']: @@ -785,7 +786,8 @@ class ConfigDialog(Toplevel): self.keysAreBuiltin.set(idleConf.defaultCfg['main'].Get('Keys', 'default')) self.builtinKeys.set(idleConf.defaultCfg['main'].Get('Keys', 'name')) #user can't back out of these changes, they must be applied now - self.Apply() + self.SaveAllChangedConfigs() + self.ActivateConfigChanges() self.SetKeysType() def DeleteCustomTheme(self): @@ -794,6 +796,7 @@ class ConfigDialog(Toplevel): if not tkMessageBox.askyesno( 'Delete Theme', delmsg % themeName, parent=self): return + self.DeactivateCurrentConfig() #remove theme from config idleConf.userCfg['highlight'].remove_section(themeName) if themeName in self.changedItems['highlight']: @@ -812,7 +815,8 @@ class ConfigDialog(Toplevel): self.themeIsBuiltin.set(idleConf.defaultCfg['main'].Get('Theme', 'default')) self.builtinTheme.set(idleConf.defaultCfg['main'].Get('Theme', 'name')) #user can't back out of these changes, they must be applied now - self.Apply() + self.SaveAllChangedConfigs() + self.ActivateConfigChanges() self.SetThemeType() def GetColour(self): @@ -1008,7 +1012,8 @@ class ConfigDialog(Toplevel): pass ##font size dropdown self.optMenuFontSize.SetMenu(('7', '8', '9', '10', '11', '12', '13', - '14', '16', '18', '20', '22'), fontSize ) + '14', '16', '18', '20', '22', + '25', '29', '34', '40'), fontSize ) ##fontWeight self.fontBold.set(fontBold) ##font sample diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py index 4c95a39..ca885ed 100644 --- a/Lib/idlelib/configHandler.py +++ b/Lib/idlelib/configHandler.py @@ -741,21 +741,32 @@ class IdleConf: idleConf = IdleConf() # TODO Revise test output, write expanded unittest -### module test +# if __name__ == '__main__': + from zlib import crc32 + line, crc = 0, 0 + + def sprint(obj): + global line, crc + txt = str(obj) + line += 1 + crc = crc32(txt.encode(encoding='utf-8'), crc) + print(txt) + #print('***', line, crc, '***') # uncomment for diagnosis + def dumpCfg(cfg): - print('\n', cfg, '\n') - for key in cfg: + print('\n', cfg, '\n') # has variable '0xnnnnnnnn' addresses + for key in sorted(cfg.keys()): sections = cfg[key].sections() - print(key) - print(sections) + sprint(key) + sprint(sections) for section in sections: options = cfg[key].options(section) - print(section) - print(options) + sprint(section) + sprint(options) for option in options: - print(option, '=', cfg[key].Get(section, option)) + sprint(option + ' = ' + cfg[key].Get(section, option)) + dumpCfg(idleConf.defaultCfg) dumpCfg(idleConf.userCfg) - print(idleConf.userCfg['main'].Get('Theme', 'name')) - #print(idleConf.userCfg['highlight'].GetDefHighlight('Foo','normal')) + print('\nlines = ', line, ', crc = ', crc, sep='') diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 7e79e6d..1c4598b 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -6,7 +6,7 @@ - 24.6. IDLE — Python 2.7.11 documentation + 24.6. IDLE — Python 2.7.12 documentation @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ style="vertical-align: middle; margin-top: -1px"/>

    1. Python »
    2. - Python 2.7.11 documentation » + Python 2.7.12 documentation »
    3. @@ -238,6 +238,8 @@ line.
      Scroll the shell window to the last Shell restart.
      Restart Shell
      Restart the shell to clean the environment.
      +
      Interrupt Execution
      +
      Stop a running program.

      %bMDjNsj!pfG@pYTqIfb;QMk%(9=Iw*SSNUv8~DmS$t^q~`#U&4ZuXg{y|O z+W*>W_yP=JG>)B~aye5=t6@cg`2nHkG2TJ1d0YJ4i()XHc6=ofWNNzrEP}U&Rk))# z`_(Ir$y=PE#G&%pWZ7zwu&P}&rWHpR(3eBuFbl9or1S%5v>Bs(oRA2DU;E?n$3vzT z&w+WGDuKeW@)N|p_T1Q=Aj%5B%xa*l4dVMiP9mmx73cgxk8~33fu_%=mi%`y z{{SYC!7WFGkSc5+=z5aZ)kQR@mZ>Q?QP!@8GZt~~l|k3k;C+WS+36y?Lp{NC(U~M@ zgS*%0QkTN4^(*CbTmix|fmA2^4c!+L7_B zK9BCsY;3AX>OCT4>NOP%K|n4*%)*VbWq~r;Q0psoXvTAqBbNNIPhrmq!KlW{>+W+v zt7z2`Y{^H_pWugV*XW{ozcdmmU*uy~%nxUV*x{%gv>Vf%A6rURIRv#`>0QfegaQ6X zYnY64xUZpSdU&A#3@PR+$y}QUG%DuAwLCDid|YmbMA+eyEuO$f^um;=paI#PiO7DD zNd#;wB??2KsJ1(pRZzOYDYRiV7#0jKD0W=S*DL;j*~K!2Jbv$gL^NTJEI}0IL4^lJ zE~0uMOcUj7fQ4b`+Vet9m>4j73ZObg2ZB)4F>y}BAG+5{IK+t5vSWgfT9FT}82hjs z;TIe5;7PxIu>!r=eD$A8tmY{ynBY+}nWTm7&&uhB$5bi#o;^V;Iz?z*L2?2LbTb`$b<|^}Q*}xi)%rA3iP*1P7rrqKNu}aXoKY(tu1girx zu)+->XEI(aPb|e1iYhHtXJD(yY9ta$km3b4=n!?av!@SuaDFTTFaP?3rWU&IO~(!( zkY3-<2b?}Fm137pjv6D@9PQZN%FLb3f6bQ4!$iNMysyXm_3OpTWNgn;{IRF?9OfPZ z!JE!9);Sr!wm7d_TyrOjP5_nez^^o}sQmZI$ZcTj_{8a{9)DvXDGq%4U#hv6x#bSp0!!cQ8e5MGt zQczVbdFhW>6KV)#bgIgI8nht6bl6 z6kJDS!zz^nIUd^H z?03b3kpWx$2HN?t>LvC(&YhoOkwdy=ZiSm#As^DwbyjD z(a@%X^@$&(MqUTRAOUEMJe^#A=;n}lcCBeV4wJmiJC_Jt*eCm;kY@c=MC@l%o!p=o z|E%aoIr0NvBOI+oM@3?%nNonuK&w+w`&75h9A*?-78$pLsPdOdX$L4%5HU4!mpA1L z>uM*JMeU!0qlwT%M&+jje1PlFCz6O6+0*OH5@$6Gj^sIofdcrEQ8L{^BBQ#6#zRr% z;p+pK;+Rw0i_GtPxBirRGciOqsuvv-meYfFiR+0W00&5V&<a6Y7q_6BjV`?en$``oaLwRIs2Sxr6m`8`4b zlk$E$wnQWP1ps~!5DEA4K7XVD2!wtS00IKMzm3uav1R&IyE16qLk(pFH}4&GOWtQAeZHFqIZ`~JB`YMs z_}L>aD|NiQ`eN&%QLd<(lI26L3Z-J(xy%bM zJ^bySuASP&_#Aj6C59Vy>S)xEx5n}ds|)Y8o_tfdnS(RqB+3lcSe|&jb01taH4d>8 z7#NG9u+EtShzblC;WT~+)9Ov_5eSd;n3GR@WV-Ekh=dfY=SjmNtJM++3rRaH zy8#*GjbJ)0=xHhpx58xDFuHsde|nmonE6+8Du{iGoN!5_I-YNGf+)5eni_RQ=13fP+w|3|+==T`TT< ztF^F{lr0zrgO^=%$p@^0P)>nR{vw&$s{`z!A`!T|m{ra%XQ0o4VJ<~QP7;(u_B%nO z{E3<#B<#um!;E7p0fJ_VQRmGOi{(P3iTnMwnM>=P&{;nhK7LcUoDM{+7`^t`ubAFG2@&+7r6yk-oQ}!Fx{PEhbO!z# zOc4jlFnSVGRp~y!^_#f+g&rHRhDG5sNa)H*K))U6aYF@Ss(7cC+|0uBx2-|j)S*Kv zdcJN9c-WOy<1^I_P!&e00X=uZ3NL_Cn%o1a{>hMVNx`_j(V}=PY27mA&sm0xGVj-htEq~!_1U5a==BBnfacX<4^Mobb=H!}HsuneiLFVjT z*X!-BB8%zl#WvsH7B?!-k|T23 zhpa(ZkfkPY6@52UI$2*8qXpZ2fU05W?kU-w^Lasa}jG-K&Y^f}_xoq*25ohvSGd^-fjp zgIdigCz9!bs~>R``kF!U*LHZNL_9($c?!RZEywTQMxeI*^9!0sh8mDH=9=vq4m4m( z&CZc5K&z6Xg`6p-P(~0Nt1brqL%gFjZSNv@?LYp*blpQAXS^uyq ztB02`+NOx|Xo)VtjK@aX$8n2UG$~ z+zZh)8Uq%-l??x-COSb8zVhhmTDncmgfBa2f5Zdyg|SX#rYfL@JVU0au?qY5V<*1Y zTn?5&_aFg8#CyowqAH%7A<=8`3?V3j9^J!Jl58)^rChJh?Ju%>!*N@D>Y4E%2a`(q ztg9RDbFmz&Hd}w=5k<&4dJJ2&o@vr+b!XuP^&Lg`03)yj6!1=x_z%6;&oB=6 zayUKY5>}FEw6m6zkA-y5iz_hdn(fJql1?ZJ82Iu69vkqt;&)!(ra$dP0Evp@^p!d1`~9RfB>{S{S2q zAnako?Dx5j)WCt+zE}mMik{TMzf{cTwo`)~LcaBRKqfuncHWGThYHqq4Q}j-jTQ$; zFfS2aFyMY=H#RR%+-CzVcU>foH&DwI{e4DHYa5_vvTT3;nr->F2+fuT2E+(wXyC#b z{+7%d(>(`}l@g#Craw5%>yM2_g4yVnKz|}btk9D%r>!PDSZ$G=UAvh%6U~f4p3GCP z9v!_NAJPJOVN%-i){EYIU9w-Wajf+*txK%`AP81Y@~YSqa!zkoQnb+^9+q&i;=`=u z`LQYkEE)=X$o*+8wH*^6{WQt=|QDhiZq}H6gBpSW9Em1Z^}aa=>&Te*$a-2$SK-kfPl$p17}$szU3UU96p~hYpkz z?#KWp5@{v79WXe9Lr6gk)gTCMI^4|7L1Pg}>0bpoGs08o8)E z=Tdw7g(&f+F;!EPseuShJiVfM&(A1#90c(3{xW&=#Ma;o@djrCvPhFxOV>H;c0mWR zdeFh$31RM%(XTv0dKIC5TwO6T9oJ`^j7R`tOya3})hA zp9Oz;t=zKce*F*?W(_?G;VxViLWUG6x+PCEF$JR8B;JGrWrlmO(}|Y+-bgyBT##mo zPjqV{2K(DyBXzq-qAaxxme!O|m5dc3?Xn_HLaUqT<-uDzTrzq9k_6Lb5)Le(DBA>( zO?7K6wM2MiRf1{j*+OvS#cD(@wuP^DUJxG9GB5b&b{wb`ZQziF`%v?TrwFOe)a35c z%r)0NzkPL7Ec?`c{*%QF@n;S2FJhY@7I8f1K?rr-CS~-eKUni(;Vr zuj9X5LvW6v1qn4+^!1_vs5D)g8VUWWVM?45wOTA-^Lp{f72C^yPi+l;)Bo_i z6UBMSs#Edc@h|(1UH?{dkl%{9T--L|aN2r8`h6Fad_e&OUet3lRx#;wz50E@EEL|w zU#r3f?C)fFUFAVT6v^RC^vDQsmp2UO9`al`c+IqTS9wvyCJ`=(*%}wGqmr}yL+*h% zYZ55RXH=(4OJ^@qPupF^jKak}O7FOEq>QD!b$Uc6)Y5MY_pQ>PJx&G=XR0HUbt8SJ zH<5-Tqrrm=x4IByD)jzSPsNHo^dSnBag^=&J5oEJZ&Mr_o(W&hl1dH`D^e7ML`#c1 z<>VL2LWZX2{F*!+)y33i4519+x`oAAq-IH?wXB93{RO>;n6(}RTm?-gS3$@cz$E6i02V=!I1{LI5owgxTIqrss5ECB`(^g|a zQv}^|(5^Frk&XbM`c;oy1IL~3m^7Q(u162e%TL5#wSln%+>Vu$Z+Wk&x=hE`V>CzZ z{X*bSH@CWLyu(~E6L+At>K|5V7#Pj9vXMz;)&!p{%faT2G4YX9+l7tG2C(<$7GNgj z85)LOn5LtLT>q9^bApLBpws2GB z;|kAF#{0PWZuR_KWRwGJ!SbwroZEVNwkXcB3{M!d*#Z4ojVlLwiNa0?M$9q&*rICwSF(PrN6EPsKse0$8O!h$%V1 ztg5;{j@gp@{Zh~`%iEVsBbXZq&T@r?hFqVbR!t6*Mhx$7t&&!f>!V=ieUgB8SciW) zz^^(=wASKAU@TQFv2K__YyT|xOeO$zh|+V4YfAt~Bk>(i;dy38_=djqn%k%qy$Nu& z>xXMtaJA+&m{IelI~tgyHD9BcWANP*I1?F~Od{O8un<*88jC~NNMZC`iqTnv%@(jM z$n&l!_?GCV{|A8|W`04tEQH;) zK&$|o7Xv{>dbwVu+wc7!jfHmH$2|OEgU5a|DbLTFK}nWIuM{uXE$23gsZJpDIDG#) zJ3S@xeWuyBL~EsA|lF-_Cj1hVZ5d|WVjXIxfFmaer|5;mreDCFuCACA1LgeT0jYy z33SeB%z@|_L!}F8cnjJ|EWapw7e_D_?nw6p6^CVyyK=T^{vD;UJ`?Tb`jxhk31eCX+gnH?doyZU^_WL6=~tcg6Y%jJL?^XAy%HYHxbsyMg9j`)tPy) zRHDeSt(Sk2UZeFdNBrBLsaNV;p&@VNjAysBx)vTL*?7({cR6nDg5$;{1v9jXR*-ef zzRrwHuKe=^t$SSd?$a^*9Rfk`hre&{8X&XC#uckYd)l24oyIoOAJ4r$^Y>RC-aZRhx5{8QU8q>+PRt6NhE8@moHgy4R zr4R6CZ7dOv0DgWex6E;9G|p=s5nhF9XR2b`QZ^Pm%MxaFHNWorQS7FcOT#a@GUW?0 z2Uh}Ax_;C&*ZN=xzAm4J*C%$s<#5N!eX@@SlkuNyf&46%HMTt~++%f9#g6td;bbmLW)(5XY0bcfUMEz{} zly?JPbGu&NYn5}izDi=H5jC27=0wX{aodXo8i)!poi9|^8NwENCiyzgowAp?i!n>=R7HWonDl&7oXl6%6Y_DLJQ34J<@!Yhf=J?!Z z#&16@s+Cx(zbtZ2JQsKXhFSoxM$=EOSTF4-6Cs%5=_+q?#cBitIsQX3BZz3MJtI zbn|sFQ!2NXs06WU`YIp#kLO*Q2x%0KpuHX!uPa-WHThP()$zjd$j~PmuY^wzGjMju?ktyEGf> z#8G}sS;7t@>~KSQ8mVp>OuWD=m+kv;(tL|`#kx*4N;pMbIW=o;QLYaX5M+SecKLo) zACdT0tCth=Qn>oPMC5l_xv^3c|0fI-XLeIFokvk?O_3#Fc(5%J*D=fDD6isB&!9fL z>hzK!mntWT<@HmHl`u~9QI)6Cr&<^VQklCiC+EY9B*w&)eU`lD8v`YuY%Q@UqumMcYK7`Hd;Fz%`c zFlY|k03YoSISzQjeIsaf1c7(Cr}2(YDxVA$mhG^%I*SI~76gYP6J&+*Bt?1ux=+WB zy(ZOt*oVR@B-XlFo-aLOv;Gbdc_g*qL}j}~+~rBY2fy)ouF?6Ly7|}lLW%h>OrHiX zE|3lU@=pwCpYV$^`ui<`@8=if3w*+(slzxAVGIYT6r?*x2VYE*yQ{8!rN&v%8z)@e zfn1;aT@R_K7t?+b)>W^lDj3VP58TLSNot(jX!7bViWLGds)jvqOveq;T@z}8XwXx7 zZ0;vuDEtfH?{BlJOPdnV)V@T{tlD{K4GfM^7pX<8haEGWu27o%e!^q#wxd&ccfP|P zK)3?Z%~TA^({<}A_<=)#M6U(+L9+tYJ%`JwAg{15b#&cmp(;~EWwk}5#C9-HB^L@s zIf^m=I}x+{m(H!~wl(4jE2d|2{%y}NsLeKj<)o{1N$UlN!&)b3X7Bv9x;a~@3ogOe z8%!3#!+TckM(HRFRo^B7y6y%}a!P#^F4^T7*PG&M2g8zo3Aek`$X@XQqK7+%5tGx# zyQ6(w=nN}#2coOY9si*ET%{s3){={FQ>>@vck&W87Tf-?hAK^(TX4l9PUu(_0v8M5 z&<=5<9>rWl=@xk(@fvm>cZH@kDCZ_I?w19kHq!eYcSHB@ z-VI$gTol(G$1?dy?Op+trYC}V(=ZPJ=7DJTHZm&n-;bJZ>57!aqnQK=+`X{E7Bdwu z`(02^hcoi)&BH>$yv@sn%!({l)^Fk_nX{mV1AUig;SShFKk$7KJ9*>poA1{;7n=4? zSsRzJZPUG2<5%I$xr%rbN-fTkoGsp>fD{zO;j&BS==3spMve3Um60^{)PMCSRNcB< z^EyeJwd}2H=@e35_GQl84YI{FxJU`AWy8!2*lUn`6(Pz7_@;S|=SObwHJDo!BF-l8 zsqHSD=)1?$TeeiijgQ`);5c> zHaDc#2BbZpY?H${L-O>C@XI{9AF6`NZAnV(r4;7f{F0OzZ3$KhjV2lZ2}!uLC;ED> ziI7r5>`F;?8DW>X>NA7zCB-HT}>)8{|<16L;o0u&Iawf0({>*aB_yL ze8({*3v9!5{|g$(SN1kojYVeorZ5W0s6sq_f8{;?1~AlCB_*JBptTBq)^T8b)G1Qe6(bz z2i{a^6?c|*%cO};RB4NqaQ;QE=m9aWA7fbCBmFP z$Ib4R)mFaVseiYX>6Z(&VVQ8p+mAm`YSb?OPwB-^&iPNhdRGI0U6eD+*WaoMBgx!2 zP#^dHEo%H{VfeAt%XwJh)g`W4v%KeZ#rjhB?L;m|z5Ro{>yd4#`!?!2IXx3D!Ea9Emg-b@mvGmqrbJJd5qrJhFT5z<6MGm@U z6EPu;O<`=G;1vxJfQMP*ecpHX>dU0#_wM18Ih^#KG#=H&duSjpUpG_)?elqIT~Az) z*-2s9O6S|7RN8fF8Jb|g`y)#DQ8zhDKq%njVR9A!M5+l%-PU2Ac1r0ZMv-%mb`SJc zPPshroM@NlrjqKS@U}4T^D4-LS?i?dzcN-=z8={BnOFr#IxX7lul<0OFz>9bL8>&K zcGadI z56~N+Ggtm+`iLagRws>%{gGzr7;dVtJYu*xdfnVWK#`u+?z{AoBlshlqNi#7AGAi| zcKESoyDg3iT`p5^YhmD`n@Zj3QGK`zPg_`8T`nQdAm{w4MvdBQ>T-5M%Rk`$ycNhM zKdIV_wq31f2w<)4?F5IzQ&|jkriPu$y{L5# zDqH-u+tmvJyubZ|=GCLqYiFm6zx^2Cdz_c<8a?)zr3MGs zW#%lBcC4#)7gsks9N1*`Ur}Q%{jH;r(^8}|?RMarO?mY6@HgwhU^%^drmHJ%@@40D ziVP~{n>07?ifKbAcsu(Vc^Wibb2+v-?tBVatbyZ0D0SLGr=X?l_+S9ydqxGBud79< z)#&XT?(&Ka+n9N`ZoUJkO5jH>?jDx3;q7!7BOoX3PxPtc4$Hyn|wvc;o+8L<)51v?rZE-QxGe_(401+ zT9^x~6>s+9w5OHT6S))3V&O1s?~AOT8f{esYG&znIz_L=(c~q2?pV?AM}guoNbfo5 z2u_8_8r^Niz&Sgn1H8xQy?)e%GlInAW1Y!`GtY^NH~w^mGoEe$`$ zVFoMyFBwzc_7}3lc>+#mguvo=0YR(3Y|af?6L0&ksR8zhwfSErlv6^Y+$|+L zTsC!GZZnX*PSgs|A)TbXHunlMiKCcCMY?N{IR|5J6y1~<`~?ir48$pbUqKnSM8YZc z*hOGtJn%Hz1Jw263WqREf*{Xr)&l8+*Xf{zUXaU~ULR)%xMBEDIS)Cw13M49H(JA; zK)LQ?qhW%=bOFI{!%+-K(}ub%Z#MSRG?(Y2p!kj1d;^pE{Oa)UCmJ^qiAx!2Z8{p;or_re)%(W8&GP zg3JjK_LMNbw6GvLi(Z7yB?El{o*uzWb&wy~ zI}Z#`-qz@@e+j{!R7xs6CqJO}E=rU=Q18?_Fd;x5R)z2M_`R$G4qxX#({>5_{@(dr zb)k<+kNz8&Qex+XHkOE`l+Z&0Pg?DROvHMYDU!jU;}Ddecc?qo9wE~) zx=U2uMtL}*XU0~-bjxTt2-D3QSyEinoJh2MBw;smJl*b$NJXmv{AbB5^>ZQj@4cNM zpg4sv?%8Kkbr0Uoj&*737`fE7S-V8ca@n(tl6_B~W+;xB(!OYoiTAHqU3Nx;&o`?r zV`2V^3z`wqKKLf7%||h@X}pVnPa@y;rGr zqES9BB(PAM*Y_78M}QjcaLtr6M*gYqDwy6p6s1QOKCtjM<9j^ztR)DH61OqZq2=#( zWrjd02N{rIl)GbEbvN{ZwkU6rq*0(S-KILsO+mTPpsAwbIxDxeEhr)uZ?`a(#!#W< z!)JoA8M~w`6za1D0N^TzVKo1Y>WP)QotY*UbB=Q)|7j(7IZd2=f55oGO=!=Yj;uAq zAA`g%&(%6XfE+RF%hETe57nZvjv*SDXCgxggOG^_Dlr}0P~>5QO55FE%ZD@X&hscUg!D>%N5X2U@cu;d!9XU%$tBJAr*Askt(kOZu%>1jQch7LDO#r zpY-m+9RD^=Db_NIUJ|efBY%PW-{bbp`5&{*|5z86G(K$*Vn74TAQPI{=?N`C28|>n zKA5BPoEX(wkLYKjfNWA?ame2uDJf3K)ya-i{Tc4A4I{Jw{bFjmyX?{VPM`&z^0YY} z(69@zK^Ol)OW`pOI%XX8DaPCe1ad04nz_zvC6_ZF?)+EbeFA~@tC?!ak^^zp%(Fo6 z#ih6y2P_KA-_kY2ZAM7@+eu19LNz%S6^&$vp7|3)rW+A$CY`F&O2RA6CdDDJ$z#4B zceAsEAMkpZz5o3^)qT?jHUHQ$lQeoA5E|}tVtI2c3lJM2rQ2rU%@X<*!y!eq(8Re2 zbuAXEj+&ous`nzdOoYc07#V@YxVU6f(?0>WHe{RTY4JKBcmUZHhp=}MG;S*f(!EOaW>3Q-_>t)yFEUQ190t(x3#1Yf-<*quHj>r$6ilqqsQ zsLW_7v>nh`ymX4WT|bhNQFkikI3fl2 zR~w|sEw1&y&H#mc`1mU}%)_XinNLay1*LSj%8c^NKB6^4jWorBxnb-deSw*bi4K== z?6=ArVrxNVE;i@PLAF)FEtH18o8E`&kSUwiZ9INNt@>FAG)_J=a}6-z_-Miy5u^)7 z2&nNv08%CXT@dCT`Y`x`RCo(b`FbE(8v{+RNE0~m-T+&u{S$=Xop&2$Xq@;tcdGzu zSgwV$CzA?&bWaAYA5Q`u)sgx19%}fFKYJS%M@l}2K3kga?TCF(p9dgYsRe z+0eQ4w|%ccTb~A|O{@mAF5Mo@<0+-Da3dc^uCvh%V;Z6ZI$mm2IHzFnllN%gxw>tN zKG{^vTq@?m%?e2jIA^^oW&|Q(0=Y-fVmSS=3MVD@Qia z$}>X{Zp?B)%ZI^YHtg!_>wdkjbj<3n_VgBE^$Mj>>+EO47^o!fSyt?O@oD%R>UNAO z*Z#L$%e=vVZ`P~3PJBcpAfP}_AfSKY>dfeDWM^Uwu=n`KnvLLE+i!|Lboq@4 z+r_C)+@V1B-~~D>k~&5K$r*Fa9K(zesUJ-kizQqzP)me;y=7(iI=si%@cE-6WssPg zpMGmo7}(QjHA%}k`IfldG-6y%lQ0H<>)8e$xsqSsim8;ks-fHc(uZB|Al}|+rm?=S zV0h^0X&PSypzr0Pp^F^*Mt5d=9+CLP|$e=f{@5*io zRAq_6sIjx4!`v{$k9eruc`1#%R$DPx|KlnqnckA@J(;{YjP4rvCbK-6s?yY;y-nqa z4J|`>^A2CFJ4f1$p(Pd3q|Zj~qH^X0%;wcf4if7CBhSUDyr4ma;8cnAZ^@Bz(>p+a zGLloS0=p}unWcoj$iMmpwaK(WNZLoo_e**d%GqorU@-1l6RWzrrG#3Oq!RB6 zB~jM)BRTSNXVmCDwfhcDIqC%DNI85nWPoYXcyDt%zTEW#Bp)k>y&I`fmDkuZbrmQw zH0wnHJ}A@=s0Wx6B*vU#?5E&oRprWW-hngZ^H>wCh(RVj0uMCQbJh0e84EWcZj}OZQmrt z^tD0a4gpL^VBRQ#5LG`_z`v+pKI^Lg$PE0mvIL~3P%L5XsZ0J_fo@$@joH|`^*&7x zyoNGXrVdB{Q%X7?lm-db4GTg9f3DmZM^VgvWKBPsLC-rSKf0js0Ws_;guq*2P(p26 zIt`P8>(Z0I5o%2Qk}by7XzYK(TeP7S3m~}lL)(oF$(qJZ9%OLkjGa49$or5JW##Sx zHInV!>!Ff8_G)irtho_D8ndg(zA`^)i^l4N@~~jq)Q_@c>FC10G0x)n!+iBp{+Z07-WE$HiJ0|G zI+k|M=wtgiRY?bUi9G#Rh@C1Bc;?^$R>ccwV;vxLq+N%QhATegKtirW6!`PcQVR-@ z!MSg$@-I-Hy4|Gh2+8-QN|SWK!7ij1xuXHx?HM~84q$zY~?!brATu5a}EMtO}UP zHqzgyL881`a8Y$RUKmR2{+o+!2w@PLv-52RQmaUvUKJsUZ6WvpOXNR{Y@btDB>8X9 zT*fajO_CGJ`Va!#2}AC*?-2B;Am8PhLY2zP_f+)wwtHiWCG*3QnIxfRO0NWsrx=+N z{nu+^p2I@#-jYGmP+#c54E-1GXfBvdrp3m>>CM z`erq@+_Ja*CnmFrYp~ZSS1m8lwv26_O7Yl18`>&S{w^7hBtMMhQD`uskSP&Bw#Xb* z;=xxN=qbd|nq~1)C^SlRe6%b!d)pC+-_&*R4#U~c1IJrB)`4hzSSoLT;cZ?LZ?YIJ z@r`mgo#BY*SEc(ge!{bwnp3RZlfQnI>-iFu{N6aFjHaa8rNF&fQN2E;>b=@4h~%^A zf7eoNDM)j$y2Ch-~pnJ-9+Nm~8wXgqVHnK3fsG9eJ<+WSHo!J&}M>C5O9q^=&* z@N~FscoPMkWtEi`IkZ`7dXq1gAe*Jd%Vy?@;HKNPmm!^hM_i@G?7o`|9KE@+F0BgYsc#}YADC#&p>}i~D0wBn zQGDxY({gsa2L=WF{D#PDzWT;$j{WL(!_Gi9B?twF;M24pXVp{#e3l=f*9tZ|&qOv6 zKU>Hv<`TQ+G42?C(SkortY>nb%wZt~190>>Y@sz2wkCLQ3K}DrJmZoLNGOFYWXOLq zaufCbhpTf6(xeO4b=$UW+qP{@+qS>POuMIT+qP}nwr!o+XJ7sMswyfnqH0C1i^^PY zzR&rbx*Y%)4H>~$$t`kB)g$q!S>_1|I(to-(sbFa$a*->pqxWVd%62+-B z9#;BYi`lm8T6fIPQ z1d;IO#3L(w3bts4_=IX|vcnNaUa5HY8ClHbPetC(D+UIi{i~T2e(_-;lhQLhwviim znE74oM(b1O4F*glHhbln2y1>nucuS*Q5wJ#B0qk2*&z;%`y~kJvqgdRN_A>TGbfpc zz#T9oBvyR1?EEqCRGvj3e_5`zL&ijVp9IE0;0+JVmnbjw8A3@3PovLQ8FQ4uuOeQ; zuvV2eukMA?s%E?JaMIjD7164+W_Klw;E?bva?RF1_J66kjCQ&D)PmYUC6G#n+|IPmx%Q9)@g1n?3i{Gue8!mV)jf)pntp$4s3YWt+6>-BpR zUhO$qewndcW1l*a+BNZTdO;CKV3GhwTqp&Dz0e$)W6n{uY!)mVAUb|lG22!H-Qaku z#4;Z50AeEVTSGTq+}|+2C`6m#AxiL1{oWu(C)vGBc%!IC<_WgJ9Sq|>!)@TJYV_pE zv(k5sbmLNJKP%jA+8;%5nM|`5p-Y}A1vN#_H;0(*0M6zd*=gHTVnqc$!b0!47i;2tohwHn6?K7+S zqOlBS>SxjH;P?@y(Us@X7;k|5dCejU5bQrP_JJ#WLom9KM>VXMejL2^>#2JvRr5DU zPTzpz3+>{bPHXEH|9|x_qvENSX+Y?iC3j$2UvI*0h8oYTx@N&_$=H^M(!Rl0-|~in zDeQ~Yfr0!^2~F2hslj7`Xi_dBvNZTkKCohQ_H5u^Jjg-s@gu%m-2gyWfCyN+@M&b2 z;v|GSzP#O7XRTTBfM~tP@45Zk3s#>@h+6{q?hGXG_bPHemi3!xdTlCtXWsr?iRT5L z^LiOQgfJ!?yuAJEs;72`jSTDf?P-r?K~h&D1n{gg7)Zu-ggF4|!#A`#?qnWe0p}&w zCDY%wAwh6NCudZo=zqRQbC^V>6^0JXe?Z}9I_nakSnB9A@@pA=$t`}ooZS82&aW~& zR$0|)IDqDwe#|v7VczjpC}vO3I2d#AN|tyOBJ~p8d`ZU>OJt28<$J>4Ih9G~_VM6b zLKoa`_?b2u4hDN-`W}00pn6{JSCO-INqG=tHZQ}NK7wEukJtg!xVkK@1CBDk8La*) z8neQwjX$>qPj{}odM^+GBi=VY(*+ls$Vu82r?+JQ)rHy?h$W~a%C{NvZtJE6`)T6x z`h_XC($=ZwX|8SRc5P}mHF{oG8c3X@CUn9@*c|wV^ESv%RyJ(-5Z0-ti(Tej%-WSjryS-LyZg&f(rwZJm%L4y*3qLz~}6}pI88aBb}UkwVM2jVI88_g8b{6 zWYM-8qm!D)h*0?o$kqcF@Z;* zIa*Kg$AO-h_LUr=RgX#v_mE1{$PyM`hdJRgmayRv~&b~DVGt>wDbC|Sx$#Fs0SD9L~-{u z`oIv=phP@&X)-((dj~33!a5IdQFW$_L+mZn)?WgWq-lLxQu;GNafD)m>#!<+M0*V_ zQY<8?q=c2#$PSLLf5->V;!SAo%ut`o@LSPb$&Df%v}}B)LI@X{M*d1h2jd_>(IaG; z^i)N4Q>1$yM*GZd^_exUSnI;)_|P3SkQSnzzg{;HbCWSM{9#?jf%2s+9io7ycQ5Ig}(v;(nxP zfmQPJ9H6qd3su#-O+m=8-Tn53_{`Df`L+iD`OeJF$?5Wf#$;reR$$z_IU4%lWW2pu zyLf29EWrfGnKV(~^JMBPnm2b~C(3O7h%9h$mSmyw==NT0Lu1Wg^3qf&<3%8l^WI#i zUGBBx={tx%wZ6Ei0bMOTM}3w0C*HEB>8XI{RKG@_&V&11Q`w1O23yuw;Jp8$0Ac~; zB?Il833v3#8E!Li9az7}a7MVMClDjWT+R_@zyjAfDLA|jNx`wDB;!D(9K$;dVdk$k z;ZtVZ_)g+%rQbNdKzCP1B+)aTs*mZcy753@91p<{^)kx10`Gz>Lt zEhWCLOMb|x!ReR?T62nWrf%MGr+@yR1}S!aGr;ekr;U0FkNv;?o^0d+7gG0$X4qpN z!UgkJE4-(X7KS+ktDhxSGE&q!%?L@eDOr)vWc`m{1sQkq!DMZ1H(9dU6Tb|Nw$Rl0 zy}C`xwSYaAK>bCN(k zV%7Ma{2ju4eWe+!8TS0vlLXC3Ge&C}PTAiLIucWp?_N}XfbqQWNFfflT>6}GI&B0{ zgzT6QPWtk!s?|{;Pq3ueD7?g)lj!A`D4cvl_Dq8SG6S!P019KumnJf zSm#t$(X#`*#0efF3rcw}<+sk%pBZL`DH||GUixYJ!tkNQF?-}dE0bBp1PC`qc!t_& zftH}V@hqh~5j&03Z&Woy+X;}CQd3;q*;U}r5Y&yRXm}F29JK77`4_s%n%E@S7poCPA<@0j zD?)^|0sA##;~TEa*}aiZWZL;B;yiotnk%;%T3IfFqIyHU_^lgXGdcjM&UAn4;8a*# z{P%ASKp0U2mz)>C&Z3gJ$rTi1Ge5u8ZMn6 z?i`0VH7bIE$Co0GnM|uTvZ}7{`sN@F8j74Uy7AyEH|T}M0NfL~D#MkokE}p4)gOTs z^+4G=lM$v+#9uy@GiD9{0|C0+%9N=od6;JtU=%!5814WIC(j`|TuA{b{OSRnjL&Y< ztCw}2Ce}VH;kNQAweG7JzyFIBpY^EoMmW6UpGPXg4HXI0F8dY%8RK&6il+w4^LWKV zC>Pn5T_aPL!Kj%nbSGML#);9oM)xZrqUBJkeM8)1xEQCW_I^u*;8@_x>mFJ&N~4n@ z_5-SZLZXo4;dp@2E0<8nL32b?j1+o9QZ5 z(!vJ|(0O8_e4{wdg|Rf|l6fW$jr*6EF`VM1<2Il-ZjIGgX|FZwFeH+A0La62SDoe9 zTm6xhjVec)I<)*onlTy=g8L5cZP(<#ckUM!g^^bAdZh!m|^Xi&b0t;E9Hv{qeOcM9y(lf5^nMcT~H ziVtpm&Aq@>^a6?kE_Q_(^6xlm7OP;#L$4`Lj@4mc%K7~n6)fC0Kn49<(YT8+RscT1 zVE(psbTBOJJ!TO)0h+gSsPED~q9;VJcX!AN6tR_7HQinqaA-v0_E;vkz=d><%gHT6 zW^BR0wb{i!%r&lkf?KD?@Ubr`0!YW+s-ynxAwjqt*yjO5hUoq`PiVGx>q~6J>%~71 zUY)@WbeX6+!&vjzKPxPUcqbDGo4y)8+AWjSamIi~qZRbyFqJw}r*vH3gTHu%+=X=! zP+xag4ra*|dL`!W$9E8!KS8)eflS$CG9|C3=pBA8W7#?UUmIX3C7>%0rzNLrrEB3( z0yzr$5=s3Gq(zzwOOYv}C-L>6S*I?$u!BHhD zjk^*@iB0iMAVUQVaII{{SRD8`{aC#ylgT%Hydv=rfCywCKYj}|k;||zAZJ*3Vbl0VLDu z37)oaD#e?APwi~``u?Qr?`#Sag8c@^PIm@5s0>g5FP#MjLS_T!!oIB6pD?{*ZnQy! zf=-k^1?UH$Oe$GA1^{a)X^Rb`DOp1jYzC(a6s_hSjdCjDazWzCsS_& zAsW$EA+I?HrRKTBzT(ZpWZRFZn6Vnk#pnlbPW#AlA~WW)N(JAY0K|X!-v%j|W+y9s zGW)j7R|nsj_$JTPQn>0DcaK32NwH#qsV*Q?+a{NaO=S34oD+ z5IVW4eAiE&>I}3<(kAP?iXD&BJ~?Zp&?)#~iU*FDNl+;E{y?qdaOYjMyTn`c}sb_$#xL*u;y zGDTj_a~#o#{9hiPrmmKbhCXQ?BT&tViT>&(C>6BDhuDd=bU`s0HAjoJI5;LiLiCtX zN_qB!aM{wJ{OJV&1!5hRC&x6Pcc1bv1;D$cujeP##+tLUK=s$&vFdykV)%l9Lmix* zO*Et|b}aWTWmioi;qCq{8fVHYMuq5N^?3pIgSs;=H=CTFJr!y=aee&LC_&ihi^QVl zlWRA9A<844g_C%TR*7}yTi`SzP)NJ-u?C71WG?ki>r3Ep3TJN44_7Q z983B&`B#Th)6TG_f(0)W6ep;6yAR75iQ@+|tqa09KyFu@ROiUxlHwAWoHW45N0U_v zn~Ew)6#t6+AtHAr4yB<>>l`l)jzg+1EayDRa{(^h`w{X;jehhMYKER}Hnr9t8`9h+=#L8lSFYRTuUGI`}iuvR5Y@t?q zB-Qb>;2efuHmKAvrP>19a;<(NQ3#P=3%d62^Sr0MJ3UgKS&ujR7vSjW-J|#8>1Km! zRE%Izjo5YC;seBbR)B!LVFPvQFT{R~3b~v>^*SO289Tocd`>Fy9V$kn3ji}2JtdE` z6RLJ3lPwf#z;V{+bv$_Phj3kRZfCY_8E81YM&nd;T?i`Br!hzYdE*j;Gqw4-bOoLY zqDu~9>Rm&LhVkJM>V{ymwezLA!o^8>54QdylLGNs$-&4*(&;brv}{MQMAR$HoN;=QVpz9TCKUtV zZCnnbFt2iS$^$X=Y98kt!GYzbc-?ZspRpIMu$$b$!+Re~#zBXuo!$EA5Qd;DU=`NA z@d{~s!*)aKx6STcq1x!dd-X=J!mgtR>9~F0i2x6`UDYN)5jeLL0chp7U14wJzL$%^ zls9ysLYdvWkQu1!kosGZ4So-~P5!4_@_fYPcvh@z=PUp_wgD*U#tD-}H;BUZN^=U< zKVQ$~ATk=C8IF5Z|H-u+ql~ta{rnh&C)VQcp79VV6tC>a6a9R?UfSr^&MbTUplmcI zqXD0w1>xyc#Tx6sdT&~)OS7S5F7i}71~rQFO{R8ul8q_cnu$E&pXH#VsGj7SoM+^F|Zu|Tb}G8qrv%h+OT1QT|= zt_DQ&rg+|p0&RZU`Hq^xV}4#MNzBKl9yts=)f2eQK5d&|acZwQ&H#N(|Dy8~N)=Bz&rbUN!y=WGDoGpiWchy!S1si+2grfZF` zs%p5XbcPQSF(8rsjx8Xc2U)|a=OxZaxqlLymtCjiiZQMVE>nh=Fywq#Fe(Di9^iCW!1BaK;OqQ)VK!`cI!=== z6rb4$i3X?&^3elPDlh;o4|~fMdXrKqU|dEd#5sHuc%7C=Z4K(MtDWOkgtUb&K--2# zbF9BBPvz~46&EVvmXj zRts-_4nXhdG*s8xm7Io#fZQ+q%NtPV+-cF^WIqC`1RvbrSC~F^_ zS4JZ;b1#Jd{R<{Of6z|5RC^|tDvE>BMB(#3SC7|Wg*f0^3mozJ8Y#HdX2FOwwzO$zGK9k!($9{y z;4L636yC+;kvABbOPQ*&Ig|?d+WrH)(}6_<0XJ(n<&9q(xRUcRLb+hb3(47)wD24W z%wG)-z{CTuQ;WeI3ZN73z&l(wna2IA3BT@{*Fg4cvC;OAi=_FH;sy+zMKk#8WS$sq z=1dcT2ZugvUO=F#<%Rnvtfz#;uW-L;*kIRQlGVRO-|`|s~Q5!^Bi zz=$dDEgpJAMa;iLwU|q*F8lTyjYxsHOki}>^q&7Fknt8pDd(Snf&5<*QU5DsaC5b? zb@``a(2wc+r!D%IO}~hM6!<|%q|SF7QhRDx_bW@5lkM$hd+|wXz-xEmkrje6aoAo# z2Vks`7Br0KU)|RzPj@utc5BN zOiR_3)*ghkTLlqR@|=CJ3JZElcTc0{D&ascuiOP<;xC`Vqsi!{R>sx`%*O=Hq`(5h z7ipFCdHXZye;0%%bq_IP{BI?{Q`-GOIMw%~Vi;xVX{IM}Sx%}$O|PRd+>f&TlF7D)g| z1u&SEOPW;5a{$Qn|K5!Tf}|t-&$FixZ!7<(f8PLa~1Z7JD z{7=xQs?@1f{J$6kU?A*&7Z)>EH%C_o2U{0L6I&~KBWF8$Ru%>`PqWJ|SS>WkWhT8X z7b8OmEUd-7d=9wN-@D#m}ONvZcc!em# zdq+xn4tQ&QTS2>aNDo5)O1a1At@_(n+Qzc_4~QX7;RgKe6NQIc0^Bd?{+&@rZ8Pr3 zyKg0Q8BC%_f;{n^>7IjSC9D_~DE_?A@jls1lxIsmzNp<&!wW;f@K_ANSt>F1zTw|F zFx>8=&`#^fTp)+Py1?^50BJ~6DN0HYCeWrt{J&w9?6(CMDDwyl0Y5il7R#Ep6_Bs$ zrm?xD%Izb$hAcKKDN8BBP5p^Lg`k)|c05FDab;wpMXlJEQuersj{5BhY3wp00$4;P zvhBd#>+S2#XtoLShV9avGMaT|I4JX6+0e^@?F?BDkhuFl_dAV@0B}vy9_^aExZ8(- zAc@`Nu0^tjB?X0$(ZvVRh9bI9^c6C+q~#TH!`-irEh@LNmo39IUm4M=Fy z73;7&Pm60GDB2e*QNp+N6?#0AT zhB^}pya>06u}MiS+$Z|6l@Wx!orJhy7w;G4VMZ9dSnI8fgmW;u2JY(Tqj7 zJ*qF>ng&5dc(#fYLb0i`OHs(Bnpnt6SD(2DP#)fTbe|kTruCK8V;4>ti%{2d1Tr~< zQbdY$hnz+qAYq+Da&r^H{N>etuBX6}%yR}4`AZ;Xi)i`ZfP0NmPo;!t1vBR47oPP< z30?cMr7ZT=r)^%KZXNc=P~BJ6K)5ZzmWrt>;f3fNhy9f6=?ymj7WD%Bwi5_) z)x*Bye1{s5D_D%Ih$<&8W~L`2z4gF<)gYVCm7Y3e#`PHn1^&g%#b?9?3L~FHdt}bLxl`23ts&}vP zX=+YTeA86>@$GS#xgRSEOz4R&+|;yxL6nif4-+^Nb%B(J(t<5lsl7sR))&Md7rJuu z`ZOR002y5=wzd*X{(9s(|MWM%vw!BqS`O|dst;Us%mBj+JA2)OSWF%AsY0LOsDJpDUC1(M^}&H`V%lBD?cVDf)ciR4ouO7M1;&h0IzRI^mDK9VI!YFz>Y2W`w91?5O(U?F zslcP`hhXugn>gKMXjwcsH`lhMW$oCm1HKEfQpEAXKA-n+#$JYMLz?RkfyY{`xuU+m z;6DVj+@5=A4*ppQwGgUGcQVnKHFhEIh1+@(2I@rMobu`1`*A#WL%{$)V#Hzl8}J9W znvvfI9e#LP3JC3E5H=$Nf>+qnUW2RJAT z<>kv1@83-QijVQV$hYKrD+^O#fmPd1CxL3@jlDjdo{lt*$NSDJ74TAyf_Ht6>rgAh){#Pz(UDd30+7OPAQ7%v}{eBpo~;~C`F-5An#@NJ;`kgLTe2zP0SfH z!4v&i0xAIqWHd2p2K9+Ebi{Ni6C!N`oeP-eBI$w%v3-0kUQA+Rt*%9v0N^%T*hH<< z;mwyPpd$%tQ7 zU3QA34$@$g6Kpmr7TG!3I0jUY&bE- zz61GpV8!G~D(_c$$mx!{G6F58kA?z31PQu}Yd1^*oooS>$eCY7CZCMacQrV73DLb% z$x1t29n41Ro!WaRHxjRHGqSt>_*OF>ocW7jE)OPzoXu(Se&&tyUkD#js!L6gcC0sU z)*WGb6<_KnfF*_^{<;CLm@$@WoJUzn!Fi!K9NO6*jM*5Wkkr?DvCnU#Tm2c#Z99}% zmDy)1y%s)*_b?TS`#K5qjNWlP%&02r`QG*EwV9|z*w8TCBVb=fGrOF-INU|W0QD{R4$#02DMk-GSCX1xGb6Rg zY4mg~{gQr8t!&1x$OCzpcPdallw|tdWFf5Nhg`*|v*3^6SKN`;9IOKeoP!&z1Atpp zk4x0gDArFM^3UJtet$G?-Z!0^z5t87^n4{MYt?@B@_X>v{492H^L0;G)Gzcb;@{Za z0R~>yfYX%RBP{$@dFGw03OQ33Fm&zqaWEdPzBCk#H1eHiVv^C|k&#&^=SD^Q+l}Oi zS=C(wU=Nf{YDdl9I923#YnaYpAIME&M`_h0K35#Nu|7Kx55m@w-YbX}#7)^<^WYEC zR>fX@5Xt~j;vY{(>|OI9m!J;#O~qdJpbhwH0JUcKvG;lT6 zCX1s@uU#sS4(1ftNZ1d11Lzj?!|ksF{L_z~Sp&pvmQs)r@?chdTnnM`<}gxlJvGkDSLy-uV$e+f_=OCc&o-c`ev0k9W?rA6BERx(qWI z+68wF)0&+Xa6ppVN;UTO4|M@*&2&zTNDMEld`k9AYODofV4dq4rrGrp_h``Jq;=jH zWks}W*ZJ$|Ewz?VRExpw;Q3P!VAko)CP-6JSyEw>qN%afRAzj}GwFQFrL3l`t_*un zUfW(??X4+)4B-^;(=p1wW~D1V1Pb(1&K z*O%A!0xw@qOtFi9!O940vZ1Y5soDY}1kqUw;YnTtXx$6*6U(q;A&av6R;^xL!Zy=20~i52B+{&?{hU*S4P_PNVE0 z(k&vSt8CDgSMN)YTZzO25U#GOEU&DoDc$O92Eixv6IC>k*(=IFCumI9>L~9lCOC&v zK6MK#t0?`YtD)M^{Jo76OFNQ?M2E=%I)~oWq{UWEUsJuV5<8 zzW3v$_8bJKf|K@Jdr(i0VzI2de@~0wVX1s$j-glEKo=3eu3m;1;PDk?cZAOVl(eKS zEMoZ9sbQs+iQ-h=w50BAx1erA>`3Yj<|xzvE}ElOv!z2GdV&gDUaLi46#@Y%b`buC zZnD#`*kWH*+SSsS?=H%|SXz$fX;p#8itZw`x4f>iTY~O9gi#&(Je)UiQ&my3+L@2y znUCNC`J6|EK3G`_pxdD$O-+lO{iSB(#K8vF=uloAyzUcdAGW z0%bD#ao(ET+tW%_Olz~mk-L;g&4?Fo{5qKgh}`DV2Zr3>V{~7nyMzY z`I4A`eZl5&o4FjhG_dtP@byxJ{n*^h1gML(?Cu-x{kmcg0AI1&?sneK92s_*jbkA z*N>+hBL0rhj%lms#!*&g(NUf5ws;U$6IHH5*T!Lgof-%<3g{ZJ_KRZHxk>WFxwW-qH zXo-Ibm)5#OMVIy@$)w0^dJ*0%Vp^v;KY8j0>$p7n{4|wmdx4gTYFSNZ)zuIXM45P)YKH+l(Xn>P*KggOkdH_Ro!gw zu?6eaQ_gGfa?;-5_G>BJt<+!ptNp#>BByjm6VUGeso{N5U)AF9wY1FH?BArmDYGrQ z^)NS?mv(ym#)-M3=j?JeMQh*9SVMf1*E!q?puA7Ne?DwFyqd6?@u99EtufU&t3+?m zn9^a5Ol$JT;I&z(OxJ#DXr5|!&={x;HP2gHUc+wCoHStfnYm0}`!H{rQJ88uwm95) zaCwkzsac!0ui5c;^BMCaMDta1Y~Nh~>CP?Lt@s%HSbV{~QEcDw23&vr{gA!><@OT- z__*o#DfoE%sN0T?c@eD5X$DxITrF2d{iCi9et!IO*!{@?ME+1-0=#E`I=^P#YC|e~ zIDNnFOFuRy06<)Jfc1$gpaFl6g^3x^P8Y!a#E6+x*JlzOJ>$P^YRCKJ90{jt8g}K! zlzp>MzWQc48y~{Hvhmi~4_oou4tNV7vi*7n*W8b|_O==h7@H0i1ovLh3W@^LLFYKm zB8h$F|HuHGL%LFI8E(UWiMR`}(+dYV>i_)Bn)%E?%cR2Jgk33iiK=^$ZXzBEgFNv4 zX?G=c7jVX}14eDeNyb>wRVju6^m4R~+)n*JI8*LN8bvHd_5C|m`6BaKPT zB7WV}z9D-U;iin3ex!JOTIU|T_?x~JgkAEQ`Xtva(@CXrm?G-<6B(T&HJbphKib6C zO^wGOm}~?U5)YY^lUp{Be1c{qA$KHjN?t0|{(-rxv(4MTGDzTyHy$h&uao75Wkcak zo&S^n$7`)h>8T8m*su7RDq;&r3t}eO5O%1u4bJCtB9zM|EW!;q2mh9g4?9DycN_Xj zK--A$1&lU>Y^d#eX#UU)5eV5=x%fl!ReeLGrxL`tSQDf+s;F(~ec2qUof}~3^?!UP z)qja)5*U92Gb>>-iF+8ghV;q%Ykj zkiNq!1iEu+9Bw%52)U2VilMcnM*T;u&gw-FTbjf4?`;po?O*1v&Q+i4{AP5p+&Vbd z{K3D-Rwp1UL~MOe%bfziqqOIWQ@Y_O0@+0Eu9anv48xl3&roYWWpZW&$DNPW}ThajbljO?C7Xs`Hwc6C+cUH&Ewr;g(Q+PuptMne3Kt_xWW+; zqf?;-`*Gp6K7#_7#gx0{=18c1VI})Y20b%9_g!2XsgV78)dh;Qi9izcJ|@ry4oDA4_C*A6(2m#zihZ z5?H8VuFYsYbCW9ED7KOgFItHGMxr$^Px&SOCk30m#(C&Txn3T8*y!4os7L_@0TkZ? zp4aAgHfm8%ieyje7&djv;y#?<7efXp^^Tc4xGWg<3&vUgWq4&9l_N2=mPDqy&$FWQ zxFB=u?-?S1d{oqm-tPr5!nEfjhe-6uY@e0Bs5G5kx?80Ff#3srnh+!bfU7^2O#YpUJt=w#YMtcZ|#KLu_^LKE?qWZm?Cw)b3 zaOG#vej4a9Z7=qp{vCobZQ;ee9$rYM6=911sM;N>Q4hE=_9lTPLEjTtB!^8FSwecdga@&)E1t+FZ$5B#O{Bl1v#x!Bo(z>CGkx3jU+MJW3z%)iJ0-kDI|k&ZwUr4gW_RjQLtLYv2i+JjEv}~;9+mgdXC+G1K@!+j}3SIdnZs#?ewet9nNYE)v zv}_n{DY1R+36TIYd6{ru40E_VGoXi+ap0m~0PcVf_HapTP3~KClqrQ&qkIGqa%xV% z+#x|@C=v$(ik&r%sU>TD*>oO9V!TqpKCP8lT#!#{z8NocTMP2~T-#v>Df!9<*>91b zIC&6iIp|N53@{ZYaI}oyR=*&UC7yMk4y^XM7kv#T?N(+_hJqkOFJN8OHVPV@7%eeW zDckw$%{j*8l_WhA&rbYldrY!|ca`4(oSV4g9alD=_7_KJ@(5dxn4kU&W`Cu|a_``h zq3|RQ^IgR+((PEina%l2#`&l(Es5wo|H_v{<`JZX%tVIONU1z3sWB5$i%br^VUCkGB@WCd{^lK((~MW zj4NEe(_C>Xl-tifk8#9K3muC4AE)2$wWeS?xG zxn{hJfYo6m))-l?k-RcR;I5Jm=4{7aRRmAtk=-&}0g9D!WEEnX49#`zDO?@(UCze- z^ou{G9BoT&RGifvoBMjdaSxIJx)}={grGf}^LnkgCh4G=WvJ-WdgOmg8u{w|VITa3 zWCCl^PVWM2f6zhS67B1VfPqHnOXv5dCR-PioL%qgeVEzxju*MR4bPU2u1in{xc0YU36mV_ z6UWO3jWf-`c6)`aDbA+5eE3KeIC1zRWGrQTQ)LTdh$nuppR&utgs)E@bMbCE#bS+v6!& zls4E4;<4s3Sh^`Z;XtYZu!FBtfzdn3`*G9eU>r<=n@?B~kgyx}q60XSG~p|XVD%F` z3#3c~{MC`51yFoV0}*^_Zp&bDSH##~7s2&{0!O^xudXcu9%`3JjVPVND>burMw5SS z;EdV5+jVUfIIr%`GY;Ov6>^^XBeX0RX@}{U^3v(t6kD1>!0Sl?_z#7!nNF~QbbyU{ zTiZtB;4}#che|w%*RmDieJS9L^aVxxRUG@7{3%9f!tYfvds9_;>ulla2Ah42*wRs? zXTYm2AApWY$qr=>%G&tSpXnuG)B^66BJfi~Q{&ZwRxA+>=E_vGXX6dwAAgZpzbdH( zi^5+i`BzhFNYiHmpowV0Eew-?F$|iznYSH_$Zf2;>!KF_riEjKnM=M zYI7#52TDE!OzSy5D~zOa!@2T7KSHcIGdt$xx~Q$>%dj>6nR1$NL&Vy`Scb8ahWQit z8V?m-K3JV|6N8i=sZmeclK{Xf|QQ;huu(RpUp+!7!RR?x%c-wz9X{8q^U(`G z^C6aE3V*|$;D^ABi~nc08M`a!-g0OIi`Suh#;H{$L8~MCEs>zxJoJpKxGT`da{^-- zqvA-u3)8EN#31rv_}u{$D@B|uPrjp{%ZXY$KJd)~s1y}#J=A@`s9XZ7_O@xfktS9- zzSISA#*yk#g3-fTf`U#pT9I94NHch4)S@T}>ICJFN0TYcz)bPBrL!Up`1s+C729JD zp75d-f{F*QT_XaM4#FcGaCrov&4(C$33931qg#6PCQ*`uszD24p!2#}a!QlqCGYg_ z*~N$fdLP77r^t3x=Ue}*?sEr)I}J6=%{s*2Bml$v37XtWbzj9FRwNth1Kqq;5{Q%& z{f;yIHomKh+~EkJYgZSkvE-YBvikvR<=_1qz>9G0V(9?c_|bhMG(%A5q5?X$d{U<-mfYIm`TW%+Q!}WQ}gPhWX>B#va12#*aCf&Qs!(6kaI;hT@uq{zN z7`g~!La-^L@oy6<1L`?uX&`*ZUJgrkhM1u&I3OMa)%ndN9Cbt;8~H@ZEiHAu=^$_g+CLojl{d&ChJNnk%M0g`;Nr~uFVGhU{0KVXg z?78mA7NZWVJ|R9%_12AY_fFM_F??{k)`Emng)Wmpx>78vRe^ED+=FJg0 zr1sK^-rkfc!^QO5ij>QE7>|Nsz*9lNh_kO;wM{bbu$S$mmrseRSVipGZ<11|NyeZJ zoIw557q66N_(H3vUIFn*HCXosKw>n^+AyvU7b=OG`PAs&Dao-^le}{7*-Z<)@||TO zX0ebWMmI+gP^gMo-{@(;Te(Z$WdoBg5nq4h{k1es z3udiJR`$N39YNJSL$b|Xx6c*&vMB~df;en2FRc?eT(%V*+_ceJkPmnDOaPwq``16T zTF%@Pa{Ep&1kSeP=u`Bm>co>@iI4f%*X(uC|#XaArE!7;L$;N@qdTrrKj!&f7 zALyd~*(?(a_>**6<=J`dz3z$juyr1A2X-tu*-_D3b*5%I1rv~}d9Z+QsrO#mT}cbA zTS~29b~o+e6E_WiAxAKSd{2q7@b5NLZeZPvltf>? zGmkKz?Fc_qsYF#Pe~$ABM|0_vk;0#B^U)w*6Jc9X4;k5zRbrja7-tB6`YjVi*qD@w z>DFltsEHoxH0o?K>$|HaAy8(^QGFxy&|Mqo`h8t8t*c<=J+MC>SY28Dbvwxi?gm_4 zn2*XGo2-0woneW&NS1%$!#Sj57q|O1`*ujnylu89dJ)mGIjqk}^Yq zo(?)~4c>pR1>Vt6e$c&#TzJmam+YV?(G;sInE-lYD%%e0mj&*KeL3`OS${-(I$%y1 zdK~A$>j0d8+LwmlJ|>d2f7C4b{u^{rLu2SpxC3|+T*{YvtE z33~P9fsVrgpJT|_N2&HX2`@_1@&R8SygT51s+WIA8^1`ow~lqAM;@Hyjadrv{T3+pxr2_ z$3tI_-5alQ%i7o42u=rB{ezd;oU4t?FN21)zs$nyXRh6o{SzBU<6UWjdz@`^yI3OM z#UOv1_8e&QHG1~sAtFc55Ii9~>mSvh2p+~ojA`lCOVql zNo%=NqRx@z$!1T*XERC4?Y`;b&nFBJdaTzIb0yy!QjRPU!@M>&9dryFJ{Kg-uO&47 z%BMD1Z(t2UIUiMIM8Nmb@N50srtPJX#ngX{ERo<0FprP#h@r!qqno3ejeB&@$tT1S z0pHmn$@h97t_gT)_`xd?VaR&2zkk5pCv4;>2s^c;jExzk_$TAL}H>QO*V|jv- zAH1T8K$fWH55)pL@|hoBrqbg$OL~7aXG@RZrlo5*d%8pT(XN$(PP6>-NlDykrHOWHTVTu0=tyxOpG@X|`bsPVy*(pzH=9&t1DOzh5!Ju$+0 zWF+&zoe#Pj{XI4kzML?U71yM?1aEWDV&W3Qe@1dK5sLX8T2I_6zda4%OJ(0mV%$|# zHQ~kWHSQ`=9mgqcPXyb3mZ&ZOeXKU=fEMP#{~kbAZA&yqSfZN^{B?i5R6tPLrYFT3 zdt_gY?v>B3kKga^0xbyd4M%h1uA=HN?lAO_s<*3dm61q|+Vk{hC>26b)SkyayC9+l z2OaQr4L0(f~It>X2K#B7tB%tGk{-WPjy zs#V6-pM_GPhIzD_$NPVxI1Q17&jBC}D!#r3B`RSpv;lC#j&U#x6Wr7W#7|{#dz|=; zfUy({lKsbrRtgRcZi6@E9c=U;@=dP{EYEfsvJTa3W2lJ5N#qBwP8wb)hg1ffe zXAP(g?@mbh9=`!+8oueq>Gj-o{bW$l=O%<-&!Gln`B1bsDY=j>{8Qo_aP%pM6J!rr z+pALH+G1+eUQ89NF9j(_KG!&ldriyF0LeGnbEQ{Q1k8WpQ0MbvNmFEhwH2p*rH_ap zKgDrIj-)C2vk5v6;TgDq_v7r@Va>DB^)x!aXueJ)Zu(0%BpQG6fd`vgu^GbO*@D%Ya|s zjBL^8aQWeUkY>;a4#_dWvZwcds%?pBv$@S6FMcK=DyB)>V%(?y`9;yeN9@JY7tf;) zUfu9&7_7SA8C2%lSU;2;_Pn^>ZgHDOPF?fpNYEMrzGnuo<{P+B`h~J5eDW(;&m29j7nrKrY}!@At~-2EOAS^w%q8J}?mi-oz+ZEzc8I|=boHnwrH@}!E$cy(i7e-sFOML>EE*_`dv@ja%B~G2PXw$PyEbrD zNYD-7uOXc1Y0@b>VmRGx65bKRIBx|XJ}+SX0Y-)|1=?lU9^f~pxmuhA7x1+Pa9M=ZUe(~n^p^IZ>BMYD59l|+ z8l-sQgJ~ZMAi*Nn=F32S<)>BkZoCU=8!*ayieX%&YagtiEUd|c!(WElg^78U0UsN< zwvL|%LUp_dK73X`ww|H=)p&VrJz;;bmWCCUa9mW=pL&*F-Li#%e19EM(=WLRIp!$z zJVi%vcz?$tMaa2ukCuaWPr^#!rT|J+xs)#@VOxZ4pxf5~Pi(^LZ0PH}G3QJHpK~za z%M75y|jeE>&KiZiQ%^yV1R$RZ{$dy*>po=UlMFeRfk{ zCwYAerGJ<&M)?3)@8fRFncshFk6HhqJ!bu#_L%h#+GEx~*&eh0VSCK_hwU-zhuTAt zot*d(rKV#K&vLaoCv*F&d)_b3P*QLCPf??|6_UeG| z=ki;?*9NfB{w82J==n%|!hX0f0HI9~x(ECX;C~GKEkXZ7I5ofqfct-t8Ki=a&D4;apE;h=%n;pNQ>{h8bE3En{fALZ<7u`C9rM6OM7M$?a==e0isBdv=*k3whI5mS;;Tr-KZfpbA6R@%Q9*ygH zkU;pImGH@5$o2@!m}!4s?hEcqOTIY)HJwsz!e1eBYPri*7PsWf3A|gC&**t9q3#`u z>)V7PT=A^rdt1t5Kvs(dY@COJxL*!ntos@jS@ysX-gge!HFbVl`QSLN^V_>0jOHBu zM{{rssrm?2OYrM68rNyIrbz8-fhXx&1y90dhG*XEqjJI6XI6hX`iVG{oG@YujVy)C zF6N||lx^%Ys8F)0&p={32^<&UBI)>q$IXcknC>C6iGl$y-t8_lH;eIE4d4jS(0yKI z4++cI(03n)eZPjazWvUnE)C7HiLCYj{<`004p#iHw5=d=4u9M5;9wWli0t;~#YwO} znM6MBHoQtrDcygz%c(mZACFV0PZ2r0oPxQ939@sek>-%rqHV9l7mFE;UJ>a&tcmtQaBe-;_%8z)%?WwVm}C=ln)M+ zbUg8D7HCO$k6FWQd|7}j|{^LFh zp(#M!7H9mSzA{z3O?!Id1CT0N!4$e~UKy3-*{v3)01V{pwNW_{+3gjO5&CCcB8 z3|y#}=Z|9}ycIo+c`HTcEj93#$-N)=Duc)K-C}=xRUVVD*v7Uvlexwpm~qoRHu`Fg zGUxtr(8ho6-*6KlZ*ND@ip5>v!hO&V+rU|c z(Q~R{-+e<5cN(Boek*C{i5@&xJ{~yCuU(2#CiH*lh+9Q_{y}FsM`UZ##jd5_^(=qh zxmq4E&pTIgD_tFjCMG1CS0%ZiXVog#Jwz6fCwdj0{mQ#8DUiJU0ld4v z9FKpZS)!MLu|FX|fYt{XNyPtxiMwv>xp;h@ifp^_>KYY8TbT)&F6s_5j0yc-OxKhN zFrvv`XSk|2e9{(rlBmm{z`M4+>DB>N#?x`VNY@GcsXx_!XNwpQ>lIUBBS6r}Npnk>fJiR{_Tx7|40wh;GCt5b8<6rcFO@)b(V942+qQD}edSzA1o znFm+k)8cQtak<$yn6tAym~K0(P(FVs=E@^;g*-CnUo$eti4U;R{Oi~n8Km^poPAD` z!!sN&27C!avP~9`rr2q`d#;Sx9}OsDwzJoPI<7cSh7cOR%G{tSvA|4PEs#j^O_m63 z?Jl4E3xlI_{qfEySRZIRV(4LC_+WVwmeOITwQXG?tJy1BG@Vb2?Kz}9KnQ=F@a~7@A-4 z9FEsOL$XDX0ow5=gV^E*kGy|I9=Gc$|0PyK#|k^6b>4ul(jN{je3`{^{4&$q9SduJ z74+Dh{uE1pH%gAh_msFYCRQ*;&*b*A7A9LDAmwEiO)X<`U_QXs%$FH_rV#5L@=20% z0-@oCd;^kl`k<06&i_1Q^x$)?_5eN~c<8~I+>5M*{c(aT$-?ZfB=UdDVMOT8XVW+> z;}4@#_+>!Tk?y0w8G3FU$Y32e!BrVEPMAzC7nAMEo_LHa@m_ptrRT`t{T3^f@ln8d zg;3!&{4<=cbw8U>qveSyx&uTC#-0V(|I_)9SJ!s>5O9^e<_fL7zyA%-BVYafZ+MbI zZUBG7^BAN%BI{s^Z76?A#q%*KVSCUJ&tVx)z|1m{9uHjiXOY-@>CmI*g%8~1)O%;T zQIPjy?Kuv-zplr&Ej&Tp$acG?k)YM`T^`BDy)}CFfRa za%{dkGng;-RHmG7G*9^V^1#@1YR(`_K1kNs!IV@jKE{5TzW>&G-Q_&XL!c^xDono0A@g59LAIe)Y#$O7468x)}7UndBtPrq0 zhnZEZIRf%o-Wov}a{{b9;`Bf5#5)hi%h8lu7?gH`(P!j*8p)9vT27r2&S^7dak>l* zH=VyIGCNL-2+f5xuvyg5Czx^a7aX7Fdp48wt)NvCz4L!msCQS?a&|w+L_>D%f`P7J zn5xxDp2FdXLn*O+IvvI|nUBthvjk9@6Z}3UVO_!*Jt}J0cicbTjQ~Cp!1U@fR6sx0&%=3JRel+wtQ&M0 zX79$T?PY&YST=$`)|*_C!p6{p%%mkb@)sbZ&jPh%?`9aOsuqUG8eme`zHUS*Us=Sr znUF9^Jibwvv7J?WPq39$I(!$5mo0!<9h9ht64eN+7)3D>rUH%E@uiJ}RFz z$y6>57*Alk$`9Ulp!eTa_SJA-os{=V8iPAR0bhTYw5uB1cap+3dE5qVUtDVWtE#xC zmGfX0^4_^fvDFOq^%Gy`NvAro4bmwUP4KXK zE02$V5&Fad*#0(%Pu-2gi_Qf3y?e0Jz4m{~D|noTE8jMb2I{P|vfB6qjGOR2HB!DB zi)qI<80Ih`YdrC3yR|b{A?`ZA^gG2Kt_TMdw?i zI@FMl3gCO4TEKZ8RxW7T1DuLNf@XlQ-X{Cd!0HmS=OfWNldvu3hBB+T6^oW$U9f)z z>j6Cj$cj%JkmV(DcJ^WyzB3!wmrcM*0pAMf_fN_56fJ@flm)51kb0#TzmbA(pfIVx zW<1l`mrp{7O4aK`7|vewZo;p6%L$c*6lOsB`Q8~LrEQ1zMc#Be^jznQVfwh;SY z9!lY-y0Dd#vYPwUEq_fNB&+(s3|N0hFJF=9CbAEGJNTfl3t7}1Pl~GSA>WZ9d;()G z!6Q1AB@e0(v=`yqkwd;0mH(A6V%0J1yAl}tcKMpOPp^6V_?ovrgNzDXcqwS-#GiB^ zBSoN(0Db^&AGmf1X93m-BR0*@?(;>$8YcI^T(MZTwj^vC?+|DU$r83MoFso+Jhy!3 z_!qzFEcsTS`1{{>E*-JAu|}LDt?KhCtJWLtN?`ST7(C5P7(eW@%JvDv zzHI?~T4SV@yx2}VGzYhg+9)b>IE3qh+7V8T&n-F>8!mYUez&{~ zZK(2)*``Lk?wDB8oVeDQ%Hn_99NUw!Y24Z$iiU;{Mcp;GIX-d^`?d~f=%a38kFf-& zOl8NWMbEYunLSn*v5yU+w6Ngrxtdo8eJIT;ult2Z0~d|}eVyQ59V1K5i`J%A8d?5; z&)?)P42+{2LH@?O-xd+2gIO9)#kK?~=^AgehnNcEb?PUFCh%wEd;Who*EqLj8`hrU zL}DX8`M)|??7lvh$OY|k`WY{kNpRtrAA2A05CyVL#*{S}zr7BBDZozIAl9by61l!^ zH0^8I3JmnHuX?+c8)cj1vu_m#^L8nwZS-pcL^4VtKzAdu_sF;E2e>;9rP$)VcLkj*@L#~=f$x(kEVhUc-Ez{|EVs@l^I#4)DGfKaTZ^|M2;Yl9KYT?4I$y}fN zez)X%WY7WiA#!asa_SjMdW)

    @@ -490,12 +492,12 @@ executed in the Tk namespace, so this file is not useful for importing functions to be used from IDLE’s Python shell.

    24.6.3.1. Command line usage¶

    -
    idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...
    +
    idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...
     
     -c command  run command in the shell window
     -d          enable debugger and open shell window
     -e          open editor window
    --h          print help message with legal combinatios and exit
    +-h          print help message with legal combinations and exit
     -i          open shell window
     -r file     run file in shell window
     -s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
    @@ -527,7 +529,9 @@ and screen will not work.  If s
     IDLE’s changes are lost and things like input, raw_input, and
     print will not work correctly.

    With IDLE’s Shell, one enters, edits, and recalls complete statements. -Some consoles only work with a single physical line at a time.

    +Some consoles only work with a single physical line at a time. IDLE uses +exec to run each statement. As a result, '__builtins__' is always +defined for each statement.

    24.6.3.3. Running without a subprocess¶

    @@ -688,7 +692,7 @@ are currently:

    style="vertical-align: middle; margin-top: -1px"/>
  1. Python »
  2. - Python 2.7.11 documentation » + Python 2.7.12 documentation »
  3. @@ -701,10 +705,10 @@ are currently:

    The Python Software Foundation is a non-profit corporation. Please donate.
    - Last updated on May 02, 2016. + Last updated on Sep 12, 2016. Found a bug?
    - Created using Sphinx 1.3.3. + Created using Sphinx 1.3.6.
    diff --git a/Lib/idlelib/help.py b/Lib/idlelib/help.py index ba098ca..3ab4851 100644 --- a/Lib/idlelib/help.py +++ b/Lib/idlelib/help.py @@ -26,6 +26,7 @@ show_idlehelp - Create HelpWindow. Called in EditorWindow.help_dialog. """ from HTMLParser import HTMLParser from os.path import abspath, dirname, isdir, isfile, join +from platform import python_version from Tkinter import Tk, Toplevel, Frame, Text, Scrollbar, Menu, Menubutton import tkFont as tkfont from idlelib.configHandler import idleConf @@ -150,7 +151,8 @@ class HelpParser(HTMLParser): self.text.insert('end', d, (self.tags, self.chartags)) def handle_charref(self, name): - self.text.insert('end', unichr(int(name))) + if self.show: + self.text.insert('end', unichr(int(name))) class HelpText(Text): @@ -268,7 +270,7 @@ def show_idlehelp(parent): if not isfile(filename): # try copy_strip, present message return - HelpWindow(parent, filename, 'IDLE Help') + HelpWindow(parent, filename, 'IDLE Help (%s)' % python_version()) if __name__ == '__main__': from idlelib.idle_test.htest import run diff --git a/Lib/idlelib/idle.py b/Lib/idlelib/idle.py index a249557..141534d 100644 --- a/Lib/idlelib/idle.py +++ b/Lib/idlelib/idle.py @@ -1,11 +1,13 @@ import os.path import sys -# If we are working on a development version of IDLE, we need to prepend the -# parent of this idlelib dir to sys.path. Otherwise, importing idlelib gets -# the version installed with the Python used to call this module: +# Enable running IDLE with idlelib in a non-standard location. +# This was once used to run development versions of IDLE. +# Because PEP 434 declared idle.py a public interface, +# removal should require deprecation. idlelib_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -sys.path.insert(0, idlelib_dir) +if idlelib_dir not in sys.path: + sys.path.insert(0, idlelib_dir) -import idlelib.PyShell -idlelib.PyShell.main() +from idlelib.PyShell import main # This is subject to change +main() diff --git a/Lib/idlelib/idle_test/mock_tk.py b/Lib/idlelib/idle_test/mock_tk.py index 612ea1a..f42a039 100644 --- a/Lib/idlelib/idle_test/mock_tk.py +++ b/Lib/idlelib/idle_test/mock_tk.py @@ -1,6 +1,6 @@ """Classes that replace tkinter gui objects used by an object being tested. -A gui object is anything with a master or parent paramenter, which is +A gui object is anything with a master or parent parameter, which is typically required in spite of what the doc strings say. """ diff --git a/Lib/idlelib/idle_test/test_autocomplete.py b/Lib/idlelib/idle_test/test_autocomplete.py index 1e98590..002751e 100644 --- a/Lib/idlelib/idle_test/test_autocomplete.py +++ b/Lib/idlelib/idle_test/test_autocomplete.py @@ -4,7 +4,6 @@ from Tkinter import Tk, Text import idlelib.AutoComplete as ac import idlelib.AutoCompleteWindow as acw -import idlelib.macosxSupport as mac from idlelib.idle_test.mock_idle import Func from idlelib.idle_test.mock_tk import Event @@ -27,7 +26,6 @@ class AutoCompleteTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() - mac.setupApp(cls.root, None) cls.text = Text(cls.root) cls.editor = DummyEditwin(cls.root, cls.text) diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py index 62727c0..ba65100 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/idlelib/idle_test/test_configdialog.py @@ -16,6 +16,7 @@ class ConfigDialogTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() + cls.root.withdraw() _initializeTkVariantTests(cls.root) @classmethod diff --git a/Lib/idlelib/idle_test/test_editmenu.py b/Lib/idlelib/idle_test/test_editmenu.py index 1d36069..51d5c16 100644 --- a/Lib/idlelib/idle_test/test_editmenu.py +++ b/Lib/idlelib/idle_test/test_editmenu.py @@ -7,15 +7,18 @@ import Tkinter as tk import unittest from idlelib import PyShell + class PasteTest(unittest.TestCase): '''Test pasting into widgets that allow pasting. On X11, replacing selections requires tk fix. ''' + @classmethod def setUpClass(cls): requires('gui') cls.root = root = tk.Tk() + root.withdraw() PyShell.fix_x11_paste(root) cls.text = tk.Text(root) cls.entry = tk.Entry(root) diff --git a/Lib/idlelib/idle_test/test_formatparagraph.py b/Lib/idlelib/idle_test/test_formatparagraph.py index 938110d..068ae38 100644 --- a/Lib/idlelib/idle_test/test_formatparagraph.py +++ b/Lib/idlelib/idle_test/test_formatparagraph.py @@ -159,7 +159,7 @@ class FindTest(unittest.TestCase): class ReformatFunctionTest(unittest.TestCase): """Test the reformat_paragraph function without the editor window.""" - def test_reformat_paragrah(self): + def test_reformat_paragraph(self): Equal = self.assertEqual reform = fp.reformat_paragraph hw = "O hello world" diff --git a/Lib/idlelib/idle_test/test_hyperparser.py b/Lib/idlelib/idle_test/test_hyperparser.py index b480684..0a1809d 100644 --- a/Lib/idlelib/idle_test/test_hyperparser.py +++ b/Lib/idlelib/idle_test/test_hyperparser.py @@ -36,6 +36,7 @@ class HyperParserTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() + cls.root.withdraw() cls.text = Text(cls.root) cls.editwin = DummyEditwin(cls.text) diff --git a/Lib/idlelib/idle_test/test_idlehistory.py b/Lib/idlelib/idle_test/test_idlehistory.py index dc6bb32..b076757 100644 --- a/Lib/idlelib/idle_test/test_idlehistory.py +++ b/Lib/idlelib/idle_test/test_idlehistory.py @@ -68,6 +68,7 @@ class FetchTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = tk.Tk() + cls.root.withdraw() def setUp(self): self.text = text = TextWrapper(self.root) diff --git a/Lib/idlelib/idle_test/test_textview.py b/Lib/idlelib/idle_test/test_textview.py index 4af7b49..fa437fc 100644 --- a/Lib/idlelib/idle_test/test_textview.py +++ b/Lib/idlelib/idle_test/test_textview.py @@ -8,7 +8,11 @@ from idlelib import textView as tv from idlelib.idle_test.mock_idle import Func from idlelib.idle_test.mock_tk import Mbox -orig_mbox = tv.tkMessageBox + +class TV(tv.TextViewer): # Use in TextViewTest + transient = Func() + grab_set = Func() + wait_window = Func() class textviewClassTest(unittest.TestCase): @@ -16,26 +20,19 @@ class textviewClassTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() - cls.TV = TV = tv.TextViewer - TV.transient = Func() - TV.grab_set = Func() - TV.wait_window = Func() + cls.root.withdraw() @classmethod def tearDownClass(cls): - del cls.TV cls.root.destroy() del cls.root def setUp(self): - TV = self.TV TV.transient.__init__() TV.grab_set.__init__() TV.wait_window.__init__() - def test_init_modal(self): - TV = self.TV view = TV(self.root, 'Title', 'test text') self.assertTrue(TV.transient.called) self.assertTrue(TV.grab_set.called) @@ -43,7 +40,6 @@ class textviewClassTest(unittest.TestCase): view.Ok() def test_init_nonmodal(self): - TV = self.TV view = TV(self.root, 'Title', 'test text', modal=False) self.assertFalse(TV.transient.called) self.assertFalse(TV.grab_set.called) @@ -51,32 +47,36 @@ class textviewClassTest(unittest.TestCase): view.Ok() def test_ok(self): - view = self.TV(self.root, 'Title', 'test text', modal=False) + view = TV(self.root, 'Title', 'test text', modal=False) view.destroy = Func() view.Ok() self.assertTrue(view.destroy.called) - del view.destroy # unmask real function - view.destroy + del view.destroy # Unmask the real function. + view.destroy() -class textviewTest(unittest.TestCase): +class ViewFunctionTest(unittest.TestCase): @classmethod def setUpClass(cls): requires('gui') cls.root = Tk() + cls.root.withdraw() + cls.orig_mbox = tv.tkMessageBox tv.tkMessageBox = Mbox @classmethod def tearDownClass(cls): cls.root.destroy() del cls.root - tv.tkMessageBox = orig_mbox + tv.tkMessageBox = cls.orig_mbox + del cls.orig_mbox def test_view_text(self): - # If modal True, tkinter will error with 'can't invoke "event" command' + # If modal True, get tkinter error 'can't invoke "event" command'. view = tv.view_text(self.root, 'Title', 'test text', modal=False) self.assertIsInstance(view, tv.TextViewer) + view.Ok() def test_view_file(self): test_dir = os.path.dirname(__file__) @@ -86,10 +86,11 @@ class textviewTest(unittest.TestCase): self.assertIn('Test', view.textView.get('1.0', '1.end')) view.Ok() - # Mock messagebox will be used and view_file will not return anything + # Mock messagebox will be used; view_file will return None. testfile = os.path.join(test_dir, '../notthere.py') view = tv.view_file(self.root, 'Title', testfile, modal=False) self.assertIsNone(view) + if __name__ == '__main__': unittest.main(verbosity=2) diff --git a/Lib/idlelib/idle_test/test_widgetredir.py b/Lib/idlelib/idle_test/test_widgetredir.py index 7129bb7..e35ea41 100644 --- a/Lib/idlelib/idle_test/test_widgetredir.py +++ b/Lib/idlelib/idle_test/test_widgetredir.py @@ -15,6 +15,7 @@ class InitCloseTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() + cls.root.withdraw() cls.text = Text(cls.root) @classmethod @@ -44,6 +45,7 @@ class WidgetRedirectorTest(unittest.TestCase): def setUpClass(cls): requires('gui') cls.root = Tk() + cls.root.withdraw() cls.text = Text(cls.root) @classmethod diff --git a/Lib/inspect.py b/Lib/inspect.py index b08e145..6d645bd 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -155,9 +155,8 @@ def isfunction(object): def isgeneratorfunction(object): """Return true if the object is a user-defined generator function. - Generator function objects provides same attributes as functions. - - See help(isfunction) for attributes listing.""" + Generator function objects provide the same attributes as functions. + See help(isfunction) for a list of attributes.""" return bool((isfunction(object) or ismethod(object)) and object.func_code.co_flags & CO_GENERATOR) diff --git a/Lib/io.py b/Lib/io.py index 1438493..53ee102 100644 --- a/Lib/io.py +++ b/Lib/io.py @@ -19,7 +19,7 @@ streams. BytesIO is a simple stream of in-memory bytes. Another IOBase subclass, TextIOBase, deals with the encoding and decoding of streams into text. TextIOWrapper, which extends it, is a buffered text interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO -is a in-memory stream for text. +is an in-memory stream for text. Argument names are not part of the specification, and only the arguments of open() are intended to be used as keyword arguments. diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py index 140a3d0..d1be041 100644 --- a/Lib/json/__init__.py +++ b/Lib/json/__init__.py @@ -132,7 +132,7 @@ def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, If ``ensure_ascii`` is true (the default), all non-ASCII characters in the output are escaped with ``\uXXXX`` sequences, and the result is a ``str`` instance consisting of ASCII characters only. If ``ensure_ascii`` is - ``False``, some chunks written to ``fp`` may be ``unicode`` instances. + false, some chunks written to ``fp`` may be ``unicode`` instances. This usually happens because the input contains unicode strings or the ``encoding`` parameter is used. Unless ``fp.write()`` explicitly understands ``unicode`` (as in ``codecs.getwriter``) this is likely to @@ -163,7 +163,7 @@ def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. - If *sort_keys* is ``True`` (default: ``False``), then the output of + If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the @@ -228,7 +228,7 @@ def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. - If *sort_keys* is ``True`` (default: ``False``), then the output of + If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the @@ -325,7 +325,7 @@ def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, for JSON integers (e.g. float). ``parse_constant``, if specified, will be called with one of the - following strings: -Infinity, Infinity, NaN, null, true, false. + following strings: -Infinity, Infinity, NaN. This can be used to raise an exception if invalid JSON numbers are encountered. diff --git a/Lib/json/encoder.py b/Lib/json/encoder.py index f5eeed7..97ffe8e 100644 --- a/Lib/json/encoder.py +++ b/Lib/json/encoder.py @@ -28,7 +28,7 @@ for i in range(0x20): #ESCAPE_DCT.setdefault(chr(i), '\\u%04x' % (i,)) INFINITY = float('inf') -FLOAT_REPR = repr +FLOAT_REPR = float.__repr__ def encode_basestring(s): """Return a JSON representation of a Python string diff --git a/Lib/json/tests/test_decode.py b/Lib/json/tests/test_decode.py index 78d7fbb..0014546 100644 --- a/Lib/json/tests/test_decode.py +++ b/Lib/json/tests/test_decode.py @@ -43,7 +43,7 @@ class TestDecode(object): self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict, object_hook=lambda x: None), OrderedDict(p)) - # check that empty objects literals work (see #17368) + # check that empty object literals work (see #17368) self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict), OrderedDict()) self.assertEqual(self.loads('{"empty": {}}', diff --git a/Lib/json/tests/test_float.py b/Lib/json/tests/test_float.py index 049f9ae..c10381d 100644 --- a/Lib/json/tests/test_float.py +++ b/Lib/json/tests/test_float.py @@ -32,6 +32,17 @@ class TestFloat(object): self.assertNotEqual(res[0], res[0]) self.assertRaises(ValueError, self.dumps, [val], allow_nan=False) + def test_float_subclasses_use_float_repr(self): + # Issue 27934. + class PeculiarFloat(float): + def __repr__(self): + return "I'm not valid JSON" + def __str__(self): + return "Neither am I" + + val = PeculiarFloat(3.2) + self.assertEqual(self.loads(self.dumps(val)), val) + class TestPyFloat(TestFloat, PyTest): pass class TestCFloat(TestFloat, CTest): pass diff --git a/Lib/lib-tk/Tix.py b/Lib/lib-tk/Tix.py index 3266e01..45e8a90 100644 --- a/Lib/lib-tk/Tix.py +++ b/Lib/lib-tk/Tix.py @@ -26,8 +26,10 @@ # appreciate the advantages. # +import os +import Tkinter from Tkinter import * -from Tkinter import _flatten, _cnfmerge, _default_root +from Tkinter import _flatten, _cnfmerge # WARNING - TkVersion is a limited precision floating point number if TkVersion < 3.999: @@ -72,7 +74,6 @@ TCL_ALL_EVENTS = 0 # BEWARE - this is implemented by copying some code from the Widget class # in Tkinter (to override Widget initialization) and is therefore # liable to break. -import Tkinter, os # Could probably add this to Tkinter.Misc class tixCommand: @@ -476,10 +477,14 @@ class DisplayStyle: (multiple) Display Items""" def __init__(self, itemtype, cnf={}, **kw): - master = _default_root # global from Tkinter - if not master and 'refwindow' in cnf: master=cnf['refwindow'] - elif not master and 'refwindow' in kw: master= kw['refwindow'] - elif not master: raise RuntimeError, "Too early to create display style: no root window" + if 'refwindow' in kw: + master = kw['refwindow'] + elif 'refwindow' in cnf: + master = cnf['refwindow'] + else: + master = Tkinter._default_root + if not master: + raise RuntimeError("Too early to create display style: no root window") self.tk = master.tk self.stylename = self.tk.call('tixDisplayStyle', itemtype, *self._options(cnf,kw) ) @@ -923,7 +928,11 @@ class HList(TixWidget, XView, YView): return self.tk.call(self._w, 'header', 'cget', col, opt) def header_exists(self, col): - return self.tk.call(self._w, 'header', 'exists', col) + # A workaround to Tix library bug (issue #25464). + # The documented command is "exists", but only erroneous "exist" is + # accepted. + return self.tk.getboolean(self.tk.call(self._w, 'header', 'exist', col)) + header_exist = header_exists def header_delete(self, col): self.tk.call(self._w, 'header', 'delete', col) diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index e825afa..64e9924 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -302,14 +302,19 @@ class Variable: CBNAME is the name of the callback returned from trace_variable or trace. """ self._tk.call("trace", "vdelete", self._name, mode, cbname) - self._tk.deletecommand(cbname) - try: - self._tclCommands.remove(cbname) - except ValueError: - pass + cbname = self._tk.splitlist(cbname)[0] + for m, ca in self.trace_vinfo(): + if self._tk.splitlist(ca)[0] == cbname: + break + else: + self._tk.deletecommand(cbname) + try: + self._tclCommands.remove(cbname) + except ValueError: + pass def trace_vinfo(self): """Return all trace callback information.""" - return map(self._tk.split, self._tk.splitlist( + return map(self._tk.splitlist, self._tk.splitlist( self._tk.call("trace", "vinfo", self._name))) def __eq__(self, other): """Comparison for equality (==). diff --git a/Lib/lib-tk/test/test_tkinter/test_variables.py b/Lib/lib-tk/test/test_tkinter/test_variables.py index 5e07528..11f9414 100644 --- a/Lib/lib-tk/test/test_tkinter/test_variables.py +++ b/Lib/lib-tk/test/test_tkinter/test_variables.py @@ -1,5 +1,5 @@ import unittest - +import gc from Tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl, TclError) @@ -67,6 +67,55 @@ class TestVariable(TestBase): with self.assertRaises(ValueError): self.root.setvar('var\x00name', "value") + def test_trace(self): + v = Variable(self.root) + vname = str(v) + trace = [] + def read_tracer(*args): + trace.append(('read',) + args) + def write_tracer(*args): + trace.append(('write',) + args) + cb1 = v.trace_variable('r', read_tracer) + cb2 = v.trace_variable('wu', write_tracer) + self.assertEqual(sorted(v.trace_vinfo()), [('r', cb1), ('wu', cb2)]) + self.assertEqual(trace, []) + + v.set('spam') + self.assertEqual(trace, [('write', vname, '', 'w')]) + + trace = [] + v.get() + self.assertEqual(trace, [('read', vname, '', 'r')]) + + trace = [] + info = sorted(v.trace_vinfo()) + v.trace_vdelete('w', cb1) # Wrong mode + self.assertEqual(sorted(v.trace_vinfo()), info) + with self.assertRaises(TclError): + v.trace_vdelete('r', 'spam') # Wrong command name + self.assertEqual(sorted(v.trace_vinfo()), info) + v.trace_vdelete('r', (cb1, 43)) # Wrong arguments + self.assertEqual(sorted(v.trace_vinfo()), info) + v.get() + self.assertEqual(trace, [('read', vname, '', 'r')]) + + trace = [] + v.trace_vdelete('r', cb1) + self.assertEqual(v.trace_vinfo(), [('wu', cb2)]) + v.get() + self.assertEqual(trace, []) + + trace = [] + del write_tracer + gc.collect() + v.set('eggs') + self.assertEqual(trace, [('write', vname, '', 'w')]) + + #trace = [] + #del v + #gc.collect() + #self.assertEqual(trace, [('write', vname, '', 'u')]) + class TestStringVar(TestBase): diff --git a/Lib/lib-tk/test/test_ttk/test_widgets.py b/Lib/lib-tk/test/test_ttk/test_widgets.py index f874a9c..a84960d 100644 --- a/Lib/lib-tk/test/test_ttk/test_widgets.py +++ b/Lib/lib-tk/test/test_ttk/test_widgets.py @@ -2,7 +2,7 @@ import unittest import Tkinter as tkinter from Tkinter import TclError import ttk -from test.test_support import requires, run_unittest +from test.test_support import requires, run_unittest, have_unicode, u import sys from test_functions import MockTclObj @@ -1486,6 +1486,60 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase): value) + def test_selection(self): + # item 'none' doesn't exist + self.assertRaises(tkinter.TclError, self.tv.selection_set, 'none') + self.assertRaises(tkinter.TclError, self.tv.selection_add, 'none') + self.assertRaises(tkinter.TclError, self.tv.selection_remove, 'none') + self.assertRaises(tkinter.TclError, self.tv.selection_toggle, 'none') + + item1 = self.tv.insert('', 'end') + item2 = self.tv.insert('', 'end') + c1 = self.tv.insert(item1, 'end') + c2 = self.tv.insert(item1, 'end') + c3 = self.tv.insert(item1, 'end') + self.assertEqual(self.tv.selection(), ()) + + self.tv.selection_set((c1, item2)) + self.assertEqual(self.tv.selection(), (c1, item2)) + self.tv.selection_set(c2) + self.assertEqual(self.tv.selection(), (c2,)) + + self.tv.selection_add((c1, item2)) + self.assertEqual(self.tv.selection(), (c1, c2, item2)) + self.tv.selection_add(item1) + self.assertEqual(self.tv.selection(), (item1, c1, c2, item2)) + + self.tv.selection_remove((item1, c3)) + self.assertEqual(self.tv.selection(), (c1, c2, item2)) + self.tv.selection_remove(c2) + self.assertEqual(self.tv.selection(), (c1, item2)) + + self.tv.selection_toggle((c1, c3)) + self.assertEqual(self.tv.selection(), (c3, item2)) + self.tv.selection_toggle(item2) + self.assertEqual(self.tv.selection(), (c3,)) + + self.tv.insert('', 'end', id='with spaces') + self.tv.selection_set('with spaces') + self.assertEqual(self.tv.selection(), ('with spaces',)) + + self.tv.insert('', 'end', id='{brace') + self.tv.selection_set('{brace') + self.assertEqual(self.tv.selection(), ('{brace',)) + + if have_unicode: + self.tv.insert('', 'end', id=u(r'unicode\u20ac')) + self.tv.selection_set(u(r'unicode\u20ac')) + self.assertEqual(self.tv.selection(), (u(r'unicode\u20ac'),)) + + self.tv.insert('', 'end', id='bytes\xe2\x82\xac') + self.tv.selection_set('bytes\xe2\x82\xac') + self.assertEqual(self.tv.selection(), + (u(r'bytes\u20ac') if have_unicode else + 'bytes\xe2\x82\xac',)) + + def test_set(self): self.tv['columns'] = ['A', 'B'] item = self.tv.insert('', 'end', values=['a', 'b']) @@ -1612,5 +1666,9 @@ tests_gui = ( SizegripTest, TreeviewTest, WidgetTest, ) +tests_gui = ( + TreeviewTest, + ) + if __name__ == "__main__": run_unittest(*tests_gui) diff --git a/Lib/lib-tk/ttk.py b/Lib/lib-tk/ttk.py index f7d0433..1125439 100644 --- a/Lib/lib-tk/ttk.py +++ b/Lib/lib-tk/ttk.py @@ -153,7 +153,7 @@ def _format_elemcreate(etype, script=False, *args, **kw): def _format_layoutlist(layout, indent=0, indent_size=2): """Formats a layout list so we can pass the result to ttk::style - layout and ttk::style settings. Note that the layout doesn't has to + layout and ttk::style settings. Note that the layout doesn't have to be a list necessarily. E.g.: @@ -1394,7 +1394,9 @@ class Treeview(Widget, Tkinter.XView, Tkinter.YView): def selection(self, selop=None, items=None): """If selop is not specified, returns selected items.""" - return self.tk.call(self._w, "selection", selop, items) + if isinstance(items, basestring): + items = (items,) + return self.tk.splitlist(self.tk.call(self._w, "selection", selop, items)) def selection_set(self, items): diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py index 73a7590..264318e 100644 --- a/Lib/lib-tk/turtle.py +++ b/Lib/lib-tk/turtle.py @@ -192,7 +192,7 @@ def config_dict(filename): continue try: key, value = line.split("=") - except: + except ValueError: print "Bad line in config-file %s:\n%s" % (filename,line) continue key = key.strip() @@ -205,7 +205,7 @@ def config_dict(filename): value = float(value) else: value = int(value) - except: + except ValueError: pass # value need not be converted cfgdict[key] = value return cfgdict @@ -234,7 +234,7 @@ def readconfig(cfgdict): try: head, tail = split(__file__) cfg_file2 = join(head, default_cfg) - except: + except BaseException: cfg_file2 = "" if isfile(cfg_file2): #print "2. Loading config-file %s:" % cfg_file2 @@ -249,7 +249,7 @@ def readconfig(cfgdict): try: readconfig(_CFG) -except: +except BaseException: print "No configfile read, reason unknown" @@ -677,7 +677,7 @@ class TurtleScreenBase(object): x, y = (self.cv.canvasx(event.x)/self.xscale, -self.cv.canvasy(event.y)/self.yscale) fun(x, y) - except: + except BaseException: pass self.cv.tag_bind(item, "" % num, eventfun, add) @@ -728,10 +728,11 @@ class TurtleScreenBase(object): """ return self.cv.create_image(0, 0, image=image) - def _drawimage(self, item, (x, y), image): + def _drawimage(self, item, pos, image): """Configure image item as to draw image object at position (x,y) on canvas) """ + x, y = pos self.cv.coords(item, (x * self.xscale, -y * self.yscale)) self.cv.itemconfig(item, image=image) @@ -981,7 +982,7 @@ class TurtleScreen(TurtleScreenBase): """Set turtle-mode ('standard', 'logo' or 'world') and perform reset. Optional argument: - mode -- on of the strings 'standard', 'logo' or 'world' + mode -- one of the strings 'standard', 'logo' or 'world' Mode 'standard' is compatible with turtle.py. Mode 'logo' is compatible with most Logo-Turtle-Graphics. @@ -1105,7 +1106,7 @@ class TurtleScreen(TurtleScreenBase): raise TurtleGraphicsError("bad color string: %s" % str(color)) try: r, g, b = color - except: + except (TypeError, ValueError): raise TurtleGraphicsError("bad color arguments: %s" % str(color)) if self._colormode == 1.0: r, g, b = [round(255.0*x) for x in (r, g, b)] @@ -2606,7 +2607,7 @@ class RawTurtle(TPen, TNavigator): return args try: r, g, b = args - except: + except (TypeError, ValueError): raise TurtleGraphicsError("bad color arguments: %s" % str(args)) if self.screen._colormode == 1.0: r, g, b = [round(255.0*x) for x in (r, g, b)] @@ -3755,7 +3756,7 @@ def read_docstrings(lang): #print key try: eval(key).im_func.__doc__ = docsdict[key] - except: + except BaseException: print "Bad docstring-entry: %s" % key _LANGUAGE = _CFG["language"] @@ -3765,7 +3766,7 @@ try: read_docstrings(_LANGUAGE) except ImportError: print "Cannot find docsdict for", _LANGUAGE -except: +except BaseException: print ("Unknown Error when trying to import %s-docstring-dictionary" % _LANGUAGE) diff --git a/Lib/lib2to3/Grammar.txt b/Lib/lib2to3/Grammar.txt index e667bcd..9be7c9f 100644 --- a/Lib/lib2to3/Grammar.txt +++ b/Lib/lib2to3/Grammar.txt @@ -136,15 +136,26 @@ subscript: test | [test] ':' [test] [sliceop] sliceop: ':' [test] exprlist: (expr|star_expr) (',' (expr|star_expr))* [','] testlist: test (',' test)* [','] -dictsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* [','])) | - (test (comp_for | (',' test)* [','])) ) +dictsetmaker: ( ((test ':' test | '**' expr) + (comp_for | (',' (test ':' test | '**' expr))* [','])) | + ((test | star_expr) + (comp_for | (',' (test | star_expr))* [','])) ) classdef: 'class' NAME ['(' [arglist] ')'] ':' suite -arglist: (argument ',')* (argument [','] - |'*' test (',' argument)* [',' '**' test] - |'**' test) -argument: test [comp_for] | test '=' test # Really [keyword '='] test +arglist: argument (',' argument)* [','] + +# "test '=' test" is really "keyword '=' test", but we have no such token. +# These need to be in a single rule to avoid grammar that is ambiguous +# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr, +# we explicitly match '*' here, too, to give it proper precedence. +# Illegal combinations and orderings are blocked in ast.c: +# multiple (test comp_for) arguments are blocked; keyword unpackings +# that precede iterable unpackings are blocked; etc. +argument: ( test [comp_for] | + test '=' test | + '**' expr | + star_expr ) comp_iter: comp_for | comp_if comp_for: 'for' exprlist 'in' testlist_safe [comp_iter] diff --git a/Lib/lib2to3/fixes/fix_apply.py b/Lib/lib2to3/fixes/fix_apply.py index a7dc3a0..1a465c2 100644 --- a/Lib/lib2to3/fixes/fix_apply.py +++ b/Lib/lib2to3/fixes/fix_apply.py @@ -34,6 +34,17 @@ class FixApply(fixer_base.BaseFix): func = results["func"] args = results["args"] kwds = results.get("kwds") + # I feel like we should be able to express this logic in the + # PATTERN above but I don't know how to do it so... + if args: + if args.type == self.syms.star_expr: + return # Make no change. + if (args.type == self.syms.argument and + args.children[0].value == '**'): + return # Make no change. + if kwds and (kwds.type == self.syms.argument and + kwds.children[0].value == '**'): + return # Make no change. prefix = node.prefix func = func.clone() if (func.type not in (token.NAME, syms.atom) and diff --git a/Lib/lib2to3/fixes/fix_callable.py b/Lib/lib2to3/fixes/fix_callable.py deleted file mode 100644 index df33d61..0000000 --- a/Lib/lib2to3/fixes/fix_callable.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2007 Google, Inc. All Rights Reserved. -# Licensed to PSF under a Contributor Agreement. - -"""Fixer for callable(). - -This converts callable(obj) into isinstance(obj, collections.Callable), adding a -collections import if needed.""" - -# Local imports -from lib2to3 import fixer_base -from lib2to3.fixer_util import Call, Name, String, Attr, touch_import - -class FixCallable(fixer_base.BaseFix): - BM_compatible = True - - order = "pre" - - # Ignore callable(*args) or use of keywords. - # Either could be a hint that the builtin callable() is not being used. - PATTERN = """ - power< 'callable' - trailer< lpar='(' - ( not(arglist | argument) any ','> ) - rpar=')' > - after=any* - > - """ - - def transform(self, node, results): - func = results['func'] - - touch_import(None, u'collections', node=node) - - args = [func.clone(), String(u', ')] - args.extend(Attr(Name(u'collections'), Name(u'Callable'))) - return Call(Name(u'isinstance'), args, prefix=node.prefix) diff --git a/Lib/lib2to3/fixes/fix_input.py b/Lib/lib2to3/fixes/fix_input.py index fbf4c72..728636b 100644 --- a/Lib/lib2to3/fixes/fix_input.py +++ b/Lib/lib2to3/fixes/fix_input.py @@ -17,7 +17,7 @@ class FixInput(fixer_base.BaseFix): """ def transform(self, node, results): - # If we're already wrapped in a eval() call, we're done. + # If we're already wrapped in an eval() call, we're done. if context.match(node.parent.parent): return diff --git a/Lib/lib2to3/fixes/fix_intern.py b/Lib/lib2to3/fixes/fix_intern.py index e7bb505..285c126 100644 --- a/Lib/lib2to3/fixes/fix_intern.py +++ b/Lib/lib2to3/fixes/fix_intern.py @@ -26,6 +26,16 @@ class FixIntern(fixer_base.BaseFix): """ def transform(self, node, results): + if results: + # I feel like we should be able to express this logic in the + # PATTERN above but I don't know how to do it so... + obj = results['obj'] + if obj: + if obj.type == self.syms.star_expr: + return # Make no change. + if (obj.type == self.syms.argument and + obj.children[0].value == '**'): + return # Make no change. syms = self.syms obj = results["obj"].clone() if obj.type == syms.arglist: diff --git a/Lib/lib2to3/pgen2/driver.py b/Lib/lib2to3/pgen2/driver.py index 39dafb9..ce601bb 100644 --- a/Lib/lib2to3/pgen2/driver.py +++ b/Lib/lib2to3/pgen2/driver.py @@ -106,16 +106,19 @@ class Driver(object): return self.parse_tokens(tokens, debug) +def _generate_pickle_name(gt): + head, tail = os.path.splitext(gt) + if tail == ".txt": + tail = "" + return head + tail + ".".join(map(str, sys.version_info)) + ".pickle" + + def load_grammar(gt="Grammar.txt", gp=None, save=True, force=False, logger=None): """Load the grammar (maybe from a pickle).""" if logger is None: logger = logging.getLogger() - if gp is None: - head, tail = os.path.splitext(gt) - if tail == ".txt": - tail = "" - gp = head + tail + ".".join(map(str, sys.version_info)) + ".pickle" + gp = _generate_pickle_name(gt) if gp is None else gp if force or not _newer(gp, gt): logger.info("Generating grammar tables from %s", gt) g = pgen.generate_grammar(gt) @@ -123,8 +126,8 @@ def load_grammar(gt="Grammar.txt", gp=None, logger.info("Writing grammar tables to %s", gp) try: g.dump(gp) - except IOError, e: - logger.info("Writing failed:"+str(e)) + except IOError as e: + logger.info("Writing failed: %s", e) else: g = grammar.Grammar() g.load(gp) diff --git a/Lib/lib2to3/pgen2/grammar.py b/Lib/lib2to3/pgen2/grammar.py index 8220b0a..75255e9 100644 --- a/Lib/lib2to3/pgen2/grammar.py +++ b/Lib/lib2to3/pgen2/grammar.py @@ -13,6 +13,7 @@ fallback token code OP, but the parser needs the actual token code. """ # Python imports +import collections import pickle # Local imports @@ -85,10 +86,21 @@ class Grammar(object): self.start = 256 def dump(self, filename): - """Dump the grammar tables to a pickle file.""" - f = open(filename, "wb") - pickle.dump(self.__dict__, f, 2) - f.close() + """Dump the grammar tables to a pickle file. + + dump() recursively changes all dict to OrderedDict, so the pickled file + is not exactly the same as what was passed in to dump(). load() uses the + pickled file to create the tables, but only changes OrderedDict to dict + at the top level; it does not recursively change OrderedDict to dict. + So, the loaded tables are different from the original tables that were + passed to load() in that some of the OrderedDict (from the pickled file) + are not changed back to dict. For parsing, this has no effect on + performance because OrderedDict uses dict's __getitem__ with nothing in + between. + """ + with open(filename, "wb") as f: + d = _make_deterministic(self.__dict__) + pickle.dump(d, f, 2) def load(self, filename): """Load the grammar tables from a pickle file.""" @@ -126,6 +138,17 @@ class Grammar(object): print "start", self.start +def _make_deterministic(top): + if isinstance(top, dict): + return collections.OrderedDict( + sorted(((k, _make_deterministic(v)) for k, v in top.iteritems()))) + if isinstance(top, list): + return [_make_deterministic(e) for e in top] + if isinstance(top, tuple): + return tuple(_make_deterministic(e) for e in top) + return top + + # Map from operator to number (since tokenize doesn't do this) opmap_raw = """ diff --git a/Lib/lib2to3/pgen2/pgen.py b/Lib/lib2to3/pgen2/pgen.py index 63084a4..ed16992 100644 --- a/Lib/lib2to3/pgen2/pgen.py +++ b/Lib/lib2to3/pgen2/pgen.py @@ -39,7 +39,7 @@ class ParserGenerator(object): states = [] for state in dfa: arcs = [] - for label, next in state.arcs.iteritems(): + for label, next in sorted(state.arcs.iteritems()): arcs.append((self.make_label(c, label), dfa.index(next))) if state.isfinal: arcs.append((0, dfa.index(state))) @@ -52,7 +52,7 @@ class ParserGenerator(object): def make_first(self, c, name): rawfirst = self.first[name] first = {} - for label in rawfirst: + for label in sorted(rawfirst): ilabel = self.make_label(c, label) ##assert ilabel not in first # XXX failed on <> ... != first[ilabel] = 1 @@ -192,7 +192,7 @@ class ParserGenerator(object): for label, next in nfastate.arcs: if label is not None: addclosure(next, arcs.setdefault(label, {})) - for label, nfaset in arcs.iteritems(): + for label, nfaset in sorted(arcs.iteritems()): for st in states: if st.nfaset == nfaset: break @@ -222,7 +222,7 @@ class ParserGenerator(object): print "Dump of DFA for", name for i, state in enumerate(dfa): print " State", i, state.isfinal and "(final)" or "" - for label, next in state.arcs.iteritems(): + for label, next in sorted(state.arcs.iteritems()): print " %s -> %d" % (label, dfa.index(next)) def simplify_dfa(self, dfa): diff --git a/Lib/lib2to3/tests/support.py b/Lib/lib2to3/tests/support.py index 3646935..8f12de9 100644 --- a/Lib/lib2to3/tests/support.py +++ b/Lib/lib2to3/tests/support.py @@ -11,13 +11,13 @@ from textwrap import dedent # Local imports from lib2to3 import pytree, refactor -from lib2to3.pgen2 import driver +from lib2to3.pgen2 import driver as pgen2_driver test_dir = os.path.dirname(__file__) proj_dir = os.path.normpath(os.path.join(test_dir, "..")) grammar_path = os.path.join(test_dir, "..", "Grammar.txt") -grammar = driver.load_grammar(grammar_path) -driver = driver.Driver(grammar, convert=pytree.convert) +grammar = pgen2_driver.load_grammar(grammar_path) +driver = pgen2_driver.Driver(grammar, convert=pytree.convert) def parse_string(string): return driver.parse_string(reformat(string), debug=True) diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py index 6fa603f..b0e60fe 100644 --- a/Lib/lib2to3/tests/test_fixers.py +++ b/Lib/lib2to3/tests/test_fixers.py @@ -260,6 +260,10 @@ class Test_apply(FixerTestCase): s = """apply(f, *args)""" self.unchanged(s) + def test_unchanged_6b(self): + s = """apply(f, **kwds)""" + self.unchanged(s) + def test_unchanged_7(self): s = """apply(func=f, args=args, kwds=kwds)""" self.unchanged(s) @@ -2861,98 +2865,6 @@ class Test_unicode(FixerTestCase): a = f + """r'\\\\\\u20ac\\U0001d121\\\\u20ac'""" self.check(b, a) -class Test_callable(FixerTestCase): - fixer = "callable" - - def test_prefix_preservation(self): - b = """callable( x)""" - a = """import collections\nisinstance( x, collections.Callable)""" - self.check(b, a) - - b = """if callable(x): pass""" - a = """import collections -if isinstance(x, collections.Callable): pass""" - self.check(b, a) - - def test_callable_call(self): - b = """callable(x)""" - a = """import collections\nisinstance(x, collections.Callable)""" - self.check(b, a) - - def test_global_import(self): - b = """ -def spam(foo): - callable(foo)"""[1:] - a = """ -import collections -def spam(foo): - isinstance(foo, collections.Callable)"""[1:] - self.check(b, a) - - b = """ -import collections -def spam(foo): - callable(foo)"""[1:] - # same output if it was already imported - self.check(b, a) - - b = """ -from collections import * -def spam(foo): - callable(foo)"""[1:] - a = """ -from collections import * -import collections -def spam(foo): - isinstance(foo, collections.Callable)"""[1:] - self.check(b, a) - - b = """ -do_stuff() -do_some_other_stuff() -assert callable(do_stuff)"""[1:] - a = """ -import collections -do_stuff() -do_some_other_stuff() -assert isinstance(do_stuff, collections.Callable)"""[1:] - self.check(b, a) - - b = """ -if isinstance(do_stuff, Callable): - assert callable(do_stuff) - do_stuff(do_stuff) - if not callable(do_stuff): - exit(1) - else: - assert callable(do_stuff) -else: - assert not callable(do_stuff)"""[1:] - a = """ -import collections -if isinstance(do_stuff, Callable): - assert isinstance(do_stuff, collections.Callable) - do_stuff(do_stuff) - if not isinstance(do_stuff, collections.Callable): - exit(1) - else: - assert isinstance(do_stuff, collections.Callable) -else: - assert not isinstance(do_stuff, collections.Callable)"""[1:] - self.check(b, a) - - def test_callable_should_not_change(self): - a = """callable(*x)""" - self.unchanged(a) - - a = """callable(x, y)""" - self.unchanged(a) - - a = """callable(x, kw=y)""" - self.unchanged(a) - - a = """callable()""" - self.unchanged(a) class Test_filter(FixerTestCase): fixer = "filter" diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py index 9c5463a..ebf8441 100644 --- a/Lib/lib2to3/tests/test_parser.py +++ b/Lib/lib2to3/tests/test_parser.py @@ -6,17 +6,20 @@ parts of the grammar we've changed, we also make sure we can parse the test_grammar.py files from both Python 2 and Python 3. """ -from __future__ import with_statement - # Testing imports from . import support from .support import driver, test_dir # Python imports import os +import shutil +import subprocess import sys +import tempfile +import unittest # Local imports +from lib2to3.pgen2 import driver as pgen2_driver from lib2to3.pgen2 import tokenize from ..pgen2.parse import ParseError from lib2to3.pygram import python_symbols as syms @@ -31,6 +34,71 @@ class TestDriver(support.TestCase): self.assertEqual(t.children[1].children[0].type, syms.print_stmt) +class TestPgen2Caching(support.TestCase): + def test_load_grammar_from_txt_file(self): + pgen2_driver.load_grammar(support.grammar_path, save=False, force=True) + + def test_load_grammar_from_pickle(self): + # Make a copy of the grammar file in a temp directory we are + # guaranteed to be able to write to. + tmpdir = tempfile.mkdtemp() + try: + grammar_copy = os.path.join( + tmpdir, os.path.basename(support.grammar_path)) + shutil.copy(support.grammar_path, grammar_copy) + pickle_name = pgen2_driver._generate_pickle_name(grammar_copy) + + pgen2_driver.load_grammar(grammar_copy, save=True, force=True) + self.assertTrue(os.path.exists(pickle_name)) + + os.unlink(grammar_copy) # Only the pickle remains... + pgen2_driver.load_grammar(grammar_copy, save=False, force=False) + finally: + shutil.rmtree(tmpdir) + + @unittest.skipIf(sys.executable is None, 'sys.executable required') + def test_load_grammar_from_subprocess(self): + tmpdir = tempfile.mkdtemp() + tmpsubdir = os.path.join(tmpdir, 'subdir') + try: + os.mkdir(tmpsubdir) + grammar_base = os.path.basename(support.grammar_path) + grammar_copy = os.path.join(tmpdir, grammar_base) + grammar_sub_copy = os.path.join(tmpsubdir, grammar_base) + shutil.copy(support.grammar_path, grammar_copy) + shutil.copy(support.grammar_path, grammar_sub_copy) + pickle_name = pgen2_driver._generate_pickle_name(grammar_copy) + pickle_sub_name = pgen2_driver._generate_pickle_name( + grammar_sub_copy) + self.assertNotEqual(pickle_name, pickle_sub_name) + + # Generate a pickle file from this process. + pgen2_driver.load_grammar(grammar_copy, save=True, force=True) + self.assertTrue(os.path.exists(pickle_name)) + + # Generate a new pickle file in a subprocess with a most likely + # different hash randomization seed. + sub_env = dict(os.environ) + sub_env['PYTHONHASHSEED'] = 'random' + subprocess.check_call( + [sys.executable, '-c', """ +from lib2to3.pgen2 import driver as pgen2_driver +pgen2_driver.load_grammar(%r, save=True, force=True) + """ % (grammar_sub_copy,)], + env=sub_env) + self.assertTrue(os.path.exists(pickle_sub_name)) + + with open(pickle_name, 'rb') as pickle_f_1, \ + open(pickle_sub_name, 'rb') as pickle_f_2: + self.assertEqual( + pickle_f_1.read(), pickle_f_2.read(), + msg='Grammar caches generated using different hash seeds' + ' were not identical.') + finally: + shutil.rmtree(tmpdir) + + + class GrammarTest(support.TestCase): def validate(self, code): support.parse_string(code) @@ -86,6 +154,41 @@ class TestRaiseChanges(GrammarTest): self.invalid_syntax("raise E from") +# Modelled after Lib/test/test_grammar.py:TokenTests.test_funcdef issue2292 +# and Lib/test/text_parser.py test_list_displays, test_set_displays, +# test_dict_displays, test_argument_unpacking, ... changes. +class TestUnpackingGeneralizations(GrammarTest): + def test_mid_positional_star(self): + self.validate("""func(1, *(2, 3), 4)""") + + def test_double_star_dict_literal(self): + self.validate("""func(**{'eggs':'scrambled', 'spam':'fried'})""") + + def test_double_star_dict_literal_after_keywords(self): + self.validate("""func(spam='fried', **{'eggs':'scrambled'})""") + + def test_list_display(self): + self.validate("""[*{2}, 3, *[4]]""") + + def test_set_display(self): + self.validate("""{*{2}, 3, *[4]}""") + + def test_dict_display_1(self): + self.validate("""{**{}}""") + + def test_dict_display_2(self): + self.validate("""{**{}, 3:4, **{5:6, 7:8}}""") + + def test_argument_unpacking_1(self): + self.validate("""f(a, *b, *c, d)""") + + def test_argument_unpacking_2(self): + self.validate("""f(**a, **b)""") + + def test_argument_unpacking_3(self): + self.validate("""f(2, *a, *b, **b, **c, **d)""") + + # Adaptated from Python 3's Lib/test/test_grammar.py:GrammarTests.testFuncdef class TestFunctionAnnotations(GrammarTest): def test_1(self): diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py index 7fc84e2..c737aa5 100644 --- a/Lib/lib2to3/tests/test_refactor.py +++ b/Lib/lib2to3/tests/test_refactor.py @@ -8,6 +8,7 @@ import sys import os import codecs import operator +import re import StringIO import tempfile import shutil @@ -226,8 +227,8 @@ from __future__ import print_function""" actually_write=False) # Testing that it logged this message when write=False was passed is # sufficient to see that it did not bail early after "No changes". - message_regex = r"Not writing changes to .*%s%s" % ( - os.sep, os.path.basename(test_file)) + message_regex = r"Not writing changes to .*%s" % \ + re.escape(os.sep + os.path.basename(test_file)) for message in debug_messages: if "Not writing changes" in message: self.assertRegexpMatches(message, message_regex) diff --git a/Lib/msilib/schema.py b/Lib/msilib/schema.py index b84eb22..e132194 100644 --- a/Lib/msilib/schema.py +++ b/Lib/msilib/schema.py @@ -733,7 +733,7 @@ _Validation_records = [ (u'CustomAction',u'Source',u'Y',None, None, None, None, u'CustomSource',None, u'The table reference of the source of the code.',), (u'CustomAction',u'Target',u'Y',None, None, None, None, u'Formatted',None, u'Execution parameter, depends on the type of custom action',), (u'DrLocator',u'Signature_',u'N',None, None, None, None, u'Identifier',None, u'The Signature_ represents a unique file signature and is also the foreign key in the Signature table.',), -(u'DrLocator',u'Path',u'Y',None, None, None, None, u'AnyPath',None, u'The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.',), +(u'DrLocator',u'Path',u'Y',None, None, None, None, u'AnyPath',None, u'The path on the user system. This is either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.',), (u'DrLocator',u'Depth',u'Y',0,32767,None, None, None, None, u'The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0.',), (u'DrLocator',u'Parent',u'Y',None, None, None, None, u'Identifier',None, u'The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.',), (u'DuplicateFile',u'File_',u'N',None, None, u'File',1,u'Identifier',None, u'Foreign key referencing the source file to be duplicated.',), diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index 7763965..f2cee0c 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -287,7 +287,7 @@ class Server(object): try: send(msg) except Exception, e: - send(('#UNSERIALIZABLE', repr(msg))) + send(('#UNSERIALIZABLE', format_exc())) except Exception, e: util.info('exception in thread serving %r', threading.current_thread().name) diff --git a/Lib/plat-mac/findertools.py b/Lib/plat-mac/findertools.py index d0c74a9..c6824bc 100644 --- a/Lib/plat-mac/findertools.py +++ b/Lib/plat-mac/findertools.py @@ -580,7 +580,7 @@ def _seticon(object_alias, icondata): def mountvolume(volume, server=None, username=None, password=None): """mount a volume, local or on a server on AppleTalk. - Note: mounting a ASIP server requires a different operation. + Note: mounting an ASIP server requires a different operation. server is the name of the server where the volume belongs username, password belong to a registered user of the volume.""" finder = _getfinder() diff --git a/Lib/plat-mac/macresource.py b/Lib/plat-mac/macresource.py index 3b48d4b..9415e1e 100644 --- a/Lib/plat-mac/macresource.py +++ b/Lib/plat-mac/macresource.py @@ -78,7 +78,7 @@ def open_pathname(pathname, verbose=0): """Open a resource file given by pathname, possibly decoding an AppleSingle file""" # No resource fork. We may be on OSX, and this may be either - # a data-fork based resource file or a AppleSingle file + # a data-fork based resource file or an AppleSingle file # from the CVS repository. try: refno = Res.FSOpenResourceFile(pathname, u'', 1) @@ -97,7 +97,7 @@ def resource_pathname(pathname, verbose=0): If the pathname given already refers to such a file simply return it, otherwise first decode it.""" # No resource fork. We may be on OSX, and this may be either - # a data-fork based resource file or a AppleSingle file + # a data-fork based resource file or an AppleSingle file # from the CVS repository. try: refno = Res.FSOpenResourceFile(pathname, u'', 1) diff --git a/Lib/platform.py b/Lib/platform.py index 63455ce..55f2fa8 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -63,7 +63,7 @@ # though # 0.5.2 - fixed uname() to return '' instead of 'unknown' in all # return values (the system uname command tends to return -# 'unknown' instead of just leaving the field emtpy) +# 'unknown' instead of just leaving the field empty) # 0.5.1 - included code for slackware dist; added exception handlers # to cover up situations where platforms don't have os.popen # (e.g. Mac) or fail on socket.gethostname(); fixed libc @@ -567,7 +567,7 @@ def _get_real_winver(maj, min, build): return maj, min, build from ctypes import (c_buffer, POINTER, byref, create_unicode_buffer, - Structure, WinDLL) + Structure, WinDLL, _Pointer) from ctypes.wintypes import DWORD, HANDLE class VS_FIXEDFILEINFO(Structure): @@ -586,6 +586,8 @@ def _get_real_winver(maj, min, build): ("dwFileDateMS", DWORD), ("dwFileDateLS", DWORD), ] + class PVS_FIXEDFILEINFO(_Pointer): + _type_ = VS_FIXEDFILEINFO kernel32 = WinDLL('kernel32') version = WinDLL('version') @@ -611,7 +613,7 @@ def _get_real_winver(maj, min, build): not ver_block): return maj, min, build - pvi = POINTER(VS_FIXEDFILEINFO)() + pvi = PVS_FIXEDFILEINFO() if not version.VerQueryValueW(ver_block, "", byref(pvi), byref(DWORD())): return maj, min, build @@ -650,7 +652,7 @@ def win32_ver(release='', version='', csd='', ptype=''): csd = 'SP' + csd[13:] # VER_NT_SERVER = 3 - if getattr(winver, 'product', None) == 3: + if getattr(winver, 'product_type', None) == 3: release = (_WIN32_SERVER_RELEASES.get((maj, min)) or _WIN32_SERVER_RELEASES.get((maj, None)) or release) diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 8f92822..f5c2260 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -186,7 +186,7 @@ def ismount(path): return False try: s1 = os.lstat(path) - s2 = os.lstat(join(path, '..')) + s2 = os.lstat(realpath(join(path, '..'))) except os.error: return False # It doesn't exist -- so not a mount point :-) dev1 = s1.st_dev diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 9316fff..b4b190f 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -28,7 +28,7 @@ to a file named ".html". Module docs for core modules are assumed to be in - http://docs.python.org/library/ + https://docs.python.org/library/ This can be overridden by setting the PYTHONDOCS environment variable to a different URL or to a local directory containing the Library @@ -374,7 +374,9 @@ class Doc: docmodule = docclass = docroutine = docother = docproperty = docdata = fail - def getdocloc(self, object): + def getdocloc(self, object, + basedir=os.path.join(sys.exec_prefix, "lib", + "python"+sys.version[0:3])): """Return the location of module docs or None""" try: @@ -383,9 +385,8 @@ class Doc: file = '(built-in)' docloc = os.environ.get("PYTHONDOCS", - "http://docs.python.org/library") - basedir = os.path.join(sys.exec_prefix, "lib", - "python"+sys.version[0:3]) + "https://docs.python.org/library") + basedir = os.path.normcase(basedir) if (isinstance(object, type(os)) and (object.__name__ in ('errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'signal', 'sys', @@ -393,10 +394,10 @@ class Doc: (file.startswith(basedir) and not file.startswith(os.path.join(basedir, 'site-packages')))) and object.__name__ not in ('xml.etree', 'test.pydoc_mod')): - if docloc.startswith("http://"): - docloc = "%s/%s" % (docloc.rstrip("/"), object.__name__) + if docloc.startswith(("http://", "https://")): + docloc = "%s/%s" % (docloc.rstrip("/"), object.__name__.lower()) else: - docloc = os.path.join(docloc, object.__name__ + ".html") + docloc = os.path.join(docloc, object.__name__.lower() + ".html") else: docloc = None return docloc diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index 272f514..18d436f 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,13325 +1,81 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Sat Jun 11 14:41:12 2016 -topics = {'assert': '\n' - 'The "assert" statement\n' - '**********************\n' - '\n' - 'Assert statements are a convenient way to insert debugging ' - 'assertions\n' - 'into a program:\n' - '\n' - ' assert_stmt ::= "assert" expression ["," expression]\n' - '\n' - 'The simple form, "assert expression", is equivalent to\n' - '\n' - ' if __debug__:\n' - ' if not expression: raise AssertionError\n' - '\n' - 'The extended form, "assert expression1, expression2", is ' - 'equivalent to\n' - '\n' - ' if __debug__:\n' - ' if not expression1: raise AssertionError(expression2)\n' - '\n' - 'These equivalences assume that "__debug__" and "AssertionError" ' - 'refer\n' - 'to the built-in variables with those names. In the current\n' - 'implementation, the built-in variable "__debug__" is "True" under\n' - 'normal circumstances, "False" when optimization is requested ' - '(command\n' - 'line option -O). The current code generator emits no code for an\n' - 'assert statement when optimization is requested at compile time. ' - 'Note\n' - 'that it is unnecessary to include the source code for the ' - 'expression\n' - 'that failed in the error message; it will be displayed as part of ' - 'the\n' - 'stack trace.\n' - '\n' - 'Assignments to "__debug__" are illegal. The value for the ' - 'built-in\n' - 'variable is determined when the interpreter starts.\n', - 'assignment': '\n' - 'Assignment statements\n' - '*********************\n' - '\n' - 'Assignment statements are used to (re)bind names to values and ' - 'to\n' - 'modify attributes or items of mutable objects:\n' - '\n' - ' assignment_stmt ::= (target_list "=")+ (expression_list | ' - 'yield_expression)\n' - ' target_list ::= target ("," target)* [","]\n' - ' target ::= identifier\n' - ' | "(" target_list ")"\n' - ' | "[" [target_list] "]"\n' - ' | attributeref\n' - ' | subscription\n' - ' | slicing\n' - '\n' - '(See section Primaries for the syntax definitions for the last ' - 'three\n' - 'symbols.)\n' - '\n' - 'An assignment statement evaluates the expression list ' - '(remember that\n' - 'this can be a single expression or a comma-separated list, the ' - 'latter\n' - 'yielding a tuple) and assigns the single resulting object to ' - 'each of\n' - 'the target lists, from left to right.\n' - '\n' - 'Assignment is defined recursively depending on the form of the ' - 'target\n' - '(list). When a target is part of a mutable object (an ' - 'attribute\n' - 'reference, subscription or slicing), the mutable object must\n' - 'ultimately perform the assignment and decide about its ' - 'validity, and\n' - 'may raise an exception if the assignment is unacceptable. The ' - 'rules\n' - 'observed by various types and the exceptions raised are given ' - 'with the\n' - 'definition of the object types (see section The standard type\n' - 'hierarchy).\n' - '\n' - 'Assignment of an object to a target list is recursively ' - 'defined as\n' - 'follows.\n' - '\n' - '* If the target list is a single target: The object is ' - 'assigned to\n' - ' that target.\n' - '\n' - '* If the target list is a comma-separated list of targets: ' - 'The\n' - ' object must be an iterable with the same number of items as ' - 'there\n' - ' are targets in the target list, and the items are assigned, ' - 'from\n' - ' left to right, to the corresponding targets.\n' - '\n' - 'Assignment of an object to a single target is recursively ' - 'defined as\n' - 'follows.\n' - '\n' - '* If the target is an identifier (name):\n' - '\n' - ' * If the name does not occur in a "global" statement in the\n' - ' current code block: the name is bound to the object in the ' - 'current\n' - ' local namespace.\n' - '\n' - ' * Otherwise: the name is bound to the object in the current ' - 'global\n' - ' namespace.\n' - '\n' - ' The name is rebound if it was already bound. This may cause ' - 'the\n' - ' reference count for the object previously bound to the name ' - 'to reach\n' - ' zero, causing the object to be deallocated and its ' - 'destructor (if it\n' - ' has one) to be called.\n' - '\n' - '* If the target is a target list enclosed in parentheses or ' - 'in\n' - ' square brackets: The object must be an iterable with the ' - 'same number\n' - ' of items as there are targets in the target list, and its ' - 'items are\n' - ' assigned, from left to right, to the corresponding targets.\n' - '\n' - '* If the target is an attribute reference: The primary ' - 'expression in\n' - ' the reference is evaluated. It should yield an object with\n' - ' assignable attributes; if this is not the case, "TypeError" ' - 'is\n' - ' raised. That object is then asked to assign the assigned ' - 'object to\n' - ' the given attribute; if it cannot perform the assignment, it ' - 'raises\n' - ' an exception (usually but not necessarily ' - '"AttributeError").\n' - '\n' - ' Note: If the object is a class instance and the attribute ' - 'reference\n' - ' occurs on both sides of the assignment operator, the RHS ' - 'expression,\n' - ' "a.x" can access either an instance attribute or (if no ' - 'instance\n' - ' attribute exists) a class attribute. The LHS target "a.x" ' - 'is always\n' - ' set as an instance attribute, creating it if necessary. ' - 'Thus, the\n' - ' two occurrences of "a.x" do not necessarily refer to the ' - 'same\n' - ' attribute: if the RHS expression refers to a class ' - 'attribute, the\n' - ' LHS creates a new instance attribute as the target of the\n' - ' assignment:\n' - '\n' - ' class Cls:\n' - ' x = 3 # class variable\n' - ' inst = Cls()\n' - ' inst.x = inst.x + 1 # writes inst.x as 4 leaving Cls.x ' - 'as 3\n' - '\n' - ' This description does not necessarily apply to descriptor\n' - ' attributes, such as properties created with "property()".\n' - '\n' - '* If the target is a subscription: The primary expression in ' - 'the\n' - ' reference is evaluated. It should yield either a mutable ' - 'sequence\n' - ' object (such as a list) or a mapping object (such as a ' - 'dictionary).\n' - ' Next, the subscript expression is evaluated.\n' - '\n' - ' If the primary is a mutable sequence object (such as a ' - 'list), the\n' - ' subscript must yield a plain integer. If it is negative, ' - 'the\n' - " sequence's length is added to it. The resulting value must " - 'be a\n' - " nonnegative integer less than the sequence's length, and " - 'the\n' - ' sequence is asked to assign the assigned object to its item ' - 'with\n' - ' that index. If the index is out of range, "IndexError" is ' - 'raised\n' - ' (assignment to a subscripted sequence cannot add new items ' - 'to a\n' - ' list).\n' - '\n' - ' If the primary is a mapping object (such as a dictionary), ' - 'the\n' - " subscript must have a type compatible with the mapping's key " - 'type,\n' - ' and the mapping is then asked to create a key/datum pair ' - 'which maps\n' - ' the subscript to the assigned object. This can either ' - 'replace an\n' - ' existing key/value pair with the same key value, or insert a ' - 'new\n' - ' key/value pair (if no key with the same value existed).\n' - '\n' - '* If the target is a slicing: The primary expression in the\n' - ' reference is evaluated. It should yield a mutable sequence ' - 'object\n' - ' (such as a list). The assigned object should be a sequence ' - 'object\n' - ' of the same type. Next, the lower and upper bound ' - 'expressions are\n' - ' evaluated, insofar they are present; defaults are zero and ' - 'the\n' - " sequence's length. The bounds should evaluate to (small) " - 'integers.\n' - " If either bound is negative, the sequence's length is added " - 'to it.\n' - ' The resulting bounds are clipped to lie between zero and ' - 'the\n' - " sequence's length, inclusive. Finally, the sequence object " - 'is asked\n' - ' to replace the slice with the items of the assigned ' - 'sequence. The\n' - ' length of the slice may be different from the length of the ' - 'assigned\n' - ' sequence, thus changing the length of the target sequence, ' - 'if the\n' - ' object allows it.\n' - '\n' - '**CPython implementation detail:** In the current ' - 'implementation, the\n' - 'syntax for targets is taken to be the same as for expressions, ' - 'and\n' - 'invalid syntax is rejected during the code generation phase, ' - 'causing\n' - 'less detailed error messages.\n' - '\n' - 'WARNING: Although the definition of assignment implies that ' - 'overlaps\n' - "between the left-hand side and the right-hand side are 'safe' " - '(for\n' - 'example "a, b = b, a" swaps two variables), overlaps *within* ' - 'the\n' - 'collection of assigned-to variables are not safe! For ' - 'instance, the\n' - 'following program prints "[0, 2]":\n' - '\n' - ' x = [0, 1]\n' - ' i = 0\n' - ' i, x[i] = 1, 2\n' - ' print x\n' - '\n' - '\n' - 'Augmented assignment statements\n' - '===============================\n' - '\n' - 'Augmented assignment is the combination, in a single ' - 'statement, of a\n' - 'binary operation and an assignment statement:\n' - '\n' - ' augmented_assignment_stmt ::= augtarget augop ' - '(expression_list | yield_expression)\n' - ' augtarget ::= identifier | attributeref | ' - 'subscription | slicing\n' - ' augop ::= "+=" | "-=" | "*=" | "/=" | ' - '"//=" | "%=" | "**="\n' - ' | ">>=" | "<<=" | "&=" | "^=" | "|="\n' - '\n' - '(See section Primaries for the syntax definitions for the last ' - 'three\n' - 'symbols.)\n' - '\n' - 'An augmented assignment evaluates the target (which, unlike ' - 'normal\n' - 'assignment statements, cannot be an unpacking) and the ' - 'expression\n' - 'list, performs the binary operation specific to the type of ' - 'assignment\n' - 'on the two operands, and assigns the result to the original ' - 'target.\n' - 'The target is only evaluated once.\n' - '\n' - 'An augmented assignment expression like "x += 1" can be ' - 'rewritten as\n' - '"x = x + 1" to achieve a similar, but not exactly equal ' - 'effect. In the\n' - 'augmented version, "x" is only evaluated once. Also, when ' - 'possible,\n' - 'the actual operation is performed *in-place*, meaning that ' - 'rather than\n' - 'creating a new object and assigning that to the target, the ' - 'old object\n' - 'is modified instead.\n' - '\n' - 'With the exception of assigning to tuples and multiple targets ' - 'in a\n' - 'single statement, the assignment done by augmented assignment\n' - 'statements is handled the same way as normal assignments. ' - 'Similarly,\n' - 'with the exception of the possible *in-place* behavior, the ' - 'binary\n' - 'operation performed by augmented assignment is the same as the ' - 'normal\n' - 'binary operations.\n' - '\n' - 'For targets which are attribute references, the same caveat ' - 'about\n' - 'class and instance attributes applies as for regular ' - 'assignments.\n', - 'atom-identifiers': '\n' - 'Identifiers (Names)\n' - '*******************\n' - '\n' - 'An identifier occurring as an atom is a name. See ' - 'section Identifiers\n' - 'and keywords for lexical definition and section Naming ' - 'and binding for\n' - 'documentation of naming and binding.\n' - '\n' - 'When the name is bound to an object, evaluation of the ' - 'atom yields\n' - 'that object. When a name is not bound, an attempt to ' - 'evaluate it\n' - 'raises a "NameError" exception.\n' - '\n' - '**Private name mangling:** When an identifier that ' - 'textually occurs in\n' - 'a class definition begins with two or more underscore ' - 'characters and\n' - 'does not end in two or more underscores, it is ' - 'considered a *private\n' - 'name* of that class. Private names are transformed to a ' - 'longer form\n' - 'before code is generated for them. The transformation ' - 'inserts the\n' - 'class name, with leading underscores removed and a ' - 'single underscore\n' - 'inserted, in front of the name. For example, the ' - 'identifier "__spam"\n' - 'occurring in a class named "Ham" will be transformed to ' - '"_Ham__spam".\n' - 'This transformation is independent of the syntactical ' - 'context in which\n' - 'the identifier is used. If the transformed name is ' - 'extremely long\n' - '(longer than 255 characters), implementation defined ' - 'truncation may\n' - 'happen. If the class name consists only of underscores, ' - 'no\n' - 'transformation is done.\n', - 'atom-literals': '\n' - 'Literals\n' - '********\n' - '\n' - 'Python supports string literals and various numeric ' - 'literals:\n' - '\n' - ' literal ::= stringliteral | integer | longinteger\n' - ' | floatnumber | imagnumber\n' - '\n' - 'Evaluation of a literal yields an object of the given type ' - '(string,\n' - 'integer, long integer, floating point number, complex ' - 'number) with the\n' - 'given value. The value may be approximated in the case of ' - 'floating\n' - 'point and imaginary (complex) literals. See section ' - 'Literals for\n' - 'details.\n' - '\n' - 'All literals correspond to immutable data types, and hence ' - 'the\n' - "object's identity is less important than its value. " - 'Multiple\n' - 'evaluations of literals with the same value (either the ' - 'same\n' - 'occurrence in the program text or a different occurrence) ' - 'may obtain\n' - 'the same object or a different object with the same ' - 'value.\n', - 'attribute-access': '\n' - 'Customizing attribute access\n' - '****************************\n' - '\n' - 'The following methods can be defined to customize the ' - 'meaning of\n' - 'attribute access (use of, assignment to, or deletion of ' - '"x.name") for\n' - 'class instances.\n' - '\n' - 'object.__getattr__(self, name)\n' - '\n' - ' Called when an attribute lookup has not found the ' - 'attribute in the\n' - ' usual places (i.e. it is not an instance attribute ' - 'nor is it found\n' - ' in the class tree for "self"). "name" is the ' - 'attribute name. This\n' - ' method should return the (computed) attribute value ' - 'or raise an\n' - ' "AttributeError" exception.\n' - '\n' - ' Note that if the attribute is found through the ' - 'normal mechanism,\n' - ' "__getattr__()" is not called. (This is an ' - 'intentional asymmetry\n' - ' between "__getattr__()" and "__setattr__()".) This is ' - 'done both for\n' - ' efficiency reasons and because otherwise ' - '"__getattr__()" would have\n' - ' no way to access other attributes of the instance. ' - 'Note that at\n' - ' least for instance variables, you can fake total ' - 'control by not\n' - ' inserting any values in the instance attribute ' - 'dictionary (but\n' - ' instead inserting them in another object). See the\n' - ' "__getattribute__()" method below for a way to ' - 'actually get total\n' - ' control in new-style classes.\n' - '\n' - 'object.__setattr__(self, name, value)\n' - '\n' - ' Called when an attribute assignment is attempted. ' - 'This is called\n' - ' instead of the normal mechanism (i.e. store the value ' - 'in the\n' - ' instance dictionary). *name* is the attribute name, ' - '*value* is the\n' - ' value to be assigned to it.\n' - '\n' - ' If "__setattr__()" wants to assign to an instance ' - 'attribute, it\n' - ' should not simply execute "self.name = value" --- ' - 'this would cause\n' - ' a recursive call to itself. Instead, it should ' - 'insert the value in\n' - ' the dictionary of instance attributes, e.g., ' - '"self.__dict__[name] =\n' - ' value". For new-style classes, rather than accessing ' - 'the instance\n' - ' dictionary, it should call the base class method with ' - 'the same\n' - ' name, for example, "object.__setattr__(self, name, ' - 'value)".\n' - '\n' - 'object.__delattr__(self, name)\n' - '\n' - ' Like "__setattr__()" but for attribute deletion ' - 'instead of\n' - ' assignment. This should only be implemented if "del ' - 'obj.name" is\n' - ' meaningful for the object.\n' - '\n' - '\n' - 'More attribute access for new-style classes\n' - '===========================================\n' - '\n' - 'The following methods only apply to new-style classes.\n' - '\n' - 'object.__getattribute__(self, name)\n' - '\n' - ' Called unconditionally to implement attribute ' - 'accesses for\n' - ' instances of the class. If the class also defines ' - '"__getattr__()",\n' - ' the latter will not be called unless ' - '"__getattribute__()" either\n' - ' calls it explicitly or raises an "AttributeError". ' - 'This method\n' - ' should return the (computed) attribute value or raise ' - 'an\n' - ' "AttributeError" exception. In order to avoid ' - 'infinite recursion in\n' - ' this method, its implementation should always call ' - 'the base class\n' - ' method with the same name to access any attributes it ' - 'needs, for\n' - ' example, "object.__getattribute__(self, name)".\n' - '\n' - ' Note: This method may still be bypassed when looking ' - 'up special\n' - ' methods as the result of implicit invocation via ' - 'language syntax\n' - ' or built-in functions. See Special method lookup ' - 'for new-style\n' - ' classes.\n' - '\n' - '\n' - 'Implementing Descriptors\n' - '========================\n' - '\n' - 'The following methods only apply when an instance of the ' - 'class\n' - 'containing the method (a so-called *descriptor* class) ' - 'appears in an\n' - '*owner* class (the descriptor must be in either the ' - "owner's class\n" - 'dictionary or in the class dictionary for one of its ' - 'parents). In the\n' - 'examples below, "the attribute" refers to the attribute ' - 'whose name is\n' - "the key of the property in the owner class' " - '"__dict__".\n' - '\n' - 'object.__get__(self, instance, owner)\n' - '\n' - ' Called to get the attribute of the owner class (class ' - 'attribute\n' - ' access) or of an instance of that class (instance ' - 'attribute\n' - ' access). *owner* is always the owner class, while ' - '*instance* is the\n' - ' instance that the attribute was accessed through, or ' - '"None" when\n' - ' the attribute is accessed through the *owner*. This ' - 'method should\n' - ' return the (computed) attribute value or raise an ' - '"AttributeError"\n' - ' exception.\n' - '\n' - 'object.__set__(self, instance, value)\n' - '\n' - ' Called to set the attribute on an instance *instance* ' - 'of the owner\n' - ' class to a new value, *value*.\n' - '\n' - 'object.__delete__(self, instance)\n' - '\n' - ' Called to delete the attribute on an instance ' - '*instance* of the\n' - ' owner class.\n' - '\n' - '\n' - 'Invoking Descriptors\n' - '====================\n' - '\n' - 'In general, a descriptor is an object attribute with ' - '"binding\n' - 'behavior", one whose attribute access has been ' - 'overridden by methods\n' - 'in the descriptor protocol: "__get__()", "__set__()", ' - 'and\n' - '"__delete__()". If any of those methods are defined for ' - 'an object, it\n' - 'is said to be a descriptor.\n' - '\n' - 'The default behavior for attribute access is to get, ' - 'set, or delete\n' - "the attribute from an object's dictionary. For instance, " - '"a.x" has a\n' - 'lookup chain starting with "a.__dict__[\'x\']", then\n' - '"type(a).__dict__[\'x\']", and continuing through the ' - 'base classes of\n' - '"type(a)" excluding metaclasses.\n' - '\n' - 'However, if the looked-up value is an object defining ' - 'one of the\n' - 'descriptor methods, then Python may override the default ' - 'behavior and\n' - 'invoke the descriptor method instead. Where this occurs ' - 'in the\n' - 'precedence chain depends on which descriptor methods ' - 'were defined and\n' - 'how they were called. Note that descriptors are only ' - 'invoked for new\n' - 'style objects or classes (ones that subclass "object()" ' - 'or "type()").\n' - '\n' - 'The starting point for descriptor invocation is a ' - 'binding, "a.x". How\n' - 'the arguments are assembled depends on "a":\n' - '\n' - 'Direct Call\n' - ' The simplest and least common call is when user code ' - 'directly\n' - ' invokes a descriptor method: "x.__get__(a)".\n' - '\n' - 'Instance Binding\n' - ' If binding to a new-style object instance, "a.x" is ' - 'transformed\n' - ' into the call: "type(a).__dict__[\'x\'].__get__(a, ' - 'type(a))".\n' - '\n' - 'Class Binding\n' - ' If binding to a new-style class, "A.x" is transformed ' - 'into the\n' - ' call: "A.__dict__[\'x\'].__get__(None, A)".\n' - '\n' - 'Super Binding\n' - ' If "a" is an instance of "super", then the binding ' - '"super(B,\n' - ' obj).m()" searches "obj.__class__.__mro__" for the ' - 'base class "A"\n' - ' immediately preceding "B" and then invokes the ' - 'descriptor with the\n' - ' call: "A.__dict__[\'m\'].__get__(obj, ' - 'obj.__class__)".\n' - '\n' - 'For instance bindings, the precedence of descriptor ' - 'invocation depends\n' - 'on the which descriptor methods are defined. A ' - 'descriptor can define\n' - 'any combination of "__get__()", "__set__()" and ' - '"__delete__()". If it\n' - 'does not define "__get__()", then accessing the ' - 'attribute will return\n' - 'the descriptor object itself unless there is a value in ' - "the object's\n" - 'instance dictionary. If the descriptor defines ' - '"__set__()" and/or\n' - '"__delete__()", it is a data descriptor; if it defines ' - 'neither, it is\n' - 'a non-data descriptor. Normally, data descriptors ' - 'define both\n' - '"__get__()" and "__set__()", while non-data descriptors ' - 'have just the\n' - '"__get__()" method. Data descriptors with "__set__()" ' - 'and "__get__()"\n' - 'defined always override a redefinition in an instance ' - 'dictionary. In\n' - 'contrast, non-data descriptors can be overridden by ' - 'instances.\n' - '\n' - 'Python methods (including "staticmethod()" and ' - '"classmethod()") are\n' - 'implemented as non-data descriptors. Accordingly, ' - 'instances can\n' - 'redefine and override methods. This allows individual ' - 'instances to\n' - 'acquire behaviors that differ from other instances of ' - 'the same class.\n' - '\n' - 'The "property()" function is implemented as a data ' - 'descriptor.\n' - 'Accordingly, instances cannot override the behavior of a ' - 'property.\n' - '\n' - '\n' - '__slots__\n' - '=========\n' - '\n' - 'By default, instances of both old and new-style classes ' - 'have a\n' - 'dictionary for attribute storage. This wastes space for ' - 'objects\n' - 'having very few instance variables. The space ' - 'consumption can become\n' - 'acute when creating large numbers of instances.\n' - '\n' - 'The default can be overridden by defining *__slots__* in ' - 'a new-style\n' - 'class definition. The *__slots__* declaration takes a ' - 'sequence of\n' - 'instance variables and reserves just enough space in ' - 'each instance to\n' - 'hold a value for each variable. Space is saved because ' - '*__dict__* is\n' - 'not created for each instance.\n' - '\n' - '__slots__\n' - '\n' - ' This class variable can be assigned a string, ' - 'iterable, or sequence\n' - ' of strings with variable names used by instances. If ' - 'defined in a\n' - ' new-style class, *__slots__* reserves space for the ' - 'declared\n' - ' variables and prevents the automatic creation of ' - '*__dict__* and\n' - ' *__weakref__* for each instance.\n' - '\n' - ' New in version 2.2.\n' - '\n' - 'Notes on using *__slots__*\n' - '\n' - '* When inheriting from a class without *__slots__*, the ' - '*__dict__*\n' - ' attribute of that class will always be accessible, so ' - 'a *__slots__*\n' - ' definition in the subclass is meaningless.\n' - '\n' - '* Without a *__dict__* variable, instances cannot be ' - 'assigned new\n' - ' variables not listed in the *__slots__* definition. ' - 'Attempts to\n' - ' assign to an unlisted variable name raises ' - '"AttributeError". If\n' - ' dynamic assignment of new variables is desired, then ' - 'add\n' - ' "\'__dict__\'" to the sequence of strings in the ' - '*__slots__*\n' - ' declaration.\n' - '\n' - ' Changed in version 2.3: Previously, adding ' - '"\'__dict__\'" to the\n' - ' *__slots__* declaration would not enable the ' - 'assignment of new\n' - ' attributes not specifically listed in the sequence of ' - 'instance\n' - ' variable names.\n' - '\n' - '* Without a *__weakref__* variable for each instance, ' - 'classes\n' - ' defining *__slots__* do not support weak references to ' - 'its\n' - ' instances. If weak reference support is needed, then ' - 'add\n' - ' "\'__weakref__\'" to the sequence of strings in the ' - '*__slots__*\n' - ' declaration.\n' - '\n' - ' Changed in version 2.3: Previously, adding ' - '"\'__weakref__\'" to the\n' - ' *__slots__* declaration would not enable support for ' - 'weak\n' - ' references.\n' - '\n' - '* *__slots__* are implemented at the class level by ' - 'creating\n' - ' descriptors (Implementing Descriptors) for each ' - 'variable name. As a\n' - ' result, class attributes cannot be used to set default ' - 'values for\n' - ' instance variables defined by *__slots__*; otherwise, ' - 'the class\n' - ' attribute would overwrite the descriptor assignment.\n' - '\n' - '* The action of a *__slots__* declaration is limited to ' - 'the class\n' - ' where it is defined. As a result, subclasses will ' - 'have a *__dict__*\n' - ' unless they also define *__slots__* (which must only ' - 'contain names\n' - ' of any *additional* slots).\n' - '\n' - '* If a class defines a slot also defined in a base ' - 'class, the\n' - ' instance variable defined by the base class slot is ' - 'inaccessible\n' - ' (except by retrieving its descriptor directly from the ' - 'base class).\n' - ' This renders the meaning of the program undefined. In ' - 'the future, a\n' - ' check may be added to prevent this.\n' - '\n' - '* Nonempty *__slots__* does not work for classes derived ' - 'from\n' - ' "variable-length" built-in types such as "long", "str" ' - 'and "tuple".\n' - '\n' - '* Any non-string iterable may be assigned to ' - '*__slots__*. Mappings\n' - ' may also be used; however, in the future, special ' - 'meaning may be\n' - ' assigned to the values corresponding to each key.\n' - '\n' - '* *__class__* assignment works only if both classes have ' - 'the same\n' - ' *__slots__*.\n' - '\n' - ' Changed in version 2.6: Previously, *__class__* ' - 'assignment raised an\n' - ' error if either new or old class had *__slots__*.\n', - 'attribute-references': '\n' - 'Attribute references\n' - '********************\n' - '\n' - 'An attribute reference is a primary followed by a ' - 'period and a name:\n' - '\n' - ' attributeref ::= primary "." identifier\n' - '\n' - 'The primary must evaluate to an object of a type ' - 'that supports\n' - 'attribute references, e.g., a module, list, or an ' - 'instance. This\n' - 'object is then asked to produce the attribute whose ' - 'name is the\n' - 'identifier. If this attribute is not available, the ' - 'exception\n' - '"AttributeError" is raised. Otherwise, the type and ' - 'value of the\n' - 'object produced is determined by the object. ' - 'Multiple evaluations of\n' - 'the same attribute reference may yield different ' - 'objects.\n', - 'augassign': '\n' - 'Augmented assignment statements\n' - '*******************************\n' - '\n' - 'Augmented assignment is the combination, in a single statement, ' - 'of a\n' - 'binary operation and an assignment statement:\n' - '\n' - ' augmented_assignment_stmt ::= augtarget augop ' - '(expression_list | yield_expression)\n' - ' augtarget ::= identifier | attributeref | ' - 'subscription | slicing\n' - ' augop ::= "+=" | "-=" | "*=" | "/=" | ' - '"//=" | "%=" | "**="\n' - ' | ">>=" | "<<=" | "&=" | "^=" | "|="\n' - '\n' - '(See section Primaries for the syntax definitions for the last ' - 'three\n' - 'symbols.)\n' - '\n' - 'An augmented assignment evaluates the target (which, unlike ' - 'normal\n' - 'assignment statements, cannot be an unpacking) and the ' - 'expression\n' - 'list, performs the binary operation specific to the type of ' - 'assignment\n' - 'on the two operands, and assigns the result to the original ' - 'target.\n' - 'The target is only evaluated once.\n' - '\n' - 'An augmented assignment expression like "x += 1" can be ' - 'rewritten as\n' - '"x = x + 1" to achieve a similar, but not exactly equal effect. ' - 'In the\n' - 'augmented version, "x" is only evaluated once. Also, when ' - 'possible,\n' - 'the actual operation is performed *in-place*, meaning that ' - 'rather than\n' - 'creating a new object and assigning that to the target, the old ' - 'object\n' - 'is modified instead.\n' - '\n' - 'With the exception of assigning to tuples and multiple targets ' - 'in a\n' - 'single statement, the assignment done by augmented assignment\n' - 'statements is handled the same way as normal assignments. ' - 'Similarly,\n' - 'with the exception of the possible *in-place* behavior, the ' - 'binary\n' - 'operation performed by augmented assignment is the same as the ' - 'normal\n' - 'binary operations.\n' - '\n' - 'For targets which are attribute references, the same caveat ' - 'about\n' - 'class and instance attributes applies as for regular ' - 'assignments.\n', - 'binary': '\n' - 'Binary arithmetic operations\n' - '****************************\n' - '\n' - 'The binary arithmetic operations have the conventional priority\n' - 'levels. Note that some of these operations also apply to certain ' - 'non-\n' - 'numeric types. Apart from the power operator, there are only two\n' - 'levels, one for multiplicative operators and one for additive\n' - 'operators:\n' - '\n' - ' m_expr ::= u_expr | m_expr "*" u_expr | m_expr "//" u_expr | ' - 'm_expr "/" u_expr\n' - ' | m_expr "%" u_expr\n' - ' a_expr ::= m_expr | a_expr "+" m_expr | a_expr "-" m_expr\n' - '\n' - 'The "*" (multiplication) operator yields the product of its ' - 'arguments.\n' - 'The arguments must either both be numbers, or one argument must be ' - 'an\n' - 'integer (plain or long) and the other must be a sequence. In the\n' - 'former case, the numbers are converted to a common type and then\n' - 'multiplied together. In the latter case, sequence repetition is\n' - 'performed; a negative repetition factor yields an empty sequence.\n' - '\n' - 'The "/" (division) and "//" (floor division) operators yield the\n' - 'quotient of their arguments. The numeric arguments are first\n' - 'converted to a common type. Plain or long integer division yields ' - 'an\n' - 'integer of the same type; the result is that of mathematical ' - 'division\n' - "with the 'floor' function applied to the result. Division by zero\n" - 'raises the "ZeroDivisionError" exception.\n' - '\n' - 'The "%" (modulo) operator yields the remainder from the division ' - 'of\n' - 'the first argument by the second. The numeric arguments are ' - 'first\n' - 'converted to a common type. A zero right argument raises the\n' - '"ZeroDivisionError" exception. The arguments may be floating ' - 'point\n' - 'numbers, e.g., "3.14%0.7" equals "0.34" (since "3.14" equals ' - '"4*0.7 +\n' - '0.34".) The modulo operator always yields a result with the same ' - 'sign\n' - 'as its second operand (or zero); the absolute value of the result ' - 'is\n' - 'strictly smaller than the absolute value of the second operand ' - '[2].\n' - '\n' - 'The integer division and modulo operators are connected by the\n' - 'following identity: "x == (x/y)*y + (x%y)". Integer division and\n' - 'modulo are also connected with the built-in function "divmod()":\n' - '"divmod(x, y) == (x/y, x%y)". These identities don\'t hold for\n' - 'floating point numbers; there similar identities hold ' - 'approximately\n' - 'where "x/y" is replaced by "floor(x/y)" or "floor(x/y) - 1" [3].\n' - '\n' - 'In addition to performing the modulo operation on numbers, the ' - '"%"\n' - 'operator is also overloaded by string and unicode objects to ' - 'perform\n' - 'string formatting (also known as interpolation). The syntax for ' - 'string\n' - 'formatting is described in the Python Library Reference, section\n' - 'String Formatting Operations.\n' - '\n' - 'Deprecated since version 2.3: The floor division operator, the ' - 'modulo\n' - 'operator, and the "divmod()" function are no longer defined for\n' - 'complex numbers. Instead, convert to a floating point number ' - 'using\n' - 'the "abs()" function if appropriate.\n' - '\n' - 'The "+" (addition) operator yields the sum of its arguments. The\n' - 'arguments must either both be numbers or both sequences of the ' - 'same\n' - 'type. In the former case, the numbers are converted to a common ' - 'type\n' - 'and then added together. In the latter case, the sequences are\n' - 'concatenated.\n' - '\n' - 'The "-" (subtraction) operator yields the difference of its ' - 'arguments.\n' - 'The numeric arguments are first converted to a common type.\n', - 'bitwise': '\n' - 'Binary bitwise operations\n' - '*************************\n' - '\n' - 'Each of the three bitwise operations has a different priority ' - 'level:\n' - '\n' - ' and_expr ::= shift_expr | and_expr "&" shift_expr\n' - ' xor_expr ::= and_expr | xor_expr "^" and_expr\n' - ' or_expr ::= xor_expr | or_expr "|" xor_expr\n' - '\n' - 'The "&" operator yields the bitwise AND of its arguments, which ' - 'must\n' - 'be plain or long integers. The arguments are converted to a ' - 'common\n' - 'type.\n' - '\n' - 'The "^" operator yields the bitwise XOR (exclusive OR) of its\n' - 'arguments, which must be plain or long integers. The arguments ' - 'are\n' - 'converted to a common type.\n' - '\n' - 'The "|" operator yields the bitwise (inclusive) OR of its ' - 'arguments,\n' - 'which must be plain or long integers. The arguments are ' - 'converted to\n' - 'a common type.\n', - 'bltin-code-objects': '\n' - 'Code Objects\n' - '************\n' - '\n' - 'Code objects are used by the implementation to ' - 'represent "pseudo-\n' - 'compiled" executable Python code such as a function ' - 'body. They differ\n' - "from function objects because they don't contain a " - 'reference to their\n' - 'global execution environment. Code objects are ' - 'returned by the built-\n' - 'in "compile()" function and can be extracted from ' - 'function objects\n' - 'through their "func_code" attribute. See also the ' - '"code" module.\n' - '\n' - 'A code object can be executed or evaluated by passing ' - 'it (instead of a\n' - 'source string) to the "exec" statement or the built-in ' - '"eval()"\n' - 'function.\n' - '\n' - 'See The standard type hierarchy for more ' - 'information.\n', - 'bltin-ellipsis-object': '\n' - 'The Ellipsis Object\n' - '*******************\n' - '\n' - 'This object is used by extended slice notation (see ' - 'Slicings). It\n' - 'supports no special operations. There is exactly ' - 'one ellipsis object,\n' - 'named "Ellipsis" (a built-in name).\n' - '\n' - 'It is written as "Ellipsis". When in a subscript, ' - 'it can also be\n' - 'written as "...", for example "seq[...]".\n', - 'bltin-file-objects': '\n' - 'File Objects\n' - '************\n' - '\n' - 'File objects are implemented using C\'s "stdio" ' - 'package and can be\n' - 'created with the built-in "open()" function. File ' - 'objects are also\n' - 'returned by some other built-in functions and methods, ' - 'such as\n' - '"os.popen()" and "os.fdopen()" and the "makefile()" ' - 'method of socket\n' - 'objects. Temporary files can be created using the ' - '"tempfile" module,\n' - 'and high-level file operations such as copying, ' - 'moving, and deleting\n' - 'files and directories can be achieved with the ' - '"shutil" module.\n' - '\n' - 'When a file operation fails for an I/O-related reason, ' - 'the exception\n' - '"IOError" is raised. This includes situations where ' - 'the operation is\n' - 'not defined for some reason, like "seek()" on a tty ' - 'device or writing\n' - 'a file opened for reading.\n' - '\n' - 'Files have the following methods:\n' - '\n' - 'file.close()\n' - '\n' - ' Close the file. A closed file cannot be read or ' - 'written any more.\n' - ' Any operation which requires that the file be open ' - 'will raise a\n' - ' "ValueError" after the file has been closed. ' - 'Calling "close()"\n' - ' more than once is allowed.\n' - '\n' - ' As of Python 2.5, you can avoid having to call this ' - 'method\n' - ' explicitly if you use the "with" statement. For ' - 'example, the\n' - ' following code will automatically close *f* when ' - 'the "with" block\n' - ' is exited:\n' - '\n' - ' from __future__ import with_statement # This ' - "isn't required in Python 2.6\n" - '\n' - ' with open("hello.txt") as f:\n' - ' for line in f:\n' - ' print line,\n' - '\n' - ' In older versions of Python, you would have needed ' - 'to do this to\n' - ' get the same effect:\n' - '\n' - ' f = open("hello.txt")\n' - ' try:\n' - ' for line in f:\n' - ' print line,\n' - ' finally:\n' - ' f.close()\n' - '\n' - ' Note: Not all "file-like" types in Python support ' - 'use as a\n' - ' context manager for the "with" statement. If ' - 'your code is\n' - ' intended to work with any file-like object, you ' - 'can use the\n' - ' function "contextlib.closing()" instead of using ' - 'the object\n' - ' directly.\n' - '\n' - 'file.flush()\n' - '\n' - ' Flush the internal buffer, like "stdio"\'s ' - '"fflush()". This may be\n' - ' a no-op on some file-like objects.\n' - '\n' - ' Note: "flush()" does not necessarily write the ' - "file's data to\n" - ' disk. Use "flush()" followed by "os.fsync()" to ' - 'ensure this\n' - ' behavior.\n' - '\n' - 'file.fileno()\n' - '\n' - ' Return the integer "file descriptor" that is used ' - 'by the underlying\n' - ' implementation to request I/O operations from the ' - 'operating system.\n' - ' This can be useful for other, lower level ' - 'interfaces that use file\n' - ' descriptors, such as the "fcntl" module or ' - '"os.read()" and friends.\n' - '\n' - ' Note: File-like objects which do not have a real ' - 'file descriptor\n' - ' should *not* provide this method!\n' - '\n' - 'file.isatty()\n' - '\n' - ' Return "True" if the file is connected to a ' - 'tty(-like) device, else\n' - ' "False".\n' - '\n' - ' Note: If a file-like object is not associated with ' - 'a real file,\n' - ' this method should *not* be implemented.\n' - '\n' - 'file.next()\n' - '\n' - ' A file object is its own iterator, for example ' - '"iter(f)" returns\n' - ' *f* (unless *f* is closed). When a file is used as ' - 'an iterator,\n' - ' typically in a "for" loop (for example, "for line ' - 'in f: print\n' - ' line.strip()"), the "next()" method is called ' - 'repeatedly. This\n' - ' method returns the next input line, or raises ' - '"StopIteration" when\n' - ' EOF is hit when the file is open for reading ' - '(behavior is undefined\n' - ' when the file is open for writing). In order to ' - 'make a "for" loop\n' - ' the most efficient way of looping over the lines of ' - 'a file (a very\n' - ' common operation), the "next()" method uses a ' - 'hidden read-ahead\n' - ' buffer. As a consequence of using a read-ahead ' - 'buffer, combining\n' - ' "next()" with other file methods (like ' - '"readline()") does not work\n' - ' right. However, using "seek()" to reposition the ' - 'file to an\n' - ' absolute position will flush the read-ahead ' - 'buffer.\n' - '\n' - ' New in version 2.3.\n' - '\n' - 'file.read([size])\n' - '\n' - ' Read at most *size* bytes from the file (less if ' - 'the read hits EOF\n' - ' before obtaining *size* bytes). If the *size* ' - 'argument is negative\n' - ' or omitted, read all data until EOF is reached. ' - 'The bytes are\n' - ' returned as a string object. An empty string is ' - 'returned when EOF\n' - ' is encountered immediately. (For certain files, ' - 'like ttys, it\n' - ' makes sense to continue reading after an EOF is ' - 'hit.) Note that\n' - ' this method may call the underlying C function ' - '"fread()" more than\n' - ' once in an effort to acquire as close to *size* ' - 'bytes as possible.\n' - ' Also note that when in non-blocking mode, less data ' - 'than was\n' - ' requested may be returned, even if no *size* ' - 'parameter was given.\n' - '\n' - ' Note: This function is simply a wrapper for the ' - 'underlying\n' - ' "fread()" C function, and will behave the same in ' - 'corner cases,\n' - ' such as whether the EOF value is cached.\n' - '\n' - 'file.readline([size])\n' - '\n' - ' Read one entire line from the file. A trailing ' - 'newline character\n' - ' is kept in the string (but may be absent when a ' - 'file ends with an\n' - ' incomplete line). [6] If the *size* argument is ' - 'present and non-\n' - ' negative, it is a maximum byte count (including the ' - 'trailing\n' - ' newline) and an incomplete line may be returned. ' - 'When *size* is not\n' - ' 0, an empty string is returned *only* when EOF is ' - 'encountered\n' - ' immediately.\n' - '\n' - ' Note: Unlike "stdio"\'s "fgets()", the returned ' - 'string contains\n' - ' null characters ("\'\\0\'") if they occurred in ' - 'the input.\n' - '\n' - 'file.readlines([sizehint])\n' - '\n' - ' Read until EOF using "readline()" and return a list ' - 'containing the\n' - ' lines thus read. If the optional *sizehint* ' - 'argument is present,\n' - ' instead of reading up to EOF, whole lines totalling ' - 'approximately\n' - ' *sizehint* bytes (possibly after rounding up to an ' - 'internal buffer\n' - ' size) are read. Objects implementing a file-like ' - 'interface may\n' - ' choose to ignore *sizehint* if it cannot be ' - 'implemented, or cannot\n' - ' be implemented efficiently.\n' - '\n' - 'file.xreadlines()\n' - '\n' - ' This method returns the same thing as "iter(f)".\n' - '\n' - ' New in version 2.1.\n' - '\n' - ' Deprecated since version 2.3: Use "for line in ' - 'file" instead.\n' - '\n' - 'file.seek(offset[, whence])\n' - '\n' - ' Set the file\'s current position, like "stdio"\'s ' - '"fseek()". The\n' - ' *whence* argument is optional and defaults to ' - '"os.SEEK_SET" or "0"\n' - ' (absolute file positioning); other values are ' - '"os.SEEK_CUR" or "1"\n' - ' (seek relative to the current position) and ' - '"os.SEEK_END" or "2"\n' - " (seek relative to the file's end). There is no " - 'return value.\n' - '\n' - ' For example, "f.seek(2, os.SEEK_CUR)" advances the ' - 'position by two\n' - ' and "f.seek(-3, os.SEEK_END)" sets the position to ' - 'the third to\n' - ' last.\n' - '\n' - ' Note that if the file is opened for appending (mode ' - '"\'a\'" or\n' - ' "\'a+\'"), any "seek()" operations will be undone ' - 'at the next write.\n' - ' If the file is only opened for writing in append ' - 'mode (mode "\'a\'"),\n' - ' this method is essentially a no-op, but it remains ' - 'useful for files\n' - ' opened in append mode with reading enabled (mode ' - '"\'a+\'"). If the\n' - ' file is opened in text mode (without "\'b\'"), only ' - 'offsets returned\n' - ' by "tell()" are legal. Use of other offsets causes ' - 'undefined\n' - ' behavior.\n' - '\n' - ' Note that not all file objects are seekable.\n' - '\n' - ' Changed in version 2.6: Passing float values as ' - 'offset has been\n' - ' deprecated.\n' - '\n' - 'file.tell()\n' - '\n' - " Return the file's current position, like " - '"stdio"\'s "ftell()".\n' - '\n' - ' Note: On Windows, "tell()" can return illegal ' - 'values (after an\n' - ' "fgets()") when reading files with Unix-style ' - 'line-endings. Use\n' - ' binary mode ("\'rb\'") to circumvent this ' - 'problem.\n' - '\n' - 'file.truncate([size])\n' - '\n' - " Truncate the file's size. If the optional *size* " - 'argument is\n' - ' present, the file is truncated to (at most) that ' - 'size. The size\n' - ' defaults to the current position. The current file ' - 'position is not\n' - ' changed. Note that if a specified size exceeds the ' - "file's current\n" - ' size, the result is platform-dependent: ' - 'possibilities include that\n' - ' the file may remain unchanged, increase to the ' - 'specified size as if\n' - ' zero-filled, or increase to the specified size with ' - 'undefined new\n' - ' content. Availability: Windows, many Unix ' - 'variants.\n' - '\n' - 'file.write(str)\n' - '\n' - ' Write a string to the file. There is no return ' - 'value. Due to\n' - ' buffering, the string may not actually show up in ' - 'the file until\n' - ' the "flush()" or "close()" method is called.\n' - '\n' - 'file.writelines(sequence)\n' - '\n' - ' Write a sequence of strings to the file. The ' - 'sequence can be any\n' - ' iterable object producing strings, typically a list ' - 'of strings.\n' - ' There is no return value. (The name is intended to ' - 'match\n' - ' "readlines()"; "writelines()" does not add line ' - 'separators.)\n' - '\n' - 'Files support the iterator protocol. Each iteration ' - 'returns the same\n' - 'result as "readline()", and iteration ends when the ' - '"readline()"\n' - 'method returns an empty string.\n' - '\n' - 'File objects also offer a number of other interesting ' - 'attributes.\n' - 'These are not required for file-like objects, but ' - 'should be\n' - 'implemented if they make sense for the particular ' - 'object.\n' - '\n' - 'file.closed\n' - '\n' - ' bool indicating the current state of the file ' - 'object. This is a\n' - ' read-only attribute; the "close()" method changes ' - 'the value. It may\n' - ' not be available on all file-like objects.\n' - '\n' - 'file.encoding\n' - '\n' - ' The encoding that this file uses. When Unicode ' - 'strings are written\n' - ' to a file, they will be converted to byte strings ' - 'using this\n' - ' encoding. In addition, when the file is connected ' - 'to a terminal,\n' - ' the attribute gives the encoding that the terminal ' - 'is likely to use\n' - ' (that information might be incorrect if the user ' - 'has misconfigured\n' - ' the terminal). The attribute is read-only and may ' - 'not be present\n' - ' on all file-like objects. It may also be "None", in ' - 'which case the\n' - ' file uses the system default encoding for ' - 'converting Unicode\n' - ' strings.\n' - '\n' - ' New in version 2.3.\n' - '\n' - 'file.errors\n' - '\n' - ' The Unicode error handler used along with the ' - 'encoding.\n' - '\n' - ' New in version 2.6.\n' - '\n' - 'file.mode\n' - '\n' - ' The I/O mode for the file. If the file was created ' - 'using the\n' - ' "open()" built-in function, this will be the value ' - 'of the *mode*\n' - ' parameter. This is a read-only attribute and may ' - 'not be present on\n' - ' all file-like objects.\n' - '\n' - 'file.name\n' - '\n' - ' If the file object was created using "open()", the ' - 'name of the\n' - ' file. Otherwise, some string that indicates the ' - 'source of the file\n' - ' object, of the form "<...>". This is a read-only ' - 'attribute and may\n' - ' not be present on all file-like objects.\n' - '\n' - 'file.newlines\n' - '\n' - ' If Python was built with *universal newlines* ' - 'enabled (the default)\n' - ' this read-only attribute exists, and for files ' - 'opened in universal\n' - ' newline read mode it keeps track of the types of ' - 'newlines\n' - ' encountered while reading the file. The values it ' - 'can take are\n' - ' "\'\\r\'", "\'\\n\'", "\'\\r\\n\'", "None" ' - '(unknown, no newlines read yet) or\n' - ' a tuple containing all the newline types seen, to ' - 'indicate that\n' - ' multiple newline conventions were encountered. For ' - 'files not opened\n' - ' in universal newlines read mode the value of this ' - 'attribute will be\n' - ' "None".\n' - '\n' - 'file.softspace\n' - '\n' - ' Boolean that indicates whether a space character ' - 'needs to be\n' - ' printed before another value when using the "print" ' - 'statement.\n' - ' Classes that are trying to simulate a file object ' - 'should also have\n' - ' a writable "softspace" attribute, which should be ' - 'initialized to\n' - ' zero. This will be automatic for most classes ' - 'implemented in\n' - ' Python (care may be needed for objects that ' - 'override attribute\n' - ' access); types implemented in C will have to ' - 'provide a writable\n' - ' "softspace" attribute.\n' - '\n' - ' Note: This attribute is not used to control the ' - '"print"\n' - ' statement, but to allow the implementation of ' - '"print" to keep\n' - ' track of its internal state.\n', - 'bltin-null-object': '\n' - 'The Null Object\n' - '***************\n' - '\n' - "This object is returned by functions that don't " - 'explicitly return a\n' - 'value. It supports no special operations. There is ' - 'exactly one null\n' - 'object, named "None" (a built-in name).\n' - '\n' - 'It is written as "None".\n', - 'bltin-type-objects': '\n' - 'Type Objects\n' - '************\n' - '\n' - 'Type objects represent the various object types. An ' - "object's type is\n" - 'accessed by the built-in function "type()". There are ' - 'no special\n' - 'operations on types. The standard module "types" ' - 'defines names for\n' - 'all standard built-in types.\n' - '\n' - 'Types are written like this: "".\n', - 'booleans': '\n' - 'Boolean operations\n' - '******************\n' - '\n' - ' or_test ::= and_test | or_test "or" and_test\n' - ' and_test ::= not_test | and_test "and" not_test\n' - ' not_test ::= comparison | "not" not_test\n' - '\n' - 'In the context of Boolean operations, and also when expressions ' - 'are\n' - 'used by control flow statements, the following values are ' - 'interpreted\n' - 'as false: "False", "None", numeric zero of all types, and empty\n' - 'strings and containers (including strings, tuples, lists,\n' - 'dictionaries, sets and frozensets). All other values are ' - 'interpreted\n' - 'as true. (See the "__nonzero__()" special method for a way to ' - 'change\n' - 'this.)\n' - '\n' - 'The operator "not" yields "True" if its argument is false, ' - '"False"\n' - 'otherwise.\n' - '\n' - 'The expression "x and y" first evaluates *x*; if *x* is false, ' - 'its\n' - 'value is returned; otherwise, *y* is evaluated and the resulting ' - 'value\n' - 'is returned.\n' - '\n' - 'The expression "x or y" first evaluates *x*; if *x* is true, its ' - 'value\n' - 'is returned; otherwise, *y* is evaluated and the resulting value ' - 'is\n' - 'returned.\n' - '\n' - '(Note that neither "and" nor "or" restrict the value and type ' - 'they\n' - 'return to "False" and "True", but rather return the last ' - 'evaluated\n' - 'argument. This is sometimes useful, e.g., if "s" is a string ' - 'that\n' - 'should be replaced by a default value if it is empty, the ' - 'expression\n' - '"s or \'foo\'" yields the desired value. Because "not" has to ' - 'invent a\n' - 'value anyway, it does not bother to return a value of the same ' - 'type as\n' - 'its argument, so e.g., "not \'foo\'" yields "False", not ' - '"\'\'".)\n', - 'break': '\n' - 'The "break" statement\n' - '*********************\n' - '\n' - ' break_stmt ::= "break"\n' - '\n' - '"break" may only occur syntactically nested in a "for" or "while"\n' - 'loop, but not nested in a function or class definition within that\n' - 'loop.\n' - '\n' - 'It terminates the nearest enclosing loop, skipping the optional ' - '"else"\n' - 'clause if the loop has one.\n' - '\n' - 'If a "for" loop is terminated by "break", the loop control target\n' - 'keeps its current value.\n' - '\n' - 'When "break" passes control out of a "try" statement with a ' - '"finally"\n' - 'clause, that "finally" clause is executed before really leaving ' - 'the\n' - 'loop.\n', - 'callable-types': '\n' - 'Emulating callable objects\n' - '**************************\n' - '\n' - 'object.__call__(self[, args...])\n' - '\n' - ' Called when the instance is "called" as a function; if ' - 'this method\n' - ' is defined, "x(arg1, arg2, ...)" is a shorthand for\n' - ' "x.__call__(arg1, arg2, ...)".\n', - 'calls': '\n' - 'Calls\n' - '*****\n' - '\n' - 'A call calls a callable object (e.g., a *function*) with a ' - 'possibly\n' - 'empty series of *arguments*:\n' - '\n' - ' call ::= primary "(" [argument_list [","]\n' - ' | expression genexpr_for] ")"\n' - ' argument_list ::= positional_arguments ["," ' - 'keyword_arguments]\n' - ' ["," "*" expression] ["," ' - 'keyword_arguments]\n' - ' ["," "**" expression]\n' - ' | keyword_arguments ["," "*" expression]\n' - ' ["," "**" expression]\n' - ' | "*" expression ["," keyword_arguments] ["," ' - '"**" expression]\n' - ' | "**" expression\n' - ' positional_arguments ::= expression ("," expression)*\n' - ' keyword_arguments ::= keyword_item ("," keyword_item)*\n' - ' keyword_item ::= identifier "=" expression\n' - '\n' - 'A trailing comma may be present after the positional and keyword\n' - 'arguments but does not affect the semantics.\n' - '\n' - 'The primary must evaluate to a callable object (user-defined\n' - 'functions, built-in functions, methods of built-in objects, class\n' - 'objects, methods of class instances, and certain class instances\n' - 'themselves are callable; extensions may define additional callable\n' - 'object types). All argument expressions are evaluated before the ' - 'call\n' - 'is attempted. Please refer to section Function definitions for ' - 'the\n' - 'syntax of formal *parameter* lists.\n' - '\n' - 'If keyword arguments are present, they are first converted to\n' - 'positional arguments, as follows. First, a list of unfilled slots ' - 'is\n' - 'created for the formal parameters. If there are N positional\n' - 'arguments, they are placed in the first N slots. Next, for each\n' - 'keyword argument, the identifier is used to determine the\n' - 'corresponding slot (if the identifier is the same as the first ' - 'formal\n' - 'parameter name, the first slot is used, and so on). If the slot ' - 'is\n' - 'already filled, a "TypeError" exception is raised. Otherwise, the\n' - 'value of the argument is placed in the slot, filling it (even if ' - 'the\n' - 'expression is "None", it fills the slot). When all arguments have\n' - 'been processed, the slots that are still unfilled are filled with ' - 'the\n' - 'corresponding default value from the function definition. ' - '(Default\n' - 'values are calculated, once, when the function is defined; thus, a\n' - 'mutable object such as a list or dictionary used as default value ' - 'will\n' - "be shared by all calls that don't specify an argument value for " - 'the\n' - 'corresponding slot; this should usually be avoided.) If there are ' - 'any\n' - 'unfilled slots for which no default value is specified, a ' - '"TypeError"\n' - 'exception is raised. Otherwise, the list of filled slots is used ' - 'as\n' - 'the argument list for the call.\n' - '\n' - '**CPython implementation detail:** An implementation may provide\n' - 'built-in functions whose positional parameters do not have names, ' - 'even\n' - "if they are 'named' for the purpose of documentation, and which\n" - 'therefore cannot be supplied by keyword. In CPython, this is the ' - 'case\n' - 'for functions implemented in C that use "PyArg_ParseTuple()" to ' - 'parse\n' - 'their arguments.\n' - '\n' - 'If there are more positional arguments than there are formal ' - 'parameter\n' - 'slots, a "TypeError" exception is raised, unless a formal ' - 'parameter\n' - 'using the syntax "*identifier" is present; in this case, that ' - 'formal\n' - 'parameter receives a tuple containing the excess positional ' - 'arguments\n' - '(or an empty tuple if there were no excess positional arguments).\n' - '\n' - 'If any keyword argument does not correspond to a formal parameter\n' - 'name, a "TypeError" exception is raised, unless a formal parameter\n' - 'using the syntax "**identifier" is present; in this case, that ' - 'formal\n' - 'parameter receives a dictionary containing the excess keyword\n' - 'arguments (using the keywords as keys and the argument values as\n' - 'corresponding values), or a (new) empty dictionary if there were ' - 'no\n' - 'excess keyword arguments.\n' - '\n' - 'If the syntax "*expression" appears in the function call, ' - '"expression"\n' - 'must evaluate to an iterable. Elements from this iterable are ' - 'treated\n' - 'as if they were additional positional arguments; if there are\n' - 'positional arguments *x1*, ..., *xN*, and "expression" evaluates to ' - 'a\n' - 'sequence *y1*, ..., *yM*, this is equivalent to a call with M+N\n' - 'positional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n' - '\n' - 'A consequence of this is that although the "*expression" syntax ' - 'may\n' - 'appear *after* some keyword arguments, it is processed *before* ' - 'the\n' - 'keyword arguments (and the "**expression" argument, if any -- see\n' - 'below). So:\n' - '\n' - ' >>> def f(a, b):\n' - ' ... print a, b\n' - ' ...\n' - ' >>> f(b=1, *(2,))\n' - ' 2 1\n' - ' >>> f(a=1, *(2,))\n' - ' Traceback (most recent call last):\n' - ' File "", line 1, in ?\n' - " TypeError: f() got multiple values for keyword argument 'a'\n" - ' >>> f(1, *(2,))\n' - ' 1 2\n' - '\n' - 'It is unusual for both keyword arguments and the "*expression" ' - 'syntax\n' - 'to be used in the same call, so in practice this confusion does ' - 'not\n' - 'arise.\n' - '\n' - 'If the syntax "**expression" appears in the function call,\n' - '"expression" must evaluate to a mapping, the contents of which are\n' - 'treated as additional keyword arguments. In the case of a keyword\n' - 'appearing in both "expression" and as an explicit keyword argument, ' - 'a\n' - '"TypeError" exception is raised.\n' - '\n' - 'Formal parameters using the syntax "*identifier" or "**identifier"\n' - 'cannot be used as positional argument slots or as keyword argument\n' - 'names. Formal parameters using the syntax "(sublist)" cannot be ' - 'used\n' - 'as keyword argument names; the outermost sublist corresponds to a\n' - 'single unnamed argument slot, and the argument value is assigned ' - 'to\n' - 'the sublist using the usual tuple assignment rules after all other\n' - 'parameter processing is done.\n' - '\n' - 'A call always returns some value, possibly "None", unless it raises ' - 'an\n' - 'exception. How this value is computed depends on the type of the\n' - 'callable object.\n' - '\n' - 'If it is---\n' - '\n' - 'a user-defined function:\n' - ' The code block for the function is executed, passing it the\n' - ' argument list. The first thing the code block will do is bind ' - 'the\n' - ' formal parameters to the arguments; this is described in ' - 'section\n' - ' Function definitions. When the code block executes a "return"\n' - ' statement, this specifies the return value of the function ' - 'call.\n' - '\n' - 'a built-in function or method:\n' - ' The result is up to the interpreter; see Built-in Functions for ' - 'the\n' - ' descriptions of built-in functions and methods.\n' - '\n' - 'a class object:\n' - ' A new instance of that class is returned.\n' - '\n' - 'a class instance method:\n' - ' The corresponding user-defined function is called, with an ' - 'argument\n' - ' list that is one longer than the argument list of the call: the\n' - ' instance becomes the first argument.\n' - '\n' - 'a class instance:\n' - ' The class must define a "__call__()" method; the effect is then ' - 'the\n' - ' same as if that method was called.\n', - 'class': '\n' - 'Class definitions\n' - '*****************\n' - '\n' - 'A class definition defines a class object (see section The ' - 'standard\n' - 'type hierarchy):\n' - '\n' - ' classdef ::= "class" classname [inheritance] ":" suite\n' - ' inheritance ::= "(" [expression_list] ")"\n' - ' classname ::= identifier\n' - '\n' - 'A class definition is an executable statement. It first evaluates ' - 'the\n' - 'inheritance list, if present. Each item in the inheritance list\n' - 'should evaluate to a class object or class type which allows\n' - "subclassing. The class's suite is then executed in a new " - 'execution\n' - 'frame (see section Naming and binding), using a newly created ' - 'local\n' - 'namespace and the original global namespace. (Usually, the suite\n' - "contains only function definitions.) When the class's suite " - 'finishes\n' - 'execution, its execution frame is discarded but its local namespace ' - 'is\n' - 'saved. [4] A class object is then created using the inheritance ' - 'list\n' - 'for the base classes and the saved local namespace for the ' - 'attribute\n' - 'dictionary. The class name is bound to this class object in the\n' - 'original local namespace.\n' - '\n' - "**Programmer's note:** Variables defined in the class definition " - 'are\n' - 'class variables; they are shared by all instances. To create ' - 'instance\n' - 'variables, they can be set in a method with "self.name = value". ' - 'Both\n' - 'class and instance variables are accessible through the notation\n' - '""self.name"", and an instance variable hides a class variable ' - 'with\n' - 'the same name when accessed in this way. Class variables can be ' - 'used\n' - 'as defaults for instance variables, but using mutable values there ' - 'can\n' - 'lead to unexpected results. For *new-style class*es, descriptors ' - 'can\n' - 'be used to create instance variables with different implementation\n' - 'details.\n' - '\n' - 'Class definitions, like function definitions, may be wrapped by one ' - 'or\n' - 'more *decorator* expressions. The evaluation rules for the ' - 'decorator\n' - 'expressions are the same as for functions. The result must be a ' - 'class\n' - 'object, which is then bound to the class name.\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] The exception is propagated to the invocation stack unless\n' - ' there is a "finally" clause which happens to raise another\n' - ' exception. That new exception causes the old one to be lost.\n' - '\n' - '[2] Currently, control "flows off the end" except in the case of\n' - ' an exception or the execution of a "return", "continue", or\n' - ' "break" statement.\n' - '\n' - '[3] A string literal appearing as the first statement in the\n' - ' function body is transformed into the function\'s "__doc__"\n' - " attribute and therefore the function's *docstring*.\n" - '\n' - '[4] A string literal appearing as the first statement in the class\n' - ' body is transformed into the namespace\'s "__doc__" item and\n' - " therefore the class's *docstring*.\n", - 'comparisons': '\n' - 'Comparisons\n' - '***********\n' - '\n' - 'Unlike C, all comparison operations in Python have the same ' - 'priority,\n' - 'which is lower than that of any arithmetic, shifting or ' - 'bitwise\n' - 'operation. Also unlike C, expressions like "a < b < c" have ' - 'the\n' - 'interpretation that is conventional in mathematics:\n' - '\n' - ' comparison ::= or_expr ( comp_operator or_expr )*\n' - ' comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | ' - '"!="\n' - ' | "is" ["not"] | ["not"] "in"\n' - '\n' - 'Comparisons yield boolean values: "True" or "False".\n' - '\n' - 'Comparisons can be chained arbitrarily, e.g., "x < y <= z" ' - 'is\n' - 'equivalent to "x < y and y <= z", except that "y" is ' - 'evaluated only\n' - 'once (but in both cases "z" is not evaluated at all when "x < ' - 'y" is\n' - 'found to be false).\n' - '\n' - 'Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and ' - '*op1*,\n' - '*op2*, ..., *opN* are comparison operators, then "a op1 b op2 ' - 'c ... y\n' - 'opN z" is equivalent to "a op1 b and b op2 c and ... y opN ' - 'z", except\n' - 'that each expression is evaluated at most once.\n' - '\n' - 'Note that "a op1 b op2 c" doesn\'t imply any kind of ' - 'comparison between\n' - '*a* and *c*, so that, e.g., "x < y > z" is perfectly legal ' - '(though\n' - 'perhaps not pretty).\n' - '\n' - 'The forms "<>" and "!=" are equivalent; for consistency with ' - 'C, "!="\n' - 'is preferred; where "!=" is mentioned below "<>" is also ' - 'accepted.\n' - 'The "<>" spelling is considered obsolescent.\n' - '\n' - 'The operators "<", ">", "==", ">=", "<=", and "!=" compare ' - 'the values\n' - 'of two objects. The objects need not have the same type. If ' - 'both are\n' - 'numbers, they are converted to a common type. Otherwise, ' - 'objects of\n' - 'different types *always* compare unequal, and are ordered ' - 'consistently\n' - 'but arbitrarily. You can control comparison behavior of ' - 'objects of\n' - 'non-built-in types by defining a "__cmp__" method or rich ' - 'comparison\n' - 'methods like "__gt__", described in section Special method ' - 'names.\n' - '\n' - '(This unusual definition of comparison was used to simplify ' - 'the\n' - 'definition of operations like sorting and the "in" and "not ' - 'in"\n' - 'operators. In the future, the comparison rules for objects ' - 'of\n' - 'different types are likely to change.)\n' - '\n' - 'Comparison of objects of the same type depends on the type:\n' - '\n' - '* Numbers are compared arithmetically.\n' - '\n' - '* Strings are compared lexicographically using the numeric\n' - ' equivalents (the result of the built-in function "ord()") ' - 'of their\n' - ' characters. Unicode and 8-bit strings are fully ' - 'interoperable in\n' - ' this behavior. [4]\n' - '\n' - '* Tuples and lists are compared lexicographically using ' - 'comparison\n' - ' of corresponding elements. This means that to compare ' - 'equal, each\n' - ' element must compare equal and the two sequences must be of ' - 'the same\n' - ' type and have the same length.\n' - '\n' - ' If not equal, the sequences are ordered the same as their ' - 'first\n' - ' differing elements. For example, "cmp([1,2,x], [1,2,y])" ' - 'returns\n' - ' the same as "cmp(x,y)". If the corresponding element does ' - 'not\n' - ' exist, the shorter sequence is ordered first (for example, ' - '"[1,2] <\n' - ' [1,2,3]").\n' - '\n' - '* Mappings (dictionaries) compare equal if and only if their ' - 'sorted\n' - ' (key, value) lists compare equal. [5] Outcomes other than ' - 'equality\n' - ' are resolved consistently, but are not otherwise defined. ' - '[6]\n' - '\n' - '* Most other objects of built-in types compare unequal unless ' - 'they\n' - ' are the same object; the choice whether one object is ' - 'considered\n' - ' smaller or larger than another one is made arbitrarily but\n' - ' consistently within one execution of a program.\n' - '\n' - 'The operators "in" and "not in" test for collection ' - 'membership. "x in\n' - 's" evaluates to true if *x* is a member of the collection ' - '*s*, and\n' - 'false otherwise. "x not in s" returns the negation of "x in ' - 's". The\n' - 'collection membership test has traditionally been bound to ' - 'sequences;\n' - 'an object is a member of a collection if the collection is a ' - 'sequence\n' - 'and contains an element equal to that object. However, it ' - 'make sense\n' - 'for many other object types to support membership tests ' - 'without being\n' - 'a sequence. In particular, dictionaries (for keys) and sets ' - 'support\n' - 'membership testing.\n' - '\n' - 'For the list and tuple types, "x in y" is true if and only if ' - 'there\n' - 'exists an index *i* such that either "x is y[i]" or "x == ' - 'y[i]" is\n' - 'true.\n' - '\n' - 'For the Unicode and string types, "x in y" is true if and ' - 'only if *x*\n' - 'is a substring of *y*. An equivalent test is "y.find(x) != ' - '-1".\n' - 'Note, *x* and *y* need not be the same type; consequently, ' - '"u\'ab\' in\n' - '\'abc\'" will return "True". Empty strings are always ' - 'considered to be a\n' - 'substring of any other string, so """ in "abc"" will return ' - '"True".\n' - '\n' - 'Changed in version 2.3: Previously, *x* was required to be a ' - 'string of\n' - 'length "1".\n' - '\n' - 'For user-defined classes which define the "__contains__()" ' - 'method, "x\n' - 'in y" is true if and only if "y.__contains__(x)" is true.\n' - '\n' - 'For user-defined classes which do not define "__contains__()" ' - 'but do\n' - 'define "__iter__()", "x in y" is true if some value "z" with ' - '"x == z"\n' - 'is produced while iterating over "y". If an exception is ' - 'raised\n' - 'during the iteration, it is as if "in" raised that ' - 'exception.\n' - '\n' - 'Lastly, the old-style iteration protocol is tried: if a class ' - 'defines\n' - '"__getitem__()", "x in y" is true if and only if there is a ' - 'non-\n' - 'negative integer index *i* such that "x == y[i]", and all ' - 'lower\n' - 'integer indices do not raise "IndexError" exception. (If any ' - 'other\n' - 'exception is raised, it is as if "in" raised that ' - 'exception).\n' - '\n' - 'The operator "not in" is defined to have the inverse true ' - 'value of\n' - '"in".\n' - '\n' - 'The operators "is" and "is not" test for object identity: "x ' - 'is y" is\n' - 'true if and only if *x* and *y* are the same object. "x is ' - 'not y"\n' - 'yields the inverse truth value. [7]\n', - 'compound': '\n' - 'Compound statements\n' - '*******************\n' - '\n' - 'Compound statements contain (groups of) other statements; they ' - 'affect\n' - 'or control the execution of those other statements in some way. ' - 'In\n' - 'general, compound statements span multiple lines, although in ' - 'simple\n' - 'incarnations a whole compound statement may be contained in one ' - 'line.\n' - '\n' - 'The "if", "while" and "for" statements implement traditional ' - 'control\n' - 'flow constructs. "try" specifies exception handlers and/or ' - 'cleanup\n' - 'code for a group of statements. Function and class definitions ' - 'are\n' - 'also syntactically compound statements.\n' - '\n' - "Compound statements consist of one or more 'clauses.' A clause\n" - "consists of a header and a 'suite.' The clause headers of a\n" - 'particular compound statement are all at the same indentation ' - 'level.\n' - 'Each clause header begins with a uniquely identifying keyword ' - 'and ends\n' - 'with a colon. A suite is a group of statements controlled by a\n' - 'clause. A suite can be one or more semicolon-separated simple\n' - 'statements on the same line as the header, following the ' - "header's\n" - 'colon, or it can be one or more indented statements on ' - 'subsequent\n' - 'lines. Only the latter form of suite can contain nested ' - 'compound\n' - "statements; the following is illegal, mostly because it wouldn't " - 'be\n' - 'clear to which "if" clause a following "else" clause would ' - 'belong:\n' - '\n' - ' if test1: if test2: print x\n' - '\n' - 'Also note that the semicolon binds tighter than the colon in ' - 'this\n' - 'context, so that in the following example, either all or none of ' - 'the\n' - '"print" statements are executed:\n' - '\n' - ' if x < y < z: print x; print y; print z\n' - '\n' - 'Summarizing:\n' - '\n' - ' compound_stmt ::= if_stmt\n' - ' | while_stmt\n' - ' | for_stmt\n' - ' | try_stmt\n' - ' | with_stmt\n' - ' | funcdef\n' - ' | classdef\n' - ' | decorated\n' - ' suite ::= stmt_list NEWLINE | NEWLINE INDENT ' - 'statement+ DEDENT\n' - ' statement ::= stmt_list NEWLINE | compound_stmt\n' - ' stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n' - '\n' - 'Note that statements always end in a "NEWLINE" possibly followed ' - 'by a\n' - '"DEDENT". Also note that optional continuation clauses always ' - 'begin\n' - 'with a keyword that cannot start a statement, thus there are no\n' - 'ambiguities (the \'dangling "else"\' problem is solved in Python ' - 'by\n' - 'requiring nested "if" statements to be indented).\n' - '\n' - 'The formatting of the grammar rules in the following sections ' - 'places\n' - 'each clause on a separate line for clarity.\n' - '\n' - '\n' - 'The "if" statement\n' - '==================\n' - '\n' - 'The "if" statement is used for conditional execution:\n' - '\n' - ' if_stmt ::= "if" expression ":" suite\n' - ' ( "elif" expression ":" suite )*\n' - ' ["else" ":" suite]\n' - '\n' - 'It selects exactly one of the suites by evaluating the ' - 'expressions one\n' - 'by one until one is found to be true (see section Boolean ' - 'operations\n' - 'for the definition of true and false); then that suite is ' - 'executed\n' - '(and no other part of the "if" statement is executed or ' - 'evaluated).\n' - 'If all expressions are false, the suite of the "else" clause, ' - 'if\n' - 'present, is executed.\n' - '\n' - '\n' - 'The "while" statement\n' - '=====================\n' - '\n' - 'The "while" statement is used for repeated execution as long as ' - 'an\n' - 'expression is true:\n' - '\n' - ' while_stmt ::= "while" expression ":" suite\n' - ' ["else" ":" suite]\n' - '\n' - 'This repeatedly tests the expression and, if it is true, ' - 'executes the\n' - 'first suite; if the expression is false (which may be the first ' - 'time\n' - 'it is tested) the suite of the "else" clause, if present, is ' - 'executed\n' - 'and the loop terminates.\n' - '\n' - 'A "break" statement executed in the first suite terminates the ' - 'loop\n' - 'without executing the "else" clause\'s suite. A "continue" ' - 'statement\n' - 'executed in the first suite skips the rest of the suite and goes ' - 'back\n' - 'to testing the expression.\n' - '\n' - '\n' - 'The "for" statement\n' - '===================\n' - '\n' - 'The "for" statement is used to iterate over the elements of a ' - 'sequence\n' - '(such as a string, tuple or list) or other iterable object:\n' - '\n' - ' for_stmt ::= "for" target_list "in" expression_list ":" ' - 'suite\n' - ' ["else" ":" suite]\n' - '\n' - 'The expression list is evaluated once; it should yield an ' - 'iterable\n' - 'object. An iterator is created for the result of the\n' - '"expression_list". The suite is then executed once for each ' - 'item\n' - 'provided by the iterator, in the order of ascending indices. ' - 'Each\n' - 'item in turn is assigned to the target list using the standard ' - 'rules\n' - 'for assignments, and then the suite is executed. When the items ' - 'are\n' - 'exhausted (which is immediately when the sequence is empty), the ' - 'suite\n' - 'in the "else" clause, if present, is executed, and the loop\n' - 'terminates.\n' - '\n' - 'A "break" statement executed in the first suite terminates the ' - 'loop\n' - 'without executing the "else" clause\'s suite. A "continue" ' - 'statement\n' - 'executed in the first suite skips the rest of the suite and ' - 'continues\n' - 'with the next item, or with the "else" clause if there was no ' - 'next\n' - 'item.\n' - '\n' - 'The suite may assign to the variable(s) in the target list; this ' - 'does\n' - 'not affect the next item assigned to it.\n' - '\n' - 'The target list is not deleted when the loop is finished, but if ' - 'the\n' - 'sequence is empty, it will not have been assigned to at all by ' - 'the\n' - 'loop. Hint: the built-in function "range()" returns a sequence ' - 'of\n' - 'integers suitable to emulate the effect of Pascal\'s "for i := a ' - 'to b\n' - 'do"; e.g., "range(3)" returns the list "[0, 1, 2]".\n' - '\n' - 'Note: There is a subtlety when the sequence is being modified by ' - 'the\n' - ' loop (this can only occur for mutable sequences, i.e. lists). ' - 'An\n' - ' internal counter is used to keep track of which item is used ' - 'next,\n' - ' and this is incremented on each iteration. When this counter ' - 'has\n' - ' reached the length of the sequence the loop terminates. This ' - 'means\n' - ' that if the suite deletes the current (or a previous) item ' - 'from the\n' - ' sequence, the next item will be skipped (since it gets the ' - 'index of\n' - ' the current item which has already been treated). Likewise, ' - 'if the\n' - ' suite inserts an item in the sequence before the current item, ' - 'the\n' - ' current item will be treated again the next time through the ' - 'loop.\n' - ' This can lead to nasty bugs that can be avoided by making a\n' - ' temporary copy using a slice of the whole sequence, e.g.,\n' - '\n' - ' for x in a[:]:\n' - ' if x < 0: a.remove(x)\n' - '\n' - '\n' - 'The "try" statement\n' - '===================\n' - '\n' - 'The "try" statement specifies exception handlers and/or cleanup ' - 'code\n' - 'for a group of statements:\n' - '\n' - ' try_stmt ::= try1_stmt | try2_stmt\n' - ' try1_stmt ::= "try" ":" suite\n' - ' ("except" [expression [("as" | ",") ' - 'identifier]] ":" suite)+\n' - ' ["else" ":" suite]\n' - ' ["finally" ":" suite]\n' - ' try2_stmt ::= "try" ":" suite\n' - ' "finally" ":" suite\n' - '\n' - 'Changed in version 2.5: In previous versions of Python,\n' - '"try"..."except"..."finally" did not work. "try"..."except" had ' - 'to be\n' - 'nested in "try"..."finally".\n' - '\n' - 'The "except" clause(s) specify one or more exception handlers. ' - 'When no\n' - 'exception occurs in the "try" clause, no exception handler is\n' - 'executed. When an exception occurs in the "try" suite, a search ' - 'for an\n' - 'exception handler is started. This search inspects the except ' - 'clauses\n' - 'in turn until one is found that matches the exception. An ' - 'expression-\n' - 'less except clause, if present, must be last; it matches any\n' - 'exception. For an except clause with an expression, that ' - 'expression\n' - 'is evaluated, and the clause matches the exception if the ' - 'resulting\n' - 'object is "compatible" with the exception. An object is ' - 'compatible\n' - 'with an exception if it is the class or a base class of the ' - 'exception\n' - 'object, or a tuple containing an item compatible with the ' - 'exception.\n' - '\n' - 'If no except clause matches the exception, the search for an ' - 'exception\n' - 'handler continues in the surrounding code and on the invocation ' - 'stack.\n' - '[1]\n' - '\n' - 'If the evaluation of an expression in the header of an except ' - 'clause\n' - 'raises an exception, the original search for a handler is ' - 'canceled and\n' - 'a search starts for the new exception in the surrounding code ' - 'and on\n' - 'the call stack (it is treated as if the entire "try" statement ' - 'raised\n' - 'the exception).\n' - '\n' - 'When a matching except clause is found, the exception is ' - 'assigned to\n' - 'the target specified in that except clause, if present, and the ' - 'except\n' - "clause's suite is executed. All except clauses must have an\n" - 'executable block. When the end of this block is reached, ' - 'execution\n' - 'continues normally after the entire try statement. (This means ' - 'that\n' - 'if two nested handlers exist for the same exception, and the ' - 'exception\n' - 'occurs in the try clause of the inner handler, the outer handler ' - 'will\n' - 'not handle the exception.)\n' - '\n' - "Before an except clause's suite is executed, details about the\n" - 'exception are assigned to three variables in the "sys" module:\n' - '"sys.exc_type" receives the object identifying the exception;\n' - '"sys.exc_value" receives the exception\'s parameter;\n' - '"sys.exc_traceback" receives a traceback object (see section ' - 'The\n' - 'standard type hierarchy) identifying the point in the program ' - 'where\n' - 'the exception occurred. These details are also available through ' - 'the\n' - '"sys.exc_info()" function, which returns a tuple "(exc_type,\n' - 'exc_value, exc_traceback)". Use of the corresponding variables ' - 'is\n' - 'deprecated in favor of this function, since their use is unsafe ' - 'in a\n' - 'threaded program. As of Python 1.5, the variables are restored ' - 'to\n' - 'their previous values (before the call) when returning from a ' - 'function\n' - 'that handled an exception.\n' - '\n' - 'The optional "else" clause is executed if and when control flows ' - 'off\n' - 'the end of the "try" clause. [2] Exceptions in the "else" clause ' - 'are\n' - 'not handled by the preceding "except" clauses.\n' - '\n' - 'If "finally" is present, it specifies a \'cleanup\' handler. ' - 'The "try"\n' - 'clause is executed, including any "except" and "else" clauses. ' - 'If an\n' - 'exception occurs in any of the clauses and is not handled, the\n' - 'exception is temporarily saved. The "finally" clause is ' - 'executed. If\n' - 'there is a saved exception, it is re-raised at the end of the\n' - '"finally" clause. If the "finally" clause raises another ' - 'exception or\n' - 'executes a "return" or "break" statement, the saved exception ' - 'is\n' - 'discarded:\n' - '\n' - ' >>> def f():\n' - ' ... try:\n' - ' ... 1/0\n' - ' ... finally:\n' - ' ... return 42\n' - ' ...\n' - ' >>> f()\n' - ' 42\n' - '\n' - 'The exception information is not available to the program ' - 'during\n' - 'execution of the "finally" clause.\n' - '\n' - 'When a "return", "break" or "continue" statement is executed in ' - 'the\n' - '"try" suite of a "try"..."finally" statement, the "finally" ' - 'clause is\n' - 'also executed \'on the way out.\' A "continue" statement is ' - 'illegal in\n' - 'the "finally" clause. (The reason is a problem with the current\n' - 'implementation --- this restriction may be lifted in the ' - 'future).\n' - '\n' - 'The return value of a function is determined by the last ' - '"return"\n' - 'statement executed. Since the "finally" clause always executes, ' - 'a\n' - '"return" statement executed in the "finally" clause will always ' - 'be the\n' - 'last one executed:\n' - '\n' - ' >>> def foo():\n' - ' ... try:\n' - " ... return 'try'\n" - ' ... finally:\n' - " ... return 'finally'\n" - ' ...\n' - ' >>> foo()\n' - " 'finally'\n" - '\n' - 'Additional information on exceptions can be found in section\n' - 'Exceptions, and information on using the "raise" statement to ' - 'generate\n' - 'exceptions may be found in section The raise statement.\n' - '\n' - '\n' - 'The "with" statement\n' - '====================\n' - '\n' - 'New in version 2.5.\n' - '\n' - 'The "with" statement is used to wrap the execution of a block ' - 'with\n' - 'methods defined by a context manager (see section With ' - 'Statement\n' - 'Context Managers). This allows common ' - '"try"..."except"..."finally"\n' - 'usage patterns to be encapsulated for convenient reuse.\n' - '\n' - ' with_stmt ::= "with" with_item ("," with_item)* ":" suite\n' - ' with_item ::= expression ["as" target]\n' - '\n' - 'The execution of the "with" statement with one "item" proceeds ' - 'as\n' - 'follows:\n' - '\n' - '1. The context expression (the expression given in the ' - '"with_item")\n' - ' is evaluated to obtain a context manager.\n' - '\n' - '2. The context manager\'s "__exit__()" is loaded for later use.\n' - '\n' - '3. The context manager\'s "__enter__()" method is invoked.\n' - '\n' - '4. If a target was included in the "with" statement, the return\n' - ' value from "__enter__()" is assigned to it.\n' - '\n' - ' Note: The "with" statement guarantees that if the ' - '"__enter__()"\n' - ' method returns without an error, then "__exit__()" will ' - 'always be\n' - ' called. Thus, if an error occurs during the assignment to ' - 'the\n' - ' target list, it will be treated the same as an error ' - 'occurring\n' - ' within the suite would be. See step 6 below.\n' - '\n' - '5. The suite is executed.\n' - '\n' - '6. The context manager\'s "__exit__()" method is invoked. If an\n' - ' exception caused the suite to be exited, its type, value, ' - 'and\n' - ' traceback are passed as arguments to "__exit__()". Otherwise, ' - 'three\n' - ' "None" arguments are supplied.\n' - '\n' - ' If the suite was exited due to an exception, and the return ' - 'value\n' - ' from the "__exit__()" method was false, the exception is ' - 'reraised.\n' - ' If the return value was true, the exception is suppressed, ' - 'and\n' - ' execution continues with the statement following the "with"\n' - ' statement.\n' - '\n' - ' If the suite was exited for any reason other than an ' - 'exception, the\n' - ' return value from "__exit__()" is ignored, and execution ' - 'proceeds\n' - ' at the normal location for the kind of exit that was taken.\n' - '\n' - 'With more than one item, the context managers are processed as ' - 'if\n' - 'multiple "with" statements were nested:\n' - '\n' - ' with A() as a, B() as b:\n' - ' suite\n' - '\n' - 'is equivalent to\n' - '\n' - ' with A() as a:\n' - ' with B() as b:\n' - ' suite\n' - '\n' - 'Note: In Python 2.5, the "with" statement is only allowed when ' - 'the\n' - ' "with_statement" feature has been enabled. It is always ' - 'enabled in\n' - ' Python 2.6.\n' - '\n' - 'Changed in version 2.7: Support for multiple context ' - 'expressions.\n' - '\n' - 'See also:\n' - '\n' - ' **PEP 343** - The "with" statement\n' - ' The specification, background, and examples for the Python ' - '"with"\n' - ' statement.\n' - '\n' - '\n' - 'Function definitions\n' - '====================\n' - '\n' - 'A function definition defines a user-defined function object ' - '(see\n' - 'section The standard type hierarchy):\n' - '\n' - ' decorated ::= decorators (classdef | funcdef)\n' - ' decorators ::= decorator+\n' - ' decorator ::= "@" dotted_name ["(" [argument_list [","]] ' - '")"] NEWLINE\n' - ' funcdef ::= "def" funcname "(" [parameter_list] ")" ' - '":" suite\n' - ' dotted_name ::= identifier ("." identifier)*\n' - ' parameter_list ::= (defparameter ",")*\n' - ' ( "*" identifier ["," "**" identifier]\n' - ' | "**" identifier\n' - ' | defparameter [","] )\n' - ' defparameter ::= parameter ["=" expression]\n' - ' sublist ::= parameter ("," parameter)* [","]\n' - ' parameter ::= identifier | "(" sublist ")"\n' - ' funcname ::= identifier\n' - '\n' - 'A function definition is an executable statement. Its execution ' - 'binds\n' - 'the function name in the current local namespace to a function ' - 'object\n' - '(a wrapper around the executable code for the function). This\n' - 'function object contains a reference to the current global ' - 'namespace\n' - 'as the global namespace to be used when the function is called.\n' - '\n' - 'The function definition does not execute the function body; this ' - 'gets\n' - 'executed only when the function is called. [3]\n' - '\n' - 'A function definition may be wrapped by one or more *decorator*\n' - 'expressions. Decorator expressions are evaluated when the ' - 'function is\n' - 'defined, in the scope that contains the function definition. ' - 'The\n' - 'result must be a callable, which is invoked with the function ' - 'object\n' - 'as the only argument. The returned value is bound to the ' - 'function name\n' - 'instead of the function object. Multiple decorators are applied ' - 'in\n' - 'nested fashion. For example, the following code:\n' - '\n' - ' @f1(arg)\n' - ' @f2\n' - ' def func(): pass\n' - '\n' - 'is equivalent to:\n' - '\n' - ' def func(): pass\n' - ' func = f1(arg)(f2(func))\n' - '\n' - 'When one or more top-level *parameters* have the form ' - '*parameter* "="\n' - '*expression*, the function is said to have "default parameter ' - 'values."\n' - 'For a parameter with a default value, the corresponding ' - '*argument* may\n' - "be omitted from a call, in which case the parameter's default " - 'value is\n' - 'substituted. If a parameter has a default value, all following\n' - 'parameters must also have a default value --- this is a ' - 'syntactic\n' - 'restriction that is not expressed by the grammar.\n' - '\n' - '**Default parameter values are evaluated when the function ' - 'definition\n' - 'is executed.** This means that the expression is evaluated ' - 'once, when\n' - 'the function is defined, and that the same "pre-computed" value ' - 'is\n' - 'used for each call. This is especially important to understand ' - 'when a\n' - 'default parameter is a mutable object, such as a list or a ' - 'dictionary:\n' - 'if the function modifies the object (e.g. by appending an item ' - 'to a\n' - 'list), the default value is in effect modified. This is ' - 'generally not\n' - 'what was intended. A way around this is to use "None" as the\n' - 'default, and explicitly test for it in the body of the function, ' - 'e.g.:\n' - '\n' - ' def whats_on_the_telly(penguin=None):\n' - ' if penguin is None:\n' - ' penguin = []\n' - ' penguin.append("property of the zoo")\n' - ' return penguin\n' - '\n' - 'Function call semantics are described in more detail in section ' - 'Calls.\n' - 'A function call always assigns values to all parameters ' - 'mentioned in\n' - 'the parameter list, either from position arguments, from ' - 'keyword\n' - 'arguments, or from default values. If the form ""*identifier"" ' - 'is\n' - 'present, it is initialized to a tuple receiving any excess ' - 'positional\n' - 'parameters, defaulting to the empty tuple. If the form\n' - '""**identifier"" is present, it is initialized to a new ' - 'dictionary\n' - 'receiving any excess keyword arguments, defaulting to a new ' - 'empty\n' - 'dictionary.\n' - '\n' - 'It is also possible to create anonymous functions (functions not ' - 'bound\n' - 'to a name), for immediate use in expressions. This uses lambda\n' - 'expressions, described in section Lambdas. Note that the ' - 'lambda\n' - 'expression is merely a shorthand for a simplified function ' - 'definition;\n' - 'a function defined in a ""def"" statement can be passed around ' - 'or\n' - 'assigned to another name just like a function defined by a ' - 'lambda\n' - 'expression. The ""def"" form is actually more powerful since ' - 'it\n' - 'allows the execution of multiple statements.\n' - '\n' - "**Programmer's note:** Functions are first-class objects. A " - '""def""\n' - 'form executed inside a function definition defines a local ' - 'function\n' - 'that can be returned or passed around. Free variables used in ' - 'the\n' - 'nested function can access the local variables of the function\n' - 'containing the def. See section Naming and binding for ' - 'details.\n' - '\n' - '\n' - 'Class definitions\n' - '=================\n' - '\n' - 'A class definition defines a class object (see section The ' - 'standard\n' - 'type hierarchy):\n' - '\n' - ' classdef ::= "class" classname [inheritance] ":" suite\n' - ' inheritance ::= "(" [expression_list] ")"\n' - ' classname ::= identifier\n' - '\n' - 'A class definition is an executable statement. It first ' - 'evaluates the\n' - 'inheritance list, if present. Each item in the inheritance ' - 'list\n' - 'should evaluate to a class object or class type which allows\n' - "subclassing. The class's suite is then executed in a new " - 'execution\n' - 'frame (see section Naming and binding), using a newly created ' - 'local\n' - 'namespace and the original global namespace. (Usually, the ' - 'suite\n' - "contains only function definitions.) When the class's suite " - 'finishes\n' - 'execution, its execution frame is discarded but its local ' - 'namespace is\n' - 'saved. [4] A class object is then created using the inheritance ' - 'list\n' - 'for the base classes and the saved local namespace for the ' - 'attribute\n' - 'dictionary. The class name is bound to this class object in ' - 'the\n' - 'original local namespace.\n' - '\n' - "**Programmer's note:** Variables defined in the class definition " - 'are\n' - 'class variables; they are shared by all instances. To create ' - 'instance\n' - 'variables, they can be set in a method with "self.name = ' - 'value". Both\n' - 'class and instance variables are accessible through the ' - 'notation\n' - '""self.name"", and an instance variable hides a class variable ' - 'with\n' - 'the same name when accessed in this way. Class variables can be ' - 'used\n' - 'as defaults for instance variables, but using mutable values ' - 'there can\n' - 'lead to unexpected results. For *new-style class*es, ' - 'descriptors can\n' - 'be used to create instance variables with different ' - 'implementation\n' - 'details.\n' - '\n' - 'Class definitions, like function definitions, may be wrapped by ' - 'one or\n' - 'more *decorator* expressions. The evaluation rules for the ' - 'decorator\n' - 'expressions are the same as for functions. The result must be a ' - 'class\n' - 'object, which is then bound to the class name.\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] The exception is propagated to the invocation stack unless\n' - ' there is a "finally" clause which happens to raise another\n' - ' exception. That new exception causes the old one to be ' - 'lost.\n' - '\n' - '[2] Currently, control "flows off the end" except in the case ' - 'of\n' - ' an exception or the execution of a "return", "continue", or\n' - ' "break" statement.\n' - '\n' - '[3] A string literal appearing as the first statement in the\n' - ' function body is transformed into the function\'s "__doc__"\n' - " attribute and therefore the function's *docstring*.\n" - '\n' - '[4] A string literal appearing as the first statement in the ' - 'class\n' - ' body is transformed into the namespace\'s "__doc__" item ' - 'and\n' - " therefore the class's *docstring*.\n", - 'context-managers': '\n' - 'With Statement Context Managers\n' - '*******************************\n' - '\n' - 'New in version 2.5.\n' - '\n' - 'A *context manager* is an object that defines the ' - 'runtime context to\n' - 'be established when executing a "with" statement. The ' - 'context manager\n' - 'handles the entry into, and the exit from, the desired ' - 'runtime context\n' - 'for the execution of the block of code. Context ' - 'managers are normally\n' - 'invoked using the "with" statement (described in section ' - 'The with\n' - 'statement), but can also be used by directly invoking ' - 'their methods.\n' - '\n' - 'Typical uses of context managers include saving and ' - 'restoring various\n' - 'kinds of global state, locking and unlocking resources, ' - 'closing opened\n' - 'files, etc.\n' - '\n' - 'For more information on context managers, see Context ' - 'Manager Types.\n' - '\n' - 'object.__enter__(self)\n' - '\n' - ' Enter the runtime context related to this object. The ' - '"with"\n' - " statement will bind this method's return value to the " - 'target(s)\n' - ' specified in the "as" clause of the statement, if ' - 'any.\n' - '\n' - 'object.__exit__(self, exc_type, exc_value, traceback)\n' - '\n' - ' Exit the runtime context related to this object. The ' - 'parameters\n' - ' describe the exception that caused the context to be ' - 'exited. If the\n' - ' context was exited without an exception, all three ' - 'arguments will\n' - ' be "None".\n' - '\n' - ' If an exception is supplied, and the method wishes to ' - 'suppress the\n' - ' exception (i.e., prevent it from being propagated), ' - 'it should\n' - ' return a true value. Otherwise, the exception will be ' - 'processed\n' - ' normally upon exit from this method.\n' - '\n' - ' Note that "__exit__()" methods should not reraise the ' - 'passed-in\n' - " exception; this is the caller's responsibility.\n" - '\n' - 'See also:\n' - '\n' - ' **PEP 343** - The "with" statement\n' - ' The specification, background, and examples for the ' - 'Python "with"\n' - ' statement.\n', - 'continue': '\n' - 'The "continue" statement\n' - '************************\n' - '\n' - ' continue_stmt ::= "continue"\n' - '\n' - '"continue" may only occur syntactically nested in a "for" or ' - '"while"\n' - 'loop, but not nested in a function or class definition or ' - '"finally"\n' - 'clause within that loop. It continues with the next cycle of ' - 'the\n' - 'nearest enclosing loop.\n' - '\n' - 'When "continue" passes control out of a "try" statement with a\n' - '"finally" clause, that "finally" clause is executed before ' - 'really\n' - 'starting the next loop cycle.\n', - 'conversions': '\n' - 'Arithmetic conversions\n' - '**********************\n' - '\n' - 'When a description of an arithmetic operator below uses the ' - 'phrase\n' - '"the numeric arguments are converted to a common type," the ' - 'arguments\n' - 'are coerced using the coercion rules listed at Coercion ' - 'rules. If\n' - 'both arguments are standard numeric types, the following ' - 'coercions are\n' - 'applied:\n' - '\n' - '* If either argument is a complex number, the other is ' - 'converted to\n' - ' complex;\n' - '\n' - '* otherwise, if either argument is a floating point number, ' - 'the\n' - ' other is converted to floating point;\n' - '\n' - '* otherwise, if either argument is a long integer, the other ' - 'is\n' - ' converted to long integer;\n' - '\n' - '* otherwise, both must be plain integers and no conversion ' - 'is\n' - ' necessary.\n' - '\n' - 'Some additional rules apply for certain operators (e.g., a ' - 'string left\n' - "argument to the '%' operator). Extensions can define their " - 'own\n' - 'coercions.\n', - 'customization': '\n' - 'Basic customization\n' - '*******************\n' - '\n' - 'object.__new__(cls[, ...])\n' - '\n' - ' Called to create a new instance of class *cls*. ' - '"__new__()" is a\n' - ' static method (special-cased so you need not declare it ' - 'as such)\n' - ' that takes the class of which an instance was requested ' - 'as its\n' - ' first argument. The remaining arguments are those ' - 'passed to the\n' - ' object constructor expression (the call to the class). ' - 'The return\n' - ' value of "__new__()" should be the new object instance ' - '(usually an\n' - ' instance of *cls*).\n' - '\n' - ' Typical implementations create a new instance of the ' - 'class by\n' - ' invoking the superclass\'s "__new__()" method using\n' - ' "super(currentclass, cls).__new__(cls[, ...])" with ' - 'appropriate\n' - ' arguments and then modifying the newly-created instance ' - 'as\n' - ' necessary before returning it.\n' - '\n' - ' If "__new__()" returns an instance of *cls*, then the ' - 'new\n' - ' instance\'s "__init__()" method will be invoked like\n' - ' "__init__(self[, ...])", where *self* is the new ' - 'instance and the\n' - ' remaining arguments are the same as were passed to ' - '"__new__()".\n' - '\n' - ' If "__new__()" does not return an instance of *cls*, ' - 'then the new\n' - ' instance\'s "__init__()" method will not be invoked.\n' - '\n' - ' "__new__()" is intended mainly to allow subclasses of ' - 'immutable\n' - ' types (like int, str, or tuple) to customize instance ' - 'creation. It\n' - ' is also commonly overridden in custom metaclasses in ' - 'order to\n' - ' customize class creation.\n' - '\n' - 'object.__init__(self[, ...])\n' - '\n' - ' Called after the instance has been created (by ' - '"__new__()"), but\n' - ' before it is returned to the caller. The arguments are ' - 'those\n' - ' passed to the class constructor expression. If a base ' - 'class has an\n' - ' "__init__()" method, the derived class\'s "__init__()" ' - 'method, if\n' - ' any, must explicitly call it to ensure proper ' - 'initialization of the\n' - ' base class part of the instance; for example:\n' - ' "BaseClass.__init__(self, [args...])".\n' - '\n' - ' Because "__new__()" and "__init__()" work together in ' - 'constructing\n' - ' objects ("__new__()" to create it, and "__init__()" to ' - 'customise\n' - ' it), no non-"None" value may be returned by ' - '"__init__()"; doing so\n' - ' will cause a "TypeError" to be raised at runtime.\n' - '\n' - 'object.__del__(self)\n' - '\n' - ' Called when the instance is about to be destroyed. This ' - 'is also\n' - ' called a destructor. If a base class has a "__del__()" ' - 'method, the\n' - ' derived class\'s "__del__()" method, if any, must ' - 'explicitly call it\n' - ' to ensure proper deletion of the base class part of the ' - 'instance.\n' - ' Note that it is possible (though not recommended!) for ' - 'the\n' - ' "__del__()" method to postpone destruction of the ' - 'instance by\n' - ' creating a new reference to it. It may then be called ' - 'at a later\n' - ' time when this new reference is deleted. It is not ' - 'guaranteed that\n' - ' "__del__()" methods are called for objects that still ' - 'exist when\n' - ' the interpreter exits.\n' - '\n' - ' Note: "del x" doesn\'t directly call "x.__del__()" --- ' - 'the former\n' - ' decrements the reference count for "x" by one, and the ' - 'latter is\n' - ' only called when "x"\'s reference count reaches zero. ' - 'Some common\n' - ' situations that may prevent the reference count of an ' - 'object from\n' - ' going to zero include: circular references between ' - 'objects (e.g.,\n' - ' a doubly-linked list or a tree data structure with ' - 'parent and\n' - ' child pointers); a reference to the object on the ' - 'stack frame of\n' - ' a function that caught an exception (the traceback ' - 'stored in\n' - ' "sys.exc_traceback" keeps the stack frame alive); or a ' - 'reference\n' - ' to the object on the stack frame that raised an ' - 'unhandled\n' - ' exception in interactive mode (the traceback stored ' - 'in\n' - ' "sys.last_traceback" keeps the stack frame alive). ' - 'The first\n' - ' situation can only be remedied by explicitly breaking ' - 'the cycles;\n' - ' the latter two situations can be resolved by storing ' - '"None" in\n' - ' "sys.exc_traceback" or "sys.last_traceback". Circular ' - 'references\n' - ' which are garbage are detected when the option cycle ' - 'detector is\n' - " enabled (it's on by default), but can only be cleaned " - 'up if there\n' - ' are no Python-level "__del__()" methods involved. ' - 'Refer to the\n' - ' documentation for the "gc" module for more information ' - 'about how\n' - ' "__del__()" methods are handled by the cycle ' - 'detector,\n' - ' particularly the description of the "garbage" value.\n' - '\n' - ' Warning: Due to the precarious circumstances under ' - 'which\n' - ' "__del__()" methods are invoked, exceptions that occur ' - 'during\n' - ' their execution are ignored, and a warning is printed ' - 'to\n' - ' "sys.stderr" instead. Also, when "__del__()" is ' - 'invoked in\n' - ' response to a module being deleted (e.g., when ' - 'execution of the\n' - ' program is done), other globals referenced by the ' - '"__del__()"\n' - ' method may already have been deleted or in the process ' - 'of being\n' - ' torn down (e.g. the import machinery shutting down). ' - 'For this\n' - ' reason, "__del__()" methods should do the absolute ' - 'minimum needed\n' - ' to maintain external invariants. Starting with ' - 'version 1.5,\n' - ' Python guarantees that globals whose name begins with ' - 'a single\n' - ' underscore are deleted from their module before other ' - 'globals are\n' - ' deleted; if no other references to such globals exist, ' - 'this may\n' - ' help in assuring that imported modules are still ' - 'available at the\n' - ' time when the "__del__()" method is called.\n' - '\n' - ' See also the "-R" command-line option.\n' - '\n' - 'object.__repr__(self)\n' - '\n' - ' Called by the "repr()" built-in function and by string ' - 'conversions\n' - ' (reverse quotes) to compute the "official" string ' - 'representation of\n' - ' an object. If at all possible, this should look like a ' - 'valid\n' - ' Python expression that could be used to recreate an ' - 'object with the\n' - ' same value (given an appropriate environment). If this ' - 'is not\n' - ' possible, a string of the form "<...some useful ' - 'description...>"\n' - ' should be returned. The return value must be a string ' - 'object. If a\n' - ' class defines "__repr__()" but not "__str__()", then ' - '"__repr__()"\n' - ' is also used when an "informal" string representation of ' - 'instances\n' - ' of that class is required.\n' - '\n' - ' This is typically used for debugging, so it is important ' - 'that the\n' - ' representation is information-rich and unambiguous.\n' - '\n' - 'object.__str__(self)\n' - '\n' - ' Called by the "str()" built-in function and by the ' - '"print"\n' - ' statement to compute the "informal" string ' - 'representation of an\n' - ' object. This differs from "__repr__()" in that it does ' - 'not have to\n' - ' be a valid Python expression: a more convenient or ' - 'concise\n' - ' representation may be used instead. The return value ' - 'must be a\n' - ' string object.\n' - '\n' - 'object.__lt__(self, other)\n' - 'object.__le__(self, other)\n' - 'object.__eq__(self, other)\n' - 'object.__ne__(self, other)\n' - 'object.__gt__(self, other)\n' - 'object.__ge__(self, other)\n' - '\n' - ' New in version 2.1.\n' - '\n' - ' These are the so-called "rich comparison" methods, and ' - 'are called\n' - ' for comparison operators in preference to "__cmp__()" ' - 'below. The\n' - ' correspondence between operator symbols and method names ' - 'is as\n' - ' follows: "xy" call ' - '"x.__ne__(y)",\n' - ' "x>y" calls "x.__gt__(y)", and "x>=y" calls ' - '"x.__ge__(y)".\n' - '\n' - ' A rich comparison method may return the singleton ' - '"NotImplemented"\n' - ' if it does not implement the operation for a given pair ' - 'of\n' - ' arguments. By convention, "False" and "True" are ' - 'returned for a\n' - ' successful comparison. However, these methods can return ' - 'any value,\n' - ' so if the comparison operator is used in a Boolean ' - 'context (e.g.,\n' - ' in the condition of an "if" statement), Python will call ' - '"bool()"\n' - ' on the value to determine if the result is true or ' - 'false.\n' - '\n' - ' There are no implied relationships among the comparison ' - 'operators.\n' - ' The truth of "x==y" does not imply that "x!=y" is ' - 'false.\n' - ' Accordingly, when defining "__eq__()", one should also ' - 'define\n' - ' "__ne__()" so that the operators will behave as ' - 'expected. See the\n' - ' paragraph on "__hash__()" for some important notes on ' - 'creating\n' - ' *hashable* objects which support custom comparison ' - 'operations and\n' - ' are usable as dictionary keys.\n' - '\n' - ' There are no swapped-argument versions of these methods ' - '(to be used\n' - ' when the left argument does not support the operation ' - 'but the right\n' - ' argument does); rather, "__lt__()" and "__gt__()" are ' - "each other's\n" - ' reflection, "__le__()" and "__ge__()" are each other\'s ' - 'reflection,\n' - ' and "__eq__()" and "__ne__()" are their own reflection.\n' - '\n' - ' Arguments to rich comparison methods are never coerced.\n' - '\n' - ' To automatically generate ordering operations from a ' - 'single root\n' - ' operation, see "functools.total_ordering()".\n' - '\n' - 'object.__cmp__(self, other)\n' - '\n' - ' Called by comparison operations if rich comparison (see ' - 'above) is\n' - ' not defined. Should return a negative integer if "self ' - '< other",\n' - ' zero if "self == other", a positive integer if "self > ' - 'other". If\n' - ' no "__cmp__()", "__eq__()" or "__ne__()" operation is ' - 'defined,\n' - ' class instances are compared by object identity ' - '("address"). See\n' - ' also the description of "__hash__()" for some important ' - 'notes on\n' - ' creating *hashable* objects which support custom ' - 'comparison\n' - ' operations and are usable as dictionary keys. (Note: ' - 'the\n' - ' restriction that exceptions are not propagated by ' - '"__cmp__()" has\n' - ' been removed since Python 1.5.)\n' - '\n' - 'object.__rcmp__(self, other)\n' - '\n' - ' Changed in version 2.1: No longer supported.\n' - '\n' - 'object.__hash__(self)\n' - '\n' - ' Called by built-in function "hash()" and for operations ' - 'on members\n' - ' of hashed collections including "set", "frozenset", and ' - '"dict".\n' - ' "__hash__()" should return an integer. The only ' - 'required property\n' - ' is that objects which compare equal have the same hash ' - 'value; it is\n' - ' advised to somehow mix together (e.g. using exclusive ' - 'or) the hash\n' - ' values for the components of the object that also play a ' - 'part in\n' - ' comparison of objects.\n' - '\n' - ' If a class does not define a "__cmp__()" or "__eq__()" ' - 'method it\n' - ' should not define a "__hash__()" operation either; if it ' - 'defines\n' - ' "__cmp__()" or "__eq__()" but not "__hash__()", its ' - 'instances will\n' - ' not be usable in hashed collections. If a class defines ' - 'mutable\n' - ' objects and implements a "__cmp__()" or "__eq__()" ' - 'method, it\n' - ' should not implement "__hash__()", since hashable ' - 'collection\n' - " implementations require that a object's hash value is " - 'immutable (if\n' - " the object's hash value changes, it will be in the wrong " - 'hash\n' - ' bucket).\n' - '\n' - ' User-defined classes have "__cmp__()" and "__hash__()" ' - 'methods by\n' - ' default; with them, all objects compare unequal (except ' - 'with\n' - ' themselves) and "x.__hash__()" returns a result derived ' - 'from\n' - ' "id(x)".\n' - '\n' - ' Classes which inherit a "__hash__()" method from a ' - 'parent class but\n' - ' change the meaning of "__cmp__()" or "__eq__()" such ' - 'that the hash\n' - ' value returned is no longer appropriate (e.g. by ' - 'switching to a\n' - ' value-based concept of equality instead of the default ' - 'identity\n' - ' based equality) can explicitly flag themselves as being ' - 'unhashable\n' - ' by setting "__hash__ = None" in the class definition. ' - 'Doing so\n' - ' means that not only will instances of the class raise ' - 'an\n' - ' appropriate "TypeError" when a program attempts to ' - 'retrieve their\n' - ' hash value, but they will also be correctly identified ' - 'as\n' - ' unhashable when checking "isinstance(obj, ' - 'collections.Hashable)"\n' - ' (unlike classes which define their own "__hash__()" to ' - 'explicitly\n' - ' raise "TypeError").\n' - '\n' - ' Changed in version 2.5: "__hash__()" may now also return ' - 'a long\n' - ' integer object; the 32-bit integer is then derived from ' - 'the hash of\n' - ' that object.\n' - '\n' - ' Changed in version 2.6: "__hash__" may now be set to ' - '"None" to\n' - ' explicitly flag instances of a class as unhashable.\n' - '\n' - 'object.__nonzero__(self)\n' - '\n' - ' Called to implement truth value testing and the built-in ' - 'operation\n' - ' "bool()"; should return "False" or "True", or their ' - 'integer\n' - ' equivalents "0" or "1". When this method is not ' - 'defined,\n' - ' "__len__()" is called, if it is defined, and the object ' - 'is\n' - ' considered true if its result is nonzero. If a class ' - 'defines\n' - ' neither "__len__()" nor "__nonzero__()", all its ' - 'instances are\n' - ' considered true.\n' - '\n' - 'object.__unicode__(self)\n' - '\n' - ' Called to implement "unicode()" built-in; should return ' - 'a Unicode\n' - ' object. When this method is not defined, string ' - 'conversion is\n' - ' attempted, and the result of string conversion is ' - 'converted to\n' - ' Unicode using the system default encoding.\n', - 'debugger': '\n' - '"pdb" --- The Python Debugger\n' - '*****************************\n' - '\n' - '**Source code:** Lib/pdb.py\n' - '\n' - '======================================================================\n' - '\n' - 'The module "pdb" defines an interactive source code debugger ' - 'for\n' - 'Python programs. It supports setting (conditional) breakpoints ' - 'and\n' - 'single stepping at the source line level, inspection of stack ' - 'frames,\n' - 'source code listing, and evaluation of arbitrary Python code in ' - 'the\n' - 'context of any stack frame. It also supports post-mortem ' - 'debugging\n' - 'and can be called under program control.\n' - '\n' - 'The debugger is extensible --- it is actually defined as the ' - 'class\n' - '"Pdb". This is currently undocumented but easily understood by ' - 'reading\n' - 'the source. The extension interface uses the modules "bdb" and ' - '"cmd".\n' - '\n' - 'The debugger\'s prompt is "(Pdb)". Typical usage to run a ' - 'program under\n' - 'control of the debugger is:\n' - '\n' - ' >>> import pdb\n' - ' >>> import mymodule\n' - " >>> pdb.run('mymodule.test()')\n" - ' > (0)?()\n' - ' (Pdb) continue\n' - ' > (1)?()\n' - ' (Pdb) continue\n' - " NameError: 'spam'\n" - ' > (1)?()\n' - ' (Pdb)\n' - '\n' - '"pdb.py" can also be invoked as a script to debug other ' - 'scripts. For\n' - 'example:\n' - '\n' - ' python -m pdb myscript.py\n' - '\n' - 'When invoked as a script, pdb will automatically enter ' - 'post-mortem\n' - 'debugging if the program being debugged exits abnormally. After ' - 'post-\n' - 'mortem debugging (or after normal exit of the program), pdb ' - 'will\n' - "restart the program. Automatic restarting preserves pdb's state " - '(such\n' - 'as breakpoints) and in most cases is more useful than quitting ' - 'the\n' - "debugger upon program's exit.\n" - '\n' - 'New in version 2.4: Restarting post-mortem behavior added.\n' - '\n' - 'The typical usage to break into the debugger from a running ' - 'program is\n' - 'to insert\n' - '\n' - ' import pdb; pdb.set_trace()\n' - '\n' - 'at the location you want to break into the debugger. You can ' - 'then\n' - 'step through the code following this statement, and continue ' - 'running\n' - 'without the debugger using the "c" command.\n' - '\n' - 'The typical usage to inspect a crashed program is:\n' - '\n' - ' >>> import pdb\n' - ' >>> import mymodule\n' - ' >>> mymodule.test()\n' - ' Traceback (most recent call last):\n' - ' File "", line 1, in ?\n' - ' File "./mymodule.py", line 4, in test\n' - ' test2()\n' - ' File "./mymodule.py", line 3, in test2\n' - ' print spam\n' - ' NameError: spam\n' - ' >>> pdb.pm()\n' - ' > ./mymodule.py(3)test2()\n' - ' -> print spam\n' - ' (Pdb)\n' - '\n' - 'The module defines the following functions; each enters the ' - 'debugger\n' - 'in a slightly different way:\n' - '\n' - 'pdb.run(statement[, globals[, locals]])\n' - '\n' - ' Execute the *statement* (given as a string) under debugger ' - 'control.\n' - ' The debugger prompt appears before any code is executed; you ' - 'can\n' - ' set breakpoints and type "continue", or you can step through ' - 'the\n' - ' statement using "step" or "next" (all these commands are ' - 'explained\n' - ' below). The optional *globals* and *locals* arguments ' - 'specify the\n' - ' environment in which the code is executed; by default the\n' - ' dictionary of the module "__main__" is used. (See the ' - 'explanation\n' - ' of the "exec" statement or the "eval()" built-in function.)\n' - '\n' - 'pdb.runeval(expression[, globals[, locals]])\n' - '\n' - ' Evaluate the *expression* (given as a string) under debugger\n' - ' control. When "runeval()" returns, it returns the value of ' - 'the\n' - ' expression. Otherwise this function is similar to "run()".\n' - '\n' - 'pdb.runcall(function[, argument, ...])\n' - '\n' - ' Call the *function* (a function or method object, not a ' - 'string)\n' - ' with the given arguments. When "runcall()" returns, it ' - 'returns\n' - ' whatever the function call returned. The debugger prompt ' - 'appears\n' - ' as soon as the function is entered.\n' - '\n' - 'pdb.set_trace()\n' - '\n' - ' Enter the debugger at the calling stack frame. This is ' - 'useful to\n' - ' hard-code a breakpoint at a given point in a program, even if ' - 'the\n' - ' code is not otherwise being debugged (e.g. when an assertion\n' - ' fails).\n' - '\n' - 'pdb.post_mortem([traceback])\n' - '\n' - ' Enter post-mortem debugging of the given *traceback* object. ' - 'If no\n' - ' *traceback* is given, it uses the one of the exception that ' - 'is\n' - ' currently being handled (an exception must be being handled ' - 'if the\n' - ' default is to be used).\n' - '\n' - 'pdb.pm()\n' - '\n' - ' Enter post-mortem debugging of the traceback found in\n' - ' "sys.last_traceback".\n' - '\n' - 'The "run*" functions and "set_trace()" are aliases for ' - 'instantiating\n' - 'the "Pdb" class and calling the method of the same name. If you ' - 'want\n' - 'to access further features, you have to do this yourself:\n' - '\n' - "class pdb.Pdb(completekey='tab', stdin=None, stdout=None, " - 'skip=None)\n' - '\n' - ' "Pdb" is the debugger class.\n' - '\n' - ' The *completekey*, *stdin* and *stdout* arguments are passed ' - 'to the\n' - ' underlying "cmd.Cmd" class; see the description there.\n' - '\n' - ' The *skip* argument, if given, must be an iterable of ' - 'glob-style\n' - ' module name patterns. The debugger will not step into frames ' - 'that\n' - ' originate in a module that matches one of these patterns. ' - '[1]\n' - '\n' - ' Example call to enable tracing with *skip*:\n' - '\n' - " import pdb; pdb.Pdb(skip=['django.*']).set_trace()\n" - '\n' - ' New in version 2.7: The *skip* argument.\n' - '\n' - ' run(statement[, globals[, locals]])\n' - ' runeval(expression[, globals[, locals]])\n' - ' runcall(function[, argument, ...])\n' - ' set_trace()\n' - '\n' - ' See the documentation for the functions explained above.\n', - 'del': '\n' - 'The "del" statement\n' - '*******************\n' - '\n' - ' del_stmt ::= "del" target_list\n' - '\n' - 'Deletion is recursively defined very similar to the way assignment ' - 'is\n' - 'defined. Rather than spelling it out in full details, here are some\n' - 'hints.\n' - '\n' - 'Deletion of a target list recursively deletes each target, from left\n' - 'to right.\n' - '\n' - 'Deletion of a name removes the binding of that name from the local ' - 'or\n' - 'global namespace, depending on whether the name occurs in a "global"\n' - 'statement in the same code block. If the name is unbound, a\n' - '"NameError" exception will be raised.\n' - '\n' - 'It is illegal to delete a name from the local namespace if it occurs\n' - 'as a free variable in a nested block.\n' - '\n' - 'Deletion of attribute references, subscriptions and slicings is ' - 'passed\n' - 'to the primary object involved; deletion of a slicing is in general\n' - 'equivalent to assignment of an empty slice of the right type (but ' - 'even\n' - 'this is determined by the sliced object).\n', - 'dict': '\n' - 'Dictionary displays\n' - '*******************\n' - '\n' - 'A dictionary display is a possibly empty series of key/datum pairs\n' - 'enclosed in curly braces:\n' - '\n' - ' dict_display ::= "{" [key_datum_list | dict_comprehension] ' - '"}"\n' - ' key_datum_list ::= key_datum ("," key_datum)* [","]\n' - ' key_datum ::= expression ":" expression\n' - ' dict_comprehension ::= expression ":" expression comp_for\n' - '\n' - 'A dictionary display yields a new dictionary object.\n' - '\n' - 'If a comma-separated sequence of key/datum pairs is given, they are\n' - 'evaluated from left to right to define the entries of the ' - 'dictionary:\n' - 'each key object is used as a key into the dictionary to store the\n' - 'corresponding datum. This means that you can specify the same key\n' - "multiple times in the key/datum list, and the final dictionary's " - 'value\n' - 'for that key will be the last one given.\n' - '\n' - 'A dict comprehension, in contrast to list and set comprehensions,\n' - 'needs two expressions separated with a colon followed by the usual\n' - '"for" and "if" clauses. When the comprehension is run, the ' - 'resulting\n' - 'key and value elements are inserted in the new dictionary in the ' - 'order\n' - 'they are produced.\n' - '\n' - 'Restrictions on the types of the key values are listed earlier in\n' - 'section The standard type hierarchy. (To summarize, the key type\n' - 'should be *hashable*, which excludes all mutable objects.) Clashes\n' - 'between duplicate keys are not detected; the last datum (textually\n' - 'rightmost in the display) stored for a given key value prevails.\n', - 'dynamic-features': '\n' - 'Interaction with dynamic features\n' - '*********************************\n' - '\n' - 'There are several cases where Python statements are ' - 'illegal when used\n' - 'in conjunction with nested scopes that contain free ' - 'variables.\n' - '\n' - 'If a variable is referenced in an enclosing scope, it is ' - 'illegal to\n' - 'delete the name. An error will be reported at compile ' - 'time.\n' - '\n' - 'If the wild card form of import --- "import *" --- is ' - 'used in a\n' - 'function and the function contains or is a nested block ' - 'with free\n' - 'variables, the compiler will raise a "SyntaxError".\n' - '\n' - 'If "exec" is used in a function and the function ' - 'contains or is a\n' - 'nested block with free variables, the compiler will ' - 'raise a\n' - '"SyntaxError" unless the exec explicitly specifies the ' - 'local namespace\n' - 'for the "exec". (In other words, "exec obj" would be ' - 'illegal, but\n' - '"exec obj in ns" would be legal.)\n' - '\n' - 'The "eval()", "execfile()", and "input()" functions and ' - 'the "exec"\n' - 'statement do not have access to the full environment for ' - 'resolving\n' - 'names. Names may be resolved in the local and global ' - 'namespaces of\n' - 'the caller. Free variables are not resolved in the ' - 'nearest enclosing\n' - 'namespace, but in the global namespace. [1] The "exec" ' - 'statement and\n' - 'the "eval()" and "execfile()" functions have optional ' - 'arguments to\n' - 'override the global and local namespace. If only one ' - 'namespace is\n' - 'specified, it is used for both.\n', - 'else': '\n' - 'The "if" statement\n' - '******************\n' - '\n' - 'The "if" statement is used for conditional execution:\n' - '\n' - ' if_stmt ::= "if" expression ":" suite\n' - ' ( "elif" expression ":" suite )*\n' - ' ["else" ":" suite]\n' - '\n' - 'It selects exactly one of the suites by evaluating the expressions ' - 'one\n' - 'by one until one is found to be true (see section Boolean ' - 'operations\n' - 'for the definition of true and false); then that suite is executed\n' - '(and no other part of the "if" statement is executed or evaluated).\n' - 'If all expressions are false, the suite of the "else" clause, if\n' - 'present, is executed.\n', - 'exceptions': '\n' - 'Exceptions\n' - '**********\n' - '\n' - 'Exceptions are a means of breaking out of the normal flow of ' - 'control\n' - 'of a code block in order to handle errors or other ' - 'exceptional\n' - 'conditions. An exception is *raised* at the point where the ' - 'error is\n' - 'detected; it may be *handled* by the surrounding code block or ' - 'by any\n' - 'code block that directly or indirectly invoked the code block ' - 'where\n' - 'the error occurred.\n' - '\n' - 'The Python interpreter raises an exception when it detects a ' - 'run-time\n' - 'error (such as division by zero). A Python program can also\n' - 'explicitly raise an exception with the "raise" statement. ' - 'Exception\n' - 'handlers are specified with the "try" ... "except" statement. ' - 'The\n' - '"finally" clause of such a statement can be used to specify ' - 'cleanup\n' - 'code which does not handle the exception, but is executed ' - 'whether an\n' - 'exception occurred or not in the preceding code.\n' - '\n' - 'Python uses the "termination" model of error handling: an ' - 'exception\n' - 'handler can find out what happened and continue execution at ' - 'an outer\n' - 'level, but it cannot repair the cause of the error and retry ' - 'the\n' - 'failing operation (except by re-entering the offending piece ' - 'of code\n' - 'from the top).\n' - '\n' - 'When an exception is not handled at all, the interpreter ' - 'terminates\n' - 'execution of the program, or returns to its interactive main ' - 'loop. In\n' - 'either case, it prints a stack backtrace, except when the ' - 'exception is\n' - '"SystemExit".\n' - '\n' - 'Exceptions are identified by class instances. The "except" ' - 'clause is\n' - 'selected depending on the class of the instance: it must ' - 'reference the\n' - 'class of the instance or a base class thereof. The instance ' - 'can be\n' - 'received by the handler and can carry additional information ' - 'about the\n' - 'exceptional condition.\n' - '\n' - 'Exceptions can also be identified by strings, in which case ' - 'the\n' - '"except" clause is selected by object identity. An arbitrary ' - 'value\n' - 'can be raised along with the identifying string which can be ' - 'passed to\n' - 'the handler.\n' - '\n' - 'Note: Messages to exceptions are not part of the Python API. ' - 'Their\n' - ' contents may change from one version of Python to the next ' - 'without\n' - ' warning and should not be relied on by code which will run ' - 'under\n' - ' multiple versions of the interpreter.\n' - '\n' - 'See also the description of the "try" statement in section The ' - 'try\n' - 'statement and "raise" statement in section The raise ' - 'statement.\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] This limitation occurs because the code that is executed ' - 'by\n' - ' these operations is not available at the time the module ' - 'is\n' - ' compiled.\n', - 'exec': '\n' - 'The "exec" statement\n' - '********************\n' - '\n' - ' exec_stmt ::= "exec" or_expr ["in" expression ["," expression]]\n' - '\n' - 'This statement supports dynamic execution of Python code. The ' - 'first\n' - 'expression should evaluate to either a Unicode string, a *Latin-1*\n' - 'encoded string, an open file object, a code object, or a tuple. If ' - 'it\n' - 'is a string, the string is parsed as a suite of Python statements\n' - 'which is then executed (unless a syntax error occurs). [1] If it is ' - 'an\n' - 'open file, the file is parsed until EOF and executed. If it is a ' - 'code\n' - 'object, it is simply executed. For the interpretation of a tuple, ' - 'see\n' - "below. In all cases, the code that's executed is expected to be " - 'valid\n' - 'as file input (see section File input). Be aware that the "return"\n' - 'and "yield" statements may not be used outside of function ' - 'definitions\n' - 'even within the context of code passed to the "exec" statement.\n' - '\n' - 'In all cases, if the optional parts are omitted, the code is ' - 'executed\n' - 'in the current scope. If only the first expression after "in" is\n' - 'specified, it should be a dictionary, which will be used for both ' - 'the\n' - 'global and the local variables. If two expressions are given, they\n' - 'are used for the global and local variables, respectively. If\n' - 'provided, *locals* can be any mapping object. Remember that at ' - 'module\n' - 'level, globals and locals are the same dictionary. If two separate\n' - 'objects are given as *globals* and *locals*, the code will be ' - 'executed\n' - 'as if it were embedded in a class definition.\n' - '\n' - 'The first expression may also be a tuple of length 2 or 3. In this\n' - 'case, the optional parts must be omitted. The form "exec(expr,\n' - 'globals)" is equivalent to "exec expr in globals", while the form\n' - '"exec(expr, globals, locals)" is equivalent to "exec expr in ' - 'globals,\n' - 'locals". The tuple form of "exec" provides compatibility with ' - 'Python\n' - '3, where "exec" is a function rather than a statement.\n' - '\n' - 'Changed in version 2.4: Formerly, *locals* was required to be a\n' - 'dictionary.\n' - '\n' - 'As a side effect, an implementation may insert additional keys into\n' - 'the dictionaries given besides those corresponding to variable ' - 'names\n' - 'set by the executed code. For example, the current implementation ' - 'may\n' - 'add a reference to the dictionary of the built-in module ' - '"__builtin__"\n' - 'under the key "__builtins__" (!).\n' - '\n' - "**Programmer's hints:** dynamic evaluation of expressions is " - 'supported\n' - 'by the built-in function "eval()". The built-in functions ' - '"globals()"\n' - 'and "locals()" return the current global and local dictionary,\n' - 'respectively, which may be useful to pass around for use by "exec".\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] Note that the parser only accepts the Unix-style end of line\n' - ' convention. If you are reading the code from a file, make sure ' - 'to\n' - ' use *universal newlines* mode to convert Windows or Mac-style\n' - ' newlines.\n', - 'execmodel': '\n' - 'Execution model\n' - '***************\n' - '\n' - '\n' - 'Naming and binding\n' - '==================\n' - '\n' - '*Names* refer to objects. Names are introduced by name ' - 'binding\n' - 'operations. Each occurrence of a name in the program text ' - 'refers to\n' - 'the *binding* of that name established in the innermost ' - 'function block\n' - 'containing the use.\n' - '\n' - 'A *block* is a piece of Python program text that is executed as ' - 'a\n' - 'unit. The following are blocks: a module, a function body, and ' - 'a class\n' - 'definition. Each command typed interactively is a block. A ' - 'script\n' - 'file (a file given as standard input to the interpreter or ' - 'specified\n' - 'on the interpreter command line the first argument) is a code ' - 'block.\n' - 'A script command (a command specified on the interpreter ' - 'command line\n' - "with the '**-c**' option) is a code block. The file read by " - 'the\n' - 'built-in function "execfile()" is a code block. The string ' - 'argument\n' - 'passed to the built-in function "eval()" and to the "exec" ' - 'statement\n' - 'is a code block. The expression read and evaluated by the ' - 'built-in\n' - 'function "input()" is a code block.\n' - '\n' - 'A code block is executed in an *execution frame*. A frame ' - 'contains\n' - 'some administrative information (used for debugging) and ' - 'determines\n' - "where and how execution continues after the code block's " - 'execution has\n' - 'completed.\n' - '\n' - 'A *scope* defines the visibility of a name within a block. If ' - 'a local\n' - 'variable is defined in a block, its scope includes that block. ' - 'If the\n' - 'definition occurs in a function block, the scope extends to any ' - 'blocks\n' - 'contained within the defining one, unless a contained block ' - 'introduces\n' - 'a different binding for the name. The scope of names defined ' - 'in a\n' - 'class block is limited to the class block; it does not extend ' - 'to the\n' - 'code blocks of methods -- this includes generator expressions ' - 'since\n' - 'they are implemented using a function scope. This means that ' - 'the\n' - 'following will fail:\n' - '\n' - ' class A:\n' - ' a = 42\n' - ' b = list(a + i for i in range(10))\n' - '\n' - 'When a name is used in a code block, it is resolved using the ' - 'nearest\n' - 'enclosing scope. The set of all such scopes visible to a code ' - 'block\n' - "is called the block's *environment*.\n" - '\n' - 'If a name is bound in a block, it is a local variable of that ' - 'block.\n' - 'If a name is bound at the module level, it is a global ' - 'variable. (The\n' - 'variables of the module code block are local and global.) If ' - 'a\n' - 'variable is used in a code block but not defined there, it is a ' - '*free\n' - 'variable*.\n' - '\n' - 'When a name is not found at all, a "NameError" exception is ' - 'raised.\n' - 'If the name refers to a local variable that has not been bound, ' - 'a\n' - '"UnboundLocalError" exception is raised. "UnboundLocalError" ' - 'is a\n' - 'subclass of "NameError".\n' - '\n' - 'The following constructs bind names: formal parameters to ' - 'functions,\n' - '"import" statements, class and function definitions (these bind ' - 'the\n' - 'class or function name in the defining block), and targets that ' - 'are\n' - 'identifiers if occurring in an assignment, "for" loop header, ' - 'in the\n' - 'second position of an "except" clause header or after "as" in a ' - '"with"\n' - 'statement. The "import" statement of the form "from ... import ' - '*"\n' - 'binds all names defined in the imported module, except those ' - 'beginning\n' - 'with an underscore. This form may only be used at the module ' - 'level.\n' - '\n' - 'A target occurring in a "del" statement is also considered ' - 'bound for\n' - 'this purpose (though the actual semantics are to unbind the ' - 'name). It\n' - 'is illegal to unbind a name that is referenced by an enclosing ' - 'scope;\n' - 'the compiler will report a "SyntaxError".\n' - '\n' - 'Each assignment or import statement occurs within a block ' - 'defined by a\n' - 'class or function definition or at the module level (the ' - 'top-level\n' - 'code block).\n' - '\n' - 'If a name binding operation occurs anywhere within a code ' - 'block, all\n' - 'uses of the name within the block are treated as references to ' - 'the\n' - 'current block. This can lead to errors when a name is used ' - 'within a\n' - 'block before it is bound. This rule is subtle. Python lacks\n' - 'declarations and allows name binding operations to occur ' - 'anywhere\n' - 'within a code block. The local variables of a code block can ' - 'be\n' - 'determined by scanning the entire text of the block for name ' - 'binding\n' - 'operations.\n' - '\n' - 'If the global statement occurs within a block, all uses of the ' - 'name\n' - 'specified in the statement refer to the binding of that name in ' - 'the\n' - 'top-level namespace. Names are resolved in the top-level ' - 'namespace by\n' - 'searching the global namespace, i.e. the namespace of the ' - 'module\n' - 'containing the code block, and the builtins namespace, the ' - 'namespace\n' - 'of the module "__builtin__". The global namespace is searched ' - 'first.\n' - 'If the name is not found there, the builtins namespace is ' - 'searched.\n' - 'The global statement must precede all uses of the name.\n' - '\n' - 'The builtins namespace associated with the execution of a code ' - 'block\n' - 'is actually found by looking up the name "__builtins__" in its ' - 'global\n' - 'namespace; this should be a dictionary or a module (in the ' - 'latter case\n' - "the module's dictionary is used). By default, when in the " - '"__main__"\n' - 'module, "__builtins__" is the built-in module "__builtin__" ' - '(note: no\n' - '\'s\'); when in any other module, "__builtins__" is an alias ' - 'for the\n' - 'dictionary of the "__builtin__" module itself. "__builtins__" ' - 'can be\n' - 'set to a user-created dictionary to create a weak form of ' - 'restricted\n' - 'execution.\n' - '\n' - '**CPython implementation detail:** Users should not touch\n' - '"__builtins__"; it is strictly an implementation detail. ' - 'Users\n' - 'wanting to override values in the builtins namespace should ' - '"import"\n' - 'the "__builtin__" (no \'s\') module and modify its attributes\n' - 'appropriately.\n' - '\n' - 'The namespace for a module is automatically created the first ' - 'time a\n' - 'module is imported. The main module for a script is always ' - 'called\n' - '"__main__".\n' - '\n' - 'The "global" statement has the same scope as a name binding ' - 'operation\n' - 'in the same block. If the nearest enclosing scope for a free ' - 'variable\n' - 'contains a global statement, the free variable is treated as a ' - 'global.\n' - '\n' - 'A class definition is an executable statement that may use and ' - 'define\n' - 'names. These references follow the normal rules for name ' - 'resolution.\n' - 'The namespace of the class definition becomes the attribute ' - 'dictionary\n' - 'of the class. Names defined at the class scope are not visible ' - 'in\n' - 'methods.\n' - '\n' - '\n' - 'Interaction with dynamic features\n' - '---------------------------------\n' - '\n' - 'There are several cases where Python statements are illegal ' - 'when used\n' - 'in conjunction with nested scopes that contain free variables.\n' - '\n' - 'If a variable is referenced in an enclosing scope, it is ' - 'illegal to\n' - 'delete the name. An error will be reported at compile time.\n' - '\n' - 'If the wild card form of import --- "import *" --- is used in ' - 'a\n' - 'function and the function contains or is a nested block with ' - 'free\n' - 'variables, the compiler will raise a "SyntaxError".\n' - '\n' - 'If "exec" is used in a function and the function contains or is ' - 'a\n' - 'nested block with free variables, the compiler will raise a\n' - '"SyntaxError" unless the exec explicitly specifies the local ' - 'namespace\n' - 'for the "exec". (In other words, "exec obj" would be illegal, ' - 'but\n' - '"exec obj in ns" would be legal.)\n' - '\n' - 'The "eval()", "execfile()", and "input()" functions and the ' - '"exec"\n' - 'statement do not have access to the full environment for ' - 'resolving\n' - 'names. Names may be resolved in the local and global ' - 'namespaces of\n' - 'the caller. Free variables are not resolved in the nearest ' - 'enclosing\n' - 'namespace, but in the global namespace. [1] The "exec" ' - 'statement and\n' - 'the "eval()" and "execfile()" functions have optional arguments ' - 'to\n' - 'override the global and local namespace. If only one namespace ' - 'is\n' - 'specified, it is used for both.\n' - '\n' - '\n' - 'Exceptions\n' - '==========\n' - '\n' - 'Exceptions are a means of breaking out of the normal flow of ' - 'control\n' - 'of a code block in order to handle errors or other exceptional\n' - 'conditions. An exception is *raised* at the point where the ' - 'error is\n' - 'detected; it may be *handled* by the surrounding code block or ' - 'by any\n' - 'code block that directly or indirectly invoked the code block ' - 'where\n' - 'the error occurred.\n' - '\n' - 'The Python interpreter raises an exception when it detects a ' - 'run-time\n' - 'error (such as division by zero). A Python program can also\n' - 'explicitly raise an exception with the "raise" statement. ' - 'Exception\n' - 'handlers are specified with the "try" ... "except" statement. ' - 'The\n' - '"finally" clause of such a statement can be used to specify ' - 'cleanup\n' - 'code which does not handle the exception, but is executed ' - 'whether an\n' - 'exception occurred or not in the preceding code.\n' - '\n' - 'Python uses the "termination" model of error handling: an ' - 'exception\n' - 'handler can find out what happened and continue execution at an ' - 'outer\n' - 'level, but it cannot repair the cause of the error and retry ' - 'the\n' - 'failing operation (except by re-entering the offending piece of ' - 'code\n' - 'from the top).\n' - '\n' - 'When an exception is not handled at all, the interpreter ' - 'terminates\n' - 'execution of the program, or returns to its interactive main ' - 'loop. In\n' - 'either case, it prints a stack backtrace, except when the ' - 'exception is\n' - '"SystemExit".\n' - '\n' - 'Exceptions are identified by class instances. The "except" ' - 'clause is\n' - 'selected depending on the class of the instance: it must ' - 'reference the\n' - 'class of the instance or a base class thereof. The instance ' - 'can be\n' - 'received by the handler and can carry additional information ' - 'about the\n' - 'exceptional condition.\n' - '\n' - 'Exceptions can also be identified by strings, in which case ' - 'the\n' - '"except" clause is selected by object identity. An arbitrary ' - 'value\n' - 'can be raised along with the identifying string which can be ' - 'passed to\n' - 'the handler.\n' - '\n' - 'Note: Messages to exceptions are not part of the Python API. ' - 'Their\n' - ' contents may change from one version of Python to the next ' - 'without\n' - ' warning and should not be relied on by code which will run ' - 'under\n' - ' multiple versions of the interpreter.\n' - '\n' - 'See also the description of the "try" statement in section The ' - 'try\n' - 'statement and "raise" statement in section The raise ' - 'statement.\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] This limitation occurs because the code that is executed ' - 'by\n' - ' these operations is not available at the time the module ' - 'is\n' - ' compiled.\n', - 'exprlists': '\n' - 'Expression lists\n' - '****************\n' - '\n' - ' expression_list ::= expression ( "," expression )* [","]\n' - '\n' - 'An expression list containing at least one comma yields a ' - 'tuple. The\n' - 'length of the tuple is the number of expressions in the list. ' - 'The\n' - 'expressions are evaluated from left to right.\n' - '\n' - 'The trailing comma is required only to create a single tuple ' - '(a.k.a. a\n' - '*singleton*); it is optional in all other cases. A single ' - 'expression\n' - "without a trailing comma doesn't create a tuple, but rather " - 'yields the\n' - 'value of that expression. (To create an empty tuple, use an ' - 'empty pair\n' - 'of parentheses: "()".)\n', - 'floating': '\n' - 'Floating point literals\n' - '***********************\n' - '\n' - 'Floating point literals are described by the following lexical\n' - 'definitions:\n' - '\n' - ' floatnumber ::= pointfloat | exponentfloat\n' - ' pointfloat ::= [intpart] fraction | intpart "."\n' - ' exponentfloat ::= (intpart | pointfloat) exponent\n' - ' intpart ::= digit+\n' - ' fraction ::= "." digit+\n' - ' exponent ::= ("e" | "E") ["+" | "-"] digit+\n' - '\n' - 'Note that the integer and exponent parts of floating point ' - 'numbers can\n' - 'look like octal integers, but are interpreted using radix 10. ' - 'For\n' - 'example, "077e010" is legal, and denotes the same number as ' - '"77e10".\n' - 'The allowed range of floating point literals is implementation-\n' - 'dependent. Some examples of floating point literals:\n' - '\n' - ' 3.14 10. .001 1e100 3.14e-10 0e0\n' - '\n' - 'Note that numeric literals do not include a sign; a phrase like ' - '"-1"\n' - 'is actually an expression composed of the unary operator "-" and ' - 'the\n' - 'literal "1".\n', - 'for': '\n' - 'The "for" statement\n' - '*******************\n' - '\n' - 'The "for" statement is used to iterate over the elements of a ' - 'sequence\n' - '(such as a string, tuple or list) or other iterable object:\n' - '\n' - ' for_stmt ::= "for" target_list "in" expression_list ":" suite\n' - ' ["else" ":" suite]\n' - '\n' - 'The expression list is evaluated once; it should yield an iterable\n' - 'object. An iterator is created for the result of the\n' - '"expression_list". The suite is then executed once for each item\n' - 'provided by the iterator, in the order of ascending indices. Each\n' - 'item in turn is assigned to the target list using the standard rules\n' - 'for assignments, and then the suite is executed. When the items are\n' - 'exhausted (which is immediately when the sequence is empty), the ' - 'suite\n' - 'in the "else" clause, if present, is executed, and the loop\n' - 'terminates.\n' - '\n' - 'A "break" statement executed in the first suite terminates the loop\n' - 'without executing the "else" clause\'s suite. A "continue" ' - 'statement\n' - 'executed in the first suite skips the rest of the suite and ' - 'continues\n' - 'with the next item, or with the "else" clause if there was no next\n' - 'item.\n' - '\n' - 'The suite may assign to the variable(s) in the target list; this ' - 'does\n' - 'not affect the next item assigned to it.\n' - '\n' - 'The target list is not deleted when the loop is finished, but if the\n' - 'sequence is empty, it will not have been assigned to at all by the\n' - 'loop. Hint: the built-in function "range()" returns a sequence of\n' - 'integers suitable to emulate the effect of Pascal\'s "for i := a to ' - 'b\n' - 'do"; e.g., "range(3)" returns the list "[0, 1, 2]".\n' - '\n' - 'Note: There is a subtlety when the sequence is being modified by the\n' - ' loop (this can only occur for mutable sequences, i.e. lists). An\n' - ' internal counter is used to keep track of which item is used next,\n' - ' and this is incremented on each iteration. When this counter has\n' - ' reached the length of the sequence the loop terminates. This ' - 'means\n' - ' that if the suite deletes the current (or a previous) item from ' - 'the\n' - ' sequence, the next item will be skipped (since it gets the index ' - 'of\n' - ' the current item which has already been treated). Likewise, if ' - 'the\n' - ' suite inserts an item in the sequence before the current item, the\n' - ' current item will be treated again the next time through the loop.\n' - ' This can lead to nasty bugs that can be avoided by making a\n' - ' temporary copy using a slice of the whole sequence, e.g.,\n' - '\n' - ' for x in a[:]:\n' - ' if x < 0: a.remove(x)\n', - 'formatstrings': '\n' - 'Format String Syntax\n' - '********************\n' - '\n' - 'The "str.format()" method and the "Formatter" class share ' - 'the same\n' - 'syntax for format strings (although in the case of ' - '"Formatter",\n' - 'subclasses can define their own format string syntax).\n' - '\n' - 'Format strings contain "replacement fields" surrounded by ' - 'curly braces\n' - '"{}". Anything that is not contained in braces is ' - 'considered literal\n' - 'text, which is copied unchanged to the output. If you need ' - 'to include\n' - 'a brace character in the literal text, it can be escaped by ' - 'doubling:\n' - '"{{" and "}}".\n' - '\n' - 'The grammar for a replacement field is as follows:\n' - '\n' - ' replacement_field ::= "{" [field_name] ["!" ' - 'conversion] [":" format_spec] "}"\n' - ' field_name ::= arg_name ("." attribute_name | ' - '"[" element_index "]")*\n' - ' arg_name ::= [identifier | integer]\n' - ' attribute_name ::= identifier\n' - ' element_index ::= integer | index_string\n' - ' index_string ::= +\n' - ' conversion ::= "r" | "s"\n' - ' format_spec ::= \n' - '\n' - 'In less formal terms, the replacement field can start with ' - 'a\n' - '*field_name* that specifies the object whose value is to be ' - 'formatted\n' - 'and inserted into the output instead of the replacement ' - 'field. The\n' - '*field_name* is optionally followed by a *conversion* ' - 'field, which is\n' - 'preceded by an exclamation point "\'!\'", and a ' - '*format_spec*, which is\n' - 'preceded by a colon "\':\'". These specify a non-default ' - 'format for the\n' - 'replacement value.\n' - '\n' - 'See also the Format Specification Mini-Language section.\n' - '\n' - 'The *field_name* itself begins with an *arg_name* that is ' - 'either a\n' - "number or a keyword. If it's a number, it refers to a " - 'positional\n' - "argument, and if it's a keyword, it refers to a named " - 'keyword\n' - 'argument. If the numerical arg_names in a format string ' - 'are 0, 1, 2,\n' - '... in sequence, they can all be omitted (not just some) ' - 'and the\n' - 'numbers 0, 1, 2, ... will be automatically inserted in that ' - 'order.\n' - 'Because *arg_name* is not quote-delimited, it is not ' - 'possible to\n' - 'specify arbitrary dictionary keys (e.g., the strings ' - '"\'10\'" or\n' - '"\':-]\'") within a format string. The *arg_name* can be ' - 'followed by any\n' - 'number of index or attribute expressions. An expression of ' - 'the form\n' - '"\'.name\'" selects the named attribute using "getattr()", ' - 'while an\n' - 'expression of the form "\'[index]\'" does an index lookup ' - 'using\n' - '"__getitem__()".\n' - '\n' - 'Changed in version 2.7: The positional argument specifiers ' - 'can be\n' - 'omitted, so "\'{} {}\'" is equivalent to "\'{0} {1}\'".\n' - '\n' - 'Some simple format string examples:\n' - '\n' - ' "First, thou shalt count to {0}" # References first ' - 'positional argument\n' - ' "Bring me a {}" # Implicitly ' - 'references the first positional argument\n' - ' "From {} to {}" # Same as "From {0} to ' - '{1}"\n' - ' "My quest is {name}" # References keyword ' - "argument 'name'\n" - ' "Weight in tons {0.weight}" # \'weight\' attribute ' - 'of first positional arg\n' - ' "Units destroyed: {players[0]}" # First element of ' - "keyword argument 'players'.\n" - '\n' - 'The *conversion* field causes a type coercion before ' - 'formatting.\n' - 'Normally, the job of formatting a value is done by the ' - '"__format__()"\n' - 'method of the value itself. However, in some cases it is ' - 'desirable to\n' - 'force a type to be formatted as a string, overriding its ' - 'own\n' - 'definition of formatting. By converting the value to a ' - 'string before\n' - 'calling "__format__()", the normal formatting logic is ' - 'bypassed.\n' - '\n' - 'Two conversion flags are currently supported: "\'!s\'" ' - 'which calls\n' - '"str()" on the value, and "\'!r\'" which calls "repr()".\n' - '\n' - 'Some examples:\n' - '\n' - ' "Harold\'s a clever {0!s}" # Calls str() on the ' - 'argument first\n' - ' "Bring out the holy {name!r}" # Calls repr() on the ' - 'argument first\n' - '\n' - 'The *format_spec* field contains a specification of how the ' - 'value\n' - 'should be presented, including such details as field width, ' - 'alignment,\n' - 'padding, decimal precision and so on. Each value type can ' - 'define its\n' - 'own "formatting mini-language" or interpretation of the ' - '*format_spec*.\n' - '\n' - 'Most built-in types support a common formatting ' - 'mini-language, which\n' - 'is described in the next section.\n' - '\n' - 'A *format_spec* field can also include nested replacement ' - 'fields\n' - 'within it. These nested replacement fields may contain a ' - 'field name,\n' - 'conversion flag and format specification, but deeper ' - 'nesting is not\n' - 'allowed. The replacement fields within the format_spec ' - 'are\n' - 'substituted before the *format_spec* string is interpreted. ' - 'This\n' - 'allows the formatting of a value to be dynamically ' - 'specified.\n' - '\n' - 'See the Format examples section for some examples.\n' - '\n' - '\n' - 'Format Specification Mini-Language\n' - '==================================\n' - '\n' - '"Format specifications" are used within replacement fields ' - 'contained\n' - 'within a format string to define how individual values are ' - 'presented\n' - '(see Format String Syntax). They can also be passed ' - 'directly to the\n' - 'built-in "format()" function. Each formattable type may ' - 'define how\n' - 'the format specification is to be interpreted.\n' - '\n' - 'Most built-in types implement the following options for ' - 'format\n' - 'specifications, although some of the formatting options are ' - 'only\n' - 'supported by the numeric types.\n' - '\n' - 'A general convention is that an empty format string ("""") ' - 'produces\n' - 'the same result as if you had called "str()" on the value. ' - 'A non-empty\n' - 'format string typically modifies the result.\n' - '\n' - 'The general form of a *standard format specifier* is:\n' - '\n' - ' format_spec ::= ' - '[[fill]align][sign][#][0][width][,][.precision][type]\n' - ' fill ::= \n' - ' align ::= "<" | ">" | "=" | "^"\n' - ' sign ::= "+" | "-" | " "\n' - ' width ::= integer\n' - ' precision ::= integer\n' - ' type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" ' - '| "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"\n' - '\n' - 'If a valid *align* value is specified, it can be preceded ' - 'by a *fill*\n' - 'character that can be any character and defaults to a space ' - 'if\n' - 'omitted. It is not possible to use a literal curly brace ' - '(""{"" or\n' - '""}"") as the *fill* character when using the ' - '"str.format()" method.\n' - 'However, it is possible to insert a curly brace with a ' - 'nested\n' - "replacement field. This limitation doesn't affect the " - '"format()"\n' - 'function.\n' - '\n' - 'The meaning of the various alignment options is as ' - 'follows:\n' - '\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | Option | ' - 'Meaning ' - '|\n' - ' ' - '+===========+============================================================+\n' - ' | "\'<\'" | Forces the field to be left-aligned ' - 'within the available |\n' - ' | | space (this is the default for most ' - 'objects). |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'>\'" | Forces the field to be right-aligned ' - 'within the available |\n' - ' | | space (this is the default for ' - 'numbers). |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'=\'" | Forces the padding to be placed after ' - 'the sign (if any) |\n' - ' | | but before the digits. This is used for ' - 'printing fields |\n' - " | | in the form '+000000120'. This alignment " - 'option is only |\n' - ' | | valid for numeric types. It becomes the ' - "default when '0' |\n" - ' | | immediately precedes the field ' - 'width. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'^\'" | Forces the field to be centered within ' - 'the available |\n' - ' | | ' - 'space. ' - '|\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - '\n' - 'Note that unless a minimum field width is defined, the ' - 'field width\n' - 'will always be the same size as the data to fill it, so ' - 'that the\n' - 'alignment option has no meaning in this case.\n' - '\n' - 'The *sign* option is only valid for number types, and can ' - 'be one of\n' - 'the following:\n' - '\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | Option | ' - 'Meaning ' - '|\n' - ' ' - '+===========+============================================================+\n' - ' | "\'+\'" | indicates that a sign should be used for ' - 'both positive as |\n' - ' | | well as negative ' - 'numbers. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'-\'" | indicates that a sign should be used ' - 'only for negative |\n' - ' | | numbers (this is the default ' - 'behavior). |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | space | indicates that a leading space should be ' - 'used on positive |\n' - ' | | numbers, and a minus sign on negative ' - 'numbers. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - '\n' - 'The "\'#\'" option is only valid for integers, and only for ' - 'binary,\n' - 'octal, or hexadecimal output. If present, it specifies ' - 'that the\n' - 'output will be prefixed by "\'0b\'", "\'0o\'", or "\'0x\'", ' - 'respectively.\n' - '\n' - 'The "\',\'" option signals the use of a comma for a ' - 'thousands separator.\n' - 'For a locale aware separator, use the "\'n\'" integer ' - 'presentation type\n' - 'instead.\n' - '\n' - 'Changed in version 2.7: Added the "\',\'" option (see also ' - '**PEP 378**).\n' - '\n' - '*width* is a decimal integer defining the minimum field ' - 'width. If not\n' - 'specified, then the field width will be determined by the ' - 'content.\n' - '\n' - 'When no explicit alignment is given, preceding the *width* ' - 'field by a\n' - 'zero ("\'0\'") character enables sign-aware zero-padding ' - 'for numeric\n' - 'types. This is equivalent to a *fill* character of "\'0\'" ' - 'with an\n' - '*alignment* type of "\'=\'".\n' - '\n' - 'The *precision* is a decimal number indicating how many ' - 'digits should\n' - 'be displayed after the decimal point for a floating point ' - 'value\n' - 'formatted with "\'f\'" and "\'F\'", or before and after the ' - 'decimal point\n' - 'for a floating point value formatted with "\'g\'" or ' - '"\'G\'". For non-\n' - 'number types the field indicates the maximum field size - ' - 'in other\n' - 'words, how many characters will be used from the field ' - 'content. The\n' - '*precision* is not allowed for integer values.\n' - '\n' - 'Finally, the *type* determines how the data should be ' - 'presented.\n' - '\n' - 'The available string presentation types are:\n' - '\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | Type | ' - 'Meaning ' - '|\n' - ' ' - '+===========+============================================================+\n' - ' | "\'s\'" | String format. This is the default type ' - 'for strings and |\n' - ' | | may be ' - 'omitted. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | None | The same as ' - '"\'s\'". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - '\n' - 'The available integer presentation types are:\n' - '\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | Type | ' - 'Meaning ' - '|\n' - ' ' - '+===========+============================================================+\n' - ' | "\'b\'" | Binary format. Outputs the number in ' - 'base 2. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'c\'" | Character. Converts the integer to the ' - 'corresponding |\n' - ' | | unicode character before ' - 'printing. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'d\'" | Decimal Integer. Outputs the number in ' - 'base 10. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'o\'" | Octal format. Outputs the number in base ' - '8. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'x\'" | Hex format. Outputs the number in base ' - '16, using lower- |\n' - ' | | case letters for the digits above ' - '9. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'X\'" | Hex format. Outputs the number in base ' - '16, using upper- |\n' - ' | | case letters for the digits above ' - '9. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'n\'" | Number. This is the same as "\'d\'", ' - 'except that it uses the |\n' - ' | | current locale setting to insert the ' - 'appropriate number |\n' - ' | | separator ' - 'characters. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | None | The same as ' - '"\'d\'". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - '\n' - 'In addition to the above presentation types, integers can ' - 'be formatted\n' - 'with the floating point presentation types listed below ' - '(except "\'n\'"\n' - 'and None). When doing so, "float()" is used to convert the ' - 'integer to\n' - 'a floating point number before formatting.\n' - '\n' - 'The available presentation types for floating point and ' - 'decimal values\n' - 'are:\n' - '\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | Type | ' - 'Meaning ' - '|\n' - ' ' - '+===========+============================================================+\n' - ' | "\'e\'" | Exponent notation. Prints the number in ' - 'scientific |\n' - " | | notation using the letter 'e' to indicate " - 'the exponent. |\n' - ' | | The default precision is ' - '"6". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'E\'" | Exponent notation. Same as "\'e\'" ' - 'except it uses an upper |\n' - " | | case 'E' as the separator " - 'character. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'f\'" | Fixed point. Displays the number as a ' - 'fixed-point number. |\n' - ' | | The default precision is ' - '"6". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'F\'" | Fixed point. Same as ' - '"\'f\'". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'g\'" | General format. For a given precision ' - '"p >= 1", this |\n' - ' | | rounds the number to "p" significant ' - 'digits and then |\n' - ' | | formats the result in either fixed-point ' - 'format or in |\n' - ' | | scientific notation, depending on its ' - 'magnitude. The |\n' - ' | | precise rules are as follows: suppose that ' - 'the result |\n' - ' | | formatted with presentation type "\'e\'" ' - 'and precision "p-1" |\n' - ' | | would have exponent "exp". Then if "-4 <= ' - 'exp < p", the |\n' - ' | | number is formatted with presentation type ' - '"\'f\'" and |\n' - ' | | precision "p-1-exp". Otherwise, the ' - 'number is formatted |\n' - ' | | with presentation type "\'e\'" and ' - 'precision "p-1". In both |\n' - ' | | cases insignificant trailing zeros are ' - 'removed from the |\n' - ' | | significand, and the decimal point is also ' - 'removed if |\n' - ' | | there are no remaining digits following ' - 'it. Positive and |\n' - ' | | negative infinity, positive and negative ' - 'zero, and nans, |\n' - ' | | are formatted as "inf", "-inf", "0", "-0" ' - 'and "nan" |\n' - ' | | respectively, regardless of the ' - 'precision. A precision of |\n' - ' | | "0" is treated as equivalent to a ' - 'precision of "1". The |\n' - ' | | default precision is ' - '"6". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'G\'" | General format. Same as "\'g\'" except ' - 'switches to "\'E\'" if |\n' - ' | | the number gets too large. The ' - 'representations of infinity |\n' - ' | | and NaN are uppercased, ' - 'too. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'n\'" | Number. This is the same as "\'g\'", ' - 'except that it uses the |\n' - ' | | current locale setting to insert the ' - 'appropriate number |\n' - ' | | separator ' - 'characters. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | "\'%\'" | Percentage. Multiplies the number by 100 ' - 'and displays in |\n' - ' | | fixed ("\'f\'") format, followed by a ' - 'percent sign. |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - ' | None | The same as ' - '"\'g\'". |\n' - ' ' - '+-----------+------------------------------------------------------------+\n' - '\n' - '\n' - 'Format examples\n' - '===============\n' - '\n' - 'This section contains examples of the "str.format()" syntax ' - 'and\n' - 'comparison with the old "%"-formatting.\n' - '\n' - 'In most of the cases the syntax is similar to the old ' - '"%"-formatting,\n' - 'with the addition of the "{}" and with ":" used instead of ' - '"%". For\n' - 'example, "\'%03.2f\'" can be translated to "\'{:03.2f}\'".\n' - '\n' - 'The new format syntax also supports new and different ' - 'options, shown\n' - 'in the follow examples.\n' - '\n' - 'Accessing arguments by position:\n' - '\n' - " >>> '{0}, {1}, {2}'.format('a', 'b', 'c')\n" - " 'a, b, c'\n" - " >>> '{}, {}, {}'.format('a', 'b', 'c') # 2.7+ only\n" - " 'a, b, c'\n" - " >>> '{2}, {1}, {0}'.format('a', 'b', 'c')\n" - " 'c, b, a'\n" - " >>> '{2}, {1}, {0}'.format(*'abc') # unpacking " - 'argument sequence\n' - " 'c, b, a'\n" - " >>> '{0}{1}{0}'.format('abra', 'cad') # arguments' " - 'indices can be repeated\n' - " 'abracadabra'\n" - '\n' - 'Accessing arguments by name:\n' - '\n' - " >>> 'Coordinates: {latitude}, " - "{longitude}'.format(latitude='37.24N', " - "longitude='-115.81W')\n" - " 'Coordinates: 37.24N, -115.81W'\n" - " >>> coord = {'latitude': '37.24N', 'longitude': " - "'-115.81W'}\n" - " >>> 'Coordinates: {latitude}, " - "{longitude}'.format(**coord)\n" - " 'Coordinates: 37.24N, -115.81W'\n" - '\n' - "Accessing arguments' attributes:\n" - '\n' - ' >>> c = 3-5j\n' - " >>> ('The complex number {0} is formed from the real " - "part {0.real} '\n" - " ... 'and the imaginary part {0.imag}.').format(c)\n" - " 'The complex number (3-5j) is formed from the real part " - "3.0 and the imaginary part -5.0.'\n" - ' >>> class Point(object):\n' - ' ... def __init__(self, x, y):\n' - ' ... self.x, self.y = x, y\n' - ' ... def __str__(self):\n' - " ... return 'Point({self.x}, " - "{self.y})'.format(self=self)\n" - ' ...\n' - ' >>> str(Point(4, 2))\n' - " 'Point(4, 2)'\n" - '\n' - "Accessing arguments' items:\n" - '\n' - ' >>> coord = (3, 5)\n' - " >>> 'X: {0[0]}; Y: {0[1]}'.format(coord)\n" - " 'X: 3; Y: 5'\n" - '\n' - 'Replacing "%s" and "%r":\n' - '\n' - ' >>> "repr() shows quotes: {!r}; str() doesn\'t: ' - '{!s}".format(\'test1\', \'test2\')\n' - ' "repr() shows quotes: \'test1\'; str() doesn\'t: test2"\n' - '\n' - 'Aligning the text and specifying a width:\n' - '\n' - " >>> '{:<30}'.format('left aligned')\n" - " 'left aligned '\n" - " >>> '{:>30}'.format('right aligned')\n" - " ' right aligned'\n" - " >>> '{:^30}'.format('centered')\n" - " ' centered '\n" - " >>> '{:*^30}'.format('centered') # use '*' as a fill " - 'char\n' - " '***********centered***********'\n" - '\n' - 'Replacing "%+f", "%-f", and "% f" and specifying a sign:\n' - '\n' - " >>> '{:+f}; {:+f}'.format(3.14, -3.14) # show it " - 'always\n' - " '+3.140000; -3.140000'\n" - " >>> '{: f}; {: f}'.format(3.14, -3.14) # show a space " - 'for positive numbers\n' - " ' 3.140000; -3.140000'\n" - " >>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the " - "minus -- same as '{:f}; {:f}'\n" - " '3.140000; -3.140000'\n" - '\n' - 'Replacing "%x" and "%o" and converting the value to ' - 'different bases:\n' - '\n' - ' >>> # format also supports binary numbers\n' - ' >>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: ' - '{0:b}".format(42)\n' - " 'int: 42; hex: 2a; oct: 52; bin: 101010'\n" - ' >>> # with 0x, 0o, or 0b as prefix:\n' - ' >>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: ' - '{0:#b}".format(42)\n' - " 'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'\n" - '\n' - 'Using the comma as a thousands separator:\n' - '\n' - " >>> '{:,}'.format(1234567890)\n" - " '1,234,567,890'\n" - '\n' - 'Expressing a percentage:\n' - '\n' - ' >>> points = 19.5\n' - ' >>> total = 22\n' - " >>> 'Correct answers: {:.2%}'.format(points/total)\n" - " 'Correct answers: 88.64%'\n" - '\n' - 'Using type-specific formatting:\n' - '\n' - ' >>> import datetime\n' - ' >>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)\n' - " >>> '{:%Y-%m-%d %H:%M:%S}'.format(d)\n" - " '2010-07-04 12:15:58'\n" - '\n' - 'Nesting arguments and more complex examples:\n' - '\n' - " >>> for align, text in zip('<^>', ['left', 'center', " - "'right']):\n" - " ... '{0:{fill}{align}16}'.format(text, fill=align, " - 'align=align)\n' - ' ...\n' - " 'left<<<<<<<<<<<<'\n" - " '^^^^^center^^^^^'\n" - " '>>>>>>>>>>>right'\n" - ' >>>\n' - ' >>> octets = [192, 168, 0, 1]\n' - " >>> '{:02X}{:02X}{:02X}{:02X}'.format(*octets)\n" - " 'C0A80001'\n" - ' >>> int(_, 16)\n' - ' 3232235521\n' - ' >>>\n' - ' >>> width = 5\n' - ' >>> for num in range(5,12):\n' - " ... for base in 'dXob':\n" - " ... print '{0:{width}{base}}'.format(num, " - 'base=base, width=width),\n' - ' ... print\n' - ' ...\n' - ' 5 5 5 101\n' - ' 6 6 6 110\n' - ' 7 7 7 111\n' - ' 8 8 10 1000\n' - ' 9 9 11 1001\n' - ' 10 A 12 1010\n' - ' 11 B 13 1011\n', - 'function': '\n' - 'Function definitions\n' - '********************\n' - '\n' - 'A function definition defines a user-defined function object ' - '(see\n' - 'section The standard type hierarchy):\n' - '\n' - ' decorated ::= decorators (classdef | funcdef)\n' - ' decorators ::= decorator+\n' - ' decorator ::= "@" dotted_name ["(" [argument_list [","]] ' - '")"] NEWLINE\n' - ' funcdef ::= "def" funcname "(" [parameter_list] ")" ' - '":" suite\n' - ' dotted_name ::= identifier ("." identifier)*\n' - ' parameter_list ::= (defparameter ",")*\n' - ' ( "*" identifier ["," "**" identifier]\n' - ' | "**" identifier\n' - ' | defparameter [","] )\n' - ' defparameter ::= parameter ["=" expression]\n' - ' sublist ::= parameter ("," parameter)* [","]\n' - ' parameter ::= identifier | "(" sublist ")"\n' - ' funcname ::= identifier\n' - '\n' - 'A function definition is an executable statement. Its execution ' - 'binds\n' - 'the function name in the current local namespace to a function ' - 'object\n' - '(a wrapper around the executable code for the function). This\n' - 'function object contains a reference to the current global ' - 'namespace\n' - 'as the global namespace to be used when the function is called.\n' - '\n' - 'The function definition does not execute the function body; this ' - 'gets\n' - 'executed only when the function is called. [3]\n' - '\n' - 'A function definition may be wrapped by one or more *decorator*\n' - 'expressions. Decorator expressions are evaluated when the ' - 'function is\n' - 'defined, in the scope that contains the function definition. ' - 'The\n' - 'result must be a callable, which is invoked with the function ' - 'object\n' - 'as the only argument. The returned value is bound to the ' - 'function name\n' - 'instead of the function object. Multiple decorators are applied ' - 'in\n' - 'nested fashion. For example, the following code:\n' - '\n' - ' @f1(arg)\n' - ' @f2\n' - ' def func(): pass\n' - '\n' - 'is equivalent to:\n' - '\n' - ' def func(): pass\n' - ' func = f1(arg)(f2(func))\n' - '\n' - 'When one or more top-level *parameters* have the form ' - '*parameter* "="\n' - '*expression*, the function is said to have "default parameter ' - 'values."\n' - 'For a parameter with a default value, the corresponding ' - '*argument* may\n' - "be omitted from a call, in which case the parameter's default " - 'value is\n' - 'substituted. If a parameter has a default value, all following\n' - 'parameters must also have a default value --- this is a ' - 'syntactic\n' - 'restriction that is not expressed by the grammar.\n' - '\n' - '**Default parameter values are evaluated when the function ' - 'definition\n' - 'is executed.** This means that the expression is evaluated ' - 'once, when\n' - 'the function is defined, and that the same "pre-computed" value ' - 'is\n' - 'used for each call. This is especially important to understand ' - 'when a\n' - 'default parameter is a mutable object, such as a list or a ' - 'dictionary:\n' - 'if the function modifies the object (e.g. by appending an item ' - 'to a\n' - 'list), the default value is in effect modified. This is ' - 'generally not\n' - 'what was intended. A way around this is to use "None" as the\n' - 'default, and explicitly test for it in the body of the function, ' - 'e.g.:\n' - '\n' - ' def whats_on_the_telly(penguin=None):\n' - ' if penguin is None:\n' - ' penguin = []\n' - ' penguin.append("property of the zoo")\n' - ' return penguin\n' - '\n' - 'Function call semantics are described in more detail in section ' - 'Calls.\n' - 'A function call always assigns values to all parameters ' - 'mentioned in\n' - 'the parameter list, either from position arguments, from ' - 'keyword\n' - 'arguments, or from default values. If the form ""*identifier"" ' - 'is\n' - 'present, it is initialized to a tuple receiving any excess ' - 'positional\n' - 'parameters, defaulting to the empty tuple. If the form\n' - '""**identifier"" is present, it is initialized to a new ' - 'dictionary\n' - 'receiving any excess keyword arguments, defaulting to a new ' - 'empty\n' - 'dictionary.\n' - '\n' - 'It is also possible to create anonymous functions (functions not ' - 'bound\n' - 'to a name), for immediate use in expressions. This uses lambda\n' - 'expressions, described in section Lambdas. Note that the ' - 'lambda\n' - 'expression is merely a shorthand for a simplified function ' - 'definition;\n' - 'a function defined in a ""def"" statement can be passed around ' - 'or\n' - 'assigned to another name just like a function defined by a ' - 'lambda\n' - 'expression. The ""def"" form is actually more powerful since ' - 'it\n' - 'allows the execution of multiple statements.\n' - '\n' - "**Programmer's note:** Functions are first-class objects. A " - '""def""\n' - 'form executed inside a function definition defines a local ' - 'function\n' - 'that can be returned or passed around. Free variables used in ' - 'the\n' - 'nested function can access the local variables of the function\n' - 'containing the def. See section Naming and binding for ' - 'details.\n', - 'global': '\n' - 'The "global" statement\n' - '**********************\n' - '\n' - ' global_stmt ::= "global" identifier ("," identifier)*\n' - '\n' - 'The "global" statement is a declaration which holds for the ' - 'entire\n' - 'current code block. It means that the listed identifiers are to ' - 'be\n' - 'interpreted as globals. It would be impossible to assign to a ' - 'global\n' - 'variable without "global", although free variables may refer to\n' - 'globals without being declared global.\n' - '\n' - 'Names listed in a "global" statement must not be used in the same ' - 'code\n' - 'block textually preceding that "global" statement.\n' - '\n' - 'Names listed in a "global" statement must not be defined as ' - 'formal\n' - 'parameters or in a "for" loop control target, "class" definition,\n' - 'function definition, or "import" statement.\n' - '\n' - '**CPython implementation detail:** The current implementation does ' - 'not\n' - 'enforce the latter two restrictions, but programs should not ' - 'abuse\n' - 'this freedom, as future implementations may enforce them or ' - 'silently\n' - 'change the meaning of the program.\n' - '\n' - '**Programmer\'s note:** the "global" is a directive to the ' - 'parser. It\n' - 'applies only to code parsed at the same time as the "global"\n' - 'statement. In particular, a "global" statement contained in an ' - '"exec"\n' - 'statement does not affect the code block *containing* the "exec"\n' - 'statement, and code contained in an "exec" statement is unaffected ' - 'by\n' - '"global" statements in the code containing the "exec" statement. ' - 'The\n' - 'same applies to the "eval()", "execfile()" and "compile()" ' - 'functions.\n', - 'id-classes': '\n' - 'Reserved classes of identifiers\n' - '*******************************\n' - '\n' - 'Certain classes of identifiers (besides keywords) have ' - 'special\n' - 'meanings. These classes are identified by the patterns of ' - 'leading and\n' - 'trailing underscore characters:\n' - '\n' - '"_*"\n' - ' Not imported by "from module import *". The special ' - 'identifier "_"\n' - ' is used in the interactive interpreter to store the result ' - 'of the\n' - ' last evaluation; it is stored in the "__builtin__" module. ' - 'When\n' - ' not in interactive mode, "_" has no special meaning and is ' - 'not\n' - ' defined. See section The import statement.\n' - '\n' - ' Note: The name "_" is often used in conjunction with\n' - ' internationalization; refer to the documentation for the\n' - ' "gettext" module for more information on this ' - 'convention.\n' - '\n' - '"__*__"\n' - ' System-defined names. These names are defined by the ' - 'interpreter\n' - ' and its implementation (including the standard library). ' - 'Current\n' - ' system names are discussed in the Special method names ' - 'section and\n' - ' elsewhere. More will likely be defined in future versions ' - 'of\n' - ' Python. *Any* use of "__*__" names, in any context, that ' - 'does not\n' - ' follow explicitly documented use, is subject to breakage ' - 'without\n' - ' warning.\n' - '\n' - '"__*"\n' - ' Class-private names. Names in this category, when used ' - 'within the\n' - ' context of a class definition, are re-written to use a ' - 'mangled form\n' - ' to help avoid name clashes between "private" attributes of ' - 'base and\n' - ' derived classes. See section Identifiers (Names).\n', - 'identifiers': '\n' - 'Identifiers and keywords\n' - '************************\n' - '\n' - 'Identifiers (also referred to as *names*) are described by ' - 'the\n' - 'following lexical definitions:\n' - '\n' - ' identifier ::= (letter|"_") (letter | digit | "_")*\n' - ' letter ::= lowercase | uppercase\n' - ' lowercase ::= "a"..."z"\n' - ' uppercase ::= "A"..."Z"\n' - ' digit ::= "0"..."9"\n' - '\n' - 'Identifiers are unlimited in length. Case is significant.\n' - '\n' - '\n' - 'Keywords\n' - '========\n' - '\n' - 'The following identifiers are used as reserved words, or ' - '*keywords* of\n' - 'the language, and cannot be used as ordinary identifiers. ' - 'They must\n' - 'be spelled exactly as written here:\n' - '\n' - ' and del from not while\n' - ' as elif global or with\n' - ' assert else if pass yield\n' - ' break except import print\n' - ' class exec in raise\n' - ' continue finally is return\n' - ' def for lambda try\n' - '\n' - 'Changed in version 2.4: "None" became a constant and is now ' - 'recognized\n' - 'by the compiler as a name for the built-in object "None". ' - 'Although it\n' - 'is not a keyword, you cannot assign a different object to ' - 'it.\n' - '\n' - 'Changed in version 2.5: Using "as" and "with" as identifiers ' - 'triggers\n' - 'a warning. To use them as keywords, enable the ' - '"with_statement"\n' - 'future feature .\n' - '\n' - 'Changed in version 2.6: "as" and "with" are full keywords.\n' - '\n' - '\n' - 'Reserved classes of identifiers\n' - '===============================\n' - '\n' - 'Certain classes of identifiers (besides keywords) have ' - 'special\n' - 'meanings. These classes are identified by the patterns of ' - 'leading and\n' - 'trailing underscore characters:\n' - '\n' - '"_*"\n' - ' Not imported by "from module import *". The special ' - 'identifier "_"\n' - ' is used in the interactive interpreter to store the result ' - 'of the\n' - ' last evaluation; it is stored in the "__builtin__" ' - 'module. When\n' - ' not in interactive mode, "_" has no special meaning and is ' - 'not\n' - ' defined. See section The import statement.\n' - '\n' - ' Note: The name "_" is often used in conjunction with\n' - ' internationalization; refer to the documentation for ' - 'the\n' - ' "gettext" module for more information on this ' - 'convention.\n' - '\n' - '"__*__"\n' - ' System-defined names. These names are defined by the ' - 'interpreter\n' - ' and its implementation (including the standard library). ' - 'Current\n' - ' system names are discussed in the Special method names ' - 'section and\n' - ' elsewhere. More will likely be defined in future versions ' - 'of\n' - ' Python. *Any* use of "__*__" names, in any context, that ' - 'does not\n' - ' follow explicitly documented use, is subject to breakage ' - 'without\n' - ' warning.\n' - '\n' - '"__*"\n' - ' Class-private names. Names in this category, when used ' - 'within the\n' - ' context of a class definition, are re-written to use a ' - 'mangled form\n' - ' to help avoid name clashes between "private" attributes of ' - 'base and\n' - ' derived classes. See section Identifiers (Names).\n', - 'if': '\n' - 'The "if" statement\n' - '******************\n' - '\n' - 'The "if" statement is used for conditional execution:\n' - '\n' - ' if_stmt ::= "if" expression ":" suite\n' - ' ( "elif" expression ":" suite )*\n' - ' ["else" ":" suite]\n' - '\n' - 'It selects exactly one of the suites by evaluating the expressions ' - 'one\n' - 'by one until one is found to be true (see section Boolean operations\n' - 'for the definition of true and false); then that suite is executed\n' - '(and no other part of the "if" statement is executed or evaluated).\n' - 'If all expressions are false, the suite of the "else" clause, if\n' - 'present, is executed.\n', - 'imaginary': '\n' - 'Imaginary literals\n' - '******************\n' - '\n' - 'Imaginary literals are described by the following lexical ' - 'definitions:\n' - '\n' - ' imagnumber ::= (floatnumber | intpart) ("j" | "J")\n' - '\n' - 'An imaginary literal yields a complex number with a real part ' - 'of 0.0.\n' - 'Complex numbers are represented as a pair of floating point ' - 'numbers\n' - 'and have the same restrictions on their range. To create a ' - 'complex\n' - 'number with a nonzero real part, add a floating point number to ' - 'it,\n' - 'e.g., "(3+4j)". Some examples of imaginary literals:\n' - '\n' - ' 3.14j 10.j 10j .001j 1e100j 3.14e-10j\n', - 'import': '\n' - 'The "import" statement\n' - '**********************\n' - '\n' - ' import_stmt ::= "import" module ["as" name] ( "," module ' - '["as" name] )*\n' - ' | "from" relative_module "import" identifier ' - '["as" name]\n' - ' ( "," identifier ["as" name] )*\n' - ' | "from" relative_module "import" "(" ' - 'identifier ["as" name]\n' - ' ( "," identifier ["as" name] )* [","] ")"\n' - ' | "from" module "import" "*"\n' - ' module ::= (identifier ".")* identifier\n' - ' relative_module ::= "."* module | "."+\n' - ' name ::= identifier\n' - '\n' - 'Import statements are executed in two steps: (1) find a module, ' - 'and\n' - 'initialize it if necessary; (2) define a name or names in the ' - 'local\n' - 'namespace (of the scope where the "import" statement occurs). The\n' - 'statement comes in two forms differing on whether it uses the ' - '"from"\n' - 'keyword. The first form (without "from") repeats these steps for ' - 'each\n' - 'identifier in the list. The form with "from" performs step (1) ' - 'once,\n' - 'and then performs step (2) repeatedly.\n' - '\n' - 'To understand how step (1) occurs, one must first understand how\n' - 'Python handles hierarchical naming of modules. To help organize\n' - 'modules and provide a hierarchy in naming, Python has a concept ' - 'of\n' - 'packages. A package can contain other packages and modules while\n' - 'modules cannot contain other modules or packages. From a file ' - 'system\n' - 'perspective, packages are directories and modules are files.\n' - '\n' - 'Once the name of the module is known (unless otherwise specified, ' - 'the\n' - 'term "module" will refer to both packages and modules), searching ' - 'for\n' - 'the module or package can begin. The first place checked is\n' - '"sys.modules", the cache of all modules that have been imported\n' - 'previously. If the module is found there then it is used in step ' - '(2)\n' - 'of import.\n' - '\n' - 'If the module is not found in the cache, then "sys.meta_path" is\n' - 'searched (the specification for "sys.meta_path" can be found in ' - '**PEP\n' - '302**). The object is a list of *finder* objects which are queried ' - 'in\n' - 'order as to whether they know how to load the module by calling ' - 'their\n' - '"find_module()" method with the name of the module. If the module\n' - 'happens to be contained within a package (as denoted by the ' - 'existence\n' - 'of a dot in the name), then a second argument to "find_module()" ' - 'is\n' - 'given as the value of the "__path__" attribute from the parent ' - 'package\n' - '(everything up to the last dot in the name of the module being\n' - 'imported). If a finder can find the module it returns a *loader*\n' - '(discussed later) or returns "None".\n' - '\n' - 'If none of the finders on "sys.meta_path" are able to find the ' - 'module\n' - 'then some implicitly defined finders are queried. Implementations ' - 'of\n' - 'Python vary in what implicit meta path finders are defined. The ' - 'one\n' - 'they all do define, though, is one that handles "sys.path_hooks",\n' - '"sys.path_importer_cache", and "sys.path".\n' - '\n' - 'The implicit finder searches for the requested module in the ' - '"paths"\n' - 'specified in one of two places ("paths" do not have to be file ' - 'system\n' - 'paths). If the module being imported is supposed to be contained\n' - 'within a package then the second argument passed to ' - '"find_module()",\n' - '"__path__" on the parent package, is used as the source of paths. ' - 'If\n' - 'the module is not contained in a package then "sys.path" is used ' - 'as\n' - 'the source of paths.\n' - '\n' - 'Once the source of paths is chosen it is iterated over to find a\n' - 'finder that can handle that path. The dict at\n' - '"sys.path_importer_cache" caches finders for paths and is checked ' - 'for\n' - 'a finder. If the path does not have a finder cached then\n' - '"sys.path_hooks" is searched by calling each object in the list ' - 'with a\n' - 'single argument of the path, returning a finder or raises\n' - '"ImportError". If a finder is returned then it is cached in\n' - '"sys.path_importer_cache" and then used for that path entry. If ' - 'no\n' - 'finder can be found but the path exists then a value of "None" is\n' - 'stored in "sys.path_importer_cache" to signify that an implicit, ' - 'file-\n' - 'based finder that handles modules stored as individual files ' - 'should be\n' - 'used for that path. If the path does not exist then a finder ' - 'which\n' - 'always returns "None" is placed in the cache for the path.\n' - '\n' - 'If no finder can find the module then "ImportError" is raised.\n' - 'Otherwise some finder returned a loader whose "load_module()" ' - 'method\n' - 'is called with the name of the module to load (see **PEP 302** for ' - 'the\n' - 'original definition of loaders). A loader has several ' - 'responsibilities\n' - 'to perform on a module it loads. First, if the module already ' - 'exists\n' - 'in "sys.modules" (a possibility if the loader is called outside of ' - 'the\n' - 'import machinery) then it is to use that module for initialization ' - 'and\n' - 'not a new module. But if the module does not exist in ' - '"sys.modules"\n' - 'then it is to be added to that dict before initialization begins. ' - 'If\n' - 'an error occurs during loading of the module and it was added to\n' - '"sys.modules" it is to be removed from the dict. If an error ' - 'occurs\n' - 'but the module was already in "sys.modules" it is left in the ' - 'dict.\n' - '\n' - 'The loader must set several attributes on the module. "__name__" ' - 'is to\n' - 'be set to the name of the module. "__file__" is to be the "path" ' - 'to\n' - 'the file unless the module is built-in (and thus listed in\n' - '"sys.builtin_module_names") in which case the attribute is not ' - 'set. If\n' - 'what is being imported is a package then "__path__" is to be set ' - 'to a\n' - 'list of paths to be searched when looking for modules and ' - 'packages\n' - 'contained within the package being imported. "__package__" is ' - 'optional\n' - 'but should be set to the name of package that contains the module ' - 'or\n' - 'package (the empty string is used for module not contained in a\n' - 'package). "__loader__" is also optional but should be set to the\n' - 'loader object that is loading the module.\n' - '\n' - 'If an error occurs during loading then the loader raises ' - '"ImportError"\n' - 'if some other exception is not already being propagated. Otherwise ' - 'the\n' - 'loader returns the module that was loaded and initialized.\n' - '\n' - 'When step (1) finishes without raising an exception, step (2) can\n' - 'begin.\n' - '\n' - 'The first form of "import" statement binds the module name in the\n' - 'local namespace to the module object, and then goes on to import ' - 'the\n' - 'next identifier, if any. If the module name is followed by "as", ' - 'the\n' - 'name following "as" is used as the local name for the module.\n' - '\n' - 'The "from" form does not bind the module name: it goes through ' - 'the\n' - 'list of identifiers, looks each one of them up in the module found ' - 'in\n' - 'step (1), and binds the name in the local namespace to the object ' - 'thus\n' - 'found. As with the first form of "import", an alternate local ' - 'name\n' - 'can be supplied by specifying ""as" localname". If a name is not\n' - 'found, "ImportError" is raised. If the list of identifiers is\n' - 'replaced by a star ("\'*\'"), all public names defined in the ' - 'module are\n' - 'bound in the local namespace of the "import" statement..\n' - '\n' - 'The *public names* defined by a module are determined by checking ' - 'the\n' - 'module\'s namespace for a variable named "__all__"; if defined, it ' - 'must\n' - 'be a sequence of strings which are names defined or imported by ' - 'that\n' - 'module. The names given in "__all__" are all considered public ' - 'and\n' - 'are required to exist. If "__all__" is not defined, the set of ' - 'public\n' - "names includes all names found in the module's namespace which do " - 'not\n' - 'begin with an underscore character ("\'_\'"). "__all__" should ' - 'contain\n' - 'the entire public API. It is intended to avoid accidentally ' - 'exporting\n' - 'items that are not part of the API (such as library modules which ' - 'were\n' - 'imported and used within the module).\n' - '\n' - 'The "from" form with "*" may only occur in a module scope. If ' - 'the\n' - 'wild card form of import --- "import *" --- is used in a function ' - 'and\n' - 'the function contains or is a nested block with free variables, ' - 'the\n' - 'compiler will raise a "SyntaxError".\n' - '\n' - 'When specifying what module to import you do not have to specify ' - 'the\n' - 'absolute name of the module. When a module or package is ' - 'contained\n' - 'within another package it is possible to make a relative import ' - 'within\n' - 'the same top package without having to mention the package name. ' - 'By\n' - 'using leading dots in the specified module or package after "from" ' - 'you\n' - 'can specify how high to traverse up the current package hierarchy\n' - 'without specifying exact names. One leading dot means the current\n' - 'package where the module making the import exists. Two dots means ' - 'up\n' - 'one package level. Three dots is up two levels, etc. So if you ' - 'execute\n' - '"from . import mod" from a module in the "pkg" package then you ' - 'will\n' - 'end up importing "pkg.mod". If you execute "from ..subpkg2 import ' - 'mod"\n' - 'from within "pkg.subpkg1" you will import "pkg.subpkg2.mod". The\n' - 'specification for relative imports is contained within **PEP ' - '328**.\n' - '\n' - '"importlib.import_module()" is provided to support applications ' - 'that\n' - 'determine which modules need to be loaded dynamically.\n' - '\n' - '\n' - 'Future statements\n' - '=================\n' - '\n' - 'A *future statement* is a directive to the compiler that a ' - 'particular\n' - 'module should be compiled using syntax or semantics that will be\n' - 'available in a specified future release of Python. The future\n' - 'statement is intended to ease migration to future versions of ' - 'Python\n' - 'that introduce incompatible changes to the language. It allows ' - 'use of\n' - 'the new features on a per-module basis before the release in which ' - 'the\n' - 'feature becomes standard.\n' - '\n' - ' future_statement ::= "from" "__future__" "import" feature ["as" ' - 'name]\n' - ' ("," feature ["as" name])*\n' - ' | "from" "__future__" "import" "(" feature ' - '["as" name]\n' - ' ("," feature ["as" name])* [","] ")"\n' - ' feature ::= identifier\n' - ' name ::= identifier\n' - '\n' - 'A future statement must appear near the top of the module. The ' - 'only\n' - 'lines that can appear before a future statement are:\n' - '\n' - '* the module docstring (if any),\n' - '\n' - '* comments,\n' - '\n' - '* blank lines, and\n' - '\n' - '* other future statements.\n' - '\n' - 'The features recognized by Python 2.6 are "unicode_literals",\n' - '"print_function", "absolute_import", "division", "generators",\n' - '"nested_scopes" and "with_statement". "generators", ' - '"with_statement",\n' - '"nested_scopes" are redundant in Python version 2.6 and above ' - 'because\n' - 'they are always enabled.\n' - '\n' - 'A future statement is recognized and treated specially at compile\n' - 'time: Changes to the semantics of core constructs are often\n' - 'implemented by generating different code. It may even be the ' - 'case\n' - 'that a new feature introduces new incompatible syntax (such as a ' - 'new\n' - 'reserved word), in which case the compiler may need to parse the\n' - 'module differently. Such decisions cannot be pushed off until\n' - 'runtime.\n' - '\n' - 'For any given release, the compiler knows which feature names ' - 'have\n' - 'been defined, and raises a compile-time error if a future ' - 'statement\n' - 'contains a feature not known to it.\n' - '\n' - 'The direct runtime semantics are the same as for any import ' - 'statement:\n' - 'there is a standard module "__future__", described later, and it ' - 'will\n' - 'be imported in the usual way at the time the future statement is\n' - 'executed.\n' - '\n' - 'The interesting runtime semantics depend on the specific feature\n' - 'enabled by the future statement.\n' - '\n' - 'Note that there is nothing special about the statement:\n' - '\n' - ' import __future__ [as name]\n' - '\n' - "That is not a future statement; it's an ordinary import statement " - 'with\n' - 'no special semantics or syntax restrictions.\n' - '\n' - 'Code compiled by an "exec" statement or calls to the built-in\n' - 'functions "compile()" and "execfile()" that occur in a module "M"\n' - 'containing a future statement will, by default, use the new ' - 'syntax or\n' - 'semantics associated with the future statement. This can, ' - 'starting\n' - 'with Python 2.2 be controlled by optional arguments to "compile()" ' - '---\n' - 'see the documentation of that function for details.\n' - '\n' - 'A future statement typed at an interactive interpreter prompt ' - 'will\n' - 'take effect for the rest of the interpreter session. If an\n' - 'interpreter is started with the "-i" option, is passed a script ' - 'name\n' - 'to execute, and the script includes a future statement, it will be ' - 'in\n' - 'effect in the interactive session started after the script is\n' - 'executed.\n' - '\n' - 'See also:\n' - '\n' - ' **PEP 236** - Back to the __future__\n' - ' The original proposal for the __future__ mechanism.\n', - 'in': '\n' - 'Comparisons\n' - '***********\n' - '\n' - 'Unlike C, all comparison operations in Python have the same priority,\n' - 'which is lower than that of any arithmetic, shifting or bitwise\n' - 'operation. Also unlike C, expressions like "a < b < c" have the\n' - 'interpretation that is conventional in mathematics:\n' - '\n' - ' comparison ::= or_expr ( comp_operator or_expr )*\n' - ' comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="\n' - ' | "is" ["not"] | ["not"] "in"\n' - '\n' - 'Comparisons yield boolean values: "True" or "False".\n' - '\n' - 'Comparisons can be chained arbitrarily, e.g., "x < y <= z" is\n' - 'equivalent to "x < y and y <= z", except that "y" is evaluated only\n' - 'once (but in both cases "z" is not evaluated at all when "x < y" is\n' - 'found to be false).\n' - '\n' - 'Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*,\n' - '*op2*, ..., *opN* are comparison operators, then "a op1 b op2 c ... y\n' - 'opN z" is equivalent to "a op1 b and b op2 c and ... y opN z", except\n' - 'that each expression is evaluated at most once.\n' - '\n' - 'Note that "a op1 b op2 c" doesn\'t imply any kind of comparison ' - 'between\n' - '*a* and *c*, so that, e.g., "x < y > z" is perfectly legal (though\n' - 'perhaps not pretty).\n' - '\n' - 'The forms "<>" and "!=" are equivalent; for consistency with C, "!="\n' - 'is preferred; where "!=" is mentioned below "<>" is also accepted.\n' - 'The "<>" spelling is considered obsolescent.\n' - '\n' - 'The operators "<", ">", "==", ">=", "<=", and "!=" compare the values\n' - 'of two objects. The objects need not have the same type. If both are\n' - 'numbers, they are converted to a common type. Otherwise, objects of\n' - 'different types *always* compare unequal, and are ordered ' - 'consistently\n' - 'but arbitrarily. You can control comparison behavior of objects of\n' - 'non-built-in types by defining a "__cmp__" method or rich comparison\n' - 'methods like "__gt__", described in section Special method names.\n' - '\n' - '(This unusual definition of comparison was used to simplify the\n' - 'definition of operations like sorting and the "in" and "not in"\n' - 'operators. In the future, the comparison rules for objects of\n' - 'different types are likely to change.)\n' - '\n' - 'Comparison of objects of the same type depends on the type:\n' - '\n' - '* Numbers are compared arithmetically.\n' - '\n' - '* Strings are compared lexicographically using the numeric\n' - ' equivalents (the result of the built-in function "ord()") of their\n' - ' characters. Unicode and 8-bit strings are fully interoperable in\n' - ' this behavior. [4]\n' - '\n' - '* Tuples and lists are compared lexicographically using comparison\n' - ' of corresponding elements. This means that to compare equal, each\n' - ' element must compare equal and the two sequences must be of the ' - 'same\n' - ' type and have the same length.\n' - '\n' - ' If not equal, the sequences are ordered the same as their first\n' - ' differing elements. For example, "cmp([1,2,x], [1,2,y])" returns\n' - ' the same as "cmp(x,y)". If the corresponding element does not\n' - ' exist, the shorter sequence is ordered first (for example, "[1,2] <\n' - ' [1,2,3]").\n' - '\n' - '* Mappings (dictionaries) compare equal if and only if their sorted\n' - ' (key, value) lists compare equal. [5] Outcomes other than equality\n' - ' are resolved consistently, but are not otherwise defined. [6]\n' - '\n' - '* Most other objects of built-in types compare unequal unless they\n' - ' are the same object; the choice whether one object is considered\n' - ' smaller or larger than another one is made arbitrarily but\n' - ' consistently within one execution of a program.\n' - '\n' - 'The operators "in" and "not in" test for collection membership. "x ' - 'in\n' - 's" evaluates to true if *x* is a member of the collection *s*, and\n' - 'false otherwise. "x not in s" returns the negation of "x in s". The\n' - 'collection membership test has traditionally been bound to sequences;\n' - 'an object is a member of a collection if the collection is a sequence\n' - 'and contains an element equal to that object. However, it make sense\n' - 'for many other object types to support membership tests without being\n' - 'a sequence. In particular, dictionaries (for keys) and sets support\n' - 'membership testing.\n' - '\n' - 'For the list and tuple types, "x in y" is true if and only if there\n' - 'exists an index *i* such that either "x is y[i]" or "x == y[i]" is\n' - 'true.\n' - '\n' - 'For the Unicode and string types, "x in y" is true if and only if *x*\n' - 'is a substring of *y*. An equivalent test is "y.find(x) != -1".\n' - 'Note, *x* and *y* need not be the same type; consequently, "u\'ab\' ' - 'in\n' - '\'abc\'" will return "True". Empty strings are always considered to be ' - 'a\n' - 'substring of any other string, so """ in "abc"" will return "True".\n' - '\n' - 'Changed in version 2.3: Previously, *x* was required to be a string ' - 'of\n' - 'length "1".\n' - '\n' - 'For user-defined classes which define the "__contains__()" method, "x\n' - 'in y" is true if and only if "y.__contains__(x)" is true.\n' - '\n' - 'For user-defined classes which do not define "__contains__()" but do\n' - 'define "__iter__()", "x in y" is true if some value "z" with "x == z"\n' - 'is produced while iterating over "y". If an exception is raised\n' - 'during the iteration, it is as if "in" raised that exception.\n' - '\n' - 'Lastly, the old-style iteration protocol is tried: if a class defines\n' - '"__getitem__()", "x in y" is true if and only if there is a non-\n' - 'negative integer index *i* such that "x == y[i]", and all lower\n' - 'integer indices do not raise "IndexError" exception. (If any other\n' - 'exception is raised, it is as if "in" raised that exception).\n' - '\n' - 'The operator "not in" is defined to have the inverse true value of\n' - '"in".\n' - '\n' - 'The operators "is" and "is not" test for object identity: "x is y" is\n' - 'true if and only if *x* and *y* are the same object. "x is not y"\n' - 'yields the inverse truth value. [7]\n', - 'integers': '\n' - 'Integer and long integer literals\n' - '*********************************\n' - '\n' - 'Integer and long integer literals are described by the ' - 'following\n' - 'lexical definitions:\n' - '\n' - ' longinteger ::= integer ("l" | "L")\n' - ' integer ::= decimalinteger | octinteger | hexinteger | ' - 'bininteger\n' - ' decimalinteger ::= nonzerodigit digit* | "0"\n' - ' octinteger ::= "0" ("o" | "O") octdigit+ | "0" octdigit+\n' - ' hexinteger ::= "0" ("x" | "X") hexdigit+\n' - ' bininteger ::= "0" ("b" | "B") bindigit+\n' - ' nonzerodigit ::= "1"..."9"\n' - ' octdigit ::= "0"..."7"\n' - ' bindigit ::= "0" | "1"\n' - ' hexdigit ::= digit | "a"..."f" | "A"..."F"\n' - '\n' - 'Although both lower case "\'l\'" and upper case "\'L\'" are ' - 'allowed as\n' - 'suffix for long integers, it is strongly recommended to always ' - 'use\n' - '"\'L\'", since the letter "\'l\'" looks too much like the digit ' - '"\'1\'".\n' - '\n' - 'Plain integer literals that are above the largest representable ' - 'plain\n' - 'integer (e.g., 2147483647 when using 32-bit arithmetic) are ' - 'accepted\n' - 'as if they were long integers instead. [1] There is no limit ' - 'for long\n' - 'integer literals apart from what can be stored in available ' - 'memory.\n' - '\n' - 'Some examples of plain integer literals (first row) and long ' - 'integer\n' - 'literals (second and third rows):\n' - '\n' - ' 7 2147483647 0177\n' - ' 3L 79228162514264337593543950336L 0377L 0x100000000L\n' - ' 79228162514264337593543950336 0xdeadbeef\n', - 'lambda': '\n' - 'Lambdas\n' - '*******\n' - '\n' - ' lambda_expr ::= "lambda" [parameter_list]: expression\n' - ' old_lambda_expr ::= "lambda" [parameter_list]: old_expression\n' - '\n' - 'Lambda expressions (sometimes called lambda forms) have the same\n' - 'syntactic position as expressions. They are a shorthand to ' - 'create\n' - 'anonymous functions; the expression "lambda arguments: ' - 'expression"\n' - 'yields a function object. The unnamed object behaves like a ' - 'function\n' - 'object defined with\n' - '\n' - ' def name(arguments):\n' - ' return expression\n' - '\n' - 'See section Function definitions for the syntax of parameter ' - 'lists.\n' - 'Note that functions created with lambda expressions cannot ' - 'contain\n' - 'statements.\n', - 'lists': '\n' - 'List displays\n' - '*************\n' - '\n' - 'A list display is a possibly empty series of expressions enclosed ' - 'in\n' - 'square brackets:\n' - '\n' - ' list_display ::= "[" [expression_list | ' - 'list_comprehension] "]"\n' - ' list_comprehension ::= expression list_for\n' - ' list_for ::= "for" target_list "in" ' - 'old_expression_list [list_iter]\n' - ' old_expression_list ::= old_expression [("," old_expression)+ ' - '[","]]\n' - ' old_expression ::= or_test | old_lambda_expr\n' - ' list_iter ::= list_for | list_if\n' - ' list_if ::= "if" old_expression [list_iter]\n' - '\n' - 'A list display yields a new list object. Its contents are ' - 'specified\n' - 'by providing either a list of expressions or a list comprehension.\n' - 'When a comma-separated list of expressions is supplied, its ' - 'elements\n' - 'are evaluated from left to right and placed into the list object ' - 'in\n' - 'that order. When a list comprehension is supplied, it consists of ' - 'a\n' - 'single expression followed by at least one "for" clause and zero ' - 'or\n' - 'more "for" or "if" clauses. In this case, the elements of the new\n' - 'list are those that would be produced by considering each of the ' - '"for"\n' - 'or "if" clauses a block, nesting from left to right, and ' - 'evaluating\n' - 'the expression to produce a list element each time the innermost ' - 'block\n' - 'is reached [1].\n', - 'naming': '\n' - 'Naming and binding\n' - '******************\n' - '\n' - '*Names* refer to objects. Names are introduced by name binding\n' - 'operations. Each occurrence of a name in the program text refers ' - 'to\n' - 'the *binding* of that name established in the innermost function ' - 'block\n' - 'containing the use.\n' - '\n' - 'A *block* is a piece of Python program text that is executed as a\n' - 'unit. The following are blocks: a module, a function body, and a ' - 'class\n' - 'definition. Each command typed interactively is a block. A ' - 'script\n' - 'file (a file given as standard input to the interpreter or ' - 'specified\n' - 'on the interpreter command line the first argument) is a code ' - 'block.\n' - 'A script command (a command specified on the interpreter command ' - 'line\n' - "with the '**-c**' option) is a code block. The file read by the\n" - 'built-in function "execfile()" is a code block. The string ' - 'argument\n' - 'passed to the built-in function "eval()" and to the "exec" ' - 'statement\n' - 'is a code block. The expression read and evaluated by the ' - 'built-in\n' - 'function "input()" is a code block.\n' - '\n' - 'A code block is executed in an *execution frame*. A frame ' - 'contains\n' - 'some administrative information (used for debugging) and ' - 'determines\n' - "where and how execution continues after the code block's execution " - 'has\n' - 'completed.\n' - '\n' - 'A *scope* defines the visibility of a name within a block. If a ' - 'local\n' - 'variable is defined in a block, its scope includes that block. If ' - 'the\n' - 'definition occurs in a function block, the scope extends to any ' - 'blocks\n' - 'contained within the defining one, unless a contained block ' - 'introduces\n' - 'a different binding for the name. The scope of names defined in ' - 'a\n' - 'class block is limited to the class block; it does not extend to ' - 'the\n' - 'code blocks of methods -- this includes generator expressions ' - 'since\n' - 'they are implemented using a function scope. This means that the\n' - 'following will fail:\n' - '\n' - ' class A:\n' - ' a = 42\n' - ' b = list(a + i for i in range(10))\n' - '\n' - 'When a name is used in a code block, it is resolved using the ' - 'nearest\n' - 'enclosing scope. The set of all such scopes visible to a code ' - 'block\n' - "is called the block's *environment*.\n" - '\n' - 'If a name is bound in a block, it is a local variable of that ' - 'block.\n' - 'If a name is bound at the module level, it is a global variable. ' - '(The\n' - 'variables of the module code block are local and global.) If a\n' - 'variable is used in a code block but not defined there, it is a ' - '*free\n' - 'variable*.\n' - '\n' - 'When a name is not found at all, a "NameError" exception is ' - 'raised.\n' - 'If the name refers to a local variable that has not been bound, a\n' - '"UnboundLocalError" exception is raised. "UnboundLocalError" is ' - 'a\n' - 'subclass of "NameError".\n' - '\n' - 'The following constructs bind names: formal parameters to ' - 'functions,\n' - '"import" statements, class and function definitions (these bind ' - 'the\n' - 'class or function name in the defining block), and targets that ' - 'are\n' - 'identifiers if occurring in an assignment, "for" loop header, in ' - 'the\n' - 'second position of an "except" clause header or after "as" in a ' - '"with"\n' - 'statement. The "import" statement of the form "from ... import ' - '*"\n' - 'binds all names defined in the imported module, except those ' - 'beginning\n' - 'with an underscore. This form may only be used at the module ' - 'level.\n' - '\n' - 'A target occurring in a "del" statement is also considered bound ' - 'for\n' - 'this purpose (though the actual semantics are to unbind the ' - 'name). It\n' - 'is illegal to unbind a name that is referenced by an enclosing ' - 'scope;\n' - 'the compiler will report a "SyntaxError".\n' - '\n' - 'Each assignment or import statement occurs within a block defined ' - 'by a\n' - 'class or function definition or at the module level (the ' - 'top-level\n' - 'code block).\n' - '\n' - 'If a name binding operation occurs anywhere within a code block, ' - 'all\n' - 'uses of the name within the block are treated as references to ' - 'the\n' - 'current block. This can lead to errors when a name is used within ' - 'a\n' - 'block before it is bound. This rule is subtle. Python lacks\n' - 'declarations and allows name binding operations to occur anywhere\n' - 'within a code block. The local variables of a code block can be\n' - 'determined by scanning the entire text of the block for name ' - 'binding\n' - 'operations.\n' - '\n' - 'If the global statement occurs within a block, all uses of the ' - 'name\n' - 'specified in the statement refer to the binding of that name in ' - 'the\n' - 'top-level namespace. Names are resolved in the top-level namespace ' - 'by\n' - 'searching the global namespace, i.e. the namespace of the module\n' - 'containing the code block, and the builtins namespace, the ' - 'namespace\n' - 'of the module "__builtin__". The global namespace is searched ' - 'first.\n' - 'If the name is not found there, the builtins namespace is ' - 'searched.\n' - 'The global statement must precede all uses of the name.\n' - '\n' - 'The builtins namespace associated with the execution of a code ' - 'block\n' - 'is actually found by looking up the name "__builtins__" in its ' - 'global\n' - 'namespace; this should be a dictionary or a module (in the latter ' - 'case\n' - "the module's dictionary is used). By default, when in the " - '"__main__"\n' - 'module, "__builtins__" is the built-in module "__builtin__" (note: ' - 'no\n' - '\'s\'); when in any other module, "__builtins__" is an alias for ' - 'the\n' - 'dictionary of the "__builtin__" module itself. "__builtins__" can ' - 'be\n' - 'set to a user-created dictionary to create a weak form of ' - 'restricted\n' - 'execution.\n' - '\n' - '**CPython implementation detail:** Users should not touch\n' - '"__builtins__"; it is strictly an implementation detail. Users\n' - 'wanting to override values in the builtins namespace should ' - '"import"\n' - 'the "__builtin__" (no \'s\') module and modify its attributes\n' - 'appropriately.\n' - '\n' - 'The namespace for a module is automatically created the first time ' - 'a\n' - 'module is imported. The main module for a script is always ' - 'called\n' - '"__main__".\n' - '\n' - 'The "global" statement has the same scope as a name binding ' - 'operation\n' - 'in the same block. If the nearest enclosing scope for a free ' - 'variable\n' - 'contains a global statement, the free variable is treated as a ' - 'global.\n' - '\n' - 'A class definition is an executable statement that may use and ' - 'define\n' - 'names. These references follow the normal rules for name ' - 'resolution.\n' - 'The namespace of the class definition becomes the attribute ' - 'dictionary\n' - 'of the class. Names defined at the class scope are not visible ' - 'in\n' - 'methods.\n' - '\n' - '\n' - 'Interaction with dynamic features\n' - '=================================\n' - '\n' - 'There are several cases where Python statements are illegal when ' - 'used\n' - 'in conjunction with nested scopes that contain free variables.\n' - '\n' - 'If a variable is referenced in an enclosing scope, it is illegal ' - 'to\n' - 'delete the name. An error will be reported at compile time.\n' - '\n' - 'If the wild card form of import --- "import *" --- is used in a\n' - 'function and the function contains or is a nested block with free\n' - 'variables, the compiler will raise a "SyntaxError".\n' - '\n' - 'If "exec" is used in a function and the function contains or is a\n' - 'nested block with free variables, the compiler will raise a\n' - '"SyntaxError" unless the exec explicitly specifies the local ' - 'namespace\n' - 'for the "exec". (In other words, "exec obj" would be illegal, ' - 'but\n' - '"exec obj in ns" would be legal.)\n' - '\n' - 'The "eval()", "execfile()", and "input()" functions and the ' - '"exec"\n' - 'statement do not have access to the full environment for ' - 'resolving\n' - 'names. Names may be resolved in the local and global namespaces ' - 'of\n' - 'the caller. Free variables are not resolved in the nearest ' - 'enclosing\n' - 'namespace, but in the global namespace. [1] The "exec" statement ' - 'and\n' - 'the "eval()" and "execfile()" functions have optional arguments ' - 'to\n' - 'override the global and local namespace. If only one namespace ' - 'is\n' - 'specified, it is used for both.\n', - 'numbers': '\n' - 'Numeric literals\n' - '****************\n' - '\n' - 'There are four types of numeric literals: plain integers, long\n' - 'integers, floating point numbers, and imaginary numbers. There ' - 'are no\n' - 'complex literals (complex numbers can be formed by adding a real\n' - 'number and an imaginary number).\n' - '\n' - 'Note that numeric literals do not include a sign; a phrase like ' - '"-1"\n' - 'is actually an expression composed of the unary operator \'"-"\' ' - 'and the\n' - 'literal "1".\n', - 'numeric-types': '\n' - 'Emulating numeric types\n' - '***********************\n' - '\n' - 'The following methods can be defined to emulate numeric ' - 'objects.\n' - 'Methods corresponding to operations that are not supported ' - 'by the\n' - 'particular kind of number implemented (e.g., bitwise ' - 'operations for\n' - 'non-integral numbers) should be left undefined.\n' - '\n' - 'object.__add__(self, other)\n' - 'object.__sub__(self, other)\n' - 'object.__mul__(self, other)\n' - 'object.__floordiv__(self, other)\n' - 'object.__mod__(self, other)\n' - 'object.__divmod__(self, other)\n' - 'object.__pow__(self, other[, modulo])\n' - 'object.__lshift__(self, other)\n' - 'object.__rshift__(self, other)\n' - 'object.__and__(self, other)\n' - 'object.__xor__(self, other)\n' - 'object.__or__(self, other)\n' - '\n' - ' These methods are called to implement the binary ' - 'arithmetic\n' - ' operations ("+", "-", "*", "//", "%", "divmod()", ' - '"pow()", "**",\n' - ' "<<", ">>", "&", "^", "|"). For instance, to evaluate ' - 'the\n' - ' expression "x + y", where *x* is an instance of a class ' - 'that has an\n' - ' "__add__()" method, "x.__add__(y)" is called. The ' - '"__divmod__()"\n' - ' method should be the equivalent to using ' - '"__floordiv__()" and\n' - ' "__mod__()"; it should not be related to "__truediv__()" ' - '(described\n' - ' below). Note that "__pow__()" should be defined to ' - 'accept an\n' - ' optional third argument if the ternary version of the ' - 'built-in\n' - ' "pow()" function is to be supported.\n' - '\n' - ' If one of those methods does not support the operation ' - 'with the\n' - ' supplied arguments, it should return "NotImplemented".\n' - '\n' - 'object.__div__(self, other)\n' - 'object.__truediv__(self, other)\n' - '\n' - ' The division operator ("/") is implemented by these ' - 'methods. The\n' - ' "__truediv__()" method is used when ' - '"__future__.division" is in\n' - ' effect, otherwise "__div__()" is used. If only one of ' - 'these two\n' - ' methods is defined, the object will not support division ' - 'in the\n' - ' alternate context; "TypeError" will be raised instead.\n' - '\n' - 'object.__radd__(self, other)\n' - 'object.__rsub__(self, other)\n' - 'object.__rmul__(self, other)\n' - 'object.__rdiv__(self, other)\n' - 'object.__rtruediv__(self, other)\n' - 'object.__rfloordiv__(self, other)\n' - 'object.__rmod__(self, other)\n' - 'object.__rdivmod__(self, other)\n' - 'object.__rpow__(self, other)\n' - 'object.__rlshift__(self, other)\n' - 'object.__rrshift__(self, other)\n' - 'object.__rand__(self, other)\n' - 'object.__rxor__(self, other)\n' - 'object.__ror__(self, other)\n' - '\n' - ' These methods are called to implement the binary ' - 'arithmetic\n' - ' operations ("+", "-", "*", "/", "%", "divmod()", ' - '"pow()", "**",\n' - ' "<<", ">>", "&", "^", "|") with reflected (swapped) ' - 'operands.\n' - ' These functions are only called if the left operand does ' - 'not\n' - ' support the corresponding operation and the operands are ' - 'of\n' - ' different types. [2] For instance, to evaluate the ' - 'expression "x -\n' - ' y", where *y* is an instance of a class that has an ' - '"__rsub__()"\n' - ' method, "y.__rsub__(x)" is called if "x.__sub__(y)" ' - 'returns\n' - ' *NotImplemented*.\n' - '\n' - ' Note that ternary "pow()" will not try calling ' - '"__rpow__()" (the\n' - ' coercion rules would become too complicated).\n' - '\n' - " Note: If the right operand's type is a subclass of the " - 'left\n' - " operand's type and that subclass provides the " - 'reflected method\n' - ' for the operation, this method will be called before ' - 'the left\n' - " operand's non-reflected method. This behavior allows " - 'subclasses\n' - " to override their ancestors' operations.\n" - '\n' - 'object.__iadd__(self, other)\n' - 'object.__isub__(self, other)\n' - 'object.__imul__(self, other)\n' - 'object.__idiv__(self, other)\n' - 'object.__itruediv__(self, other)\n' - 'object.__ifloordiv__(self, other)\n' - 'object.__imod__(self, other)\n' - 'object.__ipow__(self, other[, modulo])\n' - 'object.__ilshift__(self, other)\n' - 'object.__irshift__(self, other)\n' - 'object.__iand__(self, other)\n' - 'object.__ixor__(self, other)\n' - 'object.__ior__(self, other)\n' - '\n' - ' These methods are called to implement the augmented ' - 'arithmetic\n' - ' assignments ("+=", "-=", "*=", "/=", "//=", "%=", "**=", ' - '"<<=",\n' - ' ">>=", "&=", "^=", "|="). These methods should attempt ' - 'to do the\n' - ' operation in-place (modifying *self*) and return the ' - 'result (which\n' - ' could be, but does not have to be, *self*). If a ' - 'specific method\n' - ' is not defined, the augmented assignment falls back to ' - 'the normal\n' - ' methods. For instance, to execute the statement "x += ' - 'y", where\n' - ' *x* is an instance of a class that has an "__iadd__()" ' - 'method,\n' - ' "x.__iadd__(y)" is called. If *x* is an instance of a ' - 'class that\n' - ' does not define a "__iadd__()" method, "x.__add__(y)" ' - 'and\n' - ' "y.__radd__(x)" are considered, as with the evaluation ' - 'of "x + y".\n' - '\n' - 'object.__neg__(self)\n' - 'object.__pos__(self)\n' - 'object.__abs__(self)\n' - 'object.__invert__(self)\n' - '\n' - ' Called to implement the unary arithmetic operations ' - '("-", "+",\n' - ' "abs()" and "~").\n' - '\n' - 'object.__complex__(self)\n' - 'object.__int__(self)\n' - 'object.__long__(self)\n' - 'object.__float__(self)\n' - '\n' - ' Called to implement the built-in functions "complex()", ' - '"int()",\n' - ' "long()", and "float()". Should return a value of the ' - 'appropriate\n' - ' type.\n' - '\n' - 'object.__oct__(self)\n' - 'object.__hex__(self)\n' - '\n' - ' Called to implement the built-in functions "oct()" and ' - '"hex()".\n' - ' Should return a string value.\n' - '\n' - 'object.__index__(self)\n' - '\n' - ' Called to implement "operator.index()". Also called ' - 'whenever\n' - ' Python needs an integer object (such as in slicing). ' - 'Must return\n' - ' an integer (int or long).\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'object.__coerce__(self, other)\n' - '\n' - ' Called to implement "mixed-mode" numeric arithmetic. ' - 'Should either\n' - ' return a 2-tuple containing *self* and *other* converted ' - 'to a\n' - ' common numeric type, or "None" if conversion is ' - 'impossible. When\n' - ' the common type would be the type of "other", it is ' - 'sufficient to\n' - ' return "None", since the interpreter will also ask the ' - 'other object\n' - ' to attempt a coercion (but sometimes, if the ' - 'implementation of the\n' - ' other type cannot be changed, it is useful to do the ' - 'conversion to\n' - ' the other type here). A return value of ' - '"NotImplemented" is\n' - ' equivalent to returning "None".\n', - 'objects': '\n' - 'Objects, values and types\n' - '*************************\n' - '\n' - "*Objects* are Python's abstraction for data. All data in a " - 'Python\n' - 'program is represented by objects or by relations between ' - 'objects. (In\n' - 'a sense, and in conformance to Von Neumann\'s model of a "stored\n' - 'program computer," code is also represented by objects.)\n' - '\n' - "Every object has an identity, a type and a value. An object's\n" - '*identity* never changes once it has been created; you may think ' - 'of it\n' - 'as the object\'s address in memory. The \'"is"\' operator ' - 'compares the\n' - 'identity of two objects; the "id()" function returns an integer\n' - 'representing its identity (currently implemented as its address). ' - 'An\n' - "object's *type* is also unchangeable. [1] An object's type " - 'determines\n' - 'the operations that the object supports (e.g., "does it have a\n' - 'length?") and also defines the possible values for objects of ' - 'that\n' - 'type. The "type()" function returns an object\'s type (which is ' - 'an\n' - 'object itself). The *value* of some objects can change. ' - 'Objects\n' - 'whose value can change are said to be *mutable*; objects whose ' - 'value\n' - 'is unchangeable once they are created are called *immutable*. ' - '(The\n' - 'value of an immutable container object that contains a reference ' - 'to a\n' - "mutable object can change when the latter's value is changed; " - 'however\n' - 'the container is still considered immutable, because the ' - 'collection of\n' - 'objects it contains cannot be changed. So, immutability is not\n' - 'strictly the same as having an unchangeable value, it is more ' - 'subtle.)\n' - "An object's mutability is determined by its type; for instance,\n" - 'numbers, strings and tuples are immutable, while dictionaries ' - 'and\n' - 'lists are mutable.\n' - '\n' - 'Objects are never explicitly destroyed; however, when they ' - 'become\n' - 'unreachable they may be garbage-collected. An implementation is\n' - 'allowed to postpone garbage collection or omit it altogether --- ' - 'it is\n' - 'a matter of implementation quality how garbage collection is\n' - 'implemented, as long as no objects are collected that are still\n' - 'reachable.\n' - '\n' - '**CPython implementation detail:** CPython currently uses a ' - 'reference-\n' - 'counting scheme with (optional) delayed detection of cyclically ' - 'linked\n' - 'garbage, which collects most objects as soon as they become\n' - 'unreachable, but is not guaranteed to collect garbage containing\n' - 'circular references. See the documentation of the "gc" module ' - 'for\n' - 'information on controlling the collection of cyclic garbage. ' - 'Other\n' - 'implementations act differently and CPython may change. Do not ' - 'depend\n' - 'on immediate finalization of objects when they become unreachable ' - '(ex:\n' - 'always close files).\n' - '\n' - "Note that the use of the implementation's tracing or debugging\n" - 'facilities may keep objects alive that would normally be ' - 'collectable.\n' - 'Also note that catching an exception with a \'"try"..."except"\'\n' - 'statement may keep objects alive.\n' - '\n' - 'Some objects contain references to "external" resources such as ' - 'open\n' - 'files or windows. It is understood that these resources are ' - 'freed\n' - 'when the object is garbage-collected, but since garbage ' - 'collection is\n' - 'not guaranteed to happen, such objects also provide an explicit ' - 'way to\n' - 'release the external resource, usually a "close()" method. ' - 'Programs\n' - 'are strongly recommended to explicitly close such objects. The\n' - '\'"try"..."finally"\' statement provides a convenient way to do ' - 'this.\n' - '\n' - 'Some objects contain references to other objects; these are ' - 'called\n' - '*containers*. Examples of containers are tuples, lists and\n' - "dictionaries. The references are part of a container's value. " - 'In\n' - 'most cases, when we talk about the value of a container, we imply ' - 'the\n' - 'values, not the identities of the contained objects; however, ' - 'when we\n' - 'talk about the mutability of a container, only the identities of ' - 'the\n' - 'immediately contained objects are implied. So, if an immutable\n' - 'container (like a tuple) contains a reference to a mutable ' - 'object, its\n' - 'value changes if that mutable object is changed.\n' - '\n' - 'Types affect almost all aspects of object behavior. Even the\n' - 'importance of object identity is affected in some sense: for ' - 'immutable\n' - 'types, operations that compute new values may actually return a\n' - 'reference to any existing object with the same type and value, ' - 'while\n' - 'for mutable objects this is not allowed. E.g., after "a = 1; b = ' - '1",\n' - '"a" and "b" may or may not refer to the same object with the ' - 'value\n' - 'one, depending on the implementation, but after "c = []; d = []", ' - '"c"\n' - 'and "d" are guaranteed to refer to two different, unique, newly\n' - 'created empty lists. (Note that "c = d = []" assigns the same ' - 'object\n' - 'to both "c" and "d".)\n', - 'operator-summary': '\n' - 'Operator precedence\n' - '*******************\n' - '\n' - 'The following table summarizes the operator precedences ' - 'in Python,\n' - 'from lowest precedence (least binding) to highest ' - 'precedence (most\n' - 'binding). Operators in the same box have the same ' - 'precedence. Unless\n' - 'the syntax is explicitly given, operators are binary. ' - 'Operators in\n' - 'the same box group left to right (except for ' - 'comparisons, including\n' - 'tests, which all have the same precedence and chain from ' - 'left to right\n' - '--- see section Comparisons --- and exponentiation, ' - 'which groups from\n' - 'right to left).\n' - '\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| Operator | ' - 'Description |\n' - '+=================================================+=======================================+\n' - '| "lambda" | ' - 'Lambda expression |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "if" -- "else" | ' - 'Conditional expression |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "or" | ' - 'Boolean OR |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "and" | ' - 'Boolean AND |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "not" "x" | ' - 'Boolean NOT |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "in", "not in", "is", "is not", "<", "<=", ">", | ' - 'Comparisons, including membership |\n' - '| ">=", "<>", "!=", "==" | ' - 'tests and identity tests |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "|" | ' - 'Bitwise OR |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "^" | ' - 'Bitwise XOR |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "&" | ' - 'Bitwise AND |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "<<", ">>" | ' - 'Shifts |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "+", "-" | ' - 'Addition and subtraction |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "*", "/", "//", "%" | ' - 'Multiplication, division, remainder |\n' - '| | ' - '[8] |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "+x", "-x", "~x" | ' - 'Positive, negative, bitwise NOT |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "**" | ' - 'Exponentiation [9] |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "x[index]", "x[index:index]", | ' - 'Subscription, slicing, call, |\n' - '| "x(arguments...)", "x.attribute" | ' - 'attribute reference |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '| "(expressions...)", "[expressions...]", "{key: | ' - 'Binding or tuple display, list |\n' - '| value...}", "`expressions...`" | ' - 'display, dictionary display, string |\n' - '| | ' - 'conversion |\n' - '+-------------------------------------------------+---------------------------------------+\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] In Python 2.3 and later releases, a list ' - 'comprehension "leaks"\n' - ' the control variables of each "for" it contains into ' - 'the\n' - ' containing scope. However, this behavior is ' - 'deprecated, and\n' - ' relying on it will not work in Python 3.\n' - '\n' - '[2] While "abs(x%y) < abs(y)" is true mathematically, ' - 'for floats\n' - ' it may not be true numerically due to roundoff. For ' - 'example, and\n' - ' assuming a platform on which a Python float is an ' - 'IEEE 754 double-\n' - ' precision number, in order that "-1e-100 % 1e100" ' - 'have the same\n' - ' sign as "1e100", the computed result is "-1e-100 + ' - '1e100", which\n' - ' is numerically exactly equal to "1e100". The ' - 'function\n' - ' "math.fmod()" returns a result whose sign matches ' - 'the sign of the\n' - ' first argument instead, and so returns "-1e-100" in ' - 'this case.\n' - ' Which approach is more appropriate depends on the ' - 'application.\n' - '\n' - '[3] If x is very close to an exact integer multiple of ' - "y, it's\n" - ' possible for "floor(x/y)" to be one larger than ' - '"(x-x%y)/y" due to\n' - ' rounding. In such cases, Python returns the latter ' - 'result, in\n' - ' order to preserve that "divmod(x,y)[0] * y + x % y" ' - 'be very close\n' - ' to "x".\n' - '\n' - '[4] While comparisons between unicode strings make sense ' - 'at the\n' - ' byte level, they may be counter-intuitive to users. ' - 'For example,\n' - ' the strings "u"\\u00C7"" and "u"\\u0043\\u0327"" ' - 'compare differently,\n' - ' even though they both represent the same unicode ' - 'character (LATIN\n' - ' CAPITAL LETTER C WITH CEDILLA). To compare strings ' - 'in a human\n' - ' recognizable way, compare using ' - '"unicodedata.normalize()".\n' - '\n' - '[5] The implementation computes this efficiently, ' - 'without\n' - ' constructing lists or sorting.\n' - '\n' - '[6] Earlier versions of Python used lexicographic ' - 'comparison of\n' - ' the sorted (key, value) lists, but this was very ' - 'expensive for the\n' - ' common case of comparing for equality. An even ' - 'earlier version of\n' - ' Python compared dictionaries by identity only, but ' - 'this caused\n' - ' surprises because people expected to be able to test ' - 'a dictionary\n' - ' for emptiness by comparing it to "{}".\n' - '\n' - '[7] Due to automatic garbage-collection, free lists, and ' - 'the\n' - ' dynamic nature of descriptors, you may notice ' - 'seemingly unusual\n' - ' behaviour in certain uses of the "is" operator, like ' - 'those\n' - ' involving comparisons between instance methods, or ' - 'constants.\n' - ' Check their documentation for more info.\n' - '\n' - '[8] The "%" operator is also used for string formatting; ' - 'the same\n' - ' precedence applies.\n' - '\n' - '[9] The power operator "**" binds less tightly than an ' - 'arithmetic\n' - ' or bitwise unary operator on its right, that is, ' - '"2**-1" is "0.5".\n', - 'pass': '\n' - 'The "pass" statement\n' - '********************\n' - '\n' - ' pass_stmt ::= "pass"\n' - '\n' - '"pass" is a null operation --- when it is executed, nothing ' - 'happens.\n' - 'It is useful as a placeholder when a statement is required\n' - 'syntactically, but no code needs to be executed, for example:\n' - '\n' - ' def f(arg): pass # a function that does nothing (yet)\n' - '\n' - ' class C: pass # a class with no methods (yet)\n', - 'power': '\n' - 'The power operator\n' - '******************\n' - '\n' - 'The power operator binds more tightly than unary operators on its\n' - 'left; it binds less tightly than unary operators on its right. ' - 'The\n' - 'syntax is:\n' - '\n' - ' power ::= primary ["**" u_expr]\n' - '\n' - 'Thus, in an unparenthesized sequence of power and unary operators, ' - 'the\n' - 'operators are evaluated from right to left (this does not ' - 'constrain\n' - 'the evaluation order for the operands): "-1**2" results in "-1".\n' - '\n' - 'The power operator has the same semantics as the built-in "pow()"\n' - 'function, when called with two arguments: it yields its left ' - 'argument\n' - 'raised to the power of its right argument. The numeric arguments ' - 'are\n' - 'first converted to a common type. The result type is that of the\n' - 'arguments after coercion.\n' - '\n' - 'With mixed operand types, the coercion rules for binary arithmetic\n' - 'operators apply. For int and long int operands, the result has the\n' - 'same type as the operands (after coercion) unless the second ' - 'argument\n' - 'is negative; in that case, all arguments are converted to float and ' - 'a\n' - 'float result is delivered. For example, "10**2" returns "100", but\n' - '"10**-2" returns "0.01". (This last feature was added in Python ' - '2.2.\n' - 'In Python 2.1 and before, if both arguments were of integer types ' - 'and\n' - 'the second argument was negative, an exception was raised).\n' - '\n' - 'Raising "0.0" to a negative power results in a ' - '"ZeroDivisionError".\n' - 'Raising a negative number to a fractional power results in a\n' - '"ValueError".\n', - 'print': '\n' - 'The "print" statement\n' - '*********************\n' - '\n' - ' print_stmt ::= "print" ([expression ("," expression)* [","]]\n' - ' | ">>" expression [("," expression)+ [","]])\n' - '\n' - '"print" evaluates each expression in turn and writes the resulting\n' - 'object to standard output (see below). If an object is not a ' - 'string,\n' - 'it is first converted to a string using the rules for string\n' - 'conversions. The (resulting or original) string is then written. ' - 'A\n' - 'space is written before each object is (converted and) written, ' - 'unless\n' - 'the output system believes it is positioned at the beginning of a\n' - 'line. This is the case (1) when no characters have yet been ' - 'written\n' - 'to standard output, (2) when the last character written to ' - 'standard\n' - 'output is a whitespace character except "\' \'", or (3) when the ' - 'last\n' - 'write operation on standard output was not a "print" statement. ' - '(In\n' - 'some cases it may be functional to write an empty string to ' - 'standard\n' - 'output for this reason.)\n' - '\n' - 'Note: Objects which act like file objects but which are not the\n' - ' built-in file objects often do not properly emulate this aspect ' - 'of\n' - " the file object's behavior, so it is best not to rely on this.\n" - '\n' - 'A "\'\\n\'" character is written at the end, unless the "print" ' - 'statement\n' - 'ends with a comma. This is the only action if the statement ' - 'contains\n' - 'just the keyword "print".\n' - '\n' - 'Standard output is defined as the file object named "stdout" in ' - 'the\n' - 'built-in module "sys". If no such object exists, or if it does ' - 'not\n' - 'have a "write()" method, a "RuntimeError" exception is raised.\n' - '\n' - '"print" also has an extended form, defined by the second portion ' - 'of\n' - 'the syntax described above. This form is sometimes referred to as\n' - '""print" chevron." In this form, the first expression after the ' - '">>"\n' - 'must evaluate to a "file-like" object, specifically an object that ' - 'has\n' - 'a "write()" method as described above. With this extended form, ' - 'the\n' - 'subsequent expressions are printed to this file object. If the ' - 'first\n' - 'expression evaluates to "None", then "sys.stdout" is used as the ' - 'file\n' - 'for output.\n', - 'raise': '\n' - 'The "raise" statement\n' - '*********************\n' - '\n' - ' raise_stmt ::= "raise" [expression ["," expression ["," ' - 'expression]]]\n' - '\n' - 'If no expressions are present, "raise" re-raises the last ' - 'exception\n' - 'that was active in the current scope. If no exception is active ' - 'in\n' - 'the current scope, a "TypeError" exception is raised indicating ' - 'that\n' - 'this is an error (if running under IDLE, a "Queue.Empty" exception ' - 'is\n' - 'raised instead).\n' - '\n' - 'Otherwise, "raise" evaluates the expressions to get three objects,\n' - 'using "None" as the value of omitted expressions. The first two\n' - 'objects are used to determine the *type* and *value* of the ' - 'exception.\n' - '\n' - 'If the first object is an instance, the type of the exception is ' - 'the\n' - 'class of the instance, the instance itself is the value, and the\n' - 'second object must be "None".\n' - '\n' - 'If the first object is a class, it becomes the type of the ' - 'exception.\n' - 'The second object is used to determine the exception value: If it ' - 'is\n' - 'an instance of the class, the instance becomes the exception value. ' - 'If\n' - 'the second object is a tuple, it is used as the argument list for ' - 'the\n' - 'class constructor; if it is "None", an empty argument list is ' - 'used,\n' - 'and any other object is treated as a single argument to the\n' - 'constructor. The instance so created by calling the constructor ' - 'is\n' - 'used as the exception value.\n' - '\n' - 'If a third object is present and not "None", it must be a ' - 'traceback\n' - 'object (see section The standard type hierarchy), and it is\n' - 'substituted instead of the current location as the place where the\n' - 'exception occurred. If the third object is present and not a\n' - 'traceback object or "None", a "TypeError" exception is raised. ' - 'The\n' - 'three-expression form of "raise" is useful to re-raise an ' - 'exception\n' - 'transparently in an except clause, but "raise" with no expressions\n' - 'should be preferred if the exception to be re-raised was the most\n' - 'recently active exception in the current scope.\n' - '\n' - 'Additional information on exceptions can be found in section\n' - 'Exceptions, and information about handling exceptions is in ' - 'section\n' - 'The try statement.\n', - 'return': '\n' - 'The "return" statement\n' - '**********************\n' - '\n' - ' return_stmt ::= "return" [expression_list]\n' - '\n' - '"return" may only occur syntactically nested in a function ' - 'definition,\n' - 'not within a nested class definition.\n' - '\n' - 'If an expression list is present, it is evaluated, else "None" is\n' - 'substituted.\n' - '\n' - '"return" leaves the current function call with the expression list ' - '(or\n' - '"None") as return value.\n' - '\n' - 'When "return" passes control out of a "try" statement with a ' - '"finally"\n' - 'clause, that "finally" clause is executed before really leaving ' - 'the\n' - 'function.\n' - '\n' - 'In a generator function, the "return" statement is not allowed to\n' - 'include an "expression_list". In that context, a bare "return"\n' - 'indicates that the generator is done and will cause ' - '"StopIteration" to\n' - 'be raised.\n', - 'sequence-types': '\n' - 'Emulating container types\n' - '*************************\n' - '\n' - 'The following methods can be defined to implement ' - 'container objects.\n' - 'Containers usually are sequences (such as lists or tuples) ' - 'or mappings\n' - '(like dictionaries), but can represent other containers as ' - 'well. The\n' - 'first set of methods is used either to emulate a sequence ' - 'or to\n' - 'emulate a mapping; the difference is that for a sequence, ' - 'the\n' - 'allowable keys should be the integers *k* for which "0 <= ' - 'k < N" where\n' - '*N* is the length of the sequence, or slice objects, which ' - 'define a\n' - 'range of items. (For backwards compatibility, the method\n' - '"__getslice__()" (see below) can also be defined to handle ' - 'simple, but\n' - 'not extended slices.) It is also recommended that mappings ' - 'provide the\n' - 'methods "keys()", "values()", "items()", "has_key()", ' - '"get()",\n' - '"clear()", "setdefault()", "iterkeys()", "itervalues()",\n' - '"iteritems()", "pop()", "popitem()", "copy()", and ' - '"update()" behaving\n' - "similar to those for Python's standard dictionary " - 'objects. The\n' - '"UserDict" module provides a "DictMixin" class to help ' - 'create those\n' - 'methods from a base set of "__getitem__()", ' - '"__setitem__()",\n' - '"__delitem__()", and "keys()". Mutable sequences should ' - 'provide\n' - 'methods "append()", "count()", "index()", "extend()", ' - '"insert()",\n' - '"pop()", "remove()", "reverse()" and "sort()", like Python ' - 'standard\n' - 'list objects. Finally, sequence types should implement ' - 'addition\n' - '(meaning concatenation) and multiplication (meaning ' - 'repetition) by\n' - 'defining the methods "__add__()", "__radd__()", ' - '"__iadd__()",\n' - '"__mul__()", "__rmul__()" and "__imul__()" described ' - 'below; they\n' - 'should not define "__coerce__()" or other numerical ' - 'operators. It is\n' - 'recommended that both mappings and sequences implement ' - 'the\n' - '"__contains__()" method to allow efficient use of the "in" ' - 'operator;\n' - 'for mappings, "in" should be equivalent of "has_key()"; ' - 'for sequences,\n' - 'it should search through the values. It is further ' - 'recommended that\n' - 'both mappings and sequences implement the "__iter__()" ' - 'method to allow\n' - 'efficient iteration through the container; for mappings, ' - '"__iter__()"\n' - 'should be the same as "iterkeys()"; for sequences, it ' - 'should iterate\n' - 'through the values.\n' - '\n' - 'object.__len__(self)\n' - '\n' - ' Called to implement the built-in function "len()". ' - 'Should return\n' - ' the length of the object, an integer ">=" 0. Also, an ' - 'object that\n' - ' doesn\'t define a "__nonzero__()" method and whose ' - '"__len__()"\n' - ' method returns zero is considered to be false in a ' - 'Boolean context.\n' - '\n' - 'object.__getitem__(self, key)\n' - '\n' - ' Called to implement evaluation of "self[key]". For ' - 'sequence types,\n' - ' the accepted keys should be integers and slice ' - 'objects. Note that\n' - ' the special interpretation of negative indexes (if the ' - 'class wishes\n' - ' to emulate a sequence type) is up to the ' - '"__getitem__()" method. If\n' - ' *key* is of an inappropriate type, "TypeError" may be ' - 'raised; if of\n' - ' a value outside the set of indexes for the sequence ' - '(after any\n' - ' special interpretation of negative values), ' - '"IndexError" should be\n' - ' raised. For mapping types, if *key* is missing (not in ' - 'the\n' - ' container), "KeyError" should be raised.\n' - '\n' - ' Note: "for" loops expect that an "IndexError" will be ' - 'raised for\n' - ' illegal indexes to allow proper detection of the end ' - 'of the\n' - ' sequence.\n' - '\n' - 'object.__missing__(self, key)\n' - '\n' - ' Called by "dict"."__getitem__()" to implement ' - '"self[key]" for dict\n' - ' subclasses when key is not in the dictionary.\n' - '\n' - 'object.__setitem__(self, key, value)\n' - '\n' - ' Called to implement assignment to "self[key]". Same ' - 'note as for\n' - ' "__getitem__()". This should only be implemented for ' - 'mappings if\n' - ' the objects support changes to the values for keys, or ' - 'if new keys\n' - ' can be added, or for sequences if elements can be ' - 'replaced. The\n' - ' same exceptions should be raised for improper *key* ' - 'values as for\n' - ' the "__getitem__()" method.\n' - '\n' - 'object.__delitem__(self, key)\n' - '\n' - ' Called to implement deletion of "self[key]". Same note ' - 'as for\n' - ' "__getitem__()". This should only be implemented for ' - 'mappings if\n' - ' the objects support removal of keys, or for sequences ' - 'if elements\n' - ' can be removed from the sequence. The same exceptions ' - 'should be\n' - ' raised for improper *key* values as for the ' - '"__getitem__()" method.\n' - '\n' - 'object.__iter__(self)\n' - '\n' - ' This method is called when an iterator is required for ' - 'a container.\n' - ' This method should return a new iterator object that ' - 'can iterate\n' - ' over all the objects in the container. For mappings, ' - 'it should\n' - ' iterate over the keys of the container, and should also ' - 'be made\n' - ' available as the method "iterkeys()".\n' - '\n' - ' Iterator objects also need to implement this method; ' - 'they are\n' - ' required to return themselves. For more information on ' - 'iterator\n' - ' objects, see Iterator Types.\n' - '\n' - 'object.__reversed__(self)\n' - '\n' - ' Called (if present) by the "reversed()" built-in to ' - 'implement\n' - ' reverse iteration. It should return a new iterator ' - 'object that\n' - ' iterates over all the objects in the container in ' - 'reverse order.\n' - '\n' - ' If the "__reversed__()" method is not provided, the ' - '"reversed()"\n' - ' built-in will fall back to using the sequence protocol ' - '("__len__()"\n' - ' and "__getitem__()"). Objects that support the ' - 'sequence protocol\n' - ' should only provide "__reversed__()" if they can ' - 'provide an\n' - ' implementation that is more efficient than the one ' - 'provided by\n' - ' "reversed()".\n' - '\n' - ' New in version 2.6.\n' - '\n' - 'The membership test operators ("in" and "not in") are ' - 'normally\n' - 'implemented as an iteration through a sequence. However, ' - 'container\n' - 'objects can supply the following special method with a ' - 'more efficient\n' - 'implementation, which also does not require the object be ' - 'a sequence.\n' - '\n' - 'object.__contains__(self, item)\n' - '\n' - ' Called to implement membership test operators. Should ' - 'return true\n' - ' if *item* is in *self*, false otherwise. For mapping ' - 'objects, this\n' - ' should consider the keys of the mapping rather than the ' - 'values or\n' - ' the key-item pairs.\n' - '\n' - ' For objects that don\'t define "__contains__()", the ' - 'membership test\n' - ' first tries iteration via "__iter__()", then the old ' - 'sequence\n' - ' iteration protocol via "__getitem__()", see this ' - 'section in the\n' - ' language reference.\n', - 'shifting': '\n' - 'Shifting operations\n' - '*******************\n' - '\n' - 'The shifting operations have lower priority than the arithmetic\n' - 'operations:\n' - '\n' - ' shift_expr ::= a_expr | shift_expr ( "<<" | ">>" ) a_expr\n' - '\n' - 'These operators accept plain or long integers as arguments. ' - 'The\n' - 'arguments are converted to a common type. They shift the first\n' - 'argument to the left or right by the number of bits given by ' - 'the\n' - 'second argument.\n' - '\n' - 'A right shift by *n* bits is defined as division by "pow(2, ' - 'n)". A\n' - 'left shift by *n* bits is defined as multiplication with "pow(2, ' - 'n)".\n' - 'Negative shift counts raise a "ValueError" exception.\n' - '\n' - 'Note: In the current implementation, the right-hand operand is\n' - ' required to be at most "sys.maxsize". If the right-hand ' - 'operand is\n' - ' larger than "sys.maxsize" an "OverflowError" exception is ' - 'raised.\n', - 'slicings': '\n' - 'Slicings\n' - '********\n' - '\n' - 'A slicing selects a range of items in a sequence object (e.g., ' - 'a\n' - 'string, tuple or list). Slicings may be used as expressions or ' - 'as\n' - 'targets in assignment or "del" statements. The syntax for a ' - 'slicing:\n' - '\n' - ' slicing ::= simple_slicing | extended_slicing\n' - ' simple_slicing ::= primary "[" short_slice "]"\n' - ' extended_slicing ::= primary "[" slice_list "]"\n' - ' slice_list ::= slice_item ("," slice_item)* [","]\n' - ' slice_item ::= expression | proper_slice | ellipsis\n' - ' proper_slice ::= short_slice | long_slice\n' - ' short_slice ::= [lower_bound] ":" [upper_bound]\n' - ' long_slice ::= short_slice ":" [stride]\n' - ' lower_bound ::= expression\n' - ' upper_bound ::= expression\n' - ' stride ::= expression\n' - ' ellipsis ::= "..."\n' - '\n' - 'There is ambiguity in the formal syntax here: anything that ' - 'looks like\n' - 'an expression list also looks like a slice list, so any ' - 'subscription\n' - 'can be interpreted as a slicing. Rather than further ' - 'complicating the\n' - 'syntax, this is disambiguated by defining that in this case the\n' - 'interpretation as a subscription takes priority over the\n' - 'interpretation as a slicing (this is the case if the slice list\n' - 'contains no proper slice nor ellipses). Similarly, when the ' - 'slice\n' - 'list has exactly one short slice and no trailing comma, the\n' - 'interpretation as a simple slicing takes priority over that as ' - 'an\n' - 'extended slicing.\n' - '\n' - 'The semantics for a simple slicing are as follows. The primary ' - 'must\n' - 'evaluate to a sequence object. The lower and upper bound ' - 'expressions,\n' - 'if present, must evaluate to plain integers; defaults are zero ' - 'and the\n' - '"sys.maxint", respectively. If either bound is negative, the\n' - "sequence's length is added to it. The slicing now selects all " - 'items\n' - 'with index *k* such that "i <= k < j" where *i* and *j* are the\n' - 'specified lower and upper bounds. This may be an empty ' - 'sequence. It\n' - 'is not an error if *i* or *j* lie outside the range of valid ' - 'indexes\n' - "(such items don't exist so they aren't selected).\n" - '\n' - 'The semantics for an extended slicing are as follows. The ' - 'primary\n' - 'must evaluate to a mapping object, and it is indexed with a key ' - 'that\n' - 'is constructed from the slice list, as follows. If the slice ' - 'list\n' - 'contains at least one comma, the key is a tuple containing the\n' - 'conversion of the slice items; otherwise, the conversion of the ' - 'lone\n' - 'slice item is the key. The conversion of a slice item that is ' - 'an\n' - 'expression is that expression. The conversion of an ellipsis ' - 'slice\n' - 'item is the built-in "Ellipsis" object. The conversion of a ' - 'proper\n' - 'slice is a slice object (see section The standard type ' - 'hierarchy)\n' - 'whose "start", "stop" and "step" attributes are the values of ' - 'the\n' - 'expressions given as lower bound, upper bound and stride,\n' - 'respectively, substituting "None" for missing expressions.\n', - 'specialattrs': '\n' - 'Special Attributes\n' - '******************\n' - '\n' - 'The implementation adds a few special read-only attributes ' - 'to several\n' - 'object types, where they are relevant. Some of these are ' - 'not reported\n' - 'by the "dir()" built-in function.\n' - '\n' - 'object.__dict__\n' - '\n' - ' A dictionary or other mapping object used to store an ' - "object's\n" - ' (writable) attributes.\n' - '\n' - 'object.__methods__\n' - '\n' - ' Deprecated since version 2.2: Use the built-in function ' - '"dir()" to\n' - " get a list of an object's attributes. This attribute is " - 'no longer\n' - ' available.\n' - '\n' - 'object.__members__\n' - '\n' - ' Deprecated since version 2.2: Use the built-in function ' - '"dir()" to\n' - " get a list of an object's attributes. This attribute is " - 'no longer\n' - ' available.\n' - '\n' - 'instance.__class__\n' - '\n' - ' The class to which a class instance belongs.\n' - '\n' - 'class.__bases__\n' - '\n' - ' The tuple of base classes of a class object.\n' - '\n' - 'class.__name__\n' - '\n' - ' The name of the class or type.\n' - '\n' - 'The following attributes are only supported by *new-style ' - 'class*es.\n' - '\n' - 'class.__mro__\n' - '\n' - ' This attribute is a tuple of classes that are considered ' - 'when\n' - ' looking for base classes during method resolution.\n' - '\n' - 'class.mro()\n' - '\n' - ' This method can be overridden by a metaclass to customize ' - 'the\n' - ' method resolution order for its instances. It is called ' - 'at class\n' - ' instantiation, and its result is stored in "__mro__".\n' - '\n' - 'class.__subclasses__()\n' - '\n' - ' Each new-style class keeps a list of weak references to ' - 'its\n' - ' immediate subclasses. This method returns a list of all ' - 'those\n' - ' references still alive. Example:\n' - '\n' - ' >>> int.__subclasses__()\n' - " []\n" - '\n' - '-[ Footnotes ]-\n' - '\n' - '[1] Additional information on these special methods may be ' - 'found\n' - ' in the Python Reference Manual (Basic customization).\n' - '\n' - '[2] As a consequence, the list "[1, 2]" is considered equal ' - 'to\n' - ' "[1.0, 2.0]", and similarly for tuples.\n' - '\n' - "[3] They must have since the parser can't tell the type of " - 'the\n' - ' operands.\n' - '\n' - '[4] Cased characters are those with general category ' - 'property\n' - ' being one of "Lu" (Letter, uppercase), "Ll" (Letter, ' - 'lowercase),\n' - ' or "Lt" (Letter, titlecase).\n' - '\n' - '[5] To format only a tuple you should therefore provide a\n' - ' singleton tuple whose only element is the tuple to be ' - 'formatted.\n' - '\n' - '[6] The advantage of leaving the newline on is that ' - 'returning an\n' - ' empty string is then an unambiguous EOF indication. It ' - 'is also\n' - ' possible (in cases where it might matter, for example, ' - 'if you want\n' - ' to make an exact copy of a file while scanning its ' - 'lines) to tell\n' - ' whether the last line of a file ended in a newline or ' - 'not (yes\n' - ' this happens!).\n', - 'specialnames': '\n' - 'Special method names\n' - '********************\n' - '\n' - 'A class can implement certain operations that are invoked by ' - 'special\n' - 'syntax (such as arithmetic operations or subscripting and ' - 'slicing) by\n' - "defining methods with special names. This is Python's " - 'approach to\n' - '*operator overloading*, allowing classes to define their own ' - 'behavior\n' - 'with respect to language operators. For instance, if a ' - 'class defines\n' - 'a method named "__getitem__()", and "x" is an instance of ' - 'this class,\n' - 'then "x[i]" is roughly equivalent to "x.__getitem__(i)" for ' - 'old-style\n' - 'classes and "type(x).__getitem__(x, i)" for new-style ' - 'classes. Except\n' - 'where mentioned, attempts to execute an operation raise an ' - 'exception\n' - 'when no appropriate method is defined (typically ' - '"AttributeError" or\n' - '"TypeError").\n' - '\n' - 'When implementing a class that emulates any built-in type, ' - 'it is\n' - 'important that the emulation only be implemented to the ' - 'degree that it\n' - 'makes sense for the object being modelled. For example, ' - 'some\n' - 'sequences may work well with retrieval of individual ' - 'elements, but\n' - 'extracting a slice may not make sense. (One example of this ' - 'is the\n' - '"NodeList" interface in the W3C\'s Document Object Model.)\n' - '\n' - '\n' - 'Basic customization\n' - '===================\n' - '\n' - 'object.__new__(cls[, ...])\n' - '\n' - ' Called to create a new instance of class *cls*. ' - '"__new__()" is a\n' - ' static method (special-cased so you need not declare it ' - 'as such)\n' - ' that takes the class of which an instance was requested ' - 'as its\n' - ' first argument. The remaining arguments are those passed ' - 'to the\n' - ' object constructor expression (the call to the class). ' - 'The return\n' - ' value of "__new__()" should be the new object instance ' - '(usually an\n' - ' instance of *cls*).\n' - '\n' - ' Typical implementations create a new instance of the ' - 'class by\n' - ' invoking the superclass\'s "__new__()" method using\n' - ' "super(currentclass, cls).__new__(cls[, ...])" with ' - 'appropriate\n' - ' arguments and then modifying the newly-created instance ' - 'as\n' - ' necessary before returning it.\n' - '\n' - ' If "__new__()" returns an instance of *cls*, then the ' - 'new\n' - ' instance\'s "__init__()" method will be invoked like\n' - ' "__init__(self[, ...])", where *self* is the new instance ' - 'and the\n' - ' remaining arguments are the same as were passed to ' - '"__new__()".\n' - '\n' - ' If "__new__()" does not return an instance of *cls*, then ' - 'the new\n' - ' instance\'s "__init__()" method will not be invoked.\n' - '\n' - ' "__new__()" is intended mainly to allow subclasses of ' - 'immutable\n' - ' types (like int, str, or tuple) to customize instance ' - 'creation. It\n' - ' is also commonly overridden in custom metaclasses in ' - 'order to\n' - ' customize class creation.\n' - '\n' - 'object.__init__(self[, ...])\n' - '\n' - ' Called after the instance has been created (by ' - '"__new__()"), but\n' - ' before it is returned to the caller. The arguments are ' - 'those\n' - ' passed to the class constructor expression. If a base ' - 'class has an\n' - ' "__init__()" method, the derived class\'s "__init__()" ' - 'method, if\n' - ' any, must explicitly call it to ensure proper ' - 'initialization of the\n' - ' base class part of the instance; for example:\n' - ' "BaseClass.__init__(self, [args...])".\n' - '\n' - ' Because "__new__()" and "__init__()" work together in ' - 'constructing\n' - ' objects ("__new__()" to create it, and "__init__()" to ' - 'customise\n' - ' it), no non-"None" value may be returned by "__init__()"; ' - 'doing so\n' - ' will cause a "TypeError" to be raised at runtime.\n' - '\n' - 'object.__del__(self)\n' - '\n' - ' Called when the instance is about to be destroyed. This ' - 'is also\n' - ' called a destructor. If a base class has a "__del__()" ' - 'method, the\n' - ' derived class\'s "__del__()" method, if any, must ' - 'explicitly call it\n' - ' to ensure proper deletion of the base class part of the ' - 'instance.\n' - ' Note that it is possible (though not recommended!) for ' - 'the\n' - ' "__del__()" method to postpone destruction of the ' - 'instance by\n' - ' creating a new reference to it. It may then be called at ' - 'a later\n' - ' time when this new reference is deleted. It is not ' - 'guaranteed that\n' - ' "__del__()" methods are called for objects that still ' - 'exist when\n' - ' the interpreter exits.\n' - '\n' - ' Note: "del x" doesn\'t directly call "x.__del__()" --- ' - 'the former\n' - ' decrements the reference count for "x" by one, and the ' - 'latter is\n' - ' only called when "x"\'s reference count reaches zero. ' - 'Some common\n' - ' situations that may prevent the reference count of an ' - 'object from\n' - ' going to zero include: circular references between ' - 'objects (e.g.,\n' - ' a doubly-linked list or a tree data structure with ' - 'parent and\n' - ' child pointers); a reference to the object on the stack ' - 'frame of\n' - ' a function that caught an exception (the traceback ' - 'stored in\n' - ' "sys.exc_traceback" keeps the stack frame alive); or a ' - 'reference\n' - ' to the object on the stack frame that raised an ' - 'unhandled\n' - ' exception in interactive mode (the traceback stored in\n' - ' "sys.last_traceback" keeps the stack frame alive). The ' - 'first\n' - ' situation can only be remedied by explicitly breaking ' - 'the cycles;\n' - ' the latter two situations can be resolved by storing ' - '"None" in\n' - ' "sys.exc_traceback" or "sys.last_traceback". Circular ' - 'references\n' - ' which are garbage are detected when the option cycle ' - 'detector is\n' - " enabled (it's on by default), but can only be cleaned " - 'up if there\n' - ' are no Python-level "__del__()" methods involved. Refer ' - 'to the\n' - ' documentation for the "gc" module for more information ' - 'about how\n' - ' "__del__()" methods are handled by the cycle detector,\n' - ' particularly the description of the "garbage" value.\n' - '\n' - ' Warning: Due to the precarious circumstances under which\n' - ' "__del__()" methods are invoked, exceptions that occur ' - 'during\n' - ' their execution are ignored, and a warning is printed ' - 'to\n' - ' "sys.stderr" instead. Also, when "__del__()" is invoked ' - 'in\n' - ' response to a module being deleted (e.g., when ' - 'execution of the\n' - ' program is done), other globals referenced by the ' - '"__del__()"\n' - ' method may already have been deleted or in the process ' - 'of being\n' - ' torn down (e.g. the import machinery shutting down). ' - 'For this\n' - ' reason, "__del__()" methods should do the absolute ' - 'minimum needed\n' - ' to maintain external invariants. Starting with version ' - '1.5,\n' - ' Python guarantees that globals whose name begins with a ' - 'single\n' - ' underscore are deleted from their module before other ' - 'globals are\n' - ' deleted; if no other references to such globals exist, ' - 'this may\n' - ' help in assuring that imported modules are still ' - 'available at the\n' - ' time when the "__del__()" method is called.\n' - '\n' - ' See also the "-R" command-line option.\n' - '\n' - 'object.__repr__(self)\n' - '\n' - ' Called by the "repr()" built-in function and by string ' - 'conversions\n' - ' (reverse quotes) to compute the "official" string ' - 'representation of\n' - ' an object. If at all possible, this should look like a ' - 'valid\n' - ' Python expression that could be used to recreate an ' - 'object with the\n' - ' same value (given an appropriate environment). If this ' - 'is not\n' - ' possible, a string of the form "<...some useful ' - 'description...>"\n' - ' should be returned. The return value must be a string ' - 'object. If a\n' - ' class defines "__repr__()" but not "__str__()", then ' - '"__repr__()"\n' - ' is also used when an "informal" string representation of ' - 'instances\n' - ' of that class is required.\n' - '\n' - ' This is typically used for debugging, so it is important ' - 'that the\n' - ' representation is information-rich and unambiguous.\n' - '\n' - 'object.__str__(self)\n' - '\n' - ' Called by the "str()" built-in function and by the ' - '"print"\n' - ' statement to compute the "informal" string representation ' - 'of an\n' - ' object. This differs from "__repr__()" in that it does ' - 'not have to\n' - ' be a valid Python expression: a more convenient or ' - 'concise\n' - ' representation may be used instead. The return value must ' - 'be a\n' - ' string object.\n' - '\n' - 'object.__lt__(self, other)\n' - 'object.__le__(self, other)\n' - 'object.__eq__(self, other)\n' - 'object.__ne__(self, other)\n' - 'object.__gt__(self, other)\n' - 'object.__ge__(self, other)\n' - '\n' - ' New in version 2.1.\n' - '\n' - ' These are the so-called "rich comparison" methods, and ' - 'are called\n' - ' for comparison operators in preference to "__cmp__()" ' - 'below. The\n' - ' correspondence between operator symbols and method names ' - 'is as\n' - ' follows: "xy" call ' - '"x.__ne__(y)",\n' - ' "x>y" calls "x.__gt__(y)", and "x>=y" calls ' - '"x.__ge__(y)".\n' - '\n' - ' A rich comparison method may return the singleton ' - '"NotImplemented"\n' - ' if it does not implement the operation for a given pair ' - 'of\n' - ' arguments. By convention, "False" and "True" are returned ' - 'for a\n' - ' successful comparison. However, these methods can return ' - 'any value,\n' - ' so if the comparison operator is used in a Boolean ' - 'context (e.g.,\n' - ' in the condition of an "if" statement), Python will call ' - '"bool()"\n' - ' on the value to determine if the result is true or ' - 'false.\n' - '\n' - ' There are no implied relationships among the comparison ' - 'operators.\n' - ' The truth of "x==y" does not imply that "x!=y" is false.\n' - ' Accordingly, when defining "__eq__()", one should also ' - 'define\n' - ' "__ne__()" so that the operators will behave as ' - 'expected. See the\n' - ' paragraph on "__hash__()" for some important notes on ' - 'creating\n' - ' *hashable* objects which support custom comparison ' - 'operations and\n' - ' are usable as dictionary keys.\n' - '\n' - ' There are no swapped-argument versions of these methods ' - '(to be used\n' - ' when the left argument does not support the operation but ' - 'the right\n' - ' argument does); rather, "__lt__()" and "__gt__()" are ' - "each other's\n" - ' reflection, "__le__()" and "__ge__()" are each other\'s ' - 'reflection,\n' - ' and "__eq__()" and "__ne__()" are their own reflection.\n' - '\n' - ' Arguments to rich comparison methods are never coerced.\n' - '\n' - ' To automatically generate ordering operations from a ' - 'single root\n' - ' operation, see "functools.total_ordering()".\n' - '\n' - 'object.__cmp__(self, other)\n' - '\n' - ' Called by comparison operations if rich comparison (see ' - 'above) is\n' - ' not defined. Should return a negative integer if "self < ' - 'other",\n' - ' zero if "self == other", a positive integer if "self > ' - 'other". If\n' - ' no "__cmp__()", "__eq__()" or "__ne__()" operation is ' - 'defined,\n' - ' class instances are compared by object identity ' - '("address"). See\n' - ' also the description of "__hash__()" for some important ' - 'notes on\n' - ' creating *hashable* objects which support custom ' - 'comparison\n' - ' operations and are usable as dictionary keys. (Note: the\n' - ' restriction that exceptions are not propagated by ' - '"__cmp__()" has\n' - ' been removed since Python 1.5.)\n' - '\n' - 'object.__rcmp__(self, other)\n' - '\n' - ' Changed in version 2.1: No longer supported.\n' - '\n' - 'object.__hash__(self)\n' - '\n' - ' Called by built-in function "hash()" and for operations ' - 'on members\n' - ' of hashed collections including "set", "frozenset", and ' - '"dict".\n' - ' "__hash__()" should return an integer. The only required ' - 'property\n' - ' is that objects which compare equal have the same hash ' - 'value; it is\n' - ' advised to somehow mix together (e.g. using exclusive or) ' - 'the hash\n' - ' values for the components of the object that also play a ' - 'part in\n' - ' comparison of objects.\n' - '\n' - ' If a class does not define a "__cmp__()" or "__eq__()" ' - 'method it\n' - ' should not define a "__hash__()" operation either; if it ' - 'defines\n' - ' "__cmp__()" or "__eq__()" but not "__hash__()", its ' - 'instances will\n' - ' not be usable in hashed collections. If a class defines ' - 'mutable\n' - ' objects and implements a "__cmp__()" or "__eq__()" ' - 'method, it\n' - ' should not implement "__hash__()", since hashable ' - 'collection\n' - " implementations require that a object's hash value is " - 'immutable (if\n' - " the object's hash value changes, it will be in the wrong " - 'hash\n' - ' bucket).\n' - '\n' - ' User-defined classes have "__cmp__()" and "__hash__()" ' - 'methods by\n' - ' default; with them, all objects compare unequal (except ' - 'with\n' - ' themselves) and "x.__hash__()" returns a result derived ' - 'from\n' - ' "id(x)".\n' - '\n' - ' Classes which inherit a "__hash__()" method from a parent ' - 'class but\n' - ' change the meaning of "__cmp__()" or "__eq__()" such that ' - 'the hash\n' - ' value returned is no longer appropriate (e.g. by ' - 'switching to a\n' - ' value-based concept of equality instead of the default ' - 'identity\n' - ' based equality) can explicitly flag themselves as being ' - 'unhashable\n' - ' by setting "__hash__ = None" in the class definition. ' - 'Doing so\n' - ' means that not only will instances of the class raise an\n' - ' appropriate "TypeError" when a program attempts to ' - 'retrieve their\n' - ' hash value, but they will also be correctly identified ' - 'as\n' - ' unhashable when checking "isinstance(obj, ' - 'collections.Hashable)"\n' - ' (unlike classes which define their own "__hash__()" to ' - 'explicitly\n' - ' raise "TypeError").\n' - '\n' - ' Changed in version 2.5: "__hash__()" may now also return ' - 'a long\n' - ' integer object; the 32-bit integer is then derived from ' - 'the hash of\n' - ' that object.\n' - '\n' - ' Changed in version 2.6: "__hash__" may now be set to ' - '"None" to\n' - ' explicitly flag instances of a class as unhashable.\n' - '\n' - 'object.__nonzero__(self)\n' - '\n' - ' Called to implement truth value testing and the built-in ' - 'operation\n' - ' "bool()"; should return "False" or "True", or their ' - 'integer\n' - ' equivalents "0" or "1". When this method is not ' - 'defined,\n' - ' "__len__()" is called, if it is defined, and the object ' - 'is\n' - ' considered true if its result is nonzero. If a class ' - 'defines\n' - ' neither "__len__()" nor "__nonzero__()", all its ' - 'instances are\n' - ' considered true.\n' - '\n' - 'object.__unicode__(self)\n' - '\n' - ' Called to implement "unicode()" built-in; should return a ' - 'Unicode\n' - ' object. When this method is not defined, string ' - 'conversion is\n' - ' attempted, and the result of string conversion is ' - 'converted to\n' - ' Unicode using the system default encoding.\n' - '\n' - '\n' - 'Customizing attribute access\n' - '============================\n' - '\n' - 'The following methods can be defined to customize the ' - 'meaning of\n' - 'attribute access (use of, assignment to, or deletion of ' - '"x.name") for\n' - 'class instances.\n' - '\n' - 'object.__getattr__(self, name)\n' - '\n' - ' Called when an attribute lookup has not found the ' - 'attribute in the\n' - ' usual places (i.e. it is not an instance attribute nor is ' - 'it found\n' - ' in the class tree for "self"). "name" is the attribute ' - 'name. This\n' - ' method should return the (computed) attribute value or ' - 'raise an\n' - ' "AttributeError" exception.\n' - '\n' - ' Note that if the attribute is found through the normal ' - 'mechanism,\n' - ' "__getattr__()" is not called. (This is an intentional ' - 'asymmetry\n' - ' between "__getattr__()" and "__setattr__()".) This is ' - 'done both for\n' - ' efficiency reasons and because otherwise "__getattr__()" ' - 'would have\n' - ' no way to access other attributes of the instance. Note ' - 'that at\n' - ' least for instance variables, you can fake total control ' - 'by not\n' - ' inserting any values in the instance attribute dictionary ' - '(but\n' - ' instead inserting them in another object). See the\n' - ' "__getattribute__()" method below for a way to actually ' - 'get total\n' - ' control in new-style classes.\n' - '\n' - 'object.__setattr__(self, name, value)\n' - '\n' - ' Called when an attribute assignment is attempted. This ' - 'is called\n' - ' instead of the normal mechanism (i.e. store the value in ' - 'the\n' - ' instance dictionary). *name* is the attribute name, ' - '*value* is the\n' - ' value to be assigned to it.\n' - '\n' - ' If "__setattr__()" wants to assign to an instance ' - 'attribute, it\n' - ' should not simply execute "self.name = value" --- this ' - 'would cause\n' - ' a recursive call to itself. Instead, it should insert ' - 'the value in\n' - ' the dictionary of instance attributes, e.g., ' - '"self.__dict__[name] =\n' - ' value". For new-style classes, rather than accessing the ' - 'instance\n' - ' dictionary, it should call the base class method with the ' - 'same\n' - ' name, for example, "object.__setattr__(self, name, ' - 'value)".\n' - '\n' - 'object.__delattr__(self, name)\n' - '\n' - ' Like "__setattr__()" but for attribute deletion instead ' - 'of\n' - ' assignment. This should only be implemented if "del ' - 'obj.name" is\n' - ' meaningful for the object.\n' - '\n' - '\n' - 'More attribute access for new-style classes\n' - '-------------------------------------------\n' - '\n' - 'The following methods only apply to new-style classes.\n' - '\n' - 'object.__getattribute__(self, name)\n' - '\n' - ' Called unconditionally to implement attribute accesses ' - 'for\n' - ' instances of the class. If the class also defines ' - '"__getattr__()",\n' - ' the latter will not be called unless "__getattribute__()" ' - 'either\n' - ' calls it explicitly or raises an "AttributeError". This ' - 'method\n' - ' should return the (computed) attribute value or raise an\n' - ' "AttributeError" exception. In order to avoid infinite ' - 'recursion in\n' - ' this method, its implementation should always call the ' - 'base class\n' - ' method with the same name to access any attributes it ' - 'needs, for\n' - ' example, "object.__getattribute__(self, name)".\n' - '\n' - ' Note: This method may still be bypassed when looking up ' - 'special\n' - ' methods as the result of implicit invocation via ' - 'language syntax\n' - ' or built-in functions. See Special method lookup for ' - 'new-style\n' - ' classes.\n' - '\n' - '\n' - 'Implementing Descriptors\n' - '------------------------\n' - '\n' - 'The following methods only apply when an instance of the ' - 'class\n' - 'containing the method (a so-called *descriptor* class) ' - 'appears in an\n' - "*owner* class (the descriptor must be in either the owner's " - 'class\n' - 'dictionary or in the class dictionary for one of its ' - 'parents). In the\n' - 'examples below, "the attribute" refers to the attribute ' - 'whose name is\n' - 'the key of the property in the owner class\' "__dict__".\n' - '\n' - 'object.__get__(self, instance, owner)\n' - '\n' - ' Called to get the attribute of the owner class (class ' - 'attribute\n' - ' access) or of an instance of that class (instance ' - 'attribute\n' - ' access). *owner* is always the owner class, while ' - '*instance* is the\n' - ' instance that the attribute was accessed through, or ' - '"None" when\n' - ' the attribute is accessed through the *owner*. This ' - 'method should\n' - ' return the (computed) attribute value or raise an ' - '"AttributeError"\n' - ' exception.\n' - '\n' - 'object.__set__(self, instance, value)\n' - '\n' - ' Called to set the attribute on an instance *instance* of ' - 'the owner\n' - ' class to a new value, *value*.\n' - '\n' - 'object.__delete__(self, instance)\n' - '\n' - ' Called to delete the attribute on an instance *instance* ' - 'of the\n' - ' owner class.\n' - '\n' - '\n' - 'Invoking Descriptors\n' - '--------------------\n' - '\n' - 'In general, a descriptor is an object attribute with ' - '"binding\n' - 'behavior", one whose attribute access has been overridden by ' - 'methods\n' - 'in the descriptor protocol: "__get__()", "__set__()", and\n' - '"__delete__()". If any of those methods are defined for an ' - 'object, it\n' - 'is said to be a descriptor.\n' - '\n' - 'The default behavior for attribute access is to get, set, or ' - 'delete\n' - "the attribute from an object's dictionary. For instance, " - '"a.x" has a\n' - 'lookup chain starting with "a.__dict__[\'x\']", then\n' - '"type(a).__dict__[\'x\']", and continuing through the base ' - 'classes of\n' - '"type(a)" excluding metaclasses.\n' - '\n' - 'However, if the looked-up value is an object defining one of ' - 'the\n' - 'descriptor methods, then Python may override the default ' - 'behavior and\n' - 'invoke the descriptor method instead. Where this occurs in ' - 'the\n' - 'precedence chain depends on which descriptor methods were ' - 'defined and\n' - 'how they were called. Note that descriptors are only ' - 'invoked for new\n' - 'style objects or classes (ones that subclass "object()" or ' - '"type()").\n' - '\n' - 'The starting point for descriptor invocation is a binding, ' - '"a.x". How\n' - 'the arguments are assembled depends on "a":\n' - '\n' - 'Direct Call\n' - ' The simplest and least common call is when user code ' - 'directly\n' - ' invokes a descriptor method: "x.__get__(a)".\n' - '\n' - 'Instance Binding\n' - ' If binding to a new-style object instance, "a.x" is ' - 'transformed\n' - ' into the call: "type(a).__dict__[\'x\'].__get__(a, ' - 'type(a))".\n' - '\n' - 'Class Binding\n' - ' If binding to a new-style class, "A.x" is transformed ' - 'into the\n' - ' call: "A.__dict__[\'x\'].__get__(None, A)".\n' - '\n' - 'Super Binding\n' - ' If "a" is an instance of "super", then the binding ' - '"super(B,\n' - ' obj).m()" searches "obj.__class__.__mro__" for the base ' - 'class "A"\n' - ' immediately preceding "B" and then invokes the descriptor ' - 'with the\n' - ' call: "A.__dict__[\'m\'].__get__(obj, obj.__class__)".\n' - '\n' - 'For instance bindings, the precedence of descriptor ' - 'invocation depends\n' - 'on the which descriptor methods are defined. A descriptor ' - 'can define\n' - 'any combination of "__get__()", "__set__()" and ' - '"__delete__()". If it\n' - 'does not define "__get__()", then accessing the attribute ' - 'will return\n' - 'the descriptor object itself unless there is a value in the ' - "object's\n" - 'instance dictionary. If the descriptor defines "__set__()" ' - 'and/or\n' - '"__delete__()", it is a data descriptor; if it defines ' - 'neither, it is\n' - 'a non-data descriptor. Normally, data descriptors define ' - 'both\n' - '"__get__()" and "__set__()", while non-data descriptors have ' - 'just the\n' - '"__get__()" method. Data descriptors with "__set__()" and ' - '"__get__()"\n' - 'defined always override a redefinition in an instance ' - 'dictionary. In\n' - 'contrast, non-data descriptors can be overridden by ' - 'instances.\n' - '\n' - 'Python methods (including "staticmethod()" and ' - '"classmethod()") are\n' - 'implemented as non-data descriptors. Accordingly, instances ' - 'can\n' - 'redefine and override methods. This allows individual ' - 'instances to\n' - 'acquire behaviors that differ from other instances of the ' - 'same class.\n' - '\n' - 'The "property()" function is implemented as a data ' - 'descriptor.\n' - 'Accordingly, instances cannot override the behavior of a ' - 'property.\n' - '\n' - '\n' - '__slots__\n' - '---------\n' - '\n' - 'By default, instances of both old and new-style classes have ' - 'a\n' - 'dictionary for attribute storage. This wastes space for ' - 'objects\n' - 'having very few instance variables. The space consumption ' - 'can become\n' - 'acute when creating large numbers of instances.\n' - '\n' - 'The default can be overridden by defining *__slots__* in a ' - 'new-style\n' - 'class definition. The *__slots__* declaration takes a ' - 'sequence of\n' - 'instance variables and reserves just enough space in each ' - 'instance to\n' - 'hold a value for each variable. Space is saved because ' - '*__dict__* is\n' - 'not created for each instance.\n' - '\n' - '__slots__\n' - '\n' - ' This class variable can be assigned a string, iterable, ' - 'or sequence\n' - ' of strings with variable names used by instances. If ' - 'defined in a\n' - ' new-style class, *__slots__* reserves space for the ' - 'declared\n' - ' variables and prevents the automatic creation of ' - '*__dict__* and\n' - ' *__weakref__* for each instance.\n' - '\n' - ' New in version 2.2.\n' - '\n' - 'Notes on using *__slots__*\n' - '\n' - '* When inheriting from a class without *__slots__*, the ' - '*__dict__*\n' - ' attribute of that class will always be accessible, so a ' - '*__slots__*\n' - ' definition in the subclass is meaningless.\n' - '\n' - '* Without a *__dict__* variable, instances cannot be ' - 'assigned new\n' - ' variables not listed in the *__slots__* definition. ' - 'Attempts to\n' - ' assign to an unlisted variable name raises ' - '"AttributeError". If\n' - ' dynamic assignment of new variables is desired, then add\n' - ' "\'__dict__\'" to the sequence of strings in the ' - '*__slots__*\n' - ' declaration.\n' - '\n' - ' Changed in version 2.3: Previously, adding "\'__dict__\'" ' - 'to the\n' - ' *__slots__* declaration would not enable the assignment of ' - 'new\n' - ' attributes not specifically listed in the sequence of ' - 'instance\n' - ' variable names.\n' - '\n' - '* Without a *__weakref__* variable for each instance, ' - 'classes\n' - ' defining *__slots__* do not support weak references to ' - 'its\n' - ' instances. If weak reference support is needed, then add\n' - ' "\'__weakref__\'" to the sequence of strings in the ' - '*__slots__*\n' - ' declaration.\n' - '\n' - ' Changed in version 2.3: Previously, adding ' - '"\'__weakref__\'" to the\n' - ' *__slots__* declaration would not enable support for weak\n' - ' references.\n' - '\n' - '* *__slots__* are implemented at the class level by ' - 'creating\n' - ' descriptors (Implementing Descriptors) for each variable ' - 'name. As a\n' - ' result, class attributes cannot be used to set default ' - 'values for\n' - ' instance variables defined by *__slots__*; otherwise, the ' - 'class\n' - ' attribute would overwrite the descriptor assignment.\n' - '\n' - '* The action of a *__slots__* declaration is limited to the ' - 'class\n' - ' where it is defined. As a result, subclasses will have a ' - '*__dict__*\n' - ' unless they also define *__slots__* (which must only ' - 'contain names\n' - ' of any *additional* slots).\n' - '\n' - '* If a class defines a slot also defined in a base class, ' - 'the\n' - ' instance variable defined by the base class slot is ' - 'inaccessible\n' - ' (except by retrieving its descriptor directly from the ' - 'base class).\n' - ' This renders the meaning of the program undefined. In the ' - 'future, a\n' - ' check may be added to prevent this.\n' - '\n' - '* Nonempty *__slots__* does not work for classes derived ' - 'from\n' - ' "variable-length" built-in types such as "long", "str" and ' - '"tuple".\n' - '\n' - '* Any non-string iterable may be assigned to *__slots__*. ' - 'Mappings\n' - ' may also be used; however, in the future, special meaning ' - 'may be\n' - ' assigned to the values corresponding to each key.\n' - '\n' - '* *__class__* assignment works only if both classes have the ' - 'same\n' - ' *__slots__*.\n' - '\n' - ' Changed in version 2.6: Previously, *__class__* assignment ' - 'raised an\n' - ' error if either new or old class had *__slots__*.\n' - '\n' - '\n' - 'Customizing class creation\n' - '==========================\n' - '\n' - 'By default, new-style classes are constructed using ' - '"type()". A class\n' - 'definition is read into a separate namespace and the value ' - 'of class\n' - 'name is bound to the result of "type(name, bases, dict)".\n' - '\n' - 'When the class definition is read, if *__metaclass__* is ' - 'defined then\n' - 'the callable assigned to it will be called instead of ' - '"type()". This\n' - 'allows classes or functions to be written which monitor or ' - 'alter the\n' - 'class creation process:\n' - '\n' - '* Modifying the class dictionary prior to the class being ' - 'created.\n' - '\n' - '* Returning an instance of another class -- essentially ' - 'performing\n' - ' the role of a factory function.\n' - '\n' - "These steps will have to be performed in the metaclass's " - '"__new__()"\n' - 'method -- "type.__new__()" can then be called from this ' - 'method to\n' - 'create a class with different properties. This example adds ' - 'a new\n' - 'element to the class dictionary before creating the class:\n' - '\n' - ' class metacls(type):\n' - ' def __new__(mcs, name, bases, dict):\n' - " dict['foo'] = 'metacls was here'\n" - ' return type.__new__(mcs, name, bases, dict)\n' - '\n' - 'You can of course also override other class methods (or add ' - 'new\n' - 'methods); for example defining a custom "__call__()" method ' - 'in the\n' - 'metaclass allows custom behavior when the class is called, ' - 'e.g. not\n' - 'always creating a new instance.\n' - '\n' - '__metaclass__\n' - '\n' - ' This variable can be any callable accepting arguments for ' - '"name",\n' - ' "bases", and "dict". Upon class creation, the callable ' - 'is used\n' - ' instead of the built-in "type()".\n' - '\n' - ' New in version 2.2.\n' - '\n' - 'The appropriate metaclass is determined by the following ' - 'precedence\n' - 'rules:\n' - '\n' - '* If "dict[\'__metaclass__\']" exists, it is used.\n' - '\n' - '* Otherwise, if there is at least one base class, its ' - 'metaclass is\n' - ' used (this looks for a *__class__* attribute first and if ' - 'not found,\n' - ' uses its type).\n' - '\n' - '* Otherwise, if a global variable named __metaclass__ ' - 'exists, it is\n' - ' used.\n' - '\n' - '* Otherwise, the old-style, classic metaclass ' - '(types.ClassType) is\n' - ' used.\n' - '\n' - 'The potential uses for metaclasses are boundless. Some ideas ' - 'that have\n' - 'been explored including logging, interface checking, ' - 'automatic\n' - 'delegation, automatic property creation, proxies, ' - 'frameworks, and\n' - 'automatic resource locking/synchronization.\n' - '\n' - '\n' - 'Customizing instance and subclass checks\n' - '========================================\n' - '\n' - 'New in version 2.6.\n' - '\n' - 'The following methods are used to override the default ' - 'behavior of the\n' - '"isinstance()" and "issubclass()" built-in functions.\n' - '\n' - 'In particular, the metaclass "abc.ABCMeta" implements these ' - 'methods in\n' - 'order to allow the addition of Abstract Base Classes (ABCs) ' - 'as\n' - '"virtual base classes" to any class or type (including ' - 'built-in\n' - 'types), including other ABCs.\n' - '\n' - 'class.__instancecheck__(self, instance)\n' - '\n' - ' Return true if *instance* should be considered a (direct ' - 'or\n' - ' indirect) instance of *class*. If defined, called to ' - 'implement\n' - ' "isinstance(instance, class)".\n' - '\n' - 'class.__subclasscheck__(self, subclass)\n' - '\n' - ' Return true if *subclass* should be considered a (direct ' - 'or\n' - ' indirect) subclass of *class*. If defined, called to ' - 'implement\n' - ' "issubclass(subclass, class)".\n' - '\n' - 'Note that these methods are looked up on the type ' - '(metaclass) of a\n' - 'class. They cannot be defined as class methods in the ' - 'actual class.\n' - 'This is consistent with the lookup of special methods that ' - 'are called\n' - 'on instances, only in this case the instance is itself a ' - 'class.\n' - '\n' - 'See also:\n' - '\n' - ' **PEP 3119** - Introducing Abstract Base Classes\n' - ' Includes the specification for customizing ' - '"isinstance()" and\n' - ' "issubclass()" behavior through "__instancecheck__()" ' - 'and\n' - ' "__subclasscheck__()", with motivation for this ' - 'functionality in\n' - ' the context of adding Abstract Base Classes (see the ' - '"abc"\n' - ' module) to the language.\n' - '\n' - '\n' - 'Emulating callable objects\n' - '==========================\n' - '\n' - 'object.__call__(self[, args...])\n' - '\n' - ' Called when the instance is "called" as a function; if ' - 'this method\n' - ' is defined, "x(arg1, arg2, ...)" is a shorthand for\n' - ' "x.__call__(arg1, arg2, ...)".\n' - '\n' - '\n' - 'Emulating container types\n' - '=========================\n' - '\n' - 'The following methods can be defined to implement container ' - 'objects.\n' - 'Containers usually are sequences (such as lists or tuples) ' - 'or mappings\n' - '(like dictionaries), but can represent other containers as ' - 'well. The\n' - 'first set of methods is used either to emulate a sequence or ' - 'to\n' - 'emulate a mapping; the difference is that for a sequence, ' - 'the\n' - 'allowable keys should be the integers *k* for which "0 <= k ' - '< N" where\n' - '*N* is the length of the sequence, or slice objects, which ' - 'define a\n' - 'range of items. (For backwards compatibility, the method\n' - '"__getslice__()" (see below) can also be defined to handle ' - 'simple, but\n' - 'not extended slices.) It is also recommended that mappings ' - 'provide the\n' - 'methods "keys()", "values()", "items()", "has_key()", ' - '"get()",\n' - '"clear()", "setdefault()", "iterkeys()", "itervalues()",\n' - '"iteritems()", "pop()", "popitem()", "copy()", and ' - '"update()" behaving\n' - "similar to those for Python's standard dictionary objects. " - 'The\n' - '"UserDict" module provides a "DictMixin" class to help ' - 'create those\n' - 'methods from a base set of "__getitem__()", ' - '"__setitem__()",\n' - '"__delitem__()", and "keys()". Mutable sequences should ' - 'provide\n' - 'methods "append()", "count()", "index()", "extend()", ' - '"insert()",\n' - '"pop()", "remove()", "reverse()" and "sort()", like Python ' - 'standard\n' - 'list objects. Finally, sequence types should implement ' - 'addition\n' - '(meaning concatenation) and multiplication (meaning ' - 'repetition) by\n' - 'defining the methods "__add__()", "__radd__()", ' - '"__iadd__()",\n' - '"__mul__()", "__rmul__()" and "__imul__()" described below; ' - 'they\n' - 'should not define "__coerce__()" or other numerical ' - 'operators. It is\n' - 'recommended that both mappings and sequences implement the\n' - '"__contains__()" method to allow efficient use of the "in" ' - 'operator;\n' - 'for mappings, "in" should be equivalent of "has_key()"; for ' - 'sequences,\n' - 'it should search through the values. It is further ' - 'recommended that\n' - 'both mappings and sequences implement the "__iter__()" ' - 'method to allow\n' - 'efficient iteration through the container; for mappings, ' - '"__iter__()"\n' - 'should be the same as "iterkeys()"; for sequences, it should ' - 'iterate\n' - 'through the values.\n' - '\n' - 'object.__len__(self)\n' - '\n' - ' Called to implement the built-in function "len()". ' - 'Should return\n' - ' the length of the object, an integer ">=" 0. Also, an ' - 'object that\n' - ' doesn\'t define a "__nonzero__()" method and whose ' - '"__len__()"\n' - ' method returns zero is considered to be false in a ' - 'Boolean context.\n' - '\n' - 'object.__getitem__(self, key)\n' - '\n' - ' Called to implement evaluation of "self[key]". For ' - 'sequence types,\n' - ' the accepted keys should be integers and slice objects. ' - 'Note that\n' - ' the special interpretation of negative indexes (if the ' - 'class wishes\n' - ' to emulate a sequence type) is up to the "__getitem__()" ' - 'method. If\n' - ' *key* is of an inappropriate type, "TypeError" may be ' - 'raised; if of\n' - ' a value outside the set of indexes for the sequence ' - '(after any\n' - ' special interpretation of negative values), "IndexError" ' - 'should be\n' - ' raised. For mapping types, if *key* is missing (not in ' - 'the\n' - ' container), "KeyError" should be raised.\n' - '\n' - ' Note: "for" loops expect that an "IndexError" will be ' - 'raised for\n' - ' illegal indexes to allow proper detection of the end of ' - 'the\n' - ' sequence.\n' - '\n' - 'object.__missing__(self, key)\n' - '\n' - ' Called by "dict"."__getitem__()" to implement "self[key]" ' - 'for dict\n' - ' subclasses when key is not in the dictionary.\n' - '\n' - 'object.__setitem__(self, key, value)\n' - '\n' - ' Called to implement assignment to "self[key]". Same note ' - 'as for\n' - ' "__getitem__()". This should only be implemented for ' - 'mappings if\n' - ' the objects support changes to the values for keys, or if ' - 'new keys\n' - ' can be added, or for sequences if elements can be ' - 'replaced. The\n' - ' same exceptions should be raised for improper *key* ' - 'values as for\n' - ' the "__getitem__()" method.\n' - '\n' - 'object.__delitem__(self, key)\n' - '\n' - ' Called to implement deletion of "self[key]". Same note ' - 'as for\n' - ' "__getitem__()". This should only be implemented for ' - 'mappings if\n' - ' the objects support removal of keys, or for sequences if ' - 'elements\n' - ' can be removed from the sequence. The same exceptions ' - 'should be\n' - ' raised for improper *key* values as for the ' - '"__getitem__()" method.\n' - '\n' - 'object.__iter__(self)\n' - '\n' - ' This method is called when an iterator is required for a ' - 'container.\n' - ' This method should return a new iterator object that can ' - 'iterate\n' - ' over all the objects in the container. For mappings, it ' - 'should\n' - ' iterate over the keys of the container, and should also ' - 'be made\n' - ' available as the method "iterkeys()".\n' - '\n' - ' Iterator objects also need to implement this method; they ' - 'are\n' - ' required to return themselves. For more information on ' - 'iterator\n' - ' objects, see Iterator Types.\n' - '\n' - 'object.__reversed__(self)\n' - '\n' - ' Called (if present) by the "reversed()" built-in to ' - 'implement\n' - ' reverse iteration. It should return a new iterator ' - 'object that\n' - ' iterates over all the objects in the container in reverse ' - 'order.\n' - '\n' - ' If the "__reversed__()" method is not provided, the ' - '"reversed()"\n' - ' built-in will fall back to using the sequence protocol ' - '("__len__()"\n' - ' and "__getitem__()"). Objects that support the sequence ' - 'protocol\n' - ' should only provide "__reversed__()" if they can provide ' - 'an\n' - ' implementation that is more efficient than the one ' - 'provided by\n' - ' "reversed()".\n' - '\n' - ' New in version 2.6.\n' - '\n' - 'The membership test operators ("in" and "not in") are ' - 'normally\n' - 'implemented as an iteration through a sequence. However, ' - 'container\n' - 'objects can supply the following special method with a more ' - 'efficient\n' - 'implementation, which also does not require the object be a ' - 'sequence.\n' - '\n' - 'object.__contains__(self, item)\n' - '\n' - ' Called to implement membership test operators. Should ' - 'return true\n' - ' if *item* is in *self*, false otherwise. For mapping ' - 'objects, this\n' - ' should consider the keys of the mapping rather than the ' - 'values or\n' - ' the key-item pairs.\n' - '\n' - ' For objects that don\'t define "__contains__()", the ' - 'membership test\n' - ' first tries iteration via "__iter__()", then the old ' - 'sequence\n' - ' iteration protocol via "__getitem__()", see this section ' - 'in the\n' - ' language reference.\n' - '\n' - '\n' - 'Additional methods for emulation of sequence types\n' - '==================================================\n' - '\n' - 'The following optional methods can be defined to further ' - 'emulate\n' - 'sequence objects. Immutable sequences methods should at ' - 'most only\n' - 'define "__getslice__()"; mutable sequences might define all ' - 'three\n' - 'methods.\n' - '\n' - 'object.__getslice__(self, i, j)\n' - '\n' - ' Deprecated since version 2.0: Support slice objects as ' - 'parameters\n' - ' to the "__getitem__()" method. (However, built-in types ' - 'in CPython\n' - ' currently still implement "__getslice__()". Therefore, ' - 'you have to\n' - ' override it in derived classes when implementing ' - 'slicing.)\n' - '\n' - ' Called to implement evaluation of "self[i:j]". The ' - 'returned object\n' - ' should be of the same type as *self*. Note that missing ' - '*i* or *j*\n' - ' in the slice expression are replaced by zero or ' - '"sys.maxsize",\n' - ' respectively. If negative indexes are used in the slice, ' - 'the\n' - ' length of the sequence is added to that index. If the ' - 'instance does\n' - ' not implement the "__len__()" method, an "AttributeError" ' - 'is\n' - ' raised. No guarantee is made that indexes adjusted this ' - 'way are not\n' - ' still negative. Indexes which are greater than the ' - 'length of the\n' - ' sequence are not modified. If no "__getslice__()" is ' - 'found, a slice\n' - ' object is created instead, and passed to "__getitem__()" ' - 'instead.\n' - '\n' - 'object.__setslice__(self, i, j, sequence)\n' - '\n' - ' Called to implement assignment to "self[i:j]". Same notes ' - 'for *i*\n' - ' and *j* as for "__getslice__()".\n' - '\n' - ' This method is deprecated. If no "__setslice__()" is ' - 'found, or for\n' - ' extended slicing of the form "self[i:j:k]", a slice ' - 'object is\n' - ' created, and passed to "__setitem__()", instead of ' - '"__setslice__()"\n' - ' being called.\n' - '\n' - 'object.__delslice__(self, i, j)\n' - '\n' - ' Called to implement deletion of "self[i:j]". Same notes ' - 'for *i* and\n' - ' *j* as for "__getslice__()". This method is deprecated. ' - 'If no\n' - ' "__delslice__()" is found, or for extended slicing of the ' - 'form\n' - ' "self[i:j:k]", a slice object is created, and passed to\n' - ' "__delitem__()", instead of "__delslice__()" being ' - 'called.\n' - '\n' - 'Notice that these methods are only invoked when a single ' - 'slice with a\n' - 'single colon is used, and the slice method is available. ' - 'For slice\n' - 'operations involving extended slice notation, or in absence ' - 'of the\n' - 'slice methods, "__getitem__()", "__setitem__()" or ' - '"__delitem__()" is\n' - 'called with a slice object as argument.\n' - '\n' - 'The following example demonstrate how to make your program ' - 'or module\n' - 'compatible with earlier versions of Python (assuming that ' - 'methods\n' - '"__getitem__()", "__setitem__()" and "__delitem__()" support ' - 'slice\n' - 'objects as arguments):\n' - '\n' - ' class MyClass:\n' - ' ...\n' - ' def __getitem__(self, index):\n' - ' ...\n' - ' def __setitem__(self, index, value):\n' - ' ...\n' - ' def __delitem__(self, index):\n' - ' ...\n' - '\n' - ' if sys.version_info < (2, 0):\n' - " # They won't be defined if version is at least " - '2.0 final\n' - '\n' - ' def __getslice__(self, i, j):\n' - ' return self[max(0, i):max(0, j):]\n' - ' def __setslice__(self, i, j, seq):\n' - ' self[max(0, i):max(0, j):] = seq\n' - ' def __delslice__(self, i, j):\n' - ' del self[max(0, i):max(0, j):]\n' - ' ...\n' - '\n' - 'Note the calls to "max()"; these are necessary because of ' - 'the handling\n' - 'of negative indices before the "__*slice__()" methods are ' - 'called.\n' - 'When negative indexes are used, the "__*item__()" methods ' - 'receive them\n' - 'as provided, but the "__*slice__()" methods get a "cooked" ' - 'form of the\n' - 'index values. For each negative index value, the length of ' - 'the\n' - 'sequence is added to the index before calling the method ' - '(which may\n' - 'still result in a negative index); this is the customary ' - 'handling of\n' - 'negative indexes by the built-in sequence types, and the ' - '"__*item__()"\n' - 'methods are expected to do this as well. However, since ' - 'they should\n' - 'already be doing that, negative indexes cannot be passed in; ' - 'they must\n' - 'be constrained to the bounds of the sequence before being ' - 'passed to\n' - 'the "__*item__()" methods. Calling "max(0, i)" conveniently ' - 'returns\n' - 'the proper value.\n' - '\n' - '\n' - 'Emulating numeric types\n' - '=======================\n' - '\n' - 'The following methods can be defined to emulate numeric ' - 'objects.\n' - 'Methods corresponding to operations that are not supported ' - 'by the\n' - 'particular kind of number implemented (e.g., bitwise ' - 'operations for\n' - 'non-integral numbers) should be left undefined.\n' - '\n' - 'object.__add__(self, other)\n' - 'object.__sub__(self, other)\n' - 'object.__mul__(self, other)\n' - 'object.__floordiv__(self, other)\n' - 'object.__mod__(self, other)\n' - 'object.__divmod__(self, other)\n' - 'object.__pow__(self, other[, modulo])\n' - 'object.__lshift__(self, other)\n' - 'object.__rshift__(self, other)\n' - 'object.__and__(self, other)\n' - 'object.__xor__(self, other)\n' - 'object.__or__(self, other)\n' - '\n' - ' These methods are called to implement the binary ' - 'arithmetic\n' - ' operations ("+", "-", "*", "//", "%", "divmod()", ' - '"pow()", "**",\n' - ' "<<", ">>", "&", "^", "|"). For instance, to evaluate ' - 'the\n' - ' expression "x + y", where *x* is an instance of a class ' - 'that has an\n' - ' "__add__()" method, "x.__add__(y)" is called. The ' - '"__divmod__()"\n' - ' method should be the equivalent to using "__floordiv__()" ' - 'and\n' - ' "__mod__()"; it should not be related to "__truediv__()" ' - '(described\n' - ' below). Note that "__pow__()" should be defined to ' - 'accept an\n' - ' optional third argument if the ternary version of the ' - 'built-in\n' - ' "pow()" function is to be supported.\n' - '\n' - ' If one of those methods does not support the operation ' - 'with the\n' - ' supplied arguments, it should return "NotImplemented".\n' - '\n' - 'object.__div__(self, other)\n' - 'object.__truediv__(self, other)\n' - '\n' - ' The division operator ("/") is implemented by these ' - 'methods. The\n' - ' "__truediv__()" method is used when "__future__.division" ' - 'is in\n' - ' effect, otherwise "__div__()" is used. If only one of ' - 'these two\n' - ' methods is defined, the object will not support division ' - 'in the\n' - ' alternate context; "TypeError" will be raised instead.\n' - '\n' - 'object.__radd__(self, other)\n' - 'object.__rsub__(self, other)\n' - 'object.__rmul__(self, other)\n' - 'object.__rdiv__(self, other)\n' - 'object.__rtruediv__(self, other)\n' - 'object.__rfloordiv__(self, other)\n' - 'object.__rmod__(self, other)\n' - 'object.__rdivmod__(self, other)\n' - 'object.__rpow__(self, other)\n' - 'object.__rlshift__(self, other)\n' - 'object.__rrshift__(self, other)\n' - 'object.__rand__(self, other)\n' - 'object.__rxor__(self, other)\n' - 'object.__ror__(self, other)\n' - '\n' - ' These methods are called to implement the binary ' - 'arithmetic\n' - ' operations ("+", "-", "*", "/", "%", "divmod()", "pow()", ' - '"**",\n' - ' "<<", ">>", "&", "^", "|") with reflected (swapped) ' - 'operands.\n' - ' These functions are only called if the left operand does ' - 'not\n' - ' support the corresponding operation and the operands are ' - 'of\n' - ' different types. [2] For instance, to evaluate the ' - 'expression "x -\n' - ' y", where *y* is an instance of a class that has an ' - '"__rsub__()"\n' - ' method, "y.__rsub__(x)" is called if "x.__sub__(y)" ' - 'returns\n' - ' *NotImplemented*.\n' - '\n' - ' Note that ternary "pow()" will not try calling ' - '"__rpow__()" (the\n' - ' coercion rules would become too complicated).\n' - '\n' - " Note: If the right operand's type is a subclass of the " - 'left\n' - " operand's type and that subclass provides the reflected " - 'method\n' - ' for the operation, this method will be called before ' - 'the left\n' - " operand's non-reflected method. This behavior allows " - 'subclasses\n' - " to override their ancestors' operations.\n" - '\n' - 'object.__iadd__(self, other)\n' - 'object.__isub__(self, other)\n' - 'object.__imul__(self, other)\n' - 'object.__idiv__(self, other)\n' - 'object.__itruediv__(self, other)\n' - 'object.__ifloordiv__(self, other)\n' - 'object.__imod__(self, other)\n' - 'object.__ipow__(self, other[, modulo])\n' - 'object.__ilshift__(self, other)\n' - 'object.__irshift__(self, other)\n' - 'object.__iand__(self, other)\n' - 'object.__ixor__(self, other)\n' - 'object.__ior__(self, other)\n' - '\n' - ' These methods are called to implement the augmented ' - 'arithmetic\n' - ' assignments ("+=", "-=", "*=", "/=", "//=", "%=", "**=", ' - '"<<=",\n' - ' ">>=", "&=", "^=", "|="). These methods should attempt ' - 'to do the\n' - ' operation in-place (modifying *self*) and return the ' - 'result (which\n' - ' could be, but does not have to be, *self*). If a ' - 'specific method\n' - ' is not defined, the augmented assignment falls back to ' - 'the normal\n' - ' methods. For instance, to execute the statement "x += ' - 'y", where\n' - ' *x* is an instance of a class that has an "__iadd__()" ' - 'method,\n' - ' "x.__iadd__(y)" is called. If *x* is an instance of a ' - 'class that\n' - ' does not define a "__iadd__()" method, "x.__add__(y)" ' - 'and\n' - ' "y.__radd__(x)" are considered, as with the evaluation of ' - '"x + y".\n' - '\n' - 'object.__neg__(self)\n' - 'object.__pos__(self)\n' - 'object.__abs__(self)\n' - 'object.__invert__(self)\n' - '\n' - ' Called to implement the unary arithmetic operations ("-", ' - '"+",\n' - ' "abs()" and "~").\n' - '\n' - 'object.__complex__(self)\n' - 'object.__int__(self)\n' - 'object.__long__(self)\n' - 'object.__float__(self)\n' - '\n' - ' Called to implement the built-in functions "complex()", ' - '"int()",\n' - ' "long()", and "float()". Should return a value of the ' - 'appropriate\n' - ' type.\n' - '\n' - 'object.__oct__(self)\n' - 'object.__hex__(self)\n' - '\n' - ' Called to implement the built-in functions "oct()" and ' - '"hex()".\n' - ' Should return a string value.\n' - '\n' - 'object.__index__(self)\n' - '\n' - ' Called to implement "operator.index()". Also called ' - 'whenever\n' - ' Python needs an integer object (such as in slicing). ' - 'Must return\n' - ' an integer (int or long).\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'object.__coerce__(self, other)\n' - '\n' - ' Called to implement "mixed-mode" numeric arithmetic. ' - 'Should either\n' - ' return a 2-tuple containing *self* and *other* converted ' - 'to a\n' - ' common numeric type, or "None" if conversion is ' - 'impossible. When\n' - ' the common type would be the type of "other", it is ' - 'sufficient to\n' - ' return "None", since the interpreter will also ask the ' - 'other object\n' - ' to attempt a coercion (but sometimes, if the ' - 'implementation of the\n' - ' other type cannot be changed, it is useful to do the ' - 'conversion to\n' - ' the other type here). A return value of "NotImplemented" ' - 'is\n' - ' equivalent to returning "None".\n' - '\n' - '\n' - 'Coercion rules\n' - '==============\n' - '\n' - 'This section used to document the rules for coercion. As ' - 'the language\n' - 'has evolved, the coercion rules have become hard to ' - 'document\n' - 'precisely; documenting what one version of one particular\n' - 'implementation does is undesirable. Instead, here are some ' - 'informal\n' - 'guidelines regarding coercion. In Python 3, coercion will ' - 'not be\n' - 'supported.\n' - '\n' - '* If the left operand of a % operator is a string or Unicode ' - 'object,\n' - ' no coercion takes place and the string formatting ' - 'operation is\n' - ' invoked instead.\n' - '\n' - '* It is no longer recommended to define a coercion ' - 'operation. Mixed-\n' - " mode operations on types that don't define coercion pass " - 'the\n' - ' original arguments to the operation.\n' - '\n' - '* New-style classes (those derived from "object") never ' - 'invoke the\n' - ' "__coerce__()" method in response to a binary operator; ' - 'the only\n' - ' time "__coerce__()" is invoked is when the built-in ' - 'function\n' - ' "coerce()" is called.\n' - '\n' - '* For most intents and purposes, an operator that returns\n' - ' "NotImplemented" is treated the same as one that is not ' - 'implemented\n' - ' at all.\n' - '\n' - '* Below, "__op__()" and "__rop__()" are used to signify the ' - 'generic\n' - ' method names corresponding to an operator; "__iop__()" is ' - 'used for\n' - ' the corresponding in-place operator. For example, for the ' - 'operator\n' - ' \'"+"\', "__add__()" and "__radd__()" are used for the ' - 'left and right\n' - ' variant of the binary operator, and "__iadd__()" for the ' - 'in-place\n' - ' variant.\n' - '\n' - '* For objects *x* and *y*, first "x.__op__(y)" is tried. If ' - 'this is\n' - ' not implemented or returns "NotImplemented", ' - '"y.__rop__(x)" is\n' - ' tried. If this is also not implemented or returns ' - '"NotImplemented",\n' - ' a "TypeError" exception is raised. But see the following ' - 'exception:\n' - '\n' - '* Exception to the previous item: if the left operand is an ' - 'instance\n' - ' of a built-in type or a new-style class, and the right ' - 'operand is an\n' - ' instance of a proper subclass of that type or class and ' - 'overrides\n' - ' the base\'s "__rop__()" method, the right operand\'s ' - '"__rop__()"\n' - ' method is tried *before* the left operand\'s "__op__()" ' - 'method.\n' - '\n' - ' This is done so that a subclass can completely override ' - 'binary\n' - ' operators. Otherwise, the left operand\'s "__op__()" ' - 'method would\n' - ' always accept the right operand: when an instance of a ' - 'given class\n' - ' is expected, an instance of a subclass of that class is ' - 'always\n' - ' acceptable.\n' - '\n' - '* When either operand type defines a coercion, this coercion ' - 'is\n' - ' called before that type\'s "__op__()" or "__rop__()" ' - 'method is\n' - ' called, but no sooner. If the coercion returns an object ' - 'of a\n' - ' different type for the operand whose coercion is invoked, ' - 'part of\n' - ' the process is redone using the new object.\n' - '\n' - '* When an in-place operator (like \'"+="\') is used, if the ' - 'left\n' - ' operand implements "__iop__()", it is invoked without any ' - 'coercion.\n' - ' When the operation falls back to "__op__()" and/or ' - '"__rop__()", the\n' - ' normal coercion rules apply.\n' - '\n' - '* In "x + y", if *x* is a sequence that implements sequence\n' - ' concatenation, sequence concatenation is invoked.\n' - '\n' - '* In "x * y", if one operand is a sequence that implements ' - 'sequence\n' - ' repetition, and the other is an integer ("int" or "long"), ' - 'sequence\n' - ' repetition is invoked.\n' - '\n' - '* Rich comparisons (implemented by methods "__eq__()" and so ' - 'on)\n' - ' never use coercion. Three-way comparison (implemented by\n' - ' "__cmp__()") does use coercion under the same conditions ' - 'as other\n' - ' binary operations use it.\n' - '\n' - '* In the current implementation, the built-in numeric types ' - '"int",\n' - ' "long", "float", and "complex" do not use coercion. All ' - 'these types\n' - ' implement a "__coerce__()" method, for use by the ' - 'built-in\n' - ' "coerce()" function.\n' - '\n' - ' Changed in version 2.7: The complex type no longer makes ' - 'implicit\n' - ' calls to the "__coerce__()" method for mixed-type binary ' - 'arithmetic\n' - ' operations.\n' - '\n' - '\n' - 'With Statement Context Managers\n' - '===============================\n' - '\n' - 'New in version 2.5.\n' - '\n' - 'A *context manager* is an object that defines the runtime ' - 'context to\n' - 'be established when executing a "with" statement. The ' - 'context manager\n' - 'handles the entry into, and the exit from, the desired ' - 'runtime context\n' - 'for the execution of the block of code. Context managers ' - 'are normally\n' - 'invoked using the "with" statement (described in section The ' - 'with\n' - 'statement), but can also be used by directly invoking their ' - 'methods.\n' - '\n' - 'Typical uses of context managers include saving and ' - 'restoring various\n' - 'kinds of global state, locking and unlocking resources, ' - 'closing opened\n' - 'files, etc.\n' - '\n' - 'For more information on context managers, see Context ' - 'Manager Types.\n' - '\n' - 'object.__enter__(self)\n' - '\n' - ' Enter the runtime context related to this object. The ' - '"with"\n' - " statement will bind this method's return value to the " - 'target(s)\n' - ' specified in the "as" clause of the statement, if any.\n' - '\n' - 'object.__exit__(self, exc_type, exc_value, traceback)\n' - '\n' - ' Exit the runtime context related to this object. The ' - 'parameters\n' - ' describe the exception that caused the context to be ' - 'exited. If the\n' - ' context was exited without an exception, all three ' - 'arguments will\n' - ' be "None".\n' - '\n' - ' If an exception is supplied, and the method wishes to ' - 'suppress the\n' - ' exception (i.e., prevent it from being propagated), it ' - 'should\n' - ' return a true value. Otherwise, the exception will be ' - 'processed\n' - ' normally upon exit from this method.\n' - '\n' - ' Note that "__exit__()" methods should not reraise the ' - 'passed-in\n' - " exception; this is the caller's responsibility.\n" - '\n' - 'See also:\n' - '\n' - ' **PEP 343** - The "with" statement\n' - ' The specification, background, and examples for the ' - 'Python "with"\n' - ' statement.\n' - '\n' - '\n' - 'Special method lookup for old-style classes\n' - '===========================================\n' - '\n' - 'For old-style classes, special methods are always looked up ' - 'in exactly\n' - 'the same way as any other method or attribute. This is the ' - 'case\n' - 'regardless of whether the method is being looked up ' - 'explicitly as in\n' - '"x.__getitem__(i)" or implicitly as in "x[i]".\n' - '\n' - 'This behaviour means that special methods may exhibit ' - 'different\n' - 'behaviour for different instances of a single old-style ' - 'class if the\n' - 'appropriate special attributes are set differently:\n' - '\n' - ' >>> class C:\n' - ' ... pass\n' - ' ...\n' - ' >>> c1 = C()\n' - ' >>> c2 = C()\n' - ' >>> c1.__len__ = lambda: 5\n' - ' >>> c2.__len__ = lambda: 9\n' - ' >>> len(c1)\n' - ' 5\n' - ' >>> len(c2)\n' - ' 9\n' - '\n' - '\n' - 'Special method lookup for new-style classes\n' - '===========================================\n' - '\n' - 'For new-style classes, implicit invocations of special ' - 'methods are\n' - "only guaranteed to work correctly if defined on an object's " - 'type, not\n' - "in the object's instance dictionary. That behaviour is the " - 'reason why\n' - 'the following code raises an exception (unlike the ' - 'equivalent example\n' - 'with old-style classes):\n' - '\n' - ' >>> class C(object):\n' - ' ... pass\n' - ' ...\n' - ' >>> c = C()\n' - ' >>> c.__len__ = lambda: 5\n' - ' >>> len(c)\n' - ' Traceback (most recent call last):\n' - ' File "", line 1, in \n' - " TypeError: object of type 'C' has no len()\n" - '\n' - 'The rationale behind this behaviour lies with a number of ' - 'special\n' - 'methods such as "__hash__()" and "__repr__()" that are ' - 'implemented by\n' - 'all objects, including type objects. If the implicit lookup ' - 'of these\n' - 'methods used the conventional lookup process, they would ' - 'fail when\n' - 'invoked on the type object itself:\n' - '\n' - ' >>> 1 .__hash__() == hash(1)\n' - ' True\n' - ' >>> int.__hash__() == hash(int)\n' - ' Traceback (most recent call last):\n' - ' File "", line 1, in \n' - " TypeError: descriptor '__hash__' of 'int' object needs an " - 'argument\n' - '\n' - 'Incorrectly attempting to invoke an unbound method of a ' - 'class in this\n' - "way is sometimes referred to as 'metaclass confusion', and " - 'is avoided\n' - 'by bypassing the instance when looking up special methods:\n' - '\n' - ' >>> type(1).__hash__(1) == hash(1)\n' - ' True\n' - ' >>> type(int).__hash__(int) == hash(int)\n' - ' True\n' - '\n' - 'In addition to bypassing any instance attributes in the ' - 'interest of\n' - 'correctness, implicit special method lookup generally also ' - 'bypasses\n' - 'the "__getattribute__()" method even of the object\'s ' - 'metaclass:\n' - '\n' - ' >>> class Meta(type):\n' - ' ... def __getattribute__(*args):\n' - ' ... print "Metaclass getattribute invoked"\n' - ' ... return type.__getattribute__(*args)\n' - ' ...\n' - ' >>> class C(object):\n' - ' ... __metaclass__ = Meta\n' - ' ... def __len__(self):\n' - ' ... return 10\n' - ' ... def __getattribute__(*args):\n' - ' ... print "Class getattribute invoked"\n' - ' ... return object.__getattribute__(*args)\n' - ' ...\n' - ' >>> c = C()\n' - ' >>> c.__len__() # Explicit lookup via ' - 'instance\n' - ' Class getattribute invoked\n' - ' 10\n' - ' >>> type(c).__len__(c) # Explicit lookup via ' - 'type\n' - ' Metaclass getattribute invoked\n' - ' 10\n' - ' >>> len(c) # Implicit lookup\n' - ' 10\n' - '\n' - 'Bypassing the "__getattribute__()" machinery in this fashion ' - 'provides\n' - 'significant scope for speed optimisations within the ' - 'interpreter, at\n' - 'the cost of some flexibility in the handling of special ' - 'methods (the\n' - 'special method *must* be set on the class object itself in ' - 'order to be\n' - 'consistently invoked by the interpreter).\n' - '\n' - '-[ Footnotes ]-\n' - '\n' - "[1] It *is* possible in some cases to change an object's " - 'type,\n' - " under certain controlled conditions. It generally isn't " - 'a good\n' - ' idea though, since it can lead to some very strange ' - 'behaviour if\n' - ' it is handled incorrectly.\n' - '\n' - '[2] For operands of the same type, it is assumed that if the ' - 'non-\n' - ' reflected method (such as "__add__()") fails the ' - 'operation is not\n' - ' supported, which is why the reflected method is not ' - 'called.\n', - 'string-methods': '\n' - 'String Methods\n' - '**************\n' - '\n' - 'Below are listed the string methods which both 8-bit ' - 'strings and\n' - 'Unicode objects support. Some of them are also available ' - 'on\n' - '"bytearray" objects.\n' - '\n' - "In addition, Python's strings support the sequence type " - 'methods\n' - 'described in the Sequence Types --- str, unicode, list, ' - 'tuple,\n' - 'bytearray, buffer, xrange section. To output formatted ' - 'strings use\n' - 'template strings or the "%" operator described in the ' - 'String\n' - 'Formatting Operations section. Also, see the "re" module ' - 'for string\n' - 'functions based on regular expressions.\n' - '\n' - 'str.capitalize()\n' - '\n' - ' Return a copy of the string with its first character ' - 'capitalized\n' - ' and the rest lowercased.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.center(width[, fillchar])\n' - '\n' - ' Return centered in a string of length *width*. Padding ' - 'is done\n' - ' using the specified *fillchar* (default is a space).\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* ' - 'argument.\n' - '\n' - 'str.count(sub[, start[, end]])\n' - '\n' - ' Return the number of non-overlapping occurrences of ' - 'substring *sub*\n' - ' in the range [*start*, *end*]. Optional arguments ' - '*start* and\n' - ' *end* are interpreted as in slice notation.\n' - '\n' - 'str.decode([encoding[, errors]])\n' - '\n' - ' Decodes the string using the codec registered for ' - '*encoding*.\n' - ' *encoding* defaults to the default string encoding. ' - '*errors* may\n' - ' be given to set a different error handling scheme. The ' - 'default is\n' - ' "\'strict\'", meaning that encoding errors raise ' - '"UnicodeError".\n' - ' Other possible values are "\'ignore\'", "\'replace\'" ' - 'and any other\n' - ' name registered via "codecs.register_error()", see ' - 'section Codec\n' - ' Base Classes.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' Changed in version 2.3: Support for other error ' - 'handling schemes\n' - ' added.\n' - '\n' - ' Changed in version 2.7: Support for keyword arguments ' - 'added.\n' - '\n' - 'str.encode([encoding[, errors]])\n' - '\n' - ' Return an encoded version of the string. Default ' - 'encoding is the\n' - ' current default string encoding. *errors* may be given ' - 'to set a\n' - ' different error handling scheme. The default for ' - '*errors* is\n' - ' "\'strict\'", meaning that encoding errors raise a ' - '"UnicodeError".\n' - ' Other possible values are "\'ignore\'", "\'replace\'",\n' - ' "\'xmlcharrefreplace\'", "\'backslashreplace\'" and any ' - 'other name\n' - ' registered via "codecs.register_error()", see section ' - 'Codec Base\n' - ' Classes. For a list of possible encodings, see section ' - 'Standard\n' - ' Encodings.\n' - '\n' - ' New in version 2.0.\n' - '\n' - ' Changed in version 2.3: Support for ' - '"\'xmlcharrefreplace\'" and\n' - ' "\'backslashreplace\'" and other error handling schemes ' - 'added.\n' - '\n' - ' Changed in version 2.7: Support for keyword arguments ' - 'added.\n' - '\n' - 'str.endswith(suffix[, start[, end]])\n' - '\n' - ' Return "True" if the string ends with the specified ' - '*suffix*,\n' - ' otherwise return "False". *suffix* can also be a tuple ' - 'of suffixes\n' - ' to look for. With optional *start*, test beginning at ' - 'that\n' - ' position. With optional *end*, stop comparing at that ' - 'position.\n' - '\n' - ' Changed in version 2.5: Accept tuples as *suffix*.\n' - '\n' - 'str.expandtabs([tabsize])\n' - '\n' - ' Return a copy of the string where all tab characters ' - 'are replaced\n' - ' by one or more spaces, depending on the current column ' - 'and the\n' - ' given tab size. Tab positions occur every *tabsize* ' - 'characters\n' - ' (default is 8, giving tab positions at columns 0, 8, 16 ' - 'and so on).\n' - ' To expand the string, the current column is set to zero ' - 'and the\n' - ' string is examined character by character. If the ' - 'character is a\n' - ' tab ("\\t"), one or more space characters are inserted ' - 'in the result\n' - ' until the current column is equal to the next tab ' - 'position. (The\n' - ' tab character itself is not copied.) If the character ' - 'is a newline\n' - ' ("\\n") or return ("\\r"), it is copied and the current ' - 'column is\n' - ' reset to zero. Any other character is copied unchanged ' - 'and the\n' - ' current column is incremented by one regardless of how ' - 'the\n' - ' character is represented when printed.\n' - '\n' - " >>> '01\\t012\\t0123\\t01234'.expandtabs()\n" - " '01 012 0123 01234'\n" - " >>> '01\\t012\\t0123\\t01234'.expandtabs(4)\n" - " '01 012 0123 01234'\n" - '\n' - 'str.find(sub[, start[, end]])\n' - '\n' - ' Return the lowest index in the string where substring ' - '*sub* is\n' - ' found within the slice "s[start:end]". Optional ' - 'arguments *start*\n' - ' and *end* are interpreted as in slice notation. Return ' - '"-1" if\n' - ' *sub* is not found.\n' - '\n' - ' Note: The "find()" method should be used only if you ' - 'need to know\n' - ' the position of *sub*. To check if *sub* is a ' - 'substring or not,\n' - ' use the "in" operator:\n' - '\n' - " >>> 'Py' in 'Python'\n" - ' True\n' - '\n' - 'str.format(*args, **kwargs)\n' - '\n' - ' Perform a string formatting operation. The string on ' - 'which this\n' - ' method is called can contain literal text or ' - 'replacement fields\n' - ' delimited by braces "{}". Each replacement field ' - 'contains either\n' - ' the numeric index of a positional argument, or the name ' - 'of a\n' - ' keyword argument. Returns a copy of the string where ' - 'each\n' - ' replacement field is replaced with the string value of ' - 'the\n' - ' corresponding argument.\n' - '\n' - ' >>> "The sum of 1 + 2 is {0}".format(1+2)\n' - " 'The sum of 1 + 2 is 3'\n" - '\n' - ' See Format String Syntax for a description of the ' - 'various\n' - ' formatting options that can be specified in format ' - 'strings.\n' - '\n' - ' This method of string formatting is the new standard in ' - 'Python 3,\n' - ' and should be preferred to the "%" formatting described ' - 'in String\n' - ' Formatting Operations in new code.\n' - '\n' - ' New in version 2.6.\n' - '\n' - 'str.index(sub[, start[, end]])\n' - '\n' - ' Like "find()", but raise "ValueError" when the ' - 'substring is not\n' - ' found.\n' - '\n' - 'str.isalnum()\n' - '\n' - ' Return true if all characters in the string are ' - 'alphanumeric and\n' - ' there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isalpha()\n' - '\n' - ' Return true if all characters in the string are ' - 'alphabetic and\n' - ' there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isdigit()\n' - '\n' - ' Return true if all characters in the string are digits ' - 'and there is\n' - ' at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.islower()\n' - '\n' - ' Return true if all cased characters [4] in the string ' - 'are lowercase\n' - ' and there is at least one cased character, false ' - 'otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isspace()\n' - '\n' - ' Return true if there are only whitespace characters in ' - 'the string\n' - ' and there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.istitle()\n' - '\n' - ' Return true if the string is a titlecased string and ' - 'there is at\n' - ' least one character, for example uppercase characters ' - 'may only\n' - ' follow uncased characters and lowercase characters only ' - 'cased ones.\n' - ' Return false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isupper()\n' - '\n' - ' Return true if all cased characters [4] in the string ' - 'are uppercase\n' - ' and there is at least one cased character, false ' - 'otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.join(iterable)\n' - '\n' - ' Return a string which is the concatenation of the ' - 'strings in the\n' - ' *iterable* *iterable*. The separator between elements ' - 'is the\n' - ' string providing this method.\n' - '\n' - 'str.ljust(width[, fillchar])\n' - '\n' - ' Return the string left justified in a string of length ' - '*width*.\n' - ' Padding is done using the specified *fillchar* (default ' - 'is a\n' - ' space). The original string is returned if *width* is ' - 'less than or\n' - ' equal to "len(s)".\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* ' - 'argument.\n' - '\n' - 'str.lower()\n' - '\n' - ' Return a copy of the string with all the cased ' - 'characters [4]\n' - ' converted to lowercase.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.lstrip([chars])\n' - '\n' - ' Return a copy of the string with leading characters ' - 'removed. The\n' - ' *chars* argument is a string specifying the set of ' - 'characters to be\n' - ' removed. If omitted or "None", the *chars* argument ' - 'defaults to\n' - ' removing whitespace. The *chars* argument is not a ' - 'prefix; rather,\n' - ' all combinations of its values are stripped:\n' - '\n' - " >>> ' spacious '.lstrip()\n" - " 'spacious '\n" - " >>> 'www.example.com'.lstrip('cmowz.')\n" - " 'example.com'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* ' - 'argument.\n' - '\n' - 'str.partition(sep)\n' - '\n' - ' Split the string at the first occurrence of *sep*, and ' - 'return a\n' - ' 3-tuple containing the part before the separator, the ' - 'separator\n' - ' itself, and the part after the separator. If the ' - 'separator is not\n' - ' found, return a 3-tuple containing the string itself, ' - 'followed by\n' - ' two empty strings.\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'str.replace(old, new[, count])\n' - '\n' - ' Return a copy of the string with all occurrences of ' - 'substring *old*\n' - ' replaced by *new*. If the optional argument *count* is ' - 'given, only\n' - ' the first *count* occurrences are replaced.\n' - '\n' - 'str.rfind(sub[, start[, end]])\n' - '\n' - ' Return the highest index in the string where substring ' - '*sub* is\n' - ' found, such that *sub* is contained within ' - '"s[start:end]".\n' - ' Optional arguments *start* and *end* are interpreted as ' - 'in slice\n' - ' notation. Return "-1" on failure.\n' - '\n' - 'str.rindex(sub[, start[, end]])\n' - '\n' - ' Like "rfind()" but raises "ValueError" when the ' - 'substring *sub* is\n' - ' not found.\n' - '\n' - 'str.rjust(width[, fillchar])\n' - '\n' - ' Return the string right justified in a string of length ' - '*width*.\n' - ' Padding is done using the specified *fillchar* (default ' - 'is a\n' - ' space). The original string is returned if *width* is ' - 'less than or\n' - ' equal to "len(s)".\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* ' - 'argument.\n' - '\n' - 'str.rpartition(sep)\n' - '\n' - ' Split the string at the last occurrence of *sep*, and ' - 'return a\n' - ' 3-tuple containing the part before the separator, the ' - 'separator\n' - ' itself, and the part after the separator. If the ' - 'separator is not\n' - ' found, return a 3-tuple containing two empty strings, ' - 'followed by\n' - ' the string itself.\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'str.rsplit([sep[, maxsplit]])\n' - '\n' - ' Return a list of the words in the string, using *sep* ' - 'as the\n' - ' delimiter string. If *maxsplit* is given, at most ' - '*maxsplit* splits\n' - ' are done, the *rightmost* ones. If *sep* is not ' - 'specified or\n' - ' "None", any whitespace string is a separator. Except ' - 'for splitting\n' - ' from the right, "rsplit()" behaves like "split()" which ' - 'is\n' - ' described in detail below.\n' - '\n' - ' New in version 2.4.\n' - '\n' - 'str.rstrip([chars])\n' - '\n' - ' Return a copy of the string with trailing characters ' - 'removed. The\n' - ' *chars* argument is a string specifying the set of ' - 'characters to be\n' - ' removed. If omitted or "None", the *chars* argument ' - 'defaults to\n' - ' removing whitespace. The *chars* argument is not a ' - 'suffix; rather,\n' - ' all combinations of its values are stripped:\n' - '\n' - " >>> ' spacious '.rstrip()\n" - " ' spacious'\n" - " >>> 'mississippi'.rstrip('ipz')\n" - " 'mississ'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* ' - 'argument.\n' - '\n' - 'str.split([sep[, maxsplit]])\n' - '\n' - ' Return a list of the words in the string, using *sep* ' - 'as the\n' - ' delimiter string. If *maxsplit* is given, at most ' - '*maxsplit*\n' - ' splits are done (thus, the list will have at most ' - '"maxsplit+1"\n' - ' elements). If *maxsplit* is not specified or "-1", ' - 'then there is\n' - ' no limit on the number of splits (all possible splits ' - 'are made).\n' - '\n' - ' If *sep* is given, consecutive delimiters are not ' - 'grouped together\n' - ' and are deemed to delimit empty strings (for example,\n' - ' "\'1,,2\'.split(\',\')" returns "[\'1\', \'\', ' - '\'2\']"). The *sep* argument\n' - ' may consist of multiple characters (for example,\n' - ' "\'1<>2<>3\'.split(\'<>\')" returns "[\'1\', \'2\', ' - '\'3\']"). Splitting an\n' - ' empty string with a specified separator returns ' - '"[\'\']".\n' - '\n' - ' If *sep* is not specified or is "None", a different ' - 'splitting\n' - ' algorithm is applied: runs of consecutive whitespace ' - 'are regarded\n' - ' as a single separator, and the result will contain no ' - 'empty strings\n' - ' at the start or end if the string has leading or ' - 'trailing\n' - ' whitespace. Consequently, splitting an empty string or ' - 'a string\n' - ' consisting of just whitespace with a "None" separator ' - 'returns "[]".\n' - '\n' - ' For example, "\' 1 2 3 \'.split()" returns "[\'1\', ' - '\'2\', \'3\']", and\n' - ' "\' 1 2 3 \'.split(None, 1)" returns "[\'1\', ' - '\'2 3 \']".\n' - '\n' - 'str.splitlines([keepends])\n' - '\n' - ' Return a list of the lines in the string, breaking at ' - 'line\n' - ' boundaries. This method uses the *universal newlines* ' - 'approach to\n' - ' splitting lines. Line breaks are not included in the ' - 'resulting list\n' - ' unless *keepends* is given and true.\n' - '\n' - ' For example, "\'ab c\\n\\nde ' - 'fg\\rkl\\r\\n\'.splitlines()" returns "[\'ab\n' - ' c\', \'\', \'de fg\', \'kl\']", while the same call ' - 'with\n' - ' "splitlines(True)" returns "[\'ab c\\n\', \'\\n\', \'de ' - 'fg\\r\', \'kl\\r\\n\']".\n' - '\n' - ' Unlike "split()" when a delimiter string *sep* is ' - 'given, this\n' - ' method returns an empty list for the empty string, and ' - 'a terminal\n' - ' line break does not result in an extra line.\n' - '\n' - 'str.startswith(prefix[, start[, end]])\n' - '\n' - ' Return "True" if string starts with the *prefix*, ' - 'otherwise return\n' - ' "False". *prefix* can also be a tuple of prefixes to ' - 'look for.\n' - ' With optional *start*, test string beginning at that ' - 'position.\n' - ' With optional *end*, stop comparing string at that ' - 'position.\n' - '\n' - ' Changed in version 2.5: Accept tuples as *prefix*.\n' - '\n' - 'str.strip([chars])\n' - '\n' - ' Return a copy of the string with the leading and ' - 'trailing\n' - ' characters removed. The *chars* argument is a string ' - 'specifying the\n' - ' set of characters to be removed. If omitted or "None", ' - 'the *chars*\n' - ' argument defaults to removing whitespace. The *chars* ' - 'argument is\n' - ' not a prefix or suffix; rather, all combinations of its ' - 'values are\n' - ' stripped:\n' - '\n' - " >>> ' spacious '.strip()\n" - " 'spacious'\n" - " >>> 'www.example.com'.strip('cmowz.')\n" - " 'example'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* ' - 'argument.\n' - '\n' - 'str.swapcase()\n' - '\n' - ' Return a copy of the string with uppercase characters ' - 'converted to\n' - ' lowercase and vice versa.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.title()\n' - '\n' - ' Return a titlecased version of the string where words ' - 'start with an\n' - ' uppercase character and the remaining characters are ' - 'lowercase.\n' - '\n' - ' The algorithm uses a simple language-independent ' - 'definition of a\n' - ' word as groups of consecutive letters. The definition ' - 'works in\n' - ' many contexts but it means that apostrophes in ' - 'contractions and\n' - ' possessives form word boundaries, which may not be the ' - 'desired\n' - ' result:\n' - '\n' - ' >>> "they\'re bill\'s friends from the UK".title()\n' - ' "They\'Re Bill\'S Friends From The Uk"\n' - '\n' - ' A workaround for apostrophes can be constructed using ' - 'regular\n' - ' expressions:\n' - '\n' - ' >>> import re\n' - ' >>> def titlecase(s):\n' - ' ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n' - ' ... lambda mo: ' - 'mo.group(0)[0].upper() +\n' - ' ... ' - 'mo.group(0)[1:].lower(),\n' - ' ... s)\n' - ' ...\n' - ' >>> titlecase("they\'re bill\'s friends.")\n' - ' "They\'re Bill\'s Friends."\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.translate(table[, deletechars])\n' - '\n' - ' Return a copy of the string where all characters ' - 'occurring in the\n' - ' optional argument *deletechars* are removed, and the ' - 'remaining\n' - ' characters have been mapped through the given ' - 'translation table,\n' - ' which must be a string of length 256.\n' - '\n' - ' You can use the "maketrans()" helper function in the ' - '"string"\n' - ' module to create a translation table. For string ' - 'objects, set the\n' - ' *table* argument to "None" for translations that only ' - 'delete\n' - ' characters:\n' - '\n' - " >>> 'read this short text'.translate(None, 'aeiou')\n" - " 'rd ths shrt txt'\n" - '\n' - ' New in version 2.6: Support for a "None" *table* ' - 'argument.\n' - '\n' - ' For Unicode objects, the "translate()" method does not ' - 'accept the\n' - ' optional *deletechars* argument. Instead, it returns a ' - 'copy of the\n' - ' *s* where all characters have been mapped through the ' - 'given\n' - ' translation table which must be a mapping of Unicode ' - 'ordinals to\n' - ' Unicode ordinals, Unicode strings or "None". Unmapped ' - 'characters\n' - ' are left untouched. Characters mapped to "None" are ' - 'deleted. Note,\n' - ' a more flexible approach is to create a custom ' - 'character mapping\n' - ' codec using the "codecs" module (see "encodings.cp1251" ' - 'for an\n' - ' example).\n' - '\n' - 'str.upper()\n' - '\n' - ' Return a copy of the string with all the cased ' - 'characters [4]\n' - ' converted to uppercase. Note that ' - '"str.upper().isupper()" might be\n' - ' "False" if "s" contains uncased characters or if the ' - 'Unicode\n' - ' category of the resulting character(s) is not "Lu" ' - '(Letter,\n' - ' uppercase), but e.g. "Lt" (Letter, titlecase).\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.zfill(width)\n' - '\n' - ' Return the numeric string left filled with zeros in a ' - 'string of\n' - ' length *width*. A sign prefix is handled correctly. ' - 'The original\n' - ' string is returned if *width* is less than or equal to ' - '"len(s)".\n' - '\n' - ' New in version 2.2.2.\n' - '\n' - 'The following methods are present only on unicode ' - 'objects:\n' - '\n' - 'unicode.isnumeric()\n' - '\n' - ' Return "True" if there are only numeric characters in ' - 'S, "False"\n' - ' otherwise. Numeric characters include digit characters, ' - 'and all\n' - ' characters that have the Unicode numeric value ' - 'property, e.g.\n' - ' U+2155, VULGAR FRACTION ONE FIFTH.\n' - '\n' - 'unicode.isdecimal()\n' - '\n' - ' Return "True" if there are only decimal characters in ' - 'S, "False"\n' - ' otherwise. Decimal characters include digit characters, ' - 'and all\n' - ' characters that can be used to form decimal-radix ' - 'numbers, e.g.\n' - ' U+0660, ARABIC-INDIC DIGIT ZERO.\n', - 'strings': '\n' - 'String literals\n' - '***************\n' - '\n' - 'String literals are described by the following lexical ' - 'definitions:\n' - '\n' - ' stringliteral ::= [stringprefix](shortstring | longstring)\n' - ' stringprefix ::= "r" | "u" | "ur" | "R" | "U" | "UR" | "Ur" ' - '| "uR"\n' - ' | "b" | "B" | "br" | "Br" | "bR" | "BR"\n' - ' shortstring ::= "\'" shortstringitem* "\'" | \'"\' ' - 'shortstringitem* \'"\'\n' - ' longstring ::= "\'\'\'" longstringitem* "\'\'\'"\n' - ' | \'"""\' longstringitem* \'"""\'\n' - ' shortstringitem ::= shortstringchar | escapeseq\n' - ' longstringitem ::= longstringchar | escapeseq\n' - ' shortstringchar ::= \n' - ' longstringchar ::= \n' - ' escapeseq ::= "\\" \n' - '\n' - 'One syntactic restriction not indicated by these productions is ' - 'that\n' - 'whitespace is not allowed between the "stringprefix" and the rest ' - 'of\n' - 'the string literal. The source character set is defined by the\n' - 'encoding declaration; it is ASCII if no encoding declaration is ' - 'given\n' - 'in the source file; see section Encoding declarations.\n' - '\n' - 'In plain English: String literals can be enclosed in matching ' - 'single\n' - 'quotes ("\'") or double quotes ("""). They can also be enclosed ' - 'in\n' - 'matching groups of three single or double quotes (these are ' - 'generally\n' - 'referred to as *triple-quoted strings*). The backslash ("\\")\n' - 'character is used to escape characters that otherwise have a ' - 'special\n' - 'meaning, such as newline, backslash itself, or the quote ' - 'character.\n' - 'String literals may optionally be prefixed with a letter "\'r\'" ' - 'or\n' - '"\'R\'"; such strings are called *raw strings* and use different ' - 'rules\n' - 'for interpreting backslash escape sequences. A prefix of "\'u\'" ' - 'or\n' - '"\'U\'" makes the string a Unicode string. Unicode strings use ' - 'the\n' - 'Unicode character set as defined by the Unicode Consortium and ' - 'ISO\n' - '10646. Some additional escape sequences, described below, are\n' - 'available in Unicode strings. A prefix of "\'b\'" or "\'B\'" is ' - 'ignored in\n' - 'Python 2; it indicates that the literal should become a bytes ' - 'literal\n' - 'in Python 3 (e.g. when code is automatically converted with ' - '2to3). A\n' - '"\'u\'" or "\'b\'" prefix may be followed by an "\'r\'" prefix.\n' - '\n' - 'In triple-quoted strings, unescaped newlines and quotes are ' - 'allowed\n' - '(and are retained), except that three unescaped quotes in a row\n' - 'terminate the string. (A "quote" is the character used to open ' - 'the\n' - 'string, i.e. either "\'" or """.)\n' - '\n' - 'Unless an "\'r\'" or "\'R\'" prefix is present, escape sequences ' - 'in\n' - 'strings are interpreted according to rules similar to those used ' - 'by\n' - 'Standard C. The recognized escape sequences are:\n' - '\n' - '+-------------------+-----------------------------------+---------+\n' - '| Escape Sequence | Meaning | Notes ' - '|\n' - '+===================+===================================+=========+\n' - '| "\\newline" | Ignored ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\\\" | Backslash ("\\") ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\\'" | Single quote ("\'") ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\"" | Double quote (""") ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\a" | ASCII Bell (BEL) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\b" | ASCII Backspace (BS) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\f" | ASCII Formfeed (FF) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\n" | ASCII Linefeed (LF) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\N{name}" | Character named *name* in the ' - '| |\n' - '| | Unicode database (Unicode only) | ' - '|\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\r" | ASCII Carriage Return (CR) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\t" | ASCII Horizontal Tab (TAB) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\uxxxx" | Character with 16-bit hex value | ' - '(1) |\n' - '| | *xxxx* (Unicode only) | ' - '|\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\Uxxxxxxxx" | Character with 32-bit hex value | ' - '(2) |\n' - '| | *xxxxxxxx* (Unicode only) | ' - '|\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\v" | ASCII Vertical Tab (VT) ' - '| |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\ooo" | Character with octal value *ooo* | ' - '(3,5) |\n' - '+-------------------+-----------------------------------+---------+\n' - '| "\\xhh" | Character with hex value *hh* | ' - '(4,5) |\n' - '+-------------------+-----------------------------------+---------+\n' - '\n' - 'Notes:\n' - '\n' - '1. Individual code units which form parts of a surrogate pair ' - 'can\n' - ' be encoded using this escape sequence.\n' - '\n' - '2. Any Unicode character can be encoded this way, but characters\n' - ' outside the Basic Multilingual Plane (BMP) will be encoded ' - 'using a\n' - ' surrogate pair if Python is compiled to use 16-bit code units ' - '(the\n' - ' default).\n' - '\n' - '3. As in Standard C, up to three octal digits are accepted.\n' - '\n' - '4. Unlike in Standard C, exactly two hex digits are required.\n' - '\n' - '5. In a string literal, hexadecimal and octal escapes denote the\n' - ' byte with the given value; it is not necessary that the byte\n' - ' encodes a character in the source character set. In a Unicode\n' - ' literal, these escapes denote a Unicode character with the ' - 'given\n' - ' value.\n' - '\n' - 'Unlike Standard C, all unrecognized escape sequences are left in ' - 'the\n' - 'string unchanged, i.e., *the backslash is left in the string*. ' - '(This\n' - 'behavior is useful when debugging: if an escape sequence is ' - 'mistyped,\n' - 'the resulting output is more easily recognized as broken.) It is ' - 'also\n' - 'important to note that the escape sequences marked as "(Unicode ' - 'only)"\n' - 'in the table above fall into the category of unrecognized escapes ' - 'for\n' - 'non-Unicode string literals.\n' - '\n' - 'When an "\'r\'" or "\'R\'" prefix is present, a character ' - 'following a\n' - 'backslash is included in the string without change, and *all\n' - 'backslashes are left in the string*. For example, the string ' - 'literal\n' - '"r"\\n"" consists of two characters: a backslash and a lowercase ' - '"\'n\'".\n' - 'String quotes can be escaped with a backslash, but the backslash\n' - 'remains in the string; for example, "r"\\""" is a valid string ' - 'literal\n' - 'consisting of two characters: a backslash and a double quote; ' - '"r"\\""\n' - 'is not a valid string literal (even a raw string cannot end in an ' - 'odd\n' - 'number of backslashes). Specifically, *a raw string cannot end ' - 'in a\n' - 'single backslash* (since the backslash would escape the ' - 'following\n' - 'quote character). Note also that a single backslash followed by ' - 'a\n' - 'newline is interpreted as those two characters as part of the ' - 'string,\n' - '*not* as a line continuation.\n' - '\n' - 'When an "\'r\'" or "\'R\'" prefix is used in conjunction with a ' - '"\'u\'" or\n' - '"\'U\'" prefix, then the "\\uXXXX" and "\\UXXXXXXXX" escape ' - 'sequences are\n' - 'processed while *all other backslashes are left in the string*. ' - 'For\n' - 'example, the string literal "ur"\\u0062\\n"" consists of three ' - 'Unicode\n' - "characters: 'LATIN SMALL LETTER B', 'REVERSE SOLIDUS', and " - "'LATIN\n" - "SMALL LETTER N'. Backslashes can be escaped with a preceding\n" - 'backslash; however, both remain in the string. As a result, ' - '"\\uXXXX"\n' - 'escape sequences are only recognized when there are an odd number ' - 'of\n' - 'backslashes.\n', - 'subscriptions': '\n' - 'Subscriptions\n' - '*************\n' - '\n' - 'A subscription selects an item of a sequence (string, tuple ' - 'or list)\n' - 'or mapping (dictionary) object:\n' - '\n' - ' subscription ::= primary "[" expression_list "]"\n' - '\n' - 'The primary must evaluate to an object of a sequence or ' - 'mapping type.\n' - '\n' - 'If the primary is a mapping, the expression list must ' - 'evaluate to an\n' - 'object whose value is one of the keys of the mapping, and ' - 'the\n' - 'subscription selects the value in the mapping that ' - 'corresponds to that\n' - 'key. (The expression list is a tuple except if it has ' - 'exactly one\n' - 'item.)\n' - '\n' - 'If the primary is a sequence, the expression (list) must ' - 'evaluate to a\n' - 'plain integer. If this value is negative, the length of ' - 'the sequence\n' - 'is added to it (so that, e.g., "x[-1]" selects the last ' - 'item of "x".)\n' - 'The resulting value must be a nonnegative integer less than ' - 'the number\n' - 'of items in the sequence, and the subscription selects the ' - 'item whose\n' - 'index is that value (counting from zero).\n' - '\n' - "A string's items are characters. A character is not a " - 'separate data\n' - 'type but a string of exactly one character.\n', - 'truth': '\n' - 'Truth Value Testing\n' - '*******************\n' - '\n' - 'Any object can be tested for truth value, for use in an "if" or\n' - '"while" condition or as operand of the Boolean operations below. ' - 'The\n' - 'following values are considered false:\n' - '\n' - '* "None"\n' - '\n' - '* "False"\n' - '\n' - '* zero of any numeric type, for example, "0", "0L", "0.0", "0j".\n' - '\n' - '* any empty sequence, for example, "\'\'", "()", "[]".\n' - '\n' - '* any empty mapping, for example, "{}".\n' - '\n' - '* instances of user-defined classes, if the class defines a\n' - ' "__nonzero__()" or "__len__()" method, when that method returns ' - 'the\n' - ' integer zero or "bool" value "False". [1]\n' - '\n' - 'All other values are considered true --- so objects of many types ' - 'are\n' - 'always true.\n' - '\n' - 'Operations and built-in functions that have a Boolean result ' - 'always\n' - 'return "0" or "False" for false and "1" or "True" for true, unless\n' - 'otherwise stated. (Important exception: the Boolean operations ' - '"or"\n' - 'and "and" always return one of their operands.)\n', - 'try': '\n' - 'The "try" statement\n' - '*******************\n' - '\n' - 'The "try" statement specifies exception handlers and/or cleanup code\n' - 'for a group of statements:\n' - '\n' - ' try_stmt ::= try1_stmt | try2_stmt\n' - ' try1_stmt ::= "try" ":" suite\n' - ' ("except" [expression [("as" | ",") identifier]] ":" ' - 'suite)+\n' - ' ["else" ":" suite]\n' - ' ["finally" ":" suite]\n' - ' try2_stmt ::= "try" ":" suite\n' - ' "finally" ":" suite\n' - '\n' - 'Changed in version 2.5: In previous versions of Python,\n' - '"try"..."except"..."finally" did not work. "try"..."except" had to ' - 'be\n' - 'nested in "try"..."finally".\n' - '\n' - 'The "except" clause(s) specify one or more exception handlers. When ' - 'no\n' - 'exception occurs in the "try" clause, no exception handler is\n' - 'executed. When an exception occurs in the "try" suite, a search for ' - 'an\n' - 'exception handler is started. This search inspects the except ' - 'clauses\n' - 'in turn until one is found that matches the exception. An ' - 'expression-\n' - 'less except clause, if present, must be last; it matches any\n' - 'exception. For an except clause with an expression, that expression\n' - 'is evaluated, and the clause matches the exception if the resulting\n' - 'object is "compatible" with the exception. An object is compatible\n' - 'with an exception if it is the class or a base class of the ' - 'exception\n' - 'object, or a tuple containing an item compatible with the exception.\n' - '\n' - 'If no except clause matches the exception, the search for an ' - 'exception\n' - 'handler continues in the surrounding code and on the invocation ' - 'stack.\n' - '[1]\n' - '\n' - 'If the evaluation of an expression in the header of an except clause\n' - 'raises an exception, the original search for a handler is canceled ' - 'and\n' - 'a search starts for the new exception in the surrounding code and on\n' - 'the call stack (it is treated as if the entire "try" statement ' - 'raised\n' - 'the exception).\n' - '\n' - 'When a matching except clause is found, the exception is assigned to\n' - 'the target specified in that except clause, if present, and the ' - 'except\n' - "clause's suite is executed. All except clauses must have an\n" - 'executable block. When the end of this block is reached, execution\n' - 'continues normally after the entire try statement. (This means that\n' - 'if two nested handlers exist for the same exception, and the ' - 'exception\n' - 'occurs in the try clause of the inner handler, the outer handler ' - 'will\n' - 'not handle the exception.)\n' - '\n' - "Before an except clause's suite is executed, details about the\n" - 'exception are assigned to three variables in the "sys" module:\n' - '"sys.exc_type" receives the object identifying the exception;\n' - '"sys.exc_value" receives the exception\'s parameter;\n' - '"sys.exc_traceback" receives a traceback object (see section The\n' - 'standard type hierarchy) identifying the point in the program where\n' - 'the exception occurred. These details are also available through the\n' - '"sys.exc_info()" function, which returns a tuple "(exc_type,\n' - 'exc_value, exc_traceback)". Use of the corresponding variables is\n' - 'deprecated in favor of this function, since their use is unsafe in a\n' - 'threaded program. As of Python 1.5, the variables are restored to\n' - 'their previous values (before the call) when returning from a ' - 'function\n' - 'that handled an exception.\n' - '\n' - 'The optional "else" clause is executed if and when control flows off\n' - 'the end of the "try" clause. [2] Exceptions in the "else" clause are\n' - 'not handled by the preceding "except" clauses.\n' - '\n' - 'If "finally" is present, it specifies a \'cleanup\' handler. The ' - '"try"\n' - 'clause is executed, including any "except" and "else" clauses. If ' - 'an\n' - 'exception occurs in any of the clauses and is not handled, the\n' - 'exception is temporarily saved. The "finally" clause is executed. ' - 'If\n' - 'there is a saved exception, it is re-raised at the end of the\n' - '"finally" clause. If the "finally" clause raises another exception ' - 'or\n' - 'executes a "return" or "break" statement, the saved exception is\n' - 'discarded:\n' - '\n' - ' >>> def f():\n' - ' ... try:\n' - ' ... 1/0\n' - ' ... finally:\n' - ' ... return 42\n' - ' ...\n' - ' >>> f()\n' - ' 42\n' - '\n' - 'The exception information is not available to the program during\n' - 'execution of the "finally" clause.\n' - '\n' - 'When a "return", "break" or "continue" statement is executed in the\n' - '"try" suite of a "try"..."finally" statement, the "finally" clause ' - 'is\n' - 'also executed \'on the way out.\' A "continue" statement is illegal ' - 'in\n' - 'the "finally" clause. (The reason is a problem with the current\n' - 'implementation --- this restriction may be lifted in the future).\n' - '\n' - 'The return value of a function is determined by the last "return"\n' - 'statement executed. Since the "finally" clause always executes, a\n' - '"return" statement executed in the "finally" clause will always be ' - 'the\n' - 'last one executed:\n' - '\n' - ' >>> def foo():\n' - ' ... try:\n' - " ... return 'try'\n" - ' ... finally:\n' - " ... return 'finally'\n" - ' ...\n' - ' >>> foo()\n' - " 'finally'\n" - '\n' - 'Additional information on exceptions can be found in section\n' - 'Exceptions, and information on using the "raise" statement to ' - 'generate\n' - 'exceptions may be found in section The raise statement.\n', - 'types': '\n' - 'The standard type hierarchy\n' - '***************************\n' - '\n' - 'Below is a list of the types that are built into Python. ' - 'Extension\n' - 'modules (written in C, Java, or other languages, depending on the\n' - 'implementation) can define additional types. Future versions of\n' - 'Python may add types to the type hierarchy (e.g., rational ' - 'numbers,\n' - 'efficiently stored arrays of integers, etc.).\n' - '\n' - 'Some of the type descriptions below contain a paragraph listing\n' - "'special attributes.' These are attributes that provide access to " - 'the\n' - 'implementation and are not intended for general use. Their ' - 'definition\n' - 'may change in the future.\n' - '\n' - 'None\n' - ' This type has a single value. There is a single object with ' - 'this\n' - ' value. This object is accessed through the built-in name "None". ' - 'It\n' - ' is used to signify the absence of a value in many situations, ' - 'e.g.,\n' - " it is returned from functions that don't explicitly return\n" - ' anything. Its truth value is false.\n' - '\n' - 'NotImplemented\n' - ' This type has a single value. There is a single object with ' - 'this\n' - ' value. This object is accessed through the built-in name\n' - ' "NotImplemented". Numeric methods and rich comparison methods ' - 'may\n' - ' return this value if they do not implement the operation for ' - 'the\n' - ' operands provided. (The interpreter will then try the ' - 'reflected\n' - ' operation, or some other fallback, depending on the operator.) ' - 'Its\n' - ' truth value is true.\n' - '\n' - 'Ellipsis\n' - ' This type has a single value. There is a single object with ' - 'this\n' - ' value. This object is accessed through the built-in name\n' - ' "Ellipsis". It is used to indicate the presence of the "..." ' - 'syntax\n' - ' in a slice. Its truth value is true.\n' - '\n' - '"numbers.Number"\n' - ' These are created by numeric literals and returned as results ' - 'by\n' - ' arithmetic operators and arithmetic built-in functions. ' - 'Numeric\n' - ' objects are immutable; once created their value never changes.\n' - ' Python numbers are of course strongly related to mathematical\n' - ' numbers, but subject to the limitations of numerical ' - 'representation\n' - ' in computers.\n' - '\n' - ' Python distinguishes between integers, floating point numbers, ' - 'and\n' - ' complex numbers:\n' - '\n' - ' "numbers.Integral"\n' - ' These represent elements from the mathematical set of ' - 'integers\n' - ' (positive and negative).\n' - '\n' - ' There are three types of integers:\n' - '\n' - ' Plain integers\n' - ' These represent numbers in the range -2147483648 through\n' - ' 2147483647. (The range may be larger on machines with a\n' - ' larger natural word size, but not smaller.) When the ' - 'result\n' - ' of an operation would fall outside this range, the result ' - 'is\n' - ' normally returned as a long integer (in some cases, the\n' - ' exception "OverflowError" is raised instead). For the\n' - ' purpose of shift and mask operations, integers are assumed ' - 'to\n' - " have a binary, 2's complement notation using 32 or more " - 'bits,\n' - ' and hiding no bits from the user (i.e., all 4294967296\n' - ' different bit patterns correspond to different values).\n' - '\n' - ' Long integers\n' - ' These represent numbers in an unlimited range, subject to\n' - ' available (virtual) memory only. For the purpose of ' - 'shift\n' - ' and mask operations, a binary representation is assumed, ' - 'and\n' - " negative numbers are represented in a variant of 2's\n" - ' complement which gives the illusion of an infinite string ' - 'of\n' - ' sign bits extending to the left.\n' - '\n' - ' Booleans\n' - ' These represent the truth values False and True. The two\n' - ' objects representing the values "False" and "True" are ' - 'the\n' - ' only Boolean objects. The Boolean type is a subtype of ' - 'plain\n' - ' integers, and Boolean values behave like the values 0 and ' - '1,\n' - ' respectively, in almost all contexts, the exception being\n' - ' that when converted to a string, the strings ""False"" or\n' - ' ""True"" are returned, respectively.\n' - '\n' - ' The rules for integer representation are intended to give ' - 'the\n' - ' most meaningful interpretation of shift and mask operations\n' - ' involving negative integers and the least surprises when\n' - ' switching between the plain and long integer domains. Any\n' - ' operation, if it yields a result in the plain integer ' - 'domain,\n' - ' will yield the same result in the long integer domain or ' - 'when\n' - ' using mixed operands. The switch between domains is ' - 'transparent\n' - ' to the programmer.\n' - '\n' - ' "numbers.Real" ("float")\n' - ' These represent machine-level double precision floating ' - 'point\n' - ' numbers. You are at the mercy of the underlying machine\n' - ' architecture (and C or Java implementation) for the accepted\n' - ' range and handling of overflow. Python does not support ' - 'single-\n' - ' precision floating point numbers; the savings in processor ' - 'and\n' - ' memory usage that are usually the reason for using these are\n' - ' dwarfed by the overhead of using objects in Python, so there ' - 'is\n' - ' no reason to complicate the language with two kinds of ' - 'floating\n' - ' point numbers.\n' - '\n' - ' "numbers.Complex"\n' - ' These represent complex numbers as a pair of machine-level\n' - ' double precision floating point numbers. The same caveats ' - 'apply\n' - ' as for floating point numbers. The real and imaginary parts ' - 'of a\n' - ' complex number "z" can be retrieved through the read-only\n' - ' attributes "z.real" and "z.imag".\n' - '\n' - 'Sequences\n' - ' These represent finite ordered sets indexed by non-negative\n' - ' numbers. The built-in function "len()" returns the number of ' - 'items\n' - ' of a sequence. When the length of a sequence is *n*, the index ' - 'set\n' - ' contains the numbers 0, 1, ..., *n*-1. Item *i* of sequence *a* ' - 'is\n' - ' selected by "a[i]".\n' - '\n' - ' Sequences also support slicing: "a[i:j]" selects all items with\n' - ' index *k* such that *i* "<=" *k* "<" *j*. When used as an\n' - ' expression, a slice is a sequence of the same type. This ' - 'implies\n' - ' that the index set is renumbered so that it starts at 0.\n' - '\n' - ' Some sequences also support "extended slicing" with a third ' - '"step"\n' - ' parameter: "a[i:j:k]" selects all items of *a* with index *x* ' - 'where\n' - ' "x = i + n*k", *n* ">=" "0" and *i* "<=" *x* "<" *j*.\n' - '\n' - ' Sequences are distinguished according to their mutability:\n' - '\n' - ' Immutable sequences\n' - ' An object of an immutable sequence type cannot change once it ' - 'is\n' - ' created. (If the object contains references to other ' - 'objects,\n' - ' these other objects may be mutable and may be changed; ' - 'however,\n' - ' the collection of objects directly referenced by an ' - 'immutable\n' - ' object cannot change.)\n' - '\n' - ' The following types are immutable sequences:\n' - '\n' - ' Strings\n' - ' The items of a string are characters. There is no ' - 'separate\n' - ' character type; a character is represented by a string of ' - 'one\n' - ' item. Characters represent (at least) 8-bit bytes. The\n' - ' built-in functions "chr()" and "ord()" convert between\n' - ' characters and nonnegative integers representing the byte\n' - ' values. Bytes with the values 0-127 usually represent ' - 'the\n' - ' corresponding ASCII values, but the interpretation of ' - 'values\n' - ' is up to the program. The string data type is also used ' - 'to\n' - ' represent arrays of bytes, e.g., to hold data read from a\n' - ' file.\n' - '\n' - ' (On systems whose native character set is not ASCII, ' - 'strings\n' - ' may use EBCDIC in their internal representation, provided ' - 'the\n' - ' functions "chr()" and "ord()" implement a mapping between\n' - ' ASCII and EBCDIC, and string comparison preserves the ' - 'ASCII\n' - ' order. Or perhaps someone can propose a better rule?)\n' - '\n' - ' Unicode\n' - ' The items of a Unicode object are Unicode code units. A\n' - ' Unicode code unit is represented by a Unicode object of ' - 'one\n' - ' item and can hold either a 16-bit or 32-bit value\n' - ' representing a Unicode ordinal (the maximum value for the\n' - ' ordinal is given in "sys.maxunicode", and depends on how\n' - ' Python is configured at compile time). Surrogate pairs ' - 'may\n' - ' be present in the Unicode object, and will be reported as ' - 'two\n' - ' separate items. The built-in functions "unichr()" and\n' - ' "ord()" convert between code units and nonnegative ' - 'integers\n' - ' representing the Unicode ordinals as defined in the ' - 'Unicode\n' - ' Standard 3.0. Conversion from and to other encodings are\n' - ' possible through the Unicode method "encode()" and the ' - 'built-\n' - ' in function "unicode()".\n' - '\n' - ' Tuples\n' - ' The items of a tuple are arbitrary Python objects. Tuples ' - 'of\n' - ' two or more items are formed by comma-separated lists of\n' - " expressions. A tuple of one item (a 'singleton') can be\n" - ' formed by affixing a comma to an expression (an expression ' - 'by\n' - ' itself does not create a tuple, since parentheses must be\n' - ' usable for grouping of expressions). An empty tuple can ' - 'be\n' - ' formed by an empty pair of parentheses.\n' - '\n' - ' Mutable sequences\n' - ' Mutable sequences can be changed after they are created. ' - 'The\n' - ' subscription and slicing notations can be used as the target ' - 'of\n' - ' assignment and "del" (delete) statements.\n' - '\n' - ' There are currently two intrinsic mutable sequence types:\n' - '\n' - ' Lists\n' - ' The items of a list are arbitrary Python objects. Lists ' - 'are\n' - ' formed by placing a comma-separated list of expressions ' - 'in\n' - ' square brackets. (Note that there are no special cases ' - 'needed\n' - ' to form lists of length 0 or 1.)\n' - '\n' - ' Byte Arrays\n' - ' A bytearray object is a mutable array. They are created ' - 'by\n' - ' the built-in "bytearray()" constructor. Aside from being\n' - ' mutable (and hence unhashable), byte arrays otherwise ' - 'provide\n' - ' the same interface and functionality as immutable bytes\n' - ' objects.\n' - '\n' - ' The extension module "array" provides an additional example ' - 'of a\n' - ' mutable sequence type.\n' - '\n' - 'Set types\n' - ' These represent unordered, finite sets of unique, immutable\n' - ' objects. As such, they cannot be indexed by any subscript. ' - 'However,\n' - ' they can be iterated over, and the built-in function "len()"\n' - ' returns the number of items in a set. Common uses for sets are ' - 'fast\n' - ' membership testing, removing duplicates from a sequence, and\n' - ' computing mathematical operations such as intersection, union,\n' - ' difference, and symmetric difference.\n' - '\n' - ' For set elements, the same immutability rules apply as for\n' - ' dictionary keys. Note that numeric types obey the normal rules ' - 'for\n' - ' numeric comparison: if two numbers compare equal (e.g., "1" and\n' - ' "1.0"), only one of them can be contained in a set.\n' - '\n' - ' There are currently two intrinsic set types:\n' - '\n' - ' Sets\n' - ' These represent a mutable set. They are created by the ' - 'built-in\n' - ' "set()" constructor and can be modified afterwards by ' - 'several\n' - ' methods, such as "add()".\n' - '\n' - ' Frozen sets\n' - ' These represent an immutable set. They are created by the\n' - ' built-in "frozenset()" constructor. As a frozenset is ' - 'immutable\n' - ' and *hashable*, it can be used again as an element of ' - 'another\n' - ' set, or as a dictionary key.\n' - '\n' - 'Mappings\n' - ' These represent finite sets of objects indexed by arbitrary ' - 'index\n' - ' sets. The subscript notation "a[k]" selects the item indexed by ' - '"k"\n' - ' from the mapping "a"; this can be used in expressions and as ' - 'the\n' - ' target of assignments or "del" statements. The built-in ' - 'function\n' - ' "len()" returns the number of items in a mapping.\n' - '\n' - ' There is currently a single intrinsic mapping type:\n' - '\n' - ' Dictionaries\n' - ' These represent finite sets of objects indexed by nearly\n' - ' arbitrary values. The only types of values not acceptable ' - 'as\n' - ' keys are values containing lists or dictionaries or other\n' - ' mutable types that are compared by value rather than by ' - 'object\n' - ' identity, the reason being that the efficient implementation ' - 'of\n' - " dictionaries requires a key's hash value to remain constant.\n" - ' Numeric types used for keys obey the normal rules for ' - 'numeric\n' - ' comparison: if two numbers compare equal (e.g., "1" and ' - '"1.0")\n' - ' then they can be used interchangeably to index the same\n' - ' dictionary entry.\n' - '\n' - ' Dictionaries are mutable; they can be created by the "{...}"\n' - ' notation (see section Dictionary displays).\n' - '\n' - ' The extension modules "dbm", "gdbm", and "bsddb" provide\n' - ' additional examples of mapping types.\n' - '\n' - 'Callable types\n' - ' These are the types to which the function call operation (see\n' - ' section Calls) can be applied:\n' - '\n' - ' User-defined functions\n' - ' A user-defined function object is created by a function\n' - ' definition (see section Function definitions). It should be\n' - ' called with an argument list containing the same number of ' - 'items\n' - " as the function's formal parameter list.\n" - '\n' - ' Special attributes:\n' - '\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | Attribute | Meaning ' - '| |\n' - ' ' - '+=========================+=================================+=============+\n' - ' | "__doc__" "func_doc" | The function\'s documentation ' - '| Writable |\n' - ' | | string, or "None" if ' - '| |\n' - ' | | unavailable. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__name__" "func_name" | The function\'s name. ' - '| Writable |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__module__" | The name of the module the | ' - 'Writable |\n' - ' | | function was defined in, or ' - '| |\n' - ' | | "None" if unavailable. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__defaults__" | A tuple containing default | ' - 'Writable |\n' - ' | "func_defaults" | argument values for those ' - '| |\n' - ' | | arguments that have defaults, ' - '| |\n' - ' | | or "None" if no arguments have ' - '| |\n' - ' | | a default value. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__code__" "func_code" | The code object representing | ' - 'Writable |\n' - ' | | the compiled function body. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__globals__" | A reference to the dictionary | ' - 'Read-only |\n' - ' | "func_globals" | that holds the function\'s ' - '| |\n' - ' | | global variables --- the global ' - '| |\n' - ' | | namespace of the module in ' - '| |\n' - ' | | which the function was defined. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__dict__" "func_dict" | The namespace supporting | ' - 'Writable |\n' - ' | | arbitrary function attributes. ' - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - ' | "__closure__" | "None" or a tuple of cells that | ' - 'Read-only |\n' - ' | "func_closure" | contain bindings for the ' - '| |\n' - " | | function's free variables. " - '| |\n' - ' ' - '+-------------------------+---------------------------------+-------------+\n' - '\n' - ' Most of the attributes labelled "Writable" check the type of ' - 'the\n' - ' assigned value.\n' - '\n' - ' Changed in version 2.4: "func_name" is now writable.\n' - '\n' - ' Changed in version 2.6: The double-underscore attributes\n' - ' "__closure__", "__code__", "__defaults__", and "__globals__"\n' - ' were introduced as aliases for the corresponding "func_*"\n' - ' attributes for forwards compatibility with Python 3.\n' - '\n' - ' Function objects also support getting and setting arbitrary\n' - ' attributes, which can be used, for example, to attach ' - 'metadata\n' - ' to functions. Regular attribute dot-notation is used to get ' - 'and\n' - ' set such attributes. *Note that the current implementation ' - 'only\n' - ' supports function attributes on user-defined functions. ' - 'Function\n' - ' attributes on built-in functions may be supported in the\n' - ' future.*\n' - '\n' - " Additional information about a function's definition can be\n" - ' retrieved from its code object; see the description of ' - 'internal\n' - ' types below.\n' - '\n' - ' User-defined methods\n' - ' A user-defined method object combines a class, a class ' - 'instance\n' - ' (or "None") and any callable object (normally a user-defined\n' - ' function).\n' - '\n' - ' Special read-only attributes: "im_self" is the class ' - 'instance\n' - ' object, "im_func" is the function object; "im_class" is the\n' - ' class of "im_self" for bound methods or the class that asked ' - 'for\n' - ' the method for unbound methods; "__doc__" is the method\'s\n' - ' documentation (same as "im_func.__doc__"); "__name__" is the\n' - ' method name (same as "im_func.__name__"); "__module__" is ' - 'the\n' - ' name of the module the method was defined in, or "None" if\n' - ' unavailable.\n' - '\n' - ' Changed in version 2.2: "im_self" used to refer to the class\n' - ' that defined the method.\n' - '\n' - ' Changed in version 2.6: For Python 3 forward-compatibility,\n' - ' "im_func" is also available as "__func__", and "im_self" as\n' - ' "__self__".\n' - '\n' - ' Methods also support accessing (but not setting) the ' - 'arbitrary\n' - ' function attributes on the underlying function object.\n' - '\n' - ' User-defined method objects may be created when getting an\n' - ' attribute of a class (perhaps via an instance of that class), ' - 'if\n' - ' that attribute is a user-defined function object, an unbound\n' - ' user-defined method object, or a class method object. When ' - 'the\n' - ' attribute is a user-defined method object, a new method ' - 'object\n' - ' is only created if the class from which it is being retrieved ' - 'is\n' - ' the same as, or a derived class of, the class stored in the\n' - ' original method object; otherwise, the original method object ' - 'is\n' - ' used as it is.\n' - '\n' - ' When a user-defined method object is created by retrieving a\n' - ' user-defined function object from a class, its "im_self"\n' - ' attribute is "None" and the method object is said to be ' - 'unbound.\n' - ' When one is created by retrieving a user-defined function ' - 'object\n' - ' from a class via one of its instances, its "im_self" ' - 'attribute\n' - ' is the instance, and the method object is said to be bound. ' - 'In\n' - ' either case, the new method\'s "im_class" attribute is the ' - 'class\n' - ' from which the retrieval takes place, and its "im_func"\n' - ' attribute is the original function object.\n' - '\n' - ' When a user-defined method object is created by retrieving\n' - ' another method object from a class or instance, the behaviour ' - 'is\n' - ' the same as for a function object, except that the "im_func"\n' - ' attribute of the new instance is not the original method ' - 'object\n' - ' but its "im_func" attribute.\n' - '\n' - ' When a user-defined method object is created by retrieving a\n' - ' class method object from a class or instance, its "im_self"\n' - ' attribute is the class itself, and its "im_func" attribute ' - 'is\n' - ' the function object underlying the class method.\n' - '\n' - ' When an unbound user-defined method object is called, the\n' - ' underlying function ("im_func") is called, with the ' - 'restriction\n' - ' that the first argument must be an instance of the proper ' - 'class\n' - ' ("im_class") or of a derived class thereof.\n' - '\n' - ' When a bound user-defined method object is called, the\n' - ' underlying function ("im_func") is called, inserting the ' - 'class\n' - ' instance ("im_self") in front of the argument list. For\n' - ' instance, when "C" is a class which contains a definition for ' - 'a\n' - ' function "f()", and "x" is an instance of "C", calling ' - '"x.f(1)"\n' - ' is equivalent to calling "C.f(x, 1)".\n' - '\n' - ' When a user-defined method object is derived from a class ' - 'method\n' - ' object, the "class instance" stored in "im_self" will ' - 'actually\n' - ' be the class itself, so that calling either "x.f(1)" or ' - '"C.f(1)"\n' - ' is equivalent to calling "f(C,1)" where "f" is the ' - 'underlying\n' - ' function.\n' - '\n' - ' Note that the transformation from function object to (unbound ' - 'or\n' - ' bound) method object happens each time the attribute is\n' - ' retrieved from the class or instance. In some cases, a ' - 'fruitful\n' - ' optimization is to assign the attribute to a local variable ' - 'and\n' - ' call that local variable. Also notice that this ' - 'transformation\n' - ' only happens for user-defined functions; other callable ' - 'objects\n' - ' (and all non-callable objects) are retrieved without\n' - ' transformation. It is also important to note that ' - 'user-defined\n' - ' functions which are attributes of a class instance are not\n' - ' converted to bound methods; this *only* happens when the\n' - ' function is an attribute of the class.\n' - '\n' - ' Generator functions\n' - ' A function or method which uses the "yield" statement (see\n' - ' section The yield statement) is called a *generator ' - 'function*.\n' - ' Such a function, when called, always returns an iterator ' - 'object\n' - ' which can be used to execute the body of the function: ' - 'calling\n' - ' the iterator\'s "next()" method will cause the function to\n' - ' execute until it provides a value using the "yield" ' - 'statement.\n' - ' When the function executes a "return" statement or falls off ' - 'the\n' - ' end, a "StopIteration" exception is raised and the iterator ' - 'will\n' - ' have reached the end of the set of values to be returned.\n' - '\n' - ' Built-in functions\n' - ' A built-in function object is a wrapper around a C function.\n' - ' Examples of built-in functions are "len()" and "math.sin()"\n' - ' ("math" is a standard built-in module). The number and type ' - 'of\n' - ' the arguments are determined by the C function. Special ' - 'read-\n' - ' only attributes: "__doc__" is the function\'s documentation\n' - ' string, or "None" if unavailable; "__name__" is the ' - "function's\n" - ' name; "__self__" is set to "None" (but see the next item);\n' - ' "__module__" is the name of the module the function was ' - 'defined\n' - ' in or "None" if unavailable.\n' - '\n' - ' Built-in methods\n' - ' This is really a different disguise of a built-in function, ' - 'this\n' - ' time containing an object passed to the C function as an\n' - ' implicit extra argument. An example of a built-in method is\n' - ' "alist.append()", assuming *alist* is a list object. In this\n' - ' case, the special read-only attribute "__self__" is set to ' - 'the\n' - ' object denoted by *alist*.\n' - '\n' - ' Class Types\n' - ' Class types, or "new-style classes," are callable. These\n' - ' objects normally act as factories for new instances of\n' - ' themselves, but variations are possible for class types that\n' - ' override "__new__()". The arguments of the call are passed ' - 'to\n' - ' "__new__()" and, in the typical case, to "__init__()" to\n' - ' initialize the new instance.\n' - '\n' - ' Classic Classes\n' - ' Class objects are described below. When a class object is\n' - ' called, a new class instance (also described below) is ' - 'created\n' - " and returned. This implies a call to the class's " - '"__init__()"\n' - ' method if it has one. Any arguments are passed on to the\n' - ' "__init__()" method. If there is no "__init__()" method, ' - 'the\n' - ' class must be called without arguments.\n' - '\n' - ' Class instances\n' - ' Class instances are described below. Class instances are\n' - ' callable only when the class has a "__call__()" method;\n' - ' "x(arguments)" is a shorthand for "x.__call__(arguments)".\n' - '\n' - 'Modules\n' - ' Modules are imported by the "import" statement (see section The\n' - ' import statement). A module object has a namespace implemented ' - 'by a\n' - ' dictionary object (this is the dictionary referenced by the\n' - ' func_globals attribute of functions defined in the module).\n' - ' Attribute references are translated to lookups in this ' - 'dictionary,\n' - ' e.g., "m.x" is equivalent to "m.__dict__["x"]". A module object\n' - ' does not contain the code object used to initialize the module\n' - " (since it isn't needed once the initialization is done).\n" - '\n' - " Attribute assignment updates the module's namespace dictionary,\n" - ' e.g., "m.x = 1" is equivalent to "m.__dict__["x"] = 1".\n' - '\n' - ' Special read-only attribute: "__dict__" is the module\'s ' - 'namespace\n' - ' as a dictionary object.\n' - '\n' - ' **CPython implementation detail:** Because of the way CPython\n' - ' clears module dictionaries, the module dictionary will be ' - 'cleared\n' - ' when the module falls out of scope even if the dictionary still ' - 'has\n' - ' live references. To avoid this, copy the dictionary or keep ' - 'the\n' - ' module around while using its dictionary directly.\n' - '\n' - ' Predefined (writable) attributes: "__name__" is the module\'s ' - 'name;\n' - ' "__doc__" is the module\'s documentation string, or "None" if\n' - ' unavailable; "__file__" is the pathname of the file from which ' - 'the\n' - ' module was loaded, if it was loaded from a file. The "__file__"\n' - ' attribute is not present for C modules that are statically ' - 'linked\n' - ' into the interpreter; for extension modules loaded dynamically ' - 'from\n' - ' a shared library, it is the pathname of the shared library ' - 'file.\n' - '\n' - 'Classes\n' - ' Both class types (new-style classes) and class objects (old-\n' - ' style/classic classes) are typically created by class ' - 'definitions\n' - ' (see section Class definitions). A class has a namespace\n' - ' implemented by a dictionary object. Class attribute references ' - 'are\n' - ' translated to lookups in this dictionary, e.g., "C.x" is ' - 'translated\n' - ' to "C.__dict__["x"]" (although for new-style classes in ' - 'particular\n' - ' there are a number of hooks which allow for other means of ' - 'locating\n' - ' attributes). When the attribute name is not found there, the\n' - ' attribute search continues in the base classes. For old-style\n' - ' classes, the search is depth-first, left-to-right in the order ' - 'of\n' - ' occurrence in the base class list. New-style classes use the ' - 'more\n' - ' complex C3 method resolution order which behaves correctly even ' - 'in\n' - " the presence of 'diamond' inheritance structures where there " - 'are\n' - ' multiple inheritance paths leading back to a common ancestor.\n' - ' Additional details on the C3 MRO used by new-style classes can ' - 'be\n' - ' found in the documentation accompanying the 2.3 release at\n' - ' https://www.python.org/download/releases/2.3/mro/.\n' - '\n' - ' When a class attribute reference (for class "C", say) would ' - 'yield a\n' - ' user-defined function object or an unbound user-defined method\n' - ' object whose associated class is either "C" or one of its base\n' - ' classes, it is transformed into an unbound user-defined method\n' - ' object whose "im_class" attribute is "C". When it would yield a\n' - ' class method object, it is transformed into a bound ' - 'user-defined\n' - ' method object whose "im_self" attribute is "C". When it would\n' - ' yield a static method object, it is transformed into the object\n' - ' wrapped by the static method object. See section Implementing\n' - ' Descriptors for another way in which attributes retrieved from ' - 'a\n' - ' class may differ from those actually contained in its ' - '"__dict__"\n' - ' (note that only new-style classes support descriptors).\n' - '\n' - " Class attribute assignments update the class's dictionary, " - 'never\n' - ' the dictionary of a base class.\n' - '\n' - ' A class object can be called (see above) to yield a class ' - 'instance\n' - ' (see below).\n' - '\n' - ' Special attributes: "__name__" is the class name; "__module__" ' - 'is\n' - ' the module name in which the class was defined; "__dict__" is ' - 'the\n' - ' dictionary containing the class\'s namespace; "__bases__" is a ' - 'tuple\n' - ' (possibly empty or a singleton) containing the base classes, in ' - 'the\n' - ' order of their occurrence in the base class list; "__doc__" is ' - 'the\n' - " class's documentation string, or None if undefined.\n" - '\n' - 'Class instances\n' - ' A class instance is created by calling a class object (see ' - 'above).\n' - ' A class instance has a namespace implemented as a dictionary ' - 'which\n' - ' is the first place in which attribute references are searched.\n' - " When an attribute is not found there, and the instance's class " - 'has\n' - ' an attribute by that name, the search continues with the class\n' - ' attributes. If a class attribute is found that is a ' - 'user-defined\n' - ' function object or an unbound user-defined method object whose\n' - ' associated class is the class (call it "C") of the instance for\n' - ' which the attribute reference was initiated or one of its bases, ' - 'it\n' - ' is transformed into a bound user-defined method object whose\n' - ' "im_class" attribute is "C" and whose "im_self" attribute is ' - 'the\n' - ' instance. Static method and class method objects are also\n' - ' transformed, as if they had been retrieved from class "C"; see\n' - ' above under "Classes". See section Implementing Descriptors for\n' - ' another way in which attributes of a class retrieved via its\n' - ' instances may differ from the objects actually stored in the\n' - ' class\'s "__dict__". If no class attribute is found, and the\n' - ' object\'s class has a "__getattr__()" method, that is called to\n' - ' satisfy the lookup.\n' - '\n' - " Attribute assignments and deletions update the instance's\n" - " dictionary, never a class's dictionary. If the class has a\n" - ' "__setattr__()" or "__delattr__()" method, this is called ' - 'instead\n' - ' of updating the instance dictionary directly.\n' - '\n' - ' Class instances can pretend to be numbers, sequences, or ' - 'mappings\n' - ' if they have methods with certain special names. See section\n' - ' Special method names.\n' - '\n' - ' Special attributes: "__dict__" is the attribute dictionary;\n' - ' "__class__" is the instance\'s class.\n' - '\n' - 'Files\n' - ' A file object represents an open file. File objects are created ' - 'by\n' - ' the "open()" built-in function, and also by "os.popen()",\n' - ' "os.fdopen()", and the "makefile()" method of socket objects ' - '(and\n' - ' perhaps by other functions or methods provided by extension\n' - ' modules). The objects "sys.stdin", "sys.stdout" and ' - '"sys.stderr"\n' - ' are initialized to file objects corresponding to the ' - "interpreter's\n" - ' standard input, output and error streams. See File Objects for\n' - ' complete documentation of file objects.\n' - '\n' - 'Internal types\n' - ' A few types used internally by the interpreter are exposed to ' - 'the\n' - ' user. Their definitions may change with future versions of the\n' - ' interpreter, but they are mentioned here for completeness.\n' - '\n' - ' Code objects\n' - ' Code objects represent *byte-compiled* executable Python ' - 'code,\n' - ' or *bytecode*. The difference between a code object and a\n' - ' function object is that the function object contains an ' - 'explicit\n' - " reference to the function's globals (the module in which it " - 'was\n' - ' defined), while a code object contains no context; also the\n' - ' default argument values are stored in the function object, ' - 'not\n' - ' in the code object (because they represent values calculated ' - 'at\n' - ' run-time). Unlike function objects, code objects are ' - 'immutable\n' - ' and contain no references (directly or indirectly) to ' - 'mutable\n' - ' objects.\n' - '\n' - ' Special read-only attributes: "co_name" gives the function ' - 'name;\n' - ' "co_argcount" is the number of positional arguments ' - '(including\n' - ' arguments with default values); "co_nlocals" is the number ' - 'of\n' - ' local variables used by the function (including arguments);\n' - ' "co_varnames" is a tuple containing the names of the local\n' - ' variables (starting with the argument names); "co_cellvars" ' - 'is a\n' - ' tuple containing the names of local variables that are\n' - ' referenced by nested functions; "co_freevars" is a tuple\n' - ' containing the names of free variables; "co_code" is a ' - 'string\n' - ' representing the sequence of bytecode instructions; ' - '"co_consts"\n' - ' is a tuple containing the literals used by the bytecode;\n' - ' "co_names" is a tuple containing the names used by the ' - 'bytecode;\n' - ' "co_filename" is the filename from which the code was ' - 'compiled;\n' - ' "co_firstlineno" is the first line number of the function;\n' - ' "co_lnotab" is a string encoding the mapping from bytecode\n' - ' offsets to line numbers (for details see the source code of ' - 'the\n' - ' interpreter); "co_stacksize" is the required stack size\n' - ' (including local variables); "co_flags" is an integer ' - 'encoding a\n' - ' number of flags for the interpreter.\n' - '\n' - ' The following flag bits are defined for "co_flags": bit ' - '"0x04"\n' - ' is set if the function uses the "*arguments" syntax to accept ' - 'an\n' - ' arbitrary number of positional arguments; bit "0x08" is set ' - 'if\n' - ' the function uses the "**keywords" syntax to accept ' - 'arbitrary\n' - ' keyword arguments; bit "0x20" is set if the function is a\n' - ' generator.\n' - '\n' - ' Future feature declarations ("from __future__ import ' - 'division")\n' - ' also use bits in "co_flags" to indicate whether a code ' - 'object\n' - ' was compiled with a particular feature enabled: bit "0x2000" ' - 'is\n' - ' set if the function was compiled with future division ' - 'enabled;\n' - ' bits "0x10" and "0x1000" were used in earlier versions of\n' - ' Python.\n' - '\n' - ' Other bits in "co_flags" are reserved for internal use.\n' - '\n' - ' If a code object represents a function, the first item in\n' - ' "co_consts" is the documentation string of the function, or\n' - ' "None" if undefined.\n' - '\n' - ' Frame objects\n' - ' Frame objects represent execution frames. They may occur in\n' - ' traceback objects (see below).\n' - '\n' - ' Special read-only attributes: "f_back" is to the previous ' - 'stack\n' - ' frame (towards the caller), or "None" if this is the bottom\n' - ' stack frame; "f_code" is the code object being executed in ' - 'this\n' - ' frame; "f_locals" is the dictionary used to look up local\n' - ' variables; "f_globals" is used for global variables;\n' - ' "f_builtins" is used for built-in (intrinsic) names;\n' - ' "f_restricted" is a flag indicating whether the function is\n' - ' executing in restricted execution mode; "f_lasti" gives the\n' - ' precise instruction (this is an index into the bytecode ' - 'string\n' - ' of the code object).\n' - '\n' - ' Special writable attributes: "f_trace", if not "None", is a\n' - ' function called at the start of each source code line (this ' - 'is\n' - ' used by the debugger); "f_exc_type", "f_exc_value",\n' - ' "f_exc_traceback" represent the last exception raised in the\n' - ' parent frame provided another exception was ever raised in ' - 'the\n' - ' current frame (in all other cases they are None); "f_lineno" ' - 'is\n' - ' the current line number of the frame --- writing to this ' - 'from\n' - ' within a trace function jumps to the given line (only for ' - 'the\n' - ' bottom-most frame). A debugger can implement a Jump command\n' - ' (aka Set Next Statement) by writing to f_lineno.\n' - '\n' - ' Traceback objects\n' - ' Traceback objects represent a stack trace of an exception. ' - 'A\n' - ' traceback object is created when an exception occurs. When ' - 'the\n' - ' search for an exception handler unwinds the execution stack, ' - 'at\n' - ' each unwound level a traceback object is inserted in front ' - 'of\n' - ' the current traceback. When an exception handler is ' - 'entered,\n' - ' the stack trace is made available to the program. (See ' - 'section\n' - ' The try statement.) It is accessible as "sys.exc_traceback", ' - 'and\n' - ' also as the third item of the tuple returned by\n' - ' "sys.exc_info()". The latter is the preferred interface, ' - 'since\n' - ' it works correctly when the program is using multiple ' - 'threads.\n' - ' When the program contains no suitable handler, the stack ' - 'trace\n' - ' is written (nicely formatted) to the standard error stream; ' - 'if\n' - ' the interpreter is interactive, it is also made available to ' - 'the\n' - ' user as "sys.last_traceback".\n' - '\n' - ' Special read-only attributes: "tb_next" is the next level in ' - 'the\n' - ' stack trace (towards the frame where the exception occurred), ' - 'or\n' - ' "None" if there is no next level; "tb_frame" points to the\n' - ' execution frame of the current level; "tb_lineno" gives the ' - 'line\n' - ' number where the exception occurred; "tb_lasti" indicates ' - 'the\n' - ' precise instruction. The line number and last instruction ' - 'in\n' - ' the traceback may differ from the line number of its frame\n' - ' object if the exception occurred in a "try" statement with ' - 'no\n' - ' matching except clause or with a finally clause.\n' - '\n' - ' Slice objects\n' - ' Slice objects are used to represent slices when *extended ' - 'slice\n' - ' syntax* is used. This is a slice using two colons, or ' - 'multiple\n' - ' slices or ellipses separated by commas, e.g., "a[i:j:step]",\n' - ' "a[i:j, k:l]", or "a[..., i:j]". They are also created by ' - 'the\n' - ' built-in "slice()" function.\n' - '\n' - ' Special read-only attributes: "start" is the lower bound; ' - '"stop"\n' - ' is the upper bound; "step" is the step value; each is "None" ' - 'if\n' - ' omitted. These attributes can have any type.\n' - '\n' - ' Slice objects support one method:\n' - '\n' - ' slice.indices(self, length)\n' - '\n' - ' This method takes a single integer argument *length* and\n' - ' computes information about the extended slice that the ' - 'slice\n' - ' object would describe if applied to a sequence of ' - '*length*\n' - ' items. It returns a tuple of three integers; ' - 'respectively\n' - ' these are the *start* and *stop* indices and the *step* ' - 'or\n' - ' stride length of the slice. Missing or out-of-bounds ' - 'indices\n' - ' are handled in a manner consistent with regular slices.\n' - '\n' - ' New in version 2.3.\n' - '\n' - ' Static method objects\n' - ' Static method objects provide a way of defeating the\n' - ' transformation of function objects to method objects ' - 'described\n' - ' above. A static method object is a wrapper around any other\n' - ' object, usually a user-defined method object. When a static\n' - ' method object is retrieved from a class or a class instance, ' - 'the\n' - ' object actually returned is the wrapped object, which is not\n' - ' subject to any further transformation. Static method objects ' - 'are\n' - ' not themselves callable, although the objects they wrap ' - 'usually\n' - ' are. Static method objects are created by the built-in\n' - ' "staticmethod()" constructor.\n' - '\n' - ' Class method objects\n' - ' A class method object, like a static method object, is a ' - 'wrapper\n' - ' around another object that alters the way in which that ' - 'object\n' - ' is retrieved from classes and class instances. The behaviour ' - 'of\n' - ' class method objects upon such retrieval is described above,\n' - ' under "User-defined methods". Class method objects are ' - 'created\n' - ' by the built-in "classmethod()" constructor.\n', - 'typesfunctions': '\n' - 'Functions\n' - '*********\n' - '\n' - 'Function objects are created by function definitions. The ' - 'only\n' - 'operation on a function object is to call it: ' - '"func(argument-list)".\n' - '\n' - 'There are really two flavors of function objects: built-in ' - 'functions\n' - 'and user-defined functions. Both support the same ' - 'operation (to call\n' - 'the function), but the implementation is different, hence ' - 'the\n' - 'different object types.\n' - '\n' - 'See Function definitions for more information.\n', - 'typesmapping': '\n' - 'Mapping Types --- "dict"\n' - '************************\n' - '\n' - 'A *mapping* object maps *hashable* values to arbitrary ' - 'objects.\n' - 'Mappings are mutable objects. There is currently only one ' - 'standard\n' - 'mapping type, the *dictionary*. (For other containers see ' - 'the built\n' - 'in "list", "set", and "tuple" classes, and the "collections" ' - 'module.)\n' - '\n' - "A dictionary's keys are *almost* arbitrary values. Values " - 'that are\n' - 'not *hashable*, that is, values containing lists, ' - 'dictionaries or\n' - 'other mutable types (that are compared by value rather than ' - 'by object\n' - 'identity) may not be used as keys. Numeric types used for ' - 'keys obey\n' - 'the normal rules for numeric comparison: if two numbers ' - 'compare equal\n' - '(such as "1" and "1.0") then they can be used ' - 'interchangeably to index\n' - 'the same dictionary entry. (Note however, that since ' - 'computers store\n' - 'floating-point numbers as approximations it is usually ' - 'unwise to use\n' - 'them as dictionary keys.)\n' - '\n' - 'Dictionaries can be created by placing a comma-separated ' - 'list of "key:\n' - 'value" pairs within braces, for example: "{\'jack\': 4098, ' - "'sjoerd':\n" - '4127}" or "{4098: \'jack\', 4127: \'sjoerd\'}", or by the ' - '"dict"\n' - 'constructor.\n' - '\n' - 'class dict(**kwarg)\n' - 'class dict(mapping, **kwarg)\n' - 'class dict(iterable, **kwarg)\n' - '\n' - ' Return a new dictionary initialized from an optional ' - 'positional\n' - ' argument and a possibly empty set of keyword arguments.\n' - '\n' - ' If no positional argument is given, an empty dictionary ' - 'is created.\n' - ' If a positional argument is given and it is a mapping ' - 'object, a\n' - ' dictionary is created with the same key-value pairs as ' - 'the mapping\n' - ' object. Otherwise, the positional argument must be an ' - '*iterable*\n' - ' object. Each item in the iterable must itself be an ' - 'iterable with\n' - ' exactly two objects. The first object of each item ' - 'becomes a key\n' - ' in the new dictionary, and the second object the ' - 'corresponding\n' - ' value. If a key occurs more than once, the last value ' - 'for that key\n' - ' becomes the corresponding value in the new dictionary.\n' - '\n' - ' If keyword arguments are given, the keyword arguments and ' - 'their\n' - ' values are added to the dictionary created from the ' - 'positional\n' - ' argument. If a key being added is already present, the ' - 'value from\n' - ' the keyword argument replaces the value from the ' - 'positional\n' - ' argument.\n' - '\n' - ' To illustrate, the following examples all return a ' - 'dictionary equal\n' - ' to "{"one": 1, "two": 2, "three": 3}":\n' - '\n' - ' >>> a = dict(one=1, two=2, three=3)\n' - " >>> b = {'one': 1, 'two': 2, 'three': 3}\n" - " >>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))\n" - " >>> d = dict([('two', 2), ('one', 1), ('three', 3)])\n" - " >>> e = dict({'three': 3, 'one': 1, 'two': 2})\n" - ' >>> a == b == c == d == e\n' - ' True\n' - '\n' - ' Providing keyword arguments as in the first example only ' - 'works for\n' - ' keys that are valid Python identifiers. Otherwise, any ' - 'valid keys\n' - ' can be used.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' Changed in version 2.3: Support for building a dictionary ' - 'from\n' - ' keyword arguments added.\n' - '\n' - ' These are the operations that dictionaries support (and ' - 'therefore,\n' - ' custom mapping types should support too):\n' - '\n' - ' len(d)\n' - '\n' - ' Return the number of items in the dictionary *d*.\n' - '\n' - ' d[key]\n' - '\n' - ' Return the item of *d* with key *key*. Raises a ' - '"KeyError" if\n' - ' *key* is not in the map.\n' - '\n' - ' If a subclass of dict defines a method "__missing__()" ' - 'and *key*\n' - ' is not present, the "d[key]" operation calls that ' - 'method with\n' - ' the key *key* as argument. The "d[key]" operation ' - 'then returns\n' - ' or raises whatever is returned or raised by the\n' - ' "__missing__(key)" call. No other operations or ' - 'methods invoke\n' - ' "__missing__()". If "__missing__()" is not defined, ' - '"KeyError"\n' - ' is raised. "__missing__()" must be a method; it cannot ' - 'be an\n' - ' instance variable:\n' - '\n' - ' >>> class Counter(dict):\n' - ' ... def __missing__(self, key):\n' - ' ... return 0\n' - ' >>> c = Counter()\n' - " >>> c['red']\n" - ' 0\n' - " >>> c['red'] += 1\n" - " >>> c['red']\n" - ' 1\n' - '\n' - ' The example above shows part of the implementation of\n' - ' "collections.Counter". A different "__missing__" ' - 'method is used\n' - ' by "collections.defaultdict".\n' - '\n' - ' New in version 2.5: Recognition of __missing__ methods ' - 'of dict\n' - ' subclasses.\n' - '\n' - ' d[key] = value\n' - '\n' - ' Set "d[key]" to *value*.\n' - '\n' - ' del d[key]\n' - '\n' - ' Remove "d[key]" from *d*. Raises a "KeyError" if ' - '*key* is not\n' - ' in the map.\n' - '\n' - ' key in d\n' - '\n' - ' Return "True" if *d* has a key *key*, else "False".\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' key not in d\n' - '\n' - ' Equivalent to "not key in d".\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' iter(d)\n' - '\n' - ' Return an iterator over the keys of the dictionary. ' - 'This is a\n' - ' shortcut for "iterkeys()".\n' - '\n' - ' clear()\n' - '\n' - ' Remove all items from the dictionary.\n' - '\n' - ' copy()\n' - '\n' - ' Return a shallow copy of the dictionary.\n' - '\n' - ' fromkeys(seq[, value])\n' - '\n' - ' Create a new dictionary with keys from *seq* and ' - 'values set to\n' - ' *value*.\n' - '\n' - ' "fromkeys()" is a class method that returns a new ' - 'dictionary.\n' - ' *value* defaults to "None".\n' - '\n' - ' New in version 2.3.\n' - '\n' - ' get(key[, default])\n' - '\n' - ' Return the value for *key* if *key* is in the ' - 'dictionary, else\n' - ' *default*. If *default* is not given, it defaults to ' - '"None", so\n' - ' that this method never raises a "KeyError".\n' - '\n' - ' has_key(key)\n' - '\n' - ' Test for the presence of *key* in the dictionary. ' - '"has_key()"\n' - ' is deprecated in favor of "key in d".\n' - '\n' - ' items()\n' - '\n' - ' Return a copy of the dictionary\'s list of "(key, ' - 'value)" pairs.\n' - '\n' - ' **CPython implementation detail:** Keys and values are ' - 'listed in\n' - ' an arbitrary order which is non-random, varies across ' - 'Python\n' - " implementations, and depends on the dictionary's " - 'history of\n' - ' insertions and deletions.\n' - '\n' - ' If "items()", "keys()", "values()", "iteritems()", ' - '"iterkeys()",\n' - ' and "itervalues()" are called with no intervening ' - 'modifications\n' - ' to the dictionary, the lists will directly ' - 'correspond. This\n' - ' allows the creation of "(value, key)" pairs using ' - '"zip()":\n' - ' "pairs = zip(d.values(), d.keys())". The same ' - 'relationship\n' - ' holds for the "iterkeys()" and "itervalues()" methods: ' - '"pairs =\n' - ' zip(d.itervalues(), d.iterkeys())" provides the same ' - 'value for\n' - ' "pairs". Another way to create the same list is "pairs ' - '= [(v, k)\n' - ' for (k, v) in d.iteritems()]".\n' - '\n' - ' iteritems()\n' - '\n' - ' Return an iterator over the dictionary\'s "(key, ' - 'value)" pairs.\n' - ' See the note for "dict.items()".\n' - '\n' - ' Using "iteritems()" while adding or deleting entries ' - 'in the\n' - ' dictionary may raise a "RuntimeError" or fail to ' - 'iterate over\n' - ' all entries.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' iterkeys()\n' - '\n' - " Return an iterator over the dictionary's keys. See " - 'the note for\n' - ' "dict.items()".\n' - '\n' - ' Using "iterkeys()" while adding or deleting entries in ' - 'the\n' - ' dictionary may raise a "RuntimeError" or fail to ' - 'iterate over\n' - ' all entries.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' itervalues()\n' - '\n' - " Return an iterator over the dictionary's values. See " - 'the note\n' - ' for "dict.items()".\n' - '\n' - ' Using "itervalues()" while adding or deleting entries ' - 'in the\n' - ' dictionary may raise a "RuntimeError" or fail to ' - 'iterate over\n' - ' all entries.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' keys()\n' - '\n' - " Return a copy of the dictionary's list of keys. See " - 'the note\n' - ' for "dict.items()".\n' - '\n' - ' pop(key[, default])\n' - '\n' - ' If *key* is in the dictionary, remove it and return ' - 'its value,\n' - ' else return *default*. If *default* is not given and ' - '*key* is\n' - ' not in the dictionary, a "KeyError" is raised.\n' - '\n' - ' New in version 2.3.\n' - '\n' - ' popitem()\n' - '\n' - ' Remove and return an arbitrary "(key, value)" pair ' - 'from the\n' - ' dictionary.\n' - '\n' - ' "popitem()" is useful to destructively iterate over a\n' - ' dictionary, as often used in set algorithms. If the ' - 'dictionary\n' - ' is empty, calling "popitem()" raises a "KeyError".\n' - '\n' - ' setdefault(key[, default])\n' - '\n' - ' If *key* is in the dictionary, return its value. If ' - 'not, insert\n' - ' *key* with a value of *default* and return *default*. ' - '*default*\n' - ' defaults to "None".\n' - '\n' - ' update([other])\n' - '\n' - ' Update the dictionary with the key/value pairs from ' - '*other*,\n' - ' overwriting existing keys. Return "None".\n' - '\n' - ' "update()" accepts either another dictionary object or ' - 'an\n' - ' iterable of key/value pairs (as tuples or other ' - 'iterables of\n' - ' length two). If keyword arguments are specified, the ' - 'dictionary\n' - ' is then updated with those key/value pairs: ' - '"d.update(red=1,\n' - ' blue=2)".\n' - '\n' - ' Changed in version 2.4: Allowed the argument to be an ' - 'iterable\n' - ' of key/value pairs and allowed keyword arguments.\n' - '\n' - ' values()\n' - '\n' - " Return a copy of the dictionary's list of values. See " - 'the note\n' - ' for "dict.items()".\n' - '\n' - ' viewitems()\n' - '\n' - ' Return a new view of the dictionary\'s items ("(key, ' - 'value)"\n' - ' pairs). See below for documentation of view objects.\n' - '\n' - ' New in version 2.7.\n' - '\n' - ' viewkeys()\n' - '\n' - " Return a new view of the dictionary's keys. See below " - 'for\n' - ' documentation of view objects.\n' - '\n' - ' New in version 2.7.\n' - '\n' - ' viewvalues()\n' - '\n' - " Return a new view of the dictionary's values. See " - 'below for\n' - ' documentation of view objects.\n' - '\n' - ' New in version 2.7.\n' - '\n' - ' Dictionaries compare equal if and only if they have the ' - 'same "(key,\n' - ' value)" pairs.\n' - '\n' - '\n' - 'Dictionary view objects\n' - '=======================\n' - '\n' - 'The objects returned by "dict.viewkeys()", ' - '"dict.viewvalues()" and\n' - '"dict.viewitems()" are *view objects*. They provide a ' - 'dynamic view on\n' - "the dictionary's entries, which means that when the " - 'dictionary\n' - 'changes, the view reflects these changes.\n' - '\n' - 'Dictionary views can be iterated over to yield their ' - 'respective data,\n' - 'and support membership tests:\n' - '\n' - 'len(dictview)\n' - '\n' - ' Return the number of entries in the dictionary.\n' - '\n' - 'iter(dictview)\n' - '\n' - ' Return an iterator over the keys, values or items ' - '(represented as\n' - ' tuples of "(key, value)") in the dictionary.\n' - '\n' - ' Keys and values are iterated over in an arbitrary order ' - 'which is\n' - ' non-random, varies across Python implementations, and ' - 'depends on\n' - " the dictionary's history of insertions and deletions. If " - 'keys,\n' - ' values and items views are iterated over with no ' - 'intervening\n' - ' modifications to the dictionary, the order of items will ' - 'directly\n' - ' correspond. This allows the creation of "(value, key)" ' - 'pairs using\n' - ' "zip()": "pairs = zip(d.values(), d.keys())". Another ' - 'way to\n' - ' create the same list is "pairs = [(v, k) for (k, v) in ' - 'd.items()]".\n' - '\n' - ' Iterating views while adding or deleting entries in the ' - 'dictionary\n' - ' may raise a "RuntimeError" or fail to iterate over all ' - 'entries.\n' - '\n' - 'x in dictview\n' - '\n' - ' Return "True" if *x* is in the underlying dictionary\'s ' - 'keys, values\n' - ' or items (in the latter case, *x* should be a "(key, ' - 'value)"\n' - ' tuple).\n' - '\n' - 'Keys views are set-like since their entries are unique and ' - 'hashable.\n' - 'If all values are hashable, so that (key, value) pairs are ' - 'unique and\n' - 'hashable, then the items view is also set-like. (Values ' - 'views are not\n' - 'treated as set-like since the entries are generally not ' - 'unique.) Then\n' - 'these set operations are available ("other" refers either to ' - 'another\n' - 'view or a set):\n' - '\n' - 'dictview & other\n' - '\n' - ' Return the intersection of the dictview and the other ' - 'object as a\n' - ' new set.\n' - '\n' - 'dictview | other\n' - '\n' - ' Return the union of the dictview and the other object as ' - 'a new set.\n' - '\n' - 'dictview - other\n' - '\n' - ' Return the difference between the dictview and the other ' - 'object\n' - " (all elements in *dictview* that aren't in *other*) as a " - 'new set.\n' - '\n' - 'dictview ^ other\n' - '\n' - ' Return the symmetric difference (all elements either in ' - '*dictview*\n' - ' or *other*, but not in both) of the dictview and the ' - 'other object\n' - ' as a new set.\n' - '\n' - 'An example of dictionary view usage:\n' - '\n' - " >>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, " - "'spam': 500}\n" - ' >>> keys = dishes.viewkeys()\n' - ' >>> values = dishes.viewvalues()\n' - '\n' - ' >>> # iteration\n' - ' >>> n = 0\n' - ' >>> for val in values:\n' - ' ... n += val\n' - ' >>> print(n)\n' - ' 504\n' - '\n' - ' >>> # keys and values are iterated over in the same ' - 'order\n' - ' >>> list(keys)\n' - " ['eggs', 'bacon', 'sausage', 'spam']\n" - ' >>> list(values)\n' - ' [2, 1, 1, 500]\n' - '\n' - ' >>> # view objects are dynamic and reflect dict changes\n' - " >>> del dishes['eggs']\n" - " >>> del dishes['sausage']\n" - ' >>> list(keys)\n' - " ['spam', 'bacon']\n" - '\n' - ' >>> # set operations\n' - " >>> keys & {'eggs', 'bacon', 'salad'}\n" - " {'bacon'}\n", - 'typesmethods': '\n' - 'Methods\n' - '*******\n' - '\n' - 'Methods are functions that are called using the attribute ' - 'notation.\n' - 'There are two flavors: built-in methods (such as "append()" ' - 'on lists)\n' - 'and class instance methods. Built-in methods are described ' - 'with the\n' - 'types that support them.\n' - '\n' - 'The implementation adds two special read-only attributes to ' - 'class\n' - 'instance methods: "m.im_self" is the object on which the ' - 'method\n' - 'operates, and "m.im_func" is the function implementing the ' - 'method.\n' - 'Calling "m(arg-1, arg-2, ..., arg-n)" is completely ' - 'equivalent to\n' - 'calling "m.im_func(m.im_self, arg-1, arg-2, ..., arg-n)".\n' - '\n' - 'Class instance methods are either *bound* or *unbound*, ' - 'referring to\n' - 'whether the method was accessed through an instance or a ' - 'class,\n' - 'respectively. When a method is unbound, its "im_self" ' - 'attribute will\n' - 'be "None" and if called, an explicit "self" object must be ' - 'passed as\n' - 'the first argument. In this case, "self" must be an ' - 'instance of the\n' - "unbound method's class (or a subclass of that class), " - 'otherwise a\n' - '"TypeError" is raised.\n' - '\n' - 'Like function objects, methods objects support getting ' - 'arbitrary\n' - 'attributes. However, since method attributes are actually ' - 'stored on\n' - 'the underlying function object ("meth.im_func"), setting ' - 'method\n' - 'attributes on either bound or unbound methods is ' - 'disallowed.\n' - 'Attempting to set an attribute on a method results in an\n' - '"AttributeError" being raised. In order to set a method ' - 'attribute,\n' - 'you need to explicitly set it on the underlying function ' - 'object:\n' - '\n' - ' >>> class C:\n' - ' ... def method(self):\n' - ' ... pass\n' - ' ...\n' - ' >>> c = C()\n' - " >>> c.method.whoami = 'my name is method' # can't set on " - 'the method\n' - ' Traceback (most recent call last):\n' - ' File "", line 1, in \n' - " AttributeError: 'instancemethod' object has no attribute " - "'whoami'\n" - " >>> c.method.im_func.whoami = 'my name is method'\n" - ' >>> c.method.whoami\n' - " 'my name is method'\n" - '\n' - 'See The standard type hierarchy for more information.\n', - 'typesmodules': '\n' - 'Modules\n' - '*******\n' - '\n' - 'The only special operation on a module is attribute access: ' - '"m.name",\n' - 'where *m* is a module and *name* accesses a name defined in ' - "*m*'s\n" - 'symbol table. Module attributes can be assigned to. (Note ' - 'that the\n' - '"import" statement is not, strictly speaking, an operation ' - 'on a module\n' - 'object; "import foo" does not require a module object named ' - '*foo* to\n' - 'exist, rather it requires an (external) *definition* for a ' - 'module\n' - 'named *foo* somewhere.)\n' - '\n' - 'A special attribute of every module is "__dict__". This is ' - 'the\n' - "dictionary containing the module's symbol table. Modifying " - 'this\n' - "dictionary will actually change the module's symbol table, " - 'but direct\n' - 'assignment to the "__dict__" attribute is not possible (you ' - 'can write\n' - '"m.__dict__[\'a\'] = 1", which defines "m.a" to be "1", but ' - "you can't\n" - 'write "m.__dict__ = {}"). Modifying "__dict__" directly is ' - 'not\n' - 'recommended.\n' - '\n' - 'Modules built into the interpreter are written like this: ' - '"". If loaded from a file, they are ' - 'written as\n' - '"".\n', - 'typesseq': '\n' - 'Sequence Types --- "str", "unicode", "list", "tuple", ' - '"bytearray", "buffer", "xrange"\n' - '*************************************************************************************\n' - '\n' - 'There are seven sequence types: strings, Unicode strings, ' - 'lists,\n' - 'tuples, bytearrays, buffers, and xrange objects.\n' - '\n' - 'For other containers see the built in "dict" and "set" classes, ' - 'and\n' - 'the "collections" module.\n' - '\n' - 'String literals are written in single or double quotes: ' - '"\'xyzzy\'",\n' - '""frobozz"". See String literals for more about string ' - 'literals.\n' - 'Unicode strings are much like strings, but are specified in the ' - 'syntax\n' - 'using a preceding "\'u\'" character: "u\'abc\'", "u"def"". In ' - 'addition to\n' - 'the functionality described here, there are also ' - 'string-specific\n' - 'methods described in the String Methods section. Lists are ' - 'constructed\n' - 'with square brackets, separating items with commas: "[a, b, ' - 'c]".\n' - 'Tuples are constructed by the comma operator (not within square\n' - 'brackets), with or without enclosing parentheses, but an empty ' - 'tuple\n' - 'must have the enclosing parentheses, such as "a, b, c" or "()". ' - 'A\n' - 'single item tuple must have a trailing comma, such as "(d,)".\n' - '\n' - 'Bytearray objects are created with the built-in function\n' - '"bytearray()".\n' - '\n' - 'Buffer objects are not directly supported by Python syntax, but ' - 'can be\n' - 'created by calling the built-in function "buffer()". They ' - "don't\n" - 'support concatenation or repetition.\n' - '\n' - 'Objects of type xrange are similar to buffers in that there is ' - 'no\n' - 'specific syntax to create them, but they are created using the\n' - '"xrange()" function. They don\'t support slicing, concatenation ' - 'or\n' - 'repetition, and using "in", "not in", "min()" or "max()" on them ' - 'is\n' - 'inefficient.\n' - '\n' - 'Most sequence types support the following operations. The "in" ' - 'and\n' - '"not in" operations have the same priorities as the comparison\n' - 'operations. The "+" and "*" operations have the same priority ' - 'as the\n' - 'corresponding numeric operations. [3] Additional methods are ' - 'provided\n' - 'for Mutable Sequence Types.\n' - '\n' - 'This table lists the sequence operations sorted in ascending ' - 'priority.\n' - 'In the table, *s* and *t* are sequences of the same type; *n*, ' - '*i* and\n' - '*j* are integers:\n' - '\n' - '+--------------------+----------------------------------+------------+\n' - '| Operation | Result | ' - 'Notes |\n' - '+====================+==================================+============+\n' - '| "x in s" | "True" if an item of *s* is | ' - '(1) |\n' - '| | equal to *x*, else "False" ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "x not in s" | "False" if an item of *s* is | ' - '(1) |\n' - '| | equal to *x*, else "True" ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s + t" | the concatenation of *s* and *t* | ' - '(6) |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s * n, n * s" | equivalent to adding *s* to | ' - '(2) |\n' - '| | itself *n* times ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s[i]" | *i*th item of *s*, origin 0 | ' - '(3) |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s[i:j]" | slice of *s* from *i* to *j* | ' - '(3)(4) |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s[i:j:k]" | slice of *s* from *i* to *j* | ' - '(3)(5) |\n' - '| | with step *k* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "len(s)" | length of *s* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "min(s)" | smallest item of *s* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "max(s)" | largest item of *s* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s.index(x)" | index of the first occurrence of ' - '| |\n' - '| | *x* in *s* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '| "s.count(x)" | total number of occurrences of ' - '| |\n' - '| | *x* in *s* ' - '| |\n' - '+--------------------+----------------------------------+------------+\n' - '\n' - 'Sequence types also support comparisons. In particular, tuples ' - 'and\n' - 'lists are compared lexicographically by comparing corresponding\n' - 'elements. This means that to compare equal, every element must ' - 'compare\n' - 'equal and the two sequences must be of the same type and have ' - 'the same\n' - 'length. (For full details see Comparisons in the language ' - 'reference.)\n' - '\n' - 'Notes:\n' - '\n' - '1. When *s* is a string or Unicode string object the "in" and ' - '"not\n' - ' in" operations act like a substring test. In Python ' - 'versions\n' - ' before 2.3, *x* had to be a string of length 1. In Python 2.3 ' - 'and\n' - ' beyond, *x* may be a string of any length.\n' - '\n' - '2. Values of *n* less than "0" are treated as "0" (which yields ' - 'an\n' - ' empty sequence of the same type as *s*). Note that items in ' - 'the\n' - ' sequence *s* are not copied; they are referenced multiple ' - 'times.\n' - ' This often haunts new Python programmers; consider:\n' - '\n' - ' >>> lists = [[]] * 3\n' - ' >>> lists\n' - ' [[], [], []]\n' - ' >>> lists[0].append(3)\n' - ' >>> lists\n' - ' [[3], [3], [3]]\n' - '\n' - ' What has happened is that "[[]]" is a one-element list ' - 'containing\n' - ' an empty list, so all three elements of "[[]] * 3" are ' - 'references\n' - ' to this single empty list. Modifying any of the elements of\n' - ' "lists" modifies this single list. You can create a list of\n' - ' different lists this way:\n' - '\n' - ' >>> lists = [[] for i in range(3)]\n' - ' >>> lists[0].append(3)\n' - ' >>> lists[1].append(5)\n' - ' >>> lists[2].append(7)\n' - ' >>> lists\n' - ' [[3], [5], [7]]\n' - '\n' - ' Further explanation is available in the FAQ entry How do I ' - 'create a\n' - ' multidimensional list?.\n' - '\n' - '3. If *i* or *j* is negative, the index is relative to the end ' - 'of\n' - ' the string: "len(s) + i" or "len(s) + j" is substituted. But ' - 'note\n' - ' that "-0" is still "0".\n' - '\n' - '4. The slice of *s* from *i* to *j* is defined as the sequence ' - 'of\n' - ' items with index *k* such that "i <= k < j". If *i* or *j* ' - 'is\n' - ' greater than "len(s)", use "len(s)". If *i* is omitted or ' - '"None",\n' - ' use "0". If *j* is omitted or "None", use "len(s)". If *i* ' - 'is\n' - ' greater than or equal to *j*, the slice is empty.\n' - '\n' - '5. The slice of *s* from *i* to *j* with step *k* is defined as ' - 'the\n' - ' sequence of items with index "x = i + n*k" such that "0 <= n ' - '<\n' - ' (j-i)/k". In other words, the indices are "i", "i+k", ' - '"i+2*k",\n' - ' "i+3*k" and so on, stopping when *j* is reached (but never\n' - ' including *j*). If *i* or *j* is greater than "len(s)", use\n' - ' "len(s)". If *i* or *j* are omitted or "None", they become ' - '"end"\n' - ' values (which end depends on the sign of *k*). Note, *k* ' - 'cannot be\n' - ' zero. If *k* is "None", it is treated like "1".\n' - '\n' - '6. **CPython implementation detail:** If *s* and *t* are both\n' - ' strings, some Python implementations such as CPython can ' - 'usually\n' - ' perform an in-place optimization for assignments of the form ' - '"s = s\n' - ' + t" or "s += t". When applicable, this optimization makes\n' - ' quadratic run-time much less likely. This optimization is ' - 'both\n' - ' version and implementation dependent. For performance ' - 'sensitive\n' - ' code, it is preferable to use the "str.join()" method which ' - 'assures\n' - ' consistent linear concatenation performance across versions ' - 'and\n' - ' implementations.\n' - '\n' - ' Changed in version 2.4: Formerly, string concatenation never\n' - ' occurred in-place.\n' - '\n' - '\n' - 'String Methods\n' - '==============\n' - '\n' - 'Below are listed the string methods which both 8-bit strings ' - 'and\n' - 'Unicode objects support. Some of them are also available on\n' - '"bytearray" objects.\n' - '\n' - "In addition, Python's strings support the sequence type methods\n" - 'described in the Sequence Types --- str, unicode, list, tuple,\n' - 'bytearray, buffer, xrange section. To output formatted strings ' - 'use\n' - 'template strings or the "%" operator described in the String\n' - 'Formatting Operations section. Also, see the "re" module for ' - 'string\n' - 'functions based on regular expressions.\n' - '\n' - 'str.capitalize()\n' - '\n' - ' Return a copy of the string with its first character ' - 'capitalized\n' - ' and the rest lowercased.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.center(width[, fillchar])\n' - '\n' - ' Return centered in a string of length *width*. Padding is ' - 'done\n' - ' using the specified *fillchar* (default is a space).\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* argument.\n' - '\n' - 'str.count(sub[, start[, end]])\n' - '\n' - ' Return the number of non-overlapping occurrences of substring ' - '*sub*\n' - ' in the range [*start*, *end*]. Optional arguments *start* ' - 'and\n' - ' *end* are interpreted as in slice notation.\n' - '\n' - 'str.decode([encoding[, errors]])\n' - '\n' - ' Decodes the string using the codec registered for ' - '*encoding*.\n' - ' *encoding* defaults to the default string encoding. *errors* ' - 'may\n' - ' be given to set a different error handling scheme. The ' - 'default is\n' - ' "\'strict\'", meaning that encoding errors raise ' - '"UnicodeError".\n' - ' Other possible values are "\'ignore\'", "\'replace\'" and any ' - 'other\n' - ' name registered via "codecs.register_error()", see section ' - 'Codec\n' - ' Base Classes.\n' - '\n' - ' New in version 2.2.\n' - '\n' - ' Changed in version 2.3: Support for other error handling ' - 'schemes\n' - ' added.\n' - '\n' - ' Changed in version 2.7: Support for keyword arguments added.\n' - '\n' - 'str.encode([encoding[, errors]])\n' - '\n' - ' Return an encoded version of the string. Default encoding is ' - 'the\n' - ' current default string encoding. *errors* may be given to ' - 'set a\n' - ' different error handling scheme. The default for *errors* ' - 'is\n' - ' "\'strict\'", meaning that encoding errors raise a ' - '"UnicodeError".\n' - ' Other possible values are "\'ignore\'", "\'replace\'",\n' - ' "\'xmlcharrefreplace\'", "\'backslashreplace\'" and any other ' - 'name\n' - ' registered via "codecs.register_error()", see section Codec ' - 'Base\n' - ' Classes. For a list of possible encodings, see section ' - 'Standard\n' - ' Encodings.\n' - '\n' - ' New in version 2.0.\n' - '\n' - ' Changed in version 2.3: Support for "\'xmlcharrefreplace\'" ' - 'and\n' - ' "\'backslashreplace\'" and other error handling schemes ' - 'added.\n' - '\n' - ' Changed in version 2.7: Support for keyword arguments added.\n' - '\n' - 'str.endswith(suffix[, start[, end]])\n' - '\n' - ' Return "True" if the string ends with the specified ' - '*suffix*,\n' - ' otherwise return "False". *suffix* can also be a tuple of ' - 'suffixes\n' - ' to look for. With optional *start*, test beginning at that\n' - ' position. With optional *end*, stop comparing at that ' - 'position.\n' - '\n' - ' Changed in version 2.5: Accept tuples as *suffix*.\n' - '\n' - 'str.expandtabs([tabsize])\n' - '\n' - ' Return a copy of the string where all tab characters are ' - 'replaced\n' - ' by one or more spaces, depending on the current column and ' - 'the\n' - ' given tab size. Tab positions occur every *tabsize* ' - 'characters\n' - ' (default is 8, giving tab positions at columns 0, 8, 16 and ' - 'so on).\n' - ' To expand the string, the current column is set to zero and ' - 'the\n' - ' string is examined character by character. If the character ' - 'is a\n' - ' tab ("\\t"), one or more space characters are inserted in the ' - 'result\n' - ' until the current column is equal to the next tab position. ' - '(The\n' - ' tab character itself is not copied.) If the character is a ' - 'newline\n' - ' ("\\n") or return ("\\r"), it is copied and the current ' - 'column is\n' - ' reset to zero. Any other character is copied unchanged and ' - 'the\n' - ' current column is incremented by one regardless of how the\n' - ' character is represented when printed.\n' - '\n' - " >>> '01\\t012\\t0123\\t01234'.expandtabs()\n" - " '01 012 0123 01234'\n" - " >>> '01\\t012\\t0123\\t01234'.expandtabs(4)\n" - " '01 012 0123 01234'\n" - '\n' - 'str.find(sub[, start[, end]])\n' - '\n' - ' Return the lowest index in the string where substring *sub* ' - 'is\n' - ' found within the slice "s[start:end]". Optional arguments ' - '*start*\n' - ' and *end* are interpreted as in slice notation. Return "-1" ' - 'if\n' - ' *sub* is not found.\n' - '\n' - ' Note: The "find()" method should be used only if you need to ' - 'know\n' - ' the position of *sub*. To check if *sub* is a substring or ' - 'not,\n' - ' use the "in" operator:\n' - '\n' - " >>> 'Py' in 'Python'\n" - ' True\n' - '\n' - 'str.format(*args, **kwargs)\n' - '\n' - ' Perform a string formatting operation. The string on which ' - 'this\n' - ' method is called can contain literal text or replacement ' - 'fields\n' - ' delimited by braces "{}". Each replacement field contains ' - 'either\n' - ' the numeric index of a positional argument, or the name of a\n' - ' keyword argument. Returns a copy of the string where each\n' - ' replacement field is replaced with the string value of the\n' - ' corresponding argument.\n' - '\n' - ' >>> "The sum of 1 + 2 is {0}".format(1+2)\n' - " 'The sum of 1 + 2 is 3'\n" - '\n' - ' See Format String Syntax for a description of the various\n' - ' formatting options that can be specified in format strings.\n' - '\n' - ' This method of string formatting is the new standard in ' - 'Python 3,\n' - ' and should be preferred to the "%" formatting described in ' - 'String\n' - ' Formatting Operations in new code.\n' - '\n' - ' New in version 2.6.\n' - '\n' - 'str.index(sub[, start[, end]])\n' - '\n' - ' Like "find()", but raise "ValueError" when the substring is ' - 'not\n' - ' found.\n' - '\n' - 'str.isalnum()\n' - '\n' - ' Return true if all characters in the string are alphanumeric ' - 'and\n' - ' there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isalpha()\n' - '\n' - ' Return true if all characters in the string are alphabetic ' - 'and\n' - ' there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isdigit()\n' - '\n' - ' Return true if all characters in the string are digits and ' - 'there is\n' - ' at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.islower()\n' - '\n' - ' Return true if all cased characters [4] in the string are ' - 'lowercase\n' - ' and there is at least one cased character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isspace()\n' - '\n' - ' Return true if there are only whitespace characters in the ' - 'string\n' - ' and there is at least one character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.istitle()\n' - '\n' - ' Return true if the string is a titlecased string and there is ' - 'at\n' - ' least one character, for example uppercase characters may ' - 'only\n' - ' follow uncased characters and lowercase characters only cased ' - 'ones.\n' - ' Return false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.isupper()\n' - '\n' - ' Return true if all cased characters [4] in the string are ' - 'uppercase\n' - ' and there is at least one cased character, false otherwise.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.join(iterable)\n' - '\n' - ' Return a string which is the concatenation of the strings in ' - 'the\n' - ' *iterable* *iterable*. The separator between elements is ' - 'the\n' - ' string providing this method.\n' - '\n' - 'str.ljust(width[, fillchar])\n' - '\n' - ' Return the string left justified in a string of length ' - '*width*.\n' - ' Padding is done using the specified *fillchar* (default is a\n' - ' space). The original string is returned if *width* is less ' - 'than or\n' - ' equal to "len(s)".\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* argument.\n' - '\n' - 'str.lower()\n' - '\n' - ' Return a copy of the string with all the cased characters ' - '[4]\n' - ' converted to lowercase.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.lstrip([chars])\n' - '\n' - ' Return a copy of the string with leading characters removed. ' - 'The\n' - ' *chars* argument is a string specifying the set of characters ' - 'to be\n' - ' removed. If omitted or "None", the *chars* argument defaults ' - 'to\n' - ' removing whitespace. The *chars* argument is not a prefix; ' - 'rather,\n' - ' all combinations of its values are stripped:\n' - '\n' - " >>> ' spacious '.lstrip()\n" - " 'spacious '\n" - " >>> 'www.example.com'.lstrip('cmowz.')\n" - " 'example.com'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* argument.\n' - '\n' - 'str.partition(sep)\n' - '\n' - ' Split the string at the first occurrence of *sep*, and return ' - 'a\n' - ' 3-tuple containing the part before the separator, the ' - 'separator\n' - ' itself, and the part after the separator. If the separator ' - 'is not\n' - ' found, return a 3-tuple containing the string itself, ' - 'followed by\n' - ' two empty strings.\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'str.replace(old, new[, count])\n' - '\n' - ' Return a copy of the string with all occurrences of substring ' - '*old*\n' - ' replaced by *new*. If the optional argument *count* is ' - 'given, only\n' - ' the first *count* occurrences are replaced.\n' - '\n' - 'str.rfind(sub[, start[, end]])\n' - '\n' - ' Return the highest index in the string where substring *sub* ' - 'is\n' - ' found, such that *sub* is contained within "s[start:end]".\n' - ' Optional arguments *start* and *end* are interpreted as in ' - 'slice\n' - ' notation. Return "-1" on failure.\n' - '\n' - 'str.rindex(sub[, start[, end]])\n' - '\n' - ' Like "rfind()" but raises "ValueError" when the substring ' - '*sub* is\n' - ' not found.\n' - '\n' - 'str.rjust(width[, fillchar])\n' - '\n' - ' Return the string right justified in a string of length ' - '*width*.\n' - ' Padding is done using the specified *fillchar* (default is a\n' - ' space). The original string is returned if *width* is less ' - 'than or\n' - ' equal to "len(s)".\n' - '\n' - ' Changed in version 2.4: Support for the *fillchar* argument.\n' - '\n' - 'str.rpartition(sep)\n' - '\n' - ' Split the string at the last occurrence of *sep*, and return ' - 'a\n' - ' 3-tuple containing the part before the separator, the ' - 'separator\n' - ' itself, and the part after the separator. If the separator ' - 'is not\n' - ' found, return a 3-tuple containing two empty strings, ' - 'followed by\n' - ' the string itself.\n' - '\n' - ' New in version 2.5.\n' - '\n' - 'str.rsplit([sep[, maxsplit]])\n' - '\n' - ' Return a list of the words in the string, using *sep* as the\n' - ' delimiter string. If *maxsplit* is given, at most *maxsplit* ' - 'splits\n' - ' are done, the *rightmost* ones. If *sep* is not specified ' - 'or\n' - ' "None", any whitespace string is a separator. Except for ' - 'splitting\n' - ' from the right, "rsplit()" behaves like "split()" which is\n' - ' described in detail below.\n' - '\n' - ' New in version 2.4.\n' - '\n' - 'str.rstrip([chars])\n' - '\n' - ' Return a copy of the string with trailing characters ' - 'removed. The\n' - ' *chars* argument is a string specifying the set of characters ' - 'to be\n' - ' removed. If omitted or "None", the *chars* argument defaults ' - 'to\n' - ' removing whitespace. The *chars* argument is not a suffix; ' - 'rather,\n' - ' all combinations of its values are stripped:\n' - '\n' - " >>> ' spacious '.rstrip()\n" - " ' spacious'\n" - " >>> 'mississippi'.rstrip('ipz')\n" - " 'mississ'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* argument.\n' - '\n' - 'str.split([sep[, maxsplit]])\n' - '\n' - ' Return a list of the words in the string, using *sep* as the\n' - ' delimiter string. If *maxsplit* is given, at most ' - '*maxsplit*\n' - ' splits are done (thus, the list will have at most ' - '"maxsplit+1"\n' - ' elements). If *maxsplit* is not specified or "-1", then ' - 'there is\n' - ' no limit on the number of splits (all possible splits are ' - 'made).\n' - '\n' - ' If *sep* is given, consecutive delimiters are not grouped ' - 'together\n' - ' and are deemed to delimit empty strings (for example,\n' - ' "\'1,,2\'.split(\',\')" returns "[\'1\', \'\', \'2\']"). The ' - '*sep* argument\n' - ' may consist of multiple characters (for example,\n' - ' "\'1<>2<>3\'.split(\'<>\')" returns "[\'1\', \'2\', \'3\']"). ' - 'Splitting an\n' - ' empty string with a specified separator returns "[\'\']".\n' - '\n' - ' If *sep* is not specified or is "None", a different ' - 'splitting\n' - ' algorithm is applied: runs of consecutive whitespace are ' - 'regarded\n' - ' as a single separator, and the result will contain no empty ' - 'strings\n' - ' at the start or end if the string has leading or trailing\n' - ' whitespace. Consequently, splitting an empty string or a ' - 'string\n' - ' consisting of just whitespace with a "None" separator returns ' - '"[]".\n' - '\n' - ' For example, "\' 1 2 3 \'.split()" returns "[\'1\', ' - '\'2\', \'3\']", and\n' - ' "\' 1 2 3 \'.split(None, 1)" returns "[\'1\', \'2 3 ' - '\']".\n' - '\n' - 'str.splitlines([keepends])\n' - '\n' - ' Return a list of the lines in the string, breaking at line\n' - ' boundaries. This method uses the *universal newlines* ' - 'approach to\n' - ' splitting lines. Line breaks are not included in the ' - 'resulting list\n' - ' unless *keepends* is given and true.\n' - '\n' - ' For example, "\'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()" ' - 'returns "[\'ab\n' - ' c\', \'\', \'de fg\', \'kl\']", while the same call with\n' - ' "splitlines(True)" returns "[\'ab c\\n\', \'\\n\', \'de ' - 'fg\\r\', \'kl\\r\\n\']".\n' - '\n' - ' Unlike "split()" when a delimiter string *sep* is given, ' - 'this\n' - ' method returns an empty list for the empty string, and a ' - 'terminal\n' - ' line break does not result in an extra line.\n' - '\n' - 'str.startswith(prefix[, start[, end]])\n' - '\n' - ' Return "True" if string starts with the *prefix*, otherwise ' - 'return\n' - ' "False". *prefix* can also be a tuple of prefixes to look ' - 'for.\n' - ' With optional *start*, test string beginning at that ' - 'position.\n' - ' With optional *end*, stop comparing string at that position.\n' - '\n' - ' Changed in version 2.5: Accept tuples as *prefix*.\n' - '\n' - 'str.strip([chars])\n' - '\n' - ' Return a copy of the string with the leading and trailing\n' - ' characters removed. The *chars* argument is a string ' - 'specifying the\n' - ' set of characters to be removed. If omitted or "None", the ' - '*chars*\n' - ' argument defaults to removing whitespace. The *chars* ' - 'argument is\n' - ' not a prefix or suffix; rather, all combinations of its ' - 'values are\n' - ' stripped:\n' - '\n' - " >>> ' spacious '.strip()\n" - " 'spacious'\n" - " >>> 'www.example.com'.strip('cmowz.')\n" - " 'example'\n" - '\n' - ' Changed in version 2.2.2: Support for the *chars* argument.\n' - '\n' - 'str.swapcase()\n' - '\n' - ' Return a copy of the string with uppercase characters ' - 'converted to\n' - ' lowercase and vice versa.\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.title()\n' - '\n' - ' Return a titlecased version of the string where words start ' - 'with an\n' - ' uppercase character and the remaining characters are ' - 'lowercase.\n' - '\n' - ' The algorithm uses a simple language-independent definition ' - 'of a\n' - ' word as groups of consecutive letters. The definition works ' - 'in\n' - ' many contexts but it means that apostrophes in contractions ' - 'and\n' - ' possessives form word boundaries, which may not be the ' - 'desired\n' - ' result:\n' - '\n' - ' >>> "they\'re bill\'s friends from the UK".title()\n' - ' "They\'Re Bill\'S Friends From The Uk"\n' - '\n' - ' A workaround for apostrophes can be constructed using ' - 'regular\n' - ' expressions:\n' - '\n' - ' >>> import re\n' - ' >>> def titlecase(s):\n' - ' ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n' - ' ... lambda mo: mo.group(0)[0].upper() +\n' - ' ... mo.group(0)[1:].lower(),\n' - ' ... s)\n' - ' ...\n' - ' >>> titlecase("they\'re bill\'s friends.")\n' - ' "They\'re Bill\'s Friends."\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.translate(table[, deletechars])\n' - '\n' - ' Return a copy of the string where all characters occurring in ' - 'the\n' - ' optional argument *deletechars* are removed, and the ' - 'remaining\n' - ' characters have been mapped through the given translation ' - 'table,\n' - ' which must be a string of length 256.\n' - '\n' - ' You can use the "maketrans()" helper function in the ' - '"string"\n' - ' module to create a translation table. For string objects, set ' - 'the\n' - ' *table* argument to "None" for translations that only delete\n' - ' characters:\n' - '\n' - " >>> 'read this short text'.translate(None, 'aeiou')\n" - " 'rd ths shrt txt'\n" - '\n' - ' New in version 2.6: Support for a "None" *table* argument.\n' - '\n' - ' For Unicode objects, the "translate()" method does not accept ' - 'the\n' - ' optional *deletechars* argument. Instead, it returns a copy ' - 'of the\n' - ' *s* where all characters have been mapped through the given\n' - ' translation table which must be a mapping of Unicode ordinals ' - 'to\n' - ' Unicode ordinals, Unicode strings or "None". Unmapped ' - 'characters\n' - ' are left untouched. Characters mapped to "None" are deleted. ' - 'Note,\n' - ' a more flexible approach is to create a custom character ' - 'mapping\n' - ' codec using the "codecs" module (see "encodings.cp1251" for ' - 'an\n' - ' example).\n' - '\n' - 'str.upper()\n' - '\n' - ' Return a copy of the string with all the cased characters ' - '[4]\n' - ' converted to uppercase. Note that "str.upper().isupper()" ' - 'might be\n' - ' "False" if "s" contains uncased characters or if the Unicode\n' - ' category of the resulting character(s) is not "Lu" (Letter,\n' - ' uppercase), but e.g. "Lt" (Letter, titlecase).\n' - '\n' - ' For 8-bit strings, this method is locale-dependent.\n' - '\n' - 'str.zfill(width)\n' - '\n' - ' Return the numeric string left filled with zeros in a string ' - 'of\n' - ' length *width*. A sign prefix is handled correctly. The ' - 'original\n' - ' string is returned if *width* is less than or equal to ' - '"len(s)".\n' - '\n' - ' New in version 2.2.2.\n' - '\n' - 'The following methods are present only on unicode objects:\n' - '\n' - 'unicode.isnumeric()\n' - '\n' - ' Return "True" if there are only numeric characters in S, ' - '"False"\n' - ' otherwise. Numeric characters include digit characters, and ' - 'all\n' - ' characters that have the Unicode numeric value property, ' - 'e.g.\n' - ' U+2155, VULGAR FRACTION ONE FIFTH.\n' - '\n' - 'unicode.isdecimal()\n' - '\n' - ' Return "True" if there are only decimal characters in S, ' - '"False"\n' - ' otherwise. Decimal characters include digit characters, and ' - 'all\n' - ' characters that can be used to form decimal-radix numbers, ' - 'e.g.\n' - ' U+0660, ARABIC-INDIC DIGIT ZERO.\n' - '\n' - '\n' - 'String Formatting Operations\n' - '============================\n' - '\n' - 'String and Unicode objects have one unique built-in operation: ' - 'the "%"\n' - 'operator (modulo). This is also known as the string ' - '*formatting* or\n' - '*interpolation* operator. Given "format % values" (where ' - '*format* is\n' - 'a string or Unicode object), "%" conversion specifications in ' - '*format*\n' - 'are replaced with zero or more elements of *values*. The effect ' - 'is\n' - 'similar to the using "sprintf()" in the C language. If *format* ' - 'is a\n' - 'Unicode object, or if any of the objects being converted using ' - 'the\n' - '"%s" conversion are Unicode objects, the result will also be a ' - 'Unicode\n' - 'object.\n' - '\n' - 'If *format* requires a single argument, *values* may be a single ' - 'non-\n' - 'tuple object. [5] Otherwise, *values* must be a tuple with ' - 'exactly\n' - 'the number of items specified by the format string, or a single\n' - 'mapping object (for example, a dictionary).\n' - '\n' - 'A conversion specifier contains two or more characters and has ' - 'the\n' - 'following components, which must occur in this order:\n' - '\n' - '1. The "\'%\'" character, which marks the start of the ' - 'specifier.\n' - '\n' - '2. Mapping key (optional), consisting of a parenthesised ' - 'sequence\n' - ' of characters (for example, "(somename)").\n' - '\n' - '3. Conversion flags (optional), which affect the result of some\n' - ' conversion types.\n' - '\n' - '4. Minimum field width (optional). If specified as an "\'*\'"\n' - ' (asterisk), the actual width is read from the next element of ' - 'the\n' - ' tuple in *values*, and the object to convert comes after the\n' - ' minimum field width and optional precision.\n' - '\n' - '5. Precision (optional), given as a "\'.\'" (dot) followed by ' - 'the\n' - ' precision. If specified as "\'*\'" (an asterisk), the actual ' - 'width\n' - ' is read from the next element of the tuple in *values*, and ' - 'the\n' - ' value to convert comes after the precision.\n' - '\n' - '6. Length modifier (optional).\n' - '\n' - '7. Conversion type.\n' - '\n' - 'When the right argument is a dictionary (or other mapping type), ' - 'then\n' - 'the formats in the string *must* include a parenthesised mapping ' - 'key\n' - 'into that dictionary inserted immediately after the "\'%\'" ' - 'character.\n' - 'The mapping key selects the value to be formatted from the ' - 'mapping.\n' - 'For example:\n' - '\n' - ">>> print '%(language)s has %(number)03d quote types.' % \\\n" - '... {"language": "Python", "number": 2}\n' - 'Python has 002 quote types.\n' - '\n' - 'In this case no "*" specifiers may occur in a format (since ' - 'they\n' - 'require a sequential parameter list).\n' - '\n' - 'The conversion flag characters are:\n' - '\n' - '+-----------+-----------------------------------------------------------------------+\n' - '| Flag | ' - 'Meaning ' - '|\n' - '+===========+=======================================================================+\n' - '| "\'#\'" | The value conversion will use the "alternate ' - 'form" (where defined |\n' - '| | ' - 'below). ' - '|\n' - '+-----------+-----------------------------------------------------------------------+\n' - '| "\'0\'" | The conversion will be zero padded for numeric ' - 'values. |\n' - '+-----------+-----------------------------------------------------------------------+\n' - '| "\'-\'" | The converted value is left adjusted (overrides ' - 'the "\'0\'" conversion |\n' - '| | if both are ' - 'given). |\n' - '+-----------+-----------------------------------------------------------------------+\n' - '| "\' \'" | (a space) A blank should be left before a ' - 'positive number (or empty |\n' - '| | string) produced by a signed ' - 'conversion. |\n' - '+-----------+-----------------------------------------------------------------------+\n' - '| "\'+\'" | A sign character ("\'+\'" or "\'-\'") will ' - 'precede the conversion |\n' - '| | (overrides a "space" ' - 'flag). |\n' - '+-----------+-----------------------------------------------------------------------+\n' - '\n' - 'A length modifier ("h", "l", or "L") may be present, but is ' - 'ignored as\n' - 'it is not necessary for Python -- so e.g. "%ld" is identical to ' - '"%d".\n' - '\n' - 'The conversion types are:\n' - '\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| Conversion | ' - 'Meaning | Notes ' - '|\n' - '+==============+=======================================================+=========+\n' - '| "\'d\'" | Signed integer ' - 'decimal. | |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'i\'" | Signed integer ' - 'decimal. | |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'o\'" | Signed octal ' - 'value. | (1) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'u\'" | Obsolete type -- it is identical to ' - '"\'d\'". | (7) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'x\'" | Signed hexadecimal ' - '(lowercase). | (2) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'X\'" | Signed hexadecimal ' - '(uppercase). | (2) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'e\'" | Floating point exponential format ' - '(lowercase). | (3) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'E\'" | Floating point exponential format ' - '(uppercase). | (3) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'f\'" | Floating point decimal ' - 'format. | (3) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'F\'" | Floating point decimal ' - 'format. | (3) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'g\'" | Floating point format. Uses lowercase ' - 'exponential | (4) |\n' - '| | format if exponent is less than -4 or not less ' - 'than | |\n' - '| | precision, decimal format ' - 'otherwise. | |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'G\'" | Floating point format. Uses uppercase ' - 'exponential | (4) |\n' - '| | format if exponent is less than -4 or not less ' - 'than | |\n' - '| | precision, decimal format ' - 'otherwise. | |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'c\'" | Single character (accepts integer or single ' - 'character | |\n' - '| | ' - 'string). | ' - '|\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'r\'" | String (converts any Python object using ' - 'repr()). | (5) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'s\'" | String (converts any Python object using ' - '"str()"). | (6) |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '| "\'%\'" | No argument is converted, results in a ' - '"\'%\'" | |\n' - '| | character in the ' - 'result. | |\n' - '+--------------+-------------------------------------------------------+---------+\n' - '\n' - 'Notes:\n' - '\n' - '1. The alternate form causes a leading zero ("\'0\'") to be ' - 'inserted\n' - ' between left-hand padding and the formatting of the number if ' - 'the\n' - ' leading character of the result is not already a zero.\n' - '\n' - '2. The alternate form causes a leading "\'0x\'" or "\'0X\'" ' - '(depending\n' - ' on whether the "\'x\'" or "\'X\'" format was used) to be ' - 'inserted\n' - ' between left-hand padding and the formatting of the number if ' - 'the\n' - ' leading character of the result is not already a zero.\n' - '\n' - '3. The alternate form causes the result to always contain a ' - 'decimal\n' - ' point, even if no digits follow it.\n' - '\n' - ' The precision determines the number of digits after the ' - 'decimal\n' - ' point and defaults to 6.\n' - '\n' - '4. The alternate form causes the result to always contain a ' - 'decimal\n' - ' point, and trailing zeroes are not removed as they would ' - 'otherwise\n' - ' be.\n' - '\n' - ' The precision determines the number of significant digits ' - 'before\n' - ' and after the decimal point and defaults to 6.\n' - '\n' - '5. The "%r" conversion was added in Python 2.0.\n' - '\n' - ' The precision determines the maximal number of characters ' - 'used.\n' - '\n' - '6. If the object or format provided is a "unicode" string, the\n' - ' resulting string will also be "unicode".\n' - '\n' - ' The precision determines the maximal number of characters ' - 'used.\n' - '\n' - '7. See **PEP 237**.\n' - '\n' - 'Since Python strings have an explicit length, "%s" conversions ' - 'do not\n' - 'assume that "\'\\0\'" is the end of the string.\n' - '\n' - 'Changed in version 2.7: "%f" conversions for numbers whose ' - 'absolute\n' - 'value is over 1e50 are no longer replaced by "%g" conversions.\n' - '\n' - 'Additional string operations are defined in standard modules ' - '"string"\n' - 'and "re".\n' - '\n' - '\n' - 'XRange Type\n' - '===========\n' - '\n' - 'The "xrange" type is an immutable sequence which is commonly ' - 'used for\n' - 'looping. The advantage of the "xrange" type is that an ' - '"xrange"\n' - 'object will always take the same amount of memory, no matter the ' - 'size\n' - 'of the range it represents. There are no consistent ' - 'performance\n' - 'advantages.\n' - '\n' - 'XRange objects have very little behavior: they only support ' - 'indexing,\n' - 'iteration, and the "len()" function.\n' - '\n' - '\n' - 'Mutable Sequence Types\n' - '======================\n' - '\n' - 'List and "bytearray" objects support additional operations that ' - 'allow\n' - 'in-place modification of the object. Other mutable sequence ' - 'types\n' - '(when added to the language) should also support these ' - 'operations.\n' - 'Strings and tuples are immutable sequence types: such objects ' - 'cannot\n' - 'be modified once created. The following operations are defined ' - 'on\n' - 'mutable sequence types (where *x* is an arbitrary object):\n' - '\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| Operation | ' - 'Result | Notes |\n' - '+================================+==================================+=======================+\n' - '| "s[i] = x" | item *i* of *s* is replaced ' - 'by | |\n' - '| | ' - '*x* | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s[i:j] = t" | slice of *s* from *i* to *j* ' - 'is | |\n' - '| | replaced by the contents of ' - 'the | |\n' - '| | iterable ' - '*t* | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "del s[i:j]" | same as "s[i:j] = ' - '[]" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s[i:j:k] = t" | the elements of "s[i:j:k]" ' - 'are | (1) |\n' - '| | replaced by those of ' - '*t* | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "del s[i:j:k]" | removes the elements ' - 'of | |\n' - '| | "s[i:j:k]" from the ' - 'list | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.append(x)" | same as "s[len(s):len(s)] = ' - '[x]" | (2) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.extend(x)" or "s += t" | for the most part the same ' - 'as | (3) |\n' - '| | "s[len(s):len(s)] = ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s *= n" | updates *s* with its ' - 'contents | (11) |\n' - '| | repeated *n* ' - 'times | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.count(x)" | return number of *i*\'s for ' - 'which | |\n' - '| | "s[i] == ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.index(x[, i[, j]])" | return smallest *k* such ' - 'that | (4) |\n' - '| | "s[k] == x" and "i <= k < ' - 'j" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.insert(i, x)" | same as "s[i:i] = ' - '[x]" | (5) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.pop([i])" | same as "x = s[i]; del ' - 's[i]; | (6) |\n' - '| | return ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.remove(x)" | same as "del ' - 's[s.index(x)]" | (4) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.reverse()" | reverses the items of *s* ' - 'in | (7) |\n' - '| | ' - 'place | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.sort([cmp[, key[, | sort the items of *s* in ' - 'place | (7)(8)(9)(10) |\n' - '| reverse]]])" ' - '| | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '\n' - 'Notes:\n' - '\n' - '1. *t* must have the same length as the slice it is replacing.\n' - '\n' - '2. The C implementation of Python has historically accepted\n' - ' multiple parameters and implicitly joined them into a tuple; ' - 'this\n' - ' no longer works in Python 2.0. Use of this misfeature has ' - 'been\n' - ' deprecated since Python 1.4.\n' - '\n' - '3. *x* can be any iterable object.\n' - '\n' - '4. Raises "ValueError" when *x* is not found in *s*. When a\n' - ' negative index is passed as the second or third parameter to ' - 'the\n' - ' "index()" method, the list length is added, as for slice ' - 'indices.\n' - ' If it is still negative, it is truncated to zero, as for ' - 'slice\n' - ' indices.\n' - '\n' - ' Changed in version 2.3: Previously, "index()" didn\'t have ' - 'arguments\n' - ' for specifying start and stop positions.\n' - '\n' - '5. When a negative index is passed as the first parameter to ' - 'the\n' - ' "insert()" method, the list length is added, as for slice ' - 'indices.\n' - ' If it is still negative, it is truncated to zero, as for ' - 'slice\n' - ' indices.\n' - '\n' - ' Changed in version 2.3: Previously, all negative indices ' - 'were\n' - ' truncated to zero.\n' - '\n' - '6. The "pop()" method\'s optional argument *i* defaults to "-1", ' - 'so\n' - ' that by default the last item is removed and returned.\n' - '\n' - '7. The "sort()" and "reverse()" methods modify the list in ' - 'place\n' - ' for economy of space when sorting or reversing a large list. ' - 'To\n' - " remind you that they operate by side effect, they don't " - 'return the\n' - ' sorted or reversed list.\n' - '\n' - '8. The "sort()" method takes optional arguments for controlling ' - 'the\n' - ' comparisons.\n' - '\n' - ' *cmp* specifies a custom comparison function of two arguments ' - '(list\n' - ' items) which should return a negative, zero or positive ' - 'number\n' - ' depending on whether the first argument is considered smaller ' - 'than,\n' - ' equal to, or larger than the second argument: "cmp=lambda ' - 'x,y:\n' - ' cmp(x.lower(), y.lower())". The default value is "None".\n' - '\n' - ' *key* specifies a function of one argument that is used to ' - 'extract\n' - ' a comparison key from each list element: "key=str.lower". ' - 'The\n' - ' default value is "None".\n' - '\n' - ' *reverse* is a boolean value. If set to "True", then the ' - 'list\n' - ' elements are sorted as if each comparison were reversed.\n' - '\n' - ' In general, the *key* and *reverse* conversion processes are ' - 'much\n' - ' faster than specifying an equivalent *cmp* function. This ' - 'is\n' - ' because *cmp* is called multiple times for each list element ' - 'while\n' - ' *key* and *reverse* touch each element only once. Use\n' - ' "functools.cmp_to_key()" to convert an old-style *cmp* ' - 'function to\n' - ' a *key* function.\n' - '\n' - ' Changed in version 2.3: Support for "None" as an equivalent ' - 'to\n' - ' omitting *cmp* was added.\n' - '\n' - ' Changed in version 2.4: Support for *key* and *reverse* was ' - 'added.\n' - '\n' - '9. Starting with Python 2.3, the "sort()" method is guaranteed ' - 'to\n' - ' be stable. A sort is stable if it guarantees not to change ' - 'the\n' - ' relative order of elements that compare equal --- this is ' - 'helpful\n' - ' for sorting in multiple passes (for example, sort by ' - 'department,\n' - ' then by salary grade).\n' - '\n' - '10. **CPython implementation detail:** While a list is being\n' - ' sorted, the effect of attempting to mutate, or even inspect, ' - 'the\n' - ' list is undefined. The C implementation of Python 2.3 and ' - 'newer\n' - ' makes the list appear empty for the duration, and raises\n' - ' "ValueError" if it can detect that the list has been ' - 'mutated\n' - ' during a sort.\n' - '\n' - '11. The value *n* is an integer, or an object implementing\n' - ' "__index__()". Zero and negative values of *n* clear the\n' - ' sequence. Items in the sequence are not copied; they are\n' - ' referenced multiple times, as explained for "s * n" under ' - 'Sequence\n' - ' Types --- str, unicode, list, tuple, bytearray, buffer, ' - 'xrange.\n', - 'typesseq-mutable': '\n' - 'Mutable Sequence Types\n' - '**********************\n' - '\n' - 'List and "bytearray" objects support additional ' - 'operations that allow\n' - 'in-place modification of the object. Other mutable ' - 'sequence types\n' - '(when added to the language) should also support these ' - 'operations.\n' - 'Strings and tuples are immutable sequence types: such ' - 'objects cannot\n' - 'be modified once created. The following operations are ' - 'defined on\n' - 'mutable sequence types (where *x* is an arbitrary ' - 'object):\n' - '\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| Operation | ' - 'Result | Notes ' - '|\n' - '+================================+==================================+=======================+\n' - '| "s[i] = x" | item *i* of *s* is ' - 'replaced by | |\n' - '| | ' - '*x* | ' - '|\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s[i:j] = t" | slice of *s* from *i* ' - 'to *j* is | |\n' - '| | replaced by the ' - 'contents of the | |\n' - '| | iterable ' - '*t* | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "del s[i:j]" | same as "s[i:j] = ' - '[]" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s[i:j:k] = t" | the elements of ' - '"s[i:j:k]" are | (1) |\n' - '| | replaced by those of ' - '*t* | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "del s[i:j:k]" | removes the elements ' - 'of | |\n' - '| | "s[i:j:k]" from the ' - 'list | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.append(x)" | same as ' - '"s[len(s):len(s)] = [x]" | (2) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.extend(x)" or "s += t" | for the most part the ' - 'same as | (3) |\n' - '| | "s[len(s):len(s)] = ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s *= n" | updates *s* with its ' - 'contents | (11) |\n' - '| | repeated *n* ' - 'times | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.count(x)" | return number of ' - "*i*'s for which | |\n" - '| | "s[i] == ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.index(x[, i[, j]])" | return smallest *k* ' - 'such that | (4) |\n' - '| | "s[k] == x" and "i <= ' - 'k < j" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.insert(i, x)" | same as "s[i:i] = ' - '[x]" | (5) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.pop([i])" | same as "x = s[i]; ' - 'del s[i]; | (6) |\n' - '| | return ' - 'x" | |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.remove(x)" | same as "del ' - 's[s.index(x)]" | (4) |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.reverse()" | reverses the items of ' - '*s* in | (7) |\n' - '| | ' - 'place | ' - '|\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.sort([cmp[, key[, | sort the items of *s* ' - 'in place | (7)(8)(9)(10) |\n' - '| reverse]]])" ' - '| ' - '| |\n' - '+--------------------------------+----------------------------------+-----------------------+\n' - '\n' - 'Notes:\n' - '\n' - '1. *t* must have the same length as the slice it is ' - 'replacing.\n' - '\n' - '2. The C implementation of Python has historically ' - 'accepted\n' - ' multiple parameters and implicitly joined them into a ' - 'tuple; this\n' - ' no longer works in Python 2.0. Use of this ' - 'misfeature has been\n' - ' deprecated since Python 1.4.\n' - '\n' - '3. *x* can be any iterable object.\n' - '\n' - '4. Raises "ValueError" when *x* is not found in *s*. ' - 'When a\n' - ' negative index is passed as the second or third ' - 'parameter to the\n' - ' "index()" method, the list length is added, as for ' - 'slice indices.\n' - ' If it is still negative, it is truncated to zero, as ' - 'for slice\n' - ' indices.\n' - '\n' - ' Changed in version 2.3: Previously, "index()" didn\'t ' - 'have arguments\n' - ' for specifying start and stop positions.\n' - '\n' - '5. When a negative index is passed as the first ' - 'parameter to the\n' - ' "insert()" method, the list length is added, as for ' - 'slice indices.\n' - ' If it is still negative, it is truncated to zero, as ' - 'for slice\n' - ' indices.\n' - '\n' - ' Changed in version 2.3: Previously, all negative ' - 'indices were\n' - ' truncated to zero.\n' - '\n' - '6. The "pop()" method\'s optional argument *i* defaults ' - 'to "-1", so\n' - ' that by default the last item is removed and ' - 'returned.\n' - '\n' - '7. The "sort()" and "reverse()" methods modify the list ' - 'in place\n' - ' for economy of space when sorting or reversing a ' - 'large list. To\n' - ' remind you that they operate by side effect, they ' - "don't return the\n" - ' sorted or reversed list.\n' - '\n' - '8. The "sort()" method takes optional arguments for ' - 'controlling the\n' - ' comparisons.\n' - '\n' - ' *cmp* specifies a custom comparison function of two ' - 'arguments (list\n' - ' items) which should return a negative, zero or ' - 'positive number\n' - ' depending on whether the first argument is considered ' - 'smaller than,\n' - ' equal to, or larger than the second argument: ' - '"cmp=lambda x,y:\n' - ' cmp(x.lower(), y.lower())". The default value is ' - '"None".\n' - '\n' - ' *key* specifies a function of one argument that is ' - 'used to extract\n' - ' a comparison key from each list element: ' - '"key=str.lower". The\n' - ' default value is "None".\n' - '\n' - ' *reverse* is a boolean value. If set to "True", then ' - 'the list\n' - ' elements are sorted as if each comparison were ' - 'reversed.\n' - '\n' - ' In general, the *key* and *reverse* conversion ' - 'processes are much\n' - ' faster than specifying an equivalent *cmp* function. ' - 'This is\n' - ' because *cmp* is called multiple times for each list ' - 'element while\n' - ' *key* and *reverse* touch each element only once. ' - 'Use\n' - ' "functools.cmp_to_key()" to convert an old-style ' - '*cmp* function to\n' - ' a *key* function.\n' - '\n' - ' Changed in version 2.3: Support for "None" as an ' - 'equivalent to\n' - ' omitting *cmp* was added.\n' - '\n' - ' Changed in version 2.4: Support for *key* and ' - '*reverse* was added.\n' - '\n' - '9. Starting with Python 2.3, the "sort()" method is ' - 'guaranteed to\n' - ' be stable. A sort is stable if it guarantees not to ' - 'change the\n' - ' relative order of elements that compare equal --- ' - 'this is helpful\n' - ' for sorting in multiple passes (for example, sort by ' - 'department,\n' - ' then by salary grade).\n' - '\n' - '10. **CPython implementation detail:** While a list is ' - 'being\n' - ' sorted, the effect of attempting to mutate, or even ' - 'inspect, the\n' - ' list is undefined. The C implementation of Python ' - '2.3 and newer\n' - ' makes the list appear empty for the duration, and ' - 'raises\n' - ' "ValueError" if it can detect that the list has been ' - 'mutated\n' - ' during a sort.\n' - '\n' - '11. The value *n* is an integer, or an object ' - 'implementing\n' - ' "__index__()". Zero and negative values of *n* ' - 'clear the\n' - ' sequence. Items in the sequence are not copied; ' - 'they are\n' - ' referenced multiple times, as explained for "s * n" ' - 'under Sequence\n' - ' Types --- str, unicode, list, tuple, bytearray, ' - 'buffer, xrange.\n', - 'unary': '\n' - 'Unary arithmetic and bitwise operations\n' - '***************************************\n' - '\n' - 'All unary arithmetic and bitwise operations have the same ' - 'priority:\n' - '\n' - ' u_expr ::= power | "-" u_expr | "+" u_expr | "~" u_expr\n' - '\n' - 'The unary "-" (minus) operator yields the negation of its numeric\n' - 'argument.\n' - '\n' - 'The unary "+" (plus) operator yields its numeric argument ' - 'unchanged.\n' - '\n' - 'The unary "~" (invert) operator yields the bitwise inversion of ' - 'its\n' - 'plain or long integer argument. The bitwise inversion of "x" is\n' - 'defined as "-(x+1)". It only applies to integral numbers.\n' - '\n' - 'In all three cases, if the argument does not have the proper type, ' - 'a\n' - '"TypeError" exception is raised.\n', - 'while': '\n' - 'The "while" statement\n' - '*********************\n' - '\n' - 'The "while" statement is used for repeated execution as long as an\n' - 'expression is true:\n' - '\n' - ' while_stmt ::= "while" expression ":" suite\n' - ' ["else" ":" suite]\n' - '\n' - 'This repeatedly tests the expression and, if it is true, executes ' - 'the\n' - 'first suite; if the expression is false (which may be the first ' - 'time\n' - 'it is tested) the suite of the "else" clause, if present, is ' - 'executed\n' - 'and the loop terminates.\n' - '\n' - 'A "break" statement executed in the first suite terminates the ' - 'loop\n' - 'without executing the "else" clause\'s suite. A "continue" ' - 'statement\n' - 'executed in the first suite skips the rest of the suite and goes ' - 'back\n' - 'to testing the expression.\n', - 'with': '\n' - 'The "with" statement\n' - '********************\n' - '\n' - 'New in version 2.5.\n' - '\n' - 'The "with" statement is used to wrap the execution of a block with\n' - 'methods defined by a context manager (see section With Statement\n' - 'Context Managers). This allows common "try"..."except"..."finally"\n' - 'usage patterns to be encapsulated for convenient reuse.\n' - '\n' - ' with_stmt ::= "with" with_item ("," with_item)* ":" suite\n' - ' with_item ::= expression ["as" target]\n' - '\n' - 'The execution of the "with" statement with one "item" proceeds as\n' - 'follows:\n' - '\n' - '1. The context expression (the expression given in the "with_item")\n' - ' is evaluated to obtain a context manager.\n' - '\n' - '2. The context manager\'s "__exit__()" is loaded for later use.\n' - '\n' - '3. The context manager\'s "__enter__()" method is invoked.\n' - '\n' - '4. If a target was included in the "with" statement, the return\n' - ' value from "__enter__()" is assigned to it.\n' - '\n' - ' Note: The "with" statement guarantees that if the "__enter__()"\n' - ' method returns without an error, then "__exit__()" will always ' - 'be\n' - ' called. Thus, if an error occurs during the assignment to the\n' - ' target list, it will be treated the same as an error occurring\n' - ' within the suite would be. See step 6 below.\n' - '\n' - '5. The suite is executed.\n' - '\n' - '6. The context manager\'s "__exit__()" method is invoked. If an\n' - ' exception caused the suite to be exited, its type, value, and\n' - ' traceback are passed as arguments to "__exit__()". Otherwise, ' - 'three\n' - ' "None" arguments are supplied.\n' - '\n' - ' If the suite was exited due to an exception, and the return ' - 'value\n' - ' from the "__exit__()" method was false, the exception is ' - 'reraised.\n' - ' If the return value was true, the exception is suppressed, and\n' - ' execution continues with the statement following the "with"\n' - ' statement.\n' - '\n' - ' If the suite was exited for any reason other than an exception, ' - 'the\n' - ' return value from "__exit__()" is ignored, and execution ' - 'proceeds\n' - ' at the normal location for the kind of exit that was taken.\n' - '\n' - 'With more than one item, the context managers are processed as if\n' - 'multiple "with" statements were nested:\n' - '\n' - ' with A() as a, B() as b:\n' - ' suite\n' - '\n' - 'is equivalent to\n' - '\n' - ' with A() as a:\n' - ' with B() as b:\n' - ' suite\n' - '\n' - 'Note: In Python 2.5, the "with" statement is only allowed when the\n' - ' "with_statement" feature has been enabled. It is always enabled ' - 'in\n' - ' Python 2.6.\n' - '\n' - 'Changed in version 2.7: Support for multiple context expressions.\n' - '\n' - 'See also:\n' - '\n' - ' **PEP 343** - The "with" statement\n' - ' The specification, background, and examples for the Python ' - '"with"\n' - ' statement.\n', - 'yield': '\n' - 'The "yield" statement\n' - '*********************\n' - '\n' - ' yield_stmt ::= yield_expression\n' - '\n' - 'The "yield" statement is only used when defining a generator ' - 'function,\n' - 'and is only used in the body of the generator function. Using a\n' - '"yield" statement in a function definition is sufficient to cause ' - 'that\n' - 'definition to create a generator function instead of a normal\n' - 'function.\n' - '\n' - 'When a generator function is called, it returns an iterator known ' - 'as a\n' - 'generator iterator, or more commonly, a generator. The body of ' - 'the\n' - "generator function is executed by calling the generator's " - '"next()"\n' - 'method repeatedly until it raises an exception.\n' - '\n' - 'When a "yield" statement is executed, the state of the generator ' - 'is\n' - 'frozen and the value of "expression_list" is returned to ' - '"next()"\'s\n' - 'caller. By "frozen" we mean that all local state is retained,\n' - 'including the current bindings of local variables, the instruction\n' - 'pointer, and the internal evaluation stack: enough information is\n' - 'saved so that the next time "next()" is invoked, the function can\n' - 'proceed exactly as if the "yield" statement were just another ' - 'external\n' - 'call.\n' - '\n' - 'As of Python version 2.5, the "yield" statement is now allowed in ' - 'the\n' - '"try" clause of a "try" ... "finally" construct. If the generator ' - 'is\n' - 'not resumed before it is finalized (by reaching a zero reference ' - 'count\n' - "or by being garbage collected), the generator-iterator's " - '"close()"\n' - 'method will be called, allowing any pending "finally" clauses to\n' - 'execute.\n' - '\n' - 'For full details of "yield" semantics, refer to the Yield ' - 'expressions\n' - 'section.\n' - '\n' - 'Note: In Python 2.2, the "yield" statement was only allowed when ' - 'the\n' - ' "generators" feature has been enabled. This "__future__" import\n' - ' statement was used to enable the feature:\n' - '\n' - ' from __future__ import generators\n' - '\n' - 'See also:\n' - '\n' - ' **PEP 255** - Simple Generators\n' - ' The proposal for adding generators and the "yield" statement ' - 'to\n' - ' Python.\n' - '\n' - ' **PEP 342** - Coroutines via Enhanced Generators\n' - ' The proposal that, among other generator enhancements, ' - 'proposed\n' - ' allowing "yield" to appear inside a "try" ... "finally" ' - 'block.\n'} +# Autogenerated by Sphinx on Sat Dec 3 12:36:20 2016 +topics = {'assert': u'\nThe "assert" statement\n**********************\n\nAssert statements are a convenient way to insert debugging assertions\ninto a program:\n\n assert_stmt ::= "assert" expression ["," expression]\n\nThe simple form, "assert expression", is equivalent to\n\n if __debug__:\n if not expression: raise AssertionError\n\nThe extended form, "assert expression1, expression2", is equivalent to\n\n if __debug__:\n if not expression1: raise AssertionError(expression2)\n\nThese equivalences assume that "__debug__" and "AssertionError" refer\nto the built-in variables with those names. In the current\nimplementation, the built-in variable "__debug__" is "True" under\nnormal circumstances, "False" when optimization is requested (command\nline option -O). The current code generator emits no code for an\nassert statement when optimization is requested at compile time. Note\nthat it is unnecessary to include the source code for the expression\nthat failed in the error message; it will be displayed as part of the\nstack trace.\n\nAssignments to "__debug__" are illegal. The value for the built-in\nvariable is determined when the interpreter starts.\n', + 'assignment': u'\nAssignment statements\n*********************\n\nAssignment statements are used to (re)bind names to values and to\nmodify attributes or items of mutable objects:\n\n assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression)\n target_list ::= target ("," target)* [","]\n target ::= identifier\n | "(" target_list ")"\n | "[" [target_list] "]"\n | attributeref\n | subscription\n | slicing\n\n(See section Primaries for the syntax definitions for the last three\nsymbols.)\n\nAn assignment statement evaluates the expression list (remember that\nthis can be a single expression or a comma-separated list, the latter\nyielding a tuple) and assigns the single resulting object to each of\nthe target lists, from left to right.\n\nAssignment is defined recursively depending on the form of the target\n(list). When a target is part of a mutable object (an attribute\nreference, subscription or slicing), the mutable object must\nultimately perform the assignment and decide about its validity, and\nmay raise an exception if the assignment is unacceptable. The rules\nobserved by various types and the exceptions raised are given with the\ndefinition of the object types (see section The standard type\nhierarchy).\n\nAssignment of an object to a target list is recursively defined as\nfollows.\n\n* If the target list is a single target: The object is assigned to\n that target.\n\n* If the target list is a comma-separated list of targets: The\n object must be an iterable with the same number of items as there\n are targets in the target list, and the items are assigned, from\n left to right, to the corresponding targets.\n\nAssignment of an object to a single target is recursively defined as\nfollows.\n\n* If the target is an identifier (name):\n\n * If the name does not occur in a "global" statement in the\n current code block: the name is bound to the object in the current\n local namespace.\n\n * Otherwise: the name is bound to the object in the current global\n namespace.\n\n The name is rebound if it was already bound. This may cause the\n reference count for the object previously bound to the name to reach\n zero, causing the object to be deallocated and its destructor (if it\n has one) to be called.\n\n* If the target is a target list enclosed in parentheses or in\n square brackets: The object must be an iterable with the same number\n of items as there are targets in the target list, and its items are\n assigned, from left to right, to the corresponding targets.\n\n* If the target is an attribute reference: The primary expression in\n the reference is evaluated. It should yield an object with\n assignable attributes; if this is not the case, "TypeError" is\n raised. That object is then asked to assign the assigned object to\n the given attribute; if it cannot perform the assignment, it raises\n an exception (usually but not necessarily "AttributeError").\n\n Note: If the object is a class instance and the attribute reference\n occurs on both sides of the assignment operator, the RHS expression,\n "a.x" can access either an instance attribute or (if no instance\n attribute exists) a class attribute. The LHS target "a.x" is always\n set as an instance attribute, creating it if necessary. Thus, the\n two occurrences of "a.x" do not necessarily refer to the same\n attribute: if the RHS expression refers to a class attribute, the\n LHS creates a new instance attribute as the target of the\n assignment:\n\n class Cls:\n x = 3 # class variable\n inst = Cls()\n inst.x = inst.x + 1 # writes inst.x as 4 leaving Cls.x as 3\n\n This description does not necessarily apply to descriptor\n attributes, such as properties created with "property()".\n\n* If the target is a subscription: The primary expression in the\n reference is evaluated. It should yield either a mutable sequence\n object (such as a list) or a mapping object (such as a dictionary).\n Next, the subscript expression is evaluated.\n\n If the primary is a mutable sequence object (such as a list), the\n subscript must yield a plain integer. If it is negative, the\n sequence\'s length is added to it. The resulting value must be a\n nonnegative integer less than the sequence\'s length, and the\n sequence is asked to assign the assigned object to its item with\n that index. If the index is out of range, "IndexError" is raised\n (assignment to a subscripted sequence cannot add new items to a\n list).\n\n If the primary is a mapping object (such as a dictionary), the\n subscript must have a type compatible with the mapping\'s key type,\n and the mapping is then asked to create a key/datum pair which maps\n the subscript to the assigned object. This can either replace an\n existing key/value pair with the same key value, or insert a new\n key/value pair (if no key with the same value existed).\n\n* If the target is a slicing: The primary expression in the\n reference is evaluated. It should yield a mutable sequence object\n (such as a list). The assigned object should be a sequence object\n of the same type. Next, the lower and upper bound expressions are\n evaluated, insofar they are present; defaults are zero and the\n sequence\'s length. The bounds should evaluate to (small) integers.\n If either bound is negative, the sequence\'s length is added to it.\n The resulting bounds are clipped to lie between zero and the\n sequence\'s length, inclusive. Finally, the sequence object is asked\n to replace the slice with the items of the assigned sequence. The\n length of the slice may be different from the length of the assigned\n sequence, thus changing the length of the target sequence, if the\n object allows it.\n\n**CPython implementation detail:** In the current implementation, the\nsyntax for targets is taken to be the same as for expressions, and\ninvalid syntax is rejected during the code generation phase, causing\nless detailed error messages.\n\nWARNING: Although the definition of assignment implies that overlaps\nbetween the left-hand side and the right-hand side are \'safe\' (for\nexample "a, b = b, a" swaps two variables), overlaps *within* the\ncollection of assigned-to variables are not safe! For instance, the\nfollowing program prints "[0, 2]":\n\n x = [0, 1]\n i = 0\n i, x[i] = 1, 2\n print x\n\n\nAugmented assignment statements\n===============================\n\nAugmented assignment is the combination, in a single statement, of a\nbinary operation and an assignment statement:\n\n augmented_assignment_stmt ::= augtarget augop (expression_list | yield_expression)\n augtarget ::= identifier | attributeref | subscription | slicing\n augop ::= "+=" | "-=" | "*=" | "/=" | "//=" | "%=" | "**="\n | ">>=" | "<<=" | "&=" | "^=" | "|="\n\n(See section Primaries for the syntax definitions for the last three\nsymbols.)\n\nAn augmented assignment evaluates the target (which, unlike normal\nassignment statements, cannot be an unpacking) and the expression\nlist, performs the binary operation specific to the type of assignment\non the two operands, and assigns the result to the original target.\nThe target is only evaluated once.\n\nAn augmented assignment expression like "x += 1" can be rewritten as\n"x = x + 1" to achieve a similar, but not exactly equal effect. In the\naugmented version, "x" is only evaluated once. Also, when possible,\nthe actual operation is performed *in-place*, meaning that rather than\ncreating a new object and assigning that to the target, the old object\nis modified instead.\n\nWith the exception of assigning to tuples and multiple targets in a\nsingle statement, the assignment done by augmented assignment\nstatements is handled the same way as normal assignments. Similarly,\nwith the exception of the possible *in-place* behavior, the binary\noperation performed by augmented assignment is the same as the normal\nbinary operations.\n\nFor targets which are attribute references, the same caveat about\nclass and instance attributes applies as for regular assignments.\n', + 'atom-identifiers': u'\nIdentifiers (Names)\n*******************\n\nAn identifier occurring as an atom is a name. See section Identifiers\nand keywords for lexical definition and section Naming and binding for\ndocumentation of naming and binding.\n\nWhen the name is bound to an object, evaluation of the atom yields\nthat object. When a name is not bound, an attempt to evaluate it\nraises a "NameError" exception.\n\n**Private name mangling:** When an identifier that textually occurs in\na class definition begins with two or more underscore characters and\ndoes not end in two or more underscores, it is considered a *private\nname* of that class. Private names are transformed to a longer form\nbefore code is generated for them. The transformation inserts the\nclass name, with leading underscores removed and a single underscore\ninserted, in front of the name. For example, the identifier "__spam"\noccurring in a class named "Ham" will be transformed to "_Ham__spam".\nThis transformation is independent of the syntactical context in which\nthe identifier is used. If the transformed name is extremely long\n(longer than 255 characters), implementation defined truncation may\nhappen. If the class name consists only of underscores, no\ntransformation is done.\n', + 'atom-literals': u"\nLiterals\n********\n\nPython supports string literals and various numeric literals:\n\n literal ::= stringliteral | integer | longinteger\n | floatnumber | imagnumber\n\nEvaluation of a literal yields an object of the given type (string,\ninteger, long integer, floating point number, complex number) with the\ngiven value. The value may be approximated in the case of floating\npoint and imaginary (complex) literals. See section Literals for\ndetails.\n\nAll literals correspond to immutable data types, and hence the\nobject's identity is less important than its value. Multiple\nevaluations of literals with the same value (either the same\noccurrence in the program text or a different occurrence) may obtain\nthe same object or a different object with the same value.\n", + 'attribute-access': u'\nCustomizing attribute access\n****************************\n\nThe following methods can be defined to customize the meaning of\nattribute access (use of, assignment to, or deletion of "x.name") for\nclass instances.\n\nobject.__getattr__(self, name)\n\n Called when an attribute lookup has not found the attribute in the\n usual places (i.e. it is not an instance attribute nor is it found\n in the class tree for "self"). "name" is the attribute name. This\n method should return the (computed) attribute value or raise an\n "AttributeError" exception.\n\n Note that if the attribute is found through the normal mechanism,\n "__getattr__()" is not called. (This is an intentional asymmetry\n between "__getattr__()" and "__setattr__()".) This is done both for\n efficiency reasons and because otherwise "__getattr__()" would have\n no way to access other attributes of the instance. Note that at\n least for instance variables, you can fake total control by not\n inserting any values in the instance attribute dictionary (but\n instead inserting them in another object). See the\n "__getattribute__()" method below for a way to actually get total\n control in new-style classes.\n\nobject.__setattr__(self, name, value)\n\n Called when an attribute assignment is attempted. This is called\n instead of the normal mechanism (i.e. store the value in the\n instance dictionary). *name* is the attribute name, *value* is the\n value to be assigned to it.\n\n If "__setattr__()" wants to assign to an instance attribute, it\n should not simply execute "self.name = value" --- this would cause\n a recursive call to itself. Instead, it should insert the value in\n the dictionary of instance attributes, e.g., "self.__dict__[name] =\n value". For new-style classes, rather than accessing the instance\n dictionary, it should call the base class method with the same\n name, for example, "object.__setattr__(self, name, value)".\n\nobject.__delattr__(self, name)\n\n Like "__setattr__()" but for attribute deletion instead of\n assignment. This should only be implemented if "del obj.name" is\n meaningful for the object.\n\n\nMore attribute access for new-style classes\n===========================================\n\nThe following methods only apply to new-style classes.\n\nobject.__getattribute__(self, name)\n\n Called unconditionally to implement attribute accesses for\n instances of the class. If the class also defines "__getattr__()",\n the latter will not be called unless "__getattribute__()" either\n calls it explicitly or raises an "AttributeError". This method\n should return the (computed) attribute value or raise an\n "AttributeError" exception. In order to avoid infinite recursion in\n this method, its implementation should always call the base class\n method with the same name to access any attributes it needs, for\n example, "object.__getattribute__(self, name)".\n\n Note: This method may still be bypassed when looking up special\n methods as the result of implicit invocation via language syntax\n or built-in functions. See Special method lookup for new-style\n classes.\n\n\nImplementing Descriptors\n========================\n\nThe following methods only apply when an instance of the class\ncontaining the method (a so-called *descriptor* class) appears in an\n*owner* class (the descriptor must be in either the owner\'s class\ndictionary or in the class dictionary for one of its parents). In the\nexamples below, "the attribute" refers to the attribute whose name is\nthe key of the property in the owner class\' "__dict__".\n\nobject.__get__(self, instance, owner)\n\n Called to get the attribute of the owner class (class attribute\n access) or of an instance of that class (instance attribute\n access). *owner* is always the owner class, while *instance* is the\n instance that the attribute was accessed through, or "None" when\n the attribute is accessed through the *owner*. This method should\n return the (computed) attribute value or raise an "AttributeError"\n exception.\n\nobject.__set__(self, instance, value)\n\n Called to set the attribute on an instance *instance* of the owner\n class to a new value, *value*.\n\nobject.__delete__(self, instance)\n\n Called to delete the attribute on an instance *instance* of the\n owner class.\n\n\nInvoking Descriptors\n====================\n\nIn general, a descriptor is an object attribute with "binding\nbehavior", one whose attribute access has been overridden by methods\nin the descriptor protocol: "__get__()", "__set__()", and\n"__delete__()". If any of those methods are defined for an object, it\nis said to be a descriptor.\n\nThe default behavior for attribute access is to get, set, or delete\nthe attribute from an object\'s dictionary. For instance, "a.x" has a\nlookup chain starting with "a.__dict__[\'x\']", then\n"type(a).__dict__[\'x\']", and continuing through the base classes of\n"type(a)" excluding metaclasses.\n\nHowever, if the looked-up value is an object defining one of the\ndescriptor methods, then Python may override the default behavior and\ninvoke the descriptor method instead. Where this occurs in the\nprecedence chain depends on which descriptor methods were defined and\nhow they were called. Note that descriptors are only invoked for new\nstyle objects or classes (ones that subclass "object()" or "type()").\n\nThe starting point for descriptor invocation is a binding, "a.x". How\nthe arguments are assembled depends on "a":\n\nDirect Call\n The simplest and least common call is when user code directly\n invokes a descriptor method: "x.__get__(a)".\n\nInstance Binding\n If binding to a new-style object instance, "a.x" is transformed\n into the call: "type(a).__dict__[\'x\'].__get__(a, type(a))".\n\nClass Binding\n If binding to a new-style class, "A.x" is transformed into the\n call: "A.__dict__[\'x\'].__get__(None, A)".\n\nSuper Binding\n If "a" is an instance of "super", then the binding "super(B,\n obj).m()" searches "obj.__class__.__mro__" for the base class "A"\n immediately preceding "B" and then invokes the descriptor with the\n call: "A.__dict__[\'m\'].__get__(obj, obj.__class__)".\n\nFor instance bindings, the precedence of descriptor invocation depends\non the which descriptor methods are defined. A descriptor can define\nany combination of "__get__()", "__set__()" and "__delete__()". If it\ndoes not define "__get__()", then accessing the attribute will return\nthe descriptor object itself unless there is a value in the object\'s\ninstance dictionary. If the descriptor defines "__set__()" and/or\n"__delete__()", it is a data descriptor; if it defines neither, it is\na non-data descriptor. Normally, data descriptors define both\n"__get__()" and "__set__()", while non-data descriptors have just the\n"__get__()" method. Data descriptors with "__set__()" and "__get__()"\ndefined always override a redefinition in an instance dictionary. In\ncontrast, non-data descriptors can be overridden by instances.\n\nPython methods (including "staticmethod()" and "classmethod()") are\nimplemented as non-data descriptors. Accordingly, instances can\nredefine and override methods. This allows individual instances to\nacquire behaviors that differ from other instances of the same class.\n\nThe "property()" function is implemented as a data descriptor.\nAccordingly, instances cannot override the behavior of a property.\n\n\n__slots__\n=========\n\nBy default, instances of both old and new-style classes have a\ndictionary for attribute storage. This wastes space for objects\nhaving very few instance variables. The space consumption can become\nacute when creating large numbers of instances.\n\nThe default can be overridden by defining *__slots__* in a new-style\nclass definition. The *__slots__* declaration takes a sequence of\ninstance variables and reserves just enough space in each instance to\nhold a value for each variable. Space is saved because *__dict__* is\nnot created for each instance.\n\n__slots__\n\n This class variable can be assigned a string, iterable, or sequence\n of strings with variable names used by instances. If defined in a\n new-style class, *__slots__* reserves space for the declared\n variables and prevents the automatic creation of *__dict__* and\n *__weakref__* for each instance.\n\n New in version 2.2.\n\nNotes on using *__slots__*\n\n* When inheriting from a class without *__slots__*, the *__dict__*\n attribute of that class will always be accessible, so a *__slots__*\n definition in the subclass is meaningless.\n\n* Without a *__dict__* variable, instances cannot be assigned new\n variables not listed in the *__slots__* definition. Attempts to\n assign to an unlisted variable name raises "AttributeError". If\n dynamic assignment of new variables is desired, then add\n "\'__dict__\'" to the sequence of strings in the *__slots__*\n declaration.\n\n Changed in version 2.3: Previously, adding "\'__dict__\'" to the\n *__slots__* declaration would not enable the assignment of new\n attributes not specifically listed in the sequence of instance\n variable names.\n\n* Without a *__weakref__* variable for each instance, classes\n defining *__slots__* do not support weak references to its\n instances. If weak reference support is needed, then add\n "\'__weakref__\'" to the sequence of strings in the *__slots__*\n declaration.\n\n Changed in version 2.3: Previously, adding "\'__weakref__\'" to the\n *__slots__* declaration would not enable support for weak\n references.\n\n* *__slots__* are implemented at the class level by creating\n descriptors (Implementing Descriptors) for each variable name. As a\n result, class attributes cannot be used to set default values for\n instance variables defined by *__slots__*; otherwise, the class\n attribute would overwrite the descriptor assignment.\n\n* The action of a *__slots__* declaration is limited to the class\n where it is defined. As a result, subclasses will have a *__dict__*\n unless they also define *__slots__* (which must only contain names\n of any *additional* slots).\n\n* If a class defines a slot also defined in a base class, the\n instance variable defined by the base class slot is inaccessible\n (except by retrieving its descriptor directly from the base class).\n This renders the meaning of the program undefined. In the future, a\n check may be added to prevent this.\n\n* Nonempty *__slots__* does not work for classes derived from\n "variable-length" built-in types such as "long", "str" and "tuple".\n\n* Any non-string iterable may be assigned to *__slots__*. Mappings\n may also be used; however, in the future, special meaning may be\n assigned to the values corresponding to each key.\n\n* *__class__* assignment works only if both classes have the same\n *__slots__*.\n\n Changed in version 2.6: Previously, *__class__* assignment raised an\n error if either new or old class had *__slots__*.\n', + 'attribute-references': u'\nAttribute references\n********************\n\nAn attribute reference is a primary followed by a period and a name:\n\n attributeref ::= primary "." identifier\n\nThe primary must evaluate to an object of a type that supports\nattribute references, e.g., a module, list, or an instance. This\nobject is then asked to produce the attribute whose name is the\nidentifier. If this attribute is not available, the exception\n"AttributeError" is raised. Otherwise, the type and value of the\nobject produced is determined by the object. Multiple evaluations of\nthe same attribute reference may yield different objects.\n', + 'augassign': u'\nAugmented assignment statements\n*******************************\n\nAugmented assignment is the combination, in a single statement, of a\nbinary operation and an assignment statement:\n\n augmented_assignment_stmt ::= augtarget augop (expression_list | yield_expression)\n augtarget ::= identifier | attributeref | subscription | slicing\n augop ::= "+=" | "-=" | "*=" | "/=" | "//=" | "%=" | "**="\n | ">>=" | "<<=" | "&=" | "^=" | "|="\n\n(See section Primaries for the syntax definitions for the last three\nsymbols.)\n\nAn augmented assignment evaluates the target (which, unlike normal\nassignment statements, cannot be an unpacking) and the expression\nlist, performs the binary operation specific to the type of assignment\non the two operands, and assigns the result to the original target.\nThe target is only evaluated once.\n\nAn augmented assignment expression like "x += 1" can be rewritten as\n"x = x + 1" to achieve a similar, but not exactly equal effect. In the\naugmented version, "x" is only evaluated once. Also, when possible,\nthe actual operation is performed *in-place*, meaning that rather than\ncreating a new object and assigning that to the target, the old object\nis modified instead.\n\nWith the exception of assigning to tuples and multiple targets in a\nsingle statement, the assignment done by augmented assignment\nstatements is handled the same way as normal assignments. Similarly,\nwith the exception of the possible *in-place* behavior, the binary\noperation performed by augmented assignment is the same as the normal\nbinary operations.\n\nFor targets which are attribute references, the same caveat about\nclass and instance attributes applies as for regular assignments.\n', + 'binary': u'\nBinary arithmetic operations\n****************************\n\nThe binary arithmetic operations have the conventional priority\nlevels. Note that some of these operations also apply to certain non-\nnumeric types. Apart from the power operator, there are only two\nlevels, one for multiplicative operators and one for additive\noperators:\n\n m_expr ::= u_expr | m_expr "*" u_expr | m_expr "//" u_expr | m_expr "/" u_expr\n | m_expr "%" u_expr\n a_expr ::= m_expr | a_expr "+" m_expr | a_expr "-" m_expr\n\nThe "*" (multiplication) operator yields the product of its arguments.\nThe arguments must either both be numbers, or one argument must be an\ninteger (plain or long) and the other must be a sequence. In the\nformer case, the numbers are converted to a common type and then\nmultiplied together. In the latter case, sequence repetition is\nperformed; a negative repetition factor yields an empty sequence.\n\nThe "/" (division) and "//" (floor division) operators yield the\nquotient of their arguments. The numeric arguments are first\nconverted to a common type. Plain or long integer division yields an\ninteger of the same type; the result is that of mathematical division\nwith the \'floor\' function applied to the result. Division by zero\nraises the "ZeroDivisionError" exception.\n\nThe "%" (modulo) operator yields the remainder from the division of\nthe first argument by the second. The numeric arguments are first\nconverted to a common type. A zero right argument raises the\n"ZeroDivisionError" exception. The arguments may be floating point\nnumbers, e.g., "3.14%0.7" equals "0.34" (since "3.14" equals "4*0.7 +\n0.34".) The modulo operator always yields a result with the same sign\nas its second operand (or zero); the absolute value of the result is\nstrictly smaller than the absolute value of the second operand [2].\n\nThe integer division and modulo operators are connected by the\nfollowing identity: "x == (x/y)*y + (x%y)". Integer division and\nmodulo are also connected with the built-in function "divmod()":\n"divmod(x, y) == (x/y, x%y)". These identities don\'t hold for\nfloating point numbers; there similar identities hold approximately\nwhere "x/y" is replaced by "floor(x/y)" or "floor(x/y) - 1" [3].\n\nIn addition to performing the modulo operation on numbers, the "%"\noperator is also overloaded by string and unicode objects to perform\nstring formatting (also known as interpolation). The syntax for string\nformatting is described in the Python Library Reference, section\nString Formatting Operations.\n\nDeprecated since version 2.3: The floor division operator, the modulo\noperator, and the "divmod()" function are no longer defined for\ncomplex numbers. Instead, convert to a floating point number using\nthe "abs()" function if appropriate.\n\nThe "+" (addition) operator yields the sum of its arguments. The\narguments must either both be numbers or both sequences of the same\ntype. In the former case, the numbers are converted to a common type\nand then added together. In the latter case, the sequences are\nconcatenated.\n\nThe "-" (subtraction) operator yields the difference of its arguments.\nThe numeric arguments are first converted to a common type.\n', + 'bitwise': u'\nBinary bitwise operations\n*************************\n\nEach of the three bitwise operations has a different priority level:\n\n and_expr ::= shift_expr | and_expr "&" shift_expr\n xor_expr ::= and_expr | xor_expr "^" and_expr\n or_expr ::= xor_expr | or_expr "|" xor_expr\n\nThe "&" operator yields the bitwise AND of its arguments, which must\nbe plain or long integers. The arguments are converted to a common\ntype.\n\nThe "^" operator yields the bitwise XOR (exclusive OR) of its\narguments, which must be plain or long integers. The arguments are\nconverted to a common type.\n\nThe "|" operator yields the bitwise (inclusive) OR of its arguments,\nwhich must be plain or long integers. The arguments are converted to\na common type.\n', + 'bltin-code-objects': u'\nCode Objects\n************\n\nCode objects are used by the implementation to represent "pseudo-\ncompiled" executable Python code such as a function body. They differ\nfrom function objects because they don\'t contain a reference to their\nglobal execution environment. Code objects are returned by the built-\nin "compile()" function and can be extracted from function objects\nthrough their "func_code" attribute. See also the "code" module.\n\nA code object can be executed or evaluated by passing it (instead of a\nsource string) to the "exec" statement or the built-in "eval()"\nfunction.\n\nSee The standard type hierarchy for more information.\n', + 'bltin-ellipsis-object': u'\nThe Ellipsis Object\n*******************\n\nThis object is used by extended slice notation (see Slicings). It\nsupports no special operations. There is exactly one ellipsis object,\nnamed "Ellipsis" (a built-in name).\n\nIt is written as "Ellipsis". When in a subscript, it can also be\nwritten as "...", for example "seq[...]".\n', + 'bltin-file-objects': u'\nFile Objects\n************\n\nFile objects are implemented using C\'s "stdio" package and can be\ncreated with the built-in "open()" function. File objects are also\nreturned by some other built-in functions and methods, such as\n"os.popen()" and "os.fdopen()" and the "makefile()" method of socket\nobjects. Temporary files can be created using the "tempfile" module,\nand high-level file operations such as copying, moving, and deleting\nfiles and directories can be achieved with the "shutil" module.\n\nWhen a file operation fails for an I/O-related reason, the exception\n"IOError" is raised. This includes situations where the operation is\nnot defined for some reason, like "seek()" on a tty device or writing\na file opened for reading.\n\nFiles have the following methods:\n\nfile.close()\n\n Close the file. A closed file cannot be read or written any more.\n Any operation which requires that the file be open will raise a\n "ValueError" after the file has been closed. Calling "close()"\n more than once is allowed.\n\n As of Python 2.5, you can avoid having to call this method\n explicitly if you use the "with" statement. For example, the\n following code will automatically close *f* when the "with" block\n is exited:\n\n from __future__ import with_statement # This isn\'t required in Python 2.6\n\n with open("hello.txt") as f:\n for line in f:\n print line,\n\n In older versions of Python, you would have needed to do this to\n get the same effect:\n\n f = open("hello.txt")\n try:\n for line in f:\n print line,\n finally:\n f.close()\n\n Note: Not all "file-like" types in Python support use as a\n context manager for the "with" statement. If your code is\n intended to work with any file-like object, you can use the\n function "contextlib.closing()" instead of using the object\n directly.\n\nfile.flush()\n\n Flush the internal buffer, like "stdio"\'s "fflush()". This may be\n a no-op on some file-like objects.\n\n Note: "flush()" does not necessarily write the file\'s data to\n disk. Use "flush()" followed by "os.fsync()" to ensure this\n behavior.\n\nfile.fileno()\n\n Return the integer "file descriptor" that is used by the underlying\n implementation to request I/O operations from the operating system.\n This can be useful for other, lower level interfaces that use file\n descriptors, such as the "fcntl" module or "os.read()" and friends.\n\n Note: File-like objects which do not have a real file descriptor\n should *not* provide this method!\n\nfile.isatty()\n\n Return "True" if the file is connected to a tty(-like) device, else\n "False".\n\n Note: If a file-like object is not associated with a real file,\n this method should *not* be implemented.\n\nfile.next()\n\n A file object is its own iterator, for example "iter(f)" returns\n *f* (unless *f* is closed). When a file is used as an iterator,\n typically in a "for" loop (for example, "for line in f: print\n line.strip()"), the "next()" method is called repeatedly. This\n method returns the next input line, or raises "StopIteration" when\n EOF is hit when the file is open for reading (behavior is undefined\n when the file is open for writing). In order to make a "for" loop\n the most efficient way of looping over the lines of a file (a very\n common operation), the "next()" method uses a hidden read-ahead\n buffer. As a consequence of using a read-ahead buffer, combining\n "next()" with other file methods (like "readline()") does not work\n right. However, using "seek()" to reposition the file to an\n absolute position will flush the read-ahead buffer.\n\n New in version 2.3.\n\nfile.read([size])\n\n Read at most *size* bytes from the file (less if the read hits EOF\n before obtaining *size* bytes). If the *size* argument is negative\n or omitted, read all data until EOF is reached. The bytes are\n returned as a string object. An empty string is returned when EOF\n is encountered immediately. (For certain files, like ttys, it\n makes sense to continue reading after an EOF is hit.) Note that\n this method may call the underlying C function "fread()" more than\n once in an effort to acquire as close to *size* bytes as possible.\n Also note that when in non-blocking mode, less data than was\n requested may be returned, even if no *size* parameter was given.\n\n Note: This function is simply a wrapper for the underlying\n "fread()" C function, and will behave the same in corner cases,\n such as whether the EOF value is cached.\n\nfile.readline([size])\n\n Read one entire line from the file. A trailing newline character\n is kept in the string (but may be absent when a file ends with an\n incomplete line). [6] If the *size* argument is present and non-\n negative, it is a maximum byte count (including the trailing\n newline) and an incomplete line may be returned. When *size* is not\n 0, an empty string is returned *only* when EOF is encountered\n immediately.\n\n Note: Unlike "stdio"\'s "fgets()", the returned string contains\n null characters ("\'\\0\'") if they occurred in the input.\n\nfile.readlines([sizehint])\n\n Read until EOF using "readline()" and return a list containing the\n lines thus read. If the optional *sizehint* argument is present,\n instead of reading up to EOF, whole lines totalling approximately\n *sizehint* bytes (possibly after rounding up to an internal buffer\n size) are read. Objects implementing a file-like interface may\n choose to ignore *sizehint* if it cannot be implemented, or cannot\n be implemented efficiently.\n\nfile.xreadlines()\n\n This method returns the same thing as "iter(f)".\n\n New in version 2.1.\n\n Deprecated since version 2.3: Use "for line in file" instead.\n\nfile.seek(offset[, whence])\n\n Set the file\'s current position, like "stdio"\'s "fseek()". The\n *whence* argument is optional and defaults to "os.SEEK_SET" or "0"\n (absolute file positioning); other values are "os.SEEK_CUR" or "1"\n (seek relative to the current position) and "os.SEEK_END" or "2"\n (seek relative to the file\'s end). There is no return value.\n\n For example, "f.seek(2, os.SEEK_CUR)" advances the position by two\n and "f.seek(-3, os.SEEK_END)" sets the position to the third to\n last.\n\n Note that if the file is opened for appending (mode "\'a\'" or\n "\'a+\'"), any "seek()" operations will be undone at the next write.\n If the file is only opened for writing in append mode (mode "\'a\'"),\n this method is essentially a no-op, but it remains useful for files\n opened in append mode with reading enabled (mode "\'a+\'"). If the\n file is opened in text mode (without "\'b\'"), only offsets returned\n by "tell()" are legal. Use of other offsets causes undefined\n behavior.\n\n Note that not all file objects are seekable.\n\n Changed in version 2.6: Passing float values as offset has been\n deprecated.\n\nfile.tell()\n\n Return the file\'s current position, like "stdio"\'s "ftell()".\n\n Note: On Windows, "tell()" can return illegal values (after an\n "fgets()") when reading files with Unix-style line-endings. Use\n binary mode ("\'rb\'") to circumvent this problem.\n\nfile.truncate([size])\n\n Truncate the file\'s size. If the optional *size* argument is\n present, the file is truncated to (at most) that size. The size\n defaults to the current position. The current file position is not\n changed. Note that if a specified size exceeds the file\'s current\n size, the result is platform-dependent: possibilities include that\n the file may remain unchanged, increase to the specified size as if\n zero-filled, or increase to the specified size with undefined new\n content. Availability: Windows, many Unix variants.\n\nfile.write(str)\n\n Write a string to the file. There is no return value. Due to\n buffering, the string may not actually show up in the file until\n the "flush()" or "close()" method is called.\n\nfile.writelines(sequence)\n\n Write a sequence of strings to the file. The sequence can be any\n iterable object producing strings, typically a list of strings.\n There is no return value. (The name is intended to match\n "readlines()"; "writelines()" does not add line separators.)\n\nFiles support the iterator protocol. Each iteration returns the same\nresult as "readline()", and iteration ends when the "readline()"\nmethod returns an empty string.\n\nFile objects also offer a number of other interesting attributes.\nThese are not required for file-like objects, but should be\nimplemented if they make sense for the particular object.\n\nfile.closed\n\n bool indicating the current state of the file object. This is a\n read-only attribute; the "close()" method changes the value. It may\n not be available on all file-like objects.\n\nfile.encoding\n\n The encoding that this file uses. When Unicode strings are written\n to a file, they will be converted to byte strings using this\n encoding. In addition, when the file is connected to a terminal,\n the attribute gives the encoding that the terminal is likely to use\n (that information might be incorrect if the user has misconfigured\n the terminal). The attribute is read-only and may not be present\n on all file-like objects. It may also be "None", in which case the\n file uses the system default encoding for converting Unicode\n strings.\n\n New in version 2.3.\n\nfile.errors\n\n The Unicode error handler used along with the encoding.\n\n New in version 2.6.\n\nfile.mode\n\n The I/O mode for the file. If the file was created using the\n "open()" built-in function, this will be the value of the *mode*\n parameter. This is a read-only attribute and may not be present on\n all file-like objects.\n\nfile.name\n\n If the file object was created using "open()", the name of the\n file. Otherwise, some string that indicates the source of the file\n object, of the form "<...>". This is a read-only attribute and may\n not be present on all file-like objects.\n\nfile.newlines\n\n If Python was built with *universal newlines* enabled (the default)\n this read-only attribute exists, and for files opened in universal\n newline read mode it keeps track of the types of newlines\n encountered while reading the file. The values it can take are\n "\'\\r\'", "\'\\n\'", "\'\\r\\n\'", "None" (unknown, no newlines read yet) or\n a tuple containing all the newline types seen, to indicate that\n multiple newline conventions were encountered. For files not opened\n in universal newlines read mode the value of this attribute will be\n "None".\n\nfile.softspace\n\n Boolean that indicates whether a space character needs to be\n printed before another value when using the "print" statement.\n Classes that are trying to simulate a file object should also have\n a writable "softspace" attribute, which should be initialized to\n zero. This will be automatic for most classes implemented in\n Python (care may be needed for objects that override attribute\n access); types implemented in C will have to provide a writable\n "softspace" attribute.\n\n Note: This attribute is not used to control the "print"\n statement, but to allow the implementation of "print" to keep\n track of its internal state.\n', + 'bltin-null-object': u'\nThe Null Object\n***************\n\nThis object is returned by functions that don\'t explicitly return a\nvalue. It supports no special operations. There is exactly one null\nobject, named "None" (a built-in name).\n\nIt is written as "None".\n', + 'bltin-type-objects': u'\nType Objects\n************\n\nType objects represent the various object types. An object\'s type is\naccessed by the built-in function "type()". There are no special\noperations on types. The standard module "types" defines names for\nall standard built-in types.\n\nTypes are written like this: "".\n', + 'booleans': u'\nBoolean operations\n******************\n\n or_test ::= and_test | or_test "or" and_test\n and_test ::= not_test | and_test "and" not_test\n not_test ::= comparison | "not" not_test\n\nIn the context of Boolean operations, and also when expressions are\nused by control flow statements, the following values are interpreted\nas false: "False", "None", numeric zero of all types, and empty\nstrings and containers (including strings, tuples, lists,\ndictionaries, sets and frozensets). All other values are interpreted\nas true. (See the "__nonzero__()" special method for a way to change\nthis.)\n\nThe operator "not" yields "True" if its argument is false, "False"\notherwise.\n\nThe expression "x and y" first evaluates *x*; if *x* is false, its\nvalue is returned; otherwise, *y* is evaluated and the resulting value\nis returned.\n\nThe expression "x or y" first evaluates *x*; if *x* is true, its value\nis returned; otherwise, *y* is evaluated and the resulting value is\nreturned.\n\n(Note that neither "and" nor "or" restrict the value and type they\nreturn to "False" and "True", but rather return the last evaluated\nargument. This is sometimes useful, e.g., if "s" is a string that\nshould be replaced by a default value if it is empty, the expression\n"s or \'foo\'" yields the desired value. Because "not" has to invent a\nvalue anyway, it does not bother to return a value of the same type as\nits argument, so e.g., "not \'foo\'" yields "False", not "\'\'".)\n', + 'break': u'\nThe "break" statement\n*********************\n\n break_stmt ::= "break"\n\n"break" may only occur syntactically nested in a "for" or "while"\nloop, but not nested in a function or class definition within that\nloop.\n\nIt terminates the nearest enclosing loop, skipping the optional "else"\nclause if the loop has one.\n\nIf a "for" loop is terminated by "break", the loop control target\nkeeps its current value.\n\nWhen "break" passes control out of a "try" statement with a "finally"\nclause, that "finally" clause is executed before really leaving the\nloop.\n', + 'callable-types': u'\nEmulating callable objects\n**************************\n\nobject.__call__(self[, args...])\n\n Called when the instance is "called" as a function; if this method\n is defined, "x(arg1, arg2, ...)" is a shorthand for\n "x.__call__(arg1, arg2, ...)".\n', + 'calls': u'\nCalls\n*****\n\nA call calls a callable object (e.g., a *function*) with a possibly\nempty series of *arguments*:\n\n call ::= primary "(" [argument_list [","]\n | expression genexpr_for] ")"\n argument_list ::= positional_arguments ["," keyword_arguments]\n ["," "*" expression] ["," keyword_arguments]\n ["," "**" expression]\n | keyword_arguments ["," "*" expression]\n ["," "**" expression]\n | "*" expression ["," keyword_arguments] ["," "**" expression]\n | "**" expression\n positional_arguments ::= expression ("," expression)*\n keyword_arguments ::= keyword_item ("," keyword_item)*\n keyword_item ::= identifier "=" expression\n\nA trailing comma may be present after the positional and keyword\narguments but does not affect the semantics.\n\nThe primary must evaluate to a callable object (user-defined\nfunctions, built-in functions, methods of built-in objects, class\nobjects, methods of class instances, and certain class instances\nthemselves are callable; extensions may define additional callable\nobject types). All argument expressions are evaluated before the call\nis attempted. Please refer to section Function definitions for the\nsyntax of formal *parameter* lists.\n\nIf keyword arguments are present, they are first converted to\npositional arguments, as follows. First, a list of unfilled slots is\ncreated for the formal parameters. If there are N positional\narguments, they are placed in the first N slots. Next, for each\nkeyword argument, the identifier is used to determine the\ncorresponding slot (if the identifier is the same as the first formal\nparameter name, the first slot is used, and so on). If the slot is\nalready filled, a "TypeError" exception is raised. Otherwise, the\nvalue of the argument is placed in the slot, filling it (even if the\nexpression is "None", it fills the slot). When all arguments have\nbeen processed, the slots that are still unfilled are filled with the\ncorresponding default value from the function definition. (Default\nvalues are calculated, once, when the function is defined; thus, a\nmutable object such as a list or dictionary used as default value will\nbe shared by all calls that don\'t specify an argument value for the\ncorresponding slot; this should usually be avoided.) If there are any\nunfilled slots for which no default value is specified, a "TypeError"\nexception is raised. Otherwise, the list of filled slots is used as\nthe argument list for the call.\n\n**CPython implementation detail:** An implementation may provide\nbuilt-in functions whose positional parameters do not have names, even\nif they are \'named\' for the purpose of documentation, and which\ntherefore cannot be supplied by keyword. In CPython, this is the case\nfor functions implemented in C that use "PyArg_ParseTuple()" to parse\ntheir arguments.\n\nIf there are more positional arguments than there are formal parameter\nslots, a "TypeError" exception is raised, unless a formal parameter\nusing the syntax "*identifier" is present; in this case, that formal\nparameter receives a tuple containing the excess positional arguments\n(or an empty tuple if there were no excess positional arguments).\n\nIf any keyword argument does not correspond to a formal parameter\nname, a "TypeError" exception is raised, unless a formal parameter\nusing the syntax "**identifier" is present; in this case, that formal\nparameter receives a dictionary containing the excess keyword\narguments (using the keywords as keys and the argument values as\ncorresponding values), or a (new) empty dictionary if there were no\nexcess keyword arguments.\n\nIf the syntax "*expression" appears in the function call, "expression"\nmust evaluate to an iterable. Elements from this iterable are treated\nas if they were additional positional arguments; if there are\npositional arguments *x1*, ..., *xN*, and "expression" evaluates to a\nsequence *y1*, ..., *yM*, this is equivalent to a call with M+N\npositional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n\nA consequence of this is that although the "*expression" syntax may\nappear *after* some keyword arguments, it is processed *before* the\nkeyword arguments (and the "**expression" argument, if any -- see\nbelow). So:\n\n >>> def f(a, b):\n ... print a, b\n ...\n >>> f(b=1, *(2,))\n 2 1\n >>> f(a=1, *(2,))\n Traceback (most recent call last):\n File "", line 1, in ?\n TypeError: f() got multiple values for keyword argument \'a\'\n >>> f(1, *(2,))\n 1 2\n\nIt is unusual for both keyword arguments and the "*expression" syntax\nto be used in the same call, so in practice this confusion does not\narise.\n\nIf the syntax "**expression" appears in the function call,\n"expression" must evaluate to a mapping, the contents of which are\ntreated as additional keyword arguments. In the case of a keyword\nappearing in both "expression" and as an explicit keyword argument, a\n"TypeError" exception is raised.\n\nFormal parameters using the syntax "*identifier" or "**identifier"\ncannot be used as positional argument slots or as keyword argument\nnames. Formal parameters using the syntax "(sublist)" cannot be used\nas keyword argument names; the outermost sublist corresponds to a\nsingle unnamed argument slot, and the argument value is assigned to\nthe sublist using the usual tuple assignment rules after all other\nparameter processing is done.\n\nA call always returns some value, possibly "None", unless it raises an\nexception. How this value is computed depends on the type of the\ncallable object.\n\nIf it is---\n\na user-defined function:\n The code block for the function is executed, passing it the\n argument list. The first thing the code block will do is bind the\n formal parameters to the arguments; this is described in section\n Function definitions. When the code block executes a "return"\n statement, this specifies the return value of the function call.\n\na built-in function or method:\n The result is up to the interpreter; see Built-in Functions for the\n descriptions of built-in functions and methods.\n\na class object:\n A new instance of that class is returned.\n\na class instance method:\n The corresponding user-defined function is called, with an argument\n list that is one longer than the argument list of the call: the\n instance becomes the first argument.\n\na class instance:\n The class must define a "__call__()" method; the effect is then the\n same as if that method was called.\n', + 'class': u'\nClass definitions\n*****************\n\nA class definition defines a class object (see section The standard\ntype hierarchy):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section Naming and binding), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with "self.name = value". Both\nclass and instance variables are accessible through the notation\n""self.name"", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless\n there is a "finally" clause which happens to raise another\n exception. That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of\n an exception or the execution of a "return", "continue", or\n "break" statement.\n\n[3] A string literal appearing as the first statement in the\n function body is transformed into the function\'s "__doc__"\n attribute and therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s "__doc__" item and\n therefore the class\'s *docstring*.\n', + 'comparisons': u'\nComparisons\n***********\n\nUnlike C, all comparison operations in Python have the same priority,\nwhich is lower than that of any arithmetic, shifting or bitwise\noperation. Also unlike C, expressions like "a < b < c" have the\ninterpretation that is conventional in mathematics:\n\n comparison ::= or_expr ( comp_operator or_expr )*\n comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="\n | "is" ["not"] | ["not"] "in"\n\nComparisons yield boolean values: "True" or "False".\n\nComparisons can be chained arbitrarily, e.g., "x < y <= z" is\nequivalent to "x < y and y <= z", except that "y" is evaluated only\nonce (but in both cases "z" is not evaluated at all when "x < y" is\nfound to be false).\n\nFormally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*,\n*op2*, ..., *opN* are comparison operators, then "a op1 b op2 c ... y\nopN z" is equivalent to "a op1 b and b op2 c and ... y opN z", except\nthat each expression is evaluated at most once.\n\nNote that "a op1 b op2 c" doesn\'t imply any kind of comparison between\n*a* and *c*, so that, e.g., "x < y > z" is perfectly legal (though\nperhaps not pretty).\n\nThe forms "<>" and "!=" are equivalent; for consistency with C, "!="\nis preferred; where "!=" is mentioned below "<>" is also accepted.\nThe "<>" spelling is considered obsolescent.\n\nThe operators "<", ">", "==", ">=", "<=", and "!=" compare the values\nof two objects. The objects need not have the same type. If both are\nnumbers, they are converted to a common type. Otherwise, objects of\ndifferent types *always* compare unequal, and are ordered consistently\nbut arbitrarily. You can control comparison behavior of objects of\nnon-built-in types by defining a "__cmp__" method or rich comparison\nmethods like "__gt__", described in section Special method names.\n\n(This unusual definition of comparison was used to simplify the\ndefinition of operations like sorting and the "in" and "not in"\noperators. In the future, the comparison rules for objects of\ndifferent types are likely to change.)\n\nComparison of objects of the same type depends on the type:\n\n* Numbers are compared arithmetically.\n\n* Strings are compared lexicographically using the numeric\n equivalents (the result of the built-in function "ord()") of their\n characters. Unicode and 8-bit strings are fully interoperable in\n this behavior. [4]\n\n* Tuples and lists are compared lexicographically using comparison\n of corresponding elements. This means that to compare equal, each\n element must compare equal and the two sequences must be of the same\n type and have the same length.\n\n If not equal, the sequences are ordered the same as their first\n differing elements. For example, "cmp([1,2,x], [1,2,y])" returns\n the same as "cmp(x,y)". If the corresponding element does not\n exist, the shorter sequence is ordered first (for example, "[1,2] <\n [1,2,3]").\n\n* Mappings (dictionaries) compare equal if and only if their sorted\n (key, value) lists compare equal. [5] Outcomes other than equality\n are resolved consistently, but are not otherwise defined. [6]\n\n* Most other objects of built-in types compare unequal unless they\n are the same object; the choice whether one object is considered\n smaller or larger than another one is made arbitrarily but\n consistently within one execution of a program.\n\nThe operators "in" and "not in" test for collection membership. "x in\ns" evaluates to true if *x* is a member of the collection *s*, and\nfalse otherwise. "x not in s" returns the negation of "x in s". The\ncollection membership test has traditionally been bound to sequences;\nan object is a member of a collection if the collection is a sequence\nand contains an element equal to that object. However, it make sense\nfor many other object types to support membership tests without being\na sequence. In particular, dictionaries (for keys) and sets support\nmembership testing.\n\nFor the list and tuple types, "x in y" is true if and only if there\nexists an index *i* such that either "x is y[i]" or "x == y[i]" is\ntrue.\n\nFor the Unicode and string types, "x in y" is true if and only if *x*\nis a substring of *y*. An equivalent test is "y.find(x) != -1".\nNote, *x* and *y* need not be the same type; consequently, "u\'ab\' in\n\'abc\'" will return "True". Empty strings are always considered to be a\nsubstring of any other string, so """ in "abc"" will return "True".\n\nChanged in version 2.3: Previously, *x* was required to be a string of\nlength "1".\n\nFor user-defined classes which define the "__contains__()" method, "x\nin y" is true if and only if "y.__contains__(x)" is true.\n\nFor user-defined classes which do not define "__contains__()" but do\ndefine "__iter__()", "x in y" is true if some value "z" with "x == z"\nis produced while iterating over "y". If an exception is raised\nduring the iteration, it is as if "in" raised that exception.\n\nLastly, the old-style iteration protocol is tried: if a class defines\n"__getitem__()", "x in y" is true if and only if there is a non-\nnegative integer index *i* such that "x == y[i]", and all lower\ninteger indices do not raise "IndexError" exception. (If any other\nexception is raised, it is as if "in" raised that exception).\n\nThe operator "not in" is defined to have the inverse true value of\n"in".\n\nThe operators "is" and "is not" test for object identity: "x is y" is\ntrue if and only if *x* and *y* are the same object. "x is not y"\nyields the inverse truth value. [7]\n', + 'compound': u'\nCompound statements\n*******************\n\nCompound statements contain (groups of) other statements; they affect\nor control the execution of those other statements in some way. In\ngeneral, compound statements span multiple lines, although in simple\nincarnations a whole compound statement may be contained in one line.\n\nThe "if", "while" and "for" statements implement traditional control\nflow constructs. "try" specifies exception handlers and/or cleanup\ncode for a group of statements. Function and class definitions are\nalso syntactically compound statements.\n\nCompound statements consist of one or more \'clauses.\' A clause\nconsists of a header and a \'suite.\' The clause headers of a\nparticular compound statement are all at the same indentation level.\nEach clause header begins with a uniquely identifying keyword and ends\nwith a colon. A suite is a group of statements controlled by a\nclause. A suite can be one or more semicolon-separated simple\nstatements on the same line as the header, following the header\'s\ncolon, or it can be one or more indented statements on subsequent\nlines. Only the latter form of suite can contain nested compound\nstatements; the following is illegal, mostly because it wouldn\'t be\nclear to which "if" clause a following "else" clause would belong:\n\n if test1: if test2: print x\n\nAlso note that the semicolon binds tighter than the colon in this\ncontext, so that in the following example, either all or none of the\n"print" statements are executed:\n\n if x < y < z: print x; print y; print z\n\nSummarizing:\n\n compound_stmt ::= if_stmt\n | while_stmt\n | for_stmt\n | try_stmt\n | with_stmt\n | funcdef\n | classdef\n | decorated\n suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT\n statement ::= stmt_list NEWLINE | compound_stmt\n stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n\nNote that statements always end in a "NEWLINE" possibly followed by a\n"DEDENT". Also note that optional continuation clauses always begin\nwith a keyword that cannot start a statement, thus there are no\nambiguities (the \'dangling "else"\' problem is solved in Python by\nrequiring nested "if" statements to be indented).\n\nThe formatting of the grammar rules in the following sections places\neach clause on a separate line for clarity.\n\n\nThe "if" statement\n==================\n\nThe "if" statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section Boolean operations\nfor the definition of true and false); then that suite is executed\n(and no other part of the "if" statement is executed or evaluated).\nIf all expressions are false, the suite of the "else" clause, if\npresent, is executed.\n\n\nThe "while" statement\n=====================\n\nThe "while" statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the "else" clause, if present, is executed\nand the loop terminates.\n\nA "break" statement executed in the first suite terminates the loop\nwithout executing the "else" clause\'s suite. A "continue" statement\nexecuted in the first suite skips the rest of the suite and goes back\nto testing the expression.\n\n\nThe "for" statement\n===================\n\nThe "for" statement is used to iterate over the elements of a sequence\n(such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n"expression_list". The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the "else" clause, if present, is executed, and the loop\nterminates.\n\nA "break" statement executed in the first suite terminates the loop\nwithout executing the "else" clause\'s suite. A "continue" statement\nexecuted in the first suite skips the rest of the suite and continues\nwith the next item, or with the "else" clause if there was no next\nitem.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function "range()" returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s "for i := a to b\ndo"; e.g., "range(3)" returns the list "[0, 1, 2]".\n\nNote: There is a subtlety when the sequence is being modified by the\n loop (this can only occur for mutable sequences, i.e. lists). An\n internal counter is used to keep track of which item is used next,\n and this is incremented on each iteration. When this counter has\n reached the length of the sequence the loop terminates. This means\n that if the suite deletes the current (or a previous) item from the\n sequence, the next item will be skipped (since it gets the index of\n the current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n\n\nThe "try" statement\n===================\n\nThe "try" statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") identifier]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n"try"..."except"..."finally" did not work. "try"..."except" had to be\nnested in "try"..."finally".\n\nThe "except" clause(s) specify one or more exception handlers. When no\nexception occurs in the "try" clause, no exception handler is\nexecuted. When an exception occurs in the "try" suite, a search for an\nexception handler is started. This search inspects the except clauses\nin turn until one is found that matches the exception. An expression-\nless except clause, if present, must be last; it matches any\nexception. For an except clause with an expression, that expression\nis evaluated, and the clause matches the exception if the resulting\nobject is "compatible" with the exception. An object is compatible\nwith an exception if it is the class or a base class of the exception\nobject, or a tuple containing an item compatible with the exception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire "try" statement raised\nthe exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the "sys" module:\n"sys.exc_type" receives the object identifying the exception;\n"sys.exc_value" receives the exception\'s parameter;\n"sys.exc_traceback" receives a traceback object (see section The\nstandard type hierarchy) identifying the point in the program where\nthe exception occurred. These details are also available through the\n"sys.exc_info()" function, which returns a tuple "(exc_type,\nexc_value, exc_traceback)". Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional "else" clause is executed if and when control flows off\nthe end of the "try" clause. [2] Exceptions in the "else" clause are\nnot handled by the preceding "except" clauses.\n\nIf "finally" is present, it specifies a \'cleanup\' handler. The "try"\nclause is executed, including any "except" and "else" clauses. If an\nexception occurs in any of the clauses and is not handled, the\nexception is temporarily saved. The "finally" clause is executed. If\nthere is a saved exception, it is re-raised at the end of the\n"finally" clause. If the "finally" clause raises another exception or\nexecutes a "return" or "break" statement, the saved exception is\ndiscarded:\n\n >>> def f():\n ... try:\n ... 1/0\n ... finally:\n ... return 42\n ...\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the "finally" clause.\n\nWhen a "return", "break" or "continue" statement is executed in the\n"try" suite of a "try"..."finally" statement, the "finally" clause is\nalso executed \'on the way out.\' A "continue" statement is illegal in\nthe "finally" clause. (The reason is a problem with the current\nimplementation --- this restriction may be lifted in the future).\n\nThe return value of a function is determined by the last "return"\nstatement executed. Since the "finally" clause always executes, a\n"return" statement executed in the "finally" clause will always be the\nlast one executed:\n\n >>> def foo():\n ... try:\n ... return \'try\'\n ... finally:\n ... return \'finally\'\n ...\n >>> foo()\n \'finally\'\n\nAdditional information on exceptions can be found in section\nExceptions, and information on using the "raise" statement to generate\nexceptions may be found in section The raise statement.\n\n\nThe "with" statement\n====================\n\nNew in version 2.5.\n\nThe "with" statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section With Statement\nContext Managers). This allows common "try"..."except"..."finally"\nusage patterns to be encapsulated for convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the "with" statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the "with_item")\n is evaluated to obtain a context manager.\n\n2. The context manager\'s "__exit__()" is loaded for later use.\n\n3. The context manager\'s "__enter__()" method is invoked.\n\n4. If a target was included in the "with" statement, the return\n value from "__enter__()" is assigned to it.\n\n Note: The "with" statement guarantees that if the "__enter__()"\n method returns without an error, then "__exit__()" will always be\n called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s "__exit__()" method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to "__exit__()". Otherwise, three\n "None" arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the "__exit__()" method was false, the exception is reraised.\n If the return value was true, the exception is suppressed, and\n execution continues with the statement following the "with"\n statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from "__exit__()" is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple "with" statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the "with" statement is only allowed when the\n "with_statement" feature has been enabled. It is always enabled in\n Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 343** - The "with" statement\n The specification, background, and examples for the Python "with"\n statement.\n\n\nFunction definitions\n====================\n\nA function definition defines a user-defined function object (see\nsection The standard type hierarchy):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter* "="\n*expression*, the function is said to have "default parameter values."\nFor a parameter with a default value, the corresponding *argument* may\nbe omitted from a call, in which case the parameter\'s default value is\nsubstituted. If a parameter has a default value, all following\nparameters must also have a default value --- this is a syntactic\nrestriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use "None" as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section Calls.\nA function call always assigns values to all parameters mentioned in\nthe parameter list, either from position arguments, from keyword\narguments, or from default values. If the form ""*identifier"" is\npresent, it is initialized to a tuple receiving any excess positional\nparameters, defaulting to the empty tuple. If the form\n""**identifier"" is present, it is initialized to a new dictionary\nreceiving any excess keyword arguments, defaulting to a new empty\ndictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda\nexpressions, described in section Lambdas. Note that the lambda\nexpression is merely a shorthand for a simplified function definition;\na function defined in a ""def"" statement can be passed around or\nassigned to another name just like a function defined by a lambda\nexpression. The ""def"" form is actually more powerful since it\nallows the execution of multiple statements.\n\n**Programmer\'s note:** Functions are first-class objects. A ""def""\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section Naming and binding for details.\n\n\nClass definitions\n=================\n\nA class definition defines a class object (see section The standard\ntype hierarchy):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section Naming and binding), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with "self.name = value". Both\nclass and instance variables are accessible through the notation\n""self.name"", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless\n there is a "finally" clause which happens to raise another\n exception. That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of\n an exception or the execution of a "return", "continue", or\n "break" statement.\n\n[3] A string literal appearing as the first statement in the\n function body is transformed into the function\'s "__doc__"\n attribute and therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s "__doc__" item and\n therefore the class\'s *docstring*.\n', + 'context-managers': u'\nWith Statement Context Managers\n*******************************\n\nNew in version 2.5.\n\nA *context manager* is an object that defines the runtime context to\nbe established when executing a "with" statement. The context manager\nhandles the entry into, and the exit from, the desired runtime context\nfor the execution of the block of code. Context managers are normally\ninvoked using the "with" statement (described in section The with\nstatement), but can also be used by directly invoking their methods.\n\nTypical uses of context managers include saving and restoring various\nkinds of global state, locking and unlocking resources, closing opened\nfiles, etc.\n\nFor more information on context managers, see Context Manager Types.\n\nobject.__enter__(self)\n\n Enter the runtime context related to this object. The "with"\n statement will bind this method\'s return value to the target(s)\n specified in the "as" clause of the statement, if any.\n\nobject.__exit__(self, exc_type, exc_value, traceback)\n\n Exit the runtime context related to this object. The parameters\n describe the exception that caused the context to be exited. If the\n context was exited without an exception, all three arguments will\n be "None".\n\n If an exception is supplied, and the method wishes to suppress the\n exception (i.e., prevent it from being propagated), it should\n return a true value. Otherwise, the exception will be processed\n normally upon exit from this method.\n\n Note that "__exit__()" methods should not reraise the passed-in\n exception; this is the caller\'s responsibility.\n\nSee also:\n\n **PEP 343** - The "with" statement\n The specification, background, and examples for the Python "with"\n statement.\n', + 'continue': u'\nThe "continue" statement\n************************\n\n continue_stmt ::= "continue"\n\n"continue" may only occur syntactically nested in a "for" or "while"\nloop, but not nested in a function or class definition or "finally"\nclause within that loop. It continues with the next cycle of the\nnearest enclosing loop.\n\nWhen "continue" passes control out of a "try" statement with a\n"finally" clause, that "finally" clause is executed before really\nstarting the next loop cycle.\n', + 'conversions': u'\nArithmetic conversions\n**********************\n\nWhen a description of an arithmetic operator below uses the phrase\n"the numeric arguments are converted to a common type," the arguments\nare coerced using the coercion rules listed at Coercion rules. If\nboth arguments are standard numeric types, the following coercions are\napplied:\n\n* If either argument is a complex number, the other is converted to\n complex;\n\n* otherwise, if either argument is a floating point number, the\n other is converted to floating point;\n\n* otherwise, if either argument is a long integer, the other is\n converted to long integer;\n\n* otherwise, both must be plain integers and no conversion is\n necessary.\n\nSome additional rules apply for certain operators (e.g., a string left\nargument to the \'%\' operator). Extensions can define their own\ncoercions.\n', + 'customization': u'\nBasic customization\n*******************\n\nobject.__new__(cls[, ...])\n\n Called to create a new instance of class *cls*. "__new__()" is a\n static method (special-cased so you need not declare it as such)\n that takes the class of which an instance was requested as its\n first argument. The remaining arguments are those passed to the\n object constructor expression (the call to the class). The return\n value of "__new__()" should be the new object instance (usually an\n instance of *cls*).\n\n Typical implementations create a new instance of the class by\n invoking the superclass\'s "__new__()" method using\n "super(currentclass, cls).__new__(cls[, ...])" with appropriate\n arguments and then modifying the newly-created instance as\n necessary before returning it.\n\n If "__new__()" returns an instance of *cls*, then the new\n instance\'s "__init__()" method will be invoked like\n "__init__(self[, ...])", where *self* is the new instance and the\n remaining arguments are the same as were passed to "__new__()".\n\n If "__new__()" does not return an instance of *cls*, then the new\n instance\'s "__init__()" method will not be invoked.\n\n "__new__()" is intended mainly to allow subclasses of immutable\n types (like int, str, or tuple) to customize instance creation. It\n is also commonly overridden in custom metaclasses in order to\n customize class creation.\n\nobject.__init__(self[, ...])\n\n Called after the instance has been created (by "__new__()"), but\n before it is returned to the caller. The arguments are those\n passed to the class constructor expression. If a base class has an\n "__init__()" method, the derived class\'s "__init__()" method, if\n any, must explicitly call it to ensure proper initialization of the\n base class part of the instance; for example:\n "BaseClass.__init__(self, [args...])".\n\n Because "__new__()" and "__init__()" work together in constructing\n objects ("__new__()" to create it, and "__init__()" to customise\n it), no non-"None" value may be returned by "__init__()"; doing so\n will cause a "TypeError" to be raised at runtime.\n\nobject.__del__(self)\n\n Called when the instance is about to be destroyed. This is also\n called a destructor. If a base class has a "__del__()" method, the\n derived class\'s "__del__()" method, if any, must explicitly call it\n to ensure proper deletion of the base class part of the instance.\n Note that it is possible (though not recommended!) for the\n "__del__()" method to postpone destruction of the instance by\n creating a new reference to it. It may then be called at a later\n time when this new reference is deleted. It is not guaranteed that\n "__del__()" methods are called for objects that still exist when\n the interpreter exits.\n\n Note: "del x" doesn\'t directly call "x.__del__()" --- the former\n decrements the reference count for "x" by one, and the latter is\n only called when "x"\'s reference count reaches zero. Some common\n situations that may prevent the reference count of an object from\n going to zero include: circular references between objects (e.g.,\n a doubly-linked list or a tree data structure with parent and\n child pointers); a reference to the object on the stack frame of\n a function that caught an exception (the traceback stored in\n "sys.exc_traceback" keeps the stack frame alive); or a reference\n to the object on the stack frame that raised an unhandled\n exception in interactive mode (the traceback stored in\n "sys.last_traceback" keeps the stack frame alive). The first\n situation can only be remedied by explicitly breaking the cycles;\n the latter two situations can be resolved by storing "None" in\n "sys.exc_traceback" or "sys.last_traceback". Circular references\n which are garbage are detected when the option cycle detector is\n enabled (it\'s on by default), but can only be cleaned up if there\n are no Python-level "__del__()" methods involved. Refer to the\n documentation for the "gc" module for more information about how\n "__del__()" methods are handled by the cycle detector,\n particularly the description of the "garbage" value.\n\n Warning: Due to the precarious circumstances under which\n "__del__()" methods are invoked, exceptions that occur during\n their execution are ignored, and a warning is printed to\n "sys.stderr" instead. Also, when "__del__()" is invoked in\n response to a module being deleted (e.g., when execution of the\n program is done), other globals referenced by the "__del__()"\n method may already have been deleted or in the process of being\n torn down (e.g. the import machinery shutting down). For this\n reason, "__del__()" methods should do the absolute minimum needed\n to maintain external invariants. Starting with version 1.5,\n Python guarantees that globals whose name begins with a single\n underscore are deleted from their module before other globals are\n deleted; if no other references to such globals exist, this may\n help in assuring that imported modules are still available at the\n time when the "__del__()" method is called.\n\n See also the "-R" command-line option.\n\nobject.__repr__(self)\n\n Called by the "repr()" built-in function and by string conversions\n (reverse quotes) to compute the "official" string representation of\n an object. If at all possible, this should look like a valid\n Python expression that could be used to recreate an object with the\n same value (given an appropriate environment). If this is not\n possible, a string of the form "<...some useful description...>"\n should be returned. The return value must be a string object. If a\n class defines "__repr__()" but not "__str__()", then "__repr__()"\n is also used when an "informal" string representation of instances\n of that class is required.\n\n This is typically used for debugging, so it is important that the\n representation is information-rich and unambiguous.\n\nobject.__str__(self)\n\n Called by the "str()" built-in function and by the "print"\n statement to compute the "informal" string representation of an\n object. This differs from "__repr__()" in that it does not have to\n be a valid Python expression: a more convenient or concise\n representation may be used instead. The return value must be a\n string object.\n\nobject.__lt__(self, other)\nobject.__le__(self, other)\nobject.__eq__(self, other)\nobject.__ne__(self, other)\nobject.__gt__(self, other)\nobject.__ge__(self, other)\n\n New in version 2.1.\n\n These are the so-called "rich comparison" methods, and are called\n for comparison operators in preference to "__cmp__()" below. The\n correspondence between operator symbols and method names is as\n follows: "xy" call "x.__ne__(y)",\n "x>y" calls "x.__gt__(y)", and "x>=y" calls "x.__ge__(y)".\n\n A rich comparison method may return the singleton "NotImplemented"\n if it does not implement the operation for a given pair of\n arguments. By convention, "False" and "True" are returned for a\n successful comparison. However, these methods can return any value,\n so if the comparison operator is used in a Boolean context (e.g.,\n in the condition of an "if" statement), Python will call "bool()"\n on the value to determine if the result is true or false.\n\n There are no implied relationships among the comparison operators.\n The truth of "x==y" does not imply that "x!=y" is false.\n Accordingly, when defining "__eq__()", one should also define\n "__ne__()" so that the operators will behave as expected. See the\n paragraph on "__hash__()" for some important notes on creating\n *hashable* objects which support custom comparison operations and\n are usable as dictionary keys.\n\n There are no swapped-argument versions of these methods (to be used\n when the left argument does not support the operation but the right\n argument does); rather, "__lt__()" and "__gt__()" are each other\'s\n reflection, "__le__()" and "__ge__()" are each other\'s reflection,\n and "__eq__()" and "__ne__()" are their own reflection.\n\n Arguments to rich comparison methods are never coerced.\n\n To automatically generate ordering operations from a single root\n operation, see "functools.total_ordering()".\n\nobject.__cmp__(self, other)\n\n Called by comparison operations if rich comparison (see above) is\n not defined. Should return a negative integer if "self < other",\n zero if "self == other", a positive integer if "self > other". If\n no "__cmp__()", "__eq__()" or "__ne__()" operation is defined,\n class instances are compared by object identity ("address"). See\n also the description of "__hash__()" for some important notes on\n creating *hashable* objects which support custom comparison\n operations and are usable as dictionary keys. (Note: the\n restriction that exceptions are not propagated by "__cmp__()" has\n been removed since Python 1.5.)\n\nobject.__rcmp__(self, other)\n\n Changed in version 2.1: No longer supported.\n\nobject.__hash__(self)\n\n Called by built-in function "hash()" and for operations on members\n of hashed collections including "set", "frozenset", and "dict".\n "__hash__()" should return an integer. The only required property\n is that objects which compare equal have the same hash value; it is\n advised to somehow mix together (e.g. using exclusive or) the hash\n values for the components of the object that also play a part in\n comparison of objects.\n\n If a class does not define a "__cmp__()" or "__eq__()" method it\n should not define a "__hash__()" operation either; if it defines\n "__cmp__()" or "__eq__()" but not "__hash__()", its instances will\n not be usable in hashed collections. If a class defines mutable\n objects and implements a "__cmp__()" or "__eq__()" method, it\n should not implement "__hash__()", since hashable collection\n implementations require that an object\'s hash value is immutable\n (if the object\'s hash value changes, it will be in the wrong hash\n bucket).\n\n User-defined classes have "__cmp__()" and "__hash__()" methods by\n default; with them, all objects compare unequal (except with\n themselves) and "x.__hash__()" returns a result derived from\n "id(x)".\n\n Classes which inherit a "__hash__()" method from a parent class but\n change the meaning of "__cmp__()" or "__eq__()" such that the hash\n value returned is no longer appropriate (e.g. by switching to a\n value-based concept of equality instead of the default identity\n based equality) can explicitly flag themselves as being unhashable\n by setting "__hash__ = None" in the class definition. Doing so\n means that not only will instances of the class raise an\n appropriate "TypeError" when a program attempts to retrieve their\n hash value, but they will also be correctly identified as\n unhashable when checking "isinstance(obj, collections.Hashable)"\n (unlike classes which define their own "__hash__()" to explicitly\n raise "TypeError").\n\n Changed in version 2.5: "__hash__()" may now also return a long\n integer object; the 32-bit integer is then derived from the hash of\n that object.\n\n Changed in version 2.6: "__hash__" may now be set to "None" to\n explicitly flag instances of a class as unhashable.\n\nobject.__nonzero__(self)\n\n Called to implement truth value testing and the built-in operation\n "bool()"; should return "False" or "True", or their integer\n equivalents "0" or "1". When this method is not defined,\n "__len__()" is called, if it is defined, and the object is\n considered true if its result is nonzero. If a class defines\n neither "__len__()" nor "__nonzero__()", all its instances are\n considered true.\n\nobject.__unicode__(self)\n\n Called to implement "unicode()" built-in; should return a Unicode\n object. When this method is not defined, string conversion is\n attempted, and the result of string conversion is converted to\n Unicode using the system default encoding.\n', + 'debugger': u'\n"pdb" --- The Python Debugger\n*****************************\n\n**Source code:** Lib/pdb.py\n\n======================================================================\n\nThe module "pdb" defines an interactive source code debugger for\nPython programs. It supports setting (conditional) breakpoints and\nsingle stepping at the source line level, inspection of stack frames,\nsource code listing, and evaluation of arbitrary Python code in the\ncontext of any stack frame. It also supports post-mortem debugging\nand can be called under program control.\n\nThe debugger is extensible --- it is actually defined as the class\n"Pdb". This is currently undocumented but easily understood by reading\nthe source. The extension interface uses the modules "bdb" and "cmd".\n\nThe debugger\'s prompt is "(Pdb)". Typical usage to run a program under\ncontrol of the debugger is:\n\n >>> import pdb\n >>> import mymodule\n >>> pdb.run(\'mymodule.test()\')\n > (0)?()\n (Pdb) continue\n > (1)?()\n (Pdb) continue\n NameError: \'spam\'\n > (1)?()\n (Pdb)\n\n"pdb.py" can also be invoked as a script to debug other scripts. For\nexample:\n\n python -m pdb myscript.py\n\nWhen invoked as a script, pdb will automatically enter post-mortem\ndebugging if the program being debugged exits abnormally. After post-\nmortem debugging (or after normal exit of the program), pdb will\nrestart the program. Automatic restarting preserves pdb\'s state (such\nas breakpoints) and in most cases is more useful than quitting the\ndebugger upon program\'s exit.\n\nNew in version 2.4: Restarting post-mortem behavior added.\n\nThe typical usage to break into the debugger from a running program is\nto insert\n\n import pdb; pdb.set_trace()\n\nat the location you want to break into the debugger. You can then\nstep through the code following this statement, and continue running\nwithout the debugger using the "c" command.\n\nThe typical usage to inspect a crashed program is:\n\n >>> import pdb\n >>> import mymodule\n >>> mymodule.test()\n Traceback (most recent call last):\n File "", line 1, in ?\n File "./mymodule.py", line 4, in test\n test2()\n File "./mymodule.py", line 3, in test2\n print spam\n NameError: spam\n >>> pdb.pm()\n > ./mymodule.py(3)test2()\n -> print spam\n (Pdb)\n\nThe module defines the following functions; each enters the debugger\nin a slightly different way:\n\npdb.run(statement[, globals[, locals]])\n\n Execute the *statement* (given as a string) under debugger control.\n The debugger prompt appears before any code is executed; you can\n set breakpoints and type "continue", or you can step through the\n statement using "step" or "next" (all these commands are explained\n below). The optional *globals* and *locals* arguments specify the\n environment in which the code is executed; by default the\n dictionary of the module "__main__" is used. (See the explanation\n of the "exec" statement or the "eval()" built-in function.)\n\npdb.runeval(expression[, globals[, locals]])\n\n Evaluate the *expression* (given as a string) under debugger\n control. When "runeval()" returns, it returns the value of the\n expression. Otherwise this function is similar to "run()".\n\npdb.runcall(function[, argument, ...])\n\n Call the *function* (a function or method object, not a string)\n with the given arguments. When "runcall()" returns, it returns\n whatever the function call returned. The debugger prompt appears\n as soon as the function is entered.\n\npdb.set_trace()\n\n Enter the debugger at the calling stack frame. This is useful to\n hard-code a breakpoint at a given point in a program, even if the\n code is not otherwise being debugged (e.g. when an assertion\n fails).\n\npdb.post_mortem([traceback])\n\n Enter post-mortem debugging of the given *traceback* object. If no\n *traceback* is given, it uses the one of the exception that is\n currently being handled (an exception must be being handled if the\n default is to be used).\n\npdb.pm()\n\n Enter post-mortem debugging of the traceback found in\n "sys.last_traceback".\n\nThe "run*" functions and "set_trace()" are aliases for instantiating\nthe "Pdb" class and calling the method of the same name. If you want\nto access further features, you have to do this yourself:\n\nclass pdb.Pdb(completekey=\'tab\', stdin=None, stdout=None, skip=None)\n\n "Pdb" is the debugger class.\n\n The *completekey*, *stdin* and *stdout* arguments are passed to the\n underlying "cmd.Cmd" class; see the description there.\n\n The *skip* argument, if given, must be an iterable of glob-style\n module name patterns. The debugger will not step into frames that\n originate in a module that matches one of these patterns. [1]\n\n Example call to enable tracing with *skip*:\n\n import pdb; pdb.Pdb(skip=[\'django.*\']).set_trace()\n\n New in version 2.7: The *skip* argument.\n\n run(statement[, globals[, locals]])\n runeval(expression[, globals[, locals]])\n runcall(function[, argument, ...])\n set_trace()\n\n See the documentation for the functions explained above.\n', + 'del': u'\nThe "del" statement\n*******************\n\n del_stmt ::= "del" target_list\n\nDeletion is recursively defined very similar to the way assignment is\ndefined. Rather than spelling it out in full details, here are some\nhints.\n\nDeletion of a target list recursively deletes each target, from left\nto right.\n\nDeletion of a name removes the binding of that name from the local or\nglobal namespace, depending on whether the name occurs in a "global"\nstatement in the same code block. If the name is unbound, a\n"NameError" exception will be raised.\n\nIt is illegal to delete a name from the local namespace if it occurs\nas a free variable in a nested block.\n\nDeletion of attribute references, subscriptions and slicings is passed\nto the primary object involved; deletion of a slicing is in general\nequivalent to assignment of an empty slice of the right type (but even\nthis is determined by the sliced object).\n', + 'dict': u'\nDictionary displays\n*******************\n\nA dictionary display is a possibly empty series of key/datum pairs\nenclosed in curly braces:\n\n dict_display ::= "{" [key_datum_list | dict_comprehension] "}"\n key_datum_list ::= key_datum ("," key_datum)* [","]\n key_datum ::= expression ":" expression\n dict_comprehension ::= expression ":" expression comp_for\n\nA dictionary display yields a new dictionary object.\n\nIf a comma-separated sequence of key/datum pairs is given, they are\nevaluated from left to right to define the entries of the dictionary:\neach key object is used as a key into the dictionary to store the\ncorresponding datum. This means that you can specify the same key\nmultiple times in the key/datum list, and the final dictionary\'s value\nfor that key will be the last one given.\n\nA dict comprehension, in contrast to list and set comprehensions,\nneeds two expressions separated with a colon followed by the usual\n"for" and "if" clauses. When the comprehension is run, the resulting\nkey and value elements are inserted in the new dictionary in the order\nthey are produced.\n\nRestrictions on the types of the key values are listed earlier in\nsection The standard type hierarchy. (To summarize, the key type\nshould be *hashable*, which excludes all mutable objects.) Clashes\nbetween duplicate keys are not detected; the last datum (textually\nrightmost in the display) stored for a given key value prevails.\n', + 'dynamic-features': u'\nInteraction with dynamic features\n*********************************\n\nThere are several cases where Python statements are illegal when used\nin conjunction with nested scopes that contain free variables.\n\nIf a variable is referenced in an enclosing scope, it is illegal to\ndelete the name. An error will be reported at compile time.\n\nIf the wild card form of import --- "import *" --- is used in a\nfunction and the function contains or is a nested block with free\nvariables, the compiler will raise a "SyntaxError".\n\nIf "exec" is used in a function and the function contains or is a\nnested block with free variables, the compiler will raise a\n"SyntaxError" unless the exec explicitly specifies the local namespace\nfor the "exec". (In other words, "exec obj" would be illegal, but\n"exec obj in ns" would be legal.)\n\nThe "eval()", "execfile()", and "input()" functions and the "exec"\nstatement do not have access to the full environment for resolving\nnames. Names may be resolved in the local and global namespaces of\nthe caller. Free variables are not resolved in the nearest enclosing\nnamespace, but in the global namespace. [1] The "exec" statement and\nthe "eval()" and "execfile()" functions have optional arguments to\noverride the global and local namespace. If only one namespace is\nspecified, it is used for both.\n', + 'else': u'\nThe "if" statement\n******************\n\nThe "if" statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section Boolean operations\nfor the definition of true and false); then that suite is executed\n(and no other part of the "if" statement is executed or evaluated).\nIf all expressions are false, the suite of the "else" clause, if\npresent, is executed.\n', + 'exceptions': u'\nExceptions\n**********\n\nExceptions are a means of breaking out of the normal flow of control\nof a code block in order to handle errors or other exceptional\nconditions. An exception is *raised* at the point where the error is\ndetected; it may be *handled* by the surrounding code block or by any\ncode block that directly or indirectly invoked the code block where\nthe error occurred.\n\nThe Python interpreter raises an exception when it detects a run-time\nerror (such as division by zero). A Python program can also\nexplicitly raise an exception with the "raise" statement. Exception\nhandlers are specified with the "try" ... "except" statement. The\n"finally" clause of such a statement can be used to specify cleanup\ncode which does not handle the exception, but is executed whether an\nexception occurred or not in the preceding code.\n\nPython uses the "termination" model of error handling: an exception\nhandler can find out what happened and continue execution at an outer\nlevel, but it cannot repair the cause of the error and retry the\nfailing operation (except by re-entering the offending piece of code\nfrom the top).\n\nWhen an exception is not handled at all, the interpreter terminates\nexecution of the program, or returns to its interactive main loop. In\neither case, it prints a stack backtrace, except when the exception is\n"SystemExit".\n\nExceptions are identified by class instances. The "except" clause is\nselected depending on the class of the instance: it must reference the\nclass of the instance or a base class thereof. The instance can be\nreceived by the handler and can carry additional information about the\nexceptional condition.\n\nExceptions can also be identified by strings, in which case the\n"except" clause is selected by object identity. An arbitrary value\ncan be raised along with the identifying string which can be passed to\nthe handler.\n\nNote: Messages to exceptions are not part of the Python API. Their\n contents may change from one version of Python to the next without\n warning and should not be relied on by code which will run under\n multiple versions of the interpreter.\n\nSee also the description of the "try" statement in section The try\nstatement and "raise" statement in section The raise statement.\n\n-[ Footnotes ]-\n\n[1] This limitation occurs because the code that is executed by\n these operations is not available at the time the module is\n compiled.\n', + 'exec': u'\nThe "exec" statement\n********************\n\n exec_stmt ::= "exec" or_expr ["in" expression ["," expression]]\n\nThis statement supports dynamic execution of Python code. The first\nexpression should evaluate to either a Unicode string, a *Latin-1*\nencoded string, an open file object, a code object, or a tuple. If it\nis a string, the string is parsed as a suite of Python statements\nwhich is then executed (unless a syntax error occurs). [1] If it is an\nopen file, the file is parsed until EOF and executed. If it is a code\nobject, it is simply executed. For the interpretation of a tuple, see\nbelow. In all cases, the code that\'s executed is expected to be valid\nas file input (see section File input). Be aware that the "return"\nand "yield" statements may not be used outside of function definitions\neven within the context of code passed to the "exec" statement.\n\nIn all cases, if the optional parts are omitted, the code is executed\nin the current scope. If only the first expression after "in" is\nspecified, it should be a dictionary, which will be used for both the\nglobal and the local variables. If two expressions are given, they\nare used for the global and local variables, respectively. If\nprovided, *locals* can be any mapping object. Remember that at module\nlevel, globals and locals are the same dictionary. If two separate\nobjects are given as *globals* and *locals*, the code will be executed\nas if it were embedded in a class definition.\n\nThe first expression may also be a tuple of length 2 or 3. In this\ncase, the optional parts must be omitted. The form "exec(expr,\nglobals)" is equivalent to "exec expr in globals", while the form\n"exec(expr, globals, locals)" is equivalent to "exec expr in globals,\nlocals". The tuple form of "exec" provides compatibility with Python\n3, where "exec" is a function rather than a statement.\n\nChanged in version 2.4: Formerly, *locals* was required to be a\ndictionary.\n\nAs a side effect, an implementation may insert additional keys into\nthe dictionaries given besides those corresponding to variable names\nset by the executed code. For example, the current implementation may\nadd a reference to the dictionary of the built-in module "__builtin__"\nunder the key "__builtins__" (!).\n\n**Programmer\'s hints:** dynamic evaluation of expressions is supported\nby the built-in function "eval()". The built-in functions "globals()"\nand "locals()" return the current global and local dictionary,\nrespectively, which may be useful to pass around for use by "exec".\n\n-[ Footnotes ]-\n\n[1] Note that the parser only accepts the Unix-style end of line\n convention. If you are reading the code from a file, make sure to\n use *universal newlines* mode to convert Windows or Mac-style\n newlines.\n', + 'execmodel': u'\nExecution model\n***************\n\n\nNaming and binding\n==================\n\n*Names* refer to objects. Names are introduced by name binding\noperations. Each occurrence of a name in the program text refers to\nthe *binding* of that name established in the innermost function block\ncontaining the use.\n\nA *block* is a piece of Python program text that is executed as a\nunit. The following are blocks: a module, a function body, and a class\ndefinition. Each command typed interactively is a block. A script\nfile (a file given as standard input to the interpreter or specified\non the interpreter command line the first argument) is a code block.\nA script command (a command specified on the interpreter command line\nwith the \'**-c**\' option) is a code block. The file read by the\nbuilt-in function "execfile()" is a code block. The string argument\npassed to the built-in function "eval()" and to the "exec" statement\nis a code block. The expression read and evaluated by the built-in\nfunction "input()" is a code block.\n\nA code block is executed in an *execution frame*. A frame contains\nsome administrative information (used for debugging) and determines\nwhere and how execution continues after the code block\'s execution has\ncompleted.\n\nA *scope* defines the visibility of a name within a block. If a local\nvariable is defined in a block, its scope includes that block. If the\ndefinition occurs in a function block, the scope extends to any blocks\ncontained within the defining one, unless a contained block introduces\na different binding for the name. The scope of names defined in a\nclass block is limited to the class block; it does not extend to the\ncode blocks of methods -- this includes generator expressions since\nthey are implemented using a function scope. This means that the\nfollowing will fail:\n\n class A:\n a = 42\n b = list(a + i for i in range(10))\n\nWhen a name is used in a code block, it is resolved using the nearest\nenclosing scope. The set of all such scopes visible to a code block\nis called the block\'s *environment*.\n\nIf a name is bound in a block, it is a local variable of that block.\nIf a name is bound at the module level, it is a global variable. (The\nvariables of the module code block are local and global.) If a\nvariable is used in a code block but not defined there, it is a *free\nvariable*.\n\nWhen a name is not found at all, a "NameError" exception is raised.\nIf the name refers to a local variable that has not been bound, a\n"UnboundLocalError" exception is raised. "UnboundLocalError" is a\nsubclass of "NameError".\n\nThe following constructs bind names: formal parameters to functions,\n"import" statements, class and function definitions (these bind the\nclass or function name in the defining block), and targets that are\nidentifiers if occurring in an assignment, "for" loop header, in the\nsecond position of an "except" clause header or after "as" in a "with"\nstatement. The "import" statement of the form "from ... import *"\nbinds all names defined in the imported module, except those beginning\nwith an underscore. This form may only be used at the module level.\n\nA target occurring in a "del" statement is also considered bound for\nthis purpose (though the actual semantics are to unbind the name). It\nis illegal to unbind a name that is referenced by an enclosing scope;\nthe compiler will report a "SyntaxError".\n\nEach assignment or import statement occurs within a block defined by a\nclass or function definition or at the module level (the top-level\ncode block).\n\nIf a name binding operation occurs anywhere within a code block, all\nuses of the name within the block are treated as references to the\ncurrent block. This can lead to errors when a name is used within a\nblock before it is bound. This rule is subtle. Python lacks\ndeclarations and allows name binding operations to occur anywhere\nwithin a code block. The local variables of a code block can be\ndetermined by scanning the entire text of the block for name binding\noperations.\n\nIf the global statement occurs within a block, all uses of the name\nspecified in the statement refer to the binding of that name in the\ntop-level namespace. Names are resolved in the top-level namespace by\nsearching the global namespace, i.e. the namespace of the module\ncontaining the code block, and the builtins namespace, the namespace\nof the module "__builtin__". The global namespace is searched first.\nIf the name is not found there, the builtins namespace is searched.\nThe global statement must precede all uses of the name.\n\nThe builtins namespace associated with the execution of a code block\nis actually found by looking up the name "__builtins__" in its global\nnamespace; this should be a dictionary or a module (in the latter case\nthe module\'s dictionary is used). By default, when in the "__main__"\nmodule, "__builtins__" is the built-in module "__builtin__" (note: no\n\'s\'); when in any other module, "__builtins__" is an alias for the\ndictionary of the "__builtin__" module itself. "__builtins__" can be\nset to a user-created dictionary to create a weak form of restricted\nexecution.\n\n**CPython implementation detail:** Users should not touch\n"__builtins__"; it is strictly an implementation detail. Users\nwanting to override values in the builtins namespace should "import"\nthe "__builtin__" (no \'s\') module and modify its attributes\nappropriately.\n\nThe namespace for a module is automatically created the first time a\nmodule is imported. The main module for a script is always called\n"__main__".\n\nThe "global" statement has the same scope as a name binding operation\nin the same block. If the nearest enclosing scope for a free variable\ncontains a global statement, the free variable is treated as a global.\n\nA class definition is an executable statement that may use and define\nnames. These references follow the normal rules for name resolution.\nThe namespace of the class definition becomes the attribute dictionary\nof the class. Names defined at the class scope are not visible in\nmethods.\n\n\nInteraction with dynamic features\n---------------------------------\n\nThere are several cases where Python statements are illegal when used\nin conjunction with nested scopes that contain free variables.\n\nIf a variable is referenced in an enclosing scope, it is illegal to\ndelete the name. An error will be reported at compile time.\n\nIf the wild card form of import --- "import *" --- is used in a\nfunction and the function contains or is a nested block with free\nvariables, the compiler will raise a "SyntaxError".\n\nIf "exec" is used in a function and the function contains or is a\nnested block with free variables, the compiler will raise a\n"SyntaxError" unless the exec explicitly specifies the local namespace\nfor the "exec". (In other words, "exec obj" would be illegal, but\n"exec obj in ns" would be legal.)\n\nThe "eval()", "execfile()", and "input()" functions and the "exec"\nstatement do not have access to the full environment for resolving\nnames. Names may be resolved in the local and global namespaces of\nthe caller. Free variables are not resolved in the nearest enclosing\nnamespace, but in the global namespace. [1] The "exec" statement and\nthe "eval()" and "execfile()" functions have optional arguments to\noverride the global and local namespace. If only one namespace is\nspecified, it is used for both.\n\n\nExceptions\n==========\n\nExceptions are a means of breaking out of the normal flow of control\nof a code block in order to handle errors or other exceptional\nconditions. An exception is *raised* at the point where the error is\ndetected; it may be *handled* by the surrounding code block or by any\ncode block that directly or indirectly invoked the code block where\nthe error occurred.\n\nThe Python interpreter raises an exception when it detects a run-time\nerror (such as division by zero). A Python program can also\nexplicitly raise an exception with the "raise" statement. Exception\nhandlers are specified with the "try" ... "except" statement. The\n"finally" clause of such a statement can be used to specify cleanup\ncode which does not handle the exception, but is executed whether an\nexception occurred or not in the preceding code.\n\nPython uses the "termination" model of error handling: an exception\nhandler can find out what happened and continue execution at an outer\nlevel, but it cannot repair the cause of the error and retry the\nfailing operation (except by re-entering the offending piece of code\nfrom the top).\n\nWhen an exception is not handled at all, the interpreter terminates\nexecution of the program, or returns to its interactive main loop. In\neither case, it prints a stack backtrace, except when the exception is\n"SystemExit".\n\nExceptions are identified by class instances. The "except" clause is\nselected depending on the class of the instance: it must reference the\nclass of the instance or a base class thereof. The instance can be\nreceived by the handler and can carry additional information about the\nexceptional condition.\n\nExceptions can also be identified by strings, in which case the\n"except" clause is selected by object identity. An arbitrary value\ncan be raised along with the identifying string which can be passed to\nthe handler.\n\nNote: Messages to exceptions are not part of the Python API. Their\n contents may change from one version of Python to the next without\n warning and should not be relied on by code which will run under\n multiple versions of the interpreter.\n\nSee also the description of the "try" statement in section The try\nstatement and "raise" statement in section The raise statement.\n\n-[ Footnotes ]-\n\n[1] This limitation occurs because the code that is executed by\n these operations is not available at the time the module is\n compiled.\n', + 'exprlists': u'\nExpression lists\n****************\n\n expression_list ::= expression ( "," expression )* [","]\n\nAn expression list containing at least one comma yields a tuple. The\nlength of the tuple is the number of expressions in the list. The\nexpressions are evaluated from left to right.\n\nThe trailing comma is required only to create a single tuple (a.k.a. a\n*singleton*); it is optional in all other cases. A single expression\nwithout a trailing comma doesn\'t create a tuple, but rather yields the\nvalue of that expression. (To create an empty tuple, use an empty pair\nof parentheses: "()".)\n', + 'floating': u'\nFloating point literals\n***********************\n\nFloating point literals are described by the following lexical\ndefinitions:\n\n floatnumber ::= pointfloat | exponentfloat\n pointfloat ::= [intpart] fraction | intpart "."\n exponentfloat ::= (intpart | pointfloat) exponent\n intpart ::= digit+\n fraction ::= "." digit+\n exponent ::= ("e" | "E") ["+" | "-"] digit+\n\nNote that the integer and exponent parts of floating point numbers can\nlook like octal integers, but are interpreted using radix 10. For\nexample, "077e010" is legal, and denotes the same number as "77e10".\nThe allowed range of floating point literals is implementation-\ndependent. Some examples of floating point literals:\n\n 3.14 10. .001 1e100 3.14e-10 0e0\n\nNote that numeric literals do not include a sign; a phrase like "-1"\nis actually an expression composed of the unary operator "-" and the\nliteral "1".\n', + 'for': u'\nThe "for" statement\n*******************\n\nThe "for" statement is used to iterate over the elements of a sequence\n(such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n"expression_list". The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the "else" clause, if present, is executed, and the loop\nterminates.\n\nA "break" statement executed in the first suite terminates the loop\nwithout executing the "else" clause\'s suite. A "continue" statement\nexecuted in the first suite skips the rest of the suite and continues\nwith the next item, or with the "else" clause if there was no next\nitem.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function "range()" returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s "for i := a to b\ndo"; e.g., "range(3)" returns the list "[0, 1, 2]".\n\nNote: There is a subtlety when the sequence is being modified by the\n loop (this can only occur for mutable sequences, i.e. lists). An\n internal counter is used to keep track of which item is used next,\n and this is incremented on each iteration. When this counter has\n reached the length of the sequence the loop terminates. This means\n that if the suite deletes the current (or a previous) item from the\n sequence, the next item will be skipped (since it gets the index of\n the current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n', + 'formatstrings': u'\nFormat String Syntax\n********************\n\nThe "str.format()" method and the "Formatter" class share the same\nsyntax for format strings (although in the case of "Formatter",\nsubclasses can define their own format string syntax).\n\nFormat strings contain "replacement fields" surrounded by curly braces\n"{}". Anything that is not contained in braces is considered literal\ntext, which is copied unchanged to the output. If you need to include\na brace character in the literal text, it can be escaped by doubling:\n"{{" and "}}".\n\nThe grammar for a replacement field is as follows:\n\n replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"\n field_name ::= arg_name ("." attribute_name | "[" element_index "]")*\n arg_name ::= [identifier | integer]\n attribute_name ::= identifier\n element_index ::= integer | index_string\n index_string ::= +\n conversion ::= "r" | "s"\n format_spec ::= \n\nIn less formal terms, the replacement field can start with a\n*field_name* that specifies the object whose value is to be formatted\nand inserted into the output instead of the replacement field. The\n*field_name* is optionally followed by a *conversion* field, which is\npreceded by an exclamation point "\'!\'", and a *format_spec*, which is\npreceded by a colon "\':\'". These specify a non-default format for the\nreplacement value.\n\nSee also the Format Specification Mini-Language section.\n\nThe *field_name* itself begins with an *arg_name* that is either a\nnumber or a keyword. If it\'s a number, it refers to a positional\nargument, and if it\'s a keyword, it refers to a named keyword\nargument. If the numerical arg_names in a format string are 0, 1, 2,\n... in sequence, they can all be omitted (not just some) and the\nnumbers 0, 1, 2, ... will be automatically inserted in that order.\nBecause *arg_name* is not quote-delimited, it is not possible to\nspecify arbitrary dictionary keys (e.g., the strings "\'10\'" or\n"\':-]\'") within a format string. The *arg_name* can be followed by any\nnumber of index or attribute expressions. An expression of the form\n"\'.name\'" selects the named attribute using "getattr()", while an\nexpression of the form "\'[index]\'" does an index lookup using\n"__getitem__()".\n\nChanged in version 2.7: The positional argument specifiers can be\nomitted, so "\'{} {}\'" is equivalent to "\'{0} {1}\'".\n\nSome simple format string examples:\n\n "First, thou shalt count to {0}" # References first positional argument\n "Bring me a {}" # Implicitly references the first positional argument\n "From {} to {}" # Same as "From {0} to {1}"\n "My quest is {name}" # References keyword argument \'name\'\n "Weight in tons {0.weight}" # \'weight\' attribute of first positional arg\n "Units destroyed: {players[0]}" # First element of keyword argument \'players\'.\n\nThe *conversion* field causes a type coercion before formatting.\nNormally, the job of formatting a value is done by the "__format__()"\nmethod of the value itself. However, in some cases it is desirable to\nforce a type to be formatted as a string, overriding its own\ndefinition of formatting. By converting the value to a string before\ncalling "__format__()", the normal formatting logic is bypassed.\n\nTwo conversion flags are currently supported: "\'!s\'" which calls\n"str()" on the value, and "\'!r\'" which calls "repr()".\n\nSome examples:\n\n "Harold\'s a clever {0!s}" # Calls str() on the argument first\n "Bring out the holy {name!r}" # Calls repr() on the argument first\n\nThe *format_spec* field contains a specification of how the value\nshould be presented, including such details as field width, alignment,\npadding, decimal precision and so on. Each value type can define its\nown "formatting mini-language" or interpretation of the *format_spec*.\n\nMost built-in types support a common formatting mini-language, which\nis described in the next section.\n\nA *format_spec* field can also include nested replacement fields\nwithin it. These nested replacement fields may contain a field name,\nconversion flag and format specification, but deeper nesting is not\nallowed. The replacement fields within the format_spec are\nsubstituted before the *format_spec* string is interpreted. This\nallows the formatting of a value to be dynamically specified.\n\nSee the Format examples section for some examples.\n\n\nFormat Specification Mini-Language\n==================================\n\n"Format specifications" are used within replacement fields contained\nwithin a format string to define how individual values are presented\n(see Format String Syntax). They can also be passed directly to the\nbuilt-in "format()" function. Each formattable type may define how\nthe format specification is to be interpreted.\n\nMost built-in types implement the following options for format\nspecifications, although some of the formatting options are only\nsupported by the numeric types.\n\nA general convention is that an empty format string ("""") produces\nthe same result as if you had called "str()" on the value. A non-empty\nformat string typically modifies the result.\n\nThe general form of a *standard format specifier* is:\n\n format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]\n fill ::= \n align ::= "<" | ">" | "=" | "^"\n sign ::= "+" | "-" | " "\n width ::= integer\n precision ::= integer\n type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"\n\nIf a valid *align* value is specified, it can be preceded by a *fill*\ncharacter that can be any character and defaults to a space if\nomitted. It is not possible to use a literal curly brace (""{"" or\n""}"") as the *fill* character when using the "str.format()" method.\nHowever, it is possible to insert a curly brace with a nested\nreplacement field. This limitation doesn\'t affect the "format()"\nfunction.\n\nThe meaning of the various alignment options is as follows:\n\n +-----------+------------------------------------------------------------+\n | Option | Meaning |\n +===========+============================================================+\n | "\'<\'" | Forces the field to be left-aligned within the available |\n | | space (this is the default for most objects). |\n +-----------+------------------------------------------------------------+\n | "\'>\'" | Forces the field to be right-aligned within the available |\n | | space (this is the default for numbers). |\n +-----------+------------------------------------------------------------+\n | "\'=\'" | Forces the padding to be placed after the sign (if any) |\n | | but before the digits. This is used for printing fields |\n | | in the form \'+000000120\'. This alignment option is only |\n | | valid for numeric types. It becomes the default when \'0\' |\n | | immediately precedes the field width. |\n +-----------+------------------------------------------------------------+\n | "\'^\'" | Forces the field to be centered within the available |\n | | space. |\n +-----------+------------------------------------------------------------+\n\nNote that unless a minimum field width is defined, the field width\nwill always be the same size as the data to fill it, so that the\nalignment option has no meaning in this case.\n\nThe *sign* option is only valid for number types, and can be one of\nthe following:\n\n +-----------+------------------------------------------------------------+\n | Option | Meaning |\n +===========+============================================================+\n | "\'+\'" | indicates that a sign should be used for both positive as |\n | | well as negative numbers. |\n +-----------+------------------------------------------------------------+\n | "\'-\'" | indicates that a sign should be used only for negative |\n | | numbers (this is the default behavior). |\n +-----------+------------------------------------------------------------+\n | space | indicates that a leading space should be used on positive |\n | | numbers, and a minus sign on negative numbers. |\n +-----------+------------------------------------------------------------+\n\nThe "\'#\'" option is only valid for integers, and only for binary,\noctal, or hexadecimal output. If present, it specifies that the\noutput will be prefixed by "\'0b\'", "\'0o\'", or "\'0x\'", respectively.\n\nThe "\',\'" option signals the use of a comma for a thousands separator.\nFor a locale aware separator, use the "\'n\'" integer presentation type\ninstead.\n\nChanged in version 2.7: Added the "\',\'" option (see also **PEP 378**).\n\n*width* is a decimal integer defining the minimum field width. If not\nspecified, then the field width will be determined by the content.\n\nWhen no explicit alignment is given, preceding the *width* field by a\nzero ("\'0\'") character enables sign-aware zero-padding for numeric\ntypes. This is equivalent to a *fill* character of "\'0\'" with an\n*alignment* type of "\'=\'".\n\nThe *precision* is a decimal number indicating how many digits should\nbe displayed after the decimal point for a floating point value\nformatted with "\'f\'" and "\'F\'", or before and after the decimal point\nfor a floating point value formatted with "\'g\'" or "\'G\'". For non-\nnumber types the field indicates the maximum field size - in other\nwords, how many characters will be used from the field content. The\n*precision* is not allowed for integer values.\n\nFinally, the *type* determines how the data should be presented.\n\nThe available string presentation types are:\n\n +-----------+------------------------------------------------------------+\n | Type | Meaning |\n +===========+============================================================+\n | "\'s\'" | String format. This is the default type for strings and |\n | | may be omitted. |\n +-----------+------------------------------------------------------------+\n | None | The same as "\'s\'". |\n +-----------+------------------------------------------------------------+\n\nThe available integer presentation types are:\n\n +-----------+------------------------------------------------------------+\n | Type | Meaning |\n +===========+============================================================+\n | "\'b\'" | Binary format. Outputs the number in base 2. |\n +-----------+------------------------------------------------------------+\n | "\'c\'" | Character. Converts the integer to the corresponding |\n | | unicode character before printing. |\n +-----------+------------------------------------------------------------+\n | "\'d\'" | Decimal Integer. Outputs the number in base 10. |\n +-----------+------------------------------------------------------------+\n | "\'o\'" | Octal format. Outputs the number in base 8. |\n +-----------+------------------------------------------------------------+\n | "\'x\'" | Hex format. Outputs the number in base 16, using lower- |\n | | case letters for the digits above 9. |\n +-----------+------------------------------------------------------------+\n | "\'X\'" | Hex format. Outputs the number in base 16, using upper- |\n | | case letters for the digits above 9. |\n +-----------+------------------------------------------------------------+\n | "\'n\'" | Number. This is the same as "\'d\'", except that it uses the |\n | | current locale setting to insert the appropriate number |\n | | separator characters. |\n +-----------+------------------------------------------------------------+\n | None | The same as "\'d\'". |\n +-----------+------------------------------------------------------------+\n\nIn addition to the above presentation types, integers can be formatted\nwith the floating point presentation types listed below (except "\'n\'"\nand "None"). When doing so, "float()" is used to convert the integer\nto a floating point number before formatting.\n\nThe available presentation types for floating point and decimal values\nare:\n\n +-----------+------------------------------------------------------------+\n | Type | Meaning |\n +===========+============================================================+\n | "\'e\'" | Exponent notation. Prints the number in scientific |\n | | notation using the letter \'e\' to indicate the exponent. |\n | | The default precision is "6". |\n +-----------+------------------------------------------------------------+\n | "\'E\'" | Exponent notation. Same as "\'e\'" except it uses an upper |\n | | case \'E\' as the separator character. |\n +-----------+------------------------------------------------------------+\n | "\'f\'" | Fixed point. Displays the number as a fixed-point number. |\n | | The default precision is "6". |\n +-----------+------------------------------------------------------------+\n | "\'F\'" | Fixed point. Same as "\'f\'". |\n +-----------+------------------------------------------------------------+\n | "\'g\'" | General format. For a given precision "p >= 1", this |\n | | rounds the number to "p" significant digits and then |\n | | formats the result in either fixed-point format or in |\n | | scientific notation, depending on its magnitude. The |\n | | precise rules are as follows: suppose that the result |\n | | formatted with presentation type "\'e\'" and precision "p-1" |\n | | would have exponent "exp". Then if "-4 <= exp < p", the |\n | | number is formatted with presentation type "\'f\'" and |\n | | precision "p-1-exp". Otherwise, the number is formatted |\n | | with presentation type "\'e\'" and precision "p-1". In both |\n | | cases insignificant trailing zeros are removed from the |\n | | significand, and the decimal point is also removed if |\n | | there are no remaining digits following it. Positive and |\n | | negative infinity, positive and negative zero, and nans, |\n | | are formatted as "inf", "-inf", "0", "-0" and "nan" |\n | | respectively, regardless of the precision. A precision of |\n | | "0" is treated as equivalent to a precision of "1". The |\n | | default precision is "6". |\n +-----------+------------------------------------------------------------+\n | "\'G\'" | General format. Same as "\'g\'" except switches to "\'E\'" if |\n | | the number gets too large. The representations of infinity |\n | | and NaN are uppercased, too. |\n +-----------+------------------------------------------------------------+\n | "\'n\'" | Number. This is the same as "\'g\'", except that it uses the |\n | | current locale setting to insert the appropriate number |\n | | separator characters. |\n +-----------+------------------------------------------------------------+\n | "\'%\'" | Percentage. Multiplies the number by 100 and displays in |\n | | fixed ("\'f\'") format, followed by a percent sign. |\n +-----------+------------------------------------------------------------+\n | None | The same as "\'g\'". |\n +-----------+------------------------------------------------------------+\n\n\nFormat examples\n===============\n\nThis section contains examples of the "str.format()" syntax and\ncomparison with the old "%"-formatting.\n\nIn most of the cases the syntax is similar to the old "%"-formatting,\nwith the addition of the "{}" and with ":" used instead of "%". For\nexample, "\'%03.2f\'" can be translated to "\'{:03.2f}\'".\n\nThe new format syntax also supports new and different options, shown\nin the follow examples.\n\nAccessing arguments by position:\n\n >>> \'{0}, {1}, {2}\'.format(\'a\', \'b\', \'c\')\n \'a, b, c\'\n >>> \'{}, {}, {}\'.format(\'a\', \'b\', \'c\') # 2.7+ only\n \'a, b, c\'\n >>> \'{2}, {1}, {0}\'.format(\'a\', \'b\', \'c\')\n \'c, b, a\'\n >>> \'{2}, {1}, {0}\'.format(*\'abc\') # unpacking argument sequence\n \'c, b, a\'\n >>> \'{0}{1}{0}\'.format(\'abra\', \'cad\') # arguments\' indices can be repeated\n \'abracadabra\'\n\nAccessing arguments by name:\n\n >>> \'Coordinates: {latitude}, {longitude}\'.format(latitude=\'37.24N\', longitude=\'-115.81W\')\n \'Coordinates: 37.24N, -115.81W\'\n >>> coord = {\'latitude\': \'37.24N\', \'longitude\': \'-115.81W\'}\n >>> \'Coordinates: {latitude}, {longitude}\'.format(**coord)\n \'Coordinates: 37.24N, -115.81W\'\n\nAccessing arguments\' attributes:\n\n >>> c = 3-5j\n >>> (\'The complex number {0} is formed from the real part {0.real} \'\n ... \'and the imaginary part {0.imag}.\').format(c)\n \'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.\'\n >>> class Point(object):\n ... def __init__(self, x, y):\n ... self.x, self.y = x, y\n ... def __str__(self):\n ... return \'Point({self.x}, {self.y})\'.format(self=self)\n ...\n >>> str(Point(4, 2))\n \'Point(4, 2)\'\n\nAccessing arguments\' items:\n\n >>> coord = (3, 5)\n >>> \'X: {0[0]}; Y: {0[1]}\'.format(coord)\n \'X: 3; Y: 5\'\n\nReplacing "%s" and "%r":\n\n >>> "repr() shows quotes: {!r}; str() doesn\'t: {!s}".format(\'test1\', \'test2\')\n "repr() shows quotes: \'test1\'; str() doesn\'t: test2"\n\nAligning the text and specifying a width:\n\n >>> \'{:<30}\'.format(\'left aligned\')\n \'left aligned \'\n >>> \'{:>30}\'.format(\'right aligned\')\n \' right aligned\'\n >>> \'{:^30}\'.format(\'centered\')\n \' centered \'\n >>> \'{:*^30}\'.format(\'centered\') # use \'*\' as a fill char\n \'***********centered***********\'\n\nReplacing "%+f", "%-f", and "% f" and specifying a sign:\n\n >>> \'{:+f}; {:+f}\'.format(3.14, -3.14) # show it always\n \'+3.140000; -3.140000\'\n >>> \'{: f}; {: f}\'.format(3.14, -3.14) # show a space for positive numbers\n \' 3.140000; -3.140000\'\n >>> \'{:-f}; {:-f}\'.format(3.14, -3.14) # show only the minus -- same as \'{:f}; {:f}\'\n \'3.140000; -3.140000\'\n\nReplacing "%x" and "%o" and converting the value to different bases:\n\n >>> # format also supports binary numbers\n >>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)\n \'int: 42; hex: 2a; oct: 52; bin: 101010\'\n >>> # with 0x, 0o, or 0b as prefix:\n >>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)\n \'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010\'\n\nUsing the comma as a thousands separator:\n\n >>> \'{:,}\'.format(1234567890)\n \'1,234,567,890\'\n\nExpressing a percentage:\n\n >>> points = 19.5\n >>> total = 22\n >>> \'Correct answers: {:.2%}\'.format(points/total)\n \'Correct answers: 88.64%\'\n\nUsing type-specific formatting:\n\n >>> import datetime\n >>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)\n >>> \'{:%Y-%m-%d %H:%M:%S}\'.format(d)\n \'2010-07-04 12:15:58\'\n\nNesting arguments and more complex examples:\n\n >>> for align, text in zip(\'<^>\', [\'left\', \'center\', \'right\']):\n ... \'{0:{fill}{align}16}\'.format(text, fill=align, align=align)\n ...\n \'left<<<<<<<<<<<<\'\n \'^^^^^center^^^^^\'\n \'>>>>>>>>>>>right\'\n >>>\n >>> octets = [192, 168, 0, 1]\n >>> \'{:02X}{:02X}{:02X}{:02X}\'.format(*octets)\n \'C0A80001\'\n >>> int(_, 16)\n 3232235521\n >>>\n >>> width = 5\n >>> for num in range(5,12):\n ... for base in \'dXob\':\n ... print \'{0:{width}{base}}\'.format(num, base=base, width=width),\n ... print\n ...\n 5 5 5 101\n 6 6 6 110\n 7 7 7 111\n 8 8 10 1000\n 9 9 11 1001\n 10 A 12 1010\n 11 B 13 1011\n', + 'function': u'\nFunction definitions\n********************\n\nA function definition defines a user-defined function object (see\nsection The standard type hierarchy):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter* "="\n*expression*, the function is said to have "default parameter values."\nFor a parameter with a default value, the corresponding *argument* may\nbe omitted from a call, in which case the parameter\'s default value is\nsubstituted. If a parameter has a default value, all following\nparameters must also have a default value --- this is a syntactic\nrestriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use "None" as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section Calls.\nA function call always assigns values to all parameters mentioned in\nthe parameter list, either from position arguments, from keyword\narguments, or from default values. If the form ""*identifier"" is\npresent, it is initialized to a tuple receiving any excess positional\nparameters, defaulting to the empty tuple. If the form\n""**identifier"" is present, it is initialized to a new dictionary\nreceiving any excess keyword arguments, defaulting to a new empty\ndictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda\nexpressions, described in section Lambdas. Note that the lambda\nexpression is merely a shorthand for a simplified function definition;\na function defined in a ""def"" statement can be passed around or\nassigned to another name just like a function defined by a lambda\nexpression. The ""def"" form is actually more powerful since it\nallows the execution of multiple statements.\n\n**Programmer\'s note:** Functions are first-class objects. A ""def""\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section Naming and binding for details.\n', + 'global': u'\nThe "global" statement\n**********************\n\n global_stmt ::= "global" identifier ("," identifier)*\n\nThe "global" statement is a declaration which holds for the entire\ncurrent code block. It means that the listed identifiers are to be\ninterpreted as globals. It would be impossible to assign to a global\nvariable without "global", although free variables may refer to\nglobals without being declared global.\n\nNames listed in a "global" statement must not be used in the same code\nblock textually preceding that "global" statement.\n\nNames listed in a "global" statement must not be defined as formal\nparameters or in a "for" loop control target, "class" definition,\nfunction definition, or "import" statement.\n\n**CPython implementation detail:** The current implementation does not\nenforce the latter two restrictions, but programs should not abuse\nthis freedom, as future implementations may enforce them or silently\nchange the meaning of the program.\n\n**Programmer\'s note:** the "global" is a directive to the parser. It\napplies only to code parsed at the same time as the "global"\nstatement. In particular, a "global" statement contained in an "exec"\nstatement does not affect the code block *containing* the "exec"\nstatement, and code contained in an "exec" statement is unaffected by\n"global" statements in the code containing the "exec" statement. The\nsame applies to the "eval()", "execfile()" and "compile()" functions.\n', + 'id-classes': u'\nReserved classes of identifiers\n*******************************\n\nCertain classes of identifiers (besides keywords) have special\nmeanings. These classes are identified by the patterns of leading and\ntrailing underscore characters:\n\n"_*"\n Not imported by "from module import *". The special identifier "_"\n is used in the interactive interpreter to store the result of the\n last evaluation; it is stored in the "__builtin__" module. When\n not in interactive mode, "_" has no special meaning and is not\n defined. See section The import statement.\n\n Note: The name "_" is often used in conjunction with\n internationalization; refer to the documentation for the\n "gettext" module for more information on this convention.\n\n"__*__"\n System-defined names. These names are defined by the interpreter\n and its implementation (including the standard library). Current\n system names are discussed in the Special method names section and\n elsewhere. More will likely be defined in future versions of\n Python. *Any* use of "__*__" names, in any context, that does not\n follow explicitly documented use, is subject to breakage without\n warning.\n\n"__*"\n Class-private names. Names in this category, when used within the\n context of a class definition, are re-written to use a mangled form\n to help avoid name clashes between "private" attributes of base and\n derived classes. See section Identifiers (Names).\n', + 'identifiers': u'\nIdentifiers and keywords\n************************\n\nIdentifiers (also referred to as *names*) are described by the\nfollowing lexical definitions:\n\n identifier ::= (letter|"_") (letter | digit | "_")*\n letter ::= lowercase | uppercase\n lowercase ::= "a"..."z"\n uppercase ::= "A"..."Z"\n digit ::= "0"..."9"\n\nIdentifiers are unlimited in length. Case is significant.\n\n\nKeywords\n========\n\nThe following identifiers are used as reserved words, or *keywords* of\nthe language, and cannot be used as ordinary identifiers. They must\nbe spelled exactly as written here:\n\n and del from not while\n as elif global or with\n assert else if pass yield\n break except import print\n class exec in raise\n continue finally is return\n def for lambda try\n\nChanged in version 2.4: "None" became a constant and is now recognized\nby the compiler as a name for the built-in object "None". Although it\nis not a keyword, you cannot assign a different object to it.\n\nChanged in version 2.5: Using "as" and "with" as identifiers triggers\na warning. To use them as keywords, enable the "with_statement"\nfuture feature .\n\nChanged in version 2.6: "as" and "with" are full keywords.\n\n\nReserved classes of identifiers\n===============================\n\nCertain classes of identifiers (besides keywords) have special\nmeanings. These classes are identified by the patterns of leading and\ntrailing underscore characters:\n\n"_*"\n Not imported by "from module import *". The special identifier "_"\n is used in the interactive interpreter to store the result of the\n last evaluation; it is stored in the "__builtin__" module. When\n not in interactive mode, "_" has no special meaning and is not\n defined. See section The import statement.\n\n Note: The name "_" is often used in conjunction with\n internationalization; refer to the documentation for the\n "gettext" module for more information on this convention.\n\n"__*__"\n System-defined names. These names are defined by the interpreter\n and its implementation (including the standard library). Current\n system names are discussed in the Special method names section and\n elsewhere. More will likely be defined in future versions of\n Python. *Any* use of "__*__" names, in any context, that does not\n follow explicitly documented use, is subject to breakage without\n warning.\n\n"__*"\n Class-private names. Names in this category, when used within the\n context of a class definition, are re-written to use a mangled form\n to help avoid name clashes between "private" attributes of base and\n derived classes. See section Identifiers (Names).\n', + 'if': u'\nThe "if" statement\n******************\n\nThe "if" statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section Boolean operations\nfor the definition of true and false); then that suite is executed\n(and no other part of the "if" statement is executed or evaluated).\nIf all expressions are false, the suite of the "else" clause, if\npresent, is executed.\n', + 'imaginary': u'\nImaginary literals\n******************\n\nImaginary literals are described by the following lexical definitions:\n\n imagnumber ::= (floatnumber | intpart) ("j" | "J")\n\nAn imaginary literal yields a complex number with a real part of 0.0.\nComplex numbers are represented as a pair of floating point numbers\nand have the same restrictions on their range. To create a complex\nnumber with a nonzero real part, add a floating point number to it,\ne.g., "(3+4j)". Some examples of imaginary literals:\n\n 3.14j 10.j 10j .001j 1e100j 3.14e-10j\n', + 'import': u'\nThe "import" statement\n**********************\n\n import_stmt ::= "import" module ["as" name] ( "," module ["as" name] )*\n | "from" relative_module "import" identifier ["as" name]\n ( "," identifier ["as" name] )*\n | "from" relative_module "import" "(" identifier ["as" name]\n ( "," identifier ["as" name] )* [","] ")"\n | "from" module "import" "*"\n module ::= (identifier ".")* identifier\n relative_module ::= "."* module | "."+\n name ::= identifier\n\nImport statements are executed in two steps: (1) find a module, and\ninitialize it if necessary; (2) define a name or names in the local\nnamespace (of the scope where the "import" statement occurs). The\nstatement comes in two forms differing on whether it uses the "from"\nkeyword. The first form (without "from") repeats these steps for each\nidentifier in the list. The form with "from" performs step (1) once,\nand then performs step (2) repeatedly.\n\nTo understand how step (1) occurs, one must first understand how\nPython handles hierarchical naming of modules. To help organize\nmodules and provide a hierarchy in naming, Python has a concept of\npackages. A package can contain other packages and modules while\nmodules cannot contain other modules or packages. From a file system\nperspective, packages are directories and modules are files.\n\nOnce the name of the module is known (unless otherwise specified, the\nterm "module" will refer to both packages and modules), searching for\nthe module or package can begin. The first place checked is\n"sys.modules", the cache of all modules that have been imported\npreviously. If the module is found there then it is used in step (2)\nof import.\n\nIf the module is not found in the cache, then "sys.meta_path" is\nsearched (the specification for "sys.meta_path" can be found in **PEP\n302**). The object is a list of *finder* objects which are queried in\norder as to whether they know how to load the module by calling their\n"find_module()" method with the name of the module. If the module\nhappens to be contained within a package (as denoted by the existence\nof a dot in the name), then a second argument to "find_module()" is\ngiven as the value of the "__path__" attribute from the parent package\n(everything up to the last dot in the name of the module being\nimported). If a finder can find the module it returns a *loader*\n(discussed later) or returns "None".\n\nIf none of the finders on "sys.meta_path" are able to find the module\nthen some implicitly defined finders are queried. Implementations of\nPython vary in what implicit meta path finders are defined. The one\nthey all do define, though, is one that handles "sys.path_hooks",\n"sys.path_importer_cache", and "sys.path".\n\nThe implicit finder searches for the requested module in the "paths"\nspecified in one of two places ("paths" do not have to be file system\npaths). If the module being imported is supposed to be contained\nwithin a package then the second argument passed to "find_module()",\n"__path__" on the parent package, is used as the source of paths. If\nthe module is not contained in a package then "sys.path" is used as\nthe source of paths.\n\nOnce the source of paths is chosen it is iterated over to find a\nfinder that can handle that path. The dict at\n"sys.path_importer_cache" caches finders for paths and is checked for\na finder. If the path does not have a finder cached then\n"sys.path_hooks" is searched by calling each object in the list with a\nsingle argument of the path, returning a finder or raises\n"ImportError". If a finder is returned then it is cached in\n"sys.path_importer_cache" and then used for that path entry. If no\nfinder can be found but the path exists then a value of "None" is\nstored in "sys.path_importer_cache" to signify that an implicit, file-\nbased finder that handles modules stored as individual files should be\nused for that path. If the path does not exist then a finder which\nalways returns "None" is placed in the cache for the path.\n\nIf no finder can find the module then "ImportError" is raised.\nOtherwise some finder returned a loader whose "load_module()" method\nis called with the name of the module to load (see **PEP 302** for the\noriginal definition of loaders). A loader has several responsibilities\nto perform on a module it loads. First, if the module already exists\nin "sys.modules" (a possibility if the loader is called outside of the\nimport machinery) then it is to use that module for initialization and\nnot a new module. But if the module does not exist in "sys.modules"\nthen it is to be added to that dict before initialization begins. If\nan error occurs during loading of the module and it was added to\n"sys.modules" it is to be removed from the dict. If an error occurs\nbut the module was already in "sys.modules" it is left in the dict.\n\nThe loader must set several attributes on the module. "__name__" is to\nbe set to the name of the module. "__file__" is to be the "path" to\nthe file unless the module is built-in (and thus listed in\n"sys.builtin_module_names") in which case the attribute is not set. If\nwhat is being imported is a package then "__path__" is to be set to a\nlist of paths to be searched when looking for modules and packages\ncontained within the package being imported. "__package__" is optional\nbut should be set to the name of package that contains the module or\npackage (the empty string is used for module not contained in a\npackage). "__loader__" is also optional but should be set to the\nloader object that is loading the module.\n\nIf an error occurs during loading then the loader raises "ImportError"\nif some other exception is not already being propagated. Otherwise the\nloader returns the module that was loaded and initialized.\n\nWhen step (1) finishes without raising an exception, step (2) can\nbegin.\n\nThe first form of "import" statement binds the module name in the\nlocal namespace to the module object, and then goes on to import the\nnext identifier, if any. If the module name is followed by "as", the\nname following "as" is used as the local name for the module.\n\nThe "from" form does not bind the module name: it goes through the\nlist of identifiers, looks each one of them up in the module found in\nstep (1), and binds the name in the local namespace to the object thus\nfound. As with the first form of "import", an alternate local name\ncan be supplied by specifying ""as" localname". If a name is not\nfound, "ImportError" is raised. If the list of identifiers is\nreplaced by a star ("\'*\'"), all public names defined in the module are\nbound in the local namespace of the "import" statement..\n\nThe *public names* defined by a module are determined by checking the\nmodule\'s namespace for a variable named "__all__"; if defined, it must\nbe a sequence of strings which are names defined or imported by that\nmodule. The names given in "__all__" are all considered public and\nare required to exist. If "__all__" is not defined, the set of public\nnames includes all names found in the module\'s namespace which do not\nbegin with an underscore character ("\'_\'"). "__all__" should contain\nthe entire public API. It is intended to avoid accidentally exporting\nitems that are not part of the API (such as library modules which were\nimported and used within the module).\n\nThe "from" form with "*" may only occur in a module scope. If the\nwild card form of import --- "import *" --- is used in a function and\nthe function contains or is a nested block with free variables, the\ncompiler will raise a "SyntaxError".\n\nWhen specifying what module to import you do not have to specify the\nabsolute name of the module. When a module or package is contained\nwithin another package it is possible to make a relative import within\nthe same top package without having to mention the package name. By\nusing leading dots in the specified module or package after "from" you\ncan specify how high to traverse up the current package hierarchy\nwithout specifying exact names. One leading dot means the current\npackage where the module making the import exists. Two dots means up\none package level. Three dots is up two levels, etc. So if you execute\n"from . import mod" from a module in the "pkg" package then you will\nend up importing "pkg.mod". If you execute "from ..subpkg2 import mod"\nfrom within "pkg.subpkg1" you will import "pkg.subpkg2.mod". The\nspecification for relative imports is contained within **PEP 328**.\n\n"importlib.import_module()" is provided to support applications that\ndetermine which modules need to be loaded dynamically.\n\n\nFuture statements\n=================\n\nA *future statement* is a directive to the compiler that a particular\nmodule should be compiled using syntax or semantics that will be\navailable in a specified future release of Python. The future\nstatement is intended to ease migration to future versions of Python\nthat introduce incompatible changes to the language. It allows use of\nthe new features on a per-module basis before the release in which the\nfeature becomes standard.\n\n future_statement ::= "from" "__future__" "import" feature ["as" name]\n ("," feature ["as" name])*\n | "from" "__future__" "import" "(" feature ["as" name]\n ("," feature ["as" name])* [","] ")"\n feature ::= identifier\n name ::= identifier\n\nA future statement must appear near the top of the module. The only\nlines that can appear before a future statement are:\n\n* the module docstring (if any),\n\n* comments,\n\n* blank lines, and\n\n* other future statements.\n\nThe features recognized by Python 2.6 are "unicode_literals",\n"print_function", "absolute_import", "division", "generators",\n"nested_scopes" and "with_statement". "generators", "with_statement",\n"nested_scopes" are redundant in Python version 2.6 and above because\nthey are always enabled.\n\nA future statement is recognized and treated specially at compile\ntime: Changes to the semantics of core constructs are often\nimplemented by generating different code. It may even be the case\nthat a new feature introduces new incompatible syntax (such as a new\nreserved word), in which case the compiler may need to parse the\nmodule differently. Such decisions cannot be pushed off until\nruntime.\n\nFor any given release, the compiler knows which feature names have\nbeen defined, and raises a compile-time error if a future statement\ncontains a feature not known to it.\n\nThe direct runtime semantics are the same as for any import statement:\nthere is a standard module "__future__", described later, and it will\nbe imported in the usual way at the time the future statement is\nexecuted.\n\nThe interesting runtime semantics depend on the specific feature\nenabled by the future statement.\n\nNote that there is nothing special about the statement:\n\n import __future__ [as name]\n\nThat is not a future statement; it\'s an ordinary import statement with\nno special semantics or syntax restrictions.\n\nCode compiled by an "exec" statement or calls to the built-in\nfunctions "compile()" and "execfile()" that occur in a module "M"\ncontaining a future statement will, by default, use the new syntax or\nsemantics associated with the future statement. This can, starting\nwith Python 2.2 be controlled by optional arguments to "compile()" ---\nsee the documentation of that function for details.\n\nA future statement typed at an interactive interpreter prompt will\ntake effect for the rest of the interpreter session. If an\ninterpreter is started with the "-i" option, is passed a script name\nto execute, and the script includes a future statement, it will be in\neffect in the interactive session started after the script is\nexecuted.\n\nSee also:\n\n **PEP 236** - Back to the __future__\n The original proposal for the __future__ mechanism.\n', + 'in': u'\nComparisons\n***********\n\nUnlike C, all comparison operations in Python have the same priority,\nwhich is lower than that of any arithmetic, shifting or bitwise\noperation. Also unlike C, expressions like "a < b < c" have the\ninterpretation that is conventional in mathematics:\n\n comparison ::= or_expr ( comp_operator or_expr )*\n comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="\n | "is" ["not"] | ["not"] "in"\n\nComparisons yield boolean values: "True" or "False".\n\nComparisons can be chained arbitrarily, e.g., "x < y <= z" is\nequivalent to "x < y and y <= z", except that "y" is evaluated only\nonce (but in both cases "z" is not evaluated at all when "x < y" is\nfound to be false).\n\nFormally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*,\n*op2*, ..., *opN* are comparison operators, then "a op1 b op2 c ... y\nopN z" is equivalent to "a op1 b and b op2 c and ... y opN z", except\nthat each expression is evaluated at most once.\n\nNote that "a op1 b op2 c" doesn\'t imply any kind of comparison between\n*a* and *c*, so that, e.g., "x < y > z" is perfectly legal (though\nperhaps not pretty).\n\nThe forms "<>" and "!=" are equivalent; for consistency with C, "!="\nis preferred; where "!=" is mentioned below "<>" is also accepted.\nThe "<>" spelling is considered obsolescent.\n\nThe operators "<", ">", "==", ">=", "<=", and "!=" compare the values\nof two objects. The objects need not have the same type. If both are\nnumbers, they are converted to a common type. Otherwise, objects of\ndifferent types *always* compare unequal, and are ordered consistently\nbut arbitrarily. You can control comparison behavior of objects of\nnon-built-in types by defining a "__cmp__" method or rich comparison\nmethods like "__gt__", described in section Special method names.\n\n(This unusual definition of comparison was used to simplify the\ndefinition of operations like sorting and the "in" and "not in"\noperators. In the future, the comparison rules for objects of\ndifferent types are likely to change.)\n\nComparison of objects of the same type depends on the type:\n\n* Numbers are compared arithmetically.\n\n* Strings are compared lexicographically using the numeric\n equivalents (the result of the built-in function "ord()") of their\n characters. Unicode and 8-bit strings are fully interoperable in\n this behavior. [4]\n\n* Tuples and lists are compared lexicographically using comparison\n of corresponding elements. This means that to compare equal, each\n element must compare equal and the two sequences must be of the same\n type and have the same length.\n\n If not equal, the sequences are ordered the same as their first\n differing elements. For example, "cmp([1,2,x], [1,2,y])" returns\n the same as "cmp(x,y)". If the corresponding element does not\n exist, the shorter sequence is ordered first (for example, "[1,2] <\n [1,2,3]").\n\n* Mappings (dictionaries) compare equal if and only if their sorted\n (key, value) lists compare equal. [5] Outcomes other than equality\n are resolved consistently, but are not otherwise defined. [6]\n\n* Most other objects of built-in types compare unequal unless they\n are the same object; the choice whether one object is considered\n smaller or larger than another one is made arbitrarily but\n consistently within one execution of a program.\n\nThe operators "in" and "not in" test for collection membership. "x in\ns" evaluates to true if *x* is a member of the collection *s*, and\nfalse otherwise. "x not in s" returns the negation of "x in s". The\ncollection membership test has traditionally been bound to sequences;\nan object is a member of a collection if the collection is a sequence\nand contains an element equal to that object. However, it make sense\nfor many other object types to support membership tests without being\na sequence. In particular, dictionaries (for keys) and sets support\nmembership testing.\n\nFor the list and tuple types, "x in y" is true if and only if there\nexists an index *i* such that either "x is y[i]" or "x == y[i]" is\ntrue.\n\nFor the Unicode and string types, "x in y" is true if and only if *x*\nis a substring of *y*. An equivalent test is "y.find(x) != -1".\nNote, *x* and *y* need not be the same type; consequently, "u\'ab\' in\n\'abc\'" will return "True". Empty strings are always considered to be a\nsubstring of any other string, so """ in "abc"" will return "True".\n\nChanged in version 2.3: Previously, *x* was required to be a string of\nlength "1".\n\nFor user-defined classes which define the "__contains__()" method, "x\nin y" is true if and only if "y.__contains__(x)" is true.\n\nFor user-defined classes which do not define "__contains__()" but do\ndefine "__iter__()", "x in y" is true if some value "z" with "x == z"\nis produced while iterating over "y". If an exception is raised\nduring the iteration, it is as if "in" raised that exception.\n\nLastly, the old-style iteration protocol is tried: if a class defines\n"__getitem__()", "x in y" is true if and only if there is a non-\nnegative integer index *i* such that "x == y[i]", and all lower\ninteger indices do not raise "IndexError" exception. (If any other\nexception is raised, it is as if "in" raised that exception).\n\nThe operator "not in" is defined to have the inverse true value of\n"in".\n\nThe operators "is" and "is not" test for object identity: "x is y" is\ntrue if and only if *x* and *y* are the same object. "x is not y"\nyields the inverse truth value. [7]\n', + 'integers': u'\nInteger and long integer literals\n*********************************\n\nInteger and long integer literals are described by the following\nlexical definitions:\n\n longinteger ::= integer ("l" | "L")\n integer ::= decimalinteger | octinteger | hexinteger | bininteger\n decimalinteger ::= nonzerodigit digit* | "0"\n octinteger ::= "0" ("o" | "O") octdigit+ | "0" octdigit+\n hexinteger ::= "0" ("x" | "X") hexdigit+\n bininteger ::= "0" ("b" | "B") bindigit+\n nonzerodigit ::= "1"..."9"\n octdigit ::= "0"..."7"\n bindigit ::= "0" | "1"\n hexdigit ::= digit | "a"..."f" | "A"..."F"\n\nAlthough both lower case "\'l\'" and upper case "\'L\'" are allowed as\nsuffix for long integers, it is strongly recommended to always use\n"\'L\'", since the letter "\'l\'" looks too much like the digit "\'1\'".\n\nPlain integer literals that are above the largest representable plain\ninteger (e.g., 2147483647 when using 32-bit arithmetic) are accepted\nas if they were long integers instead. [1] There is no limit for long\ninteger literals apart from what can be stored in available memory.\n\nSome examples of plain integer literals (first row) and long integer\nliterals (second and third rows):\n\n 7 2147483647 0177\n 3L 79228162514264337593543950336L 0377L 0x100000000L\n 79228162514264337593543950336 0xdeadbeef\n', + 'lambda': u'\nLambdas\n*******\n\n lambda_expr ::= "lambda" [parameter_list]: expression\n old_lambda_expr ::= "lambda" [parameter_list]: old_expression\n\nLambda expressions (sometimes called lambda forms) have the same\nsyntactic position as expressions. They are a shorthand to create\nanonymous functions; the expression "lambda arguments: expression"\nyields a function object. The unnamed object behaves like a function\nobject defined with\n\n def name(arguments):\n return expression\n\nSee section Function definitions for the syntax of parameter lists.\nNote that functions created with lambda expressions cannot contain\nstatements.\n', + 'lists': u'\nList displays\n*************\n\nA list display is a possibly empty series of expressions enclosed in\nsquare brackets:\n\n list_display ::= "[" [expression_list | list_comprehension] "]"\n list_comprehension ::= expression list_for\n list_for ::= "for" target_list "in" old_expression_list [list_iter]\n old_expression_list ::= old_expression [("," old_expression)+ [","]]\n old_expression ::= or_test | old_lambda_expr\n list_iter ::= list_for | list_if\n list_if ::= "if" old_expression [list_iter]\n\nA list display yields a new list object. Its contents are specified\nby providing either a list of expressions or a list comprehension.\nWhen a comma-separated list of expressions is supplied, its elements\nare evaluated from left to right and placed into the list object in\nthat order. When a list comprehension is supplied, it consists of a\nsingle expression followed by at least one "for" clause and zero or\nmore "for" or "if" clauses. In this case, the elements of the new\nlist are those that would be produced by considering each of the "for"\nor "if" clauses a block, nesting from left to right, and evaluating\nthe expression to produce a list element each time the innermost block\nis reached [1].\n', + 'naming': u'\nNaming and binding\n******************\n\n*Names* refer to objects. Names are introduced by name binding\noperations. Each occurrence of a name in the program text refers to\nthe *binding* of that name established in the innermost function block\ncontaining the use.\n\nA *block* is a piece of Python program text that is executed as a\nunit. The following are blocks: a module, a function body, and a class\ndefinition. Each command typed interactively is a block. A script\nfile (a file given as standard input to the interpreter or specified\non the interpreter command line the first argument) is a code block.\nA script command (a command specified on the interpreter command line\nwith the \'**-c**\' option) is a code block. The file read by the\nbuilt-in function "execfile()" is a code block. The string argument\npassed to the built-in function "eval()" and to the "exec" statement\nis a code block. The expression read and evaluated by the built-in\nfunction "input()" is a code block.\n\nA code block is executed in an *execution frame*. A frame contains\nsome administrative information (used for debugging) and determines\nwhere and how execution continues after the code block\'s execution has\ncompleted.\n\nA *scope* defines the visibility of a name within a block. If a local\nvariable is defined in a block, its scope includes that block. If the\ndefinition occurs in a function block, the scope extends to any blocks\ncontained within the defining one, unless a contained block introduces\na different binding for the name. The scope of names defined in a\nclass block is limited to the class block; it does not extend to the\ncode blocks of methods -- this includes generator expressions since\nthey are implemented using a function scope. This means that the\nfollowing will fail:\n\n class A:\n a = 42\n b = list(a + i for i in range(10))\n\nWhen a name is used in a code block, it is resolved using the nearest\nenclosing scope. The set of all such scopes visible to a code block\nis called the block\'s *environment*.\n\nIf a name is bound in a block, it is a local variable of that block.\nIf a name is bound at the module level, it is a global variable. (The\nvariables of the module code block are local and global.) If a\nvariable is used in a code block but not defined there, it is a *free\nvariable*.\n\nWhen a name is not found at all, a "NameError" exception is raised.\nIf the name refers to a local variable that has not been bound, a\n"UnboundLocalError" exception is raised. "UnboundLocalError" is a\nsubclass of "NameError".\n\nThe following constructs bind names: formal parameters to functions,\n"import" statements, class and function definitions (these bind the\nclass or function name in the defining block), and targets that are\nidentifiers if occurring in an assignment, "for" loop header, in the\nsecond position of an "except" clause header or after "as" in a "with"\nstatement. The "import" statement of the form "from ... import *"\nbinds all names defined in the imported module, except those beginning\nwith an underscore. This form may only be used at the module level.\n\nA target occurring in a "del" statement is also considered bound for\nthis purpose (though the actual semantics are to unbind the name). It\nis illegal to unbind a name that is referenced by an enclosing scope;\nthe compiler will report a "SyntaxError".\n\nEach assignment or import statement occurs within a block defined by a\nclass or function definition or at the module level (the top-level\ncode block).\n\nIf a name binding operation occurs anywhere within a code block, all\nuses of the name within the block are treated as references to the\ncurrent block. This can lead to errors when a name is used within a\nblock before it is bound. This rule is subtle. Python lacks\ndeclarations and allows name binding operations to occur anywhere\nwithin a code block. The local variables of a code block can be\ndetermined by scanning the entire text of the block for name binding\noperations.\n\nIf the global statement occurs within a block, all uses of the name\nspecified in the statement refer to the binding of that name in the\ntop-level namespace. Names are resolved in the top-level namespace by\nsearching the global namespace, i.e. the namespace of the module\ncontaining the code block, and the builtins namespace, the namespace\nof the module "__builtin__". The global namespace is searched first.\nIf the name is not found there, the builtins namespace is searched.\nThe global statement must precede all uses of the name.\n\nThe builtins namespace associated with the execution of a code block\nis actually found by looking up the name "__builtins__" in its global\nnamespace; this should be a dictionary or a module (in the latter case\nthe module\'s dictionary is used). By default, when in the "__main__"\nmodule, "__builtins__" is the built-in module "__builtin__" (note: no\n\'s\'); when in any other module, "__builtins__" is an alias for the\ndictionary of the "__builtin__" module itself. "__builtins__" can be\nset to a user-created dictionary to create a weak form of restricted\nexecution.\n\n**CPython implementation detail:** Users should not touch\n"__builtins__"; it is strictly an implementation detail. Users\nwanting to override values in the builtins namespace should "import"\nthe "__builtin__" (no \'s\') module and modify its attributes\nappropriately.\n\nThe namespace for a module is automatically created the first time a\nmodule is imported. The main module for a script is always called\n"__main__".\n\nThe "global" statement has the same scope as a name binding operation\nin the same block. If the nearest enclosing scope for a free variable\ncontains a global statement, the free variable is treated as a global.\n\nA class definition is an executable statement that may use and define\nnames. These references follow the normal rules for name resolution.\nThe namespace of the class definition becomes the attribute dictionary\nof the class. Names defined at the class scope are not visible in\nmethods.\n\n\nInteraction with dynamic features\n=================================\n\nThere are several cases where Python statements are illegal when used\nin conjunction with nested scopes that contain free variables.\n\nIf a variable is referenced in an enclosing scope, it is illegal to\ndelete the name. An error will be reported at compile time.\n\nIf the wild card form of import --- "import *" --- is used in a\nfunction and the function contains or is a nested block with free\nvariables, the compiler will raise a "SyntaxError".\n\nIf "exec" is used in a function and the function contains or is a\nnested block with free variables, the compiler will raise a\n"SyntaxError" unless the exec explicitly specifies the local namespace\nfor the "exec". (In other words, "exec obj" would be illegal, but\n"exec obj in ns" would be legal.)\n\nThe "eval()", "execfile()", and "input()" functions and the "exec"\nstatement do not have access to the full environment for resolving\nnames. Names may be resolved in the local and global namespaces of\nthe caller. Free variables are not resolved in the nearest enclosing\nnamespace, but in the global namespace. [1] The "exec" statement and\nthe "eval()" and "execfile()" functions have optional arguments to\noverride the global and local namespace. If only one namespace is\nspecified, it is used for both.\n', + 'numbers': u'\nNumeric literals\n****************\n\nThere are four types of numeric literals: plain integers, long\nintegers, floating point numbers, and imaginary numbers. There are no\ncomplex literals (complex numbers can be formed by adding a real\nnumber and an imaginary number).\n\nNote that numeric literals do not include a sign; a phrase like "-1"\nis actually an expression composed of the unary operator \'"-"\' and the\nliteral "1".\n', + 'numeric-types': u'\nEmulating numeric types\n***********************\n\nThe following methods can be defined to emulate numeric objects.\nMethods corresponding to operations that are not supported by the\nparticular kind of number implemented (e.g., bitwise operations for\nnon-integral numbers) should be left undefined.\n\nobject.__add__(self, other)\nobject.__sub__(self, other)\nobject.__mul__(self, other)\nobject.__floordiv__(self, other)\nobject.__mod__(self, other)\nobject.__divmod__(self, other)\nobject.__pow__(self, other[, modulo])\nobject.__lshift__(self, other)\nobject.__rshift__(self, other)\nobject.__and__(self, other)\nobject.__xor__(self, other)\nobject.__or__(self, other)\n\n These methods are called to implement the binary arithmetic\n operations ("+", "-", "*", "//", "%", "divmod()", "pow()", "**",\n "<<", ">>", "&", "^", "|"). For instance, to evaluate the\n expression "x + y", where *x* is an instance of a class that has an\n "__add__()" method, "x.__add__(y)" is called. The "__divmod__()"\n method should be the equivalent to using "__floordiv__()" and\n "__mod__()"; it should not be related to "__truediv__()" (described\n below). Note that "__pow__()" should be defined to accept an\n optional third argument if the ternary version of the built-in\n "pow()" function is to be supported.\n\n If one of those methods does not support the operation with the\n supplied arguments, it should return "NotImplemented".\n\nobject.__div__(self, other)\nobject.__truediv__(self, other)\n\n The division operator ("/") is implemented by these methods. The\n "__truediv__()" method is used when "__future__.division" is in\n effect, otherwise "__div__()" is used. If only one of these two\n methods is defined, the object will not support division in the\n alternate context; "TypeError" will be raised instead.\n\nobject.__radd__(self, other)\nobject.__rsub__(self, other)\nobject.__rmul__(self, other)\nobject.__rdiv__(self, other)\nobject.__rtruediv__(self, other)\nobject.__rfloordiv__(self, other)\nobject.__rmod__(self, other)\nobject.__rdivmod__(self, other)\nobject.__rpow__(self, other)\nobject.__rlshift__(self, other)\nobject.__rrshift__(self, other)\nobject.__rand__(self, other)\nobject.__rxor__(self, other)\nobject.__ror__(self, other)\n\n These methods are called to implement the binary arithmetic\n operations ("+", "-", "*", "/", "%", "divmod()", "pow()", "**",\n "<<", ">>", "&", "^", "|") with reflected (swapped) operands.\n These functions are only called if the left operand does not\n support the corresponding operation and the operands are of\n different types. [2] For instance, to evaluate the expression "x -\n y", where *y* is an instance of a class that has an "__rsub__()"\n method, "y.__rsub__(x)" is called if "x.__sub__(y)" returns\n *NotImplemented*.\n\n Note that ternary "pow()" will not try calling "__rpow__()" (the\n coercion rules would become too complicated).\n\n Note: If the right operand\'s type is a subclass of the left\n operand\'s type and that subclass provides the reflected method\n for the operation, this method will be called before the left\n operand\'s non-reflected method. This behavior allows subclasses\n to override their ancestors\' operations.\n\nobject.__iadd__(self, other)\nobject.__isub__(self, other)\nobject.__imul__(self, other)\nobject.__idiv__(self, other)\nobject.__itruediv__(self, other)\nobject.__ifloordiv__(self, other)\nobject.__imod__(self, other)\nobject.__ipow__(self, other[, modulo])\nobject.__ilshift__(self, other)\nobject.__irshift__(self, other)\nobject.__iand__(self, other)\nobject.__ixor__(self, other)\nobject.__ior__(self, other)\n\n These methods are called to implement the augmented arithmetic\n assignments ("+=", "-=", "*=", "/=", "//=", "%=", "**=", "<<=",\n ">>=", "&=", "^=", "|="). These methods should attempt to do the\n operation in-place (modifying *self*) and return the result (which\n could be, but does not have to be, *self*). If a specific method\n is not defined, the augmented assignment falls back to the normal\n methods. For instance, to execute the statement "x += y", where\n *x* is an instance of a class that has an "__iadd__()" method,\n "x.__iadd__(y)" is called. If *x* is an instance of a class that\n does not define a "__iadd__()" method, "x.__add__(y)" and\n "y.__radd__(x)" are considered, as with the evaluation of "x + y".\n\nobject.__neg__(self)\nobject.__pos__(self)\nobject.__abs__(self)\nobject.__invert__(self)\n\n Called to implement the unary arithmetic operations ("-", "+",\n "abs()" and "~").\n\nobject.__complex__(self)\nobject.__int__(self)\nobject.__long__(self)\nobject.__float__(self)\n\n Called to implement the built-in functions "complex()", "int()",\n "long()", and "float()". Should return a value of the appropriate\n type.\n\nobject.__oct__(self)\nobject.__hex__(self)\n\n Called to implement the built-in functions "oct()" and "hex()".\n Should return a string value.\n\nobject.__index__(self)\n\n Called to implement "operator.index()". Also called whenever\n Python needs an integer object (such as in slicing). Must return\n an integer (int or long).\n\n New in version 2.5.\n\nobject.__coerce__(self, other)\n\n Called to implement "mixed-mode" numeric arithmetic. Should either\n return a 2-tuple containing *self* and *other* converted to a\n common numeric type, or "None" if conversion is impossible. When\n the common type would be the type of "other", it is sufficient to\n return "None", since the interpreter will also ask the other object\n to attempt a coercion (but sometimes, if the implementation of the\n other type cannot be changed, it is useful to do the conversion to\n the other type here). A return value of "NotImplemented" is\n equivalent to returning "None".\n', + 'objects': u'\nObjects, values and types\n*************************\n\n*Objects* are Python\'s abstraction for data. All data in a Python\nprogram is represented by objects or by relations between objects. (In\na sense, and in conformance to Von Neumann\'s model of a "stored\nprogram computer," code is also represented by objects.)\n\nEvery object has an identity, a type and a value. An object\'s\n*identity* never changes once it has been created; you may think of it\nas the object\'s address in memory. The \'"is"\' operator compares the\nidentity of two objects; the "id()" function returns an integer\nrepresenting its identity (currently implemented as its address). An\nobject\'s *type* is also unchangeable. [1] An object\'s type determines\nthe operations that the object supports (e.g., "does it have a\nlength?") and also defines the possible values for objects of that\ntype. The "type()" function returns an object\'s type (which is an\nobject itself). The *value* of some objects can change. Objects\nwhose value can change are said to be *mutable*; objects whose value\nis unchangeable once they are created are called *immutable*. (The\nvalue of an immutable container object that contains a reference to a\nmutable object can change when the latter\'s value is changed; however\nthe container is still considered immutable, because the collection of\nobjects it contains cannot be changed. So, immutability is not\nstrictly the same as having an unchangeable value, it is more subtle.)\nAn object\'s mutability is determined by its type; for instance,\nnumbers, strings and tuples are immutable, while dictionaries and\nlists are mutable.\n\nObjects are never explicitly destroyed; however, when they become\nunreachable they may be garbage-collected. An implementation is\nallowed to postpone garbage collection or omit it altogether --- it is\na matter of implementation quality how garbage collection is\nimplemented, as long as no objects are collected that are still\nreachable.\n\n**CPython implementation detail:** CPython currently uses a reference-\ncounting scheme with (optional) delayed detection of cyclically linked\ngarbage, which collects most objects as soon as they become\nunreachable, but is not guaranteed to collect garbage containing\ncircular references. See the documentation of the "gc" module for\ninformation on controlling the collection of cyclic garbage. Other\nimplementations act differently and CPython may change. Do not depend\non immediate finalization of objects when they become unreachable (ex:\nalways close files).\n\nNote that the use of the implementation\'s tracing or debugging\nfacilities may keep objects alive that would normally be collectable.\nAlso note that catching an exception with a \'"try"..."except"\'\nstatement may keep objects alive.\n\nSome objects contain references to "external" resources such as open\nfiles or windows. It is understood that these resources are freed\nwhen the object is garbage-collected, but since garbage collection is\nnot guaranteed to happen, such objects also provide an explicit way to\nrelease the external resource, usually a "close()" method. Programs\nare strongly recommended to explicitly close such objects. The\n\'"try"..."finally"\' statement provides a convenient way to do this.\n\nSome objects contain references to other objects; these are called\n*containers*. Examples of containers are tuples, lists and\ndictionaries. The references are part of a container\'s value. In\nmost cases, when we talk about the value of a container, we imply the\nvalues, not the identities of the contained objects; however, when we\ntalk about the mutability of a container, only the identities of the\nimmediately contained objects are implied. So, if an immutable\ncontainer (like a tuple) contains a reference to a mutable object, its\nvalue changes if that mutable object is changed.\n\nTypes affect almost all aspects of object behavior. Even the\nimportance of object identity is affected in some sense: for immutable\ntypes, operations that compute new values may actually return a\nreference to any existing object with the same type and value, while\nfor mutable objects this is not allowed. E.g., after "a = 1; b = 1",\n"a" and "b" may or may not refer to the same object with the value\none, depending on the implementation, but after "c = []; d = []", "c"\nand "d" are guaranteed to refer to two different, unique, newly\ncreated empty lists. (Note that "c = d = []" assigns the same object\nto both "c" and "d".)\n', + 'operator-summary': u'\nOperator precedence\n*******************\n\nThe following table summarizes the operator precedences in Python,\nfrom lowest precedence (least binding) to highest precedence (most\nbinding). Operators in the same box have the same precedence. Unless\nthe syntax is explicitly given, operators are binary. Operators in\nthe same box group left to right (except for comparisons, including\ntests, which all have the same precedence and chain from left to right\n--- see section Comparisons --- and exponentiation, which groups from\nright to left).\n\n+-------------------------------------------------+---------------------------------------+\n| Operator | Description |\n+=================================================+=======================================+\n| "lambda" | Lambda expression |\n+-------------------------------------------------+---------------------------------------+\n| "if" -- "else" | Conditional expression |\n+-------------------------------------------------+---------------------------------------+\n| "or" | Boolean OR |\n+-------------------------------------------------+---------------------------------------+\n| "and" | Boolean AND |\n+-------------------------------------------------+---------------------------------------+\n| "not" "x" | Boolean NOT |\n+-------------------------------------------------+---------------------------------------+\n| "in", "not in", "is", "is not", "<", "<=", ">", | Comparisons, including membership |\n| ">=", "<>", "!=", "==" | tests and identity tests |\n+-------------------------------------------------+---------------------------------------+\n| "|" | Bitwise OR |\n+-------------------------------------------------+---------------------------------------+\n| "^" | Bitwise XOR |\n+-------------------------------------------------+---------------------------------------+\n| "&" | Bitwise AND |\n+-------------------------------------------------+---------------------------------------+\n| "<<", ">>" | Shifts |\n+-------------------------------------------------+---------------------------------------+\n| "+", "-" | Addition and subtraction |\n+-------------------------------------------------+---------------------------------------+\n| "*", "/", "//", "%" | Multiplication, division, remainder |\n| | [8] |\n+-------------------------------------------------+---------------------------------------+\n| "+x", "-x", "~x" | Positive, negative, bitwise NOT |\n+-------------------------------------------------+---------------------------------------+\n| "**" | Exponentiation [9] |\n+-------------------------------------------------+---------------------------------------+\n| "x[index]", "x[index:index]", | Subscription, slicing, call, |\n| "x(arguments...)", "x.attribute" | attribute reference |\n+-------------------------------------------------+---------------------------------------+\n| "(expressions...)", "[expressions...]", "{key: | Binding or tuple display, list |\n| value...}", "`expressions...`" | display, dictionary display, string |\n| | conversion |\n+-------------------------------------------------+---------------------------------------+\n\n-[ Footnotes ]-\n\n[1] In Python 2.3 and later releases, a list comprehension "leaks"\n the control variables of each "for" it contains into the\n containing scope. However, this behavior is deprecated, and\n relying on it will not work in Python 3.\n\n[2] While "abs(x%y) < abs(y)" is true mathematically, for floats\n it may not be true numerically due to roundoff. For example, and\n assuming a platform on which a Python float is an IEEE 754 double-\n precision number, in order that "-1e-100 % 1e100" have the same\n sign as "1e100", the computed result is "-1e-100 + 1e100", which\n is numerically exactly equal to "1e100". The function\n "math.fmod()" returns a result whose sign matches the sign of the\n first argument instead, and so returns "-1e-100" in this case.\n Which approach is more appropriate depends on the application.\n\n[3] If x is very close to an exact integer multiple of y, it\'s\n possible for "floor(x/y)" to be one larger than "(x-x%y)/y" due to\n rounding. In such cases, Python returns the latter result, in\n order to preserve that "divmod(x,y)[0] * y + x % y" be very close\n to "x".\n\n[4] While comparisons between unicode strings make sense at the\n byte level, they may be counter-intuitive to users. For example,\n the strings "u"\\u00C7"" and "u"\\u0043\\u0327"" compare differently,\n even though they both represent the same unicode character (LATIN\n CAPITAL LETTER C WITH CEDILLA). To compare strings in a human\n recognizable way, compare using "unicodedata.normalize()".\n\n[5] The implementation computes this efficiently, without\n constructing lists or sorting.\n\n[6] Earlier versions of Python used lexicographic comparison of\n the sorted (key, value) lists, but this was very expensive for the\n common case of comparing for equality. An even earlier version of\n Python compared dictionaries by identity only, but this caused\n surprises because people expected to be able to test a dictionary\n for emptiness by comparing it to "{}".\n\n[7] Due to automatic garbage-collection, free lists, and the\n dynamic nature of descriptors, you may notice seemingly unusual\n behaviour in certain uses of the "is" operator, like those\n involving comparisons between instance methods, or constants.\n Check their documentation for more info.\n\n[8] The "%" operator is also used for string formatting; the same\n precedence applies.\n\n[9] The power operator "**" binds less tightly than an arithmetic\n or bitwise unary operator on its right, that is, "2**-1" is "0.5".\n', + 'pass': u'\nThe "pass" statement\n********************\n\n pass_stmt ::= "pass"\n\n"pass" is a null operation --- when it is executed, nothing happens.\nIt is useful as a placeholder when a statement is required\nsyntactically, but no code needs to be executed, for example:\n\n def f(arg): pass # a function that does nothing (yet)\n\n class C: pass # a class with no methods (yet)\n', + 'power': u'\nThe power operator\n******************\n\nThe power operator binds more tightly than unary operators on its\nleft; it binds less tightly than unary operators on its right. The\nsyntax is:\n\n power ::= primary ["**" u_expr]\n\nThus, in an unparenthesized sequence of power and unary operators, the\noperators are evaluated from right to left (this does not constrain\nthe evaluation order for the operands): "-1**2" results in "-1".\n\nThe power operator has the same semantics as the built-in "pow()"\nfunction, when called with two arguments: it yields its left argument\nraised to the power of its right argument. The numeric arguments are\nfirst converted to a common type. The result type is that of the\narguments after coercion.\n\nWith mixed operand types, the coercion rules for binary arithmetic\noperators apply. For int and long int operands, the result has the\nsame type as the operands (after coercion) unless the second argument\nis negative; in that case, all arguments are converted to float and a\nfloat result is delivered. For example, "10**2" returns "100", but\n"10**-2" returns "0.01". (This last feature was added in Python 2.2.\nIn Python 2.1 and before, if both arguments were of integer types and\nthe second argument was negative, an exception was raised).\n\nRaising "0.0" to a negative power results in a "ZeroDivisionError".\nRaising a negative number to a fractional power results in a\n"ValueError".\n', + 'print': u'\nThe "print" statement\n*********************\n\n print_stmt ::= "print" ([expression ("," expression)* [","]]\n | ">>" expression [("," expression)+ [","]])\n\n"print" evaluates each expression in turn and writes the resulting\nobject to standard output (see below). If an object is not a string,\nit is first converted to a string using the rules for string\nconversions. The (resulting or original) string is then written. A\nspace is written before each object is (converted and) written, unless\nthe output system believes it is positioned at the beginning of a\nline. This is the case (1) when no characters have yet been written\nto standard output, (2) when the last character written to standard\noutput is a whitespace character except "\' \'", or (3) when the last\nwrite operation on standard output was not a "print" statement. (In\nsome cases it may be functional to write an empty string to standard\noutput for this reason.)\n\nNote: Objects which act like file objects but which are not the\n built-in file objects often do not properly emulate this aspect of\n the file object\'s behavior, so it is best not to rely on this.\n\nA "\'\\n\'" character is written at the end, unless the "print" statement\nends with a comma. This is the only action if the statement contains\njust the keyword "print".\n\nStandard output is defined as the file object named "stdout" in the\nbuilt-in module "sys". If no such object exists, or if it does not\nhave a "write()" method, a "RuntimeError" exception is raised.\n\n"print" also has an extended form, defined by the second portion of\nthe syntax described above. This form is sometimes referred to as\n""print" chevron." In this form, the first expression after the ">>"\nmust evaluate to a "file-like" object, specifically an object that has\na "write()" method as described above. With this extended form, the\nsubsequent expressions are printed to this file object. If the first\nexpression evaluates to "None", then "sys.stdout" is used as the file\nfor output.\n', + 'raise': u'\nThe "raise" statement\n*********************\n\n raise_stmt ::= "raise" [expression ["," expression ["," expression]]]\n\nIf no expressions are present, "raise" re-raises the last exception\nthat was active in the current scope. If no exception is active in\nthe current scope, a "TypeError" exception is raised indicating that\nthis is an error (if running under IDLE, a "Queue.Empty" exception is\nraised instead).\n\nOtherwise, "raise" evaluates the expressions to get three objects,\nusing "None" as the value of omitted expressions. The first two\nobjects are used to determine the *type* and *value* of the exception.\n\nIf the first object is an instance, the type of the exception is the\nclass of the instance, the instance itself is the value, and the\nsecond object must be "None".\n\nIf the first object is a class, it becomes the type of the exception.\nThe second object is used to determine the exception value: If it is\nan instance of the class, the instance becomes the exception value. If\nthe second object is a tuple, it is used as the argument list for the\nclass constructor; if it is "None", an empty argument list is used,\nand any other object is treated as a single argument to the\nconstructor. The instance so created by calling the constructor is\nused as the exception value.\n\nIf a third object is present and not "None", it must be a traceback\nobject (see section The standard type hierarchy), and it is\nsubstituted instead of the current location as the place where the\nexception occurred. If the third object is present and not a\ntraceback object or "None", a "TypeError" exception is raised. The\nthree-expression form of "raise" is useful to re-raise an exception\ntransparently in an except clause, but "raise" with no expressions\nshould be preferred if the exception to be re-raised was the most\nrecently active exception in the current scope.\n\nAdditional information on exceptions can be found in section\nExceptions, and information about handling exceptions is in section\nThe try statement.\n', + 'return': u'\nThe "return" statement\n**********************\n\n return_stmt ::= "return" [expression_list]\n\n"return" may only occur syntactically nested in a function definition,\nnot within a nested class definition.\n\nIf an expression list is present, it is evaluated, else "None" is\nsubstituted.\n\n"return" leaves the current function call with the expression list (or\n"None") as return value.\n\nWhen "return" passes control out of a "try" statement with a "finally"\nclause, that "finally" clause is executed before really leaving the\nfunction.\n\nIn a generator function, the "return" statement is not allowed to\ninclude an "expression_list". In that context, a bare "return"\nindicates that the generator is done and will cause "StopIteration" to\nbe raised.\n', + 'sequence-types': u'\nEmulating container types\n*************************\n\nThe following methods can be defined to implement container objects.\nContainers usually are sequences (such as lists or tuples) or mappings\n(like dictionaries), but can represent other containers as well. The\nfirst set of methods is used either to emulate a sequence or to\nemulate a mapping; the difference is that for a sequence, the\nallowable keys should be the integers *k* for which "0 <= k < N" where\n*N* is the length of the sequence, or slice objects, which define a\nrange of items. (For backwards compatibility, the method\n"__getslice__()" (see below) can also be defined to handle simple, but\nnot extended slices.) It is also recommended that mappings provide the\nmethods "keys()", "values()", "items()", "has_key()", "get()",\n"clear()", "setdefault()", "iterkeys()", "itervalues()",\n"iteritems()", "pop()", "popitem()", "copy()", and "update()" behaving\nsimilar to those for Python\'s standard dictionary objects. The\n"UserDict" module provides a "DictMixin" class to help create those\nmethods from a base set of "__getitem__()", "__setitem__()",\n"__delitem__()", and "keys()". Mutable sequences should provide\nmethods "append()", "count()", "index()", "extend()", "insert()",\n"pop()", "remove()", "reverse()" and "sort()", like Python standard\nlist objects. Finally, sequence types should implement addition\n(meaning concatenation) and multiplication (meaning repetition) by\ndefining the methods "__add__()", "__radd__()", "__iadd__()",\n"__mul__()", "__rmul__()" and "__imul__()" described below; they\nshould not define "__coerce__()" or other numerical operators. It is\nrecommended that both mappings and sequences implement the\n"__contains__()" method to allow efficient use of the "in" operator;\nfor mappings, "in" should be equivalent of "has_key()"; for sequences,\nit should search through the values. It is further recommended that\nboth mappings and sequences implement the "__iter__()" method to allow\nefficient iteration through the container; for mappings, "__iter__()"\nshould be the same as "iterkeys()"; for sequences, it should iterate\nthrough the values.\n\nobject.__len__(self)\n\n Called to implement the built-in function "len()". Should return\n the length of the object, an integer ">=" 0. Also, an object that\n doesn\'t define a "__nonzero__()" method and whose "__len__()"\n method returns zero is considered to be false in a Boolean context.\n\nobject.__getitem__(self, key)\n\n Called to implement evaluation of "self[key]". For sequence types,\n the accepted keys should be integers and slice objects. Note that\n the special interpretation of negative indexes (if the class wishes\n to emulate a sequence type) is up to the "__getitem__()" method. If\n *key* is of an inappropriate type, "TypeError" may be raised; if of\n a value outside the set of indexes for the sequence (after any\n special interpretation of negative values), "IndexError" should be\n raised. For mapping types, if *key* is missing (not in the\n container), "KeyError" should be raised.\n\n Note: "for" loops expect that an "IndexError" will be raised for\n illegal indexes to allow proper detection of the end of the\n sequence.\n\nobject.__missing__(self, key)\n\n Called by "dict"."__getitem__()" to implement "self[key]" for dict\n subclasses when key is not in the dictionary.\n\nobject.__setitem__(self, key, value)\n\n Called to implement assignment to "self[key]". Same note as for\n "__getitem__()". This should only be implemented for mappings if\n the objects support changes to the values for keys, or if new keys\n can be added, or for sequences if elements can be replaced. The\n same exceptions should be raised for improper *key* values as for\n the "__getitem__()" method.\n\nobject.__delitem__(self, key)\n\n Called to implement deletion of "self[key]". Same note as for\n "__getitem__()". This should only be implemented for mappings if\n the objects support removal of keys, or for sequences if elements\n can be removed from the sequence. The same exceptions should be\n raised for improper *key* values as for the "__getitem__()" method.\n\nobject.__iter__(self)\n\n This method is called when an iterator is required for a container.\n This method should return a new iterator object that can iterate\n over all the objects in the container. For mappings, it should\n iterate over the keys of the container, and should also be made\n available as the method "iterkeys()".\n\n Iterator objects also need to implement this method; they are\n required to return themselves. For more information on iterator\n objects, see Iterator Types.\n\nobject.__reversed__(self)\n\n Called (if present) by the "reversed()" built-in to implement\n reverse iteration. It should return a new iterator object that\n iterates over all the objects in the container in reverse order.\n\n If the "__reversed__()" method is not provided, the "reversed()"\n built-in will fall back to using the sequence protocol ("__len__()"\n and "__getitem__()"). Objects that support the sequence protocol\n should only provide "__reversed__()" if they can provide an\n implementation that is more efficient than the one provided by\n "reversed()".\n\n New in version 2.6.\n\nThe membership test operators ("in" and "not in") are normally\nimplemented as an iteration through a sequence. However, container\nobjects can supply the following special method with a more efficient\nimplementation, which also does not require the object be a sequence.\n\nobject.__contains__(self, item)\n\n Called to implement membership test operators. Should return true\n if *item* is in *self*, false otherwise. For mapping objects, this\n should consider the keys of the mapping rather than the values or\n the key-item pairs.\n\n For objects that don\'t define "__contains__()", the membership test\n first tries iteration via "__iter__()", then the old sequence\n iteration protocol via "__getitem__()", see this section in the\n language reference.\n', + 'shifting': u'\nShifting operations\n*******************\n\nThe shifting operations have lower priority than the arithmetic\noperations:\n\n shift_expr ::= a_expr | shift_expr ( "<<" | ">>" ) a_expr\n\nThese operators accept plain or long integers as arguments. The\narguments are converted to a common type. They shift the first\nargument to the left or right by the number of bits given by the\nsecond argument.\n\nA right shift by *n* bits is defined as division by "pow(2, n)". A\nleft shift by *n* bits is defined as multiplication with "pow(2, n)".\nNegative shift counts raise a "ValueError" exception.\n\nNote: In the current implementation, the right-hand operand is\n required to be at most "sys.maxsize". If the right-hand operand is\n larger than "sys.maxsize" an "OverflowError" exception is raised.\n', + 'slicings': u'\nSlicings\n********\n\nA slicing selects a range of items in a sequence object (e.g., a\nstring, tuple or list). Slicings may be used as expressions or as\ntargets in assignment or "del" statements. The syntax for a slicing:\n\n slicing ::= simple_slicing | extended_slicing\n simple_slicing ::= primary "[" short_slice "]"\n extended_slicing ::= primary "[" slice_list "]"\n slice_list ::= slice_item ("," slice_item)* [","]\n slice_item ::= expression | proper_slice | ellipsis\n proper_slice ::= short_slice | long_slice\n short_slice ::= [lower_bound] ":" [upper_bound]\n long_slice ::= short_slice ":" [stride]\n lower_bound ::= expression\n upper_bound ::= expression\n stride ::= expression\n ellipsis ::= "..."\n\nThere is ambiguity in the formal syntax here: anything that looks like\nan expression list also looks like a slice list, so any subscription\ncan be interpreted as a slicing. Rather than further complicating the\nsyntax, this is disambiguated by defining that in this case the\ninterpretation as a subscription takes priority over the\ninterpretation as a slicing (this is the case if the slice list\ncontains no proper slice nor ellipses). Similarly, when the slice\nlist has exactly one short slice and no trailing comma, the\ninterpretation as a simple slicing takes priority over that as an\nextended slicing.\n\nThe semantics for a simple slicing are as follows. The primary must\nevaluate to a sequence object. The lower and upper bound expressions,\nif present, must evaluate to plain integers; defaults are zero and the\n"sys.maxint", respectively. If either bound is negative, the\nsequence\'s length is added to it. The slicing now selects all items\nwith index *k* such that "i <= k < j" where *i* and *j* are the\nspecified lower and upper bounds. This may be an empty sequence. It\nis not an error if *i* or *j* lie outside the range of valid indexes\n(such items don\'t exist so they aren\'t selected).\n\nThe semantics for an extended slicing are as follows. The primary\nmust evaluate to a mapping object, and it is indexed with a key that\nis constructed from the slice list, as follows. If the slice list\ncontains at least one comma, the key is a tuple containing the\nconversion of the slice items; otherwise, the conversion of the lone\nslice item is the key. The conversion of a slice item that is an\nexpression is that expression. The conversion of an ellipsis slice\nitem is the built-in "Ellipsis" object. The conversion of a proper\nslice is a slice object (see section The standard type hierarchy)\nwhose "start", "stop" and "step" attributes are the values of the\nexpressions given as lower bound, upper bound and stride,\nrespectively, substituting "None" for missing expressions.\n', + 'specialattrs': u'\nSpecial Attributes\n******************\n\nThe implementation adds a few special read-only attributes to several\nobject types, where they are relevant. Some of these are not reported\nby the "dir()" built-in function.\n\nobject.__dict__\n\n A dictionary or other mapping object used to store an object\'s\n (writable) attributes.\n\nobject.__methods__\n\n Deprecated since version 2.2: Use the built-in function "dir()" to\n get a list of an object\'s attributes. This attribute is no longer\n available.\n\nobject.__members__\n\n Deprecated since version 2.2: Use the built-in function "dir()" to\n get a list of an object\'s attributes. This attribute is no longer\n available.\n\ninstance.__class__\n\n The class to which a class instance belongs.\n\nclass.__bases__\n\n The tuple of base classes of a class object.\n\ndefinition.__name__\n\n The name of the class, type, function, method, descriptor, or\n generator instance.\n\nThe following attributes are only supported by *new-style class*es.\n\nclass.__mro__\n\n This attribute is a tuple of classes that are considered when\n looking for base classes during method resolution.\n\nclass.mro()\n\n This method can be overridden by a metaclass to customize the\n method resolution order for its instances. It is called at class\n instantiation, and its result is stored in "__mro__".\n\nclass.__subclasses__()\n\n Each new-style class keeps a list of weak references to its\n immediate subclasses. This method returns a list of all those\n references still alive. Example:\n\n >>> int.__subclasses__()\n []\n\n-[ Footnotes ]-\n\n[1] Additional information on these special methods may be found\n in the Python Reference Manual (Basic customization).\n\n[2] As a consequence, the list "[1, 2]" is considered equal to\n "[1.0, 2.0]", and similarly for tuples.\n\n[3] They must have since the parser can\'t tell the type of the\n operands.\n\n[4] Cased characters are those with general category property\n being one of "Lu" (Letter, uppercase), "Ll" (Letter, lowercase),\n or "Lt" (Letter, titlecase).\n\n[5] To format only a tuple you should therefore provide a\n singleton tuple whose only element is the tuple to be formatted.\n\n[6] The advantage of leaving the newline on is that returning an\n empty string is then an unambiguous EOF indication. It is also\n possible (in cases where it might matter, for example, if you want\n to make an exact copy of a file while scanning its lines) to tell\n whether the last line of a file ended in a newline or not (yes\n this happens!).\n', + 'specialnames': u'\nSpecial method names\n********************\n\nA class can implement certain operations that are invoked by special\nsyntax (such as arithmetic operations or subscripting and slicing) by\ndefining methods with special names. This is Python\'s approach to\n*operator overloading*, allowing classes to define their own behavior\nwith respect to language operators. For instance, if a class defines\na method named "__getitem__()", and "x" is an instance of this class,\nthen "x[i]" is roughly equivalent to "x.__getitem__(i)" for old-style\nclasses and "type(x).__getitem__(x, i)" for new-style classes. Except\nwhere mentioned, attempts to execute an operation raise an exception\nwhen no appropriate method is defined (typically "AttributeError" or\n"TypeError").\n\nWhen implementing a class that emulates any built-in type, it is\nimportant that the emulation only be implemented to the degree that it\nmakes sense for the object being modelled. For example, some\nsequences may work well with retrieval of individual elements, but\nextracting a slice may not make sense. (One example of this is the\n"NodeList" interface in the W3C\'s Document Object Model.)\n\n\nBasic customization\n===================\n\nobject.__new__(cls[, ...])\n\n Called to create a new instance of class *cls*. "__new__()" is a\n static method (special-cased so you need not declare it as such)\n that takes the class of which an instance was requested as its\n first argument. The remaining arguments are those passed to the\n object constructor expression (the call to the class). The return\n value of "__new__()" should be the new object instance (usually an\n instance of *cls*).\n\n Typical implementations create a new instance of the class by\n invoking the superclass\'s "__new__()" method using\n "super(currentclass, cls).__new__(cls[, ...])" with appropriate\n arguments and then modifying the newly-created instance as\n necessary before returning it.\n\n If "__new__()" returns an instance of *cls*, then the new\n instance\'s "__init__()" method will be invoked like\n "__init__(self[, ...])", where *self* is the new instance and the\n remaining arguments are the same as were passed to "__new__()".\n\n If "__new__()" does not return an instance of *cls*, then the new\n instance\'s "__init__()" method will not be invoked.\n\n "__new__()" is intended mainly to allow subclasses of immutable\n types (like int, str, or tuple) to customize instance creation. It\n is also commonly overridden in custom metaclasses in order to\n customize class creation.\n\nobject.__init__(self[, ...])\n\n Called after the instance has been created (by "__new__()"), but\n before it is returned to the caller. The arguments are those\n passed to the class constructor expression. If a base class has an\n "__init__()" method, the derived class\'s "__init__()" method, if\n any, must explicitly call it to ensure proper initialization of the\n base class part of the instance; for example:\n "BaseClass.__init__(self, [args...])".\n\n Because "__new__()" and "__init__()" work together in constructing\n objects ("__new__()" to create it, and "__init__()" to customise\n it), no non-"None" value may be returned by "__init__()"; doing so\n will cause a "TypeError" to be raised at runtime.\n\nobject.__del__(self)\n\n Called when the instance is about to be destroyed. This is also\n called a destructor. If a base class has a "__del__()" method, the\n derived class\'s "__del__()" method, if any, must explicitly call it\n to ensure proper deletion of the base class part of the instance.\n Note that it is possible (though not recommended!) for the\n "__del__()" method to postpone destruction of the instance by\n creating a new reference to it. It may then be called at a later\n time when this new reference is deleted. It is not guaranteed that\n "__del__()" methods are called for objects that still exist when\n the interpreter exits.\n\n Note: "del x" doesn\'t directly call "x.__del__()" --- the former\n decrements the reference count for "x" by one, and the latter is\n only called when "x"\'s reference count reaches zero. Some common\n situations that may prevent the reference count of an object from\n going to zero include: circular references between objects (e.g.,\n a doubly-linked list or a tree data structure with parent and\n child pointers); a reference to the object on the stack frame of\n a function that caught an exception (the traceback stored in\n "sys.exc_traceback" keeps the stack frame alive); or a reference\n to the object on the stack frame that raised an unhandled\n exception in interactive mode (the traceback stored in\n "sys.last_traceback" keeps the stack frame alive). The first\n situation can only be remedied by explicitly breaking the cycles;\n the latter two situations can be resolved by storing "None" in\n "sys.exc_traceback" or "sys.last_traceback". Circular references\n which are garbage are detected when the option cycle detector is\n enabled (it\'s on by default), but can only be cleaned up if there\n are no Python-level "__del__()" methods involved. Refer to the\n documentation for the "gc" module for more information about how\n "__del__()" methods are handled by the cycle detector,\n particularly the description of the "garbage" value.\n\n Warning: Due to the precarious circumstances under which\n "__del__()" methods are invoked, exceptions that occur during\n their execution are ignored, and a warning is printed to\n "sys.stderr" instead. Also, when "__del__()" is invoked in\n response to a module being deleted (e.g., when execution of the\n program is done), other globals referenced by the "__del__()"\n method may already have been deleted or in the process of being\n torn down (e.g. the import machinery shutting down). For this\n reason, "__del__()" methods should do the absolute minimum needed\n to maintain external invariants. Starting with version 1.5,\n Python guarantees that globals whose name begins with a single\n underscore are deleted from their module before other globals are\n deleted; if no other references to such globals exist, this may\n help in assuring that imported modules are still available at the\n time when the "__del__()" method is called.\n\n See also the "-R" command-line option.\n\nobject.__repr__(self)\n\n Called by the "repr()" built-in function and by string conversions\n (reverse quotes) to compute the "official" string representation of\n an object. If at all possible, this should look like a valid\n Python expression that could be used to recreate an object with the\n same value (given an appropriate environment). If this is not\n possible, a string of the form "<...some useful description...>"\n should be returned. The return value must be a string object. If a\n class defines "__repr__()" but not "__str__()", then "__repr__()"\n is also used when an "informal" string representation of instances\n of that class is required.\n\n This is typically used for debugging, so it is important that the\n representation is information-rich and unambiguous.\n\nobject.__str__(self)\n\n Called by the "str()" built-in function and by the "print"\n statement to compute the "informal" string representation of an\n object. This differs from "__repr__()" in that it does not have to\n be a valid Python expression: a more convenient or concise\n representation may be used instead. The return value must be a\n string object.\n\nobject.__lt__(self, other)\nobject.__le__(self, other)\nobject.__eq__(self, other)\nobject.__ne__(self, other)\nobject.__gt__(self, other)\nobject.__ge__(self, other)\n\n New in version 2.1.\n\n These are the so-called "rich comparison" methods, and are called\n for comparison operators in preference to "__cmp__()" below. The\n correspondence between operator symbols and method names is as\n follows: "xy" call "x.__ne__(y)",\n "x>y" calls "x.__gt__(y)", and "x>=y" calls "x.__ge__(y)".\n\n A rich comparison method may return the singleton "NotImplemented"\n if it does not implement the operation for a given pair of\n arguments. By convention, "False" and "True" are returned for a\n successful comparison. However, these methods can return any value,\n so if the comparison operator is used in a Boolean context (e.g.,\n in the condition of an "if" statement), Python will call "bool()"\n on the value to determine if the result is true or false.\n\n There are no implied relationships among the comparison operators.\n The truth of "x==y" does not imply that "x!=y" is false.\n Accordingly, when defining "__eq__()", one should also define\n "__ne__()" so that the operators will behave as expected. See the\n paragraph on "__hash__()" for some important notes on creating\n *hashable* objects which support custom comparison operations and\n are usable as dictionary keys.\n\n There are no swapped-argument versions of these methods (to be used\n when the left argument does not support the operation but the right\n argument does); rather, "__lt__()" and "__gt__()" are each other\'s\n reflection, "__le__()" and "__ge__()" are each other\'s reflection,\n and "__eq__()" and "__ne__()" are their own reflection.\n\n Arguments to rich comparison methods are never coerced.\n\n To automatically generate ordering operations from a single root\n operation, see "functools.total_ordering()".\n\nobject.__cmp__(self, other)\n\n Called by comparison operations if rich comparison (see above) is\n not defined. Should return a negative integer if "self < other",\n zero if "self == other", a positive integer if "self > other". If\n no "__cmp__()", "__eq__()" or "__ne__()" operation is defined,\n class instances are compared by object identity ("address"). See\n also the description of "__hash__()" for some important notes on\n creating *hashable* objects which support custom comparison\n operations and are usable as dictionary keys. (Note: the\n restriction that exceptions are not propagated by "__cmp__()" has\n been removed since Python 1.5.)\n\nobject.__rcmp__(self, other)\n\n Changed in version 2.1: No longer supported.\n\nobject.__hash__(self)\n\n Called by built-in function "hash()" and for operations on members\n of hashed collections including "set", "frozenset", and "dict".\n "__hash__()" should return an integer. The only required property\n is that objects which compare equal have the same hash value; it is\n advised to somehow mix together (e.g. using exclusive or) the hash\n values for the components of the object that also play a part in\n comparison of objects.\n\n If a class does not define a "__cmp__()" or "__eq__()" method it\n should not define a "__hash__()" operation either; if it defines\n "__cmp__()" or "__eq__()" but not "__hash__()", its instances will\n not be usable in hashed collections. If a class defines mutable\n objects and implements a "__cmp__()" or "__eq__()" method, it\n should not implement "__hash__()", since hashable collection\n implementations require that an object\'s hash value is immutable\n (if the object\'s hash value changes, it will be in the wrong hash\n bucket).\n\n User-defined classes have "__cmp__()" and "__hash__()" methods by\n default; with them, all objects compare unequal (except with\n themselves) and "x.__hash__()" returns a result derived from\n "id(x)".\n\n Classes which inherit a "__hash__()" method from a parent class but\n change the meaning of "__cmp__()" or "__eq__()" such that the hash\n value returned is no longer appropriate (e.g. by switching to a\n value-based concept of equality instead of the default identity\n based equality) can explicitly flag themselves as being unhashable\n by setting "__hash__ = None" in the class definition. Doing so\n means that not only will instances of the class raise an\n appropriate "TypeError" when a program attempts to retrieve their\n hash value, but they will also be correctly identified as\n unhashable when checking "isinstance(obj, collections.Hashable)"\n (unlike classes which define their own "__hash__()" to explicitly\n raise "TypeError").\n\n Changed in version 2.5: "__hash__()" may now also return a long\n integer object; the 32-bit integer is then derived from the hash of\n that object.\n\n Changed in version 2.6: "__hash__" may now be set to "None" to\n explicitly flag instances of a class as unhashable.\n\nobject.__nonzero__(self)\n\n Called to implement truth value testing and the built-in operation\n "bool()"; should return "False" or "True", or their integer\n equivalents "0" or "1". When this method is not defined,\n "__len__()" is called, if it is defined, and the object is\n considered true if its result is nonzero. If a class defines\n neither "__len__()" nor "__nonzero__()", all its instances are\n considered true.\n\nobject.__unicode__(self)\n\n Called to implement "unicode()" built-in; should return a Unicode\n object. When this method is not defined, string conversion is\n attempted, and the result of string conversion is converted to\n Unicode using the system default encoding.\n\n\nCustomizing attribute access\n============================\n\nThe following methods can be defined to customize the meaning of\nattribute access (use of, assignment to, or deletion of "x.name") for\nclass instances.\n\nobject.__getattr__(self, name)\n\n Called when an attribute lookup has not found the attribute in the\n usual places (i.e. it is not an instance attribute nor is it found\n in the class tree for "self"). "name" is the attribute name. This\n method should return the (computed) attribute value or raise an\n "AttributeError" exception.\n\n Note that if the attribute is found through the normal mechanism,\n "__getattr__()" is not called. (This is an intentional asymmetry\n between "__getattr__()" and "__setattr__()".) This is done both for\n efficiency reasons and because otherwise "__getattr__()" would have\n no way to access other attributes of the instance. Note that at\n least for instance variables, you can fake total control by not\n inserting any values in the instance attribute dictionary (but\n instead inserting them in another object). See the\n "__getattribute__()" method below for a way to actually get total\n control in new-style classes.\n\nobject.__setattr__(self, name, value)\n\n Called when an attribute assignment is attempted. This is called\n instead of the normal mechanism (i.e. store the value in the\n instance dictionary). *name* is the attribute name, *value* is the\n value to be assigned to it.\n\n If "__setattr__()" wants to assign to an instance attribute, it\n should not simply execute "self.name = value" --- this would cause\n a recursive call to itself. Instead, it should insert the value in\n the dictionary of instance attributes, e.g., "self.__dict__[name] =\n value". For new-style classes, rather than accessing the instance\n dictionary, it should call the base class method with the same\n name, for example, "object.__setattr__(self, name, value)".\n\nobject.__delattr__(self, name)\n\n Like "__setattr__()" but for attribute deletion instead of\n assignment. This should only be implemented if "del obj.name" is\n meaningful for the object.\n\n\nMore attribute access for new-style classes\n-------------------------------------------\n\nThe following methods only apply to new-style classes.\n\nobject.__getattribute__(self, name)\n\n Called unconditionally to implement attribute accesses for\n instances of the class. If the class also defines "__getattr__()",\n the latter will not be called unless "__getattribute__()" either\n calls it explicitly or raises an "AttributeError". This method\n should return the (computed) attribute value or raise an\n "AttributeError" exception. In order to avoid infinite recursion in\n this method, its implementation should always call the base class\n method with the same name to access any attributes it needs, for\n example, "object.__getattribute__(self, name)".\n\n Note: This method may still be bypassed when looking up special\n methods as the result of implicit invocation via language syntax\n or built-in functions. See Special method lookup for new-style\n classes.\n\n\nImplementing Descriptors\n------------------------\n\nThe following methods only apply when an instance of the class\ncontaining the method (a so-called *descriptor* class) appears in an\n*owner* class (the descriptor must be in either the owner\'s class\ndictionary or in the class dictionary for one of its parents). In the\nexamples below, "the attribute" refers to the attribute whose name is\nthe key of the property in the owner class\' "__dict__".\n\nobject.__get__(self, instance, owner)\n\n Called to get the attribute of the owner class (class attribute\n access) or of an instance of that class (instance attribute\n access). *owner* is always the owner class, while *instance* is the\n instance that the attribute was accessed through, or "None" when\n the attribute is accessed through the *owner*. This method should\n return the (computed) attribute value or raise an "AttributeError"\n exception.\n\nobject.__set__(self, instance, value)\n\n Called to set the attribute on an instance *instance* of the owner\n class to a new value, *value*.\n\nobject.__delete__(self, instance)\n\n Called to delete the attribute on an instance *instance* of the\n owner class.\n\n\nInvoking Descriptors\n--------------------\n\nIn general, a descriptor is an object attribute with "binding\nbehavior", one whose attribute access has been overridden by methods\nin the descriptor protocol: "__get__()", "__set__()", and\n"__delete__()". If any of those methods are defined for an object, it\nis said to be a descriptor.\n\nThe default behavior for attribute access is to get, set, or delete\nthe attribute from an object\'s dictionary. For instance, "a.x" has a\nlookup chain starting with "a.__dict__[\'x\']", then\n"type(a).__dict__[\'x\']", and continuing through the base classes of\n"type(a)" excluding metaclasses.\n\nHowever, if the looked-up value is an object defining one of the\ndescriptor methods, then Python may override the default behavior and\ninvoke the descriptor method instead. Where this occurs in the\nprecedence chain depends on which descriptor methods were defined and\nhow they were called. Note that descriptors are only invoked for new\nstyle objects or classes (ones that subclass "object()" or "type()").\n\nThe starting point for descriptor invocation is a binding, "a.x". How\nthe arguments are assembled depends on "a":\n\nDirect Call\n The simplest and least common call is when user code directly\n invokes a descriptor method: "x.__get__(a)".\n\nInstance Binding\n If binding to a new-style object instance, "a.x" is transformed\n into the call: "type(a).__dict__[\'x\'].__get__(a, type(a))".\n\nClass Binding\n If binding to a new-style class, "A.x" is transformed into the\n call: "A.__dict__[\'x\'].__get__(None, A)".\n\nSuper Binding\n If "a" is an instance of "super", then the binding "super(B,\n obj).m()" searches "obj.__class__.__mro__" for the base class "A"\n immediately preceding "B" and then invokes the descriptor with the\n call: "A.__dict__[\'m\'].__get__(obj, obj.__class__)".\n\nFor instance bindings, the precedence of descriptor invocation depends\non the which descriptor methods are defined. A descriptor can define\nany combination of "__get__()", "__set__()" and "__delete__()". If it\ndoes not define "__get__()", then accessing the attribute will return\nthe descriptor object itself unless there is a value in the object\'s\ninstance dictionary. If the descriptor defines "__set__()" and/or\n"__delete__()", it is a data descriptor; if it defines neither, it is\na non-data descriptor. Normally, data descriptors define both\n"__get__()" and "__set__()", while non-data descriptors have just the\n"__get__()" method. Data descriptors with "__set__()" and "__get__()"\ndefined always override a redefinition in an instance dictionary. In\ncontrast, non-data descriptors can be overridden by instances.\n\nPython methods (including "staticmethod()" and "classmethod()") are\nimplemented as non-data descriptors. Accordingly, instances can\nredefine and override methods. This allows individual instances to\nacquire behaviors that differ from other instances of the same class.\n\nThe "property()" function is implemented as a data descriptor.\nAccordingly, instances cannot override the behavior of a property.\n\n\n__slots__\n---------\n\nBy default, instances of both old and new-style classes have a\ndictionary for attribute storage. This wastes space for objects\nhaving very few instance variables. The space consumption can become\nacute when creating large numbers of instances.\n\nThe default can be overridden by defining *__slots__* in a new-style\nclass definition. The *__slots__* declaration takes a sequence of\ninstance variables and reserves just enough space in each instance to\nhold a value for each variable. Space is saved because *__dict__* is\nnot created for each instance.\n\n__slots__\n\n This class variable can be assigned a string, iterable, or sequence\n of strings with variable names used by instances. If defined in a\n new-style class, *__slots__* reserves space for the declared\n variables and prevents the automatic creation of *__dict__* and\n *__weakref__* for each instance.\n\n New in version 2.2.\n\nNotes on using *__slots__*\n\n* When inheriting from a class without *__slots__*, the *__dict__*\n attribute of that class will always be accessible, so a *__slots__*\n definition in the subclass is meaningless.\n\n* Without a *__dict__* variable, instances cannot be assigned new\n variables not listed in the *__slots__* definition. Attempts to\n assign to an unlisted variable name raises "AttributeError". If\n dynamic assignment of new variables is desired, then add\n "\'__dict__\'" to the sequence of strings in the *__slots__*\n declaration.\n\n Changed in version 2.3: Previously, adding "\'__dict__\'" to the\n *__slots__* declaration would not enable the assignment of new\n attributes not specifically listed in the sequence of instance\n variable names.\n\n* Without a *__weakref__* variable for each instance, classes\n defining *__slots__* do not support weak references to its\n instances. If weak reference support is needed, then add\n "\'__weakref__\'" to the sequence of strings in the *__slots__*\n declaration.\n\n Changed in version 2.3: Previously, adding "\'__weakref__\'" to the\n *__slots__* declaration would not enable support for weak\n references.\n\n* *__slots__* are implemented at the class level by creating\n descriptors (Implementing Descriptors) for each variable name. As a\n result, class attributes cannot be used to set default values for\n instance variables defined by *__slots__*; otherwise, the class\n attribute would overwrite the descriptor assignment.\n\n* The action of a *__slots__* declaration is limited to the class\n where it is defined. As a result, subclasses will have a *__dict__*\n unless they also define *__slots__* (which must only contain names\n of any *additional* slots).\n\n* If a class defines a slot also defined in a base class, the\n instance variable defined by the base class slot is inaccessible\n (except by retrieving its descriptor directly from the base class).\n This renders the meaning of the program undefined. In the future, a\n check may be added to prevent this.\n\n* Nonempty *__slots__* does not work for classes derived from\n "variable-length" built-in types such as "long", "str" and "tuple".\n\n* Any non-string iterable may be assigned to *__slots__*. Mappings\n may also be used; however, in the future, special meaning may be\n assigned to the values corresponding to each key.\n\n* *__class__* assignment works only if both classes have the same\n *__slots__*.\n\n Changed in version 2.6: Previously, *__class__* assignment raised an\n error if either new or old class had *__slots__*.\n\n\nCustomizing class creation\n==========================\n\nBy default, new-style classes are constructed using "type()". A class\ndefinition is read into a separate namespace and the value of class\nname is bound to the result of "type(name, bases, dict)".\n\nWhen the class definition is read, if *__metaclass__* is defined then\nthe callable assigned to it will be called instead of "type()". This\nallows classes or functions to be written which monitor or alter the\nclass creation process:\n\n* Modifying the class dictionary prior to the class being created.\n\n* Returning an instance of another class -- essentially performing\n the role of a factory function.\n\nThese steps will have to be performed in the metaclass\'s "__new__()"\nmethod -- "type.__new__()" can then be called from this method to\ncreate a class with different properties. This example adds a new\nelement to the class dictionary before creating the class:\n\n class metacls(type):\n def __new__(mcs, name, bases, dict):\n dict[\'foo\'] = \'metacls was here\'\n return type.__new__(mcs, name, bases, dict)\n\nYou can of course also override other class methods (or add new\nmethods); for example defining a custom "__call__()" method in the\nmetaclass allows custom behavior when the class is called, e.g. not\nalways creating a new instance.\n\n__metaclass__\n\n This variable can be any callable accepting arguments for "name",\n "bases", and "dict". Upon class creation, the callable is used\n instead of the built-in "type()".\n\n New in version 2.2.\n\nThe appropriate metaclass is determined by the following precedence\nrules:\n\n* If "dict[\'__metaclass__\']" exists, it is used.\n\n* Otherwise, if there is at least one base class, its metaclass is\n used (this looks for a *__class__* attribute first and if not found,\n uses its type).\n\n* Otherwise, if a global variable named __metaclass__ exists, it is\n used.\n\n* Otherwise, the old-style, classic metaclass (types.ClassType) is\n used.\n\nThe potential uses for metaclasses are boundless. Some ideas that have\nbeen explored including logging, interface checking, automatic\ndelegation, automatic property creation, proxies, frameworks, and\nautomatic resource locking/synchronization.\n\n\nCustomizing instance and subclass checks\n========================================\n\nNew in version 2.6.\n\nThe following methods are used to override the default behavior of the\n"isinstance()" and "issubclass()" built-in functions.\n\nIn particular, the metaclass "abc.ABCMeta" implements these methods in\norder to allow the addition of Abstract Base Classes (ABCs) as\n"virtual base classes" to any class or type (including built-in\ntypes), including other ABCs.\n\nclass.__instancecheck__(self, instance)\n\n Return true if *instance* should be considered a (direct or\n indirect) instance of *class*. If defined, called to implement\n "isinstance(instance, class)".\n\nclass.__subclasscheck__(self, subclass)\n\n Return true if *subclass* should be considered a (direct or\n indirect) subclass of *class*. If defined, called to implement\n "issubclass(subclass, class)".\n\nNote that these methods are looked up on the type (metaclass) of a\nclass. They cannot be defined as class methods in the actual class.\nThis is consistent with the lookup of special methods that are called\non instances, only in this case the instance is itself a class.\n\nSee also:\n\n **PEP 3119** - Introducing Abstract Base Classes\n Includes the specification for customizing "isinstance()" and\n "issubclass()" behavior through "__instancecheck__()" and\n "__subclasscheck__()", with motivation for this functionality in\n the context of adding Abstract Base Classes (see the "abc"\n module) to the language.\n\n\nEmulating callable objects\n==========================\n\nobject.__call__(self[, args...])\n\n Called when the instance is "called" as a function; if this method\n is defined, "x(arg1, arg2, ...)" is a shorthand for\n "x.__call__(arg1, arg2, ...)".\n\n\nEmulating container types\n=========================\n\nThe following methods can be defined to implement container objects.\nContainers usually are sequences (such as lists or tuples) or mappings\n(like dictionaries), but can represent other containers as well. The\nfirst set of methods is used either to emulate a sequence or to\nemulate a mapping; the difference is that for a sequence, the\nallowable keys should be the integers *k* for which "0 <= k < N" where\n*N* is the length of the sequence, or slice objects, which define a\nrange of items. (For backwards compatibility, the method\n"__getslice__()" (see below) can also be defined to handle simple, but\nnot extended slices.) It is also recommended that mappings provide the\nmethods "keys()", "values()", "items()", "has_key()", "get()",\n"clear()", "setdefault()", "iterkeys()", "itervalues()",\n"iteritems()", "pop()", "popitem()", "copy()", and "update()" behaving\nsimilar to those for Python\'s standard dictionary objects. The\n"UserDict" module provides a "DictMixin" class to help create those\nmethods from a base set of "__getitem__()", "__setitem__()",\n"__delitem__()", and "keys()". Mutable sequences should provide\nmethods "append()", "count()", "index()", "extend()", "insert()",\n"pop()", "remove()", "reverse()" and "sort()", like Python standard\nlist objects. Finally, sequence types should implement addition\n(meaning concatenation) and multiplication (meaning repetition) by\ndefining the methods "__add__()", "__radd__()", "__iadd__()",\n"__mul__()", "__rmul__()" and "__imul__()" described below; they\nshould not define "__coerce__()" or other numerical operators. It is\nrecommended that both mappings and sequences implement the\n"__contains__()" method to allow efficient use of the "in" operator;\nfor mappings, "in" should be equivalent of "has_key()"; for sequences,\nit should search through the values. It is further recommended that\nboth mappings and sequences implement the "__iter__()" method to allow\nefficient iteration through the container; for mappings, "__iter__()"\nshould be the same as "iterkeys()"; for sequences, it should iterate\nthrough the values.\n\nobject.__len__(self)\n\n Called to implement the built-in function "len()". Should return\n the length of the object, an integer ">=" 0. Also, an object that\n doesn\'t define a "__nonzero__()" method and whose "__len__()"\n method returns zero is considered to be false in a Boolean context.\n\nobject.__getitem__(self, key)\n\n Called to implement evaluation of "self[key]". For sequence types,\n the accepted keys should be integers and slice objects. Note that\n the special interpretation of negative indexes (if the class wishes\n to emulate a sequence type) is up to the "__getitem__()" method. If\n *key* is of an inappropriate type, "TypeError" may be raised; if of\n a value outside the set of indexes for the sequence (after any\n special interpretation of negative values), "IndexError" should be\n raised. For mapping types, if *key* is missing (not in the\n container), "KeyError" should be raised.\n\n Note: "for" loops expect that an "IndexError" will be raised for\n illegal indexes to allow proper detection of the end of the\n sequence.\n\nobject.__missing__(self, key)\n\n Called by "dict"."__getitem__()" to implement "self[key]" for dict\n subclasses when key is not in the dictionary.\n\nobject.__setitem__(self, key, value)\n\n Called to implement assignment to "self[key]". Same note as for\n "__getitem__()". This should only be implemented for mappings if\n the objects support changes to the values for keys, or if new keys\n can be added, or for sequences if elements can be replaced. The\n same exceptions should be raised for improper *key* values as for\n the "__getitem__()" method.\n\nobject.__delitem__(self, key)\n\n Called to implement deletion of "self[key]". Same note as for\n "__getitem__()". This should only be implemented for mappings if\n the objects support removal of keys, or for sequences if elements\n can be removed from the sequence. The same exceptions should be\n raised for improper *key* values as for the "__getitem__()" method.\n\nobject.__iter__(self)\n\n This method is called when an iterator is required for a container.\n This method should return a new iterator object that can iterate\n over all the objects in the container. For mappings, it should\n iterate over the keys of the container, and should also be made\n available as the method "iterkeys()".\n\n Iterator objects also need to implement this method; they are\n required to return themselves. For more information on iterator\n objects, see Iterator Types.\n\nobject.__reversed__(self)\n\n Called (if present) by the "reversed()" built-in to implement\n reverse iteration. It should return a new iterator object that\n iterates over all the objects in the container in reverse order.\n\n If the "__reversed__()" method is not provided, the "reversed()"\n built-in will fall back to using the sequence protocol ("__len__()"\n and "__getitem__()"). Objects that support the sequence protocol\n should only provide "__reversed__()" if they can provide an\n implementation that is more efficient than the one provided by\n "reversed()".\n\n New in version 2.6.\n\nThe membership test operators ("in" and "not in") are normally\nimplemented as an iteration through a sequence. However, container\nobjects can supply the following special method with a more efficient\nimplementation, which also does not require the object be a sequence.\n\nobject.__contains__(self, item)\n\n Called to implement membership test operators. Should return true\n if *item* is in *self*, false otherwise. For mapping objects, this\n should consider the keys of the mapping rather than the values or\n the key-item pairs.\n\n For objects that don\'t define "__contains__()", the membership test\n first tries iteration via "__iter__()", then the old sequence\n iteration protocol via "__getitem__()", see this section in the\n language reference.\n\n\nAdditional methods for emulation of sequence types\n==================================================\n\nThe following optional methods can be defined to further emulate\nsequence objects. Immutable sequences methods should at most only\ndefine "__getslice__()"; mutable sequences might define all three\nmethods.\n\nobject.__getslice__(self, i, j)\n\n Deprecated since version 2.0: Support slice objects as parameters\n to the "__getitem__()" method. (However, built-in types in CPython\n currently still implement "__getslice__()". Therefore, you have to\n override it in derived classes when implementing slicing.)\n\n Called to implement evaluation of "self[i:j]". The returned object\n should be of the same type as *self*. Note that missing *i* or *j*\n in the slice expression are replaced by zero or "sys.maxsize",\n respectively. If negative indexes are used in the slice, the\n length of the sequence is added to that index. If the instance does\n not implement the "__len__()" method, an "AttributeError" is\n raised. No guarantee is made that indexes adjusted this way are not\n still negative. Indexes which are greater than the length of the\n sequence are not modified. If no "__getslice__()" is found, a slice\n object is created instead, and passed to "__getitem__()" instead.\n\nobject.__setslice__(self, i, j, sequence)\n\n Called to implement assignment to "self[i:j]". Same notes for *i*\n and *j* as for "__getslice__()".\n\n This method is deprecated. If no "__setslice__()" is found, or for\n extended slicing of the form "self[i:j:k]", a slice object is\n created, and passed to "__setitem__()", instead of "__setslice__()"\n being called.\n\nobject.__delslice__(self, i, j)\n\n Called to implement deletion of "self[i:j]". Same notes for *i* and\n *j* as for "__getslice__()". This method is deprecated. If no\n "__delslice__()" is found, or for extended slicing of the form\n "self[i:j:k]", a slice object is created, and passed to\n "__delitem__()", instead of "__delslice__()" being called.\n\nNotice that these methods are only invoked when a single slice with a\nsingle colon is used, and the slice method is available. For slice\noperations involving extended slice notation, or in absence of the\nslice methods, "__getitem__()", "__setitem__()" or "__delitem__()" is\ncalled with a slice object as argument.\n\nThe following example demonstrate how to make your program or module\ncompatible with earlier versions of Python (assuming that methods\n"__getitem__()", "__setitem__()" and "__delitem__()" support slice\nobjects as arguments):\n\n class MyClass:\n ...\n def __getitem__(self, index):\n ...\n def __setitem__(self, index, value):\n ...\n def __delitem__(self, index):\n ...\n\n if sys.version_info < (2, 0):\n # They won\'t be defined if version is at least 2.0 final\n\n def __getslice__(self, i, j):\n return self[max(0, i):max(0, j):]\n def __setslice__(self, i, j, seq):\n self[max(0, i):max(0, j):] = seq\n def __delslice__(self, i, j):\n del self[max(0, i):max(0, j):]\n ...\n\nNote the calls to "max()"; these are necessary because of the handling\nof negative indices before the "__*slice__()" methods are called.\nWhen negative indexes are used, the "__*item__()" methods receive them\nas provided, but the "__*slice__()" methods get a "cooked" form of the\nindex values. For each negative index value, the length of the\nsequence is added to the index before calling the method (which may\nstill result in a negative index); this is the customary handling of\nnegative indexes by the built-in sequence types, and the "__*item__()"\nmethods are expected to do this as well. However, since they should\nalready be doing that, negative indexes cannot be passed in; they must\nbe constrained to the bounds of the sequence before being passed to\nthe "__*item__()" methods. Calling "max(0, i)" conveniently returns\nthe proper value.\n\n\nEmulating numeric types\n=======================\n\nThe following methods can be defined to emulate numeric objects.\nMethods corresponding to operations that are not supported by the\nparticular kind of number implemented (e.g., bitwise operations for\nnon-integral numbers) should be left undefined.\n\nobject.__add__(self, other)\nobject.__sub__(self, other)\nobject.__mul__(self, other)\nobject.__floordiv__(self, other)\nobject.__mod__(self, other)\nobject.__divmod__(self, other)\nobject.__pow__(self, other[, modulo])\nobject.__lshift__(self, other)\nobject.__rshift__(self, other)\nobject.__and__(self, other)\nobject.__xor__(self, other)\nobject.__or__(self, other)\n\n These methods are called to implement the binary arithmetic\n operations ("+", "-", "*", "//", "%", "divmod()", "pow()", "**",\n "<<", ">>", "&", "^", "|"). For instance, to evaluate the\n expression "x + y", where *x* is an instance of a class that has an\n "__add__()" method, "x.__add__(y)" is called. The "__divmod__()"\n method should be the equivalent to using "__floordiv__()" and\n "__mod__()"; it should not be related to "__truediv__()" (described\n below). Note that "__pow__()" should be defined to accept an\n optional third argument if the ternary version of the built-in\n "pow()" function is to be supported.\n\n If one of those methods does not support the operation with the\n supplied arguments, it should return "NotImplemented".\n\nobject.__div__(self, other)\nobject.__truediv__(self, other)\n\n The division operator ("/") is implemented by these methods. The\n "__truediv__()" method is used when "__future__.division" is in\n effect, otherwise "__div__()" is used. If only one of these two\n methods is defined, the object will not support division in the\n alternate context; "TypeError" will be raised instead.\n\nobject.__radd__(self, other)\nobject.__rsub__(self, other)\nobject.__rmul__(self, other)\nobject.__rdiv__(self, other)\nobject.__rtruediv__(self, other)\nobject.__rfloordiv__(self, other)\nobject.__rmod__(self, other)\nobject.__rdivmod__(self, other)\nobject.__rpow__(self, other)\nobject.__rlshift__(self, other)\nobject.__rrshift__(self, other)\nobject.__rand__(self, other)\nobject.__rxor__(self, other)\nobject.__ror__(self, other)\n\n These methods are called to implement the binary arithmetic\n operations ("+", "-", "*", "/", "%", "divmod()", "pow()", "**",\n "<<", ">>", "&", "^", "|") with reflected (swapped) operands.\n These functions are only called if the left operand does not\n support the corresponding operation and the operands are of\n different types. [2] For instance, to evaluate the expression "x -\n y", where *y* is an instance of a class that has an "__rsub__()"\n method, "y.__rsub__(x)" is called if "x.__sub__(y)" returns\n *NotImplemented*.\n\n Note that ternary "pow()" will not try calling "__rpow__()" (the\n coercion rules would become too complicated).\n\n Note: If the right operand\'s type is a subclass of the left\n operand\'s type and that subclass provides the reflected method\n for the operation, this method will be called before the left\n operand\'s non-reflected method. This behavior allows subclasses\n to override their ancestors\' operations.\n\nobject.__iadd__(self, other)\nobject.__isub__(self, other)\nobject.__imul__(self, other)\nobject.__idiv__(self, other)\nobject.__itruediv__(self, other)\nobject.__ifloordiv__(self, other)\nobject.__imod__(self, other)\nobject.__ipow__(self, other[, modulo])\nobject.__ilshift__(self, other)\nobject.__irshift__(self, other)\nobject.__iand__(self, other)\nobject.__ixor__(self, other)\nobject.__ior__(self, other)\n\n These methods are called to implement the augmented arithmetic\n assignments ("+=", "-=", "*=", "/=", "//=", "%=", "**=", "<<=",\n ">>=", "&=", "^=", "|="). These methods should attempt to do the\n operation in-place (modifying *self*) and return the result (which\n could be, but does not have to be, *self*). If a specific method\n is not defined, the augmented assignment falls back to the normal\n methods. For instance, to execute the statement "x += y", where\n *x* is an instance of a class that has an "__iadd__()" method,\n "x.__iadd__(y)" is called. If *x* is an instance of a class that\n does not define a "__iadd__()" method, "x.__add__(y)" and\n "y.__radd__(x)" are considered, as with the evaluation of "x + y".\n\nobject.__neg__(self)\nobject.__pos__(self)\nobject.__abs__(self)\nobject.__invert__(self)\n\n Called to implement the unary arithmetic operations ("-", "+",\n "abs()" and "~").\n\nobject.__complex__(self)\nobject.__int__(self)\nobject.__long__(self)\nobject.__float__(self)\n\n Called to implement the built-in functions "complex()", "int()",\n "long()", and "float()". Should return a value of the appropriate\n type.\n\nobject.__oct__(self)\nobject.__hex__(self)\n\n Called to implement the built-in functions "oct()" and "hex()".\n Should return a string value.\n\nobject.__index__(self)\n\n Called to implement "operator.index()". Also called whenever\n Python needs an integer object (such as in slicing). Must return\n an integer (int or long).\n\n New in version 2.5.\n\nobject.__coerce__(self, other)\n\n Called to implement "mixed-mode" numeric arithmetic. Should either\n return a 2-tuple containing *self* and *other* converted to a\n common numeric type, or "None" if conversion is impossible. When\n the common type would be the type of "other", it is sufficient to\n return "None", since the interpreter will also ask the other object\n to attempt a coercion (but sometimes, if the implementation of the\n other type cannot be changed, it is useful to do the conversion to\n the other type here). A return value of "NotImplemented" is\n equivalent to returning "None".\n\n\nCoercion rules\n==============\n\nThis section used to document the rules for coercion. As the language\nhas evolved, the coercion rules have become hard to document\nprecisely; documenting what one version of one particular\nimplementation does is undesirable. Instead, here are some informal\nguidelines regarding coercion. In Python 3, coercion will not be\nsupported.\n\n* If the left operand of a % operator is a string or Unicode object,\n no coercion takes place and the string formatting operation is\n invoked instead.\n\n* It is no longer recommended to define a coercion operation. Mixed-\n mode operations on types that don\'t define coercion pass the\n original arguments to the operation.\n\n* New-style classes (those derived from "object") never invoke the\n "__coerce__()" method in response to a binary operator; the only\n time "__coerce__()" is invoked is when the built-in function\n "coerce()" is called.\n\n* For most intents and purposes, an operator that returns\n "NotImplemented" is treated the same as one that is not implemented\n at all.\n\n* Below, "__op__()" and "__rop__()" are used to signify the generic\n method names corresponding to an operator; "__iop__()" is used for\n the corresponding in-place operator. For example, for the operator\n \'"+"\', "__add__()" and "__radd__()" are used for the left and right\n variant of the binary operator, and "__iadd__()" for the in-place\n variant.\n\n* For objects *x* and *y*, first "x.__op__(y)" is tried. If this is\n not implemented or returns "NotImplemented", "y.__rop__(x)" is\n tried. If this is also not implemented or returns "NotImplemented",\n a "TypeError" exception is raised. But see the following exception:\n\n* Exception to the previous item: if the left operand is an instance\n of a built-in type or a new-style class, and the right operand is an\n instance of a proper subclass of that type or class and overrides\n the base\'s "__rop__()" method, the right operand\'s "__rop__()"\n method is tried *before* the left operand\'s "__op__()" method.\n\n This is done so that a subclass can completely override binary\n operators. Otherwise, the left operand\'s "__op__()" method would\n always accept the right operand: when an instance of a given class\n is expected, an instance of a subclass of that class is always\n acceptable.\n\n* When either operand type defines a coercion, this coercion is\n called before that type\'s "__op__()" or "__rop__()" method is\n called, but no sooner. If the coercion returns an object of a\n different type for the operand whose coercion is invoked, part of\n the process is redone using the new object.\n\n* When an in-place operator (like \'"+="\') is used, if the left\n operand implements "__iop__()", it is invoked without any coercion.\n When the operation falls back to "__op__()" and/or "__rop__()", the\n normal coercion rules apply.\n\n* In "x + y", if *x* is a sequence that implements sequence\n concatenation, sequence concatenation is invoked.\n\n* In "x * y", if one operand is a sequence that implements sequence\n repetition, and the other is an integer ("int" or "long"), sequence\n repetition is invoked.\n\n* Rich comparisons (implemented by methods "__eq__()" and so on)\n never use coercion. Three-way comparison (implemented by\n "__cmp__()") does use coercion under the same conditions as other\n binary operations use it.\n\n* In the current implementation, the built-in numeric types "int",\n "long", "float", and "complex" do not use coercion. All these types\n implement a "__coerce__()" method, for use by the built-in\n "coerce()" function.\n\n Changed in version 2.7: The complex type no longer makes implicit\n calls to the "__coerce__()" method for mixed-type binary arithmetic\n operations.\n\n\nWith Statement Context Managers\n===============================\n\nNew in version 2.5.\n\nA *context manager* is an object that defines the runtime context to\nbe established when executing a "with" statement. The context manager\nhandles the entry into, and the exit from, the desired runtime context\nfor the execution of the block of code. Context managers are normally\ninvoked using the "with" statement (described in section The with\nstatement), but can also be used by directly invoking their methods.\n\nTypical uses of context managers include saving and restoring various\nkinds of global state, locking and unlocking resources, closing opened\nfiles, etc.\n\nFor more information on context managers, see Context Manager Types.\n\nobject.__enter__(self)\n\n Enter the runtime context related to this object. The "with"\n statement will bind this method\'s return value to the target(s)\n specified in the "as" clause of the statement, if any.\n\nobject.__exit__(self, exc_type, exc_value, traceback)\n\n Exit the runtime context related to this object. The parameters\n describe the exception that caused the context to be exited. If the\n context was exited without an exception, all three arguments will\n be "None".\n\n If an exception is supplied, and the method wishes to suppress the\n exception (i.e., prevent it from being propagated), it should\n return a true value. Otherwise, the exception will be processed\n normally upon exit from this method.\n\n Note that "__exit__()" methods should not reraise the passed-in\n exception; this is the caller\'s responsibility.\n\nSee also:\n\n **PEP 343** - The "with" statement\n The specification, background, and examples for the Python "with"\n statement.\n\n\nSpecial method lookup for old-style classes\n===========================================\n\nFor old-style classes, special methods are always looked up in exactly\nthe same way as any other method or attribute. This is the case\nregardless of whether the method is being looked up explicitly as in\n"x.__getitem__(i)" or implicitly as in "x[i]".\n\nThis behaviour means that special methods may exhibit different\nbehaviour for different instances of a single old-style class if the\nappropriate special attributes are set differently:\n\n >>> class C:\n ... pass\n ...\n >>> c1 = C()\n >>> c2 = C()\n >>> c1.__len__ = lambda: 5\n >>> c2.__len__ = lambda: 9\n >>> len(c1)\n 5\n >>> len(c2)\n 9\n\n\nSpecial method lookup for new-style classes\n===========================================\n\nFor new-style classes, implicit invocations of special methods are\nonly guaranteed to work correctly if defined on an object\'s type, not\nin the object\'s instance dictionary. That behaviour is the reason why\nthe following code raises an exception (unlike the equivalent example\nwith old-style classes):\n\n >>> class C(object):\n ... pass\n ...\n >>> c = C()\n >>> c.__len__ = lambda: 5\n >>> len(c)\n Traceback (most recent call last):\n File "", line 1, in \n TypeError: object of type \'C\' has no len()\n\nThe rationale behind this behaviour lies with a number of special\nmethods such as "__hash__()" and "__repr__()" that are implemented by\nall objects, including type objects. If the implicit lookup of these\nmethods used the conventional lookup process, they would fail when\ninvoked on the type object itself:\n\n >>> 1 .__hash__() == hash(1)\n True\n >>> int.__hash__() == hash(int)\n Traceback (most recent call last):\n File "", line 1, in \n TypeError: descriptor \'__hash__\' of \'int\' object needs an argument\n\nIncorrectly attempting to invoke an unbound method of a class in this\nway is sometimes referred to as \'metaclass confusion\', and is avoided\nby bypassing the instance when looking up special methods:\n\n >>> type(1).__hash__(1) == hash(1)\n True\n >>> type(int).__hash__(int) == hash(int)\n True\n\nIn addition to bypassing any instance attributes in the interest of\ncorrectness, implicit special method lookup generally also bypasses\nthe "__getattribute__()" method even of the object\'s metaclass:\n\n >>> class Meta(type):\n ... def __getattribute__(*args):\n ... print "Metaclass getattribute invoked"\n ... return type.__getattribute__(*args)\n ...\n >>> class C(object):\n ... __metaclass__ = Meta\n ... def __len__(self):\n ... return 10\n ... def __getattribute__(*args):\n ... print "Class getattribute invoked"\n ... return object.__getattribute__(*args)\n ...\n >>> c = C()\n >>> c.__len__() # Explicit lookup via instance\n Class getattribute invoked\n 10\n >>> type(c).__len__(c) # Explicit lookup via type\n Metaclass getattribute invoked\n 10\n >>> len(c) # Implicit lookup\n 10\n\nBypassing the "__getattribute__()" machinery in this fashion provides\nsignificant scope for speed optimisations within the interpreter, at\nthe cost of some flexibility in the handling of special methods (the\nspecial method *must* be set on the class object itself in order to be\nconsistently invoked by the interpreter).\n\n-[ Footnotes ]-\n\n[1] It *is* possible in some cases to change an object\'s type,\n under certain controlled conditions. It generally isn\'t a good\n idea though, since it can lead to some very strange behaviour if\n it is handled incorrectly.\n\n[2] For operands of the same type, it is assumed that if the non-\n reflected method (such as "__add__()") fails the operation is not\n supported, which is why the reflected method is not called.\n', + 'string-methods': u'\nString Methods\n**************\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n"bytearray" objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange section. To output formatted strings use\ntemplate strings or the "%" operator described in the String\nFormatting Operations section. Also, see the "re" module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n "\'strict\'", meaning that encoding errors raise "UnicodeError".\n Other possible values are "\'ignore\'", "\'replace\'" and any other\n name registered via "codecs.register_error()", see section Codec\n Base Classes.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n "\'strict\'", meaning that encoding errors raise a "UnicodeError".\n Other possible values are "\'ignore\'", "\'replace\'",\n "\'xmlcharrefreplace\'", "\'backslashreplace\'" and any other name\n registered via "codecs.register_error()", see section Codec Base\n Classes. For a list of possible encodings, see section Standard\n Encodings.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for "\'xmlcharrefreplace\'" and\n "\'backslashreplace\'" and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return "True" if the string ends with the specified *suffix*,\n otherwise return "False". *suffix* can also be a tuple of suffixes\n to look for. With optional *start*, test beginning at that\n position. With optional *end*, stop comparing at that position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab ("\\t"), one or more space characters are inserted in the result\n until the current column is equal to the next tab position. (The\n tab character itself is not copied.) If the character is a newline\n ("\\n") or return ("\\r"), it is copied and the current column is\n reset to zero. Any other character is copied unchanged and the\n current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found within the slice "s[start:end]". Optional arguments *start*\n and *end* are interpreted as in slice notation. Return "-1" if\n *sub* is not found.\n\n Note: The "find()" method should be used only if you need to know\n the position of *sub*. To check if *sub* is a substring or not,\n use the "in" operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces "{}". Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See Format String Syntax for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the "%" formatting described in String\n Formatting Operations in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like "find()", but raise "ValueError" when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to "len(s)".\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or "None", the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within "s[start:end]".\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return "-1" on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like "rfind()" but raises "ValueError" when the substring *sub* is\n not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to "len(s)".\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n "None", any whitespace string is a separator. Except for splitting\n from the right, "rsplit()" behaves like "split()" which is\n described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or "None", the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most "maxsplit+1"\n elements). If *maxsplit* is not specified or "-1", then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n "\'1,,2\'.split(\',\')" returns "[\'1\', \'\', \'2\']"). The *sep* argument\n may consist of multiple characters (for example,\n "\'1<>2<>3\'.split(\'<>\')" returns "[\'1\', \'2\', \'3\']"). Splitting an\n empty string with a specified separator returns "[\'\']".\n\n If *sep* is not specified or is "None", a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a "None" separator returns "[]".\n\n For example, "\' 1 2 3 \'.split()" returns "[\'1\', \'2\', \'3\']", and\n "\' 1 2 3 \'.split(None, 1)" returns "[\'1\', \'2 3 \']".\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n Python recognizes ""\\r"", ""\\n"", and ""\\r\\n"" as line boundaries\n for 8-bit strings.\n\n For example:\n\n >>> \'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()\n [\'ab c\', \'\', \'de fg\', \'kl\']\n >>> \'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines(True)\n [\'ab c\\n\', \'\\n\', \'de fg\\r\', \'kl\\r\\n\']\n\n Unlike "split()" when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line:\n\n >>> "".splitlines()\n []\n >>> "One line\\n".splitlines()\n [\'One line\']\n\n For comparison, "split(\'\\n\')" gives:\n\n >>> \'\'.split(\'\\n\')\n [\'\']\n >>> \'Two lines\\n\'.split(\'\\n\')\n [\'Two lines\', \'\']\n\nunicode.splitlines([keepends])\n\n Return a list of the lines in the string, like "str.splitlines()".\n However, the Unicode method splits on the following line\n boundaries, which are a superset of the *universal newlines*\n recognized for 8-bit strings.\n\n +-------------------------+-------------------------------+\n | Representation | Description |\n +=========================+===============================+\n | "\\n" | Line Feed |\n +-------------------------+-------------------------------+\n | "\\r" | Carriage Return |\n +-------------------------+-------------------------------+\n | "\\r\\n" | Carriage Return + Line Feed |\n +-------------------------+-------------------------------+\n | "\\v" or "\\x0b" | Line Tabulation |\n +-------------------------+-------------------------------+\n | "\\f" or "\\x0c" | Form Feed |\n +-------------------------+-------------------------------+\n | "\\x1c" | File Separator |\n +-------------------------+-------------------------------+\n | "\\x1d" | Group Separator |\n +-------------------------+-------------------------------+\n | "\\x1e" | Record Separator |\n +-------------------------+-------------------------------+\n | "\\x85" | Next Line (C1 Control Code) |\n +-------------------------+-------------------------------+\n | "\\u2028" | Line Separator |\n +-------------------------+-------------------------------+\n | "\\u2029" | Paragraph Separator |\n +-------------------------+-------------------------------+\n\n Changed in version 2.7: "\\v" and "\\f" added to list of line\n boundaries.\n\nstr.startswith(prefix[, start[, end]])\n\n Return "True" if string starts with the *prefix*, otherwise return\n "False". *prefix* can also be a tuple of prefixes to look for.\n With optional *start*, test string beginning at that position.\n With optional *end*, stop comparing string at that position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or "None", the *chars*\n argument defaults to removing whitespace. The *chars* argument is\n not a prefix or suffix; rather, all combinations of its values are\n stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the "maketrans()" helper function in the "string"\n module to create a translation table. For string objects, set the\n *table* argument to "None" for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a "None" *table* argument.\n\n For Unicode objects, the "translate()" method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or "None". Unmapped characters\n are left untouched. Characters mapped to "None" are deleted. Note,\n a more flexible approach is to create a custom character mapping\n codec using the "codecs" module (see "encodings.cp1251" for an\n example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that "str.upper().isupper()" might be\n "False" if "s" contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to "len(s)".\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return "True" if there are only numeric characters in S, "False"\n otherwise. Numeric characters include digit characters, and all\n characters that have the Unicode numeric value property, e.g.\n U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return "True" if there are only decimal characters in S, "False"\n otherwise. Decimal characters include digit characters, and all\n characters that can be used to form decimal-radix numbers, e.g.\n U+0660, ARABIC-INDIC DIGIT ZERO.\n', + 'strings': u'\nString literals\n***************\n\nString literals are described by the following lexical definitions:\n\n stringliteral ::= [stringprefix](shortstring | longstring)\n stringprefix ::= "r" | "u" | "ur" | "R" | "U" | "UR" | "Ur" | "uR"\n | "b" | "B" | "br" | "Br" | "bR" | "BR"\n shortstring ::= "\'" shortstringitem* "\'" | \'"\' shortstringitem* \'"\'\n longstring ::= "\'\'\'" longstringitem* "\'\'\'"\n | \'"""\' longstringitem* \'"""\'\n shortstringitem ::= shortstringchar | escapeseq\n longstringitem ::= longstringchar | escapeseq\n shortstringchar ::= \n longstringchar ::= \n escapeseq ::= "\\" \n\nOne syntactic restriction not indicated by these productions is that\nwhitespace is not allowed between the "stringprefix" and the rest of\nthe string literal. The source character set is defined by the\nencoding declaration; it is ASCII if no encoding declaration is given\nin the source file; see section Encoding declarations.\n\nIn plain English: String literals can be enclosed in matching single\nquotes ("\'") or double quotes ("""). They can also be enclosed in\nmatching groups of three single or double quotes (these are generally\nreferred to as *triple-quoted strings*). The backslash ("\\")\ncharacter is used to escape characters that otherwise have a special\nmeaning, such as newline, backslash itself, or the quote character.\nString literals may optionally be prefixed with a letter "\'r\'" or\n"\'R\'"; such strings are called *raw strings* and use different rules\nfor interpreting backslash escape sequences. A prefix of "\'u\'" or\n"\'U\'" makes the string a Unicode string. Unicode strings use the\nUnicode character set as defined by the Unicode Consortium and ISO\n10646. Some additional escape sequences, described below, are\navailable in Unicode strings. A prefix of "\'b\'" or "\'B\'" is ignored in\nPython 2; it indicates that the literal should become a bytes literal\nin Python 3 (e.g. when code is automatically converted with 2to3). A\n"\'u\'" or "\'b\'" prefix may be followed by an "\'r\'" prefix.\n\nIn triple-quoted strings, unescaped newlines and quotes are allowed\n(and are retained), except that three unescaped quotes in a row\nterminate the string. (A "quote" is the character used to open the\nstring, i.e. either "\'" or """.)\n\nUnless an "\'r\'" or "\'R\'" prefix is present, escape sequences in\nstrings are interpreted according to rules similar to those used by\nStandard C. The recognized escape sequences are:\n\n+-------------------+-----------------------------------+---------+\n| Escape Sequence | Meaning | Notes |\n+===================+===================================+=========+\n| "\\newline" | Ignored | |\n+-------------------+-----------------------------------+---------+\n| "\\\\" | Backslash ("\\") | |\n+-------------------+-----------------------------------+---------+\n| "\\\'" | Single quote ("\'") | |\n+-------------------+-----------------------------------+---------+\n| "\\"" | Double quote (""") | |\n+-------------------+-----------------------------------+---------+\n| "\\a" | ASCII Bell (BEL) | |\n+-------------------+-----------------------------------+---------+\n| "\\b" | ASCII Backspace (BS) | |\n+-------------------+-----------------------------------+---------+\n| "\\f" | ASCII Formfeed (FF) | |\n+-------------------+-----------------------------------+---------+\n| "\\n" | ASCII Linefeed (LF) | |\n+-------------------+-----------------------------------+---------+\n| "\\N{name}" | Character named *name* in the | |\n| | Unicode database (Unicode only) | |\n+-------------------+-----------------------------------+---------+\n| "\\r" | ASCII Carriage Return (CR) | |\n+-------------------+-----------------------------------+---------+\n| "\\t" | ASCII Horizontal Tab (TAB) | |\n+-------------------+-----------------------------------+---------+\n| "\\uxxxx" | Character with 16-bit hex value | (1) |\n| | *xxxx* (Unicode only) | |\n+-------------------+-----------------------------------+---------+\n| "\\Uxxxxxxxx" | Character with 32-bit hex value | (2) |\n| | *xxxxxxxx* (Unicode only) | |\n+-------------------+-----------------------------------+---------+\n| "\\v" | ASCII Vertical Tab (VT) | |\n+-------------------+-----------------------------------+---------+\n| "\\ooo" | Character with octal value *ooo* | (3,5) |\n+-------------------+-----------------------------------+---------+\n| "\\xhh" | Character with hex value *hh* | (4,5) |\n+-------------------+-----------------------------------+---------+\n\nNotes:\n\n1. Individual code units which form parts of a surrogate pair can\n be encoded using this escape sequence.\n\n2. Any Unicode character can be encoded this way, but characters\n outside the Basic Multilingual Plane (BMP) will be encoded using a\n surrogate pair if Python is compiled to use 16-bit code units (the\n default).\n\n3. As in Standard C, up to three octal digits are accepted.\n\n4. Unlike in Standard C, exactly two hex digits are required.\n\n5. In a string literal, hexadecimal and octal escapes denote the\n byte with the given value; it is not necessary that the byte\n encodes a character in the source character set. In a Unicode\n literal, these escapes denote a Unicode character with the given\n value.\n\nUnlike Standard C, all unrecognized escape sequences are left in the\nstring unchanged, i.e., *the backslash is left in the string*. (This\nbehavior is useful when debugging: if an escape sequence is mistyped,\nthe resulting output is more easily recognized as broken.) It is also\nimportant to note that the escape sequences marked as "(Unicode only)"\nin the table above fall into the category of unrecognized escapes for\nnon-Unicode string literals.\n\nWhen an "\'r\'" or "\'R\'" prefix is present, a character following a\nbackslash is included in the string without change, and *all\nbackslashes are left in the string*. For example, the string literal\n"r"\\n"" consists of two characters: a backslash and a lowercase "\'n\'".\nString quotes can be escaped with a backslash, but the backslash\nremains in the string; for example, "r"\\""" is a valid string literal\nconsisting of two characters: a backslash and a double quote; "r"\\""\nis not a valid string literal (even a raw string cannot end in an odd\nnumber of backslashes). Specifically, *a raw string cannot end in a\nsingle backslash* (since the backslash would escape the following\nquote character). Note also that a single backslash followed by a\nnewline is interpreted as those two characters as part of the string,\n*not* as a line continuation.\n\nWhen an "\'r\'" or "\'R\'" prefix is used in conjunction with a "\'u\'" or\n"\'U\'" prefix, then the "\\uXXXX" and "\\UXXXXXXXX" escape sequences are\nprocessed while *all other backslashes are left in the string*. For\nexample, the string literal "ur"\\u0062\\n"" consists of three Unicode\ncharacters: \'LATIN SMALL LETTER B\', \'REVERSE SOLIDUS\', and \'LATIN\nSMALL LETTER N\'. Backslashes can be escaped with a preceding\nbackslash; however, both remain in the string. As a result, "\\uXXXX"\nescape sequences are only recognized when there are an odd number of\nbackslashes.\n', + 'subscriptions': u'\nSubscriptions\n*************\n\nA subscription selects an item of a sequence (string, tuple or list)\nor mapping (dictionary) object:\n\n subscription ::= primary "[" expression_list "]"\n\nThe primary must evaluate to an object of a sequence or mapping type.\n\nIf the primary is a mapping, the expression list must evaluate to an\nobject whose value is one of the keys of the mapping, and the\nsubscription selects the value in the mapping that corresponds to that\nkey. (The expression list is a tuple except if it has exactly one\nitem.)\n\nIf the primary is a sequence, the expression (list) must evaluate to a\nplain integer. If this value is negative, the length of the sequence\nis added to it (so that, e.g., "x[-1]" selects the last item of "x".)\nThe resulting value must be a nonnegative integer less than the number\nof items in the sequence, and the subscription selects the item whose\nindex is that value (counting from zero).\n\nA string\'s items are characters. A character is not a separate data\ntype but a string of exactly one character.\n', + 'truth': u'\nTruth Value Testing\n*******************\n\nAny object can be tested for truth value, for use in an "if" or\n"while" condition or as operand of the Boolean operations below. The\nfollowing values are considered false:\n\n* "None"\n\n* "False"\n\n* zero of any numeric type, for example, "0", "0L", "0.0", "0j".\n\n* any empty sequence, for example, "\'\'", "()", "[]".\n\n* any empty mapping, for example, "{}".\n\n* instances of user-defined classes, if the class defines a\n "__nonzero__()" or "__len__()" method, when that method returns the\n integer zero or "bool" value "False". [1]\n\nAll other values are considered true --- so objects of many types are\nalways true.\n\nOperations and built-in functions that have a Boolean result always\nreturn "0" or "False" for false and "1" or "True" for true, unless\notherwise stated. (Important exception: the Boolean operations "or"\nand "and" always return one of their operands.)\n', + 'try': u'\nThe "try" statement\n*******************\n\nThe "try" statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") identifier]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n"try"..."except"..."finally" did not work. "try"..."except" had to be\nnested in "try"..."finally".\n\nThe "except" clause(s) specify one or more exception handlers. When no\nexception occurs in the "try" clause, no exception handler is\nexecuted. When an exception occurs in the "try" suite, a search for an\nexception handler is started. This search inspects the except clauses\nin turn until one is found that matches the exception. An expression-\nless except clause, if present, must be last; it matches any\nexception. For an except clause with an expression, that expression\nis evaluated, and the clause matches the exception if the resulting\nobject is "compatible" with the exception. An object is compatible\nwith an exception if it is the class or a base class of the exception\nobject, or a tuple containing an item compatible with the exception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire "try" statement raised\nthe exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the "sys" module:\n"sys.exc_type" receives the object identifying the exception;\n"sys.exc_value" receives the exception\'s parameter;\n"sys.exc_traceback" receives a traceback object (see section The\nstandard type hierarchy) identifying the point in the program where\nthe exception occurred. These details are also available through the\n"sys.exc_info()" function, which returns a tuple "(exc_type,\nexc_value, exc_traceback)". Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional "else" clause is executed if and when control flows off\nthe end of the "try" clause. [2] Exceptions in the "else" clause are\nnot handled by the preceding "except" clauses.\n\nIf "finally" is present, it specifies a \'cleanup\' handler. The "try"\nclause is executed, including any "except" and "else" clauses. If an\nexception occurs in any of the clauses and is not handled, the\nexception is temporarily saved. The "finally" clause is executed. If\nthere is a saved exception, it is re-raised at the end of the\n"finally" clause. If the "finally" clause raises another exception or\nexecutes a "return" or "break" statement, the saved exception is\ndiscarded:\n\n >>> def f():\n ... try:\n ... 1/0\n ... finally:\n ... return 42\n ...\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the "finally" clause.\n\nWhen a "return", "break" or "continue" statement is executed in the\n"try" suite of a "try"..."finally" statement, the "finally" clause is\nalso executed \'on the way out.\' A "continue" statement is illegal in\nthe "finally" clause. (The reason is a problem with the current\nimplementation --- this restriction may be lifted in the future).\n\nThe return value of a function is determined by the last "return"\nstatement executed. Since the "finally" clause always executes, a\n"return" statement executed in the "finally" clause will always be the\nlast one executed:\n\n >>> def foo():\n ... try:\n ... return \'try\'\n ... finally:\n ... return \'finally\'\n ...\n >>> foo()\n \'finally\'\n\nAdditional information on exceptions can be found in section\nExceptions, and information on using the "raise" statement to generate\nexceptions may be found in section The raise statement.\n', + 'types': u'\nThe standard type hierarchy\n***************************\n\nBelow is a list of the types that are built into Python. Extension\nmodules (written in C, Java, or other languages, depending on the\nimplementation) can define additional types. Future versions of\nPython may add types to the type hierarchy (e.g., rational numbers,\nefficiently stored arrays of integers, etc.).\n\nSome of the type descriptions below contain a paragraph listing\n\'special attributes.\' These are attributes that provide access to the\nimplementation and are not intended for general use. Their definition\nmay change in the future.\n\nNone\n This type has a single value. There is a single object with this\n value. This object is accessed through the built-in name "None". It\n is used to signify the absence of a value in many situations, e.g.,\n it is returned from functions that don\'t explicitly return\n anything. Its truth value is false.\n\nNotImplemented\n This type has a single value. There is a single object with this\n value. This object is accessed through the built-in name\n "NotImplemented". Numeric methods and rich comparison methods may\n return this value if they do not implement the operation for the\n operands provided. (The interpreter will then try the reflected\n operation, or some other fallback, depending on the operator.) Its\n truth value is true.\n\nEllipsis\n This type has a single value. There is a single object with this\n value. This object is accessed through the built-in name\n "Ellipsis". It is used to indicate the presence of the "..." syntax\n in a slice. Its truth value is true.\n\n"numbers.Number"\n These are created by numeric literals and returned as results by\n arithmetic operators and arithmetic built-in functions. Numeric\n objects are immutable; once created their value never changes.\n Python numbers are of course strongly related to mathematical\n numbers, but subject to the limitations of numerical representation\n in computers.\n\n Python distinguishes between integers, floating point numbers, and\n complex numbers:\n\n "numbers.Integral"\n These represent elements from the mathematical set of integers\n (positive and negative).\n\n There are three types of integers:\n\n Plain integers\n These represent numbers in the range -2147483648 through\n 2147483647. (The range may be larger on machines with a\n larger natural word size, but not smaller.) When the result\n of an operation would fall outside this range, the result is\n normally returned as a long integer (in some cases, the\n exception "OverflowError" is raised instead). For the\n purpose of shift and mask operations, integers are assumed to\n have a binary, 2\'s complement notation using 32 or more bits,\n and hiding no bits from the user (i.e., all 4294967296\n different bit patterns correspond to different values).\n\n Long integers\n These represent numbers in an unlimited range, subject to\n available (virtual) memory only. For the purpose of shift\n and mask operations, a binary representation is assumed, and\n negative numbers are represented in a variant of 2\'s\n complement which gives the illusion of an infinite string of\n sign bits extending to the left.\n\n Booleans\n These represent the truth values False and True. The two\n objects representing the values "False" and "True" are the\n only Boolean objects. The Boolean type is a subtype of plain\n integers, and Boolean values behave like the values 0 and 1,\n respectively, in almost all contexts, the exception being\n that when converted to a string, the strings ""False"" or\n ""True"" are returned, respectively.\n\n The rules for integer representation are intended to give the\n most meaningful interpretation of shift and mask operations\n involving negative integers and the least surprises when\n switching between the plain and long integer domains. Any\n operation, if it yields a result in the plain integer domain,\n will yield the same result in the long integer domain or when\n using mixed operands. The switch between domains is transparent\n to the programmer.\n\n "numbers.Real" ("float")\n These represent machine-level double precision floating point\n numbers. You are at the mercy of the underlying machine\n architecture (and C or Java implementation) for the accepted\n range and handling of overflow. Python does not support single-\n precision floating point numbers; the savings in processor and\n memory usage that are usually the reason for using these are\n dwarfed by the overhead of using objects in Python, so there is\n no reason to complicate the language with two kinds of floating\n point numbers.\n\n "numbers.Complex"\n These represent complex numbers as a pair of machine-level\n double precision floating point numbers. The same caveats apply\n as for floating point numbers. The real and imaginary parts of a\n complex number "z" can be retrieved through the read-only\n attributes "z.real" and "z.imag".\n\nSequences\n These represent finite ordered sets indexed by non-negative\n numbers. The built-in function "len()" returns the number of items\n of a sequence. When the length of a sequence is *n*, the index set\n contains the numbers 0, 1, ..., *n*-1. Item *i* of sequence *a* is\n selected by "a[i]".\n\n Sequences also support slicing: "a[i:j]" selects all items with\n index *k* such that *i* "<=" *k* "<" *j*. When used as an\n expression, a slice is a sequence of the same type. This implies\n that the index set is renumbered so that it starts at 0.\n\n Some sequences also support "extended slicing" with a third "step"\n parameter: "a[i:j:k]" selects all items of *a* with index *x* where\n "x = i + n*k", *n* ">=" "0" and *i* "<=" *x* "<" *j*.\n\n Sequences are distinguished according to their mutability:\n\n Immutable sequences\n An object of an immutable sequence type cannot change once it is\n created. (If the object contains references to other objects,\n these other objects may be mutable and may be changed; however,\n the collection of objects directly referenced by an immutable\n object cannot change.)\n\n The following types are immutable sequences:\n\n Strings\n The items of a string are characters. There is no separate\n character type; a character is represented by a string of one\n item. Characters represent (at least) 8-bit bytes. The\n built-in functions "chr()" and "ord()" convert between\n characters and nonnegative integers representing the byte\n values. Bytes with the values 0--127 usually represent the\n corresponding ASCII values, but the interpretation of values\n is up to the program. The string data type is also used to\n represent arrays of bytes, e.g., to hold data read from a\n file.\n\n (On systems whose native character set is not ASCII, strings\n may use EBCDIC in their internal representation, provided the\n functions "chr()" and "ord()" implement a mapping between\n ASCII and EBCDIC, and string comparison preserves the ASCII\n order. Or perhaps someone can propose a better rule?)\n\n Unicode\n The items of a Unicode object are Unicode code units. A\n Unicode code unit is represented by a Unicode object of one\n item and can hold either a 16-bit or 32-bit value\n representing a Unicode ordinal (the maximum value for the\n ordinal is given in "sys.maxunicode", and depends on how\n Python is configured at compile time). Surrogate pairs may\n be present in the Unicode object, and will be reported as two\n separate items. The built-in functions "unichr()" and\n "ord()" convert between code units and nonnegative integers\n representing the Unicode ordinals as defined in the Unicode\n Standard 3.0. Conversion from and to other encodings are\n possible through the Unicode method "encode()" and the built-\n in function "unicode()".\n\n Tuples\n The items of a tuple are arbitrary Python objects. Tuples of\n two or more items are formed by comma-separated lists of\n expressions. A tuple of one item (a \'singleton\') can be\n formed by affixing a comma to an expression (an expression by\n itself does not create a tuple, since parentheses must be\n usable for grouping of expressions). An empty tuple can be\n formed by an empty pair of parentheses.\n\n Mutable sequences\n Mutable sequences can be changed after they are created. The\n subscription and slicing notations can be used as the target of\n assignment and "del" (delete) statements.\n\n There are currently two intrinsic mutable sequence types:\n\n Lists\n The items of a list are arbitrary Python objects. Lists are\n formed by placing a comma-separated list of expressions in\n square brackets. (Note that there are no special cases needed\n to form lists of length 0 or 1.)\n\n Byte Arrays\n A bytearray object is a mutable array. They are created by\n the built-in "bytearray()" constructor. Aside from being\n mutable (and hence unhashable), byte arrays otherwise provide\n the same interface and functionality as immutable bytes\n objects.\n\n The extension module "array" provides an additional example of a\n mutable sequence type.\n\nSet types\n These represent unordered, finite sets of unique, immutable\n objects. As such, they cannot be indexed by any subscript. However,\n they can be iterated over, and the built-in function "len()"\n returns the number of items in a set. Common uses for sets are fast\n membership testing, removing duplicates from a sequence, and\n computing mathematical operations such as intersection, union,\n difference, and symmetric difference.\n\n For set elements, the same immutability rules apply as for\n dictionary keys. Note that numeric types obey the normal rules for\n numeric comparison: if two numbers compare equal (e.g., "1" and\n "1.0"), only one of them can be contained in a set.\n\n There are currently two intrinsic set types:\n\n Sets\n These represent a mutable set. They are created by the built-in\n "set()" constructor and can be modified afterwards by several\n methods, such as "add()".\n\n Frozen sets\n These represent an immutable set. They are created by the\n built-in "frozenset()" constructor. As a frozenset is immutable\n and *hashable*, it can be used again as an element of another\n set, or as a dictionary key.\n\nMappings\n These represent finite sets of objects indexed by arbitrary index\n sets. The subscript notation "a[k]" selects the item indexed by "k"\n from the mapping "a"; this can be used in expressions and as the\n target of assignments or "del" statements. The built-in function\n "len()" returns the number of items in a mapping.\n\n There is currently a single intrinsic mapping type:\n\n Dictionaries\n These represent finite sets of objects indexed by nearly\n arbitrary values. The only types of values not acceptable as\n keys are values containing lists or dictionaries or other\n mutable types that are compared by value rather than by object\n identity, the reason being that the efficient implementation of\n dictionaries requires a key\'s hash value to remain constant.\n Numeric types used for keys obey the normal rules for numeric\n comparison: if two numbers compare equal (e.g., "1" and "1.0")\n then they can be used interchangeably to index the same\n dictionary entry.\n\n Dictionaries are mutable; they can be created by the "{...}"\n notation (see section Dictionary displays).\n\n The extension modules "dbm", "gdbm", and "bsddb" provide\n additional examples of mapping types.\n\nCallable types\n These are the types to which the function call operation (see\n section Calls) can be applied:\n\n User-defined functions\n A user-defined function object is created by a function\n definition (see section Function definitions). It should be\n called with an argument list containing the same number of items\n as the function\'s formal parameter list.\n\n Special attributes:\n\n +-------------------------+---------------------------------+-------------+\n | Attribute | Meaning | |\n +=========================+=================================+=============+\n | "__doc__" "func_doc" | The function\'s documentation | Writable |\n | | string, or "None" if | |\n | | unavailable. | |\n +-------------------------+---------------------------------+-------------+\n | "__name__" "func_name" | The function\'s name | Writable |\n +-------------------------+---------------------------------+-------------+\n | "__module__" | The name of the module the | Writable |\n | | function was defined in, or | |\n | | "None" if unavailable. | |\n +-------------------------+---------------------------------+-------------+\n | "__defaults__" | A tuple containing default | Writable |\n | "func_defaults" | argument values for those | |\n | | arguments that have defaults, | |\n | | or "None" if no arguments have | |\n | | a default value. | |\n +-------------------------+---------------------------------+-------------+\n | "__code__" "func_code" | The code object representing | Writable |\n | | the compiled function body. | |\n +-------------------------+---------------------------------+-------------+\n | "__globals__" | A reference to the dictionary | Read-only |\n | "func_globals" | that holds the function\'s | |\n | | global variables --- the global | |\n | | namespace of the module in | |\n | | which the function was defined. | |\n +-------------------------+---------------------------------+-------------+\n | "__dict__" "func_dict" | The namespace supporting | Writable |\n | | arbitrary function attributes. | |\n +-------------------------+---------------------------------+-------------+\n | "__closure__" | "None" or a tuple of cells that | Read-only |\n | "func_closure" | contain bindings for the | |\n | | function\'s free variables. | |\n +-------------------------+---------------------------------+-------------+\n\n Most of the attributes labelled "Writable" check the type of the\n assigned value.\n\n Changed in version 2.4: "func_name" is now writable.\n\n Changed in version 2.6: The double-underscore attributes\n "__closure__", "__code__", "__defaults__", and "__globals__"\n were introduced as aliases for the corresponding "func_*"\n attributes for forwards compatibility with Python 3.\n\n Function objects also support getting and setting arbitrary\n attributes, which can be used, for example, to attach metadata\n to functions. Regular attribute dot-notation is used to get and\n set such attributes. *Note that the current implementation only\n supports function attributes on user-defined functions. Function\n attributes on built-in functions may be supported in the\n future.*\n\n Additional information about a function\'s definition can be\n retrieved from its code object; see the description of internal\n types below.\n\n User-defined methods\n A user-defined method object combines a class, a class instance\n (or "None") and any callable object (normally a user-defined\n function).\n\n Special read-only attributes: "im_self" is the class instance\n object, "im_func" is the function object; "im_class" is the\n class of "im_self" for bound methods or the class that asked for\n the method for unbound methods; "__doc__" is the method\'s\n documentation (same as "im_func.__doc__"); "__name__" is the\n method name (same as "im_func.__name__"); "__module__" is the\n name of the module the method was defined in, or "None" if\n unavailable.\n\n Changed in version 2.2: "im_self" used to refer to the class\n that defined the method.\n\n Changed in version 2.6: For Python 3 forward-compatibility,\n "im_func" is also available as "__func__", and "im_self" as\n "__self__".\n\n Methods also support accessing (but not setting) the arbitrary\n function attributes on the underlying function object.\n\n User-defined method objects may be created when getting an\n attribute of a class (perhaps via an instance of that class), if\n that attribute is a user-defined function object, an unbound\n user-defined method object, or a class method object. When the\n attribute is a user-defined method object, a new method object\n is only created if the class from which it is being retrieved is\n the same as, or a derived class of, the class stored in the\n original method object; otherwise, the original method object is\n used as it is.\n\n When a user-defined method object is created by retrieving a\n user-defined function object from a class, its "im_self"\n attribute is "None" and the method object is said to be unbound.\n When one is created by retrieving a user-defined function object\n from a class via one of its instances, its "im_self" attribute\n is the instance, and the method object is said to be bound. In\n either case, the new method\'s "im_class" attribute is the class\n from which the retrieval takes place, and its "im_func"\n attribute is the original function object.\n\n When a user-defined method object is created by retrieving\n another method object from a class or instance, the behaviour is\n the same as for a function object, except that the "im_func"\n attribute of the new instance is not the original method object\n but its "im_func" attribute.\n\n When a user-defined method object is created by retrieving a\n class method object from a class or instance, its "im_self"\n attribute is the class itself, and its "im_func" attribute is\n the function object underlying the class method.\n\n When an unbound user-defined method object is called, the\n underlying function ("im_func") is called, with the restriction\n that the first argument must be an instance of the proper class\n ("im_class") or of a derived class thereof.\n\n When a bound user-defined method object is called, the\n underlying function ("im_func") is called, inserting the class\n instance ("im_self") in front of the argument list. For\n instance, when "C" is a class which contains a definition for a\n function "f()", and "x" is an instance of "C", calling "x.f(1)"\n is equivalent to calling "C.f(x, 1)".\n\n When a user-defined method object is derived from a class method\n object, the "class instance" stored in "im_self" will actually\n be the class itself, so that calling either "x.f(1)" or "C.f(1)"\n is equivalent to calling "f(C,1)" where "f" is the underlying\n function.\n\n Note that the transformation from function object to (unbound or\n bound) method object happens each time the attribute is\n retrieved from the class or instance. In some cases, a fruitful\n optimization is to assign the attribute to a local variable and\n call that local variable. Also notice that this transformation\n only happens for user-defined functions; other callable objects\n (and all non-callable objects) are retrieved without\n transformation. It is also important to note that user-defined\n functions which are attributes of a class instance are not\n converted to bound methods; this *only* happens when the\n function is an attribute of the class.\n\n Generator functions\n A function or method which uses the "yield" statement (see\n section The yield statement) is called a *generator function*.\n Such a function, when called, always returns an iterator object\n which can be used to execute the body of the function: calling\n the iterator\'s "next()" method will cause the function to\n execute until it provides a value using the "yield" statement.\n When the function executes a "return" statement or falls off the\n end, a "StopIteration" exception is raised and the iterator will\n have reached the end of the set of values to be returned.\n\n Built-in functions\n A built-in function object is a wrapper around a C function.\n Examples of built-in functions are "len()" and "math.sin()"\n ("math" is a standard built-in module). The number and type of\n the arguments are determined by the C function. Special read-\n only attributes: "__doc__" is the function\'s documentation\n string, or "None" if unavailable; "__name__" is the function\'s\n name; "__self__" is set to "None" (but see the next item);\n "__module__" is the name of the module the function was defined\n in or "None" if unavailable.\n\n Built-in methods\n This is really a different disguise of a built-in function, this\n time containing an object passed to the C function as an\n implicit extra argument. An example of a built-in method is\n "alist.append()", assuming *alist* is a list object. In this\n case, the special read-only attribute "__self__" is set to the\n object denoted by *alist*.\n\n Class Types\n Class types, or "new-style classes," are callable. These\n objects normally act as factories for new instances of\n themselves, but variations are possible for class types that\n override "__new__()". The arguments of the call are passed to\n "__new__()" and, in the typical case, to "__init__()" to\n initialize the new instance.\n\n Classic Classes\n Class objects are described below. When a class object is\n called, a new class instance (also described below) is created\n and returned. This implies a call to the class\'s "__init__()"\n method if it has one. Any arguments are passed on to the\n "__init__()" method. If there is no "__init__()" method, the\n class must be called without arguments.\n\n Class instances\n Class instances are described below. Class instances are\n callable only when the class has a "__call__()" method;\n "x(arguments)" is a shorthand for "x.__call__(arguments)".\n\nModules\n Modules are imported by the "import" statement (see section The\n import statement). A module object has a namespace implemented by a\n dictionary object (this is the dictionary referenced by the\n func_globals attribute of functions defined in the module).\n Attribute references are translated to lookups in this dictionary,\n e.g., "m.x" is equivalent to "m.__dict__["x"]". A module object\n does not contain the code object used to initialize the module\n (since it isn\'t needed once the initialization is done).\n\n Attribute assignment updates the module\'s namespace dictionary,\n e.g., "m.x = 1" is equivalent to "m.__dict__["x"] = 1".\n\n Special read-only attribute: "__dict__" is the module\'s namespace\n as a dictionary object.\n\n **CPython implementation detail:** Because of the way CPython\n clears module dictionaries, the module dictionary will be cleared\n when the module falls out of scope even if the dictionary still has\n live references. To avoid this, copy the dictionary or keep the\n module around while using its dictionary directly.\n\n Predefined (writable) attributes: "__name__" is the module\'s name;\n "__doc__" is the module\'s documentation string, or "None" if\n unavailable; "__file__" is the pathname of the file from which the\n module was loaded, if it was loaded from a file. The "__file__"\n attribute is not present for C modules that are statically linked\n into the interpreter; for extension modules loaded dynamically from\n a shared library, it is the pathname of the shared library file.\n\nClasses\n Both class types (new-style classes) and class objects (old-\n style/classic classes) are typically created by class definitions\n (see section Class definitions). A class has a namespace\n implemented by a dictionary object. Class attribute references are\n translated to lookups in this dictionary, e.g., "C.x" is translated\n to "C.__dict__["x"]" (although for new-style classes in particular\n there are a number of hooks which allow for other means of locating\n attributes). When the attribute name is not found there, the\n attribute search continues in the base classes. For old-style\n classes, the search is depth-first, left-to-right in the order of\n occurrence in the base class list. New-style classes use the more\n complex C3 method resolution order which behaves correctly even in\n the presence of \'diamond\' inheritance structures where there are\n multiple inheritance paths leading back to a common ancestor.\n Additional details on the C3 MRO used by new-style classes can be\n found in the documentation accompanying the 2.3 release at\n https://www.python.org/download/releases/2.3/mro/.\n\n When a class attribute reference (for class "C", say) would yield a\n user-defined function object or an unbound user-defined method\n object whose associated class is either "C" or one of its base\n classes, it is transformed into an unbound user-defined method\n object whose "im_class" attribute is "C". When it would yield a\n class method object, it is transformed into a bound user-defined\n method object whose "im_self" attribute is "C". When it would\n yield a static method object, it is transformed into the object\n wrapped by the static method object. See section Implementing\n Descriptors for another way in which attributes retrieved from a\n class may differ from those actually contained in its "__dict__"\n (note that only new-style classes support descriptors).\n\n Class attribute assignments update the class\'s dictionary, never\n the dictionary of a base class.\n\n A class object can be called (see above) to yield a class instance\n (see below).\n\n Special attributes: "__name__" is the class name; "__module__" is\n the module name in which the class was defined; "__dict__" is the\n dictionary containing the class\'s namespace; "__bases__" is a tuple\n (possibly empty or a singleton) containing the base classes, in the\n order of their occurrence in the base class list; "__doc__" is the\n class\'s documentation string, or "None" if undefined.\n\nClass instances\n A class instance is created by calling a class object (see above).\n A class instance has a namespace implemented as a dictionary which\n is the first place in which attribute references are searched.\n When an attribute is not found there, and the instance\'s class has\n an attribute by that name, the search continues with the class\n attributes. If a class attribute is found that is a user-defined\n function object or an unbound user-defined method object whose\n associated class is the class (call it "C") of the instance for\n which the attribute reference was initiated or one of its bases, it\n is transformed into a bound user-defined method object whose\n "im_class" attribute is "C" and whose "im_self" attribute is the\n instance. Static method and class method objects are also\n transformed, as if they had been retrieved from class "C"; see\n above under "Classes". See section Implementing Descriptors for\n another way in which attributes of a class retrieved via its\n instances may differ from the objects actually stored in the\n class\'s "__dict__". If no class attribute is found, and the\n object\'s class has a "__getattr__()" method, that is called to\n satisfy the lookup.\n\n Attribute assignments and deletions update the instance\'s\n dictionary, never a class\'s dictionary. If the class has a\n "__setattr__()" or "__delattr__()" method, this is called instead\n of updating the instance dictionary directly.\n\n Class instances can pretend to be numbers, sequences, or mappings\n if they have methods with certain special names. See section\n Special method names.\n\n Special attributes: "__dict__" is the attribute dictionary;\n "__class__" is the instance\'s class.\n\nFiles\n A file object represents an open file. File objects are created by\n the "open()" built-in function, and also by "os.popen()",\n "os.fdopen()", and the "makefile()" method of socket objects (and\n perhaps by other functions or methods provided by extension\n modules). The objects "sys.stdin", "sys.stdout" and "sys.stderr"\n are initialized to file objects corresponding to the interpreter\'s\n standard input, output and error streams. See File Objects for\n complete documentation of file objects.\n\nInternal types\n A few types used internally by the interpreter are exposed to the\n user. Their definitions may change with future versions of the\n interpreter, but they are mentioned here for completeness.\n\n Code objects\n Code objects represent *byte-compiled* executable Python code,\n or *bytecode*. The difference between a code object and a\n function object is that the function object contains an explicit\n reference to the function\'s globals (the module in which it was\n defined), while a code object contains no context; also the\n default argument values are stored in the function object, not\n in the code object (because they represent values calculated at\n run-time). Unlike function objects, code objects are immutable\n and contain no references (directly or indirectly) to mutable\n objects.\n\n Special read-only attributes: "co_name" gives the function name;\n "co_argcount" is the number of positional arguments (including\n arguments with default values); "co_nlocals" is the number of\n local variables used by the function (including arguments);\n "co_varnames" is a tuple containing the names of the local\n variables (starting with the argument names); "co_cellvars" is a\n tuple containing the names of local variables that are\n referenced by nested functions; "co_freevars" is a tuple\n containing the names of free variables; "co_code" is a string\n representing the sequence of bytecode instructions; "co_consts"\n is a tuple containing the literals used by the bytecode;\n "co_names" is a tuple containing the names used by the bytecode;\n "co_filename" is the filename from which the code was compiled;\n "co_firstlineno" is the first line number of the function;\n "co_lnotab" is a string encoding the mapping from bytecode\n offsets to line numbers (for details see the source code of the\n interpreter); "co_stacksize" is the required stack size\n (including local variables); "co_flags" is an integer encoding a\n number of flags for the interpreter.\n\n The following flag bits are defined for "co_flags": bit "0x04"\n is set if the function uses the "*arguments" syntax to accept an\n arbitrary number of positional arguments; bit "0x08" is set if\n the function uses the "**keywords" syntax to accept arbitrary\n keyword arguments; bit "0x20" is set if the function is a\n generator.\n\n Future feature declarations ("from __future__ import division")\n also use bits in "co_flags" to indicate whether a code object\n was compiled with a particular feature enabled: bit "0x2000" is\n set if the function was compiled with future division enabled;\n bits "0x10" and "0x1000" were used in earlier versions of\n Python.\n\n Other bits in "co_flags" are reserved for internal use.\n\n If a code object represents a function, the first item in\n "co_consts" is the documentation string of the function, or\n "None" if undefined.\n\n Frame objects\n Frame objects represent execution frames. They may occur in\n traceback objects (see below).\n\n Special read-only attributes: "f_back" is to the previous stack\n frame (towards the caller), or "None" if this is the bottom\n stack frame; "f_code" is the code object being executed in this\n frame; "f_locals" is the dictionary used to look up local\n variables; "f_globals" is used for global variables;\n "f_builtins" is used for built-in (intrinsic) names;\n "f_restricted" is a flag indicating whether the function is\n executing in restricted execution mode; "f_lasti" gives the\n precise instruction (this is an index into the bytecode string\n of the code object).\n\n Special writable attributes: "f_trace", if not "None", is a\n function called at the start of each source code line (this is\n used by the debugger); "f_exc_type", "f_exc_value",\n "f_exc_traceback" represent the last exception raised in the\n parent frame provided another exception was ever raised in the\n current frame (in all other cases they are "None"); "f_lineno"\n is the current line number of the frame --- writing to this from\n within a trace function jumps to the given line (only for the\n bottom-most frame). A debugger can implement a Jump command\n (aka Set Next Statement) by writing to f_lineno.\n\n Traceback objects\n Traceback objects represent a stack trace of an exception. A\n traceback object is created when an exception occurs. When the\n search for an exception handler unwinds the execution stack, at\n each unwound level a traceback object is inserted in front of\n the current traceback. When an exception handler is entered,\n the stack trace is made available to the program. (See section\n The try statement.) It is accessible as "sys.exc_traceback", and\n also as the third item of the tuple returned by\n "sys.exc_info()". The latter is the preferred interface, since\n it works correctly when the program is using multiple threads.\n When the program contains no suitable handler, the stack trace\n is written (nicely formatted) to the standard error stream; if\n the interpreter is interactive, it is also made available to the\n user as "sys.last_traceback".\n\n Special read-only attributes: "tb_next" is the next level in the\n stack trace (towards the frame where the exception occurred), or\n "None" if there is no next level; "tb_frame" points to the\n execution frame of the current level; "tb_lineno" gives the line\n number where the exception occurred; "tb_lasti" indicates the\n precise instruction. The line number and last instruction in\n the traceback may differ from the line number of its frame\n object if the exception occurred in a "try" statement with no\n matching except clause or with a finally clause.\n\n Slice objects\n Slice objects are used to represent slices when *extended slice\n syntax* is used. This is a slice using two colons, or multiple\n slices or ellipses separated by commas, e.g., "a[i:j:step]",\n "a[i:j, k:l]", or "a[..., i:j]". They are also created by the\n built-in "slice()" function.\n\n Special read-only attributes: "start" is the lower bound; "stop"\n is the upper bound; "step" is the step value; each is "None" if\n omitted. These attributes can have any type.\n\n Slice objects support one method:\n\n slice.indices(self, length)\n\n This method takes a single integer argument *length* and\n computes information about the extended slice that the slice\n object would describe if applied to a sequence of *length*\n items. It returns a tuple of three integers; respectively\n these are the *start* and *stop* indices and the *step* or\n stride length of the slice. Missing or out-of-bounds indices\n are handled in a manner consistent with regular slices.\n\n New in version 2.3.\n\n Static method objects\n Static method objects provide a way of defeating the\n transformation of function objects to method objects described\n above. A static method object is a wrapper around any other\n object, usually a user-defined method object. When a static\n method object is retrieved from a class or a class instance, the\n object actually returned is the wrapped object, which is not\n subject to any further transformation. Static method objects are\n not themselves callable, although the objects they wrap usually\n are. Static method objects are created by the built-in\n "staticmethod()" constructor.\n\n Class method objects\n A class method object, like a static method object, is a wrapper\n around another object that alters the way in which that object\n is retrieved from classes and class instances. The behaviour of\n class method objects upon such retrieval is described above,\n under "User-defined methods". Class method objects are created\n by the built-in "classmethod()" constructor.\n', + 'typesfunctions': u'\nFunctions\n*********\n\nFunction objects are created by function definitions. The only\noperation on a function object is to call it: "func(argument-list)".\n\nThere are really two flavors of function objects: built-in functions\nand user-defined functions. Both support the same operation (to call\nthe function), but the implementation is different, hence the\ndifferent object types.\n\nSee Function definitions for more information.\n', + 'typesmapping': u'\nMapping Types --- "dict"\n************************\n\nA *mapping* object maps *hashable* values to arbitrary objects.\nMappings are mutable objects. There is currently only one standard\nmapping type, the *dictionary*. (For other containers see the built\nin "list", "set", and "tuple" classes, and the "collections" module.)\n\nA dictionary\'s keys are *almost* arbitrary values. Values that are\nnot *hashable*, that is, values containing lists, dictionaries or\nother mutable types (that are compared by value rather than by object\nidentity) may not be used as keys. Numeric types used for keys obey\nthe normal rules for numeric comparison: if two numbers compare equal\n(such as "1" and "1.0") then they can be used interchangeably to index\nthe same dictionary entry. (Note however, that since computers store\nfloating-point numbers as approximations it is usually unwise to use\nthem as dictionary keys.)\n\nDictionaries can be created by placing a comma-separated list of "key:\nvalue" pairs within braces, for example: "{\'jack\': 4098, \'sjoerd\':\n4127}" or "{4098: \'jack\', 4127: \'sjoerd\'}", or by the "dict"\nconstructor.\n\nclass dict(**kwarg)\nclass dict(mapping, **kwarg)\nclass dict(iterable, **kwarg)\n\n Return a new dictionary initialized from an optional positional\n argument and a possibly empty set of keyword arguments.\n\n If no positional argument is given, an empty dictionary is created.\n If a positional argument is given and it is a mapping object, a\n dictionary is created with the same key-value pairs as the mapping\n object. Otherwise, the positional argument must be an *iterable*\n object. Each item in the iterable must itself be an iterable with\n exactly two objects. The first object of each item becomes a key\n in the new dictionary, and the second object the corresponding\n value. If a key occurs more than once, the last value for that key\n becomes the corresponding value in the new dictionary.\n\n If keyword arguments are given, the keyword arguments and their\n values are added to the dictionary created from the positional\n argument. If a key being added is already present, the value from\n the keyword argument replaces the value from the positional\n argument.\n\n To illustrate, the following examples all return a dictionary equal\n to "{"one": 1, "two": 2, "three": 3}":\n\n >>> a = dict(one=1, two=2, three=3)\n >>> b = {\'one\': 1, \'two\': 2, \'three\': 3}\n >>> c = dict(zip([\'one\', \'two\', \'three\'], [1, 2, 3]))\n >>> d = dict([(\'two\', 2), (\'one\', 1), (\'three\', 3)])\n >>> e = dict({\'three\': 3, \'one\': 1, \'two\': 2})\n >>> a == b == c == d == e\n True\n\n Providing keyword arguments as in the first example only works for\n keys that are valid Python identifiers. Otherwise, any valid keys\n can be used.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for building a dictionary from\n keyword arguments added.\n\n These are the operations that dictionaries support (and therefore,\n custom mapping types should support too):\n\n len(d)\n\n Return the number of items in the dictionary *d*.\n\n d[key]\n\n Return the item of *d* with key *key*. Raises a "KeyError" if\n *key* is not in the map.\n\n If a subclass of dict defines a method "__missing__()" and *key*\n is not present, the "d[key]" operation calls that method with\n the key *key* as argument. The "d[key]" operation then returns\n or raises whatever is returned or raised by the\n "__missing__(key)" call. No other operations or methods invoke\n "__missing__()". If "__missing__()" is not defined, "KeyError"\n is raised. "__missing__()" must be a method; it cannot be an\n instance variable:\n\n >>> class Counter(dict):\n ... def __missing__(self, key):\n ... return 0\n >>> c = Counter()\n >>> c[\'red\']\n 0\n >>> c[\'red\'] += 1\n >>> c[\'red\']\n 1\n\n The example above shows part of the implementation of\n "collections.Counter". A different "__missing__" method is used\n by "collections.defaultdict".\n\n New in version 2.5: Recognition of __missing__ methods of dict\n subclasses.\n\n d[key] = value\n\n Set "d[key]" to *value*.\n\n del d[key]\n\n Remove "d[key]" from *d*. Raises a "KeyError" if *key* is not\n in the map.\n\n key in d\n\n Return "True" if *d* has a key *key*, else "False".\n\n New in version 2.2.\n\n key not in d\n\n Equivalent to "not key in d".\n\n New in version 2.2.\n\n iter(d)\n\n Return an iterator over the keys of the dictionary. This is a\n shortcut for "iterkeys()".\n\n clear()\n\n Remove all items from the dictionary.\n\n copy()\n\n Return a shallow copy of the dictionary.\n\n fromkeys(seq[, value])\n\n Create a new dictionary with keys from *seq* and values set to\n *value*.\n\n "fromkeys()" is a class method that returns a new dictionary.\n *value* defaults to "None".\n\n New in version 2.3.\n\n get(key[, default])\n\n Return the value for *key* if *key* is in the dictionary, else\n *default*. If *default* is not given, it defaults to "None", so\n that this method never raises a "KeyError".\n\n has_key(key)\n\n Test for the presence of *key* in the dictionary. "has_key()"\n is deprecated in favor of "key in d".\n\n items()\n\n Return a copy of the dictionary\'s list of "(key, value)" pairs.\n\n **CPython implementation detail:** Keys and values are listed in\n an arbitrary order which is non-random, varies across Python\n implementations, and depends on the dictionary\'s history of\n insertions and deletions.\n\n If "items()", "keys()", "values()", "iteritems()", "iterkeys()",\n and "itervalues()" are called with no intervening modifications\n to the dictionary, the lists will directly correspond. This\n allows the creation of "(value, key)" pairs using "zip()":\n "pairs = zip(d.values(), d.keys())". The same relationship\n holds for the "iterkeys()" and "itervalues()" methods: "pairs =\n zip(d.itervalues(), d.iterkeys())" provides the same value for\n "pairs". Another way to create the same list is "pairs = [(v, k)\n for (k, v) in d.iteritems()]".\n\n iteritems()\n\n Return an iterator over the dictionary\'s "(key, value)" pairs.\n See the note for "dict.items()".\n\n Using "iteritems()" while adding or deleting entries in the\n dictionary may raise a "RuntimeError" or fail to iterate over\n all entries.\n\n New in version 2.2.\n\n iterkeys()\n\n Return an iterator over the dictionary\'s keys. See the note for\n "dict.items()".\n\n Using "iterkeys()" while adding or deleting entries in the\n dictionary may raise a "RuntimeError" or fail to iterate over\n all entries.\n\n New in version 2.2.\n\n itervalues()\n\n Return an iterator over the dictionary\'s values. See the note\n for "dict.items()".\n\n Using "itervalues()" while adding or deleting entries in the\n dictionary may raise a "RuntimeError" or fail to iterate over\n all entries.\n\n New in version 2.2.\n\n keys()\n\n Return a copy of the dictionary\'s list of keys. See the note\n for "dict.items()".\n\n pop(key[, default])\n\n If *key* is in the dictionary, remove it and return its value,\n else return *default*. If *default* is not given and *key* is\n not in the dictionary, a "KeyError" is raised.\n\n New in version 2.3.\n\n popitem()\n\n Remove and return an arbitrary "(key, value)" pair from the\n dictionary.\n\n "popitem()" is useful to destructively iterate over a\n dictionary, as often used in set algorithms. If the dictionary\n is empty, calling "popitem()" raises a "KeyError".\n\n setdefault(key[, default])\n\n If *key* is in the dictionary, return its value. If not, insert\n *key* with a value of *default* and return *default*. *default*\n defaults to "None".\n\n update([other])\n\n Update the dictionary with the key/value pairs from *other*,\n overwriting existing keys. Return "None".\n\n "update()" accepts either another dictionary object or an\n iterable of key/value pairs (as tuples or other iterables of\n length two). If keyword arguments are specified, the dictionary\n is then updated with those key/value pairs: "d.update(red=1,\n blue=2)".\n\n Changed in version 2.4: Allowed the argument to be an iterable\n of key/value pairs and allowed keyword arguments.\n\n values()\n\n Return a copy of the dictionary\'s list of values. See the note\n for "dict.items()".\n\n viewitems()\n\n Return a new view of the dictionary\'s items ("(key, value)"\n pairs). See below for documentation of view objects.\n\n New in version 2.7.\n\n viewkeys()\n\n Return a new view of the dictionary\'s keys. See below for\n documentation of view objects.\n\n New in version 2.7.\n\n viewvalues()\n\n Return a new view of the dictionary\'s values. See below for\n documentation of view objects.\n\n New in version 2.7.\n\n Dictionaries compare equal if and only if they have the same "(key,\n value)" pairs.\n\n\nDictionary view objects\n=======================\n\nThe objects returned by "dict.viewkeys()", "dict.viewvalues()" and\n"dict.viewitems()" are *view objects*. They provide a dynamic view on\nthe dictionary\'s entries, which means that when the dictionary\nchanges, the view reflects these changes.\n\nDictionary views can be iterated over to yield their respective data,\nand support membership tests:\n\nlen(dictview)\n\n Return the number of entries in the dictionary.\n\niter(dictview)\n\n Return an iterator over the keys, values or items (represented as\n tuples of "(key, value)") in the dictionary.\n\n Keys and values are iterated over in an arbitrary order which is\n non-random, varies across Python implementations, and depends on\n the dictionary\'s history of insertions and deletions. If keys,\n values and items views are iterated over with no intervening\n modifications to the dictionary, the order of items will directly\n correspond. This allows the creation of "(value, key)" pairs using\n "zip()": "pairs = zip(d.values(), d.keys())". Another way to\n create the same list is "pairs = [(v, k) for (k, v) in d.items()]".\n\n Iterating views while adding or deleting entries in the dictionary\n may raise a "RuntimeError" or fail to iterate over all entries.\n\nx in dictview\n\n Return "True" if *x* is in the underlying dictionary\'s keys, values\n or items (in the latter case, *x* should be a "(key, value)"\n tuple).\n\nKeys views are set-like since their entries are unique and hashable.\nIf all values are hashable, so that (key, value) pairs are unique and\nhashable, then the items view is also set-like. (Values views are not\ntreated as set-like since the entries are generally not unique.) Then\nthese set operations are available ("other" refers either to another\nview or a set):\n\ndictview & other\n\n Return the intersection of the dictview and the other object as a\n new set.\n\ndictview | other\n\n Return the union of the dictview and the other object as a new set.\n\ndictview - other\n\n Return the difference between the dictview and the other object\n (all elements in *dictview* that aren\'t in *other*) as a new set.\n\ndictview ^ other\n\n Return the symmetric difference (all elements either in *dictview*\n or *other*, but not in both) of the dictview and the other object\n as a new set.\n\nAn example of dictionary view usage:\n\n >>> dishes = {\'eggs\': 2, \'sausage\': 1, \'bacon\': 1, \'spam\': 500}\n >>> keys = dishes.viewkeys()\n >>> values = dishes.viewvalues()\n\n >>> # iteration\n >>> n = 0\n >>> for val in values:\n ... n += val\n >>> print(n)\n 504\n\n >>> # keys and values are iterated over in the same order\n >>> list(keys)\n [\'eggs\', \'bacon\', \'sausage\', \'spam\']\n >>> list(values)\n [2, 1, 1, 500]\n\n >>> # view objects are dynamic and reflect dict changes\n >>> del dishes[\'eggs\']\n >>> del dishes[\'sausage\']\n >>> list(keys)\n [\'spam\', \'bacon\']\n\n >>> # set operations\n >>> keys & {\'eggs\', \'bacon\', \'salad\'}\n {\'bacon\'}\n', + 'typesmethods': u'\nMethods\n*******\n\nMethods are functions that are called using the attribute notation.\nThere are two flavors: built-in methods (such as "append()" on lists)\nand class instance methods. Built-in methods are described with the\ntypes that support them.\n\nThe implementation adds two special read-only attributes to class\ninstance methods: "m.im_self" is the object on which the method\noperates, and "m.im_func" is the function implementing the method.\nCalling "m(arg-1, arg-2, ..., arg-n)" is completely equivalent to\ncalling "m.im_func(m.im_self, arg-1, arg-2, ..., arg-n)".\n\nClass instance methods are either *bound* or *unbound*, referring to\nwhether the method was accessed through an instance or a class,\nrespectively. When a method is unbound, its "im_self" attribute will\nbe "None" and if called, an explicit "self" object must be passed as\nthe first argument. In this case, "self" must be an instance of the\nunbound method\'s class (or a subclass of that class), otherwise a\n"TypeError" is raised.\n\nLike function objects, methods objects support getting arbitrary\nattributes. However, since method attributes are actually stored on\nthe underlying function object ("meth.im_func"), setting method\nattributes on either bound or unbound methods is disallowed.\nAttempting to set an attribute on a method results in an\n"AttributeError" being raised. In order to set a method attribute,\nyou need to explicitly set it on the underlying function object:\n\n >>> class C:\n ... def method(self):\n ... pass\n ...\n >>> c = C()\n >>> c.method.whoami = \'my name is method\' # can\'t set on the method\n Traceback (most recent call last):\n File "", line 1, in \n AttributeError: \'instancemethod\' object has no attribute \'whoami\'\n >>> c.method.im_func.whoami = \'my name is method\'\n >>> c.method.whoami\n \'my name is method\'\n\nSee The standard type hierarchy for more information.\n', + 'typesmodules': u'\nModules\n*******\n\nThe only special operation on a module is attribute access: "m.name",\nwhere *m* is a module and *name* accesses a name defined in *m*\'s\nsymbol table. Module attributes can be assigned to. (Note that the\n"import" statement is not, strictly speaking, an operation on a module\nobject; "import foo" does not require a module object named *foo* to\nexist, rather it requires an (external) *definition* for a module\nnamed *foo* somewhere.)\n\nA special attribute of every module is "__dict__". This is the\ndictionary containing the module\'s symbol table. Modifying this\ndictionary will actually change the module\'s symbol table, but direct\nassignment to the "__dict__" attribute is not possible (you can write\n"m.__dict__[\'a\'] = 1", which defines "m.a" to be "1", but you can\'t\nwrite "m.__dict__ = {}"). Modifying "__dict__" directly is not\nrecommended.\n\nModules built into the interpreter are written like this: "". If loaded from a file, they are written as\n"".\n', + 'typesseq': u'\nSequence Types --- "str", "unicode", "list", "tuple", "bytearray", "buffer", "xrange"\n*************************************************************************************\n\nThere are seven sequence types: strings, Unicode strings, lists,\ntuples, bytearrays, buffers, and xrange objects.\n\nFor other containers see the built in "dict" and "set" classes, and\nthe "collections" module.\n\nString literals are written in single or double quotes: "\'xyzzy\'",\n""frobozz"". See String literals for more about string literals.\nUnicode strings are much like strings, but are specified in the syntax\nusing a preceding "\'u\'" character: "u\'abc\'", "u"def"". In addition to\nthe functionality described here, there are also string-specific\nmethods described in the String Methods section. Lists are constructed\nwith square brackets, separating items with commas: "[a, b, c]".\nTuples are constructed by the comma operator (not within square\nbrackets), with or without enclosing parentheses, but an empty tuple\nmust have the enclosing parentheses, such as "a, b, c" or "()". A\nsingle item tuple must have a trailing comma, such as "(d,)".\n\nBytearray objects are created with the built-in function\n"bytearray()".\n\nBuffer objects are not directly supported by Python syntax, but can be\ncreated by calling the built-in function "buffer()". They don\'t\nsupport concatenation or repetition.\n\nObjects of type xrange are similar to buffers in that there is no\nspecific syntax to create them, but they are created using the\n"xrange()" function. They don\'t support slicing, concatenation or\nrepetition, and using "in", "not in", "min()" or "max()" on them is\ninefficient.\n\nMost sequence types support the following operations. The "in" and\n"not in" operations have the same priorities as the comparison\noperations. The "+" and "*" operations have the same priority as the\ncorresponding numeric operations. [3] Additional methods are provided\nfor Mutable Sequence Types.\n\nThis table lists the sequence operations sorted in ascending priority.\nIn the table, *s* and *t* are sequences of the same type; *n*, *i* and\n*j* are integers:\n\n+--------------------+----------------------------------+------------+\n| Operation | Result | Notes |\n+====================+==================================+============+\n| "x in s" | "True" if an item of *s* is | (1) |\n| | equal to *x*, else "False" | |\n+--------------------+----------------------------------+------------+\n| "x not in s" | "False" if an item of *s* is | (1) |\n| | equal to *x*, else "True" | |\n+--------------------+----------------------------------+------------+\n| "s + t" | the concatenation of *s* and *t* | (6) |\n+--------------------+----------------------------------+------------+\n| "s * n, n * s" | equivalent to adding *s* to | (2) |\n| | itself *n* times | |\n+--------------------+----------------------------------+------------+\n| "s[i]" | *i*th item of *s*, origin 0 | (3) |\n+--------------------+----------------------------------+------------+\n| "s[i:j]" | slice of *s* from *i* to *j* | (3)(4) |\n+--------------------+----------------------------------+------------+\n| "s[i:j:k]" | slice of *s* from *i* to *j* | (3)(5) |\n| | with step *k* | |\n+--------------------+----------------------------------+------------+\n| "len(s)" | length of *s* | |\n+--------------------+----------------------------------+------------+\n| "min(s)" | smallest item of *s* | |\n+--------------------+----------------------------------+------------+\n| "max(s)" | largest item of *s* | |\n+--------------------+----------------------------------+------------+\n| "s.index(x)" | index of the first occurrence of | |\n| | *x* in *s* | |\n+--------------------+----------------------------------+------------+\n| "s.count(x)" | total number of occurrences of | |\n| | *x* in *s* | |\n+--------------------+----------------------------------+------------+\n\nSequence types also support comparisons. In particular, tuples and\nlists are compared lexicographically by comparing corresponding\nelements. This means that to compare equal, every element must compare\nequal and the two sequences must be of the same type and have the same\nlength. (For full details see Comparisons in the language reference.)\n\nNotes:\n\n1. When *s* is a string or Unicode string object the "in" and "not\n in" operations act like a substring test. In Python versions\n before 2.3, *x* had to be a string of length 1. In Python 2.3 and\n beyond, *x* may be a string of any length.\n\n2. Values of *n* less than "0" are treated as "0" (which yields an\n empty sequence of the same type as *s*). Note that items in the\n sequence *s* are not copied; they are referenced multiple times.\n This often haunts new Python programmers; consider:\n\n >>> lists = [[]] * 3\n >>> lists\n [[], [], []]\n >>> lists[0].append(3)\n >>> lists\n [[3], [3], [3]]\n\n What has happened is that "[[]]" is a one-element list containing\n an empty list, so all three elements of "[[]] * 3" are references\n to this single empty list. Modifying any of the elements of\n "lists" modifies this single list. You can create a list of\n different lists this way:\n\n >>> lists = [[] for i in range(3)]\n >>> lists[0].append(3)\n >>> lists[1].append(5)\n >>> lists[2].append(7)\n >>> lists\n [[3], [5], [7]]\n\n Further explanation is available in the FAQ entry How do I create a\n multidimensional list?.\n\n3. If *i* or *j* is negative, the index is relative to the end of\n the string: "len(s) + i" or "len(s) + j" is substituted. But note\n that "-0" is still "0".\n\n4. The slice of *s* from *i* to *j* is defined as the sequence of\n items with index *k* such that "i <= k < j". If *i* or *j* is\n greater than "len(s)", use "len(s)". If *i* is omitted or "None",\n use "0". If *j* is omitted or "None", use "len(s)". If *i* is\n greater than or equal to *j*, the slice is empty.\n\n5. The slice of *s* from *i* to *j* with step *k* is defined as the\n sequence of items with index "x = i + n*k" such that "0 <= n <\n (j-i)/k". In other words, the indices are "i", "i+k", "i+2*k",\n "i+3*k" and so on, stopping when *j* is reached (but never\n including *j*). If *i* or *j* is greater than "len(s)", use\n "len(s)". If *i* or *j* are omitted or "None", they become "end"\n values (which end depends on the sign of *k*). Note, *k* cannot be\n zero. If *k* is "None", it is treated like "1".\n\n6. **CPython implementation detail:** If *s* and *t* are both\n strings, some Python implementations such as CPython can usually\n perform an in-place optimization for assignments of the form "s = s\n + t" or "s += t". When applicable, this optimization makes\n quadratic run-time much less likely. This optimization is both\n version and implementation dependent. For performance sensitive\n code, it is preferable to use the "str.join()" method which assures\n consistent linear concatenation performance across versions and\n implementations.\n\n Changed in version 2.4: Formerly, string concatenation never\n occurred in-place.\n\n\nString Methods\n==============\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n"bytearray" objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange section. To output formatted strings use\ntemplate strings or the "%" operator described in the String\nFormatting Operations section. Also, see the "re" module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n "\'strict\'", meaning that encoding errors raise "UnicodeError".\n Other possible values are "\'ignore\'", "\'replace\'" and any other\n name registered via "codecs.register_error()", see section Codec\n Base Classes.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n "\'strict\'", meaning that encoding errors raise a "UnicodeError".\n Other possible values are "\'ignore\'", "\'replace\'",\n "\'xmlcharrefreplace\'", "\'backslashreplace\'" and any other name\n registered via "codecs.register_error()", see section Codec Base\n Classes. For a list of possible encodings, see section Standard\n Encodings.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for "\'xmlcharrefreplace\'" and\n "\'backslashreplace\'" and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return "True" if the string ends with the specified *suffix*,\n otherwise return "False". *suffix* can also be a tuple of suffixes\n to look for. With optional *start*, test beginning at that\n position. With optional *end*, stop comparing at that position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab ("\\t"), one or more space characters are inserted in the result\n until the current column is equal to the next tab position. (The\n tab character itself is not copied.) If the character is a newline\n ("\\n") or return ("\\r"), it is copied and the current column is\n reset to zero. Any other character is copied unchanged and the\n current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found within the slice "s[start:end]". Optional arguments *start*\n and *end* are interpreted as in slice notation. Return "-1" if\n *sub* is not found.\n\n Note: The "find()" method should be used only if you need to know\n the position of *sub*. To check if *sub* is a substring or not,\n use the "in" operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces "{}". Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See Format String Syntax for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the "%" formatting described in String\n Formatting Operations in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like "find()", but raise "ValueError" when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to "len(s)".\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or "None", the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within "s[start:end]".\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return "-1" on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like "rfind()" but raises "ValueError" when the substring *sub* is\n not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to "len(s)".\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n "None", any whitespace string is a separator. Except for splitting\n from the right, "rsplit()" behaves like "split()" which is\n described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or "None", the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most "maxsplit+1"\n elements). If *maxsplit* is not specified or "-1", then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n "\'1,,2\'.split(\',\')" returns "[\'1\', \'\', \'2\']"). The *sep* argument\n may consist of multiple characters (for example,\n "\'1<>2<>3\'.split(\'<>\')" returns "[\'1\', \'2\', \'3\']"). Splitting an\n empty string with a specified separator returns "[\'\']".\n\n If *sep* is not specified or is "None", a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a "None" separator returns "[]".\n\n For example, "\' 1 2 3 \'.split()" returns "[\'1\', \'2\', \'3\']", and\n "\' 1 2 3 \'.split(None, 1)" returns "[\'1\', \'2 3 \']".\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n Python recognizes ""\\r"", ""\\n"", and ""\\r\\n"" as line boundaries\n for 8-bit strings.\n\n For example:\n\n >>> \'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()\n [\'ab c\', \'\', \'de fg\', \'kl\']\n >>> \'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines(True)\n [\'ab c\\n\', \'\\n\', \'de fg\\r\', \'kl\\r\\n\']\n\n Unlike "split()" when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line:\n\n >>> "".splitlines()\n []\n >>> "One line\\n".splitlines()\n [\'One line\']\n\n For comparison, "split(\'\\n\')" gives:\n\n >>> \'\'.split(\'\\n\')\n [\'\']\n >>> \'Two lines\\n\'.split(\'\\n\')\n [\'Two lines\', \'\']\n\nunicode.splitlines([keepends])\n\n Return a list of the lines in the string, like "str.splitlines()".\n However, the Unicode method splits on the following line\n boundaries, which are a superset of the *universal newlines*\n recognized for 8-bit strings.\n\n +-------------------------+-------------------------------+\n | Representation | Description |\n +=========================+===============================+\n | "\\n" | Line Feed |\n +-------------------------+-------------------------------+\n | "\\r" | Carriage Return |\n +-------------------------+-------------------------------+\n | "\\r\\n" | Carriage Return + Line Feed |\n +-------------------------+-------------------------------+\n | "\\v" or "\\x0b" | Line Tabulation |\n +-------------------------+-------------------------------+\n | "\\f" or "\\x0c" | Form Feed |\n +-------------------------+-------------------------------+\n | "\\x1c" | File Separator |\n +-------------------------+-------------------------------+\n | "\\x1d" | Group Separator |\n +-------------------------+-------------------------------+\n | "\\x1e" | Record Separator |\n +-------------------------+-------------------------------+\n | "\\x85" | Next Line (C1 Control Code) |\n +-------------------------+-------------------------------+\n | "\\u2028" | Line Separator |\n +-------------------------+-------------------------------+\n | "\\u2029" | Paragraph Separator |\n +-------------------------+-------------------------------+\n\n Changed in version 2.7: "\\v" and "\\f" added to list of line\n boundaries.\n\nstr.startswith(prefix[, start[, end]])\n\n Return "True" if string starts with the *prefix*, otherwise return\n "False". *prefix* can also be a tuple of prefixes to look for.\n With optional *start*, test string beginning at that position.\n With optional *end*, stop comparing string at that position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or "None", the *chars*\n argument defaults to removing whitespace. The *chars* argument is\n not a prefix or suffix; rather, all combinations of its values are\n stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the "maketrans()" helper function in the "string"\n module to create a translation table. For string objects, set the\n *table* argument to "None" for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a "None" *table* argument.\n\n For Unicode objects, the "translate()" method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or "None". Unmapped characters\n are left untouched. Characters mapped to "None" are deleted. Note,\n a more flexible approach is to create a custom character mapping\n codec using the "codecs" module (see "encodings.cp1251" for an\n example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that "str.upper().isupper()" might be\n "False" if "s" contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to "len(s)".\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return "True" if there are only numeric characters in S, "False"\n otherwise. Numeric characters include digit characters, and all\n characters that have the Unicode numeric value property, e.g.\n U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return "True" if there are only decimal characters in S, "False"\n otherwise. Decimal characters include digit characters, and all\n characters that can be used to form decimal-radix numbers, e.g.\n U+0660, ARABIC-INDIC DIGIT ZERO.\n\n\nString Formatting Operations\n============================\n\nString and Unicode objects have one unique built-in operation: the "%"\noperator (modulo). This is also known as the string *formatting* or\n*interpolation* operator. Given "format % values" (where *format* is\na string or Unicode object), "%" conversion specifications in *format*\nare replaced with zero or more elements of *values*. The effect is\nsimilar to the using "sprintf()" in the C language. If *format* is a\nUnicode object, or if any of the objects being converted using the\n"%s" conversion are Unicode objects, the result will also be a Unicode\nobject.\n\nIf *format* requires a single argument, *values* may be a single non-\ntuple object. [5] Otherwise, *values* must be a tuple with exactly\nthe number of items specified by the format string, or a single\nmapping object (for example, a dictionary).\n\nA conversion specifier contains two or more characters and has the\nfollowing components, which must occur in this order:\n\n1. The "\'%\'" character, which marks the start of the specifier.\n\n2. Mapping key (optional), consisting of a parenthesised sequence\n of characters (for example, "(somename)").\n\n3. Conversion flags (optional), which affect the result of some\n conversion types.\n\n4. Minimum field width (optional). If specified as an "\'*\'"\n (asterisk), the actual width is read from the next element of the\n tuple in *values*, and the object to convert comes after the\n minimum field width and optional precision.\n\n5. Precision (optional), given as a "\'.\'" (dot) followed by the\n precision. If specified as "\'*\'" (an asterisk), the actual width\n is read from the next element of the tuple in *values*, and the\n value to convert comes after the precision.\n\n6. Length modifier (optional).\n\n7. Conversion type.\n\nWhen the right argument is a dictionary (or other mapping type), then\nthe formats in the string *must* include a parenthesised mapping key\ninto that dictionary inserted immediately after the "\'%\'" character.\nThe mapping key selects the value to be formatted from the mapping.\nFor example:\n\n>>> print \'%(language)s has %(number)03d quote types.\' % \\\n... {"language": "Python", "number": 2}\nPython has 002 quote types.\n\nIn this case no "*" specifiers may occur in a format (since they\nrequire a sequential parameter list).\n\nThe conversion flag characters are:\n\n+-----------+-----------------------------------------------------------------------+\n| Flag | Meaning |\n+===========+=======================================================================+\n| "\'#\'" | The value conversion will use the "alternate form" (where defined |\n| | below). |\n+-----------+-----------------------------------------------------------------------+\n| "\'0\'" | The conversion will be zero padded for numeric values. |\n+-----------+-----------------------------------------------------------------------+\n| "\'-\'" | The converted value is left adjusted (overrides the "\'0\'" conversion |\n| | if both are given). |\n+-----------+-----------------------------------------------------------------------+\n| "\' \'" | (a space) A blank should be left before a positive number (or empty |\n| | string) produced by a signed conversion. |\n+-----------+-----------------------------------------------------------------------+\n| "\'+\'" | A sign character ("\'+\'" or "\'-\'") will precede the conversion |\n| | (overrides a "space" flag). |\n+-----------+-----------------------------------------------------------------------+\n\nA length modifier ("h", "l", or "L") may be present, but is ignored as\nit is not necessary for Python -- so e.g. "%ld" is identical to "%d".\n\nThe conversion types are:\n\n+--------------+-------------------------------------------------------+---------+\n| Conversion | Meaning | Notes |\n+==============+=======================================================+=========+\n| "\'d\'" | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| "\'i\'" | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| "\'o\'" | Signed octal value. | (1) |\n+--------------+-------------------------------------------------------+---------+\n| "\'u\'" | Obsolete type -- it is identical to "\'d\'". | (7) |\n+--------------+-------------------------------------------------------+---------+\n| "\'x\'" | Signed hexadecimal (lowercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| "\'X\'" | Signed hexadecimal (uppercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| "\'e\'" | Floating point exponential format (lowercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| "\'E\'" | Floating point exponential format (uppercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| "\'f\'" | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| "\'F\'" | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| "\'g\'" | Floating point format. Uses lowercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| "\'G\'" | Floating point format. Uses uppercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| "\'c\'" | Single character (accepts integer or single character | |\n| | string). | |\n+--------------+-------------------------------------------------------+---------+\n| "\'r\'" | String (converts any Python object using repr()). | (5) |\n+--------------+-------------------------------------------------------+---------+\n| "\'s\'" | String (converts any Python object using "str()"). | (6) |\n+--------------+-------------------------------------------------------+---------+\n| "\'%\'" | No argument is converted, results in a "\'%\'" | |\n| | character in the result. | |\n+--------------+-------------------------------------------------------+---------+\n\nNotes:\n\n1. The alternate form causes a leading zero ("\'0\'") to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n2. The alternate form causes a leading "\'0x\'" or "\'0X\'" (depending\n on whether the "\'x\'" or "\'X\'" format was used) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n3. The alternate form causes the result to always contain a decimal\n point, even if no digits follow it.\n\n The precision determines the number of digits after the decimal\n point and defaults to 6.\n\n4. The alternate form causes the result to always contain a decimal\n point, and trailing zeroes are not removed as they would otherwise\n be.\n\n The precision determines the number of significant digits before\n and after the decimal point and defaults to 6.\n\n5. The "%r" conversion was added in Python 2.0.\n\n The precision determines the maximal number of characters used.\n\n6. If the object or format provided is a "unicode" string, the\n resulting string will also be "unicode".\n\n The precision determines the maximal number of characters used.\n\n7. See **PEP 237**.\n\nSince Python strings have an explicit length, "%s" conversions do not\nassume that "\'\\0\'" is the end of the string.\n\nChanged in version 2.7: "%f" conversions for numbers whose absolute\nvalue is over 1e50 are no longer replaced by "%g" conversions.\n\nAdditional string operations are defined in standard modules "string"\nand "re".\n\n\nXRange Type\n===========\n\nThe "xrange" type is an immutable sequence which is commonly used for\nlooping. The advantage of the "xrange" type is that an "xrange"\nobject will always take the same amount of memory, no matter the size\nof the range it represents. There are no consistent performance\nadvantages.\n\nXRange objects have very little behavior: they only support indexing,\niteration, and the "len()" function.\n\n\nMutable Sequence Types\n======================\n\nList and "bytearray" objects support additional operations that allow\nin-place modification of the object. Other mutable sequence types\n(when added to the language) should also support these operations.\nStrings and tuples are immutable sequence types: such objects cannot\nbe modified once created. The following operations are defined on\nmutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| "s[i] = x" | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s[i:j] = t" | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "del s[i:j]" | same as "s[i:j] = []" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s[i:j:k] = t" | the elements of "s[i:j:k]" are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "del s[i:j:k]" | removes the elements of | |\n| | "s[i:j:k]" from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.append(x)" | same as "s[len(s):len(s)] = [x]" | (2) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.extend(t)" or "s += t" | for the most part the same as | (3) |\n| | "s[len(s):len(s)] = t" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s *= n" | updates *s* with its contents | (11) |\n| | repeated *n* times | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.count(x)" | return number of *i*\'s for which | |\n| | "s[i] == x" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.index(x[, i[, j]])" | return smallest *k* such that | (4) |\n| | "s[k] == x" and "i <= k < j" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.insert(i, x)" | same as "s[i:i] = [x]" | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.pop([i])" | same as "x = s[i]; del s[i]; | (6) |\n| | return x" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.remove(x)" | same as "del s[s.index(x)]" | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.reverse()" | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])" | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted\n multiple parameters and implicitly joined them into a tuple; this\n no longer works in Python 2.0. Use of this misfeature has been\n deprecated since Python 1.4.\n\n3. *t* can be any iterable object.\n\n4. Raises "ValueError" when *x* is not found in *s*. When a\n negative index is passed as the second or third parameter to the\n "index()" method, the list length is added, as for slice indices.\n If it is still negative, it is truncated to zero, as for slice\n indices.\n\n Changed in version 2.3: Previously, "index()" didn\'t have arguments\n for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n "insert()" method, the list length is added, as for slice indices.\n If it is still negative, it is truncated to zero, as for slice\n indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The "pop()" method\'s optional argument *i* defaults to "-1", so\n that by default the last item is removed and returned.\n\n7. The "sort()" and "reverse()" methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The "sort()" method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: "cmp=lambda x,y:\n cmp(x.lower(), y.lower())". The default value is "None".\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: "key=str.lower". The\n default value is "None".\n\n *reverse* is a boolean value. If set to "True", then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n "functools.cmp_to_key()" to convert an old-style *cmp* function to\n a *key* function.\n\n Changed in version 2.3: Support for "None" as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the "sort()" method is guaranteed to\n be stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being\n sorted, the effect of attempting to mutate, or even inspect, the\n list is undefined. The C implementation of Python 2.3 and newer\n makes the list appear empty for the duration, and raises\n "ValueError" if it can detect that the list has been mutated\n during a sort.\n\n11. The value *n* is an integer, or an object implementing\n "__index__()". Zero and negative values of *n* clear the\n sequence. Items in the sequence are not copied; they are\n referenced multiple times, as explained for "s * n" under Sequence\n Types --- str, unicode, list, tuple, bytearray, buffer, xrange.\n', + 'typesseq-mutable': u'\nMutable Sequence Types\n**********************\n\nList and "bytearray" objects support additional operations that allow\nin-place modification of the object. Other mutable sequence types\n(when added to the language) should also support these operations.\nStrings and tuples are immutable sequence types: such objects cannot\nbe modified once created. The following operations are defined on\nmutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| "s[i] = x" | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s[i:j] = t" | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "del s[i:j]" | same as "s[i:j] = []" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s[i:j:k] = t" | the elements of "s[i:j:k]" are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| "del s[i:j:k]" | removes the elements of | |\n| | "s[i:j:k]" from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.append(x)" | same as "s[len(s):len(s)] = [x]" | (2) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.extend(t)" or "s += t" | for the most part the same as | (3) |\n| | "s[len(s):len(s)] = t" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s *= n" | updates *s* with its contents | (11) |\n| | repeated *n* times | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.count(x)" | return number of *i*\'s for which | |\n| | "s[i] == x" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.index(x[, i[, j]])" | return smallest *k* such that | (4) |\n| | "s[k] == x" and "i <= k < j" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.insert(i, x)" | same as "s[i:i] = [x]" | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.pop([i])" | same as "x = s[i]; del s[i]; | (6) |\n| | return x" | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.remove(x)" | same as "del s[s.index(x)]" | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.reverse()" | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| "s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])" | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted\n multiple parameters and implicitly joined them into a tuple; this\n no longer works in Python 2.0. Use of this misfeature has been\n deprecated since Python 1.4.\n\n3. *t* can be any iterable object.\n\n4. Raises "ValueError" when *x* is not found in *s*. When a\n negative index is passed as the second or third parameter to the\n "index()" method, the list length is added, as for slice indices.\n If it is still negative, it is truncated to zero, as for slice\n indices.\n\n Changed in version 2.3: Previously, "index()" didn\'t have arguments\n for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n "insert()" method, the list length is added, as for slice indices.\n If it is still negative, it is truncated to zero, as for slice\n indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The "pop()" method\'s optional argument *i* defaults to "-1", so\n that by default the last item is removed and returned.\n\n7. The "sort()" and "reverse()" methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The "sort()" method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: "cmp=lambda x,y:\n cmp(x.lower(), y.lower())". The default value is "None".\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: "key=str.lower". The\n default value is "None".\n\n *reverse* is a boolean value. If set to "True", then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n "functools.cmp_to_key()" to convert an old-style *cmp* function to\n a *key* function.\n\n Changed in version 2.3: Support for "None" as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the "sort()" method is guaranteed to\n be stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being\n sorted, the effect of attempting to mutate, or even inspect, the\n list is undefined. The C implementation of Python 2.3 and newer\n makes the list appear empty for the duration, and raises\n "ValueError" if it can detect that the list has been mutated\n during a sort.\n\n11. The value *n* is an integer, or an object implementing\n "__index__()". Zero and negative values of *n* clear the\n sequence. Items in the sequence are not copied; they are\n referenced multiple times, as explained for "s * n" under Sequence\n Types --- str, unicode, list, tuple, bytearray, buffer, xrange.\n', + 'unary': u'\nUnary arithmetic and bitwise operations\n***************************************\n\nAll unary arithmetic and bitwise operations have the same priority:\n\n u_expr ::= power | "-" u_expr | "+" u_expr | "~" u_expr\n\nThe unary "-" (minus) operator yields the negation of its numeric\nargument.\n\nThe unary "+" (plus) operator yields its numeric argument unchanged.\n\nThe unary "~" (invert) operator yields the bitwise inversion of its\nplain or long integer argument. The bitwise inversion of "x" is\ndefined as "-(x+1)". It only applies to integral numbers.\n\nIn all three cases, if the argument does not have the proper type, a\n"TypeError" exception is raised.\n', + 'while': u'\nThe "while" statement\n*********************\n\nThe "while" statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the "else" clause, if present, is executed\nand the loop terminates.\n\nA "break" statement executed in the first suite terminates the loop\nwithout executing the "else" clause\'s suite. A "continue" statement\nexecuted in the first suite skips the rest of the suite and goes back\nto testing the expression.\n', + 'with': u'\nThe "with" statement\n********************\n\nNew in version 2.5.\n\nThe "with" statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section With Statement\nContext Managers). This allows common "try"..."except"..."finally"\nusage patterns to be encapsulated for convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the "with" statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the "with_item")\n is evaluated to obtain a context manager.\n\n2. The context manager\'s "__exit__()" is loaded for later use.\n\n3. The context manager\'s "__enter__()" method is invoked.\n\n4. If a target was included in the "with" statement, the return\n value from "__enter__()" is assigned to it.\n\n Note: The "with" statement guarantees that if the "__enter__()"\n method returns without an error, then "__exit__()" will always be\n called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s "__exit__()" method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to "__exit__()". Otherwise, three\n "None" arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the "__exit__()" method was false, the exception is reraised.\n If the return value was true, the exception is suppressed, and\n execution continues with the statement following the "with"\n statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from "__exit__()" is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple "with" statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the "with" statement is only allowed when the\n "with_statement" feature has been enabled. It is always enabled in\n Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 343** - The "with" statement\n The specification, background, and examples for the Python "with"\n statement.\n', + 'yield': u'\nThe "yield" statement\n*********************\n\n yield_stmt ::= yield_expression\n\nThe "yield" statement is only used when defining a generator function,\nand is only used in the body of the generator function. Using a\n"yield" statement in a function definition is sufficient to cause that\ndefinition to create a generator function instead of a normal\nfunction.\n\nWhen a generator function is called, it returns an iterator known as a\ngenerator iterator, or more commonly, a generator. The body of the\ngenerator function is executed by calling the generator\'s "next()"\nmethod repeatedly until it raises an exception.\n\nWhen a "yield" statement is executed, the state of the generator is\nfrozen and the value of "expression_list" is returned to "next()"\'s\ncaller. By "frozen" we mean that all local state is retained,\nincluding the current bindings of local variables, the instruction\npointer, and the internal evaluation stack: enough information is\nsaved so that the next time "next()" is invoked, the function can\nproceed exactly as if the "yield" statement were just another external\ncall.\n\nAs of Python version 2.5, the "yield" statement is now allowed in the\n"try" clause of a "try" ... "finally" construct. If the generator is\nnot resumed before it is finalized (by reaching a zero reference count\nor by being garbage collected), the generator-iterator\'s "close()"\nmethod will be called, allowing any pending "finally" clauses to\nexecute.\n\nFor full details of "yield" semantics, refer to the Yield expressions\nsection.\n\nNote: In Python 2.2, the "yield" statement was only allowed when the\n "generators" feature has been enabled. This "__future__" import\n statement was used to enable the feature:\n\n from __future__ import generators\n\nSee also:\n\n **PEP 255** - Simple Generators\n The proposal for adding generators and the "yield" statement to\n Python.\n\n **PEP 342** - Coroutines via Enhanced Generators\n The proposal that, among other generator enhancements, proposed\n allowing "yield" to appear inside a "try" ... "finally" block.\n'} diff --git a/Lib/shlex.py b/Lib/shlex.py index e7c8acc..7bef0dd 100644 --- a/Lib/shlex.py +++ b/Lib/shlex.py @@ -230,7 +230,7 @@ class shlex: if self.debug >= 2: print "shlex: I see punctuation in word state" self.state = ' ' - if self.token: + if self.token or (self.posix and quoted): break # emit current token else: continue diff --git a/Lib/shutil.py b/Lib/shutil.py index 26dcfde..388906f 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -450,9 +450,10 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): with zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_DEFLATED) as zf: path = os.path.normpath(base_dir) - zf.write(path, path) - if logger is not None: - logger.info("adding '%s'", path) + if path != os.curdir: + zf.write(path, path) + if logger is not None: + logger.info("adding '%s'", path) for dirpath, dirnames, filenames in os.walk(base_dir): for name in sorted(dirnames): path = os.path.normpath(os.path.join(dirpath, name)) diff --git a/Lib/site.py b/Lib/site.py index 4a09f3c..3b51e81 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -295,15 +295,6 @@ def getsitepackages(): else: sitepackages.append(prefix) sitepackages.append(os.path.join(prefix, "lib", "site-packages")) - if sys.platform == "darwin": - # for framework builds *only* we add the standard Apple - # locations. - from sysconfig import get_config_var - framework = get_config_var("PYTHONFRAMEWORK") - if framework: - sitepackages.append( - os.path.join("/Library", framework, - sys.version[:3], "site-packages")) return sitepackages def addsitepackages(known_paths): diff --git a/Lib/sqlite3/test/factory.py b/Lib/sqlite3/test/factory.py index 0e0196a..b9e9cd7 100644 --- a/Lib/sqlite3/test/factory.py +++ b/Lib/sqlite3/test/factory.py @@ -58,9 +58,21 @@ class CursorFactoryTests(unittest.TestCase): self.con.close() def CheckIsInstance(self): - cur = self.con.cursor(factory=MyCursor) + cur = self.con.cursor() + self.assertIsInstance(cur, sqlite.Cursor) + cur = self.con.cursor(MyCursor) + self.assertIsInstance(cur, MyCursor) + cur = self.con.cursor(factory=lambda con: MyCursor(con)) self.assertIsInstance(cur, MyCursor) + def CheckInvalidFactory(self): + # not a callable at all + self.assertRaises(TypeError, self.con.cursor, None) + # invalid callable with not exact one argument + self.assertRaises(TypeError, self.con.cursor, lambda: None) + # invalid callable returning non-cursor + self.assertRaises(TypeError, self.con.cursor, lambda con: None) + class RowFactoryTestsBackwardsCompat(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") @@ -173,10 +185,12 @@ class RowFactoryTests(unittest.TestCase): def CheckFakeCursorClass(self): # Issue #24257: Incorrect use of PyObject_IsInstance() caused # segmentation fault. + # Issue #27861: Also applies for cursor factory. class FakeCursor(str): __class__ = sqlite.Cursor - cur = self.con.cursor(factory=FakeCursor) - self.assertRaises(TypeError, sqlite.Row, cur, ()) + self.con.row_factory = sqlite.Row + self.assertRaises(TypeError, self.con.cursor, FakeCursor) + self.assertRaises(TypeError, sqlite.Row, FakeCursor(), ()) def tearDown(self): self.con.close() diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py index 16f217d..a5b1632 100644 --- a/Lib/sqlite3/test/hooks.py +++ b/Lib/sqlite3/test/hooks.py @@ -31,6 +31,11 @@ class CollationTests(unittest.TestCase): def tearDown(self): pass + def CheckCreateCollationNotString(self): + con = sqlite.connect(":memory:") + with self.assertRaises(TypeError): + con.create_collation(None, lambda x, y: (x > y) - (x < y)) + def CheckCreateCollationNotCallable(self): con = sqlite.connect(":memory:") try: @@ -47,6 +52,23 @@ class CollationTests(unittest.TestCase): except sqlite.ProgrammingError, e: pass + def CheckCreateCollationBadUpper(self): + class BadUpperStr(str): + def upper(self): + return None + con = sqlite.connect(":memory:") + mycoll = lambda x, y: -((x > y) - (x < y)) + con.create_collation(BadUpperStr("mycoll"), mycoll) + result = con.execute(""" + select x from ( + select 'a' as x + union + select 'b' as x + ) order by x collate mycoll + """).fetchall() + self.assertEqual(result[0][0], 'b') + self.assertEqual(result[1][0], 'a') + def CheckCollationIsUsed(self): if sqlite.version_info < (3, 2, 1): # old SQLite versions crash on this test return diff --git a/Lib/sqlite3/test/regression.py b/Lib/sqlite3/test/regression.py index 8b0a715..36fec59 100644 --- a/Lib/sqlite3/test/regression.py +++ b/Lib/sqlite3/test/regression.py @@ -118,7 +118,7 @@ class RegressionTests(unittest.TestCase): def CheckUnicodeConnect(self): """ - With pysqlite 2.4.0 you needed to use a string or a APSW connection + With pysqlite 2.4.0 you needed to use a string or an APSW connection object for opening database connections. Formerly, both bytestrings and unicode strings used to work. @@ -328,6 +328,36 @@ class RegressionTests(unittest.TestCase): self.assertRaises(ValueError, cur.execute, " \0select 2") self.assertRaises(ValueError, cur.execute, "select 2\0") + def CheckCommitCursorReset(self): + """ + Connection.commit() did reset cursors, which made sqlite3 + to return rows multiple times when fetched from cursors + after commit. See issues 10513 and 23129 for details. + """ + con = sqlite.connect(":memory:") + con.executescript(""" + create table t(c); + create table t2(c); + insert into t values(0); + insert into t values(1); + insert into t values(2); + """) + + self.assertEqual(con.isolation_level, "") + + counter = 0 + for i, row in enumerate(con.execute("select c from t")): + con.execute("insert into t2(c) values (?)", (i,)) + con.commit() + if counter == 0: + self.assertEqual(row[0], 0) + elif counter == 1: + self.assertEqual(row[0], 1) + elif counter == 2: + self.assertEqual(row[0], 2) + counter += 1 + self.assertEqual(counter, 3, "should have returned exactly three rows") + def suite(): regression_suite = unittest.makeSuite(RegressionTests, "Check") diff --git a/Lib/ssl.py b/Lib/ssl.py index 6070380..f28c863 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -51,6 +51,7 @@ The following constants identify various SSL protocol variants: PROTOCOL_SSLv2 PROTOCOL_SSLv3 PROTOCOL_SSLv23 +PROTOCOL_TLS PROTOCOL_TLSv1 PROTOCOL_TLSv1_1 PROTOCOL_TLSv1_2 @@ -126,7 +127,10 @@ from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN from _ssl import _OPENSSL_API_VERSION -_PROTOCOL_NAMES = {value: name for name, value in globals().items() if name.startswith('PROTOCOL_')} +_PROTOCOL_NAMES = {value: name for name, value in globals().items() + if name.startswith('PROTOCOL_') + and name != 'PROTOCOL_SSLv23'} +PROTOCOL_SSLv23 = PROTOCOL_TLS try: _SSLv2_IF_EXISTS = PROTOCOL_SSLv2 @@ -148,36 +152,42 @@ if _ssl.HAS_TLS_UNIQUE: else: CHANNEL_BINDING_TYPES = [] + # Disable weak or insecure ciphers by default # (OpenSSL's default setting is 'DEFAULT:!aNULL:!eNULL') # Enable a better set of ciphers by default # This list has been explicitly chosen to: # * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE) # * Prefer ECDHE over DHE for better performance -# * Prefer any AES-GCM over any AES-CBC for better performance and security +# * Prefer AEAD over CBC for better performance and security +# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI +# (ChaCha20 needs OpenSSL 1.1.0 or patched 1.0.2) +# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better +# performance and security # * Then Use HIGH cipher suites as a fallback -# * Then Use 3DES as fallback which is secure but slow -# * Disable NULL authentication, NULL encryption, and MD5 MACs for security -# reasons +# * Disable NULL authentication, NULL encryption, 3DES and MD5 MACs +# for security reasons _DEFAULT_CIPHERS = ( - 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:' - 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:' - '!eNULL:!MD5' -) + 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:' + 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:' + '!aNULL:!eNULL:!MD5:!3DES' + ) # Restricted and more secure ciphers for the server side # This list has been explicitly chosen to: # * Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE) # * Prefer ECDHE over DHE for better performance -# * Prefer any AES-GCM over any AES-CBC for better performance and security +# * Prefer AEAD over CBC for better performance and security +# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI +# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better +# performance and security # * Then Use HIGH cipher suites as a fallback -# * Then Use 3DES as fallback which is secure but slow -# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, and RC4 for -# security reasons +# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, RC4, and +# 3DES for security reasons _RESTRICTED_SERVER_CIPHERS = ( - 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:' - 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:' - '!eNULL:!MD5:!DSS:!RC4' + 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:' + 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:' + '!aNULL:!eNULL:!MD5:!DSS:!RC4:!3DES' ) @@ -408,7 +418,7 @@ def create_default_context(purpose=Purpose.SERVER_AUTH, cafile=None, if not isinstance(purpose, _ASN1Object): raise TypeError(purpose) - context = SSLContext(PROTOCOL_SSLv23) + context = SSLContext(PROTOCOL_TLS) # SSLv2 considered harmful. context.options |= OP_NO_SSLv2 @@ -445,7 +455,7 @@ def create_default_context(purpose=Purpose.SERVER_AUTH, cafile=None, context.load_default_certs(purpose) return context -def _create_unverified_context(protocol=PROTOCOL_SSLv23, cert_reqs=None, +def _create_unverified_context(protocol=PROTOCOL_TLS, cert_reqs=None, check_hostname=False, purpose=Purpose.SERVER_AUTH, certfile=None, keyfile=None, cafile=None, capath=None, cadata=None): @@ -518,7 +528,7 @@ class SSLSocket(socket): def __init__(self, sock=None, keyfile=None, certfile=None, server_side=False, cert_reqs=CERT_NONE, - ssl_version=PROTOCOL_SSLv23, ca_certs=None, + ssl_version=PROTOCOL_TLS, ca_certs=None, do_handshake_on_connect=True, family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, @@ -920,7 +930,7 @@ class SSLSocket(socket): def wrap_socket(sock, keyfile=None, certfile=None, server_side=False, cert_reqs=CERT_NONE, - ssl_version=PROTOCOL_SSLv23, ca_certs=None, + ssl_version=PROTOCOL_TLS, ca_certs=None, do_handshake_on_connect=True, suppress_ragged_eofs=True, ciphers=None): @@ -989,7 +999,7 @@ def PEM_cert_to_DER_cert(pem_cert_string): d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] return base64.decodestring(d.encode('ASCII', 'strict')) -def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): +def get_server_certificate(addr, ssl_version=PROTOCOL_TLS, ca_certs=None): """Retrieve the certificate from the server at the specified address, and return it as a PEM-encoded string. If 'ca_certs' is specified, validate the server cert against it. diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 187566b..2022e97 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -7,383 +7,27 @@ # Licensed to PSF under a Contributor Agreement. # See http://www.python.org/2.4/license for licensing details. -r"""subprocess - Subprocesses with accessible I/O streams +r"""Subprocesses with accessible I/O streams This module allows you to spawn processes, connect to their -input/output/error pipes, and obtain their return codes. This module -intends to replace several older modules and functions: - -os.system -os.spawn* -os.popen* -popen2.* -commands.* - -Information about how the subprocess module can be used to replace these -modules and functions can be found below. - - - -Using the subprocess module -=========================== -This module defines one class called Popen: - -class Popen(args, bufsize=0, executable=None, - stdin=None, stdout=None, stderr=None, - preexec_fn=None, close_fds=False, shell=False, - cwd=None, env=None, universal_newlines=False, - startupinfo=None, creationflags=0): - - -Arguments are: - -args should be a string, or a sequence of program arguments. The -program to execute is normally the first item in the args sequence or -string, but can be explicitly set by using the executable argument. - -On UNIX, with shell=False (default): In this case, the Popen class -uses os.execvp() to execute the child program. args should normally -be a sequence. A string will be treated as a sequence with the string -as the only item (the program to execute). - -On UNIX, with shell=True: If args is a string, it specifies the -command string to execute through the shell. If args is a sequence, -the first item specifies the command string, and any additional items -will be treated as additional shell arguments. - -On Windows: the Popen class uses CreateProcess() to execute the child -program, which operates on strings. If args is a sequence, it will be -converted to a string using the list2cmdline method. Please note that -not all MS Windows applications interpret the command line the same -way: The list2cmdline is designed for applications using the same -rules as the MS C runtime. - -bufsize, if given, has the same meaning as the corresponding argument -to the built-in open() function: 0 means unbuffered, 1 means line -buffered, any other positive value means use a buffer of -(approximately) that size. A negative bufsize means to use the system -default, which usually means fully buffered. The default value for -bufsize is 0 (unbuffered). - -stdin, stdout and stderr specify the executed programs' standard -input, standard output and standard error file handles, respectively. -Valid values are PIPE, an existing file descriptor (a positive -integer), an existing file object, and None. PIPE indicates that a -new pipe to the child should be created. With None, no redirection -will occur; the child's file handles will be inherited from the -parent. Additionally, stderr can be STDOUT, which indicates that the -stderr data from the applications should be captured into the same -file handle as for stdout. - -If preexec_fn is set to a callable object, this object will be called -in the child process just before the child is executed. - -If close_fds is true, all file descriptors except 0, 1 and 2 will be -closed before the child process is executed. - -if shell is true, the specified command will be executed through the -shell. - -If cwd is not None, the current directory will be changed to cwd -before the child is executed. - -If env is not None, it defines the environment variables for the new -process. - -If universal_newlines is true, the file objects stdout and stderr are -opened as a text files, but lines may be terminated by any of '\n', -the Unix end-of-line convention, '\r', the Macintosh convention or -'\r\n', the Windows convention. All of these external representations -are seen as '\n' by the Python program. Note: This feature is only -available if Python is built with universal newline support (the -default). Also, the newlines attribute of the file objects stdout, -stdin and stderr are not updated by the communicate() method. - -The startupinfo and creationflags, if given, will be passed to the -underlying CreateProcess() function. They can specify things such as -appearance of the main window and priority for the new process. -(Windows only) - - -This module also defines some shortcut functions: - -call(*popenargs, **kwargs): - Run command with arguments. Wait for command to complete, then - return the returncode attribute. - - The arguments are the same as for the Popen constructor. Example: - - retcode = call(["ls", "-l"]) - -check_call(*popenargs, **kwargs): - Run command with arguments. Wait for command to complete. If the - exit code was zero then return, otherwise raise - CalledProcessError. The CalledProcessError object will have the - return code in the returncode attribute. - - The arguments are the same as for the Popen constructor. Example: - - check_call(["ls", "-l"]) - -check_output(*popenargs, **kwargs): - Run command with arguments and return its output as a byte string. - - If the exit code was non-zero it raises a CalledProcessError. The - CalledProcessError object will have the return code in the returncode - attribute and output in the output attribute. - - The arguments are the same as for the Popen constructor. Example: - - output = check_output(["ls", "-l", "/dev/null"]) - - -Exceptions ----------- -Exceptions raised in the child process, before the new program has -started to execute, will be re-raised in the parent. Additionally, -the exception object will have one extra attribute called -'child_traceback', which is a string containing traceback information -from the child's point of view. - -The most common exception raised is OSError. This occurs, for -example, when trying to execute a non-existent file. Applications -should prepare for OSErrors. - -A ValueError will be raised if Popen is called with invalid arguments. - -check_call() and check_output() will raise CalledProcessError, if the -called process returns a non-zero return code. - - -Security --------- -Unlike some other popen functions, this implementation will never call -/bin/sh implicitly. This means that all characters, including shell -metacharacters, can safely be passed to child processes. - - -Popen objects -============= -Instances of the Popen class have the following methods: - -poll() - Check if child process has terminated. Returns returncode - attribute. - -wait() - Wait for child process to terminate. Returns returncode attribute. - -communicate(input=None) - Interact with process: Send data to stdin. Read data from stdout - and stderr, until end-of-file is reached. Wait for process to - terminate. The optional input argument should be a string to be - sent to the child process, or None, if no data should be sent to - the child. - - communicate() returns a tuple (stdout, stderr). - - Note: The data read is buffered in memory, so do not use this - method if the data size is large or unlimited. - -The following attributes are also available: - -stdin - If the stdin argument is PIPE, this attribute is a file object - that provides input to the child process. Otherwise, it is None. - -stdout - If the stdout argument is PIPE, this attribute is a file object - that provides output from the child process. Otherwise, it is - None. - -stderr - If the stderr argument is PIPE, this attribute is file object that - provides error output from the child process. Otherwise, it is - None. - -pid - The process ID of the child process. - -returncode - The child return code. A None value indicates that the process - hasn't terminated yet. A negative value -N indicates that the - child was terminated by signal N (UNIX only). - - -Replacing older functions with the subprocess module -==================================================== -In this section, "a ==> b" means that b can be used as a replacement -for a. - -Note: All functions in this section fail (more or less) silently if -the executed program cannot be found; this module raises an OSError -exception. - -In the following examples, we assume that the subprocess module is -imported with "from subprocess import *". - - -Replacing /bin/sh shell backquote ---------------------------------- -output=`mycmd myarg` -==> -output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] - - -Replacing shell pipe line -------------------------- -output=`dmesg | grep hda` -==> -p1 = Popen(["dmesg"], stdout=PIPE) -p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) -output = p2.communicate()[0] - - -Replacing os.system() ---------------------- -sts = os.system("mycmd" + " myarg") -==> -p = Popen("mycmd" + " myarg", shell=True) -pid, sts = os.waitpid(p.pid, 0) - -Note: - -* Calling the program through the shell is usually not required. - -* It's easier to look at the returncode attribute than the - exitstatus. - -A more real-world example would look like this: - -try: - retcode = call("mycmd" + " myarg", shell=True) - if retcode < 0: - print >>sys.stderr, "Child was terminated by signal", -retcode - else: - print >>sys.stderr, "Child returned", retcode -except OSError, e: - print >>sys.stderr, "Execution failed:", e - - -Replacing os.spawn* -------------------- -P_NOWAIT example: - -pid = os.spawnlp(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg") -==> -pid = Popen(["/bin/mycmd", "myarg"]).pid - - -P_WAIT example: - -retcode = os.spawnlp(os.P_WAIT, "/bin/mycmd", "mycmd", "myarg") -==> -retcode = call(["/bin/mycmd", "myarg"]) - - -Vector example: - -os.spawnvp(os.P_NOWAIT, path, args) -==> -Popen([path] + args[1:]) - - -Environment example: - -os.spawnlpe(os.P_NOWAIT, "/bin/mycmd", "mycmd", "myarg", env) -==> -Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"}) - - -Replacing os.popen* -------------------- -pipe = os.popen("cmd", mode='r', bufsize) -==> -pipe = Popen("cmd", shell=True, bufsize=bufsize, stdout=PIPE).stdout - -pipe = os.popen("cmd", mode='w', bufsize) -==> -pipe = Popen("cmd", shell=True, bufsize=bufsize, stdin=PIPE).stdin - - -(child_stdin, child_stdout) = os.popen2("cmd", mode, bufsize) -==> -p = Popen("cmd", shell=True, bufsize=bufsize, - stdin=PIPE, stdout=PIPE, close_fds=True) -(child_stdin, child_stdout) = (p.stdin, p.stdout) - - -(child_stdin, - child_stdout, - child_stderr) = os.popen3("cmd", mode, bufsize) -==> -p = Popen("cmd", shell=True, bufsize=bufsize, - stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) -(child_stdin, - child_stdout, - child_stderr) = (p.stdin, p.stdout, p.stderr) - - -(child_stdin, child_stdout_and_stderr) = os.popen4("cmd", mode, - bufsize) -==> -p = Popen("cmd", shell=True, bufsize=bufsize, - stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) -(child_stdin, child_stdout_and_stderr) = (p.stdin, p.stdout) - -On Unix, os.popen2, os.popen3 and os.popen4 also accept a sequence as -the command to execute, in which case arguments will be passed -directly to the program without shell intervention. This usage can be -replaced as follows: - -(child_stdin, child_stdout) = os.popen2(["/bin/ls", "-l"], mode, - bufsize) -==> -p = Popen(["/bin/ls", "-l"], bufsize=bufsize, stdin=PIPE, stdout=PIPE) -(child_stdin, child_stdout) = (p.stdin, p.stdout) - -Return code handling translates as follows: - -pipe = os.popen("cmd", 'w') -... -rc = pipe.close() -if rc is not None and rc % 256: - print "There were some errors" -==> -process = Popen("cmd", 'w', shell=True, stdin=PIPE) -... -process.stdin.close() -if process.wait() != 0: - print "There were some errors" - - -Replacing popen2.* ------------------- -(child_stdout, child_stdin) = popen2.popen2("somestring", bufsize, mode) -==> -p = Popen(["somestring"], shell=True, bufsize=bufsize - stdin=PIPE, stdout=PIPE, close_fds=True) -(child_stdout, child_stdin) = (p.stdout, p.stdin) - -On Unix, popen2 also accepts a sequence as the command to execute, in -which case arguments will be passed directly to the program without -shell intervention. This usage can be replaced as follows: - -(child_stdout, child_stdin) = popen2.popen2(["mycmd", "myarg"], bufsize, - mode) -==> -p = Popen(["mycmd", "myarg"], bufsize=bufsize, - stdin=PIPE, stdout=PIPE, close_fds=True) -(child_stdout, child_stdin) = (p.stdout, p.stdin) - -The popen2.Popen3 and popen2.Popen4 basically works as subprocess.Popen, -except that: - -* subprocess.Popen raises an exception if the execution fails -* the capturestderr argument is replaced with the stderr argument. -* stdin=PIPE and stdout=PIPE must be specified. -* popen2 closes all filedescriptors by default, but you have to specify - close_fds=True with subprocess.Popen. +input/output/error pipes, and obtain their return codes. + +For a complete description of this module see the Python documentation. + +Main API +======== +call(...): Runs a command, waits for it to complete, then returns + the return code. +check_call(...): Same as call() but raises CalledProcessError() + if return code is not 0 +check_output(...): Same as check_call() but returns the contents of + stdout instead of a return code +Popen(...): A class for flexibly executing a command in a new process + +Constants +--------- +PIPE: Special value that indicates a pipe should be created +STDOUT: Special value that indicates that stderr should go to stdout """ import sys @@ -400,8 +44,9 @@ import errno class CalledProcessError(Exception): """This exception is raised when a process run by check_call() or check_output() returns a non-zero exit status. - The exit status will be stored in the returncode attribute; - check_output() will also store the output in the output attribute. + + Attributes: + cmd, returncode, output """ def __init__(self, returncode, cmd, output=None): self.returncode = returncode @@ -646,6 +291,40 @@ def list2cmdline(seq): class Popen(object): + """ Execute a child program in a new process. + + For a complete description of the arguments see the Python documentation. + + Arguments: + args: A string, or a sequence of program arguments. + + bufsize: supplied as the buffering argument to the open() function when + creating the stdin/stdout/stderr pipe file objects + + executable: A replacement program to execute. + + stdin, stdout and stderr: These specify the executed programs' standard + input, standard output and standard error file handles, respectively. + + preexec_fn: (POSIX only) An object to be called in the child process + just before the child is executed. + + close_fds: Controls closing or inheriting of file descriptors. + + shell: If true, the command will be executed through the shell. + + cwd: Sets the current directory before the child is executed. + + env: Defines the environment variables for the new process. + + universal_newlines: If true, use universal line endings for file + objects stdin, stdout and stderr. + + startupinfo and creationflags (Windows only) + + Attributes: + stdin, stdout, stderr, pid, returncode + """ _child_created = False # Set here since __del__ checks it def __init__(self, args, bufsize=0, executable=None, @@ -801,6 +480,8 @@ class Popen(object): def poll(self): + """Check if child process has terminated. Set and return returncode + attribute.""" return self._internal_poll() diff --git a/Lib/tarfile.py b/Lib/tarfile.py index be68800..adf91d5 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1665,7 +1665,9 @@ class TarFile(object): if mode in ("r", "r:*"): # Find out which *open() is appropriate for opening the file. - for comptype in cls.OPEN_METH: + def not_compressed(comptype): + return cls.OPEN_METH[comptype] == 'taropen' + for comptype in sorted(cls.OPEN_METH, key=not_compressed): func = getattr(cls, cls.OPEN_METH[comptype]) if fileobj is not None: saved_pos = fileobj.tell() diff --git a/Lib/test/_mock_backport.py b/Lib/test/_mock_backport.py index f85becb..6081452 100644 --- a/Lib/test/_mock_backport.py +++ b/Lib/test/_mock_backport.py @@ -740,7 +740,7 @@ class NonCallableMock(Base): def _call_matcher(self, _call): """ - Given a call (or simply a (args, kwargs) tuple), return a + Given a call (or simply an (args, kwargs) tuple), return a comparison key suitable for matching with other calls. This is a best effort method which relies on the spec's signature, if available, or falls back on the arguments themselves. diff --git a/Lib/test/allsans.pem b/Lib/test/allsans.pem new file mode 100644 index 0000000..3ee4f59 --- /dev/null +++ b/Lib/test/allsans.pem @@ -0,0 +1,37 @@ +-----BEGIN PRIVATE KEY----- +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOoy7/QOtTjQ0niE +6uDcTwtkC0R2Tvy1AjVnXohCntZfdzbTGDoYTgXSOLsP8A697jUiJ8VCePGH50xG +Z4DKnAF3a9O3a9nr2pLXb0iY3XOMv+YEBii7CfI+3oxFYgCl0sMgHzDD2ZTVYAsm +DWgLUVsE2gHEccRwrM2tPf2EgR+FAgMBAAECgYEA3qyfyYVSeTrTYxO93x6ZaVMu +A2IZp9zSxMQL9bKiI2GRj+cV2ebSCGbg2btFnD6qBor7FWsmYz+8g6FNN/9sY4az +61rMqMtQvLBe+7L8w70FeTze4qQ4Y1oQri0qD6tBWhDVlpnbI5Py9bkZKD67yVUk +elcEA/5x4PrYXkuqsAECQQD80NjT0mDvaY0JOOaQFSEpMv6QiUA8GGX8Xli7IoKb +tAolPG8rQBa+qSpcWfDMTrWw/aWHuMEEQoP/bVDH9W4FAkEA7SYQbBAKnojZ5A3G +kOHdV7aeivRQxQk/JN8Fb8oKB9Csvpv/BsuGxPKXHdhFa6CBTTsNRtHQw/szPo4l +xMIjgQJAPoMxqibR+0EBM6+TKzteSL6oPXsCnBl4Vk/J5vPgkbmR7KUl4+7j8N8J +b2554TrxKEN/w7CGYZRE6UrRd7ATNQJAWD7Yz41sli+wfPdPU2xo1BHljyl4wMk/ +EPZYbI/PCbdyAH/F935WyQTIjNeEhZc1Zkq6FwdOWw8ns3hrv3rKgQJAHXv1BqUa +czGPIFxX2TNoqtcl6/En4vrxVB1wzsfzkkDAg98kBl7qsF+S3qujSzKikjeaVbI2 +/CyWR2P3yLtOmA== +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIDcjCCAtugAwIBAgIJAN5dc9TOWjB7MA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV +BAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEjMCEGA1UECgwaUHl0aG9u +IFNvZnR3YXJlIEZvdW5kYXRpb24xEDAOBgNVBAMMB2FsbHNhbnMwHhcNMTYwODA1 +MTAyMTExWhcNMjYwODAzMTAyMTExWjBdMQswCQYDVQQGEwJYWTEXMBUGA1UEBwwO +Q2FzdGxlIEFudGhyYXgxIzAhBgNVBAoMGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0 +aW9uMRAwDgYDVQQDDAdhbGxzYW5zMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQDqMu/0DrU40NJ4hOrg3E8LZAtEdk78tQI1Z16IQp7WX3c20xg6GE4F0ji7D/AO +ve41IifFQnjxh+dMRmeAypwBd2vTt2vZ69qS129ImN1zjL/mBAYouwnyPt6MRWIA +pdLDIB8ww9mU1WALJg1oC1FbBNoBxHHEcKzNrT39hIEfhQIDAQABo4IBODCCATQw +ggEwBgNVHREEggEnMIIBI4IHYWxsc2Fuc6AeBgMqAwSgFwwVc29tZSBvdGhlciBp +ZGVudGlmaWVyoDUGBisGAQUCAqArMCmgEBsOS0VSQkVST1MuUkVBTE2hFTAToAMC +AQGhDDAKGwh1c2VybmFtZYEQdXNlckBleGFtcGxlLm9yZ4IPd3d3LmV4YW1wbGUu +b3JnpGcwZTELMAkGA1UEBhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMw +IQYDVQQKDBpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEYMBYGA1UEAwwPZGly +bmFtZSBleGFtcGxlhhdodHRwczovL3d3dy5weXRob24ub3JnL4cEfwAAAYcQAAAA +AAAAAAAAAAAAAAAAAYgEKgMEBTANBgkqhkiG9w0BAQsFAAOBgQAy16h+F+nOmeiT +VWR0fc8F/j6FcadbLseAUaogcC15OGxCl4UYpLV88HBkABOoGCpP155qwWTwOrdG +iYPGJSusf1OnJEbvzFejZf6u078bPd9/ZL4VWLjv+FPGkjd+N+/OaqMvgj8Lu99f +3Y/C4S7YbHxxwff6C6l2Xli+q6gnuQ== +-----END CERTIFICATE----- diff --git a/Lib/test/check_soundcard.vbs b/Lib/test/check_soundcard.vbs deleted file mode 100644 index 8c21852..0000000 --- a/Lib/test/check_soundcard.vbs +++ /dev/null @@ -1,13 +0,0 @@ -rem Check for a working sound-card - exit with 0 if OK, 1 otherwise. -set wmi = GetObject("winmgmts:") -set scs = wmi.InstancesOf("win32_sounddevice") -for each sc in scs - set status = sc.Properties_("Status") - wscript.Echo(sc.Properties_("Name") + "/" + status) - if status = "OK" then - wscript.Quit 0 rem normal exit - end if -next -rem No sound card found - exit with status code of 1 -wscript.Quit 1 - diff --git a/Lib/test/decimaltestdata/exp.decTest b/Lib/test/decimaltestdata/exp.decTest index eab990d..cf8882f 100644 --- a/Lib/test/decimaltestdata/exp.decTest +++ b/Lib/test/decimaltestdata/exp.decTest @@ -19,7 +19,7 @@ ------------------------------------------------------------------------ version: 2.59 --- Tests of the exponential funtion. Currently all testcases here +-- Tests of the exponential function. Currently all testcases here -- show results which are correctly rounded (within <= 0.5 ulp). extended: 1 diff --git a/Lib/test/decimaltestdata/fma.decTest b/Lib/test/decimaltestdata/fma.decTest index a8197ef..ee2a8d4 100644 --- a/Lib/test/decimaltestdata/fma.decTest +++ b/Lib/test/decimaltestdata/fma.decTest @@ -148,7 +148,7 @@ fmax2018 fma 9.999999 -9.999999 0E+999999 -> -100.000 Inexact Rounded fmax2019 fma -9.999999 9.999999 0E+999999 -> -100.000 Inexact Rounded fmax2020 fma -9.999999 -9.999999 0E+999999 -> 100.000 Inexact Rounded --- 1999.12.21: next one is a edge case if intermediate longs are used +-- 1999.12.21: next one is an edge case if intermediate longs are used precision: 15 fmax2059 fma 999999999999 9765625 0E+999999 -> 9.76562499999023E+18 Inexact Rounded precision: 30 diff --git a/Lib/test/decimaltestdata/multiply.decTest b/Lib/test/decimaltestdata/multiply.decTest index 6a23d5a..e8bd77a 100644 --- a/Lib/test/decimaltestdata/multiply.decTest +++ b/Lib/test/decimaltestdata/multiply.decTest @@ -49,7 +49,7 @@ mulx018 multiply 9.999999999 -9.999999999 -> -100.000 Inexact Rounded mulx019 multiply -9.999999999 9.999999999 -> -100.000 Inexact Rounded mulx020 multiply -9.999999999 -9.999999999 -> 100.000 Inexact Rounded --- 1999.12.21: next one is a edge case if intermediate longs are used +-- 1999.12.21: next one is an edge case if intermediate longs are used precision: 15 mulx059 multiply 999999999999 9765625 -> 9.76562499999023E+18 Inexact Rounded precision: 30 diff --git a/Lib/test/make_ssl_certs.py b/Lib/test/make_ssl_certs.py index 81d04f8..a1f298d 100644 --- a/Lib/test/make_ssl_certs.py +++ b/Lib/test/make_ssl_certs.py @@ -20,7 +20,28 @@ req_template = """ CN = {hostname} [req_x509_extensions] - subjectAltName = DNS:{hostname} + subjectAltName = @san + + [san] + DNS.1 = {hostname} + {extra_san} + + [dir_sect] + C = XY + L = Castle Anthrax + O = Python Software Foundation + CN = dirname example + + [princ_name] + realm = EXP:0, GeneralString:KERBEROS.REALM + principal_name = EXP:1, SEQUENCE:principal_seq + + [principal_seq] + name_type = EXP:0, INTEGER:1 + name_string = EXP:1, SEQUENCE:principals + + [principals] + princ1 = GeneralString:username [ ca ] default_ca = CA_default @@ -67,7 +88,7 @@ req_template = """ here = os.path.abspath(os.path.dirname(__file__)) -def make_cert_key(hostname, sign=False): +def make_cert_key(hostname, sign=False, extra_san=''): print("creating cert for " + hostname) tempnames = [] for i in range(3): @@ -75,8 +96,9 @@ def make_cert_key(hostname, sign=False): tempnames.append(f.name) req_file, cert_file, key_file = tempnames try: + req = req_template.format(hostname=hostname, extra_san=extra_san) with open(req_file, 'w') as f: - f.write(req_template.format(hostname=hostname)) + f.write(req) args = ['req', '-new', '-days', '3650', '-nodes', '-newkey', 'rsa:1024', '-keyout', key_file, '-config', req_file] @@ -120,7 +142,7 @@ def make_ca(): f.write('unique_subject = no') with tempfile.NamedTemporaryFile("w") as t: - t.write(req_template.format(hostname='our-ca-server')) + t.write(req_template.format(hostname='our-ca-server', extra_san='')) t.flush() with tempfile.NamedTemporaryFile() as f: args = ['req', '-new', '-days', '3650', '-extensions', 'v3_ca', '-nodes', @@ -171,6 +193,25 @@ if __name__ == '__main__': f.write(key) f.write(cert) + extra_san = [ + 'otherName.1 = 1.2.3.4;UTF8:some other identifier', + 'otherName.2 = 1.3.6.1.5.2.2;SEQUENCE:princ_name', + 'email.1 = user@example.org', + 'DNS.2 = www.example.org', + # GEN_X400 + 'dirName.1 = dir_sect', + # GEN_EDIPARTY + 'URI.1 = https://www.python.org/', + 'IP.1 = 127.0.0.1', + 'IP.2 = ::1', + 'RID.1 = 1.2.3.4.5', + ] + + cert, key = make_cert_key('allsans', extra_san='\n'.join(extra_san)) + with open('allsans.pem', 'w') as f: + f.write(key) + f.write(cert) + unmake_ca() print("\n\nPlease change the values in test_ssl.py, test_parse_cert function related to notAfter,notBefore and serialNumber") check_call(['openssl','x509','-in','keycert.pem','-dates','-serial','-noout']) diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 855a9c4..022789d 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1572,6 +1572,7 @@ class REX_six(object): self.items = items def __eq__(self, other): return type(self) is type(other) and self.items == other.items + __hash__ = None def append(self, item): self.items.append(item) def extend(self, items): @@ -1590,6 +1591,7 @@ class REX_seven(object): self.table = table def __eq__(self, other): return type(self) is type(other) and self.table == other.table + __hash__ = None def __setitem__(self, key, value): self.table[key] = value def __reduce__(self): @@ -1639,6 +1641,7 @@ class SimpleNewObj(int): raise TypeError("SimpleNewObj.__init__() didn't expect to get called") def __eq__(self, other): return int(self) == int(other) and self.__dict__ == other.__dict__ + __hash__ = None class ComplexNewObj(SimpleNewObj): def __getnewargs__(self): diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index b6883b5..8017de9 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -931,6 +931,7 @@ def runtest_inner(test, verbose, quiet, huntrleaks=False, pgo=False): else: # Always import it from the test package abstest = 'test.' + test + clear_caches() with saved_test_environment(test, verbose, quiet, pgo) as environment: start_time = time.time() the_package = __import__(abstest, globals(), locals(), []) @@ -1096,16 +1097,6 @@ def dash_R(the_module, test, indirect_test, huntrleaks): def dash_R_cleanup(fs, ps, pic, zdc, abcs): import gc, copy_reg - import _strptime, linecache - dircache = test_support.import_module('dircache', deprecated=True) - import urlparse, urllib, urllib2, mimetypes, doctest - import struct, filecmp - from distutils.dir_util import _path_created - - # Clear the warnings registry, so they can be displayed again - for mod in sys.modules.values(): - if hasattr(mod, '__warningregistry__'): - del mod.__warningregistry__ # Restore some original values. warnings.filters[:] = fs @@ -1130,23 +1121,100 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs): abc._abc_cache.clear() abc._abc_negative_cache.clear() + clear_caches() + +def clear_caches(): + import gc + + # Clear the warnings registry, so they can be displayed again + for mod in sys.modules.values(): + if hasattr(mod, '__warningregistry__'): + del mod.__warningregistry__ + # Clear assorted module caches. - _path_created.clear() + # Don't worry about resetting the cache if the module is not loaded + try: + distutils_dir_util = sys.modules['distutils.dir_util'] + except KeyError: + pass + else: + distutils_dir_util._path_created.clear() + re.purge() - _strptime._regex_cache.clear() - urlparse.clear_cache() - urllib.urlcleanup() - urllib2.install_opener(None) - dircache.reset() - linecache.clearcache() - mimetypes._default_mime_types() - filecmp._cache.clear() - struct._clearcache() - doctest.master = None + try: - import ctypes - except ImportError: - # Don't worry about resetting the cache if ctypes is not supported + _strptime = sys.modules['_strptime'] + except KeyError: + pass + else: + _strptime._regex_cache.clear() + + try: + urlparse = sys.modules['urlparse'] + except KeyError: + pass + else: + urlparse.clear_cache() + + try: + urllib = sys.modules['urllib'] + except KeyError: + pass + else: + urllib.urlcleanup() + + try: + urllib2 = sys.modules['urllib2'] + except KeyError: + pass + else: + urllib2.install_opener(None) + + try: + dircache = sys.modules['dircache'] + except KeyError: + pass + else: + dircache.reset() + + try: + linecache = sys.modules['linecache'] + except KeyError: + pass + else: + linecache.clearcache() + + try: + mimetypes = sys.modules['mimetypes'] + except KeyError: + pass + else: + mimetypes._default_mime_types() + + try: + filecmp = sys.modules['filecmp'] + except KeyError: + pass + else: + filecmp._cache.clear() + + try: + struct = sys.modules['struct'] + except KeyError: + pass + else: + struct._clearcache() + + try: + doctest = sys.modules['doctest'] + except KeyError: + pass + else: + doctest.master = None + + try: + ctypes = sys.modules['ctypes'] + except KeyError: pass else: ctypes._reset_cache() diff --git a/Lib/test/ssltests.py b/Lib/test/ssltests.py new file mode 100644 index 0000000..36561b9 --- /dev/null +++ b/Lib/test/ssltests.py @@ -0,0 +1,36 @@ +# Convenience test module to run all of the OpenSSL-related tests in the +# standard library. + +import ssl +import sys +import subprocess + +TESTS = [ + 'test_ensurepip.py', 'test_ftplib', 'test_hashlib', + 'test_hmac', 'test_httplib', 'test_imaplib', 'test_nntplib', + 'test_poplib', 'test_ssl', 'test_smtplib', 'test_smtpnet', + 'test_urllib2_localnet', 'test_xmlrpc' +] + +def run_regrtests(*extra_args): + print(ssl.OPENSSL_VERSION) + args = [ + sys.executable, + '-Werror', '-bb', # turn warnings into exceptions + '-m', 'test.regrtest', + ] + if not extra_args: + args.extend([ + '-r', # randomize + '-w', # re-run failed tests with -v + '-u', 'network', # use network + '-u', 'urlfetch', # download test vectors + ]) + else: + args.extend(extra_args) + args.extend(TESTS) + result = subprocess.call(args) + sys.exit(result) + +if __name__ == '__main__': + run_regrtests(*sys.argv[1:]) diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py index 9f5c09d..0e6f515 100644 --- a/Lib/test/test_array.py +++ b/Lib/test/test_array.py @@ -22,9 +22,9 @@ typecodes = "cbBhHiIlLfd" if test_support.have_unicode: typecodes += "u" -class BadConstructorTest(unittest.TestCase): +class MiscTest(unittest.TestCase): - def test_constructor(self): + def test_bad_constructor(self): self.assertRaises(TypeError, array.array) self.assertRaises(TypeError, array.array, spam=42) self.assertRaises(TypeError, array.array, 'xx') @@ -40,7 +40,17 @@ class BadConstructorTest(unittest.TestCase): self.assertRaises(ValueError, array.array, u'x') self.assertRaises(ValueError, array.array, u'\x80') -tests.append(BadConstructorTest) + def test_empty(self): + # Exercise code for handling zero-length arrays + a = array.array('B') + a[:] = a + self.assertEqual(len(a), 0) + self.assertEqual(len(a + a), 0) + self.assertEqual(len(a * 3), 0) + a += a + self.assertEqual(len(a), 0) + +tests.append(MiscTest) class BaseTest(unittest.TestCase): # Required class attributes (provided by subclasses diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index d40b672..209126b 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -176,35 +176,106 @@ class BinASCIITest(unittest.TestCase): self.assertEqual(binascii.hexlify(unicode('a', 'ascii')), '61') def test_qp(self): + type2test = self.type2test + a2b_qp = binascii.a2b_qp + b2a_qp = binascii.b2a_qp + + a2b_qp(data=b"", header=False) # Keyword arguments allowed + # A test for SF bug 534347 (segfaults without the proper fix) try: - binascii.a2b_qp("", **{1:1}) + a2b_qp(b"", **{1:1}) except TypeError: pass else: self.fail("binascii.a2b_qp(**{1:1}) didn't raise TypeError") - self.assertEqual(binascii.a2b_qp("= "), "= ") - self.assertEqual(binascii.a2b_qp("=="), "=") - self.assertEqual(binascii.a2b_qp("=AX"), "=AX") - self.assertRaises(TypeError, binascii.b2a_qp, foo="bar") - self.assertEqual(binascii.a2b_qp("=00\r\n=00"), "\x00\r\n\x00") - self.assertEqual( - binascii.b2a_qp("\xff\r\n\xff\n\xff"), - "=FF\r\n=FF\r\n=FF" - ) - self.assertEqual( - binascii.b2a_qp("0"*75+"\xff\r\n\xff\r\n\xff"), - "0"*75+"=\r\n=FF\r\n=FF\r\n=FF" - ) - - self.assertEqual(binascii.b2a_qp('\0\n'), '=00\n') - self.assertEqual(binascii.b2a_qp('\0\n', quotetabs=True), '=00\n') - self.assertEqual(binascii.b2a_qp('foo\tbar\t\n'), 'foo\tbar=09\n') - self.assertEqual(binascii.b2a_qp('foo\tbar\t\n', quotetabs=True), 'foo=09bar=09\n') - - self.assertEqual(binascii.b2a_qp('.'), '=2E') - self.assertEqual(binascii.b2a_qp('.\n'), '=2E\n') - self.assertEqual(binascii.b2a_qp('a.\n'), 'a.\n') + + self.assertEqual(a2b_qp(type2test(b"=")), b"") + self.assertEqual(a2b_qp(type2test(b"= ")), b"= ") + self.assertEqual(a2b_qp(type2test(b"==")), b"=") + self.assertEqual(a2b_qp(type2test(b"=\nAB")), b"AB") + self.assertEqual(a2b_qp(type2test(b"=\r\nAB")), b"AB") + self.assertEqual(a2b_qp(type2test(b"=\rAB")), b"") # ? + self.assertEqual(a2b_qp(type2test(b"=\rAB\nCD")), b"CD") # ? + self.assertEqual(a2b_qp(type2test(b"=AB")), b"\xab") + self.assertEqual(a2b_qp(type2test(b"=ab")), b"\xab") + self.assertEqual(a2b_qp(type2test(b"=AX")), b"=AX") + self.assertEqual(a2b_qp(type2test(b"=XA")), b"=XA") + self.assertEqual(a2b_qp(type2test(b"=AB")[:-1]), b"=A") + + self.assertEqual(a2b_qp(type2test(b'_')), b'_') + self.assertEqual(a2b_qp(type2test(b'_'), header=True), b' ') + + self.assertRaises(TypeError, b2a_qp, foo="bar") + self.assertEqual(a2b_qp(type2test(b"=00\r\n=00")), b"\x00\r\n\x00") + self.assertEqual(b2a_qp(type2test(b"\xff\r\n\xff\n\xff")), + b"=FF\r\n=FF\r\n=FF") + self.assertEqual(b2a_qp(type2test(b"0"*75+b"\xff\r\n\xff\r\n\xff")), + b"0"*75+b"=\r\n=FF\r\n=FF\r\n=FF") + + self.assertEqual(b2a_qp(type2test(b'\x7f')), b'=7F') + self.assertEqual(b2a_qp(type2test(b'=')), b'=3D') + + self.assertEqual(b2a_qp(type2test(b'_')), b'_') + self.assertEqual(b2a_qp(type2test(b'_'), header=True), b'=5F') + self.assertEqual(b2a_qp(type2test(b'x y'), header=True), b'x_y') + self.assertEqual(b2a_qp(type2test(b'x '), header=True), b'x=20') + self.assertEqual(b2a_qp(type2test(b'x y'), header=True, quotetabs=True), + b'x=20y') + self.assertEqual(b2a_qp(type2test(b'x\ty'), header=True), b'x\ty') + + self.assertEqual(b2a_qp(type2test(b' ')), b'=20') + self.assertEqual(b2a_qp(type2test(b'\t')), b'=09') + self.assertEqual(b2a_qp(type2test(b' x')), b' x') + self.assertEqual(b2a_qp(type2test(b'\tx')), b'\tx') + self.assertEqual(b2a_qp(type2test(b' x')[:-1]), b'=20') + self.assertEqual(b2a_qp(type2test(b'\tx')[:-1]), b'=09') + self.assertEqual(b2a_qp(type2test(b'\0')), b'=00') + + self.assertEqual(b2a_qp(type2test(b'\0\n')), b'=00\n') + self.assertEqual(b2a_qp(type2test(b'\0\n'), quotetabs=True), b'=00\n') + + self.assertEqual(b2a_qp(type2test(b'x y\tz')), b'x y\tz') + self.assertEqual(b2a_qp(type2test(b'x y\tz'), quotetabs=True), + b'x=20y=09z') + self.assertEqual(b2a_qp(type2test(b'x y\tz'), istext=False), + b'x y\tz') + self.assertEqual(b2a_qp(type2test(b'x \ny\t\n')), + b'x=20\ny=09\n') + self.assertEqual(b2a_qp(type2test(b'x \ny\t\n'), quotetabs=True), + b'x=20\ny=09\n') + self.assertEqual(b2a_qp(type2test(b'x \ny\t\n'), istext=False), + b'x =0Ay\t=0A') + self.assertEqual(b2a_qp(type2test(b'x \ry\t\r')), + b'x \ry\t\r') + self.assertEqual(b2a_qp(type2test(b'x \ry\t\r'), quotetabs=True), + b'x=20\ry=09\r') + self.assertEqual(b2a_qp(type2test(b'x \ry\t\r'), istext=False), + b'x =0Dy\t=0D') + self.assertEqual(b2a_qp(type2test(b'x \r\ny\t\r\n')), + b'x=20\r\ny=09\r\n') + self.assertEqual(b2a_qp(type2test(b'x \r\ny\t\r\n'), quotetabs=True), + b'x=20\r\ny=09\r\n') + self.assertEqual(b2a_qp(type2test(b'x \r\ny\t\r\n'), istext=False), + b'x =0D=0Ay\t=0D=0A') + + self.assertEqual(b2a_qp(type2test(b'x \r\n')[:-1]), b'x \r') + self.assertEqual(b2a_qp(type2test(b'x\t\r\n')[:-1]), b'x\t\r') + self.assertEqual(b2a_qp(type2test(b'x \r\n')[:-1], quotetabs=True), + b'x=20\r') + self.assertEqual(b2a_qp(type2test(b'x\t\r\n')[:-1], quotetabs=True), + b'x=09\r') + self.assertEqual(b2a_qp(type2test(b'x \r\n')[:-1], istext=False), + b'x =0D') + self.assertEqual(b2a_qp(type2test(b'x\t\r\n')[:-1], istext=False), + b'x\t=0D') + + self.assertEqual(b2a_qp(type2test(b'.')), b'=2E') + self.assertEqual(b2a_qp(type2test(b'.\n')), b'=2E\n') + self.assertEqual(b2a_qp(type2test(b'.\r')), b'=2E\r') + self.assertEqual(b2a_qp(type2test(b'.\0')), b'=2E=00') + self.assertEqual(b2a_qp(type2test(b'a.\n')), b'a.\n') + self.assertEqual(b2a_qp(type2test(b'.a')[:-1]), b'=2E') def test_empty_string(self): # A test for SF bug #1022953. Make sure SystemError is not raised. diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 46c4a6f..b87b04f 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -291,6 +291,27 @@ class CalendarTestCase(unittest.TestCase): # see #15421 list(calendar.Calendar().itermonthdates(datetime.MAXYEAR, 12)) + def test_itermonthdays(self): + for firstweekday in range(7): + cal = calendar.Calendar(firstweekday) + # Test the extremes, see #28253 and #26650 + for y, m in [(1, 1), (9999, 12)]: + days = list(cal.itermonthdays(y, m)) + self.assertIn(len(days), (35, 42)) + # Test a short month + cal = calendar.Calendar(firstweekday=3) + days = list(cal.itermonthdays(2001, 2)) + self.assertEqual(days, list(range(1, 29))) + + def test_itermonthdays2(self): + for firstweekday in range(7): + cal = calendar.Calendar(firstweekday) + # Test the extremes, see #28253 and #26650 + for y, m in [(1, 1), (9999, 12)]: + days = list(cal.itermonthdays2(y, m)) + self.assertEqual(days[0][1], firstweekday) + self.assertEqual(days[-1][1], (firstweekday - 1) % 7) + class MonthCalendarTestCase(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index c588999..142261e 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -113,6 +113,51 @@ class CodeTest(unittest.TestCase): self.assertEqual(co.co_firstlineno, 15) +def isinterned(s): + return s is intern(('_' + s + '_')[1:-1]) + +class CodeConstsTest(unittest.TestCase): + + def find_const(self, consts, value): + for v in consts: + if v == value: + return v + self.assertIn(value, consts) # raises an exception + self.fail('Should never be reached') + + def assertIsInterned(self, s): + if not isinterned(s): + self.fail('String %r is not interned' % (s,)) + + def assertIsNotInterned(self, s): + if isinterned(s): + self.fail('String %r is interned' % (s,)) + + @cpython_only + def test_interned_string(self): + co = compile('res = "str_value"', '?', 'exec') + v = self.find_const(co.co_consts, 'str_value') + self.assertIsInterned(v) + + @cpython_only + def test_interned_string_in_tuple(self): + co = compile('res = ("str_value",)', '?', 'exec') + v = self.find_const(co.co_consts, ('str_value',)) + self.assertIsInterned(v[0]) + + @cpython_only + def test_interned_string_default(self): + def f(a='str_value'): + return a + self.assertIsInterned(f()) + + @cpython_only + def test_interned_string_with_null(self): + co = compile(r'res = "str\0value!"', '?', 'exec') + v = self.find_const(co.co_consts, 'str\0value!') + self.assertIsNotInterned(v) + + class CodeWeakRefTest(unittest.TestCase): def test_basic(self): @@ -141,7 +186,7 @@ class CodeWeakRefTest(unittest.TestCase): def test_main(verbose=None): from test import test_code run_doctest(test_code, verbose) - run_unittest(CodeTest, CodeWeakRefTest) + run_unittest(CodeTest, CodeConstsTest, CodeWeakRefTest) if __name__ == "__main__": diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py index a6568d7..f2dd972 100644 --- a/Lib/test/test_cookielib.py +++ b/Lib/test/test_cookielib.py @@ -6,6 +6,7 @@ import os import re import time +from cookielib import http2time, time2isoz, time2netscape from unittest import TestCase from test import test_support @@ -14,8 +15,6 @@ from test import test_support class DateTimeTests(TestCase): def test_time2isoz(self): - from cookielib import time2isoz - base = 1019227000 day = 24*3600 self.assertEqual(time2isoz(base), "2002-04-19 14:36:40Z") @@ -30,9 +29,29 @@ class DateTimeTests(TestCase): r"^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$", "bad time2isoz format: %s %s" % (az, bz)) - def test_http2time(self): - from cookielib import http2time + def test_time2netscape(self): + base = 1019227000 + day = 24*3600 + self.assertEqual(time2netscape(base), "Fri, 19-Apr-2002 14:36:40 GMT") + self.assertEqual(time2netscape(base+day), + "Sat, 20-Apr-2002 14:36:40 GMT") + + self.assertEqual(time2netscape(base+2*day), + "Sun, 21-Apr-2002 14:36:40 GMT") + + self.assertEqual(time2netscape(base+3*day), + "Mon, 22-Apr-2002 14:36:40 GMT") + az = time2netscape() + bz = time2netscape(500000) + for text in (az, bz): + # Format "%s, %02d-%s-%04d %02d:%02d:%02d GMT" + self.assertRegexpMatches( + text, + r"[a-zA-Z]{3}, \d{2}-[a-zA-Z]{3}-\d{4} \d{2}:\d{2}:\d{2} GMT$", + "bad time2netscape format: %s %s" % (az, bz)) + + def test_http2time(self): def parse_date(text): return time.gmtime(http2time(text))[:6] @@ -45,7 +64,7 @@ class DateTimeTests(TestCase): self.assertEqual(parse_date("03-Feb-98"), (1998, 2, 3, 0, 0, 0.0)) def test_http2time_formats(self): - from cookielib import http2time, time2isoz + # test http2time for supported dates. Test cases with 2 digit year # will probably break in year 2044. @@ -81,8 +100,6 @@ class DateTimeTests(TestCase): self.assertEqual(http2time(s.upper()), test_t, s.upper()) def test_http2time_garbage(self): - from cookielib import http2time - for test in [ '', 'Garbage', @@ -329,7 +346,7 @@ class CookieTests(TestCase): ## comma-separated list, it'll be a headache to parse (at least my head ## starts hurting every time I think of that code). ## - Expires: You'll get all sorts of date formats in the expires, -## including emtpy expires attributes ("expires="). Be as flexible as you +## including empty expires attributes ("expires="). Be as flexible as you ## can, and certainly don't expect the weekday to be there; if you can't ## parse it, just ignore it and pretend it's a session cookie. ## - Domain-matching: Netscape uses the 2-dot rule for _all_ domains, not diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index c9abfe3..8a39cd0 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -10,6 +10,7 @@ # import os +import string import sys import tempfile import unittest @@ -62,7 +63,7 @@ class TestCurses(unittest.TestCase): def setUp(self): if verbose: # just to make the test output a little more readable - print() + print('') self.stdscr = curses.initscr() curses.savetty() @@ -184,6 +185,11 @@ class TestCurses(unittest.TestCase): if hasattr(curses, 'enclose'): stdscr.enclose() + self.assertRaises(ValueError, stdscr.getstr, -400) + self.assertRaises(ValueError, stdscr.getstr, 2, 3, -400) + self.assertRaises(ValueError, stdscr.instr, -2) + self.assertRaises(ValueError, stdscr.instr, 2, 3, -2) + def test_module_funcs(self): "Test module-level functions" @@ -324,6 +330,53 @@ class TestCurses(unittest.TestCase): class TestAscii(unittest.TestCase): + def test_controlnames(self): + for name in curses.ascii.controlnames: + self.assertTrue(hasattr(curses.ascii, name), name) + + def test_ctypes(self): + def check(func, expected): + self.assertEqual(func(i), expected) + self.assertEqual(func(c), expected) + + for i in range(256): + c = b = chr(i) + check(curses.ascii.isalnum, b.isalnum()) + check(curses.ascii.isalpha, b.isalpha()) + check(curses.ascii.isdigit, b.isdigit()) + check(curses.ascii.islower, b.islower()) + check(curses.ascii.isspace, b.isspace()) + check(curses.ascii.isupper, b.isupper()) + + check(curses.ascii.isascii, i < 128) + check(curses.ascii.ismeta, i >= 128) + check(curses.ascii.isctrl, i < 32) + check(curses.ascii.iscntrl, i < 32 or i == 127) + check(curses.ascii.isblank, c in ' \t') + check(curses.ascii.isgraph, 32 < i <= 126) + check(curses.ascii.isprint, 32 <= i <= 126) + check(curses.ascii.ispunct, c in string.punctuation) + check(curses.ascii.isxdigit, c in string.hexdigits) + + def test_ascii(self): + ascii = curses.ascii.ascii + self.assertEqual(ascii('\xc1'), 'A') + self.assertEqual(ascii('A'), 'A') + self.assertEqual(ascii(ord('\xc1')), ord('A')) + + def test_ctrl(self): + ctrl = curses.ascii.ctrl + self.assertEqual(ctrl('J'), '\n') + self.assertEqual(ctrl('\n'), '\n') + self.assertEqual(ctrl('@'), '\0') + self.assertEqual(ctrl(ord('J')), ord('\n')) + + def test_alt(self): + alt = curses.ascii.alt + self.assertEqual(alt('\n'), '\x8a') + self.assertEqual(alt('A'), '\xc1') + self.assertEqual(alt(ord('A')), 0xc1) + def test_unctrl(self): unctrl = curses.ascii.unctrl self.assertEqual(unctrl('a'), 'a') @@ -333,9 +386,13 @@ class TestAscii(unittest.TestCase): self.assertEqual(unctrl('\x7f'), '^?') self.assertEqual(unctrl('\n'), '^J') self.assertEqual(unctrl('\0'), '^@') + self.assertEqual(unctrl(ord('A')), 'A') + self.assertEqual(unctrl(ord('\n')), '^J') # Meta-bit characters self.assertEqual(unctrl('\x8a'), '!^J') self.assertEqual(unctrl('\xc1'), '!A') + self.assertEqual(unctrl(ord('\x8a')), '!^J') + self.assertEqual(unctrl(ord('\xc1')), '!A') def test_main(): diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index 1f7fb776..20abe74 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -3343,7 +3343,7 @@ class Oddballs(unittest.TestCase): self.assertRaises(TypeError, lambda: as_date >= as_datetime) self.assertRaises(TypeError, lambda: as_datetime >= as_date) - # Neverthelss, comparison should work with the base-class (date) + # Nevertheless, comparison should work with the base-class (date) # projection if use of a date method is forced. self.assertTrue(as_date.__eq__(as_datetime)) different_day = (as_date.day + 1) % 20 + 1 diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py index 3e88168..c81064d 100644 --- a/Lib/test/test_deque.py +++ b/Lib/test/test_deque.py @@ -329,7 +329,7 @@ class TestBasic(unittest.TestCase): d.clear() self.assertEqual(len(d), 0) self.assertEqual(list(d), []) - d.clear() # clear an emtpy deque + d.clear() # clear an empty deque self.assertEqual(list(d), []) def test_remove(self): diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 9bc114b..fc965f7 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -684,7 +684,7 @@ class ClassPropertiesAndMethods(unittest.TestCase): self.fail("inheriting from ModuleType and str at the same time " "should fail") - def test_multiple_inheritence(self): + def test_multiple_inheritance(self): # Testing multiple inheritance... class C(object): def __init__(self): @@ -815,7 +815,7 @@ class ClassPropertiesAndMethods(unittest.TestCase): else: self.fail("new class with only classic bases - shouldn't be") - def test_diamond_inheritence(self): + def test_diamond_inheritance(self): # Testing multiple inheritance special cases... class A(object): def spam(self): return "A" diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index 7cf7d06..354c33b 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -2113,7 +2113,7 @@ def test_DocTestSuite(): ... AttributeError: 'module' object has no attribute 'sillySetup' - The setUp and tearDown funtions are passed test objects. Here + The setUp and tearDown functions are passed test objects. Here we'll use the setUp function to supply the missing variable y: >>> def setUp(test): @@ -2259,7 +2259,7 @@ def test_DocFileSuite(): ... AttributeError: 'module' object has no attribute 'sillySetup' - The setUp and tearDown funtions are passed test objects. + The setUp and tearDown functions are passed test objects. Here, we'll use a setUp function to set the favorite color in test_doctest.txt: diff --git a/Lib/test/test_docxmlrpc.py b/Lib/test/test_docxmlrpc.py index a1a1fcf..4dff415 100644 --- a/Lib/test/test_docxmlrpc.py +++ b/Lib/test/test_docxmlrpc.py @@ -3,12 +3,8 @@ import httplib import sys from test import test_support threading = test_support.import_module('threading') -import time -import socket import unittest -PORT = None - def make_request_and_skipIf(condition, reason): # If we skip the test, we have to make a request because # the server created in setUp blocks expecting one to come in. @@ -23,13 +19,10 @@ def make_request_and_skipIf(condition, reason): return decorator -def server(evt, numrequests): +def make_server(): serv = DocXMLRPCServer(("localhost", 0), logRequests=False) try: - global PORT - PORT = serv.socket.getsockname()[1] - # Add some documentation serv.set_server_title("DocXMLRPCServer Test Documentation") serv.set_server_name("DocXMLRPCServer Test Docs") @@ -56,42 +49,31 @@ def server(evt, numrequests): serv.register_function(add) serv.register_function(lambda x, y: x-y) - - while numrequests > 0: - serv.handle_request() - numrequests -= 1 - except socket.timeout: - pass - finally: + return serv + except: serv.server_close() - PORT = None - evt.set() + raise class DocXMLRPCHTTPGETServer(unittest.TestCase): def setUp(self): - self._threads = test_support.threading_setup() # Enable server feedback DocXMLRPCServer._send_traceback_header = True - self.evt = threading.Event() - threading.Thread(target=server, args=(self.evt, 1)).start() - - # wait for port to be assigned - n = 1000 - while n > 0 and PORT is None: - time.sleep(0.001) - n -= 1 + self.serv = make_server() + self.thread = threading.Thread(target=self.serv.serve_forever) + self.thread.start() + PORT = self.serv.server_address[1] self.client = httplib.HTTPConnection("localhost:%d" % PORT) def tearDown(self): self.client.close() - self.evt.wait() - # Disable server feedback DocXMLRPCServer._send_traceback_header = False - test_support.threading_cleanup(*self._threads) + self.serv.shutdown() + self.thread.join() + self.serv.server_close() def test_valid_get_response(self): self.client.request("GET", "/") @@ -153,7 +135,7 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase): @make_request_and_skipIf(sys.flags.optimize >= 2, "Docstrings are omitted with -O2 and above") def test_system_methods(self): - """Test the precense of three consecutive system.* methods. + """Test the presence of three consecutive system.* methods. This also tests their use of parameter type recognition and the systems related to that process. diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py index 6520efd..024ddda 100644 --- a/Lib/test/test_dumbdbm.py +++ b/Lib/test/test_dumbdbm.py @@ -3,6 +3,7 @@ """ import os +import stat import unittest import dumbdbm from test import test_support @@ -168,6 +169,26 @@ class DumbDBMTestCase(unittest.TestCase): dumbdbm.open(_fname).close() self.assertEqual(stdout.getvalue(), '') + @unittest.skipUnless(hasattr(os, 'chmod'), 'test needs os.chmod()') + def test_readonly_files(self): + dir = _fname + os.mkdir(dir) + try: + fname = os.path.join(dir, 'db') + f = dumbdbm.open(fname, 'n') + self.assertEqual(list(f.keys()), []) + for key in self._dict: + f[key] = self._dict[key] + f.close() + os.chmod(fname + ".dir", stat.S_IRUSR) + os.chmod(fname + ".dat", stat.S_IRUSR) + os.chmod(dir, stat.S_IRUSR|stat.S_IXUSR) + f = dumbdbm.open(fname, 'r') + self.assertEqual(sorted(f.keys()), sorted(self._dict)) + f.close() # don't write + finally: + test_support.rmtree(dir) + def tearDown(self): _delete_files() diff --git a/Lib/test/test_ensurepip.py b/Lib/test/test_ensurepip.py index 8645f05..3316fcf 100644 --- a/Lib/test/test_ensurepip.py +++ b/Lib/test/test_ensurepip.py @@ -9,22 +9,6 @@ import test.test_support import ensurepip import ensurepip._uninstall -# pip currently requires ssl support, so we ensure we handle -# it being missing (http://bugs.python.org/issue19744) -ensurepip_no_ssl = test.test_support.import_fresh_module("ensurepip", - blocked=["ssl"]) -try: - import ssl -except ImportError: - ssl = None - - def requires_usable_pip(f): - deco = unittest.skip(ensurepip._MISSING_SSL_MESSAGE) - return deco(f) -else: - def requires_usable_pip(f): - return f - class TestEnsurePipVersion(unittest.TestCase): @@ -51,7 +35,6 @@ class EnsurepipMixin: class TestBootstrap(EnsurepipMixin, unittest.TestCase): - @requires_usable_pip def test_basic_bootstrapping(self): ensurepip.bootstrap() @@ -66,7 +49,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): additional_paths = self.run_pip.call_args[0][1] self.assertEqual(len(additional_paths), 2) - @requires_usable_pip def test_bootstrapping_with_root(self): ensurepip.bootstrap(root="/foo/bar/") @@ -79,7 +61,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) @@ -91,7 +72,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_upgrade(self): ensurepip.bootstrap(upgrade=True) @@ -103,7 +83,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_verbosity_1(self): ensurepip.bootstrap(verbosity=1) @@ -115,7 +94,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_verbosity_2(self): ensurepip.bootstrap(verbosity=2) @@ -127,7 +105,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_verbosity_3(self): ensurepip.bootstrap(verbosity=3) @@ -139,17 +116,14 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): mock.ANY, ) - @requires_usable_pip def test_bootstrapping_with_regular_install(self): ensurepip.bootstrap() self.assertEqual(self.os_environ["ENSUREPIP_OPTIONS"], "install") - @requires_usable_pip def test_bootstrapping_with_alt_install(self): ensurepip.bootstrap(altinstall=True) self.assertEqual(self.os_environ["ENSUREPIP_OPTIONS"], "altinstall") - @requires_usable_pip def test_bootstrapping_with_default_pip(self): ensurepip.bootstrap(default_pip=True) self.assertNotIn("ENSUREPIP_OPTIONS", self.os_environ) @@ -159,7 +133,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): ensurepip.bootstrap(altinstall=True, default_pip=True) self.assertFalse(self.run_pip.called) - @requires_usable_pip def test_pip_environment_variables_removed(self): # ensurepip deliberately ignores all pip environment variables # See http://bugs.python.org/issue19734 for details @@ -167,7 +140,6 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase): ensurepip.bootstrap() self.assertNotIn("PIP_THIS_SHOULD_GO_AWAY", self.os_environ) - @requires_usable_pip def test_pip_config_file_disabled(self): # ensurepip deliberately ignores the pip config file # See http://bugs.python.org/issue20053 for details @@ -210,7 +182,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): self.assertIn("only uninstall a matching version", warning) self.assertFalse(self.run_pip.called) - @requires_usable_pip def test_uninstall(self): with fake_pip(): ensurepip._uninstall_helper() @@ -222,7 +193,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ] ) - @requires_usable_pip def test_uninstall_with_verbosity_1(self): with fake_pip(): ensurepip._uninstall_helper(verbosity=1) @@ -234,7 +204,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ] ) - @requires_usable_pip def test_uninstall_with_verbosity_2(self): with fake_pip(): ensurepip._uninstall_helper(verbosity=2) @@ -246,7 +215,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ] ) - @requires_usable_pip def test_uninstall_with_verbosity_3(self): with fake_pip(): ensurepip._uninstall_helper(verbosity=3) @@ -258,7 +226,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ] ) - @requires_usable_pip def test_pip_environment_variables_removed(self): # ensurepip deliberately ignores all pip environment variables # See http://bugs.python.org/issue19734 for details @@ -267,7 +234,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): ensurepip._uninstall_helper() self.assertNotIn("PIP_THIS_SHOULD_GO_AWAY", self.os_environ) - @requires_usable_pip def test_pip_config_file_disabled(self): # ensurepip deliberately ignores the pip config file # See http://bugs.python.org/issue20053 for details @@ -276,38 +242,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase): self.assertEqual(self.os_environ["PIP_CONFIG_FILE"], os.devnull) -class TestMissingSSL(EnsurepipMixin, unittest.TestCase): - - def setUp(self): - sys.modules["ensurepip"] = ensurepip_no_ssl - - @self.addCleanup - def restore_module(): - sys.modules["ensurepip"] = ensurepip - super(TestMissingSSL, self).setUp() - - def test_bootstrap_requires_ssl(self): - self.os_environ["PIP_THIS_SHOULD_STAY"] = "test fodder" - with self.assertRaisesRegexp(RuntimeError, "requires SSL/TLS"): - ensurepip_no_ssl.bootstrap() - self.assertFalse(self.run_pip.called) - self.assertIn("PIP_THIS_SHOULD_STAY", self.os_environ) - - def test_uninstall_requires_ssl(self): - self.os_environ["PIP_THIS_SHOULD_STAY"] = "test fodder" - with self.assertRaisesRegexp(RuntimeError, "requires SSL/TLS"): - with fake_pip(): - ensurepip_no_ssl._uninstall_helper() - self.assertFalse(self.run_pip.called) - self.assertIn("PIP_THIS_SHOULD_STAY", self.os_environ) - - def test_main_exits_early_with_warning(self): - with test.test_support.captured_stderr() as stderr: - ensurepip_no_ssl._main(["--version"]) - warning = stderr.getvalue().strip() - self.assertTrue(warning.endswith("requires SSL/TLS"), warning) - self.assertFalse(self.run_pip.called) - # Basic testing of the main functions and their argument parsing EXPECTED_VERSION_OUTPUT = "pip " + ensurepip._PIP_VERSION @@ -315,7 +249,6 @@ EXPECTED_VERSION_OUTPUT = "pip " + ensurepip._PIP_VERSION class TestBootstrappingMainFunction(EnsurepipMixin, unittest.TestCase): - @requires_usable_pip def test_bootstrap_version(self): with test.test_support.captured_stderr() as stderr: with self.assertRaises(SystemExit): @@ -324,7 +257,6 @@ class TestBootstrappingMainFunction(EnsurepipMixin, unittest.TestCase): self.assertEqual(result, EXPECTED_VERSION_OUTPUT) self.assertFalse(self.run_pip.called) - @requires_usable_pip def test_basic_bootstrapping(self): ensurepip._main([]) @@ -350,7 +282,6 @@ class TestUninstallationMainFunction(EnsurepipMixin, unittest.TestCase): self.assertEqual(result, EXPECTED_VERSION_OUTPUT) self.assertFalse(self.run_pip.called) - @requires_usable_pip def test_basic_uninstall(self): with fake_pip(): ensurepip._uninstall._main([]) diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index cb2c45e..4aa2dfc 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -180,6 +180,11 @@ What about willful misconduct? ... TypeError: h() argument after * must be an iterable, not function + >>> h(1, *h) + Traceback (most recent call last): + ... + TypeError: h() argument after * must be an iterable, not function + >>> dir(*h) Traceback (most recent call last): ... @@ -196,6 +201,21 @@ not function ... TypeError: h() argument after ** must be a mapping, not function + >>> h(**[]) + Traceback (most recent call last): + ... + TypeError: h() argument after ** must be a mapping, not list + + >>> h(a=1, **h) + Traceback (most recent call last): + ... + TypeError: h() argument after ** must be a mapping, not function + + >>> h(a=1, **[]) + Traceback (most recent call last): + ... + TypeError: h() argument after ** must be a mapping, not list + >>> dir(**h) Traceback (most recent call last): ... diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py index 8fdad14..2825a87 100644 --- a/Lib/test/test_fileio.py +++ b/Lib/test/test_fileio.py @@ -308,7 +308,7 @@ class OtherFileTests(unittest.TestCase): self.assertEqual(f.writable(), True) if sys.platform != "darwin" and \ 'bsd' not in sys.platform and \ - not sys.platform.startswith('sunos'): + not sys.platform.startswith(('sunos', 'aix')): # Somehow /dev/tty appears seekable on some BSDs self.assertEqual(f.seekable(), False) self.assertEqual(f.isatty(), True) @@ -361,6 +361,11 @@ class OtherFileTests(unittest.TestCase): finally: os.unlink(TESTFN) + def testConstructorHandlesNULChars(self): + fn_with_NUL = 'foo\0bar' + self.assertRaises(TypeError, _FileIO, fn_with_NUL, 'w') + self.assertRaises(TypeError, _FileIO, fn_with_NUL.encode('ascii'), 'w') + def testInvalidFd(self): self.assertRaises(ValueError, _FileIO, -10) self.assertRaises(OSError, _FileIO, make_bad_fd()) diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py index 633601c..78eccec 100644 --- a/Lib/test/test_format.py +++ b/Lib/test/test_format.py @@ -300,6 +300,44 @@ class FormatTest(unittest.TestCase): else: raise TestFailed, '"%*d"%(maxsize, -127) should fail' + def test_invalid_special_methods(self): + tests = [] + for f in 'sriduoxXfge': + tests.append(('%' + f, 1, TypeError)) + tests.append(('%#' + f, 1, TypeError)) + for r in ['', '-', 'L', '-L']: + for f in 'iduoxX': + tests.append(('%' + f, r, ValueError)) + tests.append(('%#' + f, r, ValueError)) + tests.append(('%o', 'abc', ValueError)) + for r in ('abc', '0abc', '0x', '0xL'): + for f in 'xX': + tests.append(('%' + f, r, ValueError)) + for r in ('0x', '0xL'): + for f in 'xX': + tests.append(('%#' + f, r, ValueError)) + + class X(long): + def __repr__(self): + return result + def __str__(self): + return result + def __oct__(self): + return result + def __hex__(self): + return result + def __float__(self): + return result + for fmt, result, exc in tests: + try: + fmt % X() + except exc: + pass + else: + self.fail('%s not raised for %r format of %r' % + (exc.__name__, fmt, result)) + + def test_main(): test_support.run_unittest(FormatTest) diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 69176f4..62d6029 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -38,17 +38,17 @@ class MyDict(dict): class TestPartial(unittest.TestCase): - thetype = functools.partial + partial = functools.partial def test_basic_examples(self): - p = self.thetype(capture, 1, 2, a=10, b=20) + p = self.partial(capture, 1, 2, a=10, b=20) self.assertEqual(p(3, 4, b=30, c=40), ((1, 2, 3, 4), dict(a=10, b=30, c=40))) - p = self.thetype(map, lambda x: x*10) + p = self.partial(map, lambda x: x*10) self.assertEqual(p([1,2,3,4]), [10, 20, 30, 40]) def test_attributes(self): - p = self.thetype(capture, 1, 2, a=10, b=20) + p = self.partial(capture, 1, 2, a=10, b=20) # attributes should be readable self.assertEqual(p.func, capture) self.assertEqual(p.args, (1, 2)) @@ -58,7 +58,7 @@ class TestPartial(unittest.TestCase): self.assertRaises(TypeError, setattr, p, 'args', (1, 2)) self.assertRaises(TypeError, setattr, p, 'keywords', dict(a=1, b=2)) - p = self.thetype(hex) + p = self.partial(hex) try: del p.__dict__ except TypeError: @@ -67,9 +67,9 @@ class TestPartial(unittest.TestCase): self.fail('partial object allowed __dict__ to be deleted') def test_argument_checking(self): - self.assertRaises(TypeError, self.thetype) # need at least a func arg + self.assertRaises(TypeError, self.partial) # need at least a func arg try: - self.thetype(2)() + self.partial(2)() except TypeError: pass else: @@ -80,7 +80,7 @@ class TestPartial(unittest.TestCase): def func(a=10, b=20): return a d = {'a':3} - p = self.thetype(func, a=5) + p = self.partial(func, a=5) self.assertEqual(p(**d), 3) self.assertEqual(d, {'a':3}) p(b=7) @@ -89,21 +89,21 @@ class TestPartial(unittest.TestCase): def test_arg_combinations(self): # exercise special code paths for zero args in either partial # object or the caller - p = self.thetype(capture) + p = self.partial(capture) self.assertEqual(p(), ((), {})) self.assertEqual(p(1,2), ((1,2), {})) - p = self.thetype(capture, 1, 2) + p = self.partial(capture, 1, 2) self.assertEqual(p(), ((1,2), {})) self.assertEqual(p(3,4), ((1,2,3,4), {})) def test_kw_combinations(self): # exercise special code paths for no keyword args in # either the partial object or the caller - p = self.thetype(capture) + p = self.partial(capture) self.assertEqual(p.keywords, {}) self.assertEqual(p(), ((), {})) self.assertEqual(p(a=1), ((), {'a':1})) - p = self.thetype(capture, a=1) + p = self.partial(capture, a=1) self.assertEqual(p.keywords, {'a':1}) self.assertEqual(p(), ((), {'a':1})) self.assertEqual(p(b=2), ((), {'a':1, 'b':2})) @@ -113,7 +113,7 @@ class TestPartial(unittest.TestCase): def test_positional(self): # make sure positional arguments are captured correctly for args in [(), (0,), (0,1), (0,1,2), (0,1,2,3)]: - p = self.thetype(capture, *args) + p = self.partial(capture, *args) expected = args + ('x',) got, empty = p('x') self.assertTrue(expected == got and empty == {}) @@ -121,14 +121,14 @@ class TestPartial(unittest.TestCase): def test_keyword(self): # make sure keyword arguments are captured correctly for a in ['a', 0, None, 3.5]: - p = self.thetype(capture, a=a) + p = self.partial(capture, a=a) expected = {'a':a,'x':None} empty, got = p(x=None) self.assertTrue(expected == got and empty == ()) def test_no_side_effects(self): # make sure there are no side effects that affect subsequent calls - p = self.thetype(capture, 0, a=1) + p = self.partial(capture, 0, a=1) args1, kw1 = p(1, b=2) self.assertTrue(args1 == (0,1) and kw1 == {'a':1,'b':2}) args2, kw2 = p() @@ -137,13 +137,13 @@ class TestPartial(unittest.TestCase): def test_error_propagation(self): def f(x, y): x // y - self.assertRaises(ZeroDivisionError, self.thetype(f, 1, 0)) - self.assertRaises(ZeroDivisionError, self.thetype(f, 1), 0) - self.assertRaises(ZeroDivisionError, self.thetype(f), 1, 0) - self.assertRaises(ZeroDivisionError, self.thetype(f, y=0), 1) + self.assertRaises(ZeroDivisionError, self.partial(f, 1, 0)) + self.assertRaises(ZeroDivisionError, self.partial(f, 1), 0) + self.assertRaises(ZeroDivisionError, self.partial(f), 1, 0) + self.assertRaises(ZeroDivisionError, self.partial(f, y=0), 1) def test_weakref(self): - f = self.thetype(int, base=16) + f = self.partial(int, base=16) p = proxy(f) self.assertEqual(f.func, p.func) f = None @@ -151,20 +151,20 @@ class TestPartial(unittest.TestCase): def test_with_bound_and_unbound_methods(self): data = map(str, range(10)) - join = self.thetype(str.join, '') + join = self.partial(str.join, '') self.assertEqual(join(data), '0123456789') - join = self.thetype(''.join) + join = self.partial(''.join) self.assertEqual(join(data), '0123456789') def test_pickle(self): - f = self.thetype(signature, ['asdf'], bar=[True]) + f = self.partial(signature, ['asdf'], bar=[True]) f.attr = [] for proto in range(pickle.HIGHEST_PROTOCOL + 1): f_copy = pickle.loads(pickle.dumps(f, proto)) self.assertEqual(signature(f_copy), signature(f)) def test_copy(self): - f = self.thetype(signature, ['asdf'], bar=[True]) + f = self.partial(signature, ['asdf'], bar=[True]) f.attr = [] f_copy = copy.copy(f) self.assertEqual(signature(f_copy), signature(f)) @@ -173,7 +173,7 @@ class TestPartial(unittest.TestCase): self.assertIs(f_copy.keywords, f.keywords) def test_deepcopy(self): - f = self.thetype(signature, ['asdf'], bar=[True]) + f = self.partial(signature, ['asdf'], bar=[True]) f.attr = [] f_copy = copy.deepcopy(f) self.assertEqual(signature(f_copy), signature(f)) @@ -184,7 +184,7 @@ class TestPartial(unittest.TestCase): self.assertIsNot(f_copy.keywords['bar'], f.keywords['bar']) def test_setstate(self): - f = self.thetype(signature) + f = self.partial(signature) f.__setstate__((capture, (1,), dict(a=10), dict(attr=[]))) self.assertEqual(signature(f), (capture, (1,), dict(a=10), dict(attr=[]))) @@ -207,7 +207,7 @@ class TestPartial(unittest.TestCase): self.assertEqual(f(), ((), {})) def test_setstate_errors(self): - f = self.thetype(signature) + f = self.partial(signature) self.assertRaises(TypeError, f.__setstate__, (capture, (), {})) self.assertRaises(TypeError, f.__setstate__, (capture, (), {}, {}, None)) self.assertRaises(TypeError, f.__setstate__, [capture, (), {}, None]) @@ -217,7 +217,7 @@ class TestPartial(unittest.TestCase): self.assertRaises(TypeError, f.__setstate__, (capture, (), [], None)) def test_setstate_subclasses(self): - f = self.thetype(signature) + f = self.partial(signature) f.__setstate__((capture, MyTuple((1,)), MyDict(a=10), None)) s = signature(f) self.assertEqual(s, (capture, (1,), dict(a=10), {})) @@ -236,6 +236,40 @@ class TestPartial(unittest.TestCase): self.assertEqual(r, ((1, 2), {})) self.assertIs(type(r[0]), tuple) + def test_recursive_pickle(self): + f = self.partial(capture) + f.__setstate__((f, (), {}, {})) + try: + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + with self.assertRaises(RuntimeError): + pickle.dumps(f, proto) + finally: + f.__setstate__((capture, (), {}, {})) + + f = self.partial(capture) + f.__setstate__((capture, (f,), {}, {})) + try: + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + f_copy = pickle.loads(pickle.dumps(f, proto)) + try: + self.assertIs(f_copy.args[0], f_copy) + finally: + f_copy.__setstate__((capture, (), {}, {})) + finally: + f.__setstate__((capture, (), {}, {})) + + f = self.partial(capture) + f.__setstate__((capture, (), {'a': f}, {})) + try: + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + f_copy = pickle.loads(pickle.dumps(f, proto)) + try: + self.assertIs(f_copy.keywords['a'], f_copy) + finally: + f_copy.__setstate__((capture, (), {}, {})) + finally: + f.__setstate__((capture, (), {}, {})) + # Issue 6083: Reference counting bug def test_setstate_refcount(self): class BadSequence: @@ -250,7 +284,7 @@ class TestPartial(unittest.TestCase): return {} raise IndexError - f = self.thetype(object) + f = self.partial(object) self.assertRaises(TypeError, f.__setstate__, BadSequence()) class PartialSubclass(functools.partial): @@ -258,11 +292,11 @@ class PartialSubclass(functools.partial): class TestPartialSubclass(TestPartial): - thetype = PartialSubclass + partial = PartialSubclass class TestPythonPartial(TestPartial): - thetype = PythonPartial + partial = PythonPartial # the python version isn't picklable test_pickle = None @@ -270,6 +304,7 @@ class TestPythonPartial(TestPartial): test_setstate_errors = None test_setstate_subclasses = None test_setstate_refcount = None + test_recursive_pickle = None # the python version isn't deepcopyable test_deepcopy = None diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index f157eae..38e570f 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -7,6 +7,7 @@ import os import re import subprocess import sys +import sysconfig import unittest import sysconfig @@ -23,6 +24,7 @@ def get_gdb_version(): try: proc = subprocess.Popen(["gdb", "-nx", "--version"], stdout=subprocess.PIPE, + stderr=subprocess.PIPE, universal_newlines=True) version = proc.communicate()[0] except OSError: @@ -77,6 +79,9 @@ def run_gdb(*args, **env_vars): ).communicate() return out, err +if not sysconfig.is_python_build(): + raise unittest.SkipTest("test_gdb only works on source builds at the moment.") + # Verify that "gdb" was built with the embedded python support enabled: gdbpy_version, _ = run_gdb("--eval-command=python import sys; print(sys.version_info)") if not gdbpy_version: @@ -260,6 +265,9 @@ class DebuggerTests(unittest.TestCase): def get_sample_script(self): return findfile('gdb_sample.py') + +@unittest.skipIf(python_is_optimized(), + "Python was compiled with optimizations") class PrettyPrintTests(DebuggerTests): def test_getting_backtrace(self): gdb_output = self.get_stack_trace('print 42') @@ -712,6 +720,8 @@ $''') 'Unable to find a newer python frame\n') @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands") + @unittest.skipIf(python_is_optimized(), + "Python was compiled with optimizations") def test_up_at_top(self): 'Verify handling of "py-up" at the top of the stack' bt = self.get_stack_trace(script=self.get_sample_script(), @@ -772,6 +782,8 @@ Traceback \(most recent call first\): @unittest.skipUnless(thread, "Python was compiled without thread support") + @unittest.skipIf(python_is_optimized(), + "Python was compiled with optimizations") def test_threads(self): 'Verify that "py-bt" indicates threads that are waiting for the GIL' cmd = ''' diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py index 2b2fa60..e0efcaa 100644 --- a/Lib/test/test_getargs2.py +++ b/Lib/test/test_getargs2.py @@ -779,7 +779,7 @@ class Unicode_TestCase(unittest.TestCase): def test_u(self): from _testcapi import getargs_u self.assertEqual(getargs_u(u'abc\xe9'), u'abc\xe9') - self.assertEqual(getargs_u(u'nul:\0'), u'nul:') + self.assertRaises(TypeError, getargs_u, u'nul:\0') self.assertRaises(TypeError, getargs_u, 'bytes') self.assertRaises(TypeError, getargs_u, bytearray('bytearray')) self.assertRaises(TypeError, getargs_u, memoryview('memoryview')) diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py index 3f792bb..4d1e0a3 100644 --- a/Lib/test/test_gettext.py +++ b/Lib/test/test_gettext.py @@ -237,7 +237,9 @@ class PluralFormsTestCase(GettextBaseTest): x = t.ngettext('There is %s file', 'There are %s files', 2) eq(x, 'Hay %s ficheros') - def test_hu(self): + # Examples from http://www.gnu.org/software/gettext/manual/gettext.html + + def test_ja(self): eq = self.assertEqual f = gettext.c2py('0') s = ''.join([ str(f(x)) for x in range(200) ]) @@ -255,6 +257,12 @@ class PluralFormsTestCase(GettextBaseTest): s = ''.join([ str(f(x)) for x in range(200) ]) eq(s, "00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111") + def test_lv(self): + eq = self.assertEqual + f = gettext.c2py('n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2') + s = ''.join([ str(f(x)) for x in range(200) ]) + eq(s, "20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111") + def test_gd(self): eq = self.assertEqual f = gettext.c2py('n==1 ? 0 : n==2 ? 1 : 2') @@ -268,6 +276,12 @@ class PluralFormsTestCase(GettextBaseTest): s = ''.join([ str(f(x)) for x in range(200) ]) eq(s, "20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222") + def test_ro(self): + eq = self.assertEqual + f = gettext.c2py('n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2') + s = ''.join([ str(f(x)) for x in range(200) ]) + eq(s, "10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222") + def test_lt(self): eq = self.assertEqual f = gettext.c2py('n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2') @@ -280,6 +294,12 @@ class PluralFormsTestCase(GettextBaseTest): s = ''.join([ str(f(x)) for x in range(200) ]) eq(s, "20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222") + def test_cs(self): + eq = self.assertEqual + f = gettext.c2py('(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2') + s = ''.join([ str(f(x)) for x in range(200) ]) + eq(s, "20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222") + def test_pl(self): eq = self.assertEqual f = gettext.c2py('n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2') @@ -292,10 +312,77 @@ class PluralFormsTestCase(GettextBaseTest): s = ''.join([ str(f(x)) for x in range(200) ]) eq(s, "30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333") + def test_ar(self): + eq = self.assertEqual + f = gettext.c2py('n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5') + s = ''.join([ str(f(x)) for x in range(200) ]) + eq(s, "01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444") + def test_security(self): raises = self.assertRaises # Test for a dangerous expression raises(ValueError, gettext.c2py, "os.chmod('/etc/passwd',0777)") + # issue28563 + raises(ValueError, gettext.c2py, '"(eval(foo) && ""') + raises(ValueError, gettext.c2py, 'f"{os.system(\'sh\')}"') + # Maximum recursion depth exceeded during compilation + raises(ValueError, gettext.c2py, 'n+'*10000 + 'n') + self.assertEqual(gettext.c2py('n+'*100 + 'n')(1), 101) + # MemoryError during compilation + raises(ValueError, gettext.c2py, '('*100 + 'n' + ')'*100) + # Maximum recursion depth exceeded in C to Python translator + raises(ValueError, gettext.c2py, '('*10000 + 'n' + ')'*10000) + self.assertEqual(gettext.c2py('('*20 + 'n' + ')'*20)(1), 1) + + def test_chained_comparison(self): + # C doesn't chain comparison as Python so 2 == 2 == 2 gets different results + f = gettext.c2py('n == n == n') + self.assertEqual(''.join(str(f(x)) for x in range(3)), '010') + f = gettext.c2py('1 < n == n') + self.assertEqual(''.join(str(f(x)) for x in range(3)), '100') + f = gettext.c2py('n == n < 2') + self.assertEqual(''.join(str(f(x)) for x in range(3)), '010') + f = gettext.c2py('0 < n < 2') + self.assertEqual(''.join(str(f(x)) for x in range(3)), '111') + + def test_decimal_number(self): + self.assertEqual(gettext.c2py('0123')(1), 123) + + def test_invalid_syntax(self): + invalid_expressions = [ + 'x>1', '(n>1', 'n>1)', '42**42**42', '0xa', '1.0', '1e2', + 'n>0x1', '+n', '-n', 'n()', 'n(1)', '1+', 'nn', 'n n', + ] + for expr in invalid_expressions: + with self.assertRaises(ValueError): + gettext.c2py(expr) + + def test_nested_condition_operator(self): + self.assertEqual(gettext.c2py('n?1?2:3:4')(0), 4) + self.assertEqual(gettext.c2py('n?1?2:3:4')(1), 2) + self.assertEqual(gettext.c2py('n?1:3?4:5')(0), 4) + self.assertEqual(gettext.c2py('n?1:3?4:5')(1), 1) + + def test_division(self): + f = gettext.c2py('2/n*3') + self.assertEqual(f(1), 6) + self.assertEqual(f(2), 3) + self.assertEqual(f(3), 0) + self.assertEqual(f(-1), -6) + self.assertRaises(ZeroDivisionError, f, 0) + + def test_plural_number(self): + f = gettext.c2py('n != 1') + self.assertEqual(f(1), 0) + self.assertEqual(f(2), 1) + self.assertEqual(f(1.0), 0) + self.assertEqual(f(2.0), 1) + self.assertEqual(f(1.1), 1) + self.assertRaises(TypeError, f, '2') + self.assertRaises(TypeError, f, b'2') + self.assertRaises(TypeError, f, []) + self.assertRaises(TypeError, f, object()) + class GNUTranslationParsingTest(GettextBaseTest): def test_plural_form_error_issue17898(self): diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index d3bac0f..7e8b058 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -241,6 +241,120 @@ class HeaderTests(TestCase): self.assertEqual(resp.getheader('First'), 'val') self.assertEqual(resp.getheader('Second'), 'val') + def test_malformed_truncation(self): + # Other malformed header lines, especially without colons, used to + # cause the rest of the header section to be truncated + resp = ( + b'HTTP/1.1 200 OK\r\n' + b'Public-Key-Pins: \n' + b'pin-sha256="xxx=";\n' + b'report-uri="https://..."\r\n' + b'Transfer-Encoding: chunked\r\n' + b'\r\n' + b'4\r\nbody\r\n0\r\n\r\n' + ) + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertIsNotNone(resp.getheader('Public-Key-Pins')) + self.assertEqual(resp.getheader('Transfer-Encoding'), 'chunked') + self.assertEqual(resp.read(), b'body') + + def test_blank_line_forms(self): + # Test that both CRLF and LF blank lines can terminate the header + # section and start the body + for blank in (b'\r\n', b'\n'): + resp = b'HTTP/1.1 200 OK\r\n' b'Transfer-Encoding: chunked\r\n' + resp += blank + resp += b'4\r\nbody\r\n0\r\n\r\n' + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertEqual(resp.getheader('Transfer-Encoding'), 'chunked') + self.assertEqual(resp.read(), b'body') + + resp = b'HTTP/1.0 200 OK\r\n' + blank + b'body' + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertEqual(resp.read(), b'body') + + # A blank line ending in CR is not treated as the end of the HTTP + # header section, therefore header fields following it should be + # parsed if possible + resp = ( + b'HTTP/1.1 200 OK\r\n' + b'\r' + b'Name: value\r\n' + b'Transfer-Encoding: chunked\r\n' + b'\r\n' + b'4\r\nbody\r\n0\r\n\r\n' + ) + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertEqual(resp.getheader('Transfer-Encoding'), 'chunked') + self.assertEqual(resp.read(), b'body') + + # No header fields nor blank line + resp = b'HTTP/1.0 200 OK\r\n' + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertEqual(resp.read(), b'') + + def test_from_line(self): + # The parser handles "From" lines specially, so test this does not + # affect parsing the rest of the header section + resp = ( + b'HTTP/1.1 200 OK\r\n' + b'From start\r\n' + b' continued\r\n' + b'Name: value\r\n' + b'From middle\r\n' + b' continued\r\n' + b'Transfer-Encoding: chunked\r\n' + b'From end\r\n' + b'\r\n' + b'4\r\nbody\r\n0\r\n\r\n' + ) + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertIsNotNone(resp.getheader('Name')) + self.assertEqual(resp.getheader('Transfer-Encoding'), 'chunked') + self.assertEqual(resp.read(), b'body') + + resp = ( + b'HTTP/1.0 200 OK\r\n' + b'From alone\r\n' + b'\r\n' + b'body' + ) + resp = httplib.HTTPResponse(FakeSocket(resp)) + resp.begin() + self.assertEqual(resp.read(), b'body') + + def test_parse_all_octets(self): + # Ensure no valid header field octet breaks the parser + body = ( + b'HTTP/1.1 200 OK\r\n' + b"!#$%&'*+-.^_`|~: value\r\n" # Special token characters + b'VCHAR: ' + bytearray(range(0x21, 0x7E + 1)) + b'\r\n' + b'obs-text: ' + bytearray(range(0x80, 0xFF + 1)) + b'\r\n' + b'obs-fold: text\r\n' + b' folded with space\r\n' + b'\tfolded with tab\r\n' + b'Content-Length: 0\r\n' + b'\r\n' + ) + sock = FakeSocket(body) + resp = httplib.HTTPResponse(sock) + resp.begin() + self.assertEqual(resp.getheader('Content-Length'), '0') + self.assertEqual(resp.getheader("!#$%&'*+-.^_`|~"), 'value') + vchar = ''.join(map(chr, range(0x21, 0x7E + 1))) + self.assertEqual(resp.getheader('VCHAR'), vchar) + self.assertIsNotNone(resp.getheader('obs-text')) + folded = resp.getheader('obs-fold') + self.assertTrue(folded.startswith('text')) + self.assertIn(' folded with space', folded) + self.assertTrue(folded.endswith('folded with tab')) + def test_invalid_headers(self): conn = httplib.HTTPConnection('example.com') conn.sock = FakeSocket('') @@ -525,7 +639,7 @@ class BasicTest(TestCase): self.assertTrue(hasattr(resp,'fileno'), 'HTTPResponse should expose a fileno attribute') - # Test lines overflowing the max line size (_MAXLINE in http.client) + # Test lines overflowing the max line size (_MAXLINE in httplib) def test_overflowing_status_line(self): self.skipTest("disabled for HTTP 0.9 support") @@ -624,7 +738,7 @@ class SourceAddressTest(TestServerMixin, TestCase): def testHTTPSConnectionSourceAddress(self): self.conn = httplib.HTTPSConnection(HOST, self.port, source_address=('', self.source_port)) - # We don't test anything here other the constructor not barfing as + # We don't test anything here other than the constructor not barfing as # this code doesn't deal with setting up an active running SSL server # for an ssl_wrapped connect() to actually return from. diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index 1b6339d..11f0d5d 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -442,7 +442,7 @@ cgi_file4 = """\ import os print("Content-type: text/html") -print() +print("") print(os.environ["%s"]) """ diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py index c17da10..4325005 100644 --- a/Lib/test/test_import.py +++ b/Lib/test/test_import.py @@ -397,6 +397,32 @@ class ImportTests(unittest.TestCase): finally: sys.path.pop(0) + def test_replace_parent_in_sys_modules(self): + dir_name = os.path.abspath(TESTFN) + os.mkdir(dir_name) + try: + pkg_dir = os.path.join(dir_name, 'sa') + os.mkdir(pkg_dir) + with open(os.path.join(pkg_dir, '__init__.py'), 'w') as init_file: + init_file.write("import v1") + with open(os.path.join(pkg_dir, 'v1.py'), 'w') as v1_file: + v1_file.write("import sys;" + "sys.modules['sa'] = sys.modules[__name__];" + "import sa") + sys.path.insert(0, dir_name) + # a segfault means the test failed! + import sa + finally: + rmtree(dir_name) + + def test_fromlist_type(self): + with self.assertRaises(TypeError) as cm: + __import__('encodings', fromlist=[u'aliases']) + self.assertIn('must be str, not unicode', str(cm.exception)) + with self.assertRaises(TypeError) as cm: + __import__('encodings', fromlist=[1]) + self.assertIn('must be str, not int', str(cm.exception)) + class PycRewritingTests(unittest.TestCase): # Test that the `co_filename` attribute on code objects always points diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index e26ffba..3d4da46 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -349,6 +349,15 @@ class IOTest(unittest.TestCase): self.assertRaises(IOError, fp.write, "blah") self.assertRaises(IOError, fp.writelines, ["blah\n"]) + def test_open_handles_NUL_chars(self): + fn_with_NUL = 'foo\0bar' + self.assertRaises(TypeError, self.open, fn_with_NUL, 'w') + + bytes_fn = fn_with_NUL.encode('ascii') + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + self.assertRaises(TypeError, self.open, bytes_fn, 'w') + def test_raw_file_io(self): with self.open(support.TESTFN, "wb", buffering=0) as f: self.assertEqual(f.readable(), False) diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 8b5f051..5672104 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -351,8 +351,16 @@ class TestBasicOps(unittest.TestCase): self.assertEqual(take(2, zip('abc',count(-3))), [('a', -3), ('b', -2)]) self.assertRaises(TypeError, count, 2, 3, 4) self.assertRaises(TypeError, count, 'a') - self.assertEqual(list(islice(count(maxsize-5), 10)), range(maxsize-5, maxsize+5)) - self.assertEqual(list(islice(count(-maxsize-5), 10)), range(-maxsize-5, -maxsize+5)) + self.assertEqual(take(10, count(maxsize-5)), range(maxsize-5, maxsize+5)) + self.assertEqual(take(10, count(-maxsize-5)), range(-maxsize-5, -maxsize+5)) + self.assertEqual(take(3, count(3.25)), [3.25, 4.25, 5.25]) + self.assertEqual(take(3, count(3.25-4j)), [3.25-4j, 4.25-4j, 5.25-4j]) + self.assertEqual(take(3, count(Decimal('1.1'))), + [Decimal('1.1'), Decimal('2.1'), Decimal('3.1')]) + self.assertEqual(take(3, count(Fraction(2, 3))), + [Fraction(2, 3), Fraction(5, 3), Fraction(8, 3)]) + BIGINT = 1<<1000 + self.assertEqual(take(3, count(BIGINT)), [BIGINT, BIGINT+1, BIGINT+2]) c = count(3) self.assertEqual(repr(c), 'count(3)') c.next() @@ -360,8 +368,10 @@ class TestBasicOps(unittest.TestCase): c = count(-9) self.assertEqual(repr(c), 'count(-9)') c.next() + self.assertEqual(next(c), -8) self.assertEqual(repr(count(10.25)), 'count(10.25)') - self.assertEqual(c.next(), -8) + self.assertEqual(repr(count(10.0)), 'count(10.0)') + self.assertEqual(type(next(count(10.0))), float) for i in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 10, sys.maxint-5, sys.maxint+5): # Test repr (ignoring the L in longs) r1 = repr(count(i)).replace('L', '') @@ -382,15 +392,24 @@ class TestBasicOps(unittest.TestCase): [('a', 2), ('b', 5), ('c', 8)]) self.assertEqual(zip('abc',count(step=-1)), [('a', 0), ('b', -1), ('c', -2)]) + self.assertRaises(TypeError, count, 'a', 'b') self.assertEqual(zip('abc',count(2,0)), [('a', 2), ('b', 2), ('c', 2)]) self.assertEqual(zip('abc',count(2,1)), [('a', 2), ('b', 3), ('c', 4)]) + self.assertEqual(zip('abc',count(2,3)), [('a', 2), ('b', 5), ('c', 8)]) + self.assertEqual(zip('abc',count(2,1L)), [('a', 2), ('b', 3), ('c', 4)]) + self.assertEqual(zip('abc',count(2,3L)), [('a', 2), ('b', 5), ('c', 8)]) self.assertEqual(take(20, count(maxsize-15, 3)), take(20, range(maxsize-15, maxsize+100, 3))) self.assertEqual(take(20, count(-maxsize-15, 3)), take(20, range(-maxsize-15,-maxsize+100, 3))) + self.assertEqual(take(3, count(10, maxsize+5)), + range(10, 10+3*(maxsize+5), maxsize+5)) + self.assertEqual(take(3, count(2, 1.25)), [2, 3.25, 4.5]) self.assertEqual(take(3, count(2, 3.25-4j)), [2, 5.25-4j, 8.5-8j]) self.assertEqual(take(3, count(Decimal('1.1'), Decimal('.1'))), [Decimal('1.1'), Decimal('1.2'), Decimal('1.3')]) self.assertEqual(take(3, count(Fraction(2,3), Fraction(1,7))), [Fraction(2,3), Fraction(17,21), Fraction(20,21)]) + BIGINT = 1<<1000 + self.assertEqual(take(3, count(step=BIGINT)), [0, BIGINT, 2*BIGINT]) self.assertEqual(repr(take(3, count(10, 2.5))), repr([10, 12.5, 15.0])) c = count(3, 5) self.assertEqual(repr(c), 'count(3, 5)') @@ -408,6 +427,10 @@ class TestBasicOps(unittest.TestCase): self.assertEqual(repr(count(10.5, 1.25)), 'count(10.5, 1.25)') self.assertEqual(repr(count(10.5, 1)), 'count(10.5)') # suppress step=1 when it's an int self.assertEqual(repr(count(10.5, 1.00)), 'count(10.5, 1.0)') # do show float values lilke 1.0 + self.assertEqual(repr(count(10, 1.00)), 'count(10, 1.0)') + c = count(10, 1.0) + self.assertEqual(type(next(c)), int) + self.assertEqual(type(next(c)), float) for i in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 10, sys.maxint-5, sys.maxint+5): for j in (-sys.maxint-5, -sys.maxint+5 ,-10, -1, 0, 1, 10, sys.maxint-5, sys.maxint+5): # Test repr (ignoring the L in longs) diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py index b65d24c..6788ced 100644 --- a/Lib/test/test_long.py +++ b/Lib/test/test_long.py @@ -202,6 +202,21 @@ class LongTest(test_int.IntLongCommonTests, unittest.TestCase): self.assertEqual(x, y, Frm("bad result for a*b: a=%r, b=%r, x=%r, y=%r", a, b, x, y)) + def test_lshift_of_zero(self): + self.assertEqual(0L << 0, 0) + self.assertEqual(0L << 10, 0) + with self.assertRaises(ValueError): + 0L << -1 + + @test_support.cpython_only + def test_huge_lshift_of_zero(self): + # Shouldn't try to allocate memory for a huge shift. See issue #27870. + # Other implementations may have a different boundary for overflow, + # or not raise at all. + self.assertEqual(0L << sys.maxsize, 0) + with self.assertRaises(OverflowError): + 0L << (sys.maxsize + 1) + def check_bitop_identities_1(self, x): eq = self.assertEqual eq(x & 0, 0, Frm("x & 0 != 0 for x=%r", x)) diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py index 1967c48..76d59ba 100644 --- a/Lib/test/test_marshal.py +++ b/Lib/test/test_marshal.py @@ -234,7 +234,10 @@ class BugsTestCase(unittest.TestCase): # Create a deeply nested structure. head = last = [] # The max stack depth should match the value in Python/marshal.c. - MAX_MARSHAL_STACK_DEPTH = 2000 + if os.name == 'nt' and hasattr(sys, 'gettotalrefcount'): + MAX_MARSHAL_STACK_DEPTH = 1000 + else: + MAX_MARSHAL_STACK_DEPTH = 2000 for i in range(MAX_MARSHAL_STACK_DEPTH - 2): last.append([0]) last = last[-1] diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index 648da3a..0350b3d 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -652,6 +652,20 @@ class MmapTests(unittest.TestCase): finally: s.close() + @unittest.skipIf(os.name == 'nt', 'cannot resize anonymous mmaps on Windows') + def test_resize_past_pos(self): + m = mmap.mmap(-1, 8192) + self.addCleanup(m.close) + m.read(5000) + try: + m.resize(4096) + except SystemError: + self.skipTest("resizing not supported") + self.assertEqual(m.read(14), '') + self.assertRaises(ValueError, m.read_byte) + self.assertRaises(ValueError, m.write_byte, 'b') + self.assertRaises(ValueError, m.write, 'abc') + class LargeMmapTests(unittest.TestCase): diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 57c7c88..b70e285 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -634,7 +634,7 @@ class TestInvalidFD(unittest.TestCase): singles = ["fchdir", "fdopen", "dup", "fdatasync", "fstat", "fstatvfs", "fsync", "tcgetpgrp", "ttyname"] #singles.append("close") - #We omit close because it doesn'r raise an exception on some platforms + #We omit close because it doesn't raise an exception on some platforms def get_single(f): def helper(self): if hasattr(os, f): @@ -649,7 +649,7 @@ class TestInvalidFD(unittest.TestCase): except OSError as e: self.assertEqual(e.errno, errno.EBADF) else: - self.fail("%r didn't raise a OSError with a bad file descriptor" + self.fail("%r didn't raise an OSError with a bad file descriptor" % f) @unittest.skipUnless(hasattr(os, 'isatty'), 'test needs os.isatty()') diff --git a/Lib/test/test_pep247.py b/Lib/test/test_pep247.py index 423d333..7b06d00 100644 --- a/Lib/test/test_pep247.py +++ b/Lib/test/test_pep247.py @@ -1,5 +1,5 @@ """ -Test suite to check compilance with PEP 247, the standard API +Test suite to check compliance with PEP 247, the standard API for hashing algorithms """ diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 9810c77..e0c84f2 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -577,6 +577,48 @@ class PosixTester(unittest.TestCase): set([int(x) for x in groups.split()]), set(posix.getgroups() + [posix.getegid()])) + @test_support.requires_unicode + def test_path_with_null_unicode(self): + fn = test_support.TESTFN_UNICODE + try: + fn.encode(test_support.TESTFN_ENCODING) + except (UnicodeError, TypeError): + self.skipTest("Requires unicode filenames support") + fn_with_NUL = fn + u'\0' + self.addCleanup(test_support.unlink, fn) + test_support.unlink(fn) + fd = None + try: + with self.assertRaises(TypeError): + fd = os.open(fn_with_NUL, os.O_WRONLY | os.O_CREAT) # raises + finally: + if fd is not None: + os.close(fd) + self.assertFalse(os.path.exists(fn)) + self.assertRaises(TypeError, os.mkdir, fn_with_NUL) + self.assertFalse(os.path.exists(fn)) + open(fn, 'wb').close() + self.assertRaises(TypeError, os.stat, fn_with_NUL) + + def test_path_with_null_byte(self): + fn = test_support.TESTFN + fn_with_NUL = fn + '\0' + self.addCleanup(test_support.unlink, fn) + test_support.unlink(fn) + fd = None + try: + with self.assertRaises(TypeError): + fd = os.open(fn_with_NUL, os.O_WRONLY | os.O_CREAT) # raises + finally: + if fd is not None: + os.close(fd) + self.assertFalse(os.path.exists(fn)) + self.assertRaises(TypeError, os.mkdir, fn_with_NUL) + self.assertFalse(os.path.exists(fn)) + open(fn, 'wb').close() + self.assertRaises(TypeError, os.stat, fn_with_NUL) + + class PosixGroupsTester(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index fbb18fd..deaa577 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -7,6 +7,11 @@ import os import sys from posixpath import realpath, abspath, dirname, basename +try: + import posix +except ImportError: + posix = None + # An absolute path to a temporary filename for testing. We can't rely on TESTFN # being an absolute path, so we need this. @@ -100,7 +105,7 @@ class PosixPathTest(unittest.TestCase): f.write("foo") f.close() self.assertIs(posixpath.islink(test_support.TESTFN + "1"), False) - if hasattr(os, "symlink"): + if hasattr(os, 'symlink'): os.symlink(test_support.TESTFN + "1", test_support.TESTFN + "2") self.assertIs(posixpath.islink(test_support.TESTFN + "2"), True) os.remove(test_support.TESTFN + "1") @@ -196,6 +201,65 @@ class PosixPathTest(unittest.TestCase): def test_ismount(self): self.assertIs(posixpath.ismount("/"), True) + def test_ismount_non_existent(self): + # Non-existent mountpoint. + self.assertIs(posixpath.ismount(ABSTFN), False) + try: + os.mkdir(ABSTFN) + self.assertIs(posixpath.ismount(ABSTFN), False) + finally: + safe_rmdir(ABSTFN) + + @unittest.skipUnless(hasattr(os, 'symlink'), + 'Requires functional symlink implementation') + def test_ismount_symlinks(self): + # Symlinks are never mountpoints. + try: + os.symlink("/", ABSTFN) + self.assertIs(posixpath.ismount(ABSTFN), False) + finally: + os.unlink(ABSTFN) + + @unittest.skipIf(posix is None, "Test requires posix module") + def test_ismount_different_device(self): + # Simulate the path being on a different device from its parent by + # mocking out st_dev. + save_lstat = os.lstat + def fake_lstat(path): + st_ino = 0 + st_dev = 0 + if path == ABSTFN: + st_dev = 1 + st_ino = 1 + return posix.stat_result((0, st_ino, st_dev, 0, 0, 0, 0, 0, 0, 0)) + try: + os.lstat = fake_lstat + self.assertIs(posixpath.ismount(ABSTFN), True) + finally: + os.lstat = save_lstat + + @unittest.skipIf(posix is None, "Test requires posix module") + def test_ismount_directory_not_readable(self): + # issue #2466: Simulate ismount run on a directory that is not + # readable, which used to return False. + save_lstat = os.lstat + def fake_lstat(path): + st_ino = 0 + st_dev = 0 + if path.startswith(ABSTFN) and path != ABSTFN: + # ismount tries to read something inside the ABSTFN directory; + # simulate this being forbidden (no read permission). + raise OSError("Fake [Errno 13] Permission denied") + if path == ABSTFN: + st_dev = 1 + st_ino = 1 + return posix.stat_result((0, st_ino, st_dev, 0, 0, 0, 0, 0, 0, 0)) + try: + os.lstat = fake_lstat + self.assertIs(posixpath.ismount(ABSTFN), True) + finally: + os.lstat = save_lstat + def test_expanduser(self): self.assertEqual(posixpath.expanduser("foo"), "foo") with test_support.EnvironmentVarGuard() as env: diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py index b4e4e9d..efcd1d2 100644 --- a/Lib/test/test_py3kwarn.py +++ b/Lib/test/test_py3kwarn.py @@ -270,7 +270,7 @@ class TestPy3KWarnings(unittest.TestCase): class NoWarningOnlyHash(object): def __hash__(self): pass self.assertEqual(len(w.warnings), 0) - # With an intermediate class in the heirarchy + # With an intermediate class in the hierarchy class DefinesAllThree(object): def __cmp__(self, other): pass def __eq__(self, other): pass diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 6cfe7e7..7188d0a 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -13,6 +13,7 @@ import unittest import xml.etree import types import test.test_support +import xml.etree.ElementTree from collections import namedtuple from test.script_helper import assert_python_ok from test.test_support import (TESTFN, rmtree, reap_children, captured_stdout, @@ -253,6 +254,14 @@ def get_pydoc_html(module): loc = "
    Module Docs" return output.strip(), loc +def get_pydoc_link(module): + "Returns a documentation web link of a module" + dirname = os.path.dirname + basedir = dirname(dirname(__file__)) + doc = pydoc.TextDoc() + loc = doc.getdocloc(module, basedir=basedir) + return loc + def get_pydoc_text(module): "Returns pydoc generated output as text" doc = pydoc.TextDoc() @@ -331,6 +340,11 @@ class PydocDocTest(unittest.TestCase): print_diffs(expected_text, result) self.fail("outputs are not equal, see diff above") + def test_mixed_case_module_names_are_lower_cased(self): + # issue16484 + doc_link = get_pydoc_link(xml.etree.ElementTree) + self.assertIn('xml.etree.elementtree', doc_link) + def test_issue8225(self): # Test issue8225 to ensure no doc link appears for xml.etree result, doc_loc = get_pydoc_text(xml.etree) diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py index eba9058..72840bd 100644 --- a/Lib/test/test_pyexpat.py +++ b/Lib/test/test_pyexpat.py @@ -610,11 +610,9 @@ class MalformedInputText(unittest.TestCase): def test2(self): xml = "\r\n" parser = expat.ParserCreate() - try: + err_pattern = r'XML declaration not well-formed: line 1, column \d+' + with self.assertRaisesRegexp(expat.ExpatError, err_pattern): parser.Parse(xml, True) - self.fail() - except expat.ExpatError as e: - self.assertEqual(str(e), 'XML declaration not well-formed: line 1, column 14') class ForeignDTDTests(unittest.TestCase): """ diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 588042a..5725a99 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -928,6 +928,9 @@ class ReTests(unittest.TestCase): q = p.match(upper_char) self.assertTrue(q) + self.assertTrue(re.match('(?ixu) ' + upper_char, lower_char)) + self.assertTrue(re.match('(?ixu) ' + lower_char, upper_char)) + def test_dollar_matches_twice(self): "$ matches the end of string, and just before the terminating \n" pattern = re.compile('$') diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py index 588043e..4c400ef 100644 --- a/Lib/test/test_readline.py +++ b/Lib/test/test_readline.py @@ -44,7 +44,7 @@ class TestHistoryManipulation (unittest.TestCase): class TestReadline(unittest.TestCase): - @unittest.skipIf(readline._READLINE_VERSION < 0x0600 + @unittest.skipIf(readline._READLINE_VERSION < 0x0601 and "libedit" not in readline.__doc__, "not supported in this library version") def test_init(self): diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py index 62b36bd..c37f199 100644 --- a/Lib/test/test_set.py +++ b/Lib/test/test_set.py @@ -360,6 +360,21 @@ class TestSet(TestJointOps): t = self.thetype(s) self.assertNotEqual(id(s), id(t)) + def test_set_literal_insertion_order(self): + # SF Issue #26020 -- Expect left to right insertion + s = {1, 1.0, True} + self.assertEqual(len(s), 1) + stored_value = s.pop() + self.assertEqual(type(stored_value), int) + + def test_set_literal_evaluation_order(self): + # Expect left to right expression evaluation + events = [] + def record(obj): + events.append(obj) + s = {record(1), record(2), record(3)} + self.assertEqual(events, [1, 2, 3]) + def test_hash(self): self.assertRaises(TypeError, hash, self.s) diff --git a/Lib/test/test_shlex.py b/Lib/test/test_shlex.py index 6c35f49..ed74172 100644 --- a/Lib/test/test_shlex.py +++ b/Lib/test/test_shlex.py @@ -178,6 +178,19 @@ class ShlexTest(unittest.TestCase): "%s: %s != %s" % (self.data[i][0], l, self.data[i][1:])) + def testEmptyStringHandling(self): + """Test that parsing of empty strings is correctly handled.""" + # see Issue #21999 + expected = ['', ')', 'abc'] + + s = shlex.shlex("'')abc", posix=True) + slist = list(s) + self.assertEqual(slist, expected) + expected = ["''", ')', 'abc'] + s = shlex.shlex("'')abc") + self.assertEqual(list(s), expected) + + # Allow this test to be used with old shlex.py if not getattr(shlex, "split", None): for methname in dir(ShlexTest): diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index c85f25e..0869a9e 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -475,6 +475,19 @@ class TestShutil(unittest.TestCase): with support.change_cwd(work_dir): base_name = os.path.abspath(rel_base_name) + res = make_archive(rel_base_name, 'zip', root_dir) + + self.assertEqual(res, base_name + '.zip') + self.assertTrue(os.path.isfile(res)) + self.assertTrue(zipfile.is_zipfile(res)) + with zipfile.ZipFile(res) as zf: + self.assertEqual(sorted(zf.namelist()), + ['dist/', 'dist/file1', 'dist/file2', + 'dist/sub/', 'dist/sub/file3', 'dist/sub2/', + 'outer']) + + with support.change_cwd(work_dir): + base_name = os.path.abspath(rel_base_name) res = make_archive(rel_base_name, 'zip', root_dir, base_dir) self.assertEqual(res, base_name + '.zip') diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 78c4809..d9a9324 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -233,19 +233,8 @@ class HelperFunctionsTests(unittest.TestCase): self.assertEqual(len(dirs), 1) wanted = os.path.join('xoxo', 'Lib', 'site-packages') self.assertEqual(dirs[0], wanted) - elif (sys.platform == "darwin" and - sysconfig.get_config_var("PYTHONFRAMEWORK")): - # OS X framework builds - site.PREFIXES = ['Python.framework'] - dirs = site.getsitepackages() - self.assertEqual(len(dirs), 3) - wanted = os.path.join('/Library', - sysconfig.get_config_var("PYTHONFRAMEWORK"), - sys.version[:3], - 'site-packages') - self.assertEqual(dirs[2], wanted) elif os.sep == '/': - # OS X non-framwework builds, Linux, FreeBSD, etc + # OS X, Linux, FreeBSD, etc self.assertEqual(len(dirs), 2) wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], 'site-packages') diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index 14d0060..1bb6690 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -179,31 +179,31 @@ class DebuggingServerTests(unittest.TestCase): def testBasic(self): # connect - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) smtp.quit() def testNOOP(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) expected = (250, 'Ok') self.assertEqual(smtp.noop(), expected) smtp.quit() def testRSET(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) expected = (250, 'Ok') self.assertEqual(smtp.rset(), expected) smtp.quit() def testNotImplemented(self): # EHLO isn't implemented in DebuggingServer - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) expected = (502, 'Error: command "EHLO" not implemented') self.assertEqual(smtp.ehlo(), expected) smtp.quit() def testVRFY(self): # VRFY isn't implemented in DebuggingServer - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) expected = (502, 'Error: command "VRFY" not implemented') self.assertEqual(smtp.vrfy('nobody@nowhere.com'), expected) self.assertEqual(smtp.verify('nobody@nowhere.com'), expected) @@ -212,21 +212,21 @@ class DebuggingServerTests(unittest.TestCase): def testSecondHELO(self): # check that a second HELO returns a message that it's a duplicate # (this behavior is specific to smtpd.SMTPChannel) - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) smtp.helo() expected = (503, 'Duplicate HELO/EHLO') self.assertEqual(smtp.helo(), expected) smtp.quit() def testHELP(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) self.assertEqual(smtp.help(), 'Error: command "HELP" not implemented') smtp.quit() def testSend(self): # connect and send mail m = 'A test message' - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) smtp.sendmail('John', 'Sally', m) # XXX(nnorwitz): this test is flaky and dies with a bad file descriptor # in asyncore. This sleep might help, but should really be fixed diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index fe79b82..765d7c0 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -299,7 +299,7 @@ class GeneralModuleTests(unittest.TestCase): "Error raising socket exception.") def testSendtoErrors(self): - # Testing that sendto doens't masks failures. See #10169. + # Testing that sendto doesn't mask failures. See #10169. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.addCleanup(s.close) s.bind(('', 0)) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 659d0df..a17d613 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -26,6 +26,9 @@ ssl = support.import_module("ssl") PROTOCOLS = sorted(ssl._PROTOCOL_NAMES) HOST = support.HOST +IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL') +IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0) + def data_file(*name): return os.path.join(os.path.dirname(__file__), *name) @@ -57,6 +60,8 @@ CRLFILE = data_file("revocation.crl") SIGNED_CERTFILE = data_file("keycert3.pem") SIGNED_CERTFILE2 = data_file("keycert4.pem") SIGNING_CA = data_file("pycacert.pem") +# cert with all kinds of subject alt names +ALLSANFILE = data_file("allsans.pem") REMOTE_HOST = "self-signed.pythontest.net" REMOTE_ROOT_CERT = data_file("selfsigned_pythontestdotnet.pem") @@ -164,7 +169,6 @@ class BasicSocketTests(unittest.TestCase): self.assertIn(ssl.HAS_SNI, {True, False}) self.assertIn(ssl.HAS_ECDH, {True, False}) - def test_random(self): v = ssl.RAND_status() if support.verbose: @@ -245,6 +249,27 @@ class BasicSocketTests(unittest.TestCase): self.assertEqual(p['subjectAltName'], san) + def test_parse_all_sans(self): + p = ssl._ssl._test_decode_cert(ALLSANFILE) + self.assertEqual(p['subjectAltName'], + ( + ('DNS', 'allsans'), + ('othername', ''), + ('othername', ''), + ('email', 'user@example.org'), + ('DNS', 'www.example.org'), + ('DirName', + ((('countryName', 'XY'),), + (('localityName', 'Castle Anthrax'),), + (('organizationName', 'Python Software Foundation'),), + (('commonName', 'dirname example'),))), + ('URI', 'https://www.python.org/'), + ('IP Address', '127.0.0.1'), + ('IP Address', '0:0:0:0:0:0:0:1\n'), + ('Registered ID', '1.2.3.4.5') + ) + ) + def test_DER_to_PEM(self): with open(CAFILE_CACERT, 'r') as f: pem = f.read() @@ -281,9 +306,9 @@ class BasicSocketTests(unittest.TestCase): self.assertGreaterEqual(status, 0) self.assertLessEqual(status, 15) # Version string as returned by {Open,Libre}SSL, the format might change - if "LibreSSL" in s: - self.assertTrue(s.startswith("LibreSSL {:d}.{:d}".format(major, minor)), - (s, t)) + if IS_LIBRESSL: + self.assertTrue(s.startswith("LibreSSL {:d}".format(major)), + (s, t, hex(n))) else: self.assertTrue(s.startswith("OpenSSL {:d}.{:d}.{:d}".format(major, minor, fix)), (s, t)) @@ -742,15 +767,15 @@ class ContextTests(unittest.TestCase): def test_options(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1) # OP_ALL | OP_NO_SSLv2 | OP_NO_SSLv3 is the default value - self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3, - ctx.options) + default = (ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3) + if not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0): + default |= ssl.OP_NO_COMPRESSION + self.assertEqual(default, ctx.options) ctx.options |= ssl.OP_NO_TLSv1 - self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_NO_TLSv1, - ctx.options) + self.assertEqual(default | ssl.OP_NO_TLSv1, ctx.options) if can_clear_options(): - ctx.options = (ctx.options & ~ssl.OP_NO_SSLv2) | ssl.OP_NO_TLSv1 - self.assertEqual(ssl.OP_ALL | ssl.OP_NO_TLSv1 | ssl.OP_NO_SSLv3, - ctx.options) + ctx.options = (ctx.options & ~ssl.OP_NO_TLSv1) + self.assertEqual(default, ctx.options) ctx.options = 0 self.assertEqual(0, ctx.options) else: @@ -1088,6 +1113,7 @@ class ContextTests(unittest.TestCase): self.assertRaises(TypeError, ctx.load_default_certs, 'SERVER_AUTH') @unittest.skipIf(sys.platform == "win32", "not-Windows specific") + @unittest.skipIf(IS_LIBRESSL, "LibreSSL doesn't support env vars") def test_load_default_certs_env(self): ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1) with support.EnvironmentVarGuard() as env: @@ -1534,7 +1560,6 @@ class NetworkedTests(unittest.TestCase): sys.stdout.write("%s\n" % x) else: self.fail("Got server certificate %s for %s:%s!" % (pem, host, port)) - pem = ssl.get_server_certificate((host, port), ca_certs=cert) if not pem: @@ -2489,8 +2514,6 @@ else: def test_asyncore_server(self): """Check the example asyncore integration.""" - indata = "TEST MESSAGE of mixed case\n" - if support.verbose: sys.stdout.write("\n") @@ -2622,20 +2645,13 @@ else: # consume data s.read() - data = b"data" - # read(-1, buffer) is supported, even though read(-1) is not + data = b"data" s.send(data) buffer = bytearray(len(data)) self.assertEqual(s.read(-1, buffer), len(data)) self.assertEqual(buffer, data) - # recv/read(0) should return no data - s.send(data) - self.assertEqual(s.recv(0), b"") - self.assertEqual(s.read(0), b"") - self.assertEqual(s.read(), data) - s.write(b"over\n") self.assertRaises(ValueError, s.recv, -1) @@ -2643,6 +2659,26 @@ else: s.close() + def test_recv_zero(self): + server = ThreadedEchoServer(CERTFILE) + server.__enter__() + self.addCleanup(server.__exit__, None, None) + s = socket.create_connection((HOST, server.port)) + self.addCleanup(s.close) + s = ssl.wrap_socket(s, suppress_ragged_eofs=False) + self.addCleanup(s.close) + + # recv/read(0) should return no data + s.send(b"data") + self.assertEqual(s.recv(0), b"") + self.assertEqual(s.read(0), b"") + self.assertEqual(s.read(), b"data") + + # Should not block if the other end sends no data + s.setblocking(False) + self.assertEqual(s.recv(0), b"") + self.assertEqual(s.recv_into(bytearray()), 0) + def test_handshake_timeout(self): # Issue #5103: SSL handshake must respect the socket timeout server = socket.socket(socket.AF_INET) @@ -2770,7 +2806,7 @@ else: with closing(context.wrap_socket(socket.socket())) as s: self.assertIs(s.version(), None) s.connect((HOST, server.port)) - self.assertEqual(s.version(), "TLSv1") + self.assertEqual(s.version(), 'TLSv1') self.assertIs(s.version(), None) @unittest.skipUnless(ssl.HAS_ECDH, "test requires ECDH-enabled OpenSSL") @@ -2912,24 +2948,36 @@ else: (['http/3.0', 'http/4.0'], None) ] for client_protocols, expected in protocol_tests: - server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) + server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) server_context.load_cert_chain(CERTFILE) server_context.set_alpn_protocols(server_protocols) - client_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) + client_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) client_context.load_cert_chain(CERTFILE) client_context.set_alpn_protocols(client_protocols) - stats = server_params_test(client_context, server_context, - chatty=True, connectionchatty=True) - msg = "failed trying %s (s) and %s (c).\n" \ - "was expecting %s, but got %%s from the %%s" \ - % (str(server_protocols), str(client_protocols), - str(expected)) - client_result = stats['client_alpn_protocol'] - self.assertEqual(client_result, expected, msg % (client_result, "client")) - server_result = stats['server_alpn_protocols'][-1] \ - if len(stats['server_alpn_protocols']) else 'nothing' - self.assertEqual(server_result, expected, msg % (server_result, "server")) + try: + stats = server_params_test(client_context, + server_context, + chatty=True, + connectionchatty=True) + except ssl.SSLError as e: + stats = e + + if expected is None and IS_OPENSSL_1_1: + # OpenSSL 1.1.0 raises handshake error + self.assertIsInstance(stats, ssl.SSLError) + else: + msg = "failed trying %s (s) and %s (c).\n" \ + "was expecting %s, but got %%s from the %%s" \ + % (str(server_protocols), str(client_protocols), + str(expected)) + client_result = stats['client_alpn_protocol'] + self.assertEqual(client_result, expected, + msg % (client_result, "client")) + server_result = stats['server_alpn_protocols'][-1] \ + if len(stats['server_alpn_protocols']) else 'nothing' + self.assertEqual(server_result, expected, + msg % (server_result, "server")) def test_selected_npn_protocol(self): # selected_npn_protocol() is None unless NPN is used diff --git a/Lib/test/test_structseq.py b/Lib/test/test_structseq.py index daa12aa..75861fe 100644 --- a/Lib/test/test_structseq.py +++ b/Lib/test/test_structseq.py @@ -88,7 +88,7 @@ class StructSeqTest(unittest.TestCase): class Exc(Exception): pass - # Devious code could crash structseqs' contructors + # Devious code could crash structseqs' constructors class C: def __getitem__(self, i): raise Exc diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index ab92112..160ccfe 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -426,7 +426,7 @@ class ProcessTestCase(BaseTestCase): def test_communicate_pipe_fd_leak(self): fd_directory = '/proc/%d/fd' % os.getpid() num_fds_before_popen = len(os.listdir(fd_directory)) - p = subprocess.Popen([sys.executable, "-c", "print()"], + p = subprocess.Popen([sys.executable, "-c", "print('')"], stdout=subprocess.PIPE) p.communicate() num_fds_after_communicate = len(os.listdir(fd_directory)) diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 85f9965..871f427 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -8,6 +8,7 @@ import errno import functools import gc import socket +import stat import sys import os import platform @@ -182,6 +183,16 @@ def unload(name): except KeyError: pass +def _force_run(path, func, *args): + try: + return func(*args) + except EnvironmentError as err: + if verbose >= 2: + print('%s: %s' % (err.__class__.__name__, err)) + print('re-run %s%r' % (func.__name__, args)) + os.chmod(path, stat.S_IRWXU) + return func(*args) + if sys.platform.startswith("win"): def _waitfor(func, pathname, waitall=False): # Perform the operation @@ -196,7 +207,7 @@ if sys.platform.startswith("win"): # The exponential backoff of the timeout amounts to a total # of ~1 second after which the deletion is probably an error # anyway. - # Testing on a i7@4.3GHz shows that usually only 1 iteration is + # Testing on an i7@4.3GHz shows that usually only 1 iteration is # required when contention occurs. timeout = 0.001 while timeout < 1.0: @@ -224,19 +235,40 @@ if sys.platform.startswith("win"): def _rmtree(path): def _rmtree_inner(path): - for name in os.listdir(path): + for name in _force_run(path, os.listdir, path): fullname = os.path.join(path, name) if os.path.isdir(fullname): _waitfor(_rmtree_inner, fullname, waitall=True) - os.rmdir(fullname) + _force_run(fullname, os.rmdir, fullname) else: - os.unlink(fullname) + _force_run(fullname, os.unlink, fullname) _waitfor(_rmtree_inner, path, waitall=True) - _waitfor(os.rmdir, path) + _waitfor(lambda p: _force_run(p, os.rmdir, p), path) else: _unlink = os.unlink _rmdir = os.rmdir - _rmtree = shutil.rmtree + + def _rmtree(path): + try: + shutil.rmtree(path) + return + except EnvironmentError: + pass + + def _rmtree_inner(path): + for name in _force_run(path, os.listdir, path): + fullname = os.path.join(path, name) + try: + mode = os.lstat(fullname).st_mode + except EnvironmentError: + mode = 0 + if stat.S_ISDIR(mode): + _rmtree_inner(fullname) + _force_run(path, os.rmdir, fullname) + else: + _force_run(path, os.unlink, fullname) + _rmtree_inner(path) + os.rmdir(path) def unlink(filename): try: @@ -331,6 +363,7 @@ def _is_gui_available(): try: from Tkinter import Tk root = Tk() + root.withdraw() root.update() root.destroy() except Exception as e: @@ -355,12 +388,12 @@ def is_resource_enabled(resource): def requires(resource, msg=None): """Raise ResourceDenied if the specified resource is not available.""" - if resource == 'gui' and not _is_gui_available(): - raise ResourceDenied(_is_gui_available.reason) if not is_resource_enabled(resource): if msg is None: msg = "Use of the `%s' resource not enabled" % resource raise ResourceDenied(msg) + if resource == 'gui' and not _is_gui_available(): + raise ResourceDenied(_is_gui_available.reason) def requires_mac_ver(*min_version): """Decorator raising SkipTest if the OS is Mac OS X and the OS X diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 7994fe6..0a61462 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -371,7 +371,9 @@ isn't, there should be a syntax error. File "", line 3 SyntaxError: 'break' outside loop -This should probably raise a better error than a SystemError (or none at all). +This raises a SyntaxError, it used to raise a SystemError. +Context for this change can be found on issue #27514 + In 2.5 there was a missing exception and an assert was triggered in a debug build. The number of blocks must be greater than CO_MAXBLOCKS. SF #1565514 @@ -399,7 +401,7 @@ build. The number of blocks must be greater than CO_MAXBLOCKS. SF #1565514 ... break Traceback (most recent call last): ... - SystemError: too many statically nested blocks + SyntaxError: too many statically nested blocks This tests assignment-context; there was a bug in Python 2.5 where compiling a complex 'if' (one with 'elif') would fail to notice an invalid suite, diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 3f9e996..89bd738 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -2,7 +2,9 @@ import sys import os import shutil import StringIO +from binascii import unhexlify from hashlib import md5 +from random import Random import errno import unittest @@ -276,12 +278,17 @@ class CommonReadTest(ReadTest): else: _open = open + # generate 512 pseudorandom bytes + data = unhexlify('%1024x' % Random(0).getrandbits(512*8)) for char in ('\0', 'a'): # Test if EOFHeaderError ('\0') and InvalidHeaderError ('a') # are ignored correctly. with _open(tmpname, "wb") as fobj: fobj.write(char * 1024) - fobj.write(tarfile.TarInfo("foo").tobuf()) + tarinfo = tarfile.TarInfo("foo") + tarinfo.size = len(data) + fobj.write(tarinfo.tobuf()) + fobj.write(data) tar = tarfile.open(tmpname, mode="r", ignore_zeros=True) try: diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index ac14e66..4c21e6b 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -739,7 +739,7 @@ class ThreadJoinOnShutdown(BaseTestCase): def generator(): while 1: - yield "genereator" + yield "generator" def callback(): if callback.gen is None: diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py index f60b4c7..57b3ef1 100644 --- a/Lib/test/test_tools.py +++ b/Lib/test/test_tools.py @@ -5,9 +5,11 @@ Tools directory of a Python checkout or tarball, such as reindent.py. """ import os +import runpy import sys import unittest import shutil +from cStringIO import StringIO import subprocess import sysconfig import tempfile @@ -359,6 +361,87 @@ class PindentTests(unittest.TestCase): self.pindent_test(clean, closed) +class FixcidTests(unittest.TestCase): + def test_parse_strings(self): + old1 = 'int xx = "xx\\"xx"[xx];\n' + old2 = "int xx = 'x\\'xx' + xx;\n" + output = self.run_script(old1 + old2) + new1 = 'int yy = "xx\\"xx"[yy];\n' + new2 = "int yy = 'x\\'xx' + yy;\n" + self.assertMultiLineEqual(output, + "1\n" + "< {old1}" + "> {new1}" + "{new1}" + "2\n" + "< {old2}" + "> {new2}" + "{new2}".format(old1=old1, old2=old2, new1=new1, new2=new2) + ) + + def test_alter_comments(self): + output = self.run_script( + substfile= + "xx yy\n" + "*aa bb\n", + args=("-c", "-",), + input= + "/* xx altered */\n" + "int xx;\n" + "/* aa unaltered */\n" + "int aa;\n", + ) + self.assertMultiLineEqual(output, + "1\n" + "< /* xx altered */\n" + "> /* yy altered */\n" + "/* yy altered */\n" + "2\n" + "< int xx;\n" + "> int yy;\n" + "int yy;\n" + "/* aa unaltered */\n" + "4\n" + "< int aa;\n" + "> int bb;\n" + "int bb;\n" + ) + + def test_directory(self): + os.mkdir(test_support.TESTFN) + self.addCleanup(test_support.rmtree, test_support.TESTFN) + c_filename = os.path.join(test_support.TESTFN, "file.c") + with open(c_filename, "w") as file: + file.write("int xx;\n") + with open(os.path.join(test_support.TESTFN, "file.py"), "w") as file: + file.write("xx = 'unaltered'\n") + script = os.path.join(scriptsdir, "fixcid.py") + output = self.run_script(args=(test_support.TESTFN,)) + self.assertMultiLineEqual(output, + "{}:\n" + "1\n" + '< int xx;\n' + '> int yy;\n'.format(c_filename) + ) + + def run_script(self, input="", args=("-",), substfile="xx yy\n"): + substfilename = test_support.TESTFN + ".subst" + with open(substfilename, "w") as file: + file.write(substfile) + self.addCleanup(test_support.unlink, substfilename) + + argv = ["fixcid.py", "-s", substfilename] + list(args) + script = os.path.join(scriptsdir, "fixcid.py") + with test_support.swap_attr(sys, "argv", argv), \ + test_support.swap_attr(sys, "stdin", StringIO(input)), \ + test_support.captured_stdout() as output: + try: + runpy.run_path(script, run_name="__main__") + except SystemExit as exit: + self.assertEqual(exit.code, 0) + return output.getvalue() + + def test_main(): test_support.run_unittest(*[obj for obj in globals().values() if isinstance(obj, type)]) diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py index 2292ad6..4971fcd 100644 --- a/Lib/test/test_trace.py +++ b/Lib/test/test_trace.py @@ -293,11 +293,11 @@ class TestCoverage(unittest.TestCase): with captured_stdout() as stdout: self._coverage(tracer) stdout = stdout.getvalue() - self.assertTrue("pprint.py" in stdout) - self.assertTrue("case.py" in stdout) # from unittest + self.assertIn("pprint.py", stdout) + self.assertIn("case.py", stdout) # from unittest files = os.listdir(TESTFN) - self.assertTrue("pprint.cover" in files) - self.assertTrue("unittest.case.cover" in files) + self.assertIn("pprint.cover", files) + self.assertIn("unittest.case.cover", files) def test_coverage_ignore(self): # Ignore all files, nothing should be traced nor printed diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 93224e1..0f2cf21 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -1665,6 +1665,13 @@ class UnicodeTest( self.assertEqual("%s" % u, u'__unicode__ overridden') self.assertEqual("{}".format(u), '__unicode__ overridden') + def test_free_after_iterating(self): + test_support.check_free_after_iterating(self, iter, unicode) + test_support.check_free_after_iterating(self, reversed, unicode) + + +class CAPITest(unittest.TestCase): + # Test PyUnicode_FromFormat() def test_from_format(self): test_support.import_module('ctypes') @@ -1857,11 +1864,6 @@ class UnicodeTest( unicode_encodedecimal(u"123" + s, "xmlcharrefreplace"), '123' + exp) - def test_free_after_iterating(self): - test_support.check_free_after_iterating(self, iter, unicode) - test_support.check_free_after_iterating(self, reversed, unicode) - - def test_main(): test_support.run_unittest(__name__) diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index 434d533..7b1ef6a 100644 --- a/Lib/test/test_urllib.py +++ b/Lib/test/test_urllib.py @@ -1,4 +1,4 @@ -"""Regresssion tests for urllib""" +"""Regression tests for urllib""" import collections import urllib @@ -170,6 +170,18 @@ class ProxyTests(unittest.TestCase): self.assertTrue(urllib.proxy_bypass_environment('anotherdomain.com:8888')) self.assertTrue(urllib.proxy_bypass_environment('newdomain.com:1234')) + def test_proxy_cgi_ignore(self): + try: + self.env.set('HTTP_PROXY', 'http://somewhere:3128') + proxies = urllib.getproxies_environment() + self.assertEqual('http://somewhere:3128', proxies['http']) + self.env.set('REQUEST_METHOD', 'GET') + proxies = urllib.getproxies_environment() + self.assertNotIn('http', proxies) + finally: + self.env.unset('REQUEST_METHOD') + self.env.unset('HTTP_PROXY') + def test_proxy_bypass_environment_host_match(self): bypass = urllib.proxy_bypass_environment self.env.set('NO_PROXY', diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py index bb82b26..9199cb9 100644 --- a/Lib/test/test_urllib2_localnet.py +++ b/Lib/test/test_urllib2_localnet.py @@ -93,7 +93,7 @@ class BasicAuthHandler(BaseHTTPServer.BaseHTTPRequestHandler): BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs) def log_message(self, format, *args): - # Supress the HTTP Console log output + # Suppress the HTTP Console log output pass def do_HEAD(self): @@ -329,6 +329,14 @@ class ProxyAuthTests(BaseTestCase): def setUp(self): super(ProxyAuthTests, self).setUp() + # Ignore proxy bypass settings in the environment. + def restore_environ(old_environ): + os.environ.clear() + os.environ.update(old_environ) + self.addCleanup(restore_environ, os.environ.copy()) + os.environ['NO_PROXY'] = '' + os.environ['no_proxy'] = '' + self.digest_auth_handler = DigestAuthHandler() self.digest_auth_handler.set_users({self.USER: self.PASSWD}) self.digest_auth_handler.set_realm(self.REALM) diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index bc7e398..607d9f9 100644 --- a/Lib/test/test_warnings.py +++ b/Lib/test/test_warnings.py @@ -205,6 +205,18 @@ class FilterTests(object): self.assertEqual(str(w[-1].message), text) self.assertTrue(w[-1].category is UserWarning) + def test_message_matching(self): + with original_warnings.catch_warnings(record=True, + module=self.module) as w: + self.module.simplefilter("ignore", UserWarning) + self.module.filterwarnings("error", "match", UserWarning) + self.assertRaises(UserWarning, self.module.warn, "match") + self.assertRaises(UserWarning, self.module.warn, "match prefix") + self.module.warn("suffix match") + self.assertEqual(w, []) + self.module.warn("something completely different") + self.assertEqual(w, []) + class CFilterTests(BaseTest, FilterTests): module = c_warnings diff --git a/Lib/test/test_winreg.py b/Lib/test/test_winreg.py index 8e3cdf3..7db1f73 100644 --- a/Lib/test/test_winreg.py +++ b/Lib/test/test_winreg.py @@ -174,7 +174,7 @@ class BaseWinregTests(unittest.TestCase): DeleteKey(key, "sub_key") try: - # Shouldnt be able to delete it twice! + # Shouldn't be able to delete it twice! DeleteKey(key, "sub_key") self.fail("Deleting the key twice succeeded") except EnvironmentError: diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py index c94a4dc..c3725ef 100644 --- a/Lib/test/test_winsound.py +++ b/Lib/test/test_winsound.py @@ -1,42 +1,41 @@ # Ridiculously simple test of the winsound module for Windows. -import unittest -from test import test_support -test_support.requires('audio') -import time +from __future__ import print_function + +import functools import os import subprocess +import time +import unittest + +from test import test_support as support -winsound = test_support.import_module('winsound') -ctypes = test_support.import_module('ctypes') -import _winreg - -def has_sound(sound): - """Find out if a particular event is configured with a default sound""" - try: - # Ask the mixer API for the number of devices it knows about. - # When there are no devices, PlaySound will fail. - if ctypes.windll.winmm.mixerGetNumDevs() is 0: - return False - - key = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER, - "AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound)) - value = _winreg.EnumValue(key, 0)[1] - if value is not u"": - return True +support.requires('audio') +winsound = support.import_module('winsound') + +# Unless we actually have an ear in the room, we have no idea whether a sound +# actually plays, and it's incredibly flaky trying to figure out if a sound +# even *should* play. Instead of guessing, just call the function and assume +# it either passed or raised the RuntimeError we expect in case of failure. +def sound_func(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + try: + ret = func(*args, **kwargs) + except RuntimeError as e: + if support.verbose: + print(func.__name__, 'failed:', e) else: - return False - except WindowsError: - return False + if support.verbose: + print(func.__name__, 'returned') + return ret + return wrapper + +safe_Beep = sound_func(winsound.Beep) +safe_MessageBeep = sound_func(winsound.MessageBeep) +safe_PlaySound = sound_func(winsound.PlaySound) class BeepTest(unittest.TestCase): - # As with PlaySoundTest, incorporate the _have_soundcard() check - # into our test methods. If there's no audio device present, - # winsound.Beep returns 0 and GetLastError() returns 127, which - # is: ERROR_PROC_NOT_FOUND ("The specified procedure could not - # be found"). (FWIW, virtual/Hyper-V systems fall under this - # scenario as they have no sound devices whatsoever (not even - # a legacy Beep device).) def test_errors(self): self.assertRaises(TypeError, winsound.Beep) @@ -44,27 +43,13 @@ class BeepTest(unittest.TestCase): self.assertRaises(ValueError, winsound.Beep, 32768, 75) def test_extremes(self): - self._beep(37, 75) - self._beep(32767, 75) + safe_Beep(37, 75) + safe_Beep(32767, 75) def test_increasingfrequency(self): for i in xrange(100, 2000, 100): - self._beep(i, 75) - - def _beep(self, *args): - # these tests used to use _have_soundcard(), but it's quite - # possible to have a soundcard, and yet have the beep driver - # disabled. So basically, we have no way of knowing whether - # a beep should be produced or not, so currently if these - # tests fail we're ignoring them - # - # XXX the right fix for this is to define something like - # _have_enabled_beep_driver() and use that instead of the - # try/except below - try: - winsound.Beep(*args) - except RuntimeError: - pass + safe_Beep(i, 75) + class MessageBeepTest(unittest.TestCase): @@ -74,22 +59,22 @@ class MessageBeepTest(unittest.TestCase): def test_default(self): self.assertRaises(TypeError, winsound.MessageBeep, "bad") self.assertRaises(TypeError, winsound.MessageBeep, 42, 42) - winsound.MessageBeep() + safe_MessageBeep() def test_ok(self): - winsound.MessageBeep(winsound.MB_OK) + safe_MessageBeep(winsound.MB_OK) def test_asterisk(self): - winsound.MessageBeep(winsound.MB_ICONASTERISK) + safe_MessageBeep(winsound.MB_ICONASTERISK) def test_exclamation(self): - winsound.MessageBeep(winsound.MB_ICONEXCLAMATION) + safe_MessageBeep(winsound.MB_ICONEXCLAMATION) def test_hand(self): - winsound.MessageBeep(winsound.MB_ICONHAND) + safe_MessageBeep(winsound.MB_ICONHAND) def test_question(self): - winsound.MessageBeep(winsound.MB_ICONQUESTION) + safe_MessageBeep(winsound.MB_ICONQUESTION) class PlaySoundTest(unittest.TestCase): @@ -103,151 +88,38 @@ class PlaySoundTest(unittest.TestCase): "none", winsound.SND_ASYNC | winsound.SND_MEMORY ) - @unittest.skipUnless(has_sound("SystemAsterisk"), "No default SystemAsterisk") - def test_alias_asterisk(self): - if _have_soundcard(): - winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - 'SystemAsterisk', winsound.SND_ALIAS - ) - - @unittest.skipUnless(has_sound("SystemExclamation"), "No default SystemExclamation") - def test_alias_exclamation(self): - if _have_soundcard(): - winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - 'SystemExclamation', winsound.SND_ALIAS - ) - - @unittest.skipUnless(has_sound("SystemExit"), "No default SystemExit") - def test_alias_exit(self): - if _have_soundcard(): - winsound.PlaySound('SystemExit', winsound.SND_ALIAS) - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - 'SystemExit', winsound.SND_ALIAS - ) - - @unittest.skipUnless(has_sound("SystemHand"), "No default SystemHand") - def test_alias_hand(self): - if _have_soundcard(): - winsound.PlaySound('SystemHand', winsound.SND_ALIAS) - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - 'SystemHand', winsound.SND_ALIAS - ) - - @unittest.skipUnless(has_sound("SystemQuestion"), "No default SystemQuestion") - def test_alias_question(self): - if _have_soundcard(): - winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - 'SystemQuestion', winsound.SND_ALIAS - ) + def test_aliases(self): + aliases = [ + "SystemAsterisk", + "SystemExclamation", + "SystemExit", + "SystemHand", + "SystemQuestion", + ] + for alias in aliases: + safe_PlaySound(alias, winsound.SND_ALIAS) def test_alias_fallback(self): - # In the absence of the ability to tell if a sound was actually - # played, this test has two acceptable outcomes: success (no error, - # sound was theoretically played; although as issue #19987 shows - # a box without a soundcard can "succeed") or RuntimeError. Any - # other error is a failure. - try: - winsound.PlaySound('!"$%&/(#+*', winsound.SND_ALIAS) - except RuntimeError: - pass + safe_PlaySound('!"$%&/(#+*', winsound.SND_ALIAS) def test_alias_nofallback(self): - if _have_soundcard(): - # Note that this is not the same as asserting RuntimeError - # will get raised: you cannot convert this to - # self.assertRaises(...) form. The attempt may or may not - # raise RuntimeError, but it shouldn't raise anything other - # than RuntimeError, and that's all we're trying to test - # here. The MS docs aren't clear about whether the SDK - # PlaySound() with SND_ALIAS and SND_NODEFAULT will return - # True or False when the alias is unknown. On Tim's WinXP - # box today, it returns True (no exception is raised). What - # we'd really like to test is that no sound is played, but - # that requires first wiring an eardrum class into unittest - # . - try: - winsound.PlaySound( - '!"$%&/(#+*', - winsound.SND_ALIAS | winsound.SND_NODEFAULT - ) - except RuntimeError: - pass - else: - self.assertRaises( - RuntimeError, - winsound.PlaySound, - '!"$%&/(#+*', winsound.SND_ALIAS | winsound.SND_NODEFAULT - ) + safe_PlaySound('!"$%&/(#+*', winsound.SND_ALIAS | winsound.SND_NODEFAULT) def test_stopasync(self): - if _have_soundcard(): - winsound.PlaySound( - 'SystemQuestion', - winsound.SND_ALIAS | winsound.SND_ASYNC | winsound.SND_LOOP - ) - time.sleep(0.5) - try: - winsound.PlaySound( - 'SystemQuestion', - winsound.SND_ALIAS | winsound.SND_NOSTOP - ) - except RuntimeError: - pass - else: # the first sound might already be finished - pass - winsound.PlaySound(None, winsound.SND_PURGE) - else: - # Issue 8367: PlaySound(None, winsound.SND_PURGE) - # does not raise on systems without a sound card. - pass - - -def _get_cscript_path(): - """Return the full path to cscript.exe or None.""" - for dir in os.environ.get("PATH", "").split(os.pathsep): - cscript_path = os.path.join(dir, "cscript.exe") - if os.path.exists(cscript_path): - return cscript_path - -__have_soundcard_cache = None -def _have_soundcard(): - """Return True iff this computer has a soundcard.""" - global __have_soundcard_cache - if __have_soundcard_cache is None: - cscript_path = _get_cscript_path() - if cscript_path is None: - # Could not find cscript.exe to run our VBScript helper. Default - # to True: most computers these days *do* have a soundcard. - return True - - check_script = os.path.join(os.path.dirname(__file__), - "check_soundcard.vbs") - p = subprocess.Popen([cscript_path, check_script], - stdout=subprocess.PIPE) - __have_soundcard_cache = not p.wait() - return __have_soundcard_cache + safe_PlaySound( + 'SystemQuestion', + winsound.SND_ALIAS | winsound.SND_ASYNC | winsound.SND_LOOP + ) + time.sleep(0.5) + safe_PlaySound('SystemQuestion', winsound.SND_ALIAS | winsound.SND_NOSTOP) + # Issue 8367: PlaySound(None, winsound.SND_PURGE) + # does not raise on systems without a sound card. + winsound.PlaySound(None, winsound.SND_PURGE) def test_main(): - test_support.run_unittest(BeepTest, MessageBeepTest, PlaySoundTest) + support.run_unittest(BeepTest, MessageBeepTest, PlaySoundTest) + if __name__=="__main__": test_main() diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index 4000b30..9c63aeb 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -17,8 +17,10 @@ from tempfile import TemporaryFile from random import randint, random, getrandbits from unittest import skipUnless +from test import script_helper from test.test_support import TESTFN, TESTFN_UNICODE, TESTFN_ENCODING, \ - run_unittest, findfile, unlink, rmtree, check_warnings + run_unittest, findfile, unlink, rmtree, \ + check_warnings, captured_stdout try: TESTFN_UNICODE.encode(TESTFN_ENCODING) except (UnicodeError, TypeError): @@ -344,6 +346,49 @@ class TestsWithSourceFile(unittest.TestCase): f.seek(len(data)) with zipfile.ZipFile(f, "r") as zipfp: self.assertEqual(zipfp.namelist(), [TESTFN]) + self.assertEqual(zipfp.read(TESTFN), self.data) + with open(TESTFN2, 'rb') as f: + self.assertEqual(f.read(len(data)), data) + zipfiledata = f.read() + with io.BytesIO(zipfiledata) as bio, zipfile.ZipFile(bio) as zipfp: + self.assertEqual(zipfp.namelist(), [TESTFN]) + self.assertEqual(zipfp.read(TESTFN), self.data) + + def test_read_concatenated_zip_file(self): + with io.BytesIO() as bio: + with zipfile.ZipFile(bio, 'w', zipfile.ZIP_STORED) as zipfp: + zipfp.write(TESTFN, TESTFN) + zipfiledata = bio.getvalue() + data = b'I am not a ZipFile!'*10 + with open(TESTFN2, 'wb') as f: + f.write(data) + f.write(zipfiledata) + + with zipfile.ZipFile(TESTFN2) as zipfp: + self.assertEqual(zipfp.namelist(), [TESTFN]) + self.assertEqual(zipfp.read(TESTFN), self.data) + + def test_append_to_concatenated_zip_file(self): + with io.BytesIO() as bio: + with zipfile.ZipFile(bio, 'w', zipfile.ZIP_STORED) as zipfp: + zipfp.write(TESTFN, TESTFN) + zipfiledata = bio.getvalue() + data = b'I am not a ZipFile!'*1000000 + with open(TESTFN2, 'wb') as f: + f.write(data) + f.write(zipfiledata) + + with zipfile.ZipFile(TESTFN2, 'a') as zipfp: + self.assertEqual(zipfp.namelist(), [TESTFN]) + zipfp.writestr('strfile', self.data) + + with open(TESTFN2, 'rb') as f: + self.assertEqual(f.read(len(data)), data) + zipfiledata = f.read() + with io.BytesIO(zipfiledata) as bio, zipfile.ZipFile(bio) as zipfp: + self.assertEqual(zipfp.namelist(), [TESTFN, 'strfile']) + self.assertEqual(zipfp.read(TESTFN), self.data) + self.assertEqual(zipfp.read('strfile'), self.data) def test_ignores_newline_at_end(self): with zipfile.ZipFile(TESTFN2, "w", zipfile.ZIP_STORED) as zipfp: @@ -1727,11 +1772,80 @@ class UniversalNewlineTests(unittest.TestCase): unlink(TESTFN2) +class CommandLineTest(unittest.TestCase): + + def zipfilecmd(self, *args, **kwargs): + rc, out, err = script_helper.assert_python_ok('-m', 'zipfile', *args, + **kwargs) + return out.replace(os.linesep.encode(), b'\n') + + def zipfilecmd_failure(self, *args): + return script_helper.assert_python_failure('-m', 'zipfile', *args) + + def test_test_command(self): + zip_name = findfile('zipdir.zip') + out = self.zipfilecmd('-t', zip_name) + self.assertEqual(out.rstrip(), b'Done testing') + zip_name = findfile('testtar.tar') + rc, out, err = self.zipfilecmd_failure('-t', zip_name) + self.assertEqual(out, b'') + + def test_list_command(self): + zip_name = findfile('zipdir.zip') + with captured_stdout() as t, zipfile.ZipFile(zip_name, 'r') as tf: + tf.printdir() + expected = t.getvalue().encode('ascii', 'backslashreplace') + out = self.zipfilecmd('-l', zip_name, + PYTHONIOENCODING='ascii:backslashreplace') + self.assertEqual(out, expected) + + @skipUnless(zlib, "requires zlib") + def test_create_command(self): + self.addCleanup(unlink, TESTFN) + with open(TESTFN, 'w') as f: + f.write('test 1') + os.mkdir(TESTFNDIR) + self.addCleanup(rmtree, TESTFNDIR) + with open(os.path.join(TESTFNDIR, 'file.txt'), 'w') as f: + f.write('test 2') + files = [TESTFN, TESTFNDIR] + namelist = [TESTFN, TESTFNDIR + '/', TESTFNDIR + '/file.txt'] + try: + out = self.zipfilecmd('-c', TESTFN2, *files) + self.assertEqual(out, b'') + with zipfile.ZipFile(TESTFN2) as zf: + self.assertEqual(zf.namelist(), namelist) + self.assertEqual(zf.read(namelist[0]), b'test 1') + self.assertEqual(zf.read(namelist[2]), b'test 2') + finally: + unlink(TESTFN2) + + def test_extract_command(self): + zip_name = findfile('zipdir.zip') + extdir = TESTFNDIR + os.mkdir(extdir) + try: + out = self.zipfilecmd('-e', zip_name, extdir) + self.assertEqual(out, b'') + with zipfile.ZipFile(zip_name) as zf: + for zi in zf.infolist(): + path = os.path.join(extdir, + zi.filename.replace('/', os.sep)) + if zi.filename.endswith('/'): + self.assertTrue(os.path.isdir(path)) + else: + self.assertTrue(os.path.isfile(path)) + with open(path, 'rb') as f: + self.assertEqual(f.read(), zf.read(zi)) + finally: + rmtree(extdir) + def test_main(): run_unittest(TestsWithSourceFile, TestZip64InSmallFiles, OtherTests, PyZipFileTests, DecryptionTests, TestsWithMultipleOpens, TestWithDirectory, UniversalNewlineTests, - TestsWithRandomBinaryFiles) + TestsWithRandomBinaryFiles, CommandLineTest) + if __name__ == "__main__": test_main() diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py index 96cc3a7..c556060 100644 --- a/Lib/test/test_zlib.py +++ b/Lib/test/test_zlib.py @@ -1,4 +1,5 @@ import unittest +from test import test_support as support from test.test_support import TESTFN, run_unittest, import_module, unlink, requires import binascii import pickle @@ -80,6 +81,16 @@ class ChecksumTestCase(unittest.TestCase): zlib.crc32('spam', (2**31))) +# Issue #10276 - check that inputs >=4GB are handled correctly. +class ChecksumBigBufferTestCase(unittest.TestCase): + + @precisionbigmemtest(size=_4G + 4, memuse=1, dry_run=False) + def test_big_buffer(self, size): + data = b"nyan" * (_1G + 1) + self.assertEqual(zlib.crc32(data) & 0xFFFFFFFF, 1044521549) + self.assertEqual(zlib.adler32(data) & 0xFFFFFFFF, 2256789997) + + class ExceptionTestCase(unittest.TestCase): # make sure we generate some expected errors def test_badlevel(self): @@ -104,6 +115,15 @@ class ExceptionTestCase(unittest.TestCase): self.assertRaises(ValueError, zlib.decompressobj().flush, 0) self.assertRaises(ValueError, zlib.decompressobj().flush, -1) + @support.cpython_only + def test_overflow(self): + with self.assertRaisesRegexp(OverflowError, 'int too large'): + zlib.decompress(b'', 15, sys.maxsize + 1) + with self.assertRaisesRegexp(OverflowError, 'int too large'): + zlib.decompressobj().decompress(b'', sys.maxsize + 1) + with self.assertRaisesRegexp(OverflowError, 'int too large'): + zlib.decompressobj().flush(sys.maxsize + 1) + class BaseCompressTestCase(object): def check_big_compress_buffer(self, size, compress_func): @@ -167,6 +187,28 @@ class CompressTestCase(BaseCompressTestCase, unittest.TestCase): def test_big_decompress_buffer(self, size): self.check_big_decompress_buffer(size, zlib.decompress) + @precisionbigmemtest(size=_4G, memuse=1) + def test_large_bufsize(self, size): + # Test decompress(bufsize) parameter greater than the internal limit + data = HAMLET_SCENE * 10 + compressed = zlib.compress(data, 1) + self.assertEqual(zlib.decompress(compressed, 15, size), data) + + def test_custom_bufsize(self): + data = HAMLET_SCENE * 10 + compressed = zlib.compress(data, 1) + self.assertEqual(zlib.decompress(compressed, 15, CustomInt()), data) + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @precisionbigmemtest(size=_4G + 100, memuse=4) + def test_64bit_compress(self, size): + data = b'x' * size + try: + comp = zlib.compress(data, 0) + self.assertEqual(zlib.decompress(comp), data) + finally: + comp = data = None + class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase): # Test compression object @@ -318,6 +360,22 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase): self.assertRaises(ValueError, dco.decompress, "", -1) self.assertEqual('', dco.unconsumed_tail) + def test_maxlen_large(self): + # Sizes up to sys.maxsize should be accepted, although zlib is + # internally limited to expressing sizes with unsigned int + data = HAMLET_SCENE * 10 + DEFAULTALLOC = 16 * 1024 + self.assertGreater(len(data), DEFAULTALLOC) + compressed = zlib.compress(data, 1) + dco = zlib.decompressobj() + self.assertEqual(dco.decompress(compressed, sys.maxsize), data) + + def test_maxlen_custom(self): + data = HAMLET_SCENE * 10 + compressed = zlib.compress(data, 1) + dco = zlib.decompressobj() + self.assertEqual(dco.decompress(compressed, CustomInt()), data[:100]) + def test_clear_unconsumed_tail(self): # Issue #12050: calling decompress() without providing max_length # should clear the unconsumed_tail attribute. @@ -416,6 +474,22 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase): data = zlib.compress(input2) self.assertEqual(dco.flush(), input1[1:]) + @precisionbigmemtest(size=_4G, memuse=1) + def test_flush_large_length(self, size): + # Test flush(length) parameter greater than internal limit UINT_MAX + input = HAMLET_SCENE * 10 + data = zlib.compress(input, 1) + dco = zlib.decompressobj() + dco.decompress(data, 1) + self.assertEqual(dco.flush(size), input[1:]) + + def test_flush_custom_length(self): + input = HAMLET_SCENE * 10 + data = zlib.compress(input, 1) + dco = zlib.decompressobj() + dco.decompress(data, 1) + self.assertEqual(dco.flush(CustomInt()), input[1:]) + @requires_Compress_copy def test_compresscopy(self): # Test copying a compression object @@ -527,6 +601,46 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase): decompress = lambda s: d.decompress(s) + d.flush() self.check_big_decompress_buffer(size, decompress) + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @precisionbigmemtest(size=_4G + 100, memuse=4) + def test_64bit_compress(self, size): + data = b'x' * size + co = zlib.compressobj(0) + do = zlib.decompressobj() + try: + comp = co.compress(data) + co.flush() + uncomp = do.decompress(comp) + do.flush() + self.assertEqual(uncomp, data) + finally: + comp = uncomp = data = None + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @precisionbigmemtest(size=_4G + 100, memuse=3) + def test_large_unused_data(self, size): + data = b'abcdefghijklmnop' + unused = b'x' * size + comp = zlib.compress(data) + unused + do = zlib.decompressobj() + try: + uncomp = do.decompress(comp) + do.flush() + self.assertEqual(unused, do.unused_data) + self.assertEqual(uncomp, data) + finally: + unused = comp = do = None + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @precisionbigmemtest(size=_4G + 100, memuse=5) + def test_large_unconsumed_tail(self, size): + data = b'x' * size + do = zlib.decompressobj() + try: + comp = zlib.compress(data, 0) + uncomp = do.decompress(comp, 1) + do.flush() + self.assertEqual(uncomp, data) + self.assertEqual(do.unconsumed_tail, b'') + finally: + comp = uncomp = data = None + def test_wbits(self): co = zlib.compressobj(1, zlib.DEFLATED, 15) zlib15 = co.compress(HAMLET_SCENE) + co.flush() @@ -658,9 +772,15 @@ LAERTES """ +class CustomInt: + def __int__(self): + return 100 + + def test_main(): run_unittest( ChecksumTestCase, + ChecksumBigBufferTestCase, ExceptionTestCase, CompressTestCase, CompressObjectTestCase diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 0c23c96..8f46101 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -529,7 +529,7 @@ class TestCase(object): between the two objects is more than the given delta. Note that decimal places (from zero) are usually not the same - as significant digits (measured from the most signficant digit). + as significant digits (measured from the most significant digit). If the two objects compare equal then they will automatically compare almost equal. @@ -567,7 +567,7 @@ class TestCase(object): between the two objects is less than the given delta. Note that decimal places (from zero) are usually not the same - as significant digits (measured from the most signficant digit). + as significant digits (measured from the most significant digit). Objects that are equal automatically fail. """ diff --git a/Lib/urllib.py b/Lib/urllib.py index 139fab9..7f70496 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -138,7 +138,7 @@ class URLopener: self.key_file = x509.get('key_file') self.cert_file = x509.get('cert_file') self.context = context - self.addheaders = [('User-Agent', self.version)] + self.addheaders = [('User-Agent', self.version), ('Accept', '*/*')] self.__tempfiles = [] self.__unlink = os.unlink # See cleanup() self.tempcache = None @@ -1380,12 +1380,21 @@ def getproxies_environment(): If you need a different way, you can pass a proxies dictionary to the [Fancy]URLopener constructor. """ + # Get all variables proxies = {} for name, value in os.environ.items(): name = name.lower() if value and name[-6:] == '_proxy': proxies[name[:-6]] = value + # CVE-2016-1000110 - If we are running as CGI script, forget HTTP_PROXY + # (non-all-lowercase) as it may be set from the web server by a "Proxy:" + # header from the client + # If "proxy" is lowercase, it will still be used thanks to the next block + if 'REQUEST_METHOD' in os.environ: + proxies.pop('http', None) + + # Get lowercase variables for name, value in os.environ.items(): if name[-6:] == '_proxy': name = name.lower() diff --git a/Lib/wave.py b/Lib/wave.py index 97f2146..28acaa6 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -243,7 +243,7 @@ class Wave_read: assert data.itemsize == self._sampwidth nitems = nframes * self._nchannels if nitems * self._sampwidth > chunk.chunksize - chunk.size_read: - nitems = (chunk.chunksize - chunk.size_read) / self._sampwidth + nitems = (chunk.chunksize - chunk.size_read) // self._sampwidth data.fromfile(chunk.file.file, nitems) # "tell" data chunk how much was read chunk.size_read = chunk.size_read + nitems * self._sampwidth diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index d3272a0..2389179 100755 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -642,6 +642,7 @@ if sys.platform == 'darwin': # (but we prefer using the OS X specific stuff) register("safari", None, MacOSXOSAScript('safari'), -1) register("firefox", None, MacOSXOSAScript('firefox'), -1) + register("chrome", None, MacOSXOSAScript('chrome'), -1) register("MacOSX", None, MacOSXOSAScript('default'), -1) diff --git a/Lib/xml/dom/expatbuilder.py b/Lib/xml/dom/expatbuilder.py index 4fba875..c7033f4 100644 --- a/Lib/xml/dom/expatbuilder.py +++ b/Lib/xml/dom/expatbuilder.py @@ -10,7 +10,7 @@ This avoids all the overhead of SAX and pulldom to gain performance. # minidom DOM and can't be used with other DOM implementations. This # is due, in part, to a lack of appropriate methods in the DOM (there is # no way to create Entity and Notation nodes via the DOM Level 2 -# interface), and for performance. The later is the cause of some fairly +# interface), and for performance. The latter is the cause of some fairly # cryptic code. # # Performance hacks: diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py index e072f71..b0e7485 100644 --- a/Lib/xmlrpclib.py +++ b/Lib/xmlrpclib.py @@ -970,7 +970,7 @@ class MultiCallIterator: "unexpected type in multicall result" class MultiCall: - """server -> a object used to boxcar method calls + """server -> an object used to boxcar method calls server should be a ServerProxy object. @@ -1334,7 +1334,7 @@ class Transport: ## # Create parser. # - # @return A 2-tuple containing a parser and a unmarshaller. + # @return A 2-tuple containing a parser and an unmarshaller. def getparser(self): # get parser and unmarshaller diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 3ab66ce..1d10650 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -772,6 +772,7 @@ class ZipFile(object): # set the modified flag so central directory gets written # even if no files are added to the archive self._didModify = True + self._start_disk = self.fp.tell() elif key == 'a': try: # See if file is a zip file @@ -785,6 +786,7 @@ class ZipFile(object): # set the modified flag so central directory gets written # even if no files are added to the archive self._didModify = True + self._start_disk = self.fp.tell() else: raise RuntimeError('Mode must be "r", "w" or "a"') except: @@ -815,17 +817,18 @@ class ZipFile(object): offset_cd = endrec[_ECD_OFFSET] # offset of central directory self._comment = endrec[_ECD_COMMENT] # archive comment - # "concat" is zero, unless zip was concatenated to another file - concat = endrec[_ECD_LOCATION] - size_cd - offset_cd + # self._start_disk: Position of the start of ZIP archive + # It is zero, unless ZIP was concatenated to another file + self._start_disk = endrec[_ECD_LOCATION] - size_cd - offset_cd if endrec[_ECD_SIGNATURE] == stringEndArchive64: # If Zip64 extension structures are present, account for them - concat -= (sizeEndCentDir64 + sizeEndCentDir64Locator) + self._start_disk -= (sizeEndCentDir64 + sizeEndCentDir64Locator) if self.debug > 2: - inferred = concat + offset_cd - print "given, inferred, offset", offset_cd, inferred, concat + inferred = self._start_disk + offset_cd + print "given, inferred, offset", offset_cd, inferred, self._start_disk # self.start_dir: Position of start of central directory - self.start_dir = offset_cd + concat + self.start_dir = offset_cd + self._start_disk fp.seek(self.start_dir, 0) data = fp.read(size_cd) fp = cStringIO.StringIO(data) @@ -855,7 +858,7 @@ class ZipFile(object): t>>11, (t>>5)&0x3F, (t&0x1F) * 2 ) x._decodeExtra() - x.header_offset = x.header_offset + concat + x.header_offset = x.header_offset + self._start_disk x.filename = x._decodeFilename() self.filelist.append(x) self.NameToInfo[x.filename] = x @@ -1198,7 +1201,7 @@ class ZipFile(object): raise RuntimeError('Compressed size larger than uncompressed size') # Seek backwards and write file header (which will now include # correct CRC and file sizes) - position = self.fp.tell() # Preserve current position in file + position = self.fp.tell() # Preserve current position in file self.fp.seek(zinfo.header_offset, 0) self.fp.write(zinfo.FileHeader(zip64)) self.fp.seek(position, 0) @@ -1284,11 +1287,10 @@ class ZipFile(object): file_size = zinfo.file_size compress_size = zinfo.compress_size - if zinfo.header_offset > ZIP64_LIMIT: - extra.append(zinfo.header_offset) + header_offset = zinfo.header_offset - self._start_disk + if header_offset > ZIP64_LIMIT: + extra.append(header_offset) header_offset = 0xffffffffL - else: - header_offset = zinfo.header_offset extra_data = zinfo.extra if extra: @@ -1332,7 +1334,7 @@ class ZipFile(object): # Write end-of-zip-archive record centDirCount = len(self.filelist) centDirSize = pos2 - pos1 - centDirOffset = pos1 + centDirOffset = pos1 - self._start_disk requires_zip64 = None if centDirCount > ZIP_FILECOUNT_LIMIT: requires_zip64 = "Files count" diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index 553d64e..0951e5f 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -242,9 +242,9 @@ def library_recipes(): result.extend([ dict( - name="OpenSSL 1.0.2h", - url="https://www.openssl.org/source/openssl-1.0.2h.tar.gz", - checksum='9392e65072ce4b614c1392eefc1f23d0', + name="OpenSSL 1.0.2j", + url="https://www.openssl.org/source/openssl-1.0.2j.tar.gz", + checksum='96322138f0b69e61b7212bc53d5e912b', patches=[ "openssl_sdk_makedepend.patch", ], diff --git a/Mac/BuildScript/openssl_sdk_makedepend.patch b/Mac/BuildScript/openssl_sdk_makedepend.patch index 96a8841..e22d67e 100644 --- a/Mac/BuildScript/openssl_sdk_makedepend.patch +++ b/Mac/BuildScript/openssl_sdk_makedepend.patch @@ -1,8 +1,6 @@ # HG changeset patch -# Parent d377390f787c0739a3e89f669def72d7167e5108 -# openssl_sdk_makedepend.patch # -# using openssl 1.0.2f +# using openssl 1.0.2j # # - support building with an OS X SDK @@ -11,7 +9,7 @@ diff Configure diff --git a/Configure b/Configure --- a/Configure +++ b/Configure -@@ -638,12 +638,12 @@ +@@ -642,12 +642,12 @@ ##### MacOS X (a.k.a. Rhapsody or Darwin) setup "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::", @@ -30,13 +28,13 @@ diff --git a/Configure b/Configure "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", # iPhoneOS/iOS "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -@@ -1717,8 +1717,7 @@ - s/^CC=.*$/CC= $cc/; +@@ -1728,8 +1728,7 @@ s/^AR=\s*ar/AR= $ar/; s/^RANLIB=.*/RANLIB= $ranlib/; + s/^RC=.*/RC= $windres/; - s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc"; - s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $ecc eq "gcc" || $ecc eq "clang"; -+ s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ ++ s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/; } s/^CFLAG=.*$/CFLAG= $cflags/; s/^DEPFLAG=.*$/DEPFLAG=$depflags/; diff --git a/Mac/BuildScript/resources/ReadMe.rtf b/Mac/BuildScript/resources/ReadMe.rtf index 368738f..67c056c 100644 --- a/Mac/BuildScript/resources/ReadMe.rtf +++ b/Mac/BuildScript/resources/ReadMe.rtf @@ -1,12 +1,13 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1347\cocoasubrtf570 +{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf750 {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 CourierNewPSMT;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \margl1440\margr1440\vieww15240\viewh15540\viewkind0 -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \f0\fs24 \cf0 This package will install Python $FULL_VERSION for Mac OS X $MACOSX_DEPLOYMENT_TARGET for the following architecture(s): $ARCHITECTURES.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul \ulc0 Which installer variant should I use? \b0 \ulnone \ @@ -36,8 +37,26 @@ To use IDLE or other programs that use the Tkinter graphical user interface tool \i0 for this version of Python and of Mac OS X.\ \b \ul \ -Installing on OS X 10.8 (Mountain Lion) or later systems\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 Packages installed with the system Python 2.7 are no longer searched for\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 \ulnone [CHANGED for Python 2.7.13] +\b0 \ +\ +As of Python 2.7.0, user-installed Python 2.7 versions from python.org installers added the system-wide site-packages directory for the Apple-supplied Python 2.7 to the end of their search path. This meant that packages installed with the system Python 2.7 could also be used by the user-installed Python 2.7. While sometimes convenient, this also often caused confusion with the implicit coupling between the two Python instances. Separately, as of macOS 10.12, Apple changed the layout of the system site-packages directory, +\f1 /Library/Python/2.7/site-packages +\f0 , in a way that can now cause installation of +\f1 pip +\f0 components to fail. To avoid the confusion and the installation failures, as of 2.7.13 user-installed Pythons no longer add +\f1 /Library/Python/2.7/site-packages +\f0 to +\f1 sys.path +\f0 . If you are using a package with both a user-installed Python 2.7 and the system Python 2.7, you will now need to ensure that separate copies of the package are installed for each instance.\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\b \cf0 \ul Installing on OS X 10.8 (Mountain Lion) or later systems\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \cf0 \ulnone [CHANGED for Python 2.7.9] \b0 \ \ @@ -45,10 +64,10 @@ As of Python 2.7.9, installer packages from python.org are now compatible with t \i Install Python \i0 installer window. Refer to Apple\'92s support pages for {\field{\*\fldinst{HYPERLINK "http://support.apple.com/kb/ht5290"}}{\fldrslt more information on Gatekeeper}}.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul Simplified web-based installs\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \cf0 \ulnone [NEW for Python 2.7.9] \b0 \ \ @@ -58,10 +77,10 @@ With the change to the newer flat format installer package, the download file no \f1 .dmg \f0 ) container. If you download the Python installer through a web browser, the OS X installer application may open automatically to allow you to perform the install. If your browser settings do not allow automatic open, double click on the downloaded installer file.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul New Installation Options and Defaults\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \cf0 \ulnone [NEW for Python 2.7.9] \b0 \ \ @@ -77,10 +96,10 @@ The Python installer now includes an option to automatically install or upgrade \i Release Notes \i0 link for this release at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul Certificate verification and OpenSSL\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \cf0 \ulnone [CHANGED for Python 2.7.9] \b0 \ \ @@ -132,17 +151,17 @@ For OS X 10.6+, Apple also provides The bundled \f1 pip \f0 included with 2.7.9 has its own default certificate store for verifying download connections.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul \ Binary installer support for OS X 10.4 and 10.3.9 discontinued\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \cf0 \ulnone [CHANGED for Python 2.7.9] \b0 \ \ As previously announced, binary installers for Python 2.7.9 from python.org no longer support Mac OS X 10.3.9 (Panther) and 10.4.x (Tiger) systems. These systems were last updated by Apple in 2005 and 2007. As of 2.7.9, the 32-bit-only installer supports PPC and Intel Macs running OS X 10.5 (Leopard). 10.5 was the last OS X release for PPC machines (G4 and G5). The 64-/32-bit installer configuration remains unchanged and should normally be used on OS X 10.6 (Snow Leopard) and later systems. This aligns Python 2.7.x installer configurations with those currently provided with Python 3.x. If needed, it is still possible to build Python from source for 10.3.9 and 10.4.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \b \cf0 \ul Python 3 and Python 2 Co-existence\ diff --git a/Mac/Demo/textedit.html b/Mac/Demo/textedit.html index fcd8c97..e7b76ae 100644 --- a/Mac/Demo/textedit.html +++ b/Mac/Demo/textedit.html @@ -24,7 +24,7 @@ the main event handling code. Normal use is to override the __init__makeusermenus
    to create your menus (your menu callback routines may be here too, but this is by no means necessary). The event handling code can be overridden at various levels, from very low-level (the -dispatch method) to intermedeate level (do_keyDown, for instance) +dispatch method) to intermediate level (do_keyDown, for instance) to high-level (do_key). The application class knows about the Window objects you create, and will forward events to the appropriate window (So, normally you would have a do_key method in your window object, not your application object). diff --git a/Mac/IDLE/idlemain.py b/Mac/IDLE/idlemain.py index 8b8beb9..986760d 100644 --- a/Mac/IDLE/idlemain.py +++ b/Mac/IDLE/idlemain.py @@ -68,8 +68,6 @@ for idx, value in enumerate(sys.argv): break # Now it is safe to import idlelib. -from idlelib import macosxSupport -macosxSupport._appbundle = True from idlelib.PyShell import main if __name__ == '__main__': main() diff --git a/Mac/Modules/ColorPickermodule.c b/Mac/Modules/ColorPickermodule.c index 688c468..060ce24 100644 --- a/Mac/Modules/ColorPickermodule.c +++ b/Mac/Modules/ColorPickermodule.c @@ -28,7 +28,7 @@ PERFORMANCE OF THIS SOFTWARE. /* ----------------------------------------------------- */ -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static char cp_GetColor__doc__[] = "GetColor(prompt, (r, g, b)) -> (r, g, b), ok" @@ -49,14 +49,14 @@ cp_GetColor(PyObject *self, PyObject *args) return Py_BuildValue("O&h", QdRGB_New, &outColor, ok); } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* List of methods defined in the module */ static struct PyMethodDef cp_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetColor", (PyCFunction)cp_GetColor, METH_VARARGS, cp_GetColor__doc__}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */ }; @@ -87,4 +87,3 @@ void initColorPicker(void) if (PyErr_Occurred()) Py_FatalError("can't initialize module ColorPicker"); } - diff --git a/Mac/Modules/MacOS.c b/Mac/Modules/MacOS.c index 28de4f5..83c203d 100644 --- a/Mac/Modules/MacOS.c +++ b/Mac/Modules/MacOS.c @@ -299,7 +299,7 @@ MacOS_GetCreatorAndType(PyObject *self, PyObject *args) FileInfo* finfo; if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSRef, &ref)) { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* This function is documented to take an FSSpec as well, * which only works in 32-bit mode. */ @@ -324,9 +324,9 @@ MacOS_GetCreatorAndType(PyObject *self, PyObject *args) Py_DECREF(creator); Py_DECREF(type); return res; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ return NULL; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } err = FSGetCatalogInfo(&ref, @@ -372,7 +372,7 @@ MacOS_SetCreatorAndType(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "O&O&O&", PyMac_GetFSRef, &ref, PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Try to handle FSSpec arguments, for backward compatibility */ FSSpec fss; FInfo info; @@ -391,9 +391,9 @@ MacOS_SetCreatorAndType(PyObject *self, PyObject *args) return PyErr_Mac(MacOS_Error, err); Py_INCREF(Py_None); return Py_None; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ return NULL; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } err = FSGetCatalogInfo(&ref, diff --git a/Mac/Modules/OSATerminology.c b/Mac/Modules/OSATerminology.c index 2114d07..ce924a4 100644 --- a/Mac/Modules/OSATerminology.c +++ b/Mac/Modules/OSATerminology.c @@ -14,7 +14,7 @@ #include -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static PyObject * PyOSA_GetAppTerminology(PyObject* self, PyObject* args) { @@ -73,14 +73,14 @@ PyOSA_GetSysTerminology(PyObject* self, PyObject* args) if (err) return PyMac_Error(err); return Py_BuildValue("O&", AEDesc_New, &theDesc); } -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* * List of methods defined in the module */ static struct PyMethodDef OSATerminology_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetAppTerminology", (PyCFunction) PyOSA_GetAppTerminology, METH_VARARGS, @@ -89,7 +89,7 @@ static struct PyMethodDef OSATerminology_methods[] = (PyCFunction) PyOSA_GetSysTerminology, METH_VARARGS, "Get the AppleScript language's terminology. GetSysTerminology() --> AEDesc"}, -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, (PyCFunction) NULL, 0, NULL} }; diff --git a/Mac/Modules/app/_Appmodule.c b/Mac/Modules/app/_Appmodule.c index c791807..a175fae 100644 --- a/Mac/Modules/app/_Appmodule.c +++ b/Mac/Modules/app/_Appmodule.c @@ -2,13 +2,11 @@ /* ========================== Module _App =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Carbon GUI stuff, not available in 64-bit mode */ - -#include "pymactoolbox.h" - /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ @@ -1806,13 +1804,13 @@ static PyMethodDef App_methods[] = { void init_App(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_App", App_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); App_Error = PyMac_GetOSErrException(); if (App_Error == NULL || @@ -1825,7 +1823,7 @@ void init_App(void) /* Backward-compatible name */ Py_INCREF(&ThemeDrawingState_Type); PyModule_AddObject(m, "ThemeDrawingStateType", (PyObject *)&ThemeDrawingState_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _App ========================= */ diff --git a/Mac/Modules/carbonevt/_CarbonEvtmodule.c b/Mac/Modules/carbonevt/_CarbonEvtmodule.c index 30d40c9..2323a14 100644 --- a/Mac/Modules/carbonevt/_CarbonEvtmodule.c +++ b/Mac/Modules/carbonevt/_CarbonEvtmodule.c @@ -2,10 +2,10 @@ /* ======================= Module _CarbonEvt ======================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ @@ -2128,27 +2128,27 @@ static PyMethodDef CarbonEvents_methods[] = { {NULL, NULL, 0} }; -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef CarbonEvents_methods[] = { {NULL, NULL, 0} }; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_CarbonEvt(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* !__LP64__ */ +#endif /* !APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_CarbonEvt", CarbonEvents_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME myEventHandlerUPP = NewEventHandlerUPP(myEventHandler); d = PyModule_GetDict(m); CarbonEvents_Error = PyMac_GetOSErrException(); @@ -2211,7 +2211,7 @@ void init_CarbonEvt(void) /* Backward-compatible name */ Py_INCREF(&EventHotKeyRef_Type); PyModule_AddObject(m, "EventHotKeyRefType", (PyObject *)&EventHotKeyRef_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ===================== End module _CarbonEvt ====================== */ diff --git a/Mac/Modules/cf/_CFmodule.c b/Mac/Modules/cf/_CFmodule.c index ee67c70..f05090f 100644 --- a/Mac/Modules/cf/_CFmodule.c +++ b/Mac/Modules/cf/_CFmodule.c @@ -83,7 +83,6 @@ extern int _OptionalCFURLRefObj_Convert(PyObject *, CFURLRef *); */ PyObject *CFRange_New(CFRange *itself) { - return Py_BuildValue("ll", (long)itself->location, (long)itself->length); } @@ -104,8 +103,8 @@ int OptionalCFURLRefObj_Convert(PyObject *v, CFURLRef *p_itself) { if ( v == Py_None ) { - p_itself = NULL; - return 1; + p_itself = NULL; + return 1; } return CFURLRefObj_Convert(v, p_itself); } diff --git a/Mac/Modules/cg/CFMLateImport.c b/Mac/Modules/cg/CFMLateImport.c index 955acfb..4da1536 100644 --- a/Mac/Modules/cg/CFMLateImport.c +++ b/Mac/Modules/cg/CFMLateImport.c @@ -894,7 +894,7 @@ static OSStatus RunRelocationEngine(const FragToFixInfo *fragToFix, MoreAssertQ(fragToFix->sectionHeaders != nil); MoreAssertQ(fragToFix->loaderSection != nil); MoreAssertQ(fragToFix->section0Base != nil); // Technically, having a nil for these two is not a problem, ... - MoreAssertQ(fragToFix->section1Base != nil); // but in practise it a wildly deviant case and we should know about it. + MoreAssertQ(fragToFix->section1Base != nil); // but in practice it a wildly deviant case and we should know about it. MoreAssertQ(importLibrary != nil); MoreAssertQ(lookup != nil); diff --git a/Mac/Modules/ctl/_Ctlmodule.c b/Mac/Modules/ctl/_Ctlmodule.c index a959eb4..5499958 100644 --- a/Mac/Modules/ctl/_Ctlmodule.c +++ b/Mac/Modules/ctl/_Ctlmodule.c @@ -2,17 +2,17 @@ /* ========================== Module _Ctl =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -5766,19 +5766,19 @@ mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc return (ControlPartCode)c_rv; } -#else /* __LP64__ */ +#else /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Ctl_methods[] = { {NULL, NULL, 0} }; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_Ctl(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; mytracker_upp = NewControlActionUPP(mytracker); @@ -5791,11 +5791,11 @@ void init_Ctl(void) mytrackingproc_upp = NewControlUserPaneTrackingUPP(mytrackingproc); PyMac_INIT_TOOLBOX_OBJECT_NEW(ControlHandle, CtlObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ControlHandle, CtlObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Ctl", Ctl_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Ctl_Error = PyMac_GetOSErrException(); if (Ctl_Error == NULL || @@ -5808,8 +5808,7 @@ void init_Ctl(void) /* Backward-compatible name */ Py_INCREF(&Control_Type); PyModule_AddObject(m, "ControlType", (PyObject *)&Control_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Ctl ========================= */ - diff --git a/Mac/Modules/dlg/_Dlgmodule.c b/Mac/Modules/dlg/_Dlgmodule.c index c4d66a9..e524c23 100644 --- a/Mac/Modules/dlg/_Dlgmodule.c +++ b/Mac/Modules/dlg/_Dlgmodule.c @@ -2,17 +2,15 @@ /* ========================== Module _Dlg =========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1577,7 +1575,7 @@ static PyMethodDef Dlg_methods[] = { void init_Dlg(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1585,11 +1583,11 @@ void init_Dlg(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_New); PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_WhichDialog); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DialogPtr, DlgObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Dlg", Dlg_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Dlg_Error = PyMac_GetOSErrException(); if (Dlg_Error == NULL || @@ -1602,7 +1600,7 @@ void init_Dlg(void) /* Backward-compatible name */ Py_INCREF(&Dialog_Type); PyModule_AddObject(m, "DialogType", (PyObject *)&Dialog_Type); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Dlg ========================= */ diff --git a/Mac/Modules/drag/_Dragmodule.c b/Mac/Modules/drag/_Dragmodule.c index aa87690..c3cfb91 100644 --- a/Mac/Modules/drag/_Dragmodule.c +++ b/Mac/Modules/drag/_Dragmodule.c @@ -2,17 +2,15 @@ /* ========================== Module _Drag ========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1117,18 +1115,18 @@ static PyMethodDef Drag_methods[] = { void init_Drag(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; PyMac_INIT_TOOLBOX_OBJECT_NEW(DragRef, DragObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragRef, DragObj_Convert); -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Drag", Drag_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Drag_Error = PyMac_GetOSErrException(); if (Drag_Error == NULL || @@ -1150,7 +1148,7 @@ void init_Drag(void) dragglue_DrawingUPP = NewDragDrawingUPP(dragglue_Drawing); #endif -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } diff --git a/Mac/Modules/evt/_Evtmodule.c b/Mac/Modules/evt/_Evtmodule.c index bd61efa..7a0f5f8 100644 --- a/Mac/Modules/evt/_Evtmodule.c +++ b/Mac/Modules/evt/_Evtmodule.c @@ -10,9 +10,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/file/_Filemodule.c b/Mac/Modules/file/_Filemodule.c index eb5b16d..808b5a0 100644 --- a/Mac/Modules/file/_Filemodule.c +++ b/Mac/Modules/file/_Filemodule.c @@ -13,9 +13,9 @@ typedef SInt16 FSIORefNum; /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/fm/_Fmmodule.c b/Mac/Modules/fm/_Fmmodule.c index c516f24..a247e41 100644 --- a/Mac/Modules/fm/_Fmmodule.c +++ b/Mac/Modules/fm/_Fmmodule.c @@ -11,9 +11,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/folder/_Foldermodule.c b/Mac/Modules/folder/_Foldermodule.c index 10597f5..cfd2625 100644 --- a/Mac/Modules/folder/_Foldermodule.c +++ b/Mac/Modules/folder/_Foldermodule.c @@ -9,9 +9,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/help/_Helpmodule.c b/Mac/Modules/help/_Helpmodule.c index eaa2e8a..69e2a96 100644 --- a/Mac/Modules/help/_Helpmodule.c +++ b/Mac/Modules/help/_Helpmodule.c @@ -2,17 +2,15 @@ /* ========================== Module _Help ========================== */ #include "Python.h" - -#ifndef __LP64__ - - #include "pymactoolbox.h" +#if APPLE_SUPPORTS_QUICKTIME + /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -145,10 +143,10 @@ static PyObject *Help_HMHideTag(PyObject *_self, PyObject *_args) return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Help_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"HMGetHelpMenu", (PyCFunction)Help_HMGetHelpMenu, 1, PyDoc_STR("() -> (MenuRef outHelpMenu, MenuItemIndex outFirstCustomItemIndex)")}, {"HMAreHelpTagsDisplayed", (PyCFunction)Help_HMAreHelpTagsDisplayed, 1, @@ -165,31 +163,30 @@ static PyMethodDef Help_methods[] = { PyDoc_STR("(DialogPtr inDialog, SInt16 inHdlgRsrcID, SInt16 inItemStart) -> None")}, {"HMHideTag", (PyCFunction)Help_HMHideTag, 1, PyDoc_STR("() -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; - void init_Help(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Help", Help_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Help_Error = PyMac_GetOSErrException(); if (Help_Error == NULL || PyDict_SetItemString(d, "Error", Help_Error) != 0) return; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Help ======================== */ diff --git a/Mac/Modules/ibcarbon/_IBCarbon.c b/Mac/Modules/ibcarbon/_IBCarbon.c index 2a65f42..a947572 100644 --- a/Mac/Modules/ibcarbon/_IBCarbon.c +++ b/Mac/Modules/ibcarbon/_IBCarbon.c @@ -2,12 +2,12 @@ /* ======================== Module _IBCarbon ======================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME #include -#include "pymactoolbox.h" #ifdef USE_TOOLBOX_OBJECT_GLUE extern int _CFStringRefObj_Convert(PyObject *, CFStringRef *); @@ -225,13 +225,13 @@ static PyObject *IBCarbon_CreateNibReference(PyObject *_self, PyObject *_args) IBNibRefObj_New, outNibRef); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef IBCarbon_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"CreateNibReference", (PyCFunction)IBCarbon_CreateNibReference, 1, PyDoc_STR("(CFStringRef inNibName) -> (IBNibRef outNibRef)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -241,16 +241,16 @@ static PyMethodDef IBCarbon_methods[] = { void init_IBCarbon(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_IBCarbon", IBCarbon_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); IBCarbon_Error = PyMac_GetOSErrException(); if (IBCarbon_Error == NULL || @@ -263,7 +263,7 @@ void init_IBCarbon(void) /* Backward-compatible name */ Py_INCREF(&IBNibRef_Type); PyModule_AddObject(m, "IBNibRefType", (PyObject *)&IBNibRef_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ====================== End module _IBCarbon ====================== */ diff --git a/Mac/Modules/icn/_Icnmodule.c b/Mac/Modules/icn/_Icnmodule.c index 6967ae4..83e5f58 100644 --- a/Mac/Modules/icn/_Icnmodule.c +++ b/Mac/Modules/icn/_Icnmodule.c @@ -2,17 +2,17 @@ /* ========================== Module _Icn =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1448,10 +1448,10 @@ static PyObject *Icn_WriteIconFile(PyObject *_self, PyObject *_args) _res = Py_None; return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Icn_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetCIcon", (PyCFunction)Icn_GetCIcon, 1, PyDoc_STR("(SInt16 iconID) -> (CIconHandle _rv)")}, {"PlotCIcon", (PyCFunction)Icn_PlotCIcon, 1, @@ -1576,7 +1576,7 @@ static PyMethodDef Icn_methods[] = { PyDoc_STR("(FSRef ref) -> (IconFamilyHandle iconFamily)")}, {"WriteIconFile", (PyCFunction)Icn_WriteIconFile, 1, PyDoc_STR("(IconFamilyHandle iconFamily, FSSpec iconFile) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1586,21 +1586,21 @@ static PyMethodDef Icn_methods[] = { void init_Icn(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Icn", Icn_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Icn_Error = PyMac_GetOSErrException(); if (Icn_Error == NULL || PyDict_SetItemString(d, "Error", Icn_Error) != 0) return; -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Icn ========================= */ diff --git a/Mac/Modules/launch/_Launchmodule.c b/Mac/Modules/launch/_Launchmodule.c index 88912b2..6e94ae0 100644 --- a/Mac/Modules/launch/_Launchmodule.c +++ b/Mac/Modules/launch/_Launchmodule.c @@ -9,9 +9,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/list/_Listmodule.c b/Mac/Modules/list/_Listmodule.c index 9e63686..2cf2f50 100644 --- a/Mac/Modules/list/_Listmodule.c +++ b/Mac/Modules/list/_Listmodule.c @@ -2,17 +2,16 @@ /* ========================== Module _List ========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ - +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1032,10 +1031,10 @@ static PyObject *List_as_List(PyObject *_self, PyObject *_args) return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef List_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"CreateCustomList", (PyCFunction)List_CreateCustomList, 1, PyDoc_STR("(Rect rView, Rect dataBounds, Point cellSize, ListDefSpec theSpec, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert) -> (ListHandle outList)")}, {"LNew", (PyCFunction)List_LNew, 1, @@ -1058,11 +1057,11 @@ static PyMethodDef List_methods[] = { PyDoc_STR("(ListHandle list, OptionBits selectionFlags) -> None")}, {"as_List", (PyCFunction)List_as_List, 1, PyDoc_STR("(Resource)->List.\nReturns List object (which is not auto-freed!)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME static void myListDefFunction(SInt16 message, @@ -1100,13 +1099,13 @@ static void myListDefFunction(SInt16 message, Py_DECREF(rv); } } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_List(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1115,11 +1114,11 @@ void init_List(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(ListHandle, ListObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ListHandle, ListObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_List", List_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); List_Error = PyMac_GetOSErrException(); if (List_Error == NULL || @@ -1132,7 +1131,7 @@ void init_List(void) /* Backward-compatible name */ Py_INCREF(&List_Type); PyModule_AddObject(m, "ListType", (PyObject *)&List_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _List ======================== */ diff --git a/Mac/Modules/menu/_Menumodule.c b/Mac/Modules/menu/_Menumodule.c index dbb075c..f0a2b58 100644 --- a/Mac/Modules/menu/_Menumodule.c +++ b/Mac/Modules/menu/_Menumodule.c @@ -10,9 +10,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/mlte/_Mltemodule.c b/Mac/Modules/mlte/_Mltemodule.c index cd698f4..62d4111 100644 --- a/Mac/Modules/mlte/_Mltemodule.c +++ b/Mac/Modules/mlte/_Mltemodule.c @@ -2,17 +2,16 @@ /* ========================== Module _Mlte ========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ - +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1623,10 +1622,10 @@ static PyObject *Mlte_TXNInitTextension(PyObject *_self, PyObject *_args) } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Mlte_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"TXNNewObject", (PyCFunction)Mlte_TXNNewObject, 1, PyDoc_STR("(FSSpec * iFileSpec, WindowPtr iWindow, Rect iFrame, TXNFrameOptions iFrameOptions, TXNFrameType iFrameType, TXNFileType iFileType, TXNPermanentTextEncodingType iPermanentEncoding) -> (TXNObject oTXNObject, TXNFrameID oTXNFrameID)")}, {"TXNTerminateTextension", (PyCFunction)Mlte_TXNTerminateTextension, 1, @@ -1643,7 +1642,7 @@ static PyMethodDef Mlte_methods[] = { PyDoc_STR("() -> (TXNVersionValue _rv, TXNFeatureBits oFeatureFlags)")}, {"TXNInitTextension", (PyCFunction)Mlte_TXNInitTextension, 1, PyDoc_STR("(TXNInitOptions) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1653,17 +1652,17 @@ static PyMethodDef Mlte_methods[] = { void init_Mlte(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; // PyMac_INIT_TOOLBOX_OBJECT_NEW(xxxx); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Mlte", Mlte_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Mlte_Error = PyMac_GetOSErrException(); if (Mlte_Error == NULL || @@ -1683,7 +1682,7 @@ void init_Mlte(void) /* Backward-compatible name */ Py_INCREF(&TXNFontMenuObject_Type); PyModule_AddObject(m, "TXNFontMenuObjectType", (PyObject *)&TXNFontMenuObject_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Mlte ======================== */ diff --git a/Mac/Modules/osa/_OSAmodule.c b/Mac/Modules/osa/_OSAmodule.c index 10dd0ff..b3e6b81 100644 --- a/Mac/Modules/osa/_OSAmodule.c +++ b/Mac/Modules/osa/_OSAmodule.c @@ -9,9 +9,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/qd/_Qdmodule.c b/Mac/Modules/qd/_Qdmodule.c index d21f361..2f036fd 100644 --- a/Mac/Modules/qd/_Qdmodule.c +++ b/Mac/Modules/qd/_Qdmodule.c @@ -11,9 +11,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/qdoffs/_Qdoffsmodule.c b/Mac/Modules/qdoffs/_Qdoffsmodule.c index e5562cb..76ce5fc 100644 --- a/Mac/Modules/qdoffs/_Qdoffsmodule.c +++ b/Mac/Modules/qdoffs/_Qdoffsmodule.c @@ -11,9 +11,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/qt/_Qtmodule.c b/Mac/Modules/qt/_Qtmodule.c index bf67cda..b6fb602 100644 --- a/Mac/Modules/qt/_Qtmodule.c +++ b/Mac/Modules/qt/_Qtmodule.c @@ -2,17 +2,17 @@ /* =========================== Module _Qt =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -26295,10 +26295,10 @@ static PyObject *Qt_MoviesTask(PyObject *_self, PyObject *_args) _res = Py_None; return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Qt_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"EnterMovies", (PyCFunction)Qt_EnterMovies, 1, PyDoc_STR("() -> None")}, {"ExitMovies", (PyCFunction)Qt_ExitMovies, 1, @@ -27991,7 +27991,7 @@ static PyMethodDef Qt_methods[] = { PyDoc_STR("(WindowPtr wp, Point startPt, Rect boundsRect) -> None")}, {"MoviesTask", (PyCFunction)Qt_MoviesTask, 1, PyDoc_STR("(long maxMilliSecToUse) -> None")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -28001,7 +28001,7 @@ static PyMethodDef Qt_methods[] = { void init_Qt(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -28018,11 +28018,11 @@ void init_Qt(void) PyMac_INIT_TOOLBOX_OBJECT_CONVERT(UserData, UserDataObj_Convert); PyMac_INIT_TOOLBOX_OBJECT_NEW(Media, MediaObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Media, MediaObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Qt", Qt_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Qt_Error = PyMac_GetOSErrException(); if (Qt_Error == NULL || @@ -28084,7 +28084,7 @@ void init_Qt(void) /* Backward-compatible name */ Py_INCREF(&SGOutput_Type); PyModule_AddObject(m, "SGOutputType", (PyObject *)&SGOutput_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ========================= End module _Qt ========================= */ diff --git a/Mac/Modules/res/_Resmodule.c b/Mac/Modules/res/_Resmodule.c index f5824b1..b1410ab 100644 --- a/Mac/Modules/res/_Resmodule.c +++ b/Mac/Modules/res/_Resmodule.c @@ -8,9 +8,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -551,7 +551,7 @@ static int ResObj_set_data(ResourceObject *self, PyObject *v, void *closure) HLock(self->ob_itself); memcpy((char *)*self->ob_itself, data, size); HUnlock(self->ob_itself); - /* XXXX Should I do the Changed call immedeately? */ + /* XXXX Should I do the Changed call immediately? */ return 0; return 0; diff --git a/Mac/Modules/res/ressupport.py b/Mac/Modules/res/ressupport.py index 9e42a45..899ddc0 100644 --- a/Mac/Modules/res/ressupport.py +++ b/Mac/Modules/res/ressupport.py @@ -125,7 +125,7 @@ class ResDefinition(PEP253Mixin, GlobalObjectDefinition): HLock(self->ob_itself); memcpy((char *)*self->ob_itself, data, size); HUnlock(self->ob_itself); - /* XXXX Should I do the Changed call immedeately? */ + /* XXXX Should I do the Changed call immediately? */ return 0; """, 'The resource data' diff --git a/Mac/Modules/scrap/_Scrapmodule.c b/Mac/Modules/scrap/_Scrapmodule.c index f24ed8b..5bd1ba7 100644 --- a/Mac/Modules/scrap/_Scrapmodule.c +++ b/Mac/Modules/scrap/_Scrapmodule.c @@ -10,9 +10,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/snd/_Sndmodule.c b/Mac/Modules/snd/_Sndmodule.c index d713efe..32337a2 100644 --- a/Mac/Modules/snd/_Sndmodule.c +++ b/Mac/Modules/snd/_Sndmodule.c @@ -10,9 +10,9 @@ /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) diff --git a/Mac/Modules/te/_TEmodule.c b/Mac/Modules/te/_TEmodule.c index a998fc8..78b027d 100644 --- a/Mac/Modules/te/_TEmodule.c +++ b/Mac/Modules/te/_TEmodule.c @@ -2,17 +2,17 @@ /* =========================== Module _TE =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -1268,10 +1268,10 @@ static PyObject *TE_as_TE(PyObject *_self, PyObject *_args) TEObj_New, _rv); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef TE_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"TEScrapHandle", (PyCFunction)TE_TEScrapHandle, 1, PyDoc_STR("() -> (Handle _rv)")}, {"TEGetScrapLength", (PyCFunction)TE_TEGetScrapLength, 1, @@ -1298,7 +1298,7 @@ static PyMethodDef TE_methods[] = { PyDoc_STR("(UInt8 value) -> None")}, {"as_TE", (PyCFunction)TE_as_TE, 1, PyDoc_STR("(Handle h) -> (TEHandle _rv)")}, -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ {NULL, NULL, 0} }; @@ -1308,7 +1308,7 @@ static PyMethodDef TE_methods[] = { void init_TE(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; @@ -1316,10 +1316,10 @@ void init_TE(void) PyMac_INIT_TOOLBOX_OBJECT_NEW(TEHandle, TEObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TEHandle, TEObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_TE", TE_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); TE_Error = PyMac_GetOSErrException(); if (TE_Error == NULL || @@ -1332,7 +1332,7 @@ void init_TE(void) /* Backward-compatible name */ Py_INCREF(&TE_Type); PyModule_AddObject(m, "TEType", (PyObject *)&TE_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ========================= End module _TE ========================= */ diff --git a/Mac/Modules/win/_Winmodule.c b/Mac/Modules/win/_Winmodule.c index 89233ed..4c6207f 100644 --- a/Mac/Modules/win/_Winmodule.c +++ b/Mac/Modules/win/_Winmodule.c @@ -2,16 +2,16 @@ /* ========================== Module _Win =========================== */ #include "Python.h" +#include "pymactoolbox.h" -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME -#include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ - PyErr_SetString(PyExc_NotImplementedError, \ - "Not available in this shared library/OS version"); \ - return NULL; \ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ }} while(0) @@ -3147,10 +3147,10 @@ static PyObject *Win_FindWindow(PyObject *_self, PyObject *_args) WinObj_WhichWindow, theWindow); return _res; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ static PyMethodDef Win_methods[] = { -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME {"GetNewCWindow", (PyCFunction)Win_GetNewCWindow, 1, PyDoc_STR("(short windowID, WindowPtr behind) -> (WindowPtr _rv)")}, {"NewWindow", (PyCFunction)Win_NewWindow, 1, @@ -3202,12 +3202,12 @@ static PyMethodDef Win_methods[] = { {"FindWindow", (PyCFunction)Win_FindWindow, 1, PyDoc_STR("(Point thePoint) -> (short _rv, WindowPtr theWindow)")}, {NULL, NULL, 0} -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ }; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME /* Return the object corresponding to the window, or NULL */ PyObject * @@ -3230,22 +3230,22 @@ WinObj_WhichWindow(WindowPtr w) return it; } -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ void init_Win(void) { PyObject *m; -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME PyObject *d; PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_New); PyMac_INIT_TOOLBOX_OBJECT_NEW(WindowPtr, WinObj_WhichWindow); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(WindowPtr, WinObj_Convert); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ m = Py_InitModule("_Win", Win_methods); -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME d = PyModule_GetDict(m); Win_Error = PyMac_GetOSErrException(); if (Win_Error == NULL || @@ -3258,7 +3258,7 @@ void init_Win(void) /* Backward-compatible name */ Py_INCREF(&Window_Type); PyModule_AddObject(m, "WindowType", (PyObject *)&Window_Type); -#endif /* __LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ } /* ======================== End module _Win ========================= */ diff --git a/Mac/PythonLauncher/MyAppDelegate.m b/Mac/PythonLauncher/MyAppDelegate.m index e75fb06..25779a2 100644 --- a/Mac/PythonLauncher/MyAppDelegate.m +++ b/Mac/PythonLauncher/MyAppDelegate.m @@ -34,7 +34,7 @@ - (BOOL)shouldShowUI { // if this call comes before applicationDidFinishLaunching: we - // should terminate immedeately after starting the script. + // should terminate immediately after starting the script. if (!initial_action_done) should_terminate = YES; initial_action_done = YES; diff --git a/Makefile.pre.in b/Makefile.pre.in index dffc0b9..e288964 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -200,7 +200,6 @@ UNICODE_OBJS= @UNICODE_OBJS@ PYTHON= python$(EXE) BUILDPYTHON= python$(BUILDEXE) -cross_compiling=@cross_compiling@ PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@ HOST_GNU_TYPE= @host@ @@ -429,7 +428,7 @@ LIBRARY_OBJS= \ # Rules # Default target -all: build_all +all: @DEF_MAKE_ALL_RULE@ build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks # Compile a binary with profile guided optimization. @@ -453,7 +452,7 @@ profile-opt: $(MAKE) profile-removal build_all_generate_profile: - $(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LIBS="$(LIBS)" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LIBS="$(LIBS)" run_profile_task: : # FIXME: can't run for a cross build @@ -463,14 +462,14 @@ build_all_merge_profile: $(LLVM_PROF_MERGER) build_all_use_profile: - $(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@" # Compile and run with gcov .PHONY=coverage coverage-lcov coverage-report coverage: @echo "Building with support for coverage checking:" $(MAKE) clean profile-removal - $(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov" coverage-lcov: @echo "Creating Coverage HTML report with LCOV:" @@ -680,22 +679,11 @@ Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h -$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) +$(GRAMMAR_H): @GENERATED_COMMENT@ $(GRAMMAR_INPUT) $(PGEN) @$(MKDIR_P) Include - # Avoid copying the file onto itself for an in-tree build - if test "$(cross_compiling)" != "yes"; then \ - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \ - else \ - cp $(srcdir)/Include/graminit.h $(GRAMMAR_H).tmp; \ - mv $(GRAMMAR_H).tmp $(GRAMMAR_H); \ - fi -$(GRAMMAR_C): $(GRAMMAR_H) - if test "$(cross_compiling)" != "yes"; then \ - touch $(GRAMMAR_C); \ - else \ - cp $(srcdir)/Python/graminit.c $(GRAMMAR_C).tmp; \ - mv $(GRAMMAR_C).tmp $(GRAMMAR_C); \ - fi + $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) +$(GRAMMAR_C): @GENERATED_COMMENT@ $(GRAMMAR_H) + touch $(GRAMMAR_C) $(PGEN): $(PGENOBJS) $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) @@ -895,7 +883,7 @@ testuniversal: all platform # Like testall, but with a single pass only # run an optional script to include some information about the build environment -buildbottest: all platform +buildbottest: build_all platform -@if which pybuildbot.identify >/dev/null 2>&1; then \ pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \ fi @@ -1244,7 +1232,7 @@ libainstall: all python-config $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \ $(DESTDIR)$(LIBPL)/makexp_aix; \ echo "$(LIBPL)/makexp_aix"; \ - $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix \ + $(INSTALL_SCRIPT) Modules/ld_so_aix \ $(DESTDIR)$(LIBPL)/ld_so_aix; \ echo "$(LIBPL)/ld_so_aix"; \ echo; echo "See Misc/AIX-NOTES for details."; \ @@ -1405,7 +1393,7 @@ clean: pycremoval find build -name 'fficonfig.h' -exec rm -f {} ';' || true find build -name 'fficonfig.py' -exec rm -f {} ';' || true -rm -f Lib/lib2to3/*Grammar*.pickle - -rm -rf build + -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';' profile-removal: find . -name '*.gc??' -exec rm -f {} ';' @@ -1431,7 +1419,11 @@ distclean: clobber Modules/ld_so_aix Modules/python.exp Misc/python.pc -rm -f python*-gdb.py -rm -f pybuilddir.txt - find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \ + # Issue #28258: set LC_ALL to avoid issues with Estonian locale. + # Expansion is performed here by shell (spawned by make) itself before + # arguments are passed to find. So LC_ALL=C must be set as a separate + # command. + LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \ -o -name '[@,#]*' -o -name '*.old' \ -o -name '*.orig' -o -name '*.rej' \ -o -name '*.bak' ')' \ diff --git a/Misc/ACKS b/Misc/ACKS index ee3a465..9cbc230 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -192,6 +192,7 @@ Jan-Hein Bührman Lars Buitinck Dick Bulterman Bill Bumgarner +Aleks Bunin Jimmy Burgett Edmond Burnett Tommy Burnette @@ -208,6 +209,7 @@ Arnaud Calmettes Daniel Calvelo Tony Campbell Brett Cannon +Tristan Carel Mike Carlton Pierre Carrier Terry Carroll @@ -295,6 +297,7 @@ Simon Cross Felipe Cruz Drew Csillag Joaquin Cuenca Abela +Sebastian Cufre John Cugini Tom Culliton Antonio Cuni @@ -539,6 +542,7 @@ Travis B. Hartwell Larry Hastings Tim Hatch Shane Hathaway +Michael Haubenwallner Janko Hauser Rycharde Hawkes Ben Hayden @@ -636,6 +640,7 @@ Manuel Jacob David Jacobs Kevin Jacobs Kjetil Jacobsen +Eddie James Bertrand Janin Geert Jansen Jack Jansen @@ -731,6 +736,7 @@ Jeff Knupp Kubilay Kocak Greg Kochanski Manvisha Kodali +Niklas Koep Damon Kohler Marko Kohtala Vajrasky Kok @@ -937,6 +943,7 @@ Julien Miotte Andrii V. Mishkovskyi Dom Mitchell Dustin J. Mitchell +Tim Mitchell Zubin Mithra Florian Mladitsch Doug Moen @@ -965,6 +972,7 @@ Louis Munro R. David Murray Matti Mäki Jörg Müller +Kaushik N Dale Nagata John Nagle Takahiro Nakayama @@ -1055,6 +1063,7 @@ Steven Pemberton Bo Peng Santiago Peresón George Peristerakis +Thomas Perl Mathieu Perreault Mark Perrego Trevor Perrin @@ -1119,8 +1128,10 @@ Ram Rachum Jérôme Radix Burton Radons Jeff Ramnani +Bayard Randel Varpu Rantala Brodie Rao +Rémi Rampin Senko Rasic Antti Rasinen Nikolaus Rath @@ -1183,6 +1194,7 @@ Guido van Rossum Just van Rossum Hugo van Rossum Saskia van Rossum +Robin Roth Clement Rouault Donald Wallace Rouse II Liam Routt @@ -1204,6 +1216,7 @@ Nick Russo James Rutherford Chris Ryland Constantina S. +Matthieu S Patrick Sabin Sébastien Sablé Suman Saha @@ -1353,6 +1366,7 @@ Al Sweigart Thenault Sylvain Péter Szabó John Szakmeister +Piotr Szczepaniak Amir Szekely Arfrever Frehtes Taifersar Arahesis Hideaki Takahashi @@ -1360,6 +1374,7 @@ Takase Arihiro Indra Talip Neil Tallim Geoff Talvola +Anish Tambe Musashi Tamura William Tanksley Christian Tanzer @@ -1487,6 +1502,7 @@ Truida Wiedijk Felix Wiemann Gerry Wiener Frank Wierzbicki +Mariatta Wijaya Santoso Wijaya Bryce "Zooko" Wilcox-O'Hearn Timothy Wild @@ -1529,6 +1545,7 @@ Doug Wyatt Xiang Zhang Robert Xiao Florent Xicluna +Alakshendra Yadav Hirokazu Yamamoto Ka-Ping Yee Jason Yeo @@ -1553,5 +1570,6 @@ Uwe Zessin Cheng Zhang Kai Zhu Tarek Ziadé +Jelle Zijlstra Gennadiy Zlobin Peter Åstrand diff --git a/Misc/HISTORY b/Misc/HISTORY index fa0c623..128870c 100644 --- a/Misc/HISTORY +++ b/Misc/HISTORY @@ -388,7 +388,7 @@ Core and builtins ----------------- - Bug #1441486: The literal representation of -(sys.maxint - 1) - again evaluates to a int object, not a long. + again evaluates to an int object, not a long. - Bug #1501934: The scope of global variables that are locally assigned using augmented assignment is now correctly determined. @@ -1995,7 +1995,7 @@ Library - Bug #947906: An object oriented interface has been added to the calendar module. It's possible to generate HTML calendar now and the module can be called as a script (e.g. via ``python -mcalendar``). Localized month and - weekday names can be ouput (even if an exotic encoding is used) using + weekday names can be output (even if an exotic encoding is used) using special classes that use unicode. Build @@ -2378,7 +2378,7 @@ Library ``True`` for ``!=``, and raises ``TypeError`` for other comparison operators. Because datetime is a subclass of date, comparing only the base class (date) members can still be done, if that's desired, by - forcing using of the approprate date method; e.g., + forcing using of the appropriate date method; e.g., ``a_date.__eq__(a_datetime)`` is true if and only if the year, month and day members of ``a_date`` and ``a_datetime`` are equal. @@ -4295,7 +4295,7 @@ Core and builtins interpreter executions, would fail. - "%c" % u"a" now returns a unicode string instead of raising a - TypeError. u"%c" % 0xffffffff now raises a OverflowError instead + TypeError. u"%c" % 0xffffffff now raises an OverflowError instead of a ValueError to be consistent with "%c" % 256. See SF patch #710127. Extension modules @@ -10633,7 +10633,7 @@ Thu Feb 18 20:51:50 1999 Fred Drake Bow to font-lock at the end of the docstring, since it throws stuff off. - Make sure the path paramter to readmodule() is a list before adding it + Make sure the path parameter to readmodule() is a list before adding it with sys.path, or the addition could fail. @@ -12193,7 +12193,7 @@ no longer use the default root. - The interfaces for the bind*() and unbind() widget methods have been redesigned; the bind*() methods now return the name of the Tcl command -created for the callback, and this can be passed as a optional +created for the callback, and this can be passed as an optional argument to unbind() in order to delete the command (normally, such commands are automatically unbound when the widget is destroyed, but for some applications this isn't enough). @@ -12533,7 +12533,7 @@ uudecode bug where it complaints about trailing garbage is still there decimal numbers). - In string.atof(), don't fail when the "re" module is unavailable. -Plug the ensueing security leak by supplying an empty __builtins__ +Plug the ensuing security leak by supplying an empty __builtins__ directory to eval(). - A bunch of small fixes and improvements to Tkinter.py. @@ -12685,7 +12685,7 @@ an underscore and used to initialize the pointer. - The warning about a thread still having a frame now only happens in verbose mode. -- Change the signal finialization so that it also resets the signal +- Change the signal finalization so that it also resets the signal handlers. After this has been called, our signal handlers are no longer active! @@ -12858,7 +12858,7 @@ Netscape on Windows/Mac). - copy.py: Make sure the objects returned by __getinitargs__() are kept alive (in the memo) to avoid a certain kind of nasty crash. (Not -easily reproducable because it requires a later call to +easily reproducible because it requires a later call to __getinitargs__() to return a tuple that happens to be allocated at the same address.) @@ -13058,7 +13058,7 @@ in Python. An example completer, rlcompleter.py, is provided. - The traceback.py module has a new function tb_lineno() by Marc-Andre Lemburg which extracts the line number from the linenumber table in -the code object. Apparently the traceback object doesn't contains the +the code object. Apparently the traceback object doesn't contain the right linenumber when -O is used. Rather than guessing whether -O is on or off, the module itself uses tb_lineno() unconditionally. @@ -14537,7 +14537,7 @@ some more documentation. fixed. - The test of negative number to the float power has been moved from the -built-in pow() functin to floatobject.c (so complex numbers can yield the +built-in pow() function to floatobject.c (so complex numbers can yield the correct result). - The bug introduced in beta2 where shared libraries loaded (using @@ -15145,7 +15145,7 @@ machinery is moved to the new file importdl.c. module implementing deepcopy and normal (shallow) copy operations. See the library reference manual. -- Documentation strings for many objects types are accessible through +- Documentation strings for many object types are accessible through the __doc__ attribute. Modules, classes and functions support special syntax to initialize the __doc__ attribute: if the first statement consists of just a string literal, that string literal becomes the @@ -16490,7 +16490,7 @@ bullet-proof, after reports of (minor) trouble on certain platforms. There is now a script to patch Makefile and config.c to add a new optional built-in module: Addmodule.sh. Read the script before using! -Useing Addmodule.sh, all optional modules can now be configured at +Using Addmodule.sh, all optional modules can now be configured at compile time using Configure.py, so there are no modules left that require dynamic loading. @@ -16921,9 +16921,9 @@ SOCKET: symbolic constant definitions for socket options SUNAUDIODEV: symbolic constant definitions for sunaudiodef (sun only) -SV: symbolic constat definitions for sv (sgi only) +SV: symbolic constant definitions for sv (sgi only) -CD: symbolic constat definitions for cd (sgi only) +CD: symbolic constant definitions for cd (sgi only) New demos diff --git a/Misc/NEWS b/Misc/NEWS index 4ab3a70..b779e82 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -2,6 +2,361 @@ Python News +++++++++++ +What's New in Python 2.7.13 +=========================== + +*Release date: 2016-12-17* + +Core and Builtins +----------------- + +- Revert a37cc3d926ec (Issue #5322). + + +What's New in Python 2.7.13 release candidate 1? +================================================ + +*Release date: 2016-12-03* + +Core and Builtins +----------------- + +- Issue #28847: dumbdbm no longer writes the index file in when it is not + changed and supports reading read-only files. + +- Issue #11145: Fixed miscellaneous issues with C-style formatting of types + with custom __oct__ and __hex__. + +- Issue #24469: Fixed memory leak caused by int subclasses without overridden + tp_free (e.g. C-inherited Cython classes). + +- Issue #19398: Extra slash no longer added to sys.path components in case of + empty compile-time PYTHONPATH components. + +- Issue #21720: Improve exception message when the type of fromlist is unicode. + fromlist parameter of __import__() only accepts str in Python 2 and this + will help to identify the problem especially when the unicode_literals + future import is used. + +- Issue #26906: Resolving special methods of uninitialized type now causes + implicit initialization of the type instead of a fail. + +- Issue #18287: PyType_Ready() now checks that tp_name is not NULL. + Original patch by Niklas Koep. + +- Issue #24098: Fixed possible crash when AST is changed in process of + compiling it. + +- Issue #28350: String constants with null character no longer interned. + +- Issue #27942: String constants now interned recursively in tuples and frozensets. + +- Issue #15578: Correctly incref the parent module while importing. + +- Issue #26307: The profile-opt build now applies PGO to the built-in modules. + +- Issue #26020: set literal evaluation order did not match documented behaviour. + +- Issue #27870: A left shift of zero by a large integer no longer attempts + to allocate large amounts of memory. + +- Issue #25604: Fix a minor bug in integer true division; this bug could + potentially have caused off-by-one-ulp results on platforms with + unreliable ldexp implementations. + +- Issue #27473: Fixed possible integer overflow in str, unicode and bytearray + concatenations and repetitions. Based on patch by Xiang Zhang. + +- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by + Xiang Zhang. + +- Issue #27581: Don't rely on wrapping for overflow check in + PySequence_Tuple(). Patch by Xiang Zhang. + +- Issue #23908: os functions, open() and the io.FileIO constructor now reject + unicode paths with embedded null character on Windows instead of silently + truncating them. + +- Issue #27514: Make having too many statically nested blocks a SyntaxError + instead of SystemError. + +Library +------- + +- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and + from_buffer_copy() methods on abstract classes like Array. + +- Issue #28563: Fixed possible DoS and arbitrary code execution when handle + plural form selections in the gettext module. The expression parser now + supports exact syntax supported by GNU gettext. + +- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when + the garbage collector is invoked in other thread. Based on patch by + Sebastian Cufre. + +- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar + file with compression before trying to open it without compression. Otherwise + it had 50% chance failed with ignore_zeros=True. + +- Issue #25464: Fixed HList.header_exists() in Tix module by adding + a workaround to Tix library bug. + +- Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive. + +- Issue #28480: Fix error building _sqlite3 module when multithreading is + disabled. + +- Issue #24452: Make webbrowser support Chrome on Mac OS X. + +- Issue #26293: Fixed writing ZIP files that starts not from the start of the + file. Offsets in ZIP file now are relative to the start of the archive in + conforming to the specification. + +- Fix possible integer overflows and crashes in the mmap module with unusual + usage patterns. + +- Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation() + if pass invalid string-like object as a name. Original patch by Xiang Zhang. + +- Issue #1703178: Fix the ability to pass the --link-objects option to the + distutils build_ext command. + +- Issue #28253: Fixed calendar functions for extreme months: 0001-01 + and 9999-12. + + Methods itermonthdays() and itermonthdays2() are reimplemented so + that they don't call itermonthdates() which can cause datetime.date + under/overflow. + +- Issue #27963: Fixed possible null pointer dereference in + ctypes.set_conversion_mode(). Patch by Xiang Zhang. + +- Issue #28284: Strengthen resistance of ``_json.encode_basestring_ascii()`` to + integer overflow. + +- Issue #27611: Fixed support of default root window in the Tix module. + +- Issue #24363: When parsing HTTP header fields, if an invalid line is + encountered, skip it and continue parsing. Previously, no more header + fields were parsed, which could lead to fields for HTTP framing like + Content-Length and Transfer-Encoding being overlooked. + +- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). + +- Issue #25969: Update the lib2to3 grammar to handle the unpacking + generalizations added in 3.5. + +- Issue #24594: Validates persist parameter when opening MSI database + +- Issue #27570: Avoid zero-length memcpy() etc calls with null source + pointers in the "ctypes" and "array" modules. + +- Issue #22450: urllib now includes an "Accept: */*" header among the + default headers. This makes the results of REST API requests more + consistent and predictable especially when proxy servers are involved. + +- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file + between runs given the same Grammar.txt input regardless of the hash + randomization setting. + +- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name + fields in X.509 certs. + +- Issue #27850: Remove 3DES from ssl module's default cipher list to counter + measure sweet32 attack (CVE-2016-2183). + +- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list. + (Required OpenSSL 1.1.0 or LibreSSL). + +- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0. + +- Issue #27944: Fix some memory-corruption bugs in the log reading code of the + _hotshot module. + +- Issue #27934: Use ``float.__repr__`` instead of plain ``repr`` when JSON- + encoding an instance of a float subclass. Thanks Eddie James. + +- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory + creates not a cursor. Patch by Xiang Zhang. + +- Issue #19884: Avoid spurious output on OS X with Gnu Readline. + +- Issue #10513: Fix a regression in Connection.commit(). Statements should + not be reset after a commit. + +- Issue #2466: posixpath.ismount now correctly recognizes mount points which + the user does not have permission to access. + +- Issue #27783: Fix possible usage of uninitialized memory in operator.methodcaller. + +- Issue #27774: Fix possible Py_DECREF on unowned object in _sre. + +- Issue #27760: Fix possible integer overflow in binascii.b2a_qp. + +- In the curses module, raise an error if window.getstr() or window.instr() is + passed a negative value. + +- Issue #27758: Fix possible integer overflow in the _csv module for large record + lengths. + +- Issue #23369: Fixed possible integer overflow in + _json.encode_basestring_ascii. + +- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the + HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates + that the script is in CGI mode. + +- Issue #27130: In the "zlib" module, fix handling of large buffers + (typically 2 or 4 GiB). Previously, inputs were limited to 2 GiB, and + compression and decompression operations did not properly handle results of + 2 or 4 GiB. + +- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise + an error about unclean EOF. + +- Issue #27466: Change time format returned by http.cookie.time2netscape, + confirming the netscape cookie format and making it consistent with + documentation. + +- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong + mode no longer break tracing, trace_vinfo() now always returns a list of + pairs of strings. + +- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). + +- Issue #22636: Avoid shell injection problems with + ctypes.util.find_library(). + +- Issue #27330: Fixed possible leaks in the ctypes module. + +- Issue #27238: Got rid of bare excepts in the turtle module. Original patch + by Jelle Zijlstra. + +- Issue #26386: Fixed ttk.TreeView selection operations with item id's + containing spaces. + +- Issue #25455: Fixed a crash in repr of cElementTree.Element with recursive tag. + +- Issue #21201: Improves readability of multiprocessing error message. Thanks + to Wojciech Walczak for patch. + +IDLE +---- + +- Issue #27854: Make Help => IDLE Help work again on Windows. + Include idlelib/help.html in 2.7 Windows installer. + +- Issue #25507: Add back import needed for 2.x encoding warning box. + Add pointer to 'Encoding declaration' in Language Reference. + +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu. + Patch by Roger Serwy, updated by Bayard Randel. + +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. + +- Issue #17642: add larger font sizes for classroom projection. + +- Add version to title of IDLE help window. + +- Issue #25564: In section on IDLE -- console differences, mention that + using exec means that __builtins__ is defined for each statement. + +- Issue #27714: text_textview and test_autocomplete now pass when re-run + in the same process. This occurs when test_idle fails when run with the + -w option but without -jn. Fix warning from test_config. + +- Issue #27452: add line counter and crc to IDLE configHandler test dump. + +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. + +- Issue #27245: IDLE: Cleanly delete custom themes and key bindings. + Previously, when IDLE was started from a console or by import, a cascade + of warnings was emitted. Patch by Serhiy Storchaka. + +Documentation +------------- + +- Issue #28513: Documented command-line interface of zipfile. + +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the + resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik + Nadikuditi. + +Tests +----- + +- Issue #28666: Now test.test_support.rmtree is able to remove unwritable or + unreadable directories. + +- Issue #23839: Various caches now are cleared before running every test file. + +- Issue #27369: In test_pyexpat, avoid testing an error message detail that + changed in Expat 2.2.0. + +Build +----- + +- Issue #10656: Fix out-of-tree building on AIX. Patch by Tristan Carel and + Michael Haubenwallner. + +- Issue #26359: Rename --with-optimiations to --enable-optimizations. + +- Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j. + +- Issue #28258: Fixed build with Estonian locale (distclean target in + Makefile). Patch by Arfrever Frehtes Taifersar Arahesis. + +- Issue #26661: setup.py now detects system libffi with multiarch wrapper. + +- Issue #15819: The Include directory in the build tree is already searched; + drop unused code trying to add it again. + +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) + +- Issue #27983: Cause lack of llvm-profdata tool when using clang as + required for PGO linking to be a configure time error rather than + make time when --with-optimizations is enabled. Also improve our + ability to find the llvm-profdata tool on MacOS and some Linuxes. + +- Issue #26359: Add the --with-optimizations configure flag. + +- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. + Also update FreedBSD version checks for the original ctype UTF-8 workaround. + +- Issue #27806: Fix 32-bit builds on macOS Sierra 10.12 broken by removal of + deprecated QuickTime/QuickTime.h header file. Patch by Aleks Bunin. + +- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS. + Initial patch by Gareth Rees. + +Tools/Demos +----------- + +- Issue #27952: Get Tools/scripts/fixcid.py working with the current "re" + module, avoid invalid Python backslash escapes, and fix a bug parsing + escaped C quote signs. + +Windows +------- + +- Issue #27932: Prevent memory leak in win32_ver(). + +- Issue #27888: Prevent Windows installer from displaying console windows and + failing when pip cannot be installed/uninstalled. + +Mac OS X +-------- + +- Issue #28440: No longer add /Library/Python/site-packages, the Apple-supplied + system Python site-packages directory, to sys.path for macOS framework builds. + The coupling between the two Python instances often caused confusion and, as + of macOS 10.12, changes to the site-packages layout can cause pip component + installations to fail. This change reverts the effects introduced in 2.7.0 + by Issue #4865. If you are using a package with both the Apple system Python + 2.7 and a user-installed Python 2.7, you will need to ensure that copies of + the package are installed with both Python instances. + + What's New in Python 2.7.12? ============================ @@ -10,6 +365,9 @@ What's New in Python 2.7.12? Build ----- +- Issue #27641: The configure script now inserts comments into the makefile + to prevent the pgen executable from being cross-compiled. + - Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. IDLE @@ -219,7 +577,7 @@ Library - Issue #26385: Remove the file if the internal fdopen() call in NamedTemporaryFile() fails. Based on patch by Silent Ghost. -- Issue #26309: In the "socketserver" module, shut down the request (closing +- Issue #26309: In the "SocketServer" module, shut down the request (closing the connected socket) when verify_request() returns false. Based on patch by Aviv Palivoda. @@ -1255,7 +1613,7 @@ Library (including empty directories) in ZIP file. - Issue #22449: In the ssl.SSLContext.load_default_certs, consult the - enviromental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows. + environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows. - Issue #8473: doctest.testfile now uses universal newline mode to read the test file. @@ -1267,7 +1625,7 @@ Library - Issue #22530: Allow the ``group()`` method of regular expression match objects to take a ``long`` as an index. -- Issue #22517: When a io.BufferedRWPair object is deallocated, clear its +- Issue #22517: When an io.BufferedRWPair object is deallocated, clear its weakrefs. - Issue #10510: distutils register and upload methods now use HTML standards @@ -1297,7 +1655,7 @@ Library Sergey Bobrov. - Issue #21147: sqlite3 now raises an exception if the request contains a null - character instead of truncate it. Based on patch by Victor Stinner. + character instead of truncating it. Based on patch by Victor Stinner. - Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with empty string or tuple argument. @@ -1699,7 +2057,7 @@ Core and Builtins - Issue #21350: Fix file.writelines() to accept arbitrary buffer objects, as advertised. Patch by Brian Kearns. -- Issue #20437: Fixed 43 potential bugs when deleting objects references. +- Issue #20437: Fixed 43 potential bugs when deleting object references. - Issue #21134: Fix segfault when str is called on an uninitialized UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object. @@ -2350,7 +2708,7 @@ Library - Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes inside subjectAltName correctly. Formerly the module has used OpenSSL's - GENERAL_NAME_print() function to get the string represention of ASN.1 + GENERAL_NAME_print() function to get the string representation of ASN.1 strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and ``uniformResourceIdentifier`` (URI). @@ -2932,7 +3290,7 @@ Core and Builtins created with PyFile_FromString(). - Issue #14474: Save and restore exception state in thread.start_new_thread() - while writing error message if the thread leaves a unhandled exception. + while writing error message if the thread leaves an unhandled exception. - Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch by Suman Saha. @@ -2981,7 +3339,7 @@ Library using the same sys.flags as the current process. Initial patch by Sergey Mezentsev. -- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal. +- Issue #8862: Fixed curses cleanup when getkey is interrupted by a signal. - Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or EAGAIN, retry the select() loop instead of bailing out. This is because select() @@ -3405,7 +3763,7 @@ Library - Issue #14829: Fix bisect issues under 64-bit Windows. - Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when - accessing the Tk clipboard. Modify clipboad_get() to first request type + accessing the Tk clipboard. Modify clipboard_get() to first request type UTF8_STRING when no specific type is requested in an X11 windowing environment, falling back to the current default type STRING if that fails. Original patch by Thomas Kluyver. @@ -3419,7 +3777,7 @@ Library - Issue #14157: Fix time.strptime failing without a year on February 29th. Patch by Hynek Schlawack. -- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'. +- Issue #14768: os.path.expanduser('~/a') doesn't work correctly when HOME is '/'. - Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running step. Patch by Xavier de Gaye. @@ -3908,7 +4266,7 @@ Core and Builtins - Issues #12610 and #12609: Verify that user generated AST has correct string and identifier types before compiling. -- Issue #11627: Fix segfault when __new__ on a exception returns a +- Issue #11627: Fix segfault when __new__ on an exception returns a non-exception class. - Issue #12149: Update the method cache after a type's dictionnary gets @@ -4224,7 +4582,7 @@ Library - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. -- Issue #4376: ctypes now supports nested structures in a endian different than +- Issue #4376: ctypes now supports nested structures in an endian different than the parent structure. Patch by Vlad Riscutia. - Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors @@ -4543,7 +4901,7 @@ Core and Builtins - Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when there are many tags (e.g. when using mq). Patch by Nadeem Vawda. -- Issue #10451: memoryview objects could allow to mutate a readable buffer. +- Issue #10451: memoryview objects could allow mutating a readable buffer. Initial patch by Ross Lagerwall. - Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a @@ -4612,7 +4970,7 @@ Library seeking a bit forward, writing, then seeking before the previous write but still within buffered data, and writing again). -- Issue #8498: In socket.accept(), allow to specify 0 as a backlog value in +- Issue #8498: In socket.accept(), allow specifying 0 as a backlog value in order to accept exactly one connection. Patch by Daniel Evers. - Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional. @@ -6073,8 +6431,8 @@ Extension Modules - Build the ossaudio extension on GNU/kFreeBSD. -- On Windows, ctypes does no longer check the stack before and after calling a - foreign function. This allows to use the unmodified libffi library. +- On Windows, ctypes no longer checks the stack before and after calling a + foreign function. This allows using the unmodified libffi library. Tests ----- @@ -6268,7 +6626,7 @@ Library - Issue #8140: Extend compileall to compile single files. Add -i option. - Issue #7774: Set sys.executable to an empty string if ``argv[0]`` has been set - to an non existent program name and Python is unable to retrieve the real + to a non existent program name and Python is unable to retrieve the real program name. - Issue #8117: logging: Improved algorithm for computing initial rollover time @@ -6640,7 +6998,7 @@ Library - Issue #7610: Reworked implementation of the internal ``zipfile.ZipExtFile`` class used to represent files stored inside an archive. The new - implementation is significantly faster and can be wrapped in a + implementation is significantly faster and can be wrapped in an ``io.BufferedReader`` object for more speedups. It also solves an issue where interleaved calls to ``read()`` and ``readline()`` give wrong results. Patch by Nir Aides. @@ -7784,7 +8142,7 @@ Library is used. Original patch by Floris Bruynooghe. - Issue #5941: Distutils build_clib command was not working anymore because of - an incomplete costumization of the archiver command. Added ARFLAGS in the + an incomplete customization of the archiver command. Added ARFLAGS in the Makefile besides AR and make Distutils use it. Original patch by David Cournapeau. @@ -7892,10 +8250,10 @@ Library mailbox.MH.get_message(). - Issue #5585: Add the ability to call an initializer to - mulitiprocessing.manager so that users can install custom handlers/etc. + multiprocessing.manager so that users can install custom handlers/etc. - Issue #3551: Patch multiprocessing to raise a proper exception if the size of - the object when writefile is called causes a ERROR_NO_SYSTEM_RESOURCES. Added + the object when writefile is called causes an ERROR_NO_SYSTEM_RESOURCES. Added docs to note the limitation. - unittest.assertNotEqual() now uses the inequality operator (!=) instead of the @@ -9409,8 +9767,7 @@ Library - The mimetools module has been deprecated for removal in 3.0. - The ctypes.byref function now takes an optional second parameter - which allows to specify an offset in bytes for the constructed - pointer-like object. + which specifies an offset in bytes for the constructed pointer-like object. - Added the ast module. @@ -10091,7 +10448,7 @@ Core and builtins module is: from future_builtins import hex, oct -- Issue #1600: Modifed PyOS_ascii_formatd to use at most 2 digit +- Issue #1600: Modified PyOS_ascii_formatd to use at most 2 digit exponents for exponents with absolute value < 100. Follows C99 standard. This is a change on Windows, which would use 3 digits. Also, added 'n' to the formats that PyOS_ascii_formatd understands, @@ -11035,7 +11392,7 @@ Library -- the failure just occurred later, with a more cumbersome exception. -- Patch #787789: allow to pass custom TestRunner instances to +- Patch #787789: allow passing custom TestRunner instances to unittest's main() function. - Patches #1550273, #1550272: fix a few bugs in unittest and add a diff --git a/Misc/cheatsheet b/Misc/cheatsheet index 3e603fc..1e77543 100644 --- a/Misc/cheatsheet +++ b/Misc/cheatsheet @@ -434,7 +434,7 @@ d.setdefault(k,defaultval) the item of d with key k (5) defaultVal, and adds k to map with value defaultVal. defaultVal is optional. When not provided and k is not in the map, None is returned and added to map. - (6) Raises a KeyError if the dictionary is emtpy. + (6) Raises a KeyError if the dictionary is empty. (7) While iterating over a dictionary, the values may be updated but the keys cannot be changed. @@ -953,7 +953,7 @@ dir([object]) localsymbol table. With a module, class or class instanceobject as arg, returns list of names in its attr. dict. divmod(a,b) Returns tuple of (a/b, a%b) -enumerate(seq) Return a iterator giving: (0, seq[0]), (1, seq[1]), ... +enumerate(seq) Return an iterator giving: (0, seq[0]), (1, seq[1]), ... eval(s[, globals[, Eval string s in (optional) globals, locals contexts.s must locals]]) have no NUL's or newlines. s can also be acode object. Example: x = 1; incr_x = eval('x + 1') @@ -975,7 +975,7 @@ hex(x) Converts a number x to a hexadecimal string. id(object) Returns a unique 'identity' integer for an object. input([prompt]) Prints prompt if given. Reads input and evaluates it. Converts a number or a string to a plain integer. Optional -int(x[, base]) base paramenter specifies base from which to convert string +int(x[, base]) base parameter specifies base from which to convert string values. intern(aString) Enters aString in the table of "interned strings" andreturns the string. Interned strings are 'immortals'. @@ -991,7 +991,7 @@ list(sequence) Converts sequence into a list. If already a list,returns a copy of it. locals() Returns a dictionary containing current local variables. Converts a number or a string to a long integer. Optional -long(x[, base]) base paramenter specifies base from which to convert string +long(x[, base]) base parameter specifies base from which to convert string values. Applies function to every item of list and returns a listof map(function, list, the results. If additional arguments are passed,function diff --git a/Misc/developers.txt b/Misc/developers.txt index 0c34613..fb62893 100644 --- a/Misc/developers.txt +++ b/Misc/developers.txt @@ -159,7 +159,7 @@ Permissions History for general contributions to Python. - Mark Dickinson was given SVN access on 6 January 2008 by Facundo - Batista for his work on mathemathics and number related issues. + Batista for his work on mathematics and number related issues. - Amaury Forgeot d'Arc was given SVN access on 9 November 2007 by MvL, for general contributions to Python. diff --git a/Modules/_csv.c b/Modules/_csv.c index af46658..4589f06 100644 --- a/Modules/_csv.c +++ b/Modules/_csv.c @@ -985,11 +985,19 @@ join_append_data(WriterObj *self, char *field, int quote_empty, int i, rec_len; char *lineterm; -#define ADDCH(c) \ +#define INCLEN \ + do {\ + if (!copy_phase && rec_len == INT_MAX) { \ + goto overflow; \ + } \ + rec_len++; \ + } while(0) + +#define ADDCH(c) \ do {\ if (copy_phase) \ self->rec[rec_len] = c;\ - rec_len++;\ + INCLEN;\ } while(0) lineterm = PyString_AsString(dialect->lineterminator); @@ -1059,11 +1067,18 @@ join_append_data(WriterObj *self, char *field, int quote_empty, if (*quoted) { if (copy_phase) ADDCH(dialect->quotechar); - else - rec_len += 2; + else { + INCLEN; /* starting quote */ + INCLEN; /* ending quote */ + } } return rec_len; + + overflow: + PyErr_NoMemory(); + return -1; #undef ADDCH +#undef INCLEN } static int diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index 86208e2..f301b13 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -366,7 +366,7 @@ _ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t *shape, /* PyCStructType_Type - a meta type/class. Creating a new class using this one as - __metaclass__ will call the contructor StructUnionType_new. It replaces the + __metaclass__ will call the constructor StructUnionType_new. It replaces the tp_dict member with a new instance of StgDict, and initializes the C accessible fields somehow. */ @@ -501,7 +501,10 @@ CDataType_from_buffer(PyObject *type, PyObject *args) Py_ssize_t offset = 0; PyObject *obj, *result; StgDictObject *dict = PyType_stgdict(type); - assert (dict); + if (!dict) { + PyErr_SetString(PyExc_TypeError, "abstract class"); + return NULL; + } if (!PyArg_ParseTuple(args, #if (PY_VERSION_HEX < 0x02050000) @@ -557,13 +560,16 @@ CDataType_from_buffer_copy(PyObject *type, PyObject *args) Py_ssize_t offset = 0; PyObject *obj, *result; StgDictObject *dict = PyType_stgdict(type); - assert (dict); + if (!dict) { + PyErr_SetString(PyExc_TypeError, "abstract class"); + return NULL; + } if (!PyArg_ParseTuple(args, #if (PY_VERSION_HEX < 0x02050000) - "O|i:from_buffer", + "O|i:from_buffer_copy", #else - "O|n:from_buffer", + "O|n:from_buffer_copy", #endif &obj, &offset)) return NULL; @@ -1174,7 +1180,7 @@ CharArray_get_raw(CDataObject *self) static PyObject * CharArray_get_value(CDataObject *self) { - int i; + Py_ssize_t i; char *ptr = self->b_ptr; for (i = 0; i < self->b_size; ++i) if (*ptr++ == '\0') @@ -1236,9 +1242,9 @@ static PyGetSetDef CharArray_getsets[] = { static PyObject * WCharArray_get_value(CDataObject *self) { - unsigned int i; + Py_ssize_t i; wchar_t *ptr = (wchar_t *)self->b_ptr; - for (i = 0; i < self->b_size/sizeof(wchar_t); ++i) + for (i = 0; i < self->b_size/(Py_ssize_t)sizeof(wchar_t); ++i) if (*ptr++ == (wchar_t)0) break; return PyUnicode_FromWideChar((wchar_t *)self->b_ptr, i); @@ -1267,7 +1273,7 @@ WCharArray_set_value(CDataObject *self, PyObject *value) return -1; } else Py_INCREF(value); - if ((unsigned)PyUnicode_GET_SIZE(value) > self->b_size/sizeof(wchar_t)) { + if ((size_t)PyUnicode_GET_SIZE(value) > self->b_size/sizeof(wchar_t)) { PyErr_SetString(PyExc_ValueError, "string too long"); result = -1; @@ -1308,8 +1314,10 @@ add_methods(PyTypeObject *type, PyMethodDef *meth) descr = PyDescr_NewMethod(type, meth); if (descr == NULL) return -1; - if (PyDict_SetItemString(dict,meth->ml_name, descr) < 0) + if (PyDict_SetItemString(dict, meth->ml_name, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } return 0; @@ -1324,8 +1332,10 @@ add_members(PyTypeObject *type, PyMemberDef *memb) descr = PyDescr_NewMember(type, memb); if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, memb->name, descr) < 0) + if (PyDict_SetItemString(dict, memb->name, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } return 0; @@ -1341,8 +1351,10 @@ add_getset(PyTypeObject *type, PyGetSetDef *gsp) descr = PyDescr_NewGetSet(type, gsp); if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, gsp->name, descr) < 0) + if (PyDict_SetItemString(dict, gsp->name, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } return 0; @@ -1420,8 +1432,10 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return NULL; } stgdict->shape[0] = length; - memmove(&stgdict->shape[1], itemdict->shape, - sizeof(Py_ssize_t) * (stgdict->ndim - 1)); + if (stgdict->ndim > 1) { + memmove(&stgdict->shape[1], itemdict->shape, + sizeof(Py_ssize_t) * (stgdict->ndim - 1)); + } itemsize = itemdict->size; if (length * itemsize < 0) { @@ -1843,8 +1857,10 @@ static PyObject *CreateSwappedType(PyTypeObject *type, PyObject *args, PyObject Py_INCREF(name); PyString_Concat(&name, suffix); - if (name == NULL) + if (name == NULL) { + Py_DECREF(swapped_args); return NULL; + } PyTuple_SET_ITEM(swapped_args, 0, name); for (i=1; iffi_type_pointer = *fmt->pffi_type; stgdict->align = fmt->pffi_type->alignment; @@ -2045,20 +2063,25 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *meth; int x; meth = PyDescr_NewClassMethod(result, ml); - if (!meth) + if (!meth) { + Py_DECREF(result); return NULL; + } #else #error PyObject *meth, *func; int x; func = PyCFunction_New(ml, NULL); - if (!func) + if (!func) { + Py_DECREF(result); return NULL; + } meth = PyObject_CallFunctionObjArgs( (PyObject *)&PyClassMethod_Type, func, NULL); Py_DECREF(func); if (!meth) { + Py_DECREF(result); return NULL; } #endif @@ -2241,8 +2264,10 @@ converters_from_argtypes(PyObject *ob) nArgs = PyTuple_GET_SIZE(ob); converters = PyTuple_New(nArgs); - if (!converters) + if (!converters) { + Py_DECREF(ob); return NULL; + } /* I have to check if this is correct. Using c_char, which has a size of 1, will be assumed to be pushed as only one byte! @@ -3968,7 +3993,7 @@ PyCFuncPtr_call(PyCFuncPtrObject *self, PyObject *inargs, PyObject *kwds) self, callargs, NULL); - /* If the errcheck funtion failed, return NULL. + /* If the errcheck function failed, return NULL. If the errcheck function returned callargs unchanged, continue normal processing. If the errcheck function returned something else, @@ -5377,11 +5402,11 @@ comerror_init(PyObject *self, PyObject *args) a = PySequence_GetSlice(args, 1, PySequence_Size(args)); if (!a) - return NULL; + return NULL; status = PyObject_SetAttrString(self, "args", a); Py_DECREF(a); if (status < 0) - return NULL; + return NULL; if (PyObject_SetAttrString(self, "hresult", hresult) < 0) return NULL; @@ -5736,25 +5761,25 @@ PyObject *My_PyUnicode_FromWideChar(register const wchar_t *w, PyUnicodeObject *unicode; if (w == NULL) { - PyErr_BadInternalCall(); - return NULL; + PyErr_BadInternalCall(); + return NULL; } unicode = (PyUnicodeObject *)PyUnicode_FromUnicode(NULL, size); if (!unicode) - return NULL; + return NULL; /* Copy the wchar_t data into the new object */ #ifdef HAVE_USABLE_WCHAR_T memcpy(unicode->str, w, size * sizeof(wchar_t)); #else { - register Py_UNICODE *u; - register int i; - u = PyUnicode_AS_UNICODE(unicode); - /* In Python, the following line has a one-off error */ - for (i = size; i > 0; i--) - *u++ = *w++; + register Py_UNICODE *u; + register int i; + u = PyUnicode_AS_UNICODE(unicode); + /* In Python, the following line has a one-off error */ + for (i = size; i > 0; i--) + *u++ = *w++; } #endif @@ -5766,21 +5791,21 @@ Py_ssize_t My_PyUnicode_AsWideChar(PyUnicodeObject *unicode, Py_ssize_t size) { if (unicode == NULL) { - PyErr_BadInternalCall(); - return -1; + PyErr_BadInternalCall(); + return -1; } if (size > PyUnicode_GET_SIZE(unicode)) - size = PyUnicode_GET_SIZE(unicode); + size = PyUnicode_GET_SIZE(unicode); #ifdef HAVE_USABLE_WCHAR_T memcpy(w, unicode->str, size * sizeof(wchar_t)); #else { - register Py_UNICODE *u; - register int i; - u = PyUnicode_AS_UNICODE(unicode); - /* In Python, the following line has a one-off error */ - for (i = size; i > 0; i--) - *w++ = *u++; + register Py_UNICODE *u; + register int i; + u = PyUnicode_AS_UNICODE(unicode); + /* In Python, the following line has a one-off error */ + for (i = size; i > 0; i--) + *w++ = *u++; } #endif diff --git a/Modules/_ctypes/_ctypes_test.c b/Modules/_ctypes/_ctypes_test.c index 57628b8..f295c6f 100644 --- a/Modules/_ctypes/_ctypes_test.c +++ b/Modules/_ctypes/_ctypes_test.c @@ -34,6 +34,24 @@ _testfunc_cbk_reg_double(double a, double b, double c, double d, double e, return func(a*a, b*b, c*c, d*d, e*e); } +/* + * This structure should be the same as in test_callbacks.py and the + * method test_callback_large_struct. See issues 17310 and 20160: the + * structure must be larger than 8 bytes long. + */ + +typedef struct { + unsigned long first; + unsigned long second; + unsigned long third; +} Test; + +EXPORT(void) +_testfunc_cbk_large_struct(Test in, void (*func)(Test)) +{ + func(in); +} + EXPORT(void)testfunc_array(int values[4]) { printf("testfunc_array %d %d %d %d\n", diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index b1e85ce..ef1f001 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -385,7 +385,7 @@ static void closure_fcn(ffi_cif *cif, static CThunkObject* CThunkObject_new(Py_ssize_t nArgs) { CThunkObject *p; - int i; + Py_ssize_t i; p = PyObject_GC_NewVar(CThunkObject, &PyCThunk_Type, nArgs); if (p == NULL) { @@ -393,11 +393,13 @@ static CThunkObject* CThunkObject_new(Py_ssize_t nArgs) return NULL; } - p->pcl_exec = NULL; p->pcl_write = NULL; + p->pcl_exec = NULL; memset(&p->cif, 0, sizeof(p->cif)); + p->flags = 0; p->converters = NULL; p->callable = NULL; + p->restype = NULL; p->setfunc = NULL; p->ffi_restype = NULL; diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 280a315..3a12eb6 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -92,8 +92,10 @@ #define CTYPES_CAPSULE_ERROROBJ "_ctypes/callproc.c error object" CTYPES_CAPSULE_INSTANTIATE_DESTRUCTOR(CTYPES_CAPSULE_ERROROBJ) -#define CTYPES_CAPSULE_WCHAR_T "_ctypes/callproc.c wchar_t buffer from unicode" +#if defined(CTYPES_UNICODE) && !defined(HAVE_USABLE_WCHAR_T) +# define CTYPES_CAPSULE_WCHAR_T "_ctypes/callproc.c wchar_t buffer from unicode" CTYPES_CAPSULE_INSTANTIATE_DESTRUCTOR(CTYPES_CAPSULE_WCHAR_T) +#endif /* ctypes maintains thread-local storage that has space for two error numbers: @@ -162,8 +164,10 @@ _ctypes_get_errobj(int **pspace) return NULL; memset(space, 0, sizeof(int) * 2); errobj = CAPSULE_NEW(space, CTYPES_CAPSULE_ERROROBJ); - if (errobj == NULL) + if (errobj == NULL) { + PyMem_Free(space); return NULL; + } if (-1 == PyDict_SetItem(dict, error_object_name, errobj)) { Py_DECREF(errobj); @@ -1277,7 +1281,7 @@ static PyObject *load_library(PyObject *self, PyObject *args) PyObject *nameobj; PyObject *ignored; HMODULE hMod; - if (!PyArg_ParseTuple(args, "O|O:LoadLibrary", &nameobj, &ignored)) + if (!PyArg_ParseTuple(args, "S|O:LoadLibrary", &nameobj, &ignored)) return NULL; #ifdef _UNICODE name = alloca((PyString_Size(nameobj) + 1) * sizeof(WCHAR)); @@ -1684,22 +1688,41 @@ between unicode and strings. Returns the previous values.\n"; static PyObject * set_conversion_mode(PyObject *self, PyObject *args) { - char *coding, *mode; + char *coding, *mode, *errors, *encoding=NULL; PyObject *result; if (!PyArg_ParseTuple(args, "zs:set_conversion_mode", &coding, &mode)) return NULL; - result = Py_BuildValue("(zz)", _ctypes_conversion_encoding, _ctypes_conversion_errors); + + result = Py_BuildValue("(zz)", _ctypes_conversion_encoding, + _ctypes_conversion_errors); + if (!result) { + return NULL; + } + if (coding) { - PyMem_Free(_ctypes_conversion_encoding); - _ctypes_conversion_encoding = PyMem_Malloc(strlen(coding) + 1); - strcpy(_ctypes_conversion_encoding, coding); - } else { - _ctypes_conversion_encoding = NULL; + encoding = PyMem_Malloc(strlen(coding) + 1); + if (!encoding) { + Py_DECREF(result); + return PyErr_NoMemory(); + } + strcpy(encoding, coding); } + + errors = PyMem_Malloc(strlen(mode) + 1); + if (!errors) { + Py_DECREF(result); + PyMem_Free(encoding); + return PyErr_NoMemory(); + } + strcpy(errors, mode); + + PyMem_Free(_ctypes_conversion_encoding); + _ctypes_conversion_encoding = encoding; + PyMem_Free(_ctypes_conversion_errors); - _ctypes_conversion_errors = PyMem_Malloc(strlen(mode) + 1); - strcpy(_ctypes_conversion_errors, mode); + _ctypes_conversion_errors = errors; + return result; } #endif @@ -1815,6 +1838,10 @@ POINTER(PyObject *self, PyObject *cls) if (result == NULL) return result; key = PyLong_FromVoidPtr(result); + if (key == NULL) { + Py_DECREF(result); + return NULL; + } } else if (PyType_Check(cls)) { typ = (PyTypeObject *)cls; buf = PyMem_Malloc(strlen(typ->tp_name) + 3 + 1); diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index 0585ed2..e033cd5 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -12,8 +12,10 @@ #include "ctypes.h" -#define CTYPES_CAPSULE_WCHAR_T "_ctypes/cfield.c wchar_t buffer from unicode" +#if defined(CTYPES_UNICODE) && !defined(HAVE_USABLE_WCHAR_T) +# define CTYPES_CAPSULE_WCHAR_T "_ctypes/cfield.c wchar_t buffer from unicode" CTYPES_CAPSULE_INSTANTIATE_DESTRUCTOR(CTYPES_CAPSULE_WCHAR_T) +#endif /******************************************************************/ @@ -48,7 +50,7 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index, { CFieldObject *self; PyObject *proto; - Py_ssize_t size, align, length; + Py_ssize_t size, align; SETFUNC setfunc = NULL; GETFUNC getfunc = NULL; StgDictObject *dict; @@ -102,7 +104,6 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index, } size = dict->size; - length = dict->length; proto = desc; /* Field descriptors for 'c_char * n' are be scpecial cased to @@ -1313,7 +1314,7 @@ s_set(void *ptr, PyObject *value, Py_ssize_t length) return NULL; size = strlen(data); if (size < length) { - /* This will copy the leading NUL character + /* This will copy the trailing NUL character * if there is space for it. */ ++size; @@ -1508,6 +1509,7 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size) if (value) { Py_ssize_t size = PyUnicode_GET_SIZE(value); if ((unsigned) size != size) { + Py_DECREF(value); PyErr_SetString(PyExc_ValueError, "String too long for BSTR"); return NULL; } diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h index a61ce5f..b21fe92 100644 --- a/Modules/_ctypes/ctypes.h +++ b/Modules/_ctypes/ctypes.h @@ -229,7 +229,7 @@ typedef struct { remember is that in PyCArrayType_new the ffi_type fields must be filled in - so far it was unneeded because libffi doesn't support arrays at all (because they are passed as pointers to function calls anyway). But it's - too much risk to change that now, and there are other fields which doen't + too much risk to change that now, and there are other fields which doesn't belong into this structure anyway. Maybe in ctypes 2.0... (ctypes 2000?) */ Py_ssize_t size; /* number of bytes */ @@ -276,7 +276,7 @@ typedef struct { StgDictObject function to a generic one. Currently, PyCFuncPtr types have 'converters' and 'checker' entries in their - type dict. They are only used to cache attributes from other entries, whihc + type dict. They are only used to cache attributes from other entries, which is wrong. One use case is the .value attribute that all simple types have. But some diff --git a/Modules/_ctypes/libffi/ltmain.sh b/Modules/_ctypes/libffi/ltmain.sh index a50a21a..0595980 100644 --- a/Modules/_ctypes/libffi/ltmain.sh +++ b/Modules/_ctypes/libffi/ltmain.sh @@ -1438,7 +1438,7 @@ func_run_hooks () case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift diff --git a/Modules/_ctypes/libffi/src/x86/darwin64.S b/Modules/_ctypes/libffi/src/x86/darwin64.S index 2f7394e..0c72ed2 100644 --- a/Modules/_ctypes/libffi/src/x86/darwin64.S +++ b/Modules/_ctypes/libffi/src/x86/darwin64.S @@ -350,7 +350,7 @@ LASFDE1: .set L$set$3,LUW1-LUW0 .long L$set$3 - /* New stack frame based off rbp. This is a itty bit of unwind + /* New stack frame based off rbp. This is an itty bit of unwind trickery in that the CFA *has* changed. There is no easy way to describe it correctly on entry to the function. Fortunately, it doesn't matter too much since at all points we can correctly diff --git a/Modules/_ctypes/libffi/src/x86/unix64.S b/Modules/_ctypes/libffi/src/x86/unix64.S index dcd6bc7..45a0ed7 100644 --- a/Modules/_ctypes/libffi/src/x86/unix64.S +++ b/Modules/_ctypes/libffi/src/x86/unix64.S @@ -366,7 +366,7 @@ ffi_closure_unix64: .byte 0x4 /* DW_CFA_advance_loc4 */ .long .LUW1-.LUW0 - /* New stack frame based off rbp. This is a itty bit of unwind + /* New stack frame based off rbp. This is an itty bit of unwind trickery in that the CFA *has* changed. There is no easy way to describe it correctly on entry to the function. Fortunately, it doesn't matter too much since at all points we can correctly diff --git a/Modules/_ctypes/libffi_msvc/ffi.c b/Modules/_ctypes/libffi_msvc/ffi.c index ab6b220..515d802 100644 --- a/Modules/_ctypes/libffi_msvc/ffi.c +++ b/Modules/_ctypes/libffi_msvc/ffi.c @@ -359,7 +359,7 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, if ( cif->rtype->type == FFI_TYPE_STRUCT ) { *rvalue = *(void **) argp; - argp += 4; + argp += sizeof(void *); } p_argv = avalue; @@ -370,13 +370,23 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, /* Align if necessary */ if ((sizeof(char *) - 1) & (size_t) argp) { - argp = (char *) ALIGN(argp, sizeof(char*)); + argp = (char *) ALIGN(argp, sizeof(char*)); } z = (*p_arg)->size; /* because we're little endian, this is what it turns into. */ +#ifdef _WIN64 + if (z > 8) { + /* On Win64, if a single argument takes more than 8 bytes, + * then it is always passed by reference. + */ + *p_argv = *((void**) argp); + z = 8; + } + else +#endif *p_argv = (void*) argp; p_argv++; diff --git a/Modules/_ctypes/libffi_osx/ffi.c b/Modules/_ctypes/libffi_osx/ffi.c index bf42093..8cd2a78 100644 --- a/Modules/_ctypes/libffi_osx/ffi.c +++ b/Modules/_ctypes/libffi_osx/ffi.c @@ -101,7 +101,7 @@ initialize_aggregate( /* Perform machine independent ffi_cif preparation, then call machine dependent routine. */ -#if defined(X86_DARWIN) +#if defined(X86_DARWIN) && !defined __x86_64__ static inline bool struct_on_stack( @@ -124,7 +124,7 @@ struct_on_stack( } } -#endif // defined(X86_DARWIN) +#endif // defined(X86_DARWIN) && !defined __x86_64__ // Arguments' ffi_type->alignment must be nonzero. ffi_status diff --git a/Modules/_ctypes/libffi_osx/x86/darwin64.S b/Modules/_ctypes/libffi_osx/x86/darwin64.S index 165d469..1286d33 100644 --- a/Modules/_ctypes/libffi_osx/x86/darwin64.S +++ b/Modules/_ctypes/libffi_osx/x86/darwin64.S @@ -351,7 +351,7 @@ LASFDE1: .set L$set$3,LUW1-LUW0 .long L$set$3 - /* New stack frame based off rbp. This is a itty bit of unwind + /* New stack frame based off rbp. This is an itty bit of unwind trickery in that the CFA *has* changed. There is no easy way to describe it correctly on entry to the function. Fortunately, it doesn't matter too much since at all points we can correctly diff --git a/Modules/_ctypes/stgdict.c b/Modules/_ctypes/stgdict.c index 31528af..90ce3e5 100644 --- a/Modules/_ctypes/stgdict.c +++ b/Modules/_ctypes/stgdict.c @@ -395,9 +395,11 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct } memset(stgdict->ffi_type_pointer.elements, 0, sizeof(ffi_type *) * (basedict->length + len + 1)); - memcpy(stgdict->ffi_type_pointer.elements, - basedict->ffi_type_pointer.elements, - sizeof(ffi_type *) * (basedict->length)); + if (basedict->length > 0) { + memcpy(stgdict->ffi_type_pointer.elements, + basedict->ffi_type_pointer.elements, + sizeof(ffi_type *) * (basedict->length)); + } ffi_ofs = basedict->length; } else { offset = 0; diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index b914e5f..e478a57 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -918,6 +918,10 @@ PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args) case 1: if (!PyArg_ParseTuple(args,"i;n", &n)) return NULL; + if (n < 0) { + PyErr_SetString(PyExc_ValueError, "'n' must be nonnegative"); + return NULL; + } Py_BEGIN_ALLOW_THREADS rtn2 = wgetnstr(self->win,rtn,MIN(n, 1023)); Py_END_ALLOW_THREADS @@ -936,6 +940,10 @@ PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args) case 3: if (!PyArg_ParseTuple(args,"iii;y,x,n", &y, &x, &n)) return NULL; + if (n < 0) { + PyErr_SetString(PyExc_ValueError, "'n' must be nonnegative"); + return NULL; + } #ifdef STRICT_SYSV_CURSES Py_BEGIN_ALLOW_THREADS rtn2 = wmove(self->win,y,x)==ERR ? ERR : @@ -1087,6 +1095,10 @@ PyCursesWindow_InStr(PyCursesWindowObject *self, PyObject *args) case 1: if (!PyArg_ParseTuple(args,"i;n", &n)) return NULL; + if (n < 0) { + PyErr_SetString(PyExc_ValueError, "'n' must be nonnegative"); + return NULL; + } rtn2 = winnstr(self->win,rtn,MIN(n,1023)); break; case 2: @@ -1097,6 +1109,10 @@ PyCursesWindow_InStr(PyCursesWindowObject *self, PyObject *args) case 3: if (!PyArg_ParseTuple(args, "iii;y,x,n", &y, &x, &n)) return NULL; + if (n < 0) { + PyErr_SetString(PyExc_ValueError, "'n' must be nonnegative"); + return NULL; + } rtn2 = mvwinnstr(self->win, y, x, rtn, MIN(n,1023)); break; default: diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 6f628a5..b01167b 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -1222,18 +1222,29 @@ element_remove(ElementObject* self, PyObject* args) static PyObject* element_repr(ElementObject* self) { - PyObject *repr, *tag; + int status; - tag = PyObject_Repr(self->tag); - if (!tag) - return NULL; + if (self->tag == NULL) + return PyUnicode_FromFormat("", self); - repr = PyString_FromFormat("", - PyString_AS_STRING(tag), self); - - Py_DECREF(tag); + status = Py_ReprEnter((PyObject *)self); + if (status == 0) { + PyObject *repr, *tag; + tag = PyObject_Repr(self->tag); + if (!tag) + return NULL; - return repr; + repr = PyString_FromFormat("", + PyString_AS_STRING(tag), self); + Py_ReprLeave((PyObject *)self); + Py_DECREF(tag); + return repr; + } + if (status > 0) + PyErr_Format(PyExc_RuntimeError, + "reentrant call inside %s.__repr__", + Py_TYPE(self)->tp_name); + return NULL; } static PyObject* diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 01f4577..75b3a3d 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -37,8 +37,10 @@ /* EVP is the preferred interface to hashing in OpenSSL */ #include -#include #include +/* We use the object interface to discover what hashes OpenSSL supports. */ +#include +#include "openssl/err.h" #define MUNCH_SIZE INT_MAX @@ -50,15 +52,26 @@ #define HASH_OBJ_CONSTRUCTOR 0 #endif -/* Minimum OpenSSL version needed to support sha224 and higher. */ #if defined(OPENSSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x00908000) #define _OPENSSL_SUPPORTS_SHA2 #endif +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) +/* OpenSSL < 1.1.0 */ +#define EVP_MD_CTX_new EVP_MD_CTX_create +#define EVP_MD_CTX_free EVP_MD_CTX_destroy +#define HAS_FAST_PKCS5_PBKDF2_HMAC 0 +#include +#else +/* OpenSSL >= 1.1.0 */ +#define HAS_FAST_PKCS5_PBKDF2_HMAC 1 +#endif + + typedef struct { PyObject_HEAD PyObject *name; /* name of this hash algorithm */ - EVP_MD_CTX ctx; /* OpenSSL message digest context */ + EVP_MD_CTX *ctx; /* OpenSSL message digest context */ #ifdef WITH_THREAD PyThread_type_lock lock; /* OpenSSL context lock */ #endif @@ -70,7 +83,6 @@ static PyTypeObject EVPtype; #define DEFINE_CONSTS_FOR_NEW(Name) \ static PyObject *CONST_ ## Name ## _name_obj = NULL; \ - static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \ static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL; DEFINE_CONSTS_FOR_NEW(md5) @@ -83,19 +95,56 @@ DEFINE_CONSTS_FOR_NEW(sha512) #endif +/* LCOV_EXCL_START */ +static PyObject * +_setException(PyObject *exc) +{ + unsigned long errcode; + const char *lib, *func, *reason; + + errcode = ERR_peek_last_error(); + if (!errcode) { + PyErr_SetString(exc, "unknown reasons"); + return NULL; + } + ERR_clear_error(); + + lib = ERR_lib_error_string(errcode); + func = ERR_func_error_string(errcode); + reason = ERR_reason_error_string(errcode); + + if (lib && func) { + PyErr_Format(exc, "[%s: %s] %s", lib, func, reason); + } + else if (lib) { + PyErr_Format(exc, "[%s] %s", lib, reason); + } + else { + PyErr_SetString(exc, reason); + } + return NULL; +} +/* LCOV_EXCL_STOP */ + static EVPobject * newEVPobject(PyObject *name) { EVPobject *retval = (EVPobject *)PyObject_New(EVPobject, &EVPtype); + if (retval == NULL) + return NULL; + + retval->ctx = EVP_MD_CTX_new(); + if (retval->ctx == NULL) { + PyErr_NoMemory(); + return NULL; + } /* save the name for .name to return */ - if (retval != NULL) { - Py_INCREF(name); - retval->name = name; + Py_INCREF(name); + retval->name = name; #ifdef WITH_THREAD - retval->lock = NULL; + retval->lock = NULL; #endif - } return retval; } @@ -111,7 +160,7 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len) process = MUNCH_SIZE; else process = Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int); - EVP_DigestUpdate(&self->ctx, (const void*)cp, process); + EVP_DigestUpdate(self->ctx, (const void*)cp, process); len -= process; cp += process; } @@ -126,16 +175,20 @@ EVP_dealloc(EVPobject *self) if (self->lock != NULL) PyThread_free_lock(self->lock); #endif - EVP_MD_CTX_cleanup(&self->ctx); + EVP_MD_CTX_free(self->ctx); Py_XDECREF(self->name); PyObject_Del(self); } -static void locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self) +static int +locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self) { + int result; ENTER_HASHLIB(self); - EVP_MD_CTX_copy(new_ctx_p, &self->ctx); + /* XXX no error reporting */ + result = EVP_MD_CTX_copy(new_ctx_p, self->ctx); LEAVE_HASHLIB(self); + return result; } /* External methods for a hash object */ @@ -151,7 +204,9 @@ EVP_copy(EVPobject *self, PyObject *unused) if ( (newobj = newEVPobject(self->name))==NULL) return NULL; - locked_EVP_MD_CTX_copy(&newobj->ctx, self); + if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) { + return _setException(PyExc_ValueError); + } return (PyObject *)newobj; } @@ -162,16 +217,24 @@ static PyObject * EVP_digest(EVPobject *self, PyObject *unused) { unsigned char digest[EVP_MAX_MD_SIZE]; - EVP_MD_CTX temp_ctx; + EVP_MD_CTX *temp_ctx; PyObject *retval; unsigned int digest_size; - locked_EVP_MD_CTX_copy(&temp_ctx, self); - digest_size = EVP_MD_CTX_size(&temp_ctx); - EVP_DigestFinal(&temp_ctx, digest, NULL); + temp_ctx = EVP_MD_CTX_new(); + if (temp_ctx == NULL) { + PyErr_NoMemory(); + return NULL; + } + + if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) { + return _setException(PyExc_ValueError); + } + digest_size = EVP_MD_CTX_size(temp_ctx); + EVP_DigestFinal(temp_ctx, digest, NULL); retval = PyString_FromStringAndSize((const char *)digest, digest_size); - EVP_MD_CTX_cleanup(&temp_ctx); + EVP_MD_CTX_free(temp_ctx); return retval; } @@ -182,17 +245,25 @@ static PyObject * EVP_hexdigest(EVPobject *self, PyObject *unused) { unsigned char digest[EVP_MAX_MD_SIZE]; - EVP_MD_CTX temp_ctx; + EVP_MD_CTX *temp_ctx; PyObject *retval; char *hex_digest; unsigned int i, j, digest_size; + temp_ctx = EVP_MD_CTX_new(); + if (temp_ctx == NULL) { + PyErr_NoMemory(); + return NULL; + } + /* Get the raw (binary) digest value */ - locked_EVP_MD_CTX_copy(&temp_ctx, self); - digest_size = EVP_MD_CTX_size(&temp_ctx); - EVP_DigestFinal(&temp_ctx, digest, NULL); + if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) { + return _setException(PyExc_ValueError); + } + digest_size = EVP_MD_CTX_size(temp_ctx); + EVP_DigestFinal(temp_ctx, digest, NULL); - EVP_MD_CTX_cleanup(&temp_ctx); + EVP_MD_CTX_free(temp_ctx); /* Create a new string */ /* NOTE: not thread safe! modifying an already created string object */ @@ -266,7 +337,7 @@ static PyObject * EVP_get_block_size(EVPobject *self, void *closure) { long block_size; - block_size = EVP_MD_CTX_block_size(&self->ctx); + block_size = EVP_MD_CTX_block_size(self->ctx); return PyLong_FromLong(block_size); } @@ -274,7 +345,7 @@ static PyObject * EVP_get_digest_size(EVPobject *self, void *closure) { long size; - size = EVP_MD_CTX_size(&self->ctx); + size = EVP_MD_CTX_size(self->ctx); return PyLong_FromLong(size); } @@ -338,7 +409,7 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds) PyBuffer_Release(&view); return -1; } - EVP_DigestInit(&self->ctx, digest); + EVP_DigestInit(self->ctx, digest); self->name = name_obj; Py_INCREF(self->name); @@ -435,9 +506,9 @@ EVPnew(PyObject *name_obj, return NULL; if (initial_ctx) { - EVP_MD_CTX_copy(&self->ctx, initial_ctx); + EVP_MD_CTX_copy(self->ctx, initial_ctx); } else { - EVP_DigestInit(&self->ctx, digest); + EVP_DigestInit(self->ctx, digest); } if (cp && len) { @@ -499,6 +570,7 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict) #define PY_PBKDF2_HMAC 1 +#if !HAS_FAST_PKCS5_PBKDF2_HMAC /* Improved implementation of PKCS5_PBKDF2_HMAC() * * PKCS5_PBKDF2_HMAC_fast() hashes the password exactly one time instead of @@ -580,37 +652,8 @@ PKCS5_PBKDF2_HMAC_fast(const char *pass, int passlen, HMAC_CTX_cleanup(&hctx_tpl); return 1; } +#endif -/* LCOV_EXCL_START */ -static PyObject * -_setException(PyObject *exc) -{ - unsigned long errcode; - const char *lib, *func, *reason; - - errcode = ERR_peek_last_error(); - if (!errcode) { - PyErr_SetString(exc, "unknown reasons"); - return NULL; - } - ERR_clear_error(); - - lib = ERR_lib_error_string(errcode); - func = ERR_func_error_string(errcode); - reason = ERR_reason_error_string(errcode); - - if (lib && func) { - PyErr_Format(exc, "[%s: %s] %s", lib, func, reason); - } - else if (lib) { - PyErr_Format(exc, "[%s] %s", lib, reason); - } - else { - PyErr_SetString(exc, reason); - } - return NULL; -} -/* LCOV_EXCL_STOP */ PyDoc_STRVAR(pbkdf2_hmac__doc__, "pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) -> key\n\ @@ -692,10 +735,17 @@ pbkdf2_hmac(PyObject *self, PyObject *args, PyObject *kwdict) key = PyBytes_AS_STRING(key_obj); Py_BEGIN_ALLOW_THREADS +#if HAS_FAST_PKCS5_PBKDF2_HMAC + retval = PKCS5_PBKDF2_HMAC((char*)password.buf, (int)password.len, + (unsigned char *)salt.buf, (int)salt.len, + iterations, digest, dklen, + (unsigned char *)key); +#else retval = PKCS5_PBKDF2_HMAC_fast((char*)password.buf, (int)password.len, (unsigned char *)salt.buf, (int)salt.len, iterations, digest, dklen, (unsigned char *)key); +#endif Py_END_ALLOW_THREADS if (!retval) { @@ -730,7 +780,7 @@ _openssl_hash_name_mapper(const OBJ_NAME *openssl_obj_name, void *arg) if (openssl_obj_name == NULL) return; /* Ignore aliased names, they pollute the list and OpenSSL appears to - * have a its own definition of alias as the resulting list still + * have its own definition of alias as the resulting list still * contains duplicate and alternate names for several algorithms. */ if (openssl_obj_name->alias) return; @@ -770,7 +820,7 @@ generate_hash_name_list(void) /* * This macro generates constructor function definitions for specific * hash algorithms. These constructors are much faster than calling - * the generic one passing it a python string and are noticably + * the generic one passing it a python string and are noticeably * faster than calling a python new() wrapper. Thats important for * code that wants to make hashes of a bunch of small strings. */ @@ -807,7 +857,7 @@ generate_hash_name_list(void) if (CONST_ ## NAME ## _name_obj == NULL) { \ CONST_ ## NAME ## _name_obj = PyString_FromString(#NAME); \ if (EVP_get_digestbyname(#NAME)) { \ - CONST_new_ ## NAME ## _ctx_p = &CONST_new_ ## NAME ## _ctx; \ + CONST_new_ ## NAME ## _ctx_p = EVP_MD_CTX_new(); \ EVP_DigestInit(CONST_new_ ## NAME ## _ctx_p, EVP_get_digestbyname(#NAME)); \ } \ } \ diff --git a/Modules/_hotshot.c b/Modules/_hotshot.c index 9719cb7..33cd38d 100644 --- a/Modules/_hotshot.c +++ b/Modules/_hotshot.c @@ -338,34 +338,34 @@ unpack_string(LogReaderObject *self, PyObject **pvalue) static int unpack_add_info(LogReaderObject *self) { - PyObject *key; + PyObject *key = NULL; PyObject *value = NULL; + PyObject *list; int err; err = unpack_string(self, &key); - if (!err) { - err = unpack_string(self, &value); - if (err) - Py_DECREF(key); - else { - PyObject *list = PyDict_GetItem(self->info, key); - if (list == NULL) { - list = PyList_New(0); - if (list == NULL) { - err = ERR_EXCEPTION; - goto finally; - } - if (PyDict_SetItem(self->info, key, list)) { - Py_DECREF(list); - err = ERR_EXCEPTION; - goto finally; - } - Py_DECREF(list); - } - if (PyList_Append(list, value)) - err = ERR_EXCEPTION; + if (err) + goto finally; + err = unpack_string(self, &value); + if (err) + goto finally; + list = PyDict_GetItem(self->info, key); + if (list == NULL) { + list = PyList_New(0); + if (list == NULL) { + err = ERR_EXCEPTION; + goto finally; + } + if (PyDict_SetItem(self->info, key, list)) { + Py_DECREF(list); + err = ERR_EXCEPTION; + goto finally; } + Py_DECREF(list); } + if (PyList_Append(list, value)) + err = ERR_EXCEPTION; + finally: Py_XDECREF(key); Py_XDECREF(value); diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c index 04c4445..bbfea71 100644 --- a/Modules/_io/_iomodule.c +++ b/Modules/_io/_iomodule.c @@ -74,7 +74,7 @@ PyDoc_STRVAR(module_doc, "Another IOBase subclass, TextIOBase, deals with the encoding and decoding\n" "of streams into text. TextIOWrapper, which extends it, is a buffered text\n" "interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO\n" -"is a in-memory stream for text.\n" +"is an in-memory stream for text.\n" "\n" "Argument names are not part of the specification, and only the arguments\n" "of open() are intended to be used as keyword arguments.\n" diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c index 74b2305..0678ef8 100644 --- a/Modules/_io/fileio.c +++ b/Modules/_io/fileio.c @@ -224,8 +224,13 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds) } #ifdef MS_WINDOWS - if (PyUnicode_Check(nameobj)) + if (PyUnicode_Check(nameobj)) { widename = PyUnicode_AS_UNICODE(nameobj); + if (wcslen(widename) != (size_t)PyUnicode_GET_SIZE(nameobj)) { + PyErr_SetString(PyExc_TypeError, "embedded NUL character"); + return -1; + } + } if (widename == NULL) #endif if (fd < 0) @@ -234,6 +239,10 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds) Py_ssize_t namelen; if (PyObject_AsCharBuffer(nameobj, &name, &namelen) < 0) return -1; + if (strlen(name) != (size_t)namelen) { + PyErr_SetString(PyExc_TypeError, "embedded NUL character"); + return -1; + } } else { PyObject *u = PyUnicode_FromObject(nameobj); @@ -252,6 +261,10 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds) goto error; } name = PyBytes_AS_STRING(stringobj); + if (strlen(name) != (size_t)PyBytes_GET_SIZE(stringobj)) { + PyErr_SetString(PyExc_TypeError, "embedded NUL character"); + goto error; + } } } diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c index 710ada4..2fec7e8 100644 --- a/Modules/_io/iobase.c +++ b/Modules/_io/iobase.c @@ -35,7 +35,7 @@ PyDoc_STRVAR(iobase_doc, "Even though IOBase does not declare read, readinto, or write because\n" "their signatures will vary, implementations and clients should\n" "consider those methods part of the interface. Also, implementations\n" - "may raise a IOError when operations they do not support are called.\n" + "may raise an IOError when operations they do not support are called.\n" "\n" "The basic type used for binary data read from or written to a file is\n" "the bytes type. Method arguments may also be bytearray or memoryview\n" @@ -71,7 +71,7 @@ iobase_unsupported(const char *message) return NULL; } -/* Positionning */ +/* Positioning */ PyDoc_STRVAR(iobase_seek_doc, "Change stream position.\n" diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 38bb0d8..b4007c2 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -881,8 +881,8 @@ textiowrapper_init(textio *self, PyObject *args, PyObject *kwds) if (self->encoding == NULL) { catch_ImportError: /* - Importing locale can raise a ImportError because of - _functools, and locale.getpreferredencoding can raise a + Importing locale can raise an ImportError because of + _functools, and locale.getpreferredencoding can raise an ImportError if _locale is not available. These will happen during module building. */ @@ -1071,11 +1071,9 @@ textiowrapper_init(textio *self, PyObject *args, PyObject *kwds) return -1; } -static int +static void _textiowrapper_clear(textio *self) { - if (self->ok && _PyIOBase_finalize((PyObject *) self) < 0) - return -1; self->ok = 0; Py_CLEAR(self->buffer); Py_CLEAR(self->encoding); @@ -1087,18 +1085,19 @@ _textiowrapper_clear(textio *self) Py_CLEAR(self->snapshot); Py_CLEAR(self->errors); Py_CLEAR(self->raw); - return 0; + + Py_CLEAR(self->dict); } static void textiowrapper_dealloc(textio *self) { - if (_textiowrapper_clear(self) < 0) + if (self->ok && _PyIOBase_finalize((PyObject *) self) < 0) return; _PyObject_GC_UNTRACK(self); if (self->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *)self); - Py_CLEAR(self->dict); + _textiowrapper_clear(self); Py_TYPE(self)->tp_free((PyObject *)self); } @@ -1123,9 +1122,9 @@ textiowrapper_traverse(textio *self, visitproc visit, void *arg) static int textiowrapper_clear(textio *self) { - if (_textiowrapper_clear(self) < 0) + if (self->ok && _PyIOBase_finalize((PyObject *) self) < 0) return -1; - Py_CLEAR(self->dict); + _textiowrapper_clear(self); return 0; } diff --git a/Modules/_json.c b/Modules/_json.c index fede6b1..189cb2c 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -203,6 +203,7 @@ ascii_escape_unicode(PyObject *pystr) Py_ssize_t output_size; Py_ssize_t max_output_size; Py_ssize_t chars; + Py_ssize_t incr; PyObject *rval; char *output; Py_UNICODE *input_unicode; @@ -210,9 +211,20 @@ ascii_escape_unicode(PyObject *pystr) input_chars = PyUnicode_GET_SIZE(pystr); input_unicode = PyUnicode_AS_UNICODE(pystr); + output_size = input_chars; + incr = 2; /* for quotes */ /* One char input can be up to 6 chars output, estimate 4 of these */ - output_size = 2 + (MIN_EXPANSION * 4) + input_chars; - max_output_size = 2 + (input_chars * MAX_EXPANSION); + incr += MIN_EXPANSION * 4; + if (PY_SSIZE_T_MAX - incr < output_size) { + PyErr_NoMemory(); + return NULL; + } + output_size += incr; + if (PY_SSIZE_T_MAX / MAX_EXPANSION < input_chars || + PY_SSIZE_T_MAX - 2 < input_chars * MAX_EXPANSION) + max_output_size = PY_SSIZE_T_MAX; + else + max_output_size = 2 + (input_chars * MAX_EXPANSION); rval = PyString_FromStringAndSize(NULL, output_size); if (rval == NULL) { return NULL; @@ -229,20 +241,20 @@ ascii_escape_unicode(PyObject *pystr) chars = ascii_escape_char(c, output, chars); } if (output_size - chars < (1 + MAX_EXPANSION)) { - /* There's more than four, so let's resize by a lot */ - Py_ssize_t new_output_size = output_size * 2; - /* This is an upper bound */ - if (new_output_size > max_output_size) { - new_output_size = max_output_size; + if (output_size == PY_SSIZE_T_MAX) { + Py_DECREF(rval); + PyErr_NoMemory(); + return NULL; } - /* Make sure that the output size changed before resizing */ - if (new_output_size != output_size) { - output_size = new_output_size; - if (_PyString_Resize(&rval, output_size) == -1) { - return NULL; - } - output = PyString_AS_STRING(rval); + /* There's more than four, so let's resize by a lot */ + if (PY_SSIZE_T_MAX / 2 >= output_size && output_size * 2 < max_output_size) + output_size *= 2; + else + output_size = max_output_size; + if (_PyString_Resize(&rval, output_size) == -1) { + return NULL; } + output = PyString_AS_STRING(rval); } } output[chars++] = '"'; @@ -259,7 +271,9 @@ ascii_escape_str(PyObject *pystr) Py_ssize_t i; Py_ssize_t input_chars; Py_ssize_t output_size; + Py_ssize_t max_output_size; Py_ssize_t chars; + Py_ssize_t incr; PyObject *rval; char *output; char *input_str; @@ -291,14 +305,22 @@ ascii_escape_str(PyObject *pystr) } } - if (i == input_chars) { - /* Input is already ASCII */ - output_size = 2 + input_chars; - } - else { + output_size = input_chars; + incr = 2; /* for quotes */ + if (i != input_chars) { /* One char input can be up to 6 chars output, estimate 4 of these */ - output_size = 2 + (MIN_EXPANSION * 4) + input_chars; + incr += MIN_EXPANSION * 4; + } + if (PY_SSIZE_T_MAX - incr < output_size) { + PyErr_NoMemory(); + return NULL; } + output_size += incr; + if (PY_SSIZE_T_MAX / MIN_EXPANSION < input_chars || + PY_SSIZE_T_MAX - 2 < input_chars * MIN_EXPANSION) + max_output_size = PY_SSIZE_T_MAX; + else + max_output_size = 2 + (input_chars * MIN_EXPANSION); rval = PyString_FromStringAndSize(NULL, output_size); if (rval == NULL) { return NULL; @@ -320,11 +342,16 @@ ascii_escape_str(PyObject *pystr) } /* An ASCII char can't possibly expand to a surrogate! */ if (output_size - chars < (1 + MIN_EXPANSION)) { - /* There's more than four, so let's resize by a lot */ - output_size *= 2; - if (output_size > 2 + (input_chars * MIN_EXPANSION)) { - output_size = 2 + (input_chars * MIN_EXPANSION); + if (output_size == PY_SSIZE_T_MAX) { + Py_DECREF(rval); + PyErr_NoMemory(); + return NULL; } + /* There's more than four, so let's resize by a lot */ + if (PY_SSIZE_T_MAX / 2 >= output_size && output_size * 2 < max_output_size) + output_size *= 2; + else + output_size = max_output_size; if (_PyString_Resize(&rval, output_size) == -1) { return NULL; } @@ -1956,8 +1983,8 @@ encoder_encode_float(PyEncoderObject *s, PyObject *obj) return PyString_FromString("NaN"); } } - /* Use a better float format here? */ - return PyObject_Repr(obj); + /* Make sure to use the base float class repr method */ + return PyFloat_Type.tp_repr(obj); } static PyObject * diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c index fe7b098..7e2f1a9 100644 --- a/Modules/_localemodule.c +++ b/Modules/_localemodule.c @@ -57,9 +57,10 @@ copy_grouping(char* s) int i; PyObject *result, *val = NULL; - if (s[0] == '\0') - /* empty string: no grouping at all */ - return PyList_New(0); + if (s[0] == '\0') { + /* empty string: no grouping at all */ + return PyList_New(0); + } for (i = 0; s[i] != '\0' && s[i] != CHAR_MAX; i++) ; /* nothing */ @@ -172,23 +173,23 @@ PyLocale_setlocale(PyObject* self, PyObject* args) #endif if (locale) { - /* set locale */ - result = setlocale(category, locale); - if (!result) { - /* operation failed, no setting was changed */ - PyErr_SetString(Error, "unsupported locale setting"); - return NULL; - } - result_object = PyString_FromString(result); - if (!result_object) - return NULL; - /* record changes to LC_CTYPE */ - if (category == LC_CTYPE || category == LC_ALL) - fixup_ulcase(); + /* set locale */ + result = setlocale(category, locale); + if (!result) { + /* operation failed, no setting was changed */ + PyErr_SetString(Error, "unsupported locale setting"); + return NULL; + } + result_object = PyString_FromString(result); + if (!result_object) + return NULL; + /* record changes to LC_CTYPE */ + if (category == LC_CTYPE || category == LC_ALL) + fixup_ulcase(); /* things that got wrong up to here are ignored */ PyErr_Clear(); } else { - /* get locale */ + /* get locale */ result = setlocale(category, NULL); if (!result) { PyErr_SetString(Error, "locale query failed"); @@ -297,9 +298,9 @@ PyLocale_strcoll(PyObject* self, PyObject* args) } /* Convert the non-unicode argument to unicode. */ if (!PyUnicode_Check(os1)) { - os1 = PyUnicode_FromObject(os1); - if (!os1) - return NULL; + os1 = PyUnicode_FromObject(os1); + if (!os1) + return NULL; rel1 = 1; } if (!PyUnicode_Check(os2)) { @@ -534,7 +535,7 @@ PyLocale_nl_langinfo(PyObject* self, PyObject* args) { int item, i; if (!PyArg_ParseTuple(args, "i:nl_langinfo", &item)) - return NULL; + return NULL; /* Check whether this is a supported constant. GNU libc sometimes returns numeric values in the char* return value, which would crash PyString_FromString. */ diff --git a/Modules/_math.c b/Modules/_math.c index fe75a36..d314887 100644 --- a/Modules/_math.c +++ b/Modules/_math.c @@ -22,7 +22,6 @@ static const double ln2 = 6.93147180559945286227E-01; static const double two_pow_m28 = 3.7252902984619141E-09; /* 2**-28 */ static const double two_pow_p28 = 268435456.0; /* 2**28 */ -static const double zero = 0.0; /* acosh(x) * Method : @@ -143,7 +142,7 @@ _Py_atanh(double x) #ifdef Py_NAN return Py_NAN; #else - return x/zero; + return x/0.0; #endif } if (absx < two_pow_m28) { /* |x| < 2**-28 */ diff --git a/Modules/_multiprocessing/connection.h b/Modules/_multiprocessing/connection.h index 1d97bd4..12e6eee 100644 --- a/Modules/_multiprocessing/connection.h +++ b/Modules/_multiprocessing/connection.h @@ -19,14 +19,14 @@ #define CHECK_READABLE(self) \ if (!(self->flags & READABLE)) { \ - PyErr_SetString(PyExc_IOError, "connection is write-only"); \ - return NULL; \ + PyErr_SetString(PyExc_IOError, "connection is write-only"); \ + return NULL; \ } #define CHECK_WRITABLE(self) \ if (!(self->flags & WRITABLE)) { \ - PyErr_SetString(PyExc_IOError, "connection is read-only"); \ - return NULL; \ + PyErr_SetString(PyExc_IOError, "connection is read-only"); \ + return NULL; \ } /* diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 6b0e3c6..237d6e4 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -116,7 +116,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject return -1; } } else { - /* Create a pysqlite connection from a APSW connection */ + /* Create a pysqlite connection from an APSW connection */ class_attr = PyObject_GetAttrString(database, "__class__"); if (class_attr) { class_attr_str = PyObject_Str(class_attr); @@ -324,7 +324,7 @@ error: PyObject* pysqlite_connection_cursor(pysqlite_Connection* self, PyObject* args, PyObject* kwargs) { - static char *kwlist[] = {"factory", NULL, NULL}; + static char *kwlist[] = {"factory", NULL}; PyObject* factory = NULL; PyObject* cursor; @@ -341,7 +341,16 @@ PyObject* pysqlite_connection_cursor(pysqlite_Connection* self, PyObject* args, factory = (PyObject*)&pysqlite_CursorType; } - cursor = PyObject_CallFunction(factory, "O", self); + cursor = PyObject_CallFunctionObjArgs(factory, (PyObject *)self, NULL); + if (cursor == NULL) + return NULL; + if (!PyObject_TypeCheck(cursor, &pysqlite_CursorType)) { + PyErr_Format(PyExc_TypeError, + "factory must return a cursor, not %.100s", + Py_TYPE(cursor)->tp_name); + Py_DECREF(cursor); + return NULL; + } _pysqlite_drop_unused_cursor_references(self); @@ -458,7 +467,6 @@ PyObject* pysqlite_connection_commit(pysqlite_Connection* self, PyObject* args) } if (self->inTransaction) { - pysqlite_do_all_statements(self, ACTION_RESET, 0); Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(self->db, "COMMIT", -1, &statement, &tail); @@ -782,6 +790,7 @@ void _pysqlite_final_callback(sqlite3_context* context) } error: + ; /* necessary for --without-threads flag */ #ifdef WITH_THREAD PyGILState_Release(threadstate); #endif @@ -1468,16 +1477,18 @@ pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args) goto finally; } - if (!PyArg_ParseTuple(args, "O!O:create_collation(name, callback)", &PyString_Type, &name, &callable)) { + if (!PyArg_ParseTuple(args, "SO:create_collation(name, callback)", + &name, &callable)) { goto finally; } - uppercase_name = PyObject_CallMethod(name, "upper", ""); + uppercase_name = PyObject_CallMethod((PyObject *)&PyString_Type, + "upper", "O", name); if (!uppercase_name) { goto finally; } - chk = PyString_AsString(uppercase_name); + chk = PyString_AS_STRING(uppercase_name); while (*chk) { if ((*chk >= '0' && *chk <= '9') || (*chk >= 'A' && *chk <= 'Z') diff --git a/Modules/_sqlite/connection.h b/Modules/_sqlite/connection.h index ecc8d2b..f9a98e5 100644 --- a/Modules/_sqlite/connection.h +++ b/Modules/_sqlite/connection.h @@ -99,7 +99,7 @@ typedef struct /* a dictionary of registered collation name => collation callable mappings */ PyObject* collations; - /* if our connection was created from a APSW connection, we keep a + /* if our connection was created from an APSW connection, we keep a * reference to the APSW connection around and get rid of it in our * destructor */ PyObject* apsw_connection; diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index f2b48ff..db36004 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -118,11 +118,9 @@ static int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject* static void pysqlite_cursor_dealloc(pysqlite_Cursor* self) { - int rc; - /* Reset the statement if the user has not closed the cursor */ if (self->statement) { - rc = pysqlite_statement_reset(self->statement); + pysqlite_statement_reset(self->statement); Py_DECREF(self->statement); } diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index edcebdd..5d6263c 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -74,8 +74,9 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con rc = PYSQLITE_SQL_WRONG_TYPE; return rc; } - sql_cstr = PyString_AsString(sql_str); + sql_cstr = PyString_AS_STRING(sql_str); if (strlen(sql_cstr) != (size_t)PyString_GET_SIZE(sql_str)) { + Py_DECREF(sql_str); PyErr_SetString(PyExc_ValueError, "the query contains a null character"); return PYSQLITE_SQL_WRONG_TYPE; } @@ -411,11 +412,9 @@ void pysqlite_statement_mark_dirty(pysqlite_Statement* self) void pysqlite_statement_dealloc(pysqlite_Statement* self) { - int rc; - if (self->st) { Py_BEGIN_ALLOW_THREADS - rc = sqlite3_finalize(self->st); + sqlite3_finalize(self->st); Py_END_ALLOW_THREADS } diff --git a/Modules/_sre.c b/Modules/_sre.c index 829fb6b..8e16c1d 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -3438,10 +3438,8 @@ match_groupdict(MatchObject* self, PyObject* args, PyObject* kw) if (!key) goto failed; value = match_getslice(self, key, def); - if (!value) { - Py_DECREF(key); + if (!value) goto failed; - } status = PyDict_SetItem(result, key, value); Py_DECREF(value); if (status < 0) diff --git a/Modules/_ssl.c b/Modules/_ssl.c index f291352..a927100 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -52,6 +52,14 @@ #include #endif +/* Don't warn about deprecated functions */ +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif + /* Include OpenSSL header files */ #include "openssl/rsa.h" #include "openssl/crypto.h" @@ -87,6 +95,10 @@ struct py_ssl_library_code { /* Include generated data (error codes) */ #include "_ssl_data.h" +#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) +# define OPENSSL_VERSION_1_1 1 +#endif + /* Openssl comes with TLSv1.1 and TLSv1.2 between 1.0.0h and 1.0.1 http://www.openssl.org/news/changelog.html */ @@ -110,6 +122,65 @@ struct py_ssl_library_code { # define HAVE_ALPN #endif +#ifndef INVALID_SOCKET /* MS defines this */ +#define INVALID_SOCKET (-1) +#endif + +#ifdef OPENSSL_VERSION_1_1 +/* OpenSSL 1.1.0+ */ +#ifndef OPENSSL_NO_SSL2 +#define OPENSSL_NO_SSL2 +#endif +#else /* OpenSSL < 1.1.0 */ +#if defined(WITH_THREAD) +#define HAVE_OPENSSL_CRYPTO_LOCK +#endif + +#define TLS_method SSLv23_method + +static int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne) +{ + return ne->set; +} + +#ifndef OPENSSL_NO_COMP +static int COMP_get_type(const COMP_METHOD *meth) +{ + return meth->type; +} +#endif + +static pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx) +{ + return ctx->default_passwd_callback; +} + +static void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx) +{ + return ctx->default_passwd_callback_userdata; +} + +static int X509_OBJECT_get_type(X509_OBJECT *x) +{ + return x->type; +} + +static X509 *X509_OBJECT_get0_X509(X509_OBJECT *x) +{ + return x->data.x509; +} + +static STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *store) { + return store->objs; +} + +static X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *store) +{ + return store->param; +} +#endif /* OpenSSL < 1.1.0 or LibreSSL */ + + enum py_ssl_error { /* these mirror ssl.h */ PY_SSL_ERROR_NONE, @@ -140,7 +211,7 @@ enum py_ssl_cert_requirements { enum py_ssl_version { PY_SSL_VERSION_SSL2, PY_SSL_VERSION_SSL3=1, - PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS, #if HAVE_TLSv1_2 PY_SSL_VERSION_TLS1, PY_SSL_VERSION_TLS1_1, @@ -681,7 +752,7 @@ _create_tuple_for_X509_NAME (X509_NAME *xname) /* check to see if we've gotten to a new RDN */ if (rdn_level >= 0) { - if (rdn_level != entry->set) { + if (rdn_level != X509_NAME_ENTRY_set(entry)) { /* yes, new RDN */ /* add old RDN to DN */ rdnt = PyList_AsTuple(rdn); @@ -698,7 +769,7 @@ _create_tuple_for_X509_NAME (X509_NAME *xname) goto fail0; } } - rdn_level = entry->set; + rdn_level = X509_NAME_ENTRY_set(entry); /* now add this attribute to the current RDN */ name = X509_NAME_ENTRY_get_object(entry); @@ -801,18 +872,18 @@ _get_peer_alt_names (X509 *certificate) { goto fail; } - p = ext->value->data; + p = X509_EXTENSION_get_data(ext)->data; if (method->it) names = (GENERAL_NAMES*) (ASN1_item_d2i(NULL, &p, - ext->value->length, + X509_EXTENSION_get_data(ext)->length, ASN1_ITEM_ptr(method->it))); else names = (GENERAL_NAMES*) (method->d2i(NULL, &p, - ext->value->length)); + X509_EXTENSION_get_data(ext)->length)); for(j = 0; j < sk_GENERAL_NAME_num(names); j++) { /* get a rendering of each name in the set of names */ @@ -882,6 +953,35 @@ _get_peer_alt_names (X509 *certificate) { PyTuple_SET_ITEM(t, 1, v); break; + case GEN_RID: + t = PyTuple_New(2); + if (t == NULL) + goto fail; + + v = PyUnicode_FromString("Registered ID"); + if (v == NULL) { + Py_DECREF(t); + goto fail; + } + PyTuple_SET_ITEM(t, 0, v); + + len = i2t_ASN1_OBJECT(buf, sizeof(buf)-1, name->d.rid); + if (len < 0) { + Py_DECREF(t); + _setSSLError(NULL, 0, __FILE__, __LINE__); + goto fail; + } else if (len >= (int)sizeof(buf)) { + v = PyUnicode_FromString(""); + } else { + v = PyUnicode_FromStringAndSize(buf, len); + } + if (v == NULL) { + Py_DECREF(t); + goto fail; + } + PyTuple_SET_ITEM(t, 1, v); + break; + default: /* for everything else, we use the OpenSSL print form */ switch (gntype) { @@ -907,8 +1007,12 @@ _get_peer_alt_names (X509 *certificate) { goto fail; } vptr = strchr(buf, ':'); - if (vptr == NULL) + if (vptr == NULL) { + PyErr_Format(PyExc_ValueError, + "Invalid value %.200s", + buf); goto fail; + } t = PyTuple_New(2); if (t == NULL) goto fail; @@ -1021,13 +1125,11 @@ _get_crl_dp(X509 *certificate) { int i, j; PyObject *lst, *res = NULL; -#if OPENSSL_VERSION_NUMBER < 0x10001000L - dps = X509_get_ext_d2i(certificate, NID_crl_distribution_points, NULL, NULL); -#else +#if OPENSSL_VERSION_NUMBER >= 0x10001000L /* Calls x509v3_cache_extensions and sets up crldp */ X509_check_ca(certificate); - dps = certificate->crldp; #endif + dps = X509_get_ext_d2i(certificate, NID_crl_distribution_points, NULL, NULL); if (dps == NULL) return Py_None; @@ -1443,9 +1545,9 @@ static PyObject *PySSL_compression(PySSLSocket *self) { if (self->ssl == NULL) Py_RETURN_NONE; comp_method = SSL_get_current_compression(self->ssl); - if (comp_method == NULL || comp_method->type == NID_undef) + if (comp_method == NULL || COMP_get_type(comp_method) == NID_undef) Py_RETURN_NONE; - short_name = OBJ_nid2sn(comp_method->type); + short_name = OBJ_nid2sn(COMP_get_type(comp_method)); if (short_name == NULL) Py_RETURN_NONE; return PyBytes_FromString(short_name); @@ -1702,6 +1804,10 @@ static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args) dest = PyBytes_FromStringAndSize(NULL, len); if (dest == NULL) goto error; + if (len == 0) { + Py_XDECREF(sock); + return dest; + } mem = PyBytes_AS_STRING(dest); } else { @@ -1714,6 +1820,10 @@ static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args) "maximum length can't fit in a C 'int'"); goto error; } + if (len == 0) { + count = 0; + goto done; + } } } @@ -1986,7 +2096,7 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { char *kwlist[] = {"protocol", NULL}; PySSLContext *self; - int proto_version = PY_SSL_VERSION_SSL23; + int proto_version = PY_SSL_VERSION_TLS; long options; SSL_CTX *ctx = NULL; @@ -2012,8 +2122,8 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) else if (proto_version == PY_SSL_VERSION_SSL2) ctx = SSL_CTX_new(SSLv2_method()); #endif - else if (proto_version == PY_SSL_VERSION_SSL23) - ctx = SSL_CTX_new(SSLv23_method()); + else if (proto_version == PY_SSL_VERSION_TLS) + ctx = SSL_CTX_new(TLS_method()); else proto_version = -1; PySSL_END_ALLOW_THREADS @@ -2059,8 +2169,9 @@ context_new(PyTypeObject *type, PyObject *args, PyObject *kwds) #ifndef OPENSSL_NO_ECDH /* Allow automatic ECDH curve selection (on OpenSSL 1.0.2+), or use prime256v1 by default. This is Apache mod_ssl's initialization - policy, so we should be safe. */ -#if defined(SSL_CTX_set_ecdh_auto) + policy, so we should be safe. OpenSSL 1.1 has it enabled by default. + */ +#if defined(SSL_CTX_set_ecdh_auto) && !defined(OPENSSL_VERSION_1_1) SSL_CTX_set_ecdh_auto(self->ctx, 1); #else { @@ -2328,10 +2439,12 @@ static PyObject * get_verify_flags(PySSLContext *self, void *c) { X509_STORE *store; + X509_VERIFY_PARAM *param; unsigned long flags; store = SSL_CTX_get_cert_store(self->ctx); - flags = X509_VERIFY_PARAM_get_flags(store->param); + param = X509_STORE_get0_param(store); + flags = X509_VERIFY_PARAM_get_flags(param); return PyLong_FromUnsignedLong(flags); } @@ -2339,22 +2452,24 @@ static int set_verify_flags(PySSLContext *self, PyObject *arg, void *c) { X509_STORE *store; + X509_VERIFY_PARAM *param; unsigned long new_flags, flags, set, clear; if (!PyArg_Parse(arg, "k", &new_flags)) return -1; store = SSL_CTX_get_cert_store(self->ctx); - flags = X509_VERIFY_PARAM_get_flags(store->param); + param = X509_STORE_get0_param(store); + flags = X509_VERIFY_PARAM_get_flags(param); clear = flags & ~new_flags; set = ~flags & new_flags; if (clear) { - if (!X509_VERIFY_PARAM_clear_flags(store->param, clear)) { + if (!X509_VERIFY_PARAM_clear_flags(param, clear)) { _setSSLError(NULL, 0, __FILE__, __LINE__); return -1; } } if (set) { - if (!X509_VERIFY_PARAM_set_flags(store->param, set)) { + if (!X509_VERIFY_PARAM_set_flags(param, set)) { _setSSLError(NULL, 0, __FILE__, __LINE__); return -1; } @@ -2529,8 +2644,8 @@ load_cert_chain(PySSLContext *self, PyObject *args, PyObject *kwds) char *kwlist[] = {"certfile", "keyfile", "password", NULL}; PyObject *keyfile = NULL, *keyfile_bytes = NULL, *password = NULL; char *certfile_bytes = NULL; - pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback; - void *orig_passwd_userdata = self->ctx->default_passwd_callback_userdata; + pem_password_cb *orig_passwd_cb = SSL_CTX_get_default_passwd_cb(self->ctx); + void *orig_passwd_userdata = SSL_CTX_get_default_passwd_cb_userdata(self->ctx); _PySSLPasswordInfo pw_info = { NULL, NULL, NULL, 0, 0 }; int r; @@ -2666,8 +2781,9 @@ _add_ca_certs(PySSLContext *self, void *data, Py_ssize_t len, cert = d2i_X509_bio(biobuf, NULL); } else { cert = PEM_read_bio_X509(biobuf, NULL, - self->ctx->default_passwd_callback, - self->ctx->default_passwd_callback_userdata); + SSL_CTX_get_default_passwd_cb(self->ctx), + SSL_CTX_get_default_passwd_cb_userdata(self->ctx) + ); } if (cert == NULL) { break; @@ -3152,25 +3268,24 @@ static PyObject * cert_store_stats(PySSLContext *self) { X509_STORE *store; + STACK_OF(X509_OBJECT) *objs; X509_OBJECT *obj; - int x509 = 0, crl = 0, pkey = 0, ca = 0, i; + int x509 = 0, crl = 0, ca = 0, i; store = SSL_CTX_get_cert_store(self->ctx); - for (i = 0; i < sk_X509_OBJECT_num(store->objs); i++) { - obj = sk_X509_OBJECT_value(store->objs, i); - switch (obj->type) { + objs = X509_STORE_get0_objects(store); + for (i = 0; i < sk_X509_OBJECT_num(objs); i++) { + obj = sk_X509_OBJECT_value(objs, i); + switch (X509_OBJECT_get_type(obj)) { case X509_LU_X509: x509++; - if (X509_check_ca(obj->data.x509)) { + if (X509_check_ca(X509_OBJECT_get0_X509(obj))) { ca++; } break; case X509_LU_CRL: crl++; break; - case X509_LU_PKEY: - pkey++; - break; default: /* Ignore X509_LU_FAIL, X509_LU_RETRY, X509_LU_PKEY. * As far as I can tell they are internal states and never @@ -3196,6 +3311,7 @@ get_ca_certs(PySSLContext *self, PyObject *args, PyObject *kwds) char *kwlist[] = {"binary_form", NULL}; X509_STORE *store; PyObject *ci = NULL, *rlist = NULL, *py_binary_mode = Py_False; + STACK_OF(X509_OBJECT) *objs; int i; int binary_mode = 0; @@ -3213,17 +3329,18 @@ get_ca_certs(PySSLContext *self, PyObject *args, PyObject *kwds) } store = SSL_CTX_get_cert_store(self->ctx); - for (i = 0; i < sk_X509_OBJECT_num(store->objs); i++) { + objs = X509_STORE_get0_objects(store); + for (i = 0; i < sk_X509_OBJECT_num(objs); i++) { X509_OBJECT *obj; X509 *cert; - obj = sk_X509_OBJECT_value(store->objs, i); - if (obj->type != X509_LU_X509) { + obj = sk_X509_OBJECT_value(objs, i); + if (X509_OBJECT_get_type(obj) != X509_LU_X509) { /* not a x509 cert */ continue; } /* CA for any purpose */ - cert = obj->data.x509; + cert = X509_OBJECT_get0_X509(obj); if (!X509_check_ca(cert)) { continue; } @@ -3386,7 +3503,7 @@ using the ssl() function."); #endif /* HAVE_OPENSSL_RAND */ -#ifdef HAVE_RAND_EGD +#ifndef OPENSSL_NO_EGD static PyObject * PySSL_RAND_egd(PyObject *self, PyObject *arg) @@ -3414,7 +3531,7 @@ Queries the entropy gather daemon (EGD) on the socket named by 'path'.\n\ Returns number of bytes read. Raises SSLError if connection to EGD\n\ fails or if it does not provide enough data to seed PRNG."); -#endif /* HAVE_RAND_EGD */ +#endif /* !OPENSSL_NO_EGD */ PyDoc_STRVAR(PySSL_get_default_verify_paths_doc, @@ -3814,7 +3931,7 @@ static PyMethodDef PySSL_methods[] = { {"RAND_status", (PyCFunction)PySSL_RAND_status, METH_NOARGS, PySSL_RAND_status_doc}, #endif -#ifdef HAVE_RAND_EGD +#ifndef OPENSSL_NO_EGD {"RAND_egd", PySSL_RAND_egd, METH_VARARGS, PySSL_RAND_egd_doc}, #endif @@ -3834,10 +3951,12 @@ static PyMethodDef PySSL_methods[] = { }; -#ifdef WITH_THREAD +#ifdef HAVE_OPENSSL_CRYPTO_LOCK /* an implementation of OpenSSL threading operations in terms - of the Python C thread library */ + * of the Python C thread library + * Only used up to 1.0.2. OpenSSL 1.1.0+ has its own locking code. + */ static PyThread_type_lock *_ssl_locks = NULL; @@ -3918,7 +4037,7 @@ static int _setup_ssl_threads(void) { return 1; } -#endif /* def HAVE_THREAD */ +#endif /* HAVE_OPENSSL_CRYPTO_LOCK for WITH_THREAD && OpenSSL < 1.1.0 */ PyDoc_STRVAR(module_doc, "Implementation module for SSL socket operations. See the socket module\n\ @@ -3971,11 +4090,16 @@ init_ssl(void) SSL_load_error_strings(); SSL_library_init(); #ifdef WITH_THREAD +#ifdef HAVE_OPENSSL_CRYPTO_LOCK /* note that this will start threading if not already started */ if (!_setup_ssl_threads()) { return; } +#elif OPENSSL_VERSION_1_1 && defined(OPENSSL_THREADS) + /* OpenSSL 1.1.0 builtin thread support is enabled */ + _ssl_locks_count++; #endif +#endif /* WITH_THREAD */ OpenSSL_add_all_algorithms(); /* Add symbols to module dict */ @@ -4128,7 +4252,9 @@ init_ssl(void) PY_SSL_VERSION_SSL3); #endif PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", - PY_SSL_VERSION_SSL23); + PY_SSL_VERSION_TLS); + PyModule_AddIntConstant(m, "PROTOCOL_TLS", + PY_SSL_VERSION_TLS); PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); #if HAVE_TLSv1_2 diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 58456a4..46cc64d 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -52,8 +52,8 @@ Copyright (C) 1994 Steen Lumholt. (size_t)(size) <= UINT_MAX / (size_t)(elemsize)) /* Starting with Tcl 8.4, many APIs offer const-correctness. Unfortunately, - making _tkinter correct for this API means to break earlier - versions. USE_COMPAT_CONST allows to make _tkinter work with both 8.4 and + making _tkinter correct for this API means breaking earlier + versions. USE_COMPAT_CONST allows making _tkinter work with both 8.4 and earlier versions. Once Tcl releases before 8.4 don't need to be supported anymore, this should go. */ #define USE_COMPAT_CONST @@ -1874,7 +1874,7 @@ var_perform(VarEvent *ev) PyErr_NormalizeException(&exc, &val, &tb); *(ev->exc_type) = exc; *(ev->exc_val) = val; - Py_DECREF(tb); + Py_XDECREF(tb); } } diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index f147115..9819141 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -620,8 +620,10 @@ array_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh) np = (arrayobject *) newarrayobject(&Arraytype, ihigh - ilow, a->ob_descr); if (np == NULL) return NULL; - memcpy(np->ob_item, a->ob_item + ilow * a->ob_descr->itemsize, - (ihigh-ilow) * a->ob_descr->itemsize); + if (ihigh > ilow) { + memcpy(np->ob_item, a->ob_item + ilow * a->ob_descr->itemsize, + (ihigh-ilow) * a->ob_descr->itemsize); + } return (PyObject *)np; } @@ -660,9 +662,13 @@ array_concat(arrayobject *a, PyObject *bb) if (np == NULL) { return NULL; } - memcpy(np->ob_item, a->ob_item, Py_SIZE(a)*a->ob_descr->itemsize); - memcpy(np->ob_item + Py_SIZE(a)*a->ob_descr->itemsize, - b->ob_item, Py_SIZE(b)*b->ob_descr->itemsize); + if (Py_SIZE(a) > 0) { + memcpy(np->ob_item, a->ob_item, Py_SIZE(a)*a->ob_descr->itemsize); + } + if (Py_SIZE(b) > 0) { + memcpy(np->ob_item + Py_SIZE(a)*a->ob_descr->itemsize, + b->ob_item, Py_SIZE(b)*b->ob_descr->itemsize); + } return (PyObject *)np; #undef b } @@ -684,6 +690,8 @@ array_repeat(arrayobject *a, Py_ssize_t n) np = (arrayobject *) newarrayobject(&Arraytype, size, a->ob_descr); if (np == NULL) return NULL; + if (size == 0) + return (PyObject *)np; p = np->ob_item; nbytes = Py_SIZE(a) * a->ob_descr->itemsize; for (i = 0; i < n; i++) { @@ -838,8 +846,10 @@ array_do_extend(arrayobject *self, PyObject *bb) PyErr_NoMemory(); return -1; } - memcpy(self->ob_item + Py_SIZE(self)*self->ob_descr->itemsize, - b->ob_item, Py_SIZE(b)*b->ob_descr->itemsize); + if (Py_SIZE(b) > 0) { + memcpy(self->ob_item + Py_SIZE(self)*self->ob_descr->itemsize, + b->ob_item, Py_SIZE(b)*b->ob_descr->itemsize); + } Py_SIZE(self) = size; self->allocated = size; @@ -1067,13 +1077,25 @@ Insert a new item x into the array before position i."); static PyObject * array_buffer_info(arrayobject *self, PyObject *unused) { - PyObject* retval = NULL; + PyObject *retval = NULL, *v; + retval = PyTuple_New(2); if (!retval) return NULL; - PyTuple_SET_ITEM(retval, 0, PyLong_FromVoidPtr(self->ob_item)); - PyTuple_SET_ITEM(retval, 1, PyInt_FromLong((long)(Py_SIZE(self)))); + v = PyLong_FromVoidPtr(self->ob_item); + if (v == NULL) { + Py_DECREF(retval); + return NULL; + } + PyTuple_SET_ITEM(retval, 0, v); + + v = PyInt_FromSsize_t(Py_SIZE(self)); + if (v == NULL) { + Py_DECREF(retval); + return NULL; + } + PyTuple_SET_ITEM(retval, 1, v); return retval; } diff --git a/Modules/audioop.c b/Modules/audioop.c index e829e4d..a4d1375 100644 --- a/Modules/audioop.c +++ b/Modules/audioop.c @@ -121,7 +121,7 @@ static PyInt16 _st_ulaw2linear16[256] = { /* * linear2ulaw() accepts a 14-bit signed integer and encodes it as u-law data - * stored in a unsigned char. This function should only be called with + * stored in an unsigned char. This function should only be called with * the data shifted such that it only contains information in the lower * 14-bits. * diff --git a/Modules/binascii.c b/Modules/binascii.c index 0b492d5..06af60f 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -880,7 +880,7 @@ binascii_crc32(PyObject *self, PyObject *args) int signed_val; if (!PyArg_ParseTuple(args, "s*|I:crc32", &pbuf, &crc32val)) - return NULL; + return NULL; /* In Python 2.x we return a signed integer regardless of native platform * long size (the 32bit unsigned long is treated as 32-bit signed and sign * extended into a 64-bit long inside the integer object). 3.0 does the @@ -1222,7 +1222,8 @@ binascii_a2b_qp(PyObject *self, PyObject *args, PyObject *kwargs) odata[out++] = '='; in++; } - else if (((data[in] >= 'A' && data[in] <= 'F') || + else if ((in + 1 < datalen) && + ((data[in] >= 'A' && data[in] <= 'F') || (data[in] >= 'a' && data[in] <= 'f') || (data[in] >= '0' && data[in] <= '9')) && ((data[in+1] >= 'A' && data[in+1] <= 'F') || @@ -1316,11 +1317,13 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) /* First, scan to see how many characters need to be encoded */ in = 0; while (in < datalen) { + Py_ssize_t delta = 0; if ((data[in] > 126) || (data[in] == '=') || (header && data[in] == '_') || ((data[in] == '.') && (linelen == 0) && - (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || + (in + 1 == datalen || data[in+1] == '\n' || + data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && @@ -1331,12 +1334,12 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) if ((linelen + 3) >= MAXLINESIZE) { linelen = 0; if (crlf) - odatalen += 3; + delta += 3; else - odatalen += 2; + delta += 2; } linelen += 3; - odatalen += 3; + delta += 3; in++; } else { @@ -1348,11 +1351,11 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) linelen = 0; /* Protect against whitespace on end of line */ if (in && ((data[in-1] == ' ') || (data[in-1] == '\t'))) - odatalen += 2; + delta += 2; if (crlf) - odatalen += 2; + delta += 2; else - odatalen += 1; + delta += 1; if (data[in] == '\r') in += 2; else @@ -1364,15 +1367,21 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) (linelen + 1) >= MAXLINESIZE) { linelen = 0; if (crlf) - odatalen += 3; + delta += 3; else - odatalen += 2; + delta += 2; } linelen++; - odatalen++; + delta++; in++; } } + if (PY_SSIZE_T_MAX - delta < odatalen) { + PyBuffer_Release(&pdata); + PyErr_NoMemory(); + return NULL; + } + odatalen += delta; } /* We allocate the output same size as input, this is overkill. @@ -1393,13 +1402,13 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) (data[in] == '=') || (header && data[in] == '_') || ((data[in] == '.') && (linelen == 0) && - (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || + (in + 1 == datalen || data[in+1] == '\n' || + data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && (data[in] != '\r') && (data[in] != '\n') && - (quotetabs || - (!quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) + (quotetabs || ((data[in] != '\t') && (data[in] != ' '))))) { if ((linelen + 3 )>= MAXLINESIZE) { odata[out++] = '='; diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c index 578cf3d..478d75d 100644 --- a/Modules/bsddbmodule.c +++ b/Modules/bsddbmodule.c @@ -851,7 +851,7 @@ initbsddb185(void) { if (PyErr_WarnPy3k("the bsddb185 module has been removed in " "Python 3.0", 2) < 0) - return; + return; Bsddbtype.ob_type = &PyType_Type; m = Py_InitModule("bsddb185", bsddbmodule_methods); diff --git a/Modules/cPickle.c b/Modules/cPickle.c index 88f4f23..845ad8f 100644 --- a/Modules/cPickle.c +++ b/Modules/cPickle.c @@ -1323,71 +1323,71 @@ modified_EncodeRawUnicodeEscape(const Py_UNICODE *s, Py_ssize_t size) #endif if (size > PY_SSIZE_T_MAX / expandsize) - return PyErr_NoMemory(); + return PyErr_NoMemory(); repr = PyString_FromStringAndSize(NULL, expandsize * size); if (repr == NULL) - return NULL; + return NULL; if (size == 0) - return repr; + return repr; p = q = PyString_AS_STRING(repr); while (size-- > 0) { - Py_UNICODE ch = *s++; + Py_UNICODE ch = *s++; #ifdef Py_UNICODE_WIDE - /* Map 32-bit characters to '\Uxxxxxxxx' */ - if (ch >= 0x10000) { - *p++ = '\\'; - *p++ = 'U'; - *p++ = hexdigit[(ch >> 28) & 0xf]; - *p++ = hexdigit[(ch >> 24) & 0xf]; - *p++ = hexdigit[(ch >> 20) & 0xf]; - *p++ = hexdigit[(ch >> 16) & 0xf]; - *p++ = hexdigit[(ch >> 12) & 0xf]; - *p++ = hexdigit[(ch >> 8) & 0xf]; - *p++ = hexdigit[(ch >> 4) & 0xf]; - *p++ = hexdigit[ch & 15]; - } - else + /* Map 32-bit characters to '\Uxxxxxxxx' */ + if (ch >= 0x10000) { + *p++ = '\\'; + *p++ = 'U'; + *p++ = hexdigit[(ch >> 28) & 0xf]; + *p++ = hexdigit[(ch >> 24) & 0xf]; + *p++ = hexdigit[(ch >> 20) & 0xf]; + *p++ = hexdigit[(ch >> 16) & 0xf]; + *p++ = hexdigit[(ch >> 12) & 0xf]; + *p++ = hexdigit[(ch >> 8) & 0xf]; + *p++ = hexdigit[(ch >> 4) & 0xf]; + *p++ = hexdigit[ch & 15]; + } + else #else - /* Map UTF-16 surrogate pairs to '\U00xxxxxx' */ - if (ch >= 0xD800 && ch < 0xDC00) { - Py_UNICODE ch2; - Py_UCS4 ucs; - - ch2 = *s++; - size--; - if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) { - ucs = (((ch & 0x03FF) << 10) | (ch2 & 0x03FF)) + 0x00010000; - *p++ = '\\'; - *p++ = 'U'; - *p++ = hexdigit[(ucs >> 28) & 0xf]; - *p++ = hexdigit[(ucs >> 24) & 0xf]; - *p++ = hexdigit[(ucs >> 20) & 0xf]; - *p++ = hexdigit[(ucs >> 16) & 0xf]; - *p++ = hexdigit[(ucs >> 12) & 0xf]; - *p++ = hexdigit[(ucs >> 8) & 0xf]; - *p++ = hexdigit[(ucs >> 4) & 0xf]; - *p++ = hexdigit[ucs & 0xf]; - continue; - } - /* Fall through: isolated surrogates are copied as-is */ - s--; - size++; - } + /* Map UTF-16 surrogate pairs to '\U00xxxxxx' */ + if (ch >= 0xD800 && ch < 0xDC00) { + Py_UNICODE ch2; + Py_UCS4 ucs; + + ch2 = *s++; + size--; + if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) { + ucs = (((ch & 0x03FF) << 10) | (ch2 & 0x03FF)) + 0x00010000; + *p++ = '\\'; + *p++ = 'U'; + *p++ = hexdigit[(ucs >> 28) & 0xf]; + *p++ = hexdigit[(ucs >> 24) & 0xf]; + *p++ = hexdigit[(ucs >> 20) & 0xf]; + *p++ = hexdigit[(ucs >> 16) & 0xf]; + *p++ = hexdigit[(ucs >> 12) & 0xf]; + *p++ = hexdigit[(ucs >> 8) & 0xf]; + *p++ = hexdigit[(ucs >> 4) & 0xf]; + *p++ = hexdigit[ucs & 0xf]; + continue; + } + /* Fall through: isolated surrogates are copied as-is */ + s--; + size++; + } #endif - /* Map 16-bit characters to '\uxxxx' */ - if (ch >= 256 || ch == '\\' || ch == '\n') { - *p++ = '\\'; - *p++ = 'u'; - *p++ = hexdigit[(ch >> 12) & 0xf]; - *p++ = hexdigit[(ch >> 8) & 0xf]; - *p++ = hexdigit[(ch >> 4) & 0xf]; - *p++ = hexdigit[ch & 15]; - } - /* Copy everything else as-is */ - else - *p++ = (char) ch; + /* Map 16-bit characters to '\uxxxx' */ + if (ch >= 256 || ch == '\\' || ch == '\n') { + *p++ = '\\'; + *p++ = 'u'; + *p++ = hexdigit[(ch >> 12) & 0xf]; + *p++ = hexdigit[(ch >> 8) & 0xf]; + *p++ = hexdigit[(ch >> 4) & 0xf]; + *p++ = hexdigit[ch & 15]; + } + /* Copy everything else as-is */ + else + *p++ = (char) ch; } *p = '\0'; _PyString_Resize(&repr, p - q); diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c index 5b78789..ce62f40 100644 --- a/Modules/cStringIO.c +++ b/Modules/cStringIO.c @@ -496,17 +496,17 @@ O_writelines(Oobject *self, PyObject *args) { Py_DECREF(it); Py_DECREF(s); return NULL; - } - Py_DECREF(s); - } + } + Py_DECREF(s); + } - Py_DECREF(it); + Py_DECREF(it); - /* See if PyIter_Next failed */ - if (PyErr_Occurred()) - return NULL; + /* See if PyIter_Next failed */ + if (PyErr_Occurred()) + return NULL; - Py_RETURN_NONE; + Py_RETURN_NONE; } static struct PyMethodDef O_methods[] = { /* Common methods: */ diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index 376f8ee..8713628 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -531,7 +531,7 @@ multibytecodec_encode(MultibyteCodec *codec, if (_PyString_Resize(&buf.outobj, finalsize) == -1) goto errorexit; - *data = buf.inbuf; + *data = buf.inbuf; Py_XDECREF(buf.excobj); return buf.outobj; @@ -1275,19 +1275,19 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self, if (PyString_GET_SIZE(cres) > PY_SSIZE_T_MAX - self->pendingsize) { PyErr_NoMemory(); goto errorexit; - } - rsize = PyString_GET_SIZE(cres) + self->pendingsize; - ctr = PyString_FromStringAndSize(NULL, rsize); - if (ctr == NULL) - goto errorexit; - ctrdata = PyString_AS_STRING(ctr); - memcpy(ctrdata, self->pending, self->pendingsize); - memcpy(ctrdata + self->pendingsize, - PyString_AS_STRING(cres), - PyString_GET_SIZE(cres)); - Py_DECREF(cres); - cres = ctr; - self->pendingsize = 0; + } + rsize = PyString_GET_SIZE(cres) + self->pendingsize; + ctr = PyString_FromStringAndSize(NULL, rsize); + if (ctr == NULL) + goto errorexit; + ctrdata = PyString_AS_STRING(ctr); + memcpy(ctrdata, self->pending, self->pendingsize); + memcpy(ctrdata + self->pendingsize, + PyString_AS_STRING(cres), + PyString_GET_SIZE(cres)); + Py_DECREF(cres); + cres = ctr; + self->pendingsize = 0; } rsize = PyString_GET_SIZE(cres); diff --git a/Modules/clmodule.c b/Modules/clmodule.c index e5d568f..2179bcd 100644 --- a/Modules/clmodule.c +++ b/Modules/clmodule.c @@ -964,7 +964,7 @@ initcl(void) if (PyErr_WarnPy3k("the cl module has been removed in " "Python 3.0", 2) < 0) - return; + return; m = Py_InitModule("cl", cl_methods); if (m == NULL) diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c index e7fd349..4573637 100644 --- a/Modules/datetimemodule.c +++ b/Modules/datetimemodule.c @@ -613,7 +613,7 @@ time_alloc(PyTypeObject *type, Py_ssize_t aware) sizeof(_PyDateTime_BaseTime)); if (self == NULL) return (PyObject *)PyErr_NoMemory(); - PyObject_INIT(self, type); + (void)PyObject_INIT(self, type); return self; } @@ -628,7 +628,7 @@ datetime_alloc(PyTypeObject *type, Py_ssize_t aware) sizeof(_PyDateTime_BaseDateTime)); if (self == NULL) return (PyObject *)PyErr_NoMemory(); - PyObject_INIT(self, type); + (void)PyObject_INIT(self, type); return self; } diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c index c349ad0..dfecf9d 100644 --- a/Modules/dlmodule.c +++ b/Modules/dlmodule.c @@ -240,7 +240,7 @@ initdl(void) if (PyErr_WarnPy3k("the dl module has been removed in " "Python 3.0; use the ctypes module instead", 2) < 0) - return; + return; /* Initialize object type */ Py_TYPE(&Dltype) = &PyType_Type; diff --git a/Modules/expat/pyexpatns.h b/Modules/expat/pyexpatns.h index 2f2f4f9..999c5c7 100644 --- a/Modules/expat/pyexpatns.h +++ b/Modules/expat/pyexpatns.h @@ -21,7 +21,7 @@ * * * The Solution: - * Prefix all a exported symbols with "PyExpat_". This is similar to + * Prefix all exported symbols with "PyExpat_". This is similar to * what Mozilla does for some common libs: * http://lxr.mozilla.org/seamonkey/source/modules/libimg/png/mozpngconf.h#115 * diff --git a/Modules/expat/xmlparse.c b/Modules/expat/xmlparse.c index 6a61508..4128387 100644 --- a/Modules/expat/xmlparse.c +++ b/Modules/expat/xmlparse.c @@ -2,12 +2,6 @@ See the file COPYING for copying permission. */ -#include -#include /* memset(), memcpy() */ -#include -#include /* UINT_MAX */ -#include /* time() */ - #define XML_BUILDING_EXPAT 1 #ifdef COMPILED_FROM_DSP @@ -22,6 +16,12 @@ #include #endif /* ndef COMPILED_FROM_DSP */ +#include +#include /* memset(), memcpy() */ +#include +#include /* UINT_MAX */ +#include /* time() */ + #include "ascii.h" #include "expat.h" diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index 9d8b587..988d942 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -21,7 +21,7 @@ conv_descriptor(PyObject *object, int *target) int fd = PyObject_AsFileDescriptor(object); if (fd < 0) - return 0; + return 0; *target = fd; return 1; } diff --git a/Modules/flmodule.c b/Modules/flmodule.c index 0ddf600..a21489e 100644 --- a/Modules/flmodule.c +++ b/Modules/flmodule.c @@ -151,9 +151,9 @@ generic_set_call_back(genericobject *g, PyObject *args) g->ob_callback_arg = NULL; } else { - PyObject *a, *b; - if (!PyArg_UnpackTuple(args, "set_call_back", 2, 2, &a, &b)) - return NULL; + PyObject *a, *b; + if (!PyArg_UnpackTuple(args, "set_call_back", 2, 2, &a, &b)) + return NULL; Py_XDECREF(g->ob_callback); Py_XDECREF(g->ob_callback_arg); g->ob_callback = a; @@ -2124,10 +2124,9 @@ static PyMethodDef forms_methods[] = { PyMODINIT_FUNC initfl(void) { - if (PyErr_WarnPy3k("the fl module has been removed in " "Python 3.0", 2) < 0) - return; + return; Py_InitModule("fl", forms_methods); if (m == NULL) diff --git a/Modules/fmmodule.c b/Modules/fmmodule.c index 3a74107..bf3b330 100644 --- a/Modules/fmmodule.c +++ b/Modules/fmmodule.c @@ -257,10 +257,9 @@ static PyMethodDef fm_methods[] = { void initfm(void) { - if (PyErr_WarnPy3k("the fm module has been removed in " "Python 3.0", 2) < 0) - return; + return; Py_InitModule("fm", fm_methods); if (m == NULL) diff --git a/Modules/getpath.c b/Modules/getpath.c index b239159..c42ce31 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -329,11 +329,9 @@ search_for_exec_prefix(char *argv0_path, char *home) n = fread(rel_builddir_path, 1, MAXPATHLEN, f); rel_builddir_path[n] = '\0'; fclose(f); - if (n >= 0) { - strcpy(exec_prefix, argv0_path); - joinpath(exec_prefix, rel_builddir_path); - return -1; - } + strcpy(exec_prefix, argv0_path); + joinpath(exec_prefix, rel_builddir_path); + return -1; } } @@ -599,7 +597,10 @@ calculate_path(void) if (defpath[0] != SEP) { strcat(buf, prefix); - strcat(buf, separator); + if (prefixsz >= 2 && prefix[prefixsz - 2] != SEP && + defpath[0] != (delim ? DELIM : L'\0')) { /* not empty */ + strcat(buf, separator); + } } if (delim) { diff --git a/Modules/glmodule.c b/Modules/glmodule.c index b9c64fb..9609378 100644 --- a/Modules/glmodule.c +++ b/Modules/glmodule.c @@ -7624,10 +7624,9 @@ static struct PyMethodDef gl_methods[] = { void initgl(void) { - if (PyErr_WarnPy3k("the gl module has been removed in " "Python 3.0", 2) < 0) - return; + return; (void) Py_InitModule("gl", gl_methods); } diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c index 68285b8..f91501b 100644 --- a/Modules/itertoolsmodule.c +++ b/Modules/itertoolsmodule.c @@ -1747,7 +1747,7 @@ iterable, until all of the iterables are exhausted."); PyDoc_STRVAR(chain_from_iterable_doc, "chain.from_iterable(iterable) --> chain object\n\ \n\ -Alternate chain() contructor taking a single iterable argument\n\ +Alternate chain() constructor taking a single iterable argument\n\ that evaluates lazily."); static PyMethodDef chain_methods[] = { diff --git a/Modules/ld_so_aix.in b/Modules/ld_so_aix.in index c18ff10..e8e98b1 100644 --- a/Modules/ld_so_aix.in +++ b/Modules/ld_so_aix.in @@ -70,6 +70,7 @@ if test ! -n "$*"; then fi makexp=`dirname $0`/makexp_aix +test -x "${makexp}" || makexp="@abs_srcdir@/makexp_aix" # Check for existence of compiler. CC=$1; shift diff --git a/Modules/main.c b/Modules/main.c index ef9b245..44217c6 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -153,15 +153,15 @@ static void RunStartupFile(PyCompilerFlags *cf) (void) PyRun_SimpleFileExFlags(fp, startup, 0, cf); PyErr_Clear(); fclose(fp); - } else { - int save_errno; - save_errno = errno; - PySys_WriteStderr("Could not open PYTHONSTARTUP\n"); - errno = save_errno; - PyErr_SetFromErrnoWithFilename(PyExc_IOError, - startup); - PyErr_Print(); - PyErr_Clear(); + } else { + int save_errno; + save_errno = errno; + PySys_WriteStderr("Could not open PYTHONSTARTUP\n"); + errno = save_errno; + PyErr_SetFromErrnoWithFilename(PyExc_IOError, + startup); + PyErr_Print(); + PyErr_Clear(); } } } diff --git a/Modules/makesetup b/Modules/makesetup index 8862c36..1bffcbf 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -82,7 +82,7 @@ esac NL='\ ' -# Setup to link with extra libraries when makeing shared extensions. +# Setup to link with extra libraries when making shared extensions. # Currently, only Cygwin needs this baggage. case `uname -s` in CYGWIN*) if test $libdir = . diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index 1ebccdf..0dc4805 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -91,8 +91,8 @@ typedef enum typedef struct { PyObject_HEAD char * data; - size_t size; - size_t pos; /* relative to offset */ + Py_ssize_t size; + Py_ssize_t pos; /* relative to offset */ #ifdef MS_WINDOWS PY_LONG_LONG offset; #else @@ -204,33 +204,32 @@ mmap_read_byte_method(mmap_object *self, PyObject *unused) { CHECK_VALID(NULL); - if (self->pos < self->size) { - char value = self->data[self->pos]; - self->pos += 1; - return Py_BuildValue("c", value); - } else { + if (self->pos >= self->size) { PyErr_SetString(PyExc_ValueError, "read byte out of range"); return NULL; } + return PyString_FromStringAndSize(&self->data[self->pos++], 1); } static PyObject * mmap_read_line_method(mmap_object *self, PyObject *unused) { - char *start = self->data+self->pos; - char *eof = self->data+self->size; - char *eol; + Py_ssize_t remaining; + char *start, *eol; PyObject *result; CHECK_VALID(NULL); - eol = memchr(start, '\n', self->size - self->pos); + remaining = (self->pos < self->size) ? self->size - self->pos : 0; + if (!remaining) + return PyString_FromString(""); + start = self->data + self->pos; + eol = memchr(start, '\n', remaining); if (!eol) - eol = eof; + eol = self->data + self->size; else - ++eol; /* we're interested in the position after the - newline. */ + ++eol; /* advance past newline */ result = PyString_FromStringAndSize(start, (eol - start)); self->pos += (eol - start); return result; @@ -240,28 +239,18 @@ static PyObject * mmap_read_method(mmap_object *self, PyObject *args) { - Py_ssize_t num_bytes, n; + Py_ssize_t num_bytes, remaining; PyObject *result; CHECK_VALID(NULL); if (!PyArg_ParseTuple(args, "n:read", &num_bytes)) - return(NULL); + return NULL; /* silently 'adjust' out-of-range requests */ - assert(self->size >= self->pos); - n = self->size - self->pos; - /* The difference can overflow, only if self->size is greater than - * PY_SSIZE_T_MAX. But then the operation cannot possibly succeed, - * because the mapped area and the returned string each need more - * than half of the addressable memory. So we clip the size, and let - * the code below raise MemoryError. - */ - if (n < 0) - n = PY_SSIZE_T_MAX; - if (num_bytes < 0 || num_bytes > n) { - num_bytes = n; - } - result = Py_BuildValue("s#", self->data+self->pos, num_bytes); + remaining = (self->pos < self->size) ? self->size - self->pos : 0; + if (num_bytes < 0 || num_bytes > remaining) + num_bytes = remaining; + result = PyString_FromStringAndSize(&self->data[self->pos], num_bytes); self->pos += num_bytes; return result; } @@ -288,14 +277,14 @@ mmap_gfind(mmap_object *self, start += self->size; if (start < 0) start = 0; - else if ((size_t)start > self->size) + else if (start > self->size) start = self->size; if (end < 0) end += self->size; if (end < 0) end = 0; - else if ((size_t)end > self->size) + else if (end > self->size) end = self->size; start_p = self->data + start; @@ -362,12 +351,12 @@ mmap_write_method(mmap_object *self, if (!is_writeable(self)) return NULL; - if ((self->pos + length) > self->size) { + if (self->pos > self->size || self->size - self->pos < length) { PyErr_SetString(PyExc_ValueError, "data out of range"); return NULL; } - memcpy(self->data+self->pos, data, length); - self->pos = self->pos+length; + memcpy(&self->data[self->pos], data, length); + self->pos += length; Py_INCREF(Py_None); return Py_None; } @@ -386,8 +375,7 @@ mmap_write_byte_method(mmap_object *self, return NULL; if (self->pos < self->size) { - *(self->data+self->pos) = value; - self->pos += 1; + self->data[self->pos++] = value; Py_INCREF(Py_None); return Py_None; } @@ -458,8 +446,14 @@ mmap_resize_method(mmap_object *self, if (!PyArg_ParseTuple(args, "n:resize", &new_size) || !is_resizeable(self)) { return NULL; + } + if (new_size < 0 || PY_SSIZE_T_MAX - new_size < self->offset) { + PyErr_SetString(PyExc_ValueError, "new size out of range"); + return NULL; + } + + { #ifdef MS_WINDOWS - } else { DWORD dwErrCode = 0; DWORD off_hi, off_lo, newSizeLow, newSizeHigh; /* First, unmap the file view */ @@ -509,15 +503,13 @@ mmap_resize_method(mmap_object *self, #ifdef UNIX #ifndef HAVE_MREMAP - } else { PyErr_SetString(PyExc_SystemError, "mmap: resizing not available--no mremap()"); return NULL; #else - } else { void *newmap; - if (ftruncate(self->fd, self->offset + new_size) == -1) { + if (self->fd != -1 && ftruncate(self->fd, self->offset + new_size) == -1) { PyErr_SetFromErrno(mmap_module_error); return NULL; } @@ -525,11 +517,11 @@ mmap_resize_method(mmap_object *self, #ifdef MREMAP_MAYMOVE newmap = mremap(self->data, self->size, new_size, MREMAP_MAYMOVE); #else - #if defined(__NetBSD__) - newmap = mremap(self->data, self->size, self->data, new_size, 0); - #else - newmap = mremap(self->data, self->size, new_size, 0); - #endif /* __NetBSD__ */ +#if defined(__NetBSD__) + newmap = mremap(self->data, self->size, self->data, new_size, 0); +#else + newmap = mremap(self->data, self->size, new_size, 0); +#endif /* __NetBSD__ */ #endif if (newmap == (void *)-1) { @@ -560,7 +552,7 @@ mmap_flush_method(mmap_object *self, PyObject *args) CHECK_VALID(NULL); if (!PyArg_ParseTuple(args, "|nn:flush", &offset, &size)) return NULL; - if ((size_t)(offset + size) > self->size) { + if (size < 0 || offset < 0 || self->size - offset < size) { PyErr_SetString(PyExc_ValueError, "flush values out of range"); return NULL; } @@ -593,20 +585,18 @@ mmap_seek_method(mmap_object *self, PyObject *args) if (!PyArg_ParseTuple(args, "n|i:seek", &dist, &how)) return NULL; else { - size_t where; + Py_ssize_t where; switch (how) { case 0: /* relative to start */ - if (dist < 0) - goto onoutofrange; where = dist; break; case 1: /* relative to current position */ - if ((Py_ssize_t)self->pos + dist < 0) + if (PY_SSIZE_T_MAX - self->pos < dist) goto onoutofrange; where = self->pos + dist; break; case 2: /* relative to end */ - if ((Py_ssize_t)self->size + dist < 0) + if (PY_SSIZE_T_MAX - self->size < dist) goto onoutofrange; where = self->size + dist; break; @@ -614,7 +604,7 @@ mmap_seek_method(mmap_object *self, PyObject *args) PyErr_SetString(PyExc_ValueError, "unknown seek type"); return NULL; } - if (where > self->size) + if (where > self->size || where < 0) goto onoutofrange; self->pos = where; Py_INCREF(Py_None); @@ -629,23 +619,27 @@ mmap_seek_method(mmap_object *self, PyObject *args) static PyObject * mmap_move_method(mmap_object *self, PyObject *args) { - unsigned long dest, src, cnt; + Py_ssize_t dest, src, cnt; CHECK_VALID(NULL); - if (!PyArg_ParseTuple(args, "kkk:move", &dest, &src, &cnt) || + if (!PyArg_ParseTuple(args, "nnn:move", &dest, &src, &cnt) || !is_writeable(self)) { return NULL; } else { /* bounds check the values */ - if (cnt < 0 || (cnt + dest) < cnt || (cnt + src) < cnt || - src < 0 || src > self->size || (src + cnt) > self->size || - dest < 0 || dest > self->size || (dest + cnt) > self->size) { - PyErr_SetString(PyExc_ValueError, - "source, destination, or count out of range"); - return NULL; - } - memmove(self->data+dest, self->data+src, cnt); + if (dest < 0 || src < 0 || cnt < 0) + goto bounds; + if (self->size - dest < cnt || self->size - src < cnt) + goto bounds; + + memmove(&self->data[dest], &self->data[src], cnt); + Py_INCREF(Py_None); return Py_None; + + bounds: + PyErr_SetString(PyExc_ValueError, + "source, destination, or count out of range"); + return NULL; } } @@ -745,7 +739,7 @@ static PyObject * mmap_item(mmap_object *self, Py_ssize_t i) { CHECK_VALID(NULL); - if (i < 0 || (size_t)i >= self->size) { + if (i < 0 || i >= self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return NULL; } @@ -758,13 +752,13 @@ mmap_slice(mmap_object *self, Py_ssize_t ilow, Py_ssize_t ihigh) CHECK_VALID(NULL); if (ilow < 0) ilow = 0; - else if ((size_t)ilow > self->size) + else if (ilow > self->size) ilow = self->size; if (ihigh < 0) ihigh = 0; if (ihigh < ilow) ihigh = ilow; - else if ((size_t)ihigh > self->size) + else if (ihigh > self->size) ihigh = self->size; return PyString_FromStringAndSize(self->data + ilow, ihigh-ilow); @@ -780,7 +774,7 @@ mmap_subscript(mmap_object *self, PyObject *item) return NULL; if (i < 0) i += self->size; - if (i < 0 || (size_t)i >= self->size) { + if (i < 0 || i >= self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return NULL; @@ -850,13 +844,13 @@ mmap_ass_slice(mmap_object *self, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v CHECK_VALID(-1); if (ilow < 0) ilow = 0; - else if ((size_t)ilow > self->size) + else if (ilow > self->size) ilow = self->size; if (ihigh < 0) ihigh = 0; if (ihigh < ilow) ihigh = ilow; - else if ((size_t)ihigh > self->size) + else if (ihigh > self->size) ihigh = self->size; if (v == NULL) { @@ -887,7 +881,7 @@ mmap_ass_item(mmap_object *self, Py_ssize_t i, PyObject *v) const char *buf; CHECK_VALID(-1); - if (i < 0 || (size_t)i >= self->size) { + if (i < 0 || i >= self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return -1; } @@ -921,7 +915,7 @@ mmap_ass_subscript(mmap_object *self, PyObject *item, PyObject *value) return -1; if (i < 0) i += self->size; - if (i < 0 || (size_t)i >= self->size) { + if (i < 0 || i >= self->size) { PyErr_SetString(PyExc_IndexError, "mmap index out of range"); return -1; @@ -1092,32 +1086,6 @@ static PyTypeObject mmap_object_type = { }; -/* extract the map size from the given PyObject - - Returns -1 on error, with an appropriate Python exception raised. On - success, the map size is returned. */ -static Py_ssize_t -_GetMapSize(PyObject *o, const char* param) -{ - if (o == NULL) - return 0; - if (PyIndex_Check(o)) { - Py_ssize_t i = PyNumber_AsSsize_t(o, PyExc_OverflowError); - if (i==-1 && PyErr_Occurred()) - return -1; - if (i < 0) { - PyErr_Format(PyExc_OverflowError, - "memory mapped %s must be positive", - param); - return -1; - } - return i; - } - - PyErr_SetString(PyExc_TypeError, "map size must be an integral value"); - return -1; -} - #ifdef UNIX #ifdef HAVE_LARGEFILE_SUPPORT #define _Py_PARSE_OFF_T "L" @@ -1132,7 +1100,6 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) struct stat st; #endif mmap_object *m_obj; - PyObject *map_size_obj = NULL; Py_ssize_t map_size; off_t offset = 0; int fd, flags = MAP_SHARED, prot = PROT_WRITE | PROT_READ; @@ -1142,13 +1109,15 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) "flags", "prot", "access", "offset", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|iii" _Py_PARSE_OFF_T, keywords, - &fd, &map_size_obj, &flags, &prot, + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "in|iii" _Py_PARSE_OFF_T, keywords, + &fd, &map_size, &flags, &prot, &access, &offset)) return NULL; - map_size = _GetMapSize(map_size_obj, "size"); - if (map_size < 0) + if (map_size < 0) { + PyErr_SetString(PyExc_OverflowError, + "memory mapped length must be postiive"); return NULL; + } if (offset < 0) { PyErr_SetString(PyExc_OverflowError, "memory mapped offset must be positive"); @@ -1220,7 +1189,7 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) return NULL; } map_size = (Py_ssize_t) (st.st_size - offset); - } else if (offset + (size_t)map_size > st.st_size) { + } else if (offset > st.st_size || st.st_size - offset < map_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); return NULL; @@ -1230,8 +1199,8 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) m_obj = (mmap_object *)type->tp_alloc(type, 0); if (m_obj == NULL) {return NULL;} m_obj->data = NULL; - m_obj->size = (size_t) map_size; - m_obj->pos = (size_t) 0; + m_obj->size = map_size; + m_obj->pos = 0; m_obj->offset = offset; if (fd == -1) { m_obj->fd = -1; @@ -1290,7 +1259,6 @@ static PyObject * new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) { mmap_object *m_obj; - PyObject *map_size_obj = NULL; Py_ssize_t map_size; PY_LONG_LONG offset = 0, size; DWORD off_hi; /* upper 32 bits of offset */ @@ -1307,8 +1275,8 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) "tagname", "access", "offset", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "iO|ziL", keywords, - &fileno, &map_size_obj, + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "in|ziL", keywords, + &fileno, &map_size, &tagname, &access, &offset)) { return NULL; } @@ -1331,9 +1299,11 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict) "mmap invalid access parameter."); } - map_size = _GetMapSize(map_size_obj, "size"); - if (map_size < 0) + if (map_size < 0) { + PyErr_SetString(PyExc_OverflowError, + "memory mapped length must be postiive"); return NULL; + } if (offset < 0) { PyErr_SetString(PyExc_OverflowError, "memory mapped offset must be positive"); diff --git a/Modules/operator.c b/Modules/operator.c index ae060b8..7ddd123 100644 --- a/Modules/operator.c +++ b/Modules/operator.c @@ -788,7 +788,7 @@ static PyObject * methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { methodcallerobject *mc; - PyObject *name, *newargs; + PyObject *name; if (PyTuple_GET_SIZE(args) < 1) { PyErr_SetString(PyExc_TypeError, "methodcaller needs at least " @@ -801,13 +801,6 @@ methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (mc == NULL) return NULL; - newargs = PyTuple_GetSlice(args, 1, PyTuple_GET_SIZE(args)); - if (newargs == NULL) { - Py_DECREF(mc); - return NULL; - } - mc->args = newargs; - name = PyTuple_GET_ITEM(args, 0); Py_INCREF(name); mc->name = name; @@ -815,6 +808,12 @@ methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds) Py_XINCREF(kwds); mc->kwds = kwds; + mc->args = PyTuple_GetSlice(args, 1, PyTuple_GET_SIZE(args)); + if (mc->args == NULL) { + Py_DECREF(mc); + return NULL; + } + PyObject_GC_Track(mc); return (PyObject *)mc; } diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 4fc3ef7..e73805f 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1646,13 +1646,9 @@ posix_do_stat(PyObject *self, PyObject *args, PyObject *result; #ifdef MS_WINDOWS - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, wformat, &po)) { - Py_UNICODE *wpath = PyUnicode_AS_UNICODE(po); - + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, wformat, &wpath)) { Py_BEGIN_ALLOW_THREADS - /* PyUnicode_AS_UNICODE result OK without - thread lock as it is a simple dereference. */ res = wstatfunc(wpath, &st); Py_END_ALLOW_THREADS @@ -1706,12 +1702,10 @@ posix_access(PyObject *self, PyObject *args) #ifdef MS_WINDOWS DWORD attr; - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, "Ui:access", &po, &mode)) { + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "ui:access", &wpath, &mode)) { Py_BEGIN_ALLOW_THREADS - /* PyUnicode_AS_UNICODE OK without thread lock as - it is a simple dereference. */ - attr = GetFileAttributesW(PyUnicode_AS_UNICODE(po)); + attr = GetFileAttributesW(wpath); Py_END_ALLOW_THREADS goto finish; } @@ -1858,23 +1852,22 @@ posix_chmod(PyObject *self, PyObject *args) int res; #ifdef MS_WINDOWS DWORD attr; - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, "Ui|:chmod", &po, &i)) { + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "ui|:chmod", &wpath, &i)) { Py_BEGIN_ALLOW_THREADS - attr = GetFileAttributesW(PyUnicode_AS_UNICODE(po)); + attr = GetFileAttributesW(wpath); if (attr != 0xFFFFFFFF) { if (i & _S_IWRITE) attr &= ~FILE_ATTRIBUTE_READONLY; else attr |= FILE_ATTRIBUTE_READONLY; - res = SetFileAttributesW(PyUnicode_AS_UNICODE(po), attr); + res = SetFileAttributesW(wpath, attr); } else res = 0; Py_END_ALLOW_THREADS if (!res) - return win32_error_unicode("chmod", - PyUnicode_AS_UNICODE(po)); + return win32_error_unicode("chmod", wpath); Py_INCREF(Py_None); return Py_None; } @@ -2300,18 +2293,18 @@ posix_listdir(PyObject *self, PyObject *args) char *bufptr = namebuf; Py_ssize_t len = sizeof(namebuf)-5; /* only claim to have space for MAX_PATH */ - PyObject *po; - if (PyArg_ParseTuple(args, "U:listdir", &po)) { + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "u:listdir", &wpath)) { WIN32_FIND_DATAW wFileData; Py_UNICODE *wnamebuf; /* Overallocate for \\*.*\0 */ - len = PyUnicode_GET_SIZE(po); + len = wcslen(wpath); wnamebuf = malloc((len + 5) * sizeof(wchar_t)); if (!wnamebuf) { PyErr_NoMemory(); return NULL; } - wcscpy(wnamebuf, PyUnicode_AS_UNICODE(po)); + wcscpy(wnamebuf, wpath); if (len > 0) { Py_UNICODE wch = wnamebuf[len-1]; if (wch != L'/' && wch != L'\\' && wch != L':') @@ -2615,9 +2608,8 @@ posix__getfullpathname(PyObject *self, PyObject *args) char outbuf[MAX_PATH*2]; char *temp; - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, "U|:_getfullpathname", &po)) { - Py_UNICODE *wpath = PyUnicode_AS_UNICODE(po); + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "u|:_getfullpathname", &wpath)) { Py_UNICODE woutbuf[MAX_PATH*2], *woutbufp = woutbuf; Py_UNICODE *wtemp; DWORD result; @@ -2670,15 +2662,13 @@ posix_mkdir(PyObject *self, PyObject *args) int mode = 0777; #ifdef MS_WINDOWS - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, "U|i:mkdir", &po, &mode)) { + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "u|i:mkdir", &wpath, &mode)) { Py_BEGIN_ALLOW_THREADS - /* PyUnicode_AS_UNICODE OK without thread lock as - it is a simple dereference. */ - res = CreateDirectoryW(PyUnicode_AS_UNICODE(po), NULL); + res = CreateDirectoryW(wpath, NULL); Py_END_ALLOW_THREADS if (!res) - return win32_error_unicode("mkdir", PyUnicode_AS_UNICODE(po)); + return win32_error_unicode("mkdir", wpath); Py_INCREF(Py_None); return Py_None; } @@ -2689,8 +2679,6 @@ posix_mkdir(PyObject *self, PyObject *args) Py_FileSystemDefaultEncoding, &path, &mode)) return NULL; Py_BEGIN_ALLOW_THREADS - /* PyUnicode_AS_UNICODE OK without thread lock as - it is a simple dereference. */ res = CreateDirectoryA(path, NULL); Py_END_ALLOW_THREADS if (!res) { @@ -2833,7 +2821,7 @@ static PyObject * posix_stat(PyObject *self, PyObject *args) { #ifdef MS_WINDOWS - return posix_do_stat(self, args, "et:stat", STAT, "U:stat", win32_wstat); + return posix_do_stat(self, args, "et:stat", STAT, "u:stat", win32_wstat); #else return posix_do_stat(self, args, "et:stat", STAT, NULL, NULL); #endif @@ -2969,7 +2957,6 @@ posix_utime(PyObject *self, PyObject *args) { #ifdef MS_WINDOWS PyObject *arg; - PyUnicodeObject *obwpath; wchar_t *wpath = NULL; char *apath = NULL; HANDLE hFile; @@ -2978,8 +2965,7 @@ posix_utime(PyObject *self, PyObject *args) FILETIME atime, mtime; PyObject *result = NULL; - if (PyArg_ParseTuple(args, "UO|:utime", &obwpath, &arg)) { - wpath = PyUnicode_AS_UNICODE(obwpath); + if (PyArg_ParseTuple(args, "uO|:utime", &wpath, &arg)) { Py_BEGIN_ALLOW_THREADS hFile = CreateFileW(wpath, FILE_WRITE_ATTRIBUTES, 0, NULL, OPEN_EXISTING, @@ -4440,14 +4426,11 @@ PyDoc_STRVAR(posix__isdir__doc__, static PyObject * posix__isdir(PyObject *self, PyObject *args) { - PyObject *opath; char *path; - PyUnicodeObject *po; + Py_UNICODE *wpath; DWORD attributes; - if (PyArg_ParseTuple(args, "U|:_isdir", &po)) { - Py_UNICODE *wpath = PyUnicode_AS_UNICODE(po); - + if (PyArg_ParseTuple(args, "u|:_isdir", &wpath)) { attributes = GetFileAttributesW(wpath); if (attributes == INVALID_FILE_ATTRIBUTES) Py_RETURN_FALSE; @@ -6326,7 +6309,7 @@ posix_lstat(PyObject *self, PyObject *args) return posix_do_stat(self, args, "et:lstat", lstat, NULL, NULL); #else /* !HAVE_LSTAT */ #ifdef MS_WINDOWS - return posix_do_stat(self, args, "et:lstat", STAT, "U:lstat", win32_wstat); + return posix_do_stat(self, args, "et:lstat", STAT, "u:lstat", win32_wstat); #else return posix_do_stat(self, args, "et:lstat", STAT, NULL, NULL); #endif @@ -6600,12 +6583,10 @@ posix_open(PyObject *self, PyObject *args) int fd; #ifdef MS_WINDOWS - PyUnicodeObject *po; - if (PyArg_ParseTuple(args, "Ui|i:mkdir", &po, &flag, &mode)) { + Py_UNICODE *wpath; + if (PyArg_ParseTuple(args, "ui|i:mkdir", &wpath, &flag, &mode)) { Py_BEGIN_ALLOW_THREADS - /* PyUnicode_AS_UNICODE OK without thread - lock as it is a simple dereference. */ - fd = _wopen(PyUnicode_AS_UNICODE(po), flag, mode); + fd = _wopen(wpath, flag, mode); Py_END_ALLOW_THREADS if (fd < 0) return posix_error(); @@ -6952,8 +6933,10 @@ posix_fdopen(PyObject *self, PyObject *args) #endif Py_END_ALLOW_THREADS PyMem_FREE(mode); - if (fp == NULL) + if (fp == NULL) { + Py_DECREF(f); return posix_error(); + } /* We now know we will succeed, so initialize the file object. */ ((PyFileObject *)f)->f_fp = fp; PyFile_SetBufSize(f, bufsize); @@ -8662,12 +8645,13 @@ static PyObject * win32_startfile(PyObject *self, PyObject *args) { char *filepath; + Py_UNICODE *wpath; char *operation = NULL; HINSTANCE rc; - PyObject *unipath, *woperation = NULL; - if (!PyArg_ParseTuple(args, "U|s:startfile", - &unipath, &operation)) { + PyObject *woperation = NULL; + if (!PyArg_ParseTuple(args, "u|s:startfile", + &wpath, &operation)) { PyErr_Clear(); goto normal; } @@ -8684,14 +8668,13 @@ win32_startfile(PyObject *self, PyObject *args) Py_BEGIN_ALLOW_THREADS rc = ShellExecuteW((HWND)0, woperation ? PyUnicode_AS_UNICODE(woperation) : 0, - PyUnicode_AS_UNICODE(unipath), + wpath, NULL, NULL, SW_SHOWNORMAL); Py_END_ALLOW_THREADS Py_XDECREF(woperation); if (rc <= (HINSTANCE)32) { - PyObject *errval = win32_error_unicode("startfile", - PyUnicode_AS_UNICODE(unipath)); + PyObject *errval = win32_error_unicode("startfile", wpath); return errval; } Py_INCREF(Py_None); diff --git a/Modules/readline.c b/Modules/readline.c index 1600cd3..ad5903c 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -66,10 +66,11 @@ static const char libedit_version_tag[] = "EditLine wrapper"; static int libedit_history_start = 0; #endif /* __APPLE__ */ +#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK static void on_completion_display_matches_hook(char **matches, int num_matches, int max_length); - +#endif /* Memory allocated for rl_completer_word_break_characters (see issue #17289 for the motivation). */ @@ -774,6 +775,7 @@ on_pre_input_hook() /* C function to call the Python completion_display_matches */ +#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK static void on_completion_display_matches_hook(char **matches, int num_matches, int max_length) @@ -816,6 +818,7 @@ on_completion_display_matches_hook(char **matches, #endif } +#endif #ifdef HAVE_RL_RESIZE_TERMINAL static volatile sig_atomic_t sigwinch_received; @@ -958,19 +961,22 @@ setup_readline(void) begidx = PyInt_FromLong(0L); endidx = PyInt_FromLong(0L); -#ifndef __APPLE__ - if (!isatty(STDOUT_FILENO)) { - /* Issue #19884: stdout is not a terminal. Disable meta modifier - keys to not write the ANSI sequence "\033[1034h" into stdout. On - terminals supporting 8 bit characters like TERM=xterm-256color - (which is now the default Fedora since Fedora 18), the meta key is - used to enable support of 8 bit characters (ANSI sequence - "\033[1034h"). - - With libedit, this call makes readline() crash. */ - rl_variable_bind ("enable-meta-key", "off"); - } +#ifdef __APPLE__ + if (!using_libedit_emulation) #endif + { + if (!isatty(STDOUT_FILENO)) { + /* Issue #19884: stdout is not a terminal. Disable meta modifier + keys to not write the ANSI sequence "\033[1034h" into stdout. On + terminals supporting 8 bit characters like TERM=xterm-256color + (which is now the default Fedora since Fedora 18), the meta key is + used to enable support of 8 bit characters (ANSI sequence + "\033[1034h"). + + With libedit, this call makes readline() crash. */ + rl_variable_bind ("enable-meta-key", "off"); + } + } /* Initialize (allows .inputrc to override) * @@ -1141,7 +1147,7 @@ call_readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt) return NULL; } - /* We got an EOF, return a empty string. */ + /* We got an EOF, return an empty string. */ if (p == NULL) { p = PyMem_Malloc(1); if (p != NULL) diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index c0e17f3..1d7ba4b 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -126,18 +126,18 @@ itimer_retval(struct itimerval *iv) r = PyTuple_New(2); if (r == NULL) - return NULL; + return NULL; if(!(v = PyFloat_FromDouble(double_from_timeval(&iv->it_value)))) { - Py_DECREF(r); - return NULL; + Py_DECREF(r); + return NULL; } PyTuple_SET_ITEM(r, 0, v); if(!(v = PyFloat_FromDouble(double_from_timeval(&iv->it_interval)))) { - Py_DECREF(r); - return NULL; + Py_DECREF(r); + return NULL; } PyTuple_SET_ITEM(r, 1, v); @@ -455,14 +455,14 @@ signal_setitimer(PyObject *self, PyObject *args) struct itimerval new, old; if(!PyArg_ParseTuple(args, "id|d:setitimer", &which, &first, &interval)) - return NULL; + return NULL; timeval_from_double(first, &new.it_value); timeval_from_double(interval, &new.it_interval); /* Let OS check "which" value */ if (setitimer(which, &new, &old) != 0) { - PyErr_SetFromErrno(ItimerError); - return NULL; + PyErr_SetFromErrno(ItimerError); + return NULL; } return itimer_retval(&old); @@ -488,11 +488,11 @@ signal_getitimer(PyObject *self, PyObject *args) struct itimerval old; if (!PyArg_ParseTuple(args, "i:getitimer", &which)) - return NULL; + return NULL; if (getitimer(which, &old) != 0) { - PyErr_SetFromErrno(ItimerError); - return NULL; + PyErr_SetFromErrno(ItimerError); + return NULL; } return itimer_retval(&old); @@ -834,9 +834,9 @@ initsignal(void) #if defined (HAVE_SETITIMER) || defined (HAVE_GETITIMER) ItimerError = PyErr_NewException("signal.ItimerError", - PyExc_IOError, NULL); + PyExc_IOError, NULL); if (ItimerError != NULL) - PyDict_SetItemString(d, "ItimerError", ItimerError); + PyDict_SetItemString(d, "ItimerError", ItimerError); #endif #ifdef CTRL_C_EVENT diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index cd6df92..3e3c05f 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -167,12 +167,14 @@ shutdown(how) -- shut down traffic in one or both directions\n\ #endif #ifdef HAVE_GETHOSTBYNAME_R -# if defined(_AIX) || defined(__osf__) +# if defined(_AIX) && !defined(_LINUX_SOURCE_COMPAT) || defined(__osf__) # define HAVE_GETHOSTBYNAME_R_3_ARG # elif defined(__sun) || defined(__sgi) # define HAVE_GETHOSTBYNAME_R_5_ARG # elif defined(linux) /* Rely on the configure script */ +# elif defined(_LINUX_SOURCE_COMPAT) /* Linux compatibility on AIX */ +# define HAVE_GETHOSTBYNAME_R_6_ARG # else # undef HAVE_GETHOSTBYNAME_R # endif @@ -780,7 +782,7 @@ internal_select(PySocketSockObject *s, int writing) */ #define BEGIN_SELECT_LOOP(s) \ { \ - double deadline, interval = s->sock_timeout; \ + double deadline = 0, interval = s->sock_timeout; \ int has_timeout = s->sock_timeout > 0.0; \ if (has_timeout) { \ deadline = _PyTime_FloatTime() + s->sock_timeout; \ @@ -1637,12 +1639,13 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret) return 1; } #endif /* AF_UNIX */ + #if defined(AF_NETLINK) - case AF_NETLINK: - { - *len_ret = sizeof (struct sockaddr_nl); - return 1; - } + case AF_NETLINK: + { + *len_ret = sizeof (struct sockaddr_nl); + return 1; + } #endif case AF_INET: @@ -3471,7 +3474,7 @@ socket_gethostbyname_ex(PyObject *self, PyObject *args) int buf_len = (sizeof buf) - 1; int errnop; #endif -#if defined(HAVE_GETHOSTBYNAME_R_3_ARG) || defined(HAVE_GETHOSTBYNAME_R_6_ARG) +#ifdef HAVE_GETHOSTBYNAME_R_3_ARG int result; #endif #endif /* HAVE_GETHOSTBYNAME_R */ @@ -3483,7 +3486,7 @@ socket_gethostbyname_ex(PyObject *self, PyObject *args) Py_BEGIN_ALLOW_THREADS #ifdef HAVE_GETHOSTBYNAME_R #if defined(HAVE_GETHOSTBYNAME_R_6_ARG) - result = gethostbyname_r(name, &hp_allocated, buf, buf_len, + gethostbyname_r(name, &hp_allocated, buf, buf_len, &h, &errnop); #elif defined(HAVE_GETHOSTBYNAME_R_5_ARG) h = gethostbyname_r(name, &hp_allocated, buf, buf_len, &errnop); @@ -3547,7 +3550,7 @@ socket_gethostbyaddr(PyObject *self, PyObject *args) int buf_len = (sizeof buf) - 1; int errnop; #endif -#if defined(HAVE_GETHOSTBYNAME_R_3_ARG) || defined(HAVE_GETHOSTBYNAME_R_6_ARG) +#ifdef HAVE_GETHOSTBYNAME_R_3_ARG int result; #endif #endif /* HAVE_GETHOSTBYNAME_R */ @@ -3580,7 +3583,7 @@ socket_gethostbyaddr(PyObject *self, PyObject *args) Py_BEGIN_ALLOW_THREADS #ifdef HAVE_GETHOSTBYNAME_R #if defined(HAVE_GETHOSTBYNAME_R_6_ARG) - result = gethostbyaddr_r(ap, al, af, + gethostbyaddr_r(ap, al, af, &hp_allocated, buf, buf_len, &h, &errnop); #elif defined(HAVE_GETHOSTBYNAME_R_5_ARG) diff --git a/Modules/timingmodule.c b/Modules/timingmodule.c index a4e2c7e..c19dafd 100644 --- a/Modules/timingmodule.c +++ b/Modules/timingmodule.c @@ -56,7 +56,7 @@ PyMODINIT_FUNC inittiming(void) { if (PyErr_WarnPy3k("the timing module has been removed in " "Python 3.0; use time.clock() instead", 2) < 0) - return; + return; (void)Py_InitModule("timing", timing_methods); } diff --git a/Modules/tkappinit.c b/Modules/tkappinit.c index c1f97b0..2ed8594 100644 --- a/Modules/tkappinit.c +++ b/Modules/tkappinit.c @@ -26,7 +26,9 @@ static int tk_load_failed; int Tcl_AppInit(Tcl_Interp *interp) { +#ifdef WITH_MOREBUTTONS Tk_Window main_window; +#endif const char *_tkinter_skip_tk_init; #ifdef TKINTER_PROTECT_LOADTK const char *_tkinter_tk_failed; @@ -111,7 +113,11 @@ Tcl_AppInit(Tcl_Interp *interp) return TCL_ERROR; } +#ifdef WITH_MOREBUTTONS main_window = Tk_MainWindow(interp); +#else + Tk_MainWindow(interp); +#endif #ifdef TK_AQUA TkMacOSXInitAppleEvents(interp); diff --git a/Modules/zipimport.c b/Modules/zipimport.c index ee44cab..1691773 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -380,13 +380,13 @@ zipimporter_get_filename(PyObject *obj, PyObject *args) if (!PyArg_ParseTuple(args, "s:zipimporter.get_filename", &fullname)) - return NULL; + return NULL; /* Deciding the filename requires working out where the code would come from if the module was actually loaded */ code = get_module_code(self, fullname, &ispackage, &modpath); if (code == NULL) - return NULL; + return NULL; Py_DECREF(code); /* Only need the path info */ return PyString_FromString(modpath); @@ -689,7 +689,7 @@ set_file_error(const char *archive, int eof) A toc_entry is a tuple: - (__file__, # value to use for __file__, available for all files + (__file__, # value to use for __file__, available for all files compress, # compression kind; 0 for uncompressed data_size, # size of compressed data on disk file_size, # size of decompressed data @@ -697,7 +697,7 @@ set_file_error(const char *archive, int eof) time, # mod time of file (in dos format) date, # mod data of file (in dos format) crc, # crc checksum of the data - ) + ) Directories can be recognized by the trailing SEP in the name, data_size and file_offset are 0. @@ -1096,7 +1096,7 @@ unmarshal_code(const char *pathname, PyObject *data, time_t mtime) return code; } -/* Replace any occurances of "\r\n?" in the input string with "\n". +/* Replace any occurrences of "\r\n?" in the input string with "\n". This converts DOS and Mac line endings to Unix line endings. Also append a trailing "\n" to be compatible with PyParser_SimpleParseFile(). Returns a new reference. */ diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c index 153a86c..2a79d54 100644 --- a/Modules/zlibmodule.c +++ b/Modules/zlibmodule.c @@ -1,8 +1,9 @@ /* zlibmodule.c -- gzip-compatible data compression */ -/* See http://www.gzip.org/zlib/ */ +/* See http://zlib.net/ */ /* Windows users: read Python's PCbuild\readme.txt */ +#define PY_SSIZE_T_CLEAN #include "Python.h" #include "zlib.h" @@ -129,6 +130,71 @@ newcompobject(PyTypeObject *type) return self; } +static void +arrange_input_buffer(z_stream *zst, Py_ssize_t *remains) +{ + if ((size_t)*remains > UINT_MAX) { + zst->avail_in = UINT_MAX; + } else { + zst->avail_in = *remains; + } + *remains -= zst->avail_in; +} + +static Py_ssize_t +arrange_output_buffer_with_maximum(z_stream *zst, PyObject **buffer, + Py_ssize_t length, + Py_ssize_t max_length) +{ + Py_ssize_t occupied; + + if (*buffer == NULL) { + if (!(*buffer = PyBytes_FromStringAndSize(NULL, length))) + return -1; + occupied = 0; + } + else { + occupied = zst->next_out - (Byte *)PyBytes_AS_STRING(*buffer); + + if (length == occupied) { + Py_ssize_t new_length; + assert(length <= max_length); + /* can not scale the buffer over max_length */ + if (length == max_length) + return -2; + if (length <= (max_length >> 1)) + new_length = length << 1; + else + new_length = max_length; + if (_PyBytes_Resize(buffer, new_length) < 0) + return -1; + length = new_length; + } + } + + if ((size_t)(length - occupied) > UINT_MAX) { + zst->avail_out = UINT_MAX; + } else { + zst->avail_out = length - occupied; + } + zst->next_out = (Byte *)PyBytes_AS_STRING(*buffer) + occupied; + + return length; +} + +static Py_ssize_t +arrange_output_buffer(z_stream *zst, PyObject **buffer, Py_ssize_t length) +{ + Py_ssize_t ret; + + ret = arrange_output_buffer_with_maximum(zst, buffer, length, + PY_SSIZE_T_MAX); + if (ret == -2) + PyErr_NoMemory(); + + return ret; +} + PyDoc_STRVAR(compress__doc__, "compress(string[, level]) -- Returned compressed string.\n" "\n" @@ -137,44 +203,31 @@ PyDoc_STRVAR(compress__doc__, static PyObject * PyZlib_compress(PyObject *self, PyObject *args) { - PyObject *ReturnVal = NULL; - Byte *input, *output; - int length, level=Z_DEFAULT_COMPRESSION, err; + PyObject *RetVal = NULL; + Byte *ibuf; + Py_ssize_t ibuflen, obuflen = DEFAULTALLOC; + int level=Z_DEFAULT_COMPRESSION; + int err, flush; z_stream zst; /* require Python string object, optional 'level' arg */ - if (!PyArg_ParseTuple(args, "s#|i:compress", &input, &length, &level)) - return NULL; - - zst.avail_out = length + length/1000 + 12 + 1; - - output = (Byte*)malloc(zst.avail_out); - if (output == NULL) { - PyErr_SetString(PyExc_MemoryError, - "Can't allocate memory to compress data"); + if (!PyArg_ParseTuple(args, "s#|i:compress", &ibuf, &ibuflen, &level)) return NULL; - } - - /* Past the point of no return. From here on out, we need to make sure - we clean up mallocs & INCREFs. */ zst.zalloc = (alloc_func)NULL; zst.zfree = (free_func)Z_NULL; - zst.next_out = (Byte *)output; - zst.next_in = (Byte *)input; - zst.avail_in = length; + zst.next_in = ibuf; err = deflateInit(&zst, level); - switch(err) { - case(Z_OK): + switch (err) { + case Z_OK: break; - case(Z_MEM_ERROR): + case Z_MEM_ERROR: PyErr_SetString(PyExc_MemoryError, "Out of memory while compressing data"); goto error; - case(Z_STREAM_ERROR): - PyErr_SetString(ZlibError, - "Bad compression level"); + case Z_STREAM_ERROR: + PyErr_SetString(ZlibError, "Bad compression level"); goto error; default: deflateEnd(&zst); @@ -182,27 +235,45 @@ PyZlib_compress(PyObject *self, PyObject *args) goto error; } - Py_BEGIN_ALLOW_THREADS; - err = deflate(&zst, Z_FINISH); - Py_END_ALLOW_THREADS; + do { + arrange_input_buffer(&zst, &ibuflen); + flush = ibuflen == 0 ? Z_FINISH : Z_NO_FLUSH; - if (err != Z_STREAM_END) { - zlib_error(zst, err, "while compressing data"); - deflateEnd(&zst); - goto error; - } + do { + obuflen = arrange_output_buffer(&zst, &RetVal, obuflen); + if (obuflen < 0) { + deflateEnd(&zst); + goto error; + } + + Py_BEGIN_ALLOW_THREADS + err = deflate(&zst, flush); + Py_END_ALLOW_THREADS + + if (err == Z_STREAM_ERROR) { + deflateEnd(&zst); + zlib_error(zst, err, "while compressing data"); + goto error; + } + + } while (zst.avail_out == 0); + assert(zst.avail_in == 0); - err=deflateEnd(&zst); - if (err == Z_OK) - ReturnVal = PyString_FromStringAndSize((char *)output, - zst.total_out); + } while (flush != Z_FINISH); + assert(err == Z_STREAM_END); + + err = deflateEnd(&zst); + if (err == Z_OK) { + if (_PyBytes_Resize(&RetVal, zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)) < 0) + goto error; + return RetVal; + } else zlib_error(zst, err, "while finishing compression"); - error: - free(output); - - return ReturnVal; + Py_XDECREF(RetVal); + return NULL; } PyDoc_STRVAR(decompress__doc__, @@ -214,36 +285,32 @@ PyDoc_STRVAR(decompress__doc__, static PyObject * PyZlib_decompress(PyObject *self, PyObject *args) { - PyObject *result_str; - Byte *input; - int length, err; + PyObject *RetVal = NULL; + Byte *ibuf; + Py_ssize_t ibuflen; + int err, flush; int wsize=DEF_WBITS; Py_ssize_t r_strlen=DEFAULTALLOC; z_stream zst; if (!PyArg_ParseTuple(args, "s#|in:decompress", - &input, &length, &wsize, &r_strlen)) + &ibuf, &ibuflen, &wsize, &r_strlen)) return NULL; - if (r_strlen <= 0) + if (r_strlen <= 0) { r_strlen = 1; - - zst.avail_in = length; - zst.avail_out = r_strlen; - - if (!(result_str = PyString_FromStringAndSize(NULL, r_strlen))) - return NULL; + } zst.zalloc = (alloc_func)NULL; zst.zfree = (free_func)Z_NULL; - zst.next_out = (Byte *)PyString_AS_STRING(result_str); - zst.next_in = (Byte *)input; + zst.avail_in = 0; + zst.next_in = ibuf; err = inflateInit2(&zst, wsize); - switch(err) { - case(Z_OK): + switch (err) { + case Z_OK: break; - case(Z_MEM_ERROR): + case Z_MEM_ERROR: PyErr_SetString(PyExc_MemoryError, "Out of memory while decompressing data"); goto error; @@ -254,42 +321,46 @@ PyZlib_decompress(PyObject *self, PyObject *args) } do { - Py_BEGIN_ALLOW_THREADS - err=inflate(&zst, Z_FINISH); - Py_END_ALLOW_THREADS + arrange_input_buffer(&zst, &ibuflen); + flush = ibuflen == 0 ? Z_FINISH : Z_NO_FLUSH; - switch(err) { - case(Z_STREAM_END): - break; - case(Z_BUF_ERROR): - /* - * If there is at least 1 byte of room according to zst.avail_out - * and we get this error, assume that it means zlib cannot - * process the inflate call() due to an error in the data. - */ - if (zst.avail_out > 0) { - zlib_error(zst, err, "while decompressing data"); + do { + r_strlen = arrange_output_buffer(&zst, &RetVal, r_strlen); + if (r_strlen < 0) { inflateEnd(&zst); goto error; } - /* fall through */ - case(Z_OK): - /* need more memory */ - if (_PyString_Resize(&result_str, r_strlen << 1) < 0) { + + Py_BEGIN_ALLOW_THREADS + err = inflate(&zst, flush); + Py_END_ALLOW_THREADS + + switch (err) { + case Z_OK: /* fall through */ + case Z_BUF_ERROR: /* fall through */ + case Z_STREAM_END: + break; + case Z_MEM_ERROR: inflateEnd(&zst); + PyErr_SetString(PyExc_MemoryError, + "Out of memory while decompressing data"); + goto error; + default: + inflateEnd(&zst); + zlib_error(zst, err, "while decompressing data"); goto error; } - zst.next_out = (unsigned char *)PyString_AS_STRING(result_str) \ - + r_strlen; - zst.avail_out = r_strlen; - r_strlen = r_strlen << 1; - break; - default: - inflateEnd(&zst); - zlib_error(zst, err, "while decompressing data"); - goto error; - } - } while (err != Z_STREAM_END); + + } while (zst.avail_out == 0); + + } while (err != Z_STREAM_END && ibuflen != 0); + + + if (err != Z_STREAM_END) { + inflateEnd(&zst); + zlib_error(zst, err, "while decompressing data"); + goto error; + } err = inflateEnd(&zst); if (err != Z_OK) { @@ -297,11 +368,12 @@ PyZlib_decompress(PyObject *self, PyObject *args) goto error; } - _PyString_Resize(&result_str, zst.total_out); - return result_str; + _PyString_Resize(&RetVal, zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)); + return RetVal; error: - Py_XDECREF(result_str); + Py_XDECREF(RetVal); return NULL; } @@ -317,23 +389,23 @@ PyZlib_compressobj(PyObject *selfptr, PyObject *args) return NULL; self = newcompobject(&Comptype); - if (self==NULL) + if (self == NULL) return(NULL); self->zst.zalloc = (alloc_func)NULL; self->zst.zfree = (free_func)Z_NULL; self->zst.next_in = NULL; self->zst.avail_in = 0; err = deflateInit2(&self->zst, level, method, wbits, memLevel, strategy); - switch(err) { - case (Z_OK): + switch (err) { + case Z_OK: self->is_initialised = 1; - return (PyObject*)self; - case (Z_MEM_ERROR): + return (PyObject *)self; + case Z_MEM_ERROR: Py_DECREF(self); PyErr_SetString(PyExc_MemoryError, "Can't allocate memory for compression object"); return NULL; - case(Z_STREAM_ERROR): + case Z_STREAM_ERROR: Py_DECREF(self); PyErr_SetString(PyExc_ValueError, "Invalid initialization option"); return NULL; @@ -354,21 +426,21 @@ PyZlib_decompressobj(PyObject *selfptr, PyObject *args) self = newcompobject(&Decomptype); if (self == NULL) - return(NULL); + return NULL; self->zst.zalloc = (alloc_func)NULL; self->zst.zfree = (free_func)Z_NULL; self->zst.next_in = NULL; self->zst.avail_in = 0; err = inflateInit2(&self->zst, wbits); - switch(err) { - case (Z_OK): + switch (err) { + case Z_OK: self->is_initialised = 1; - return (PyObject*)self; - case(Z_STREAM_ERROR): + return (PyObject *)self; + case Z_STREAM_ERROR: Py_DECREF(self); PyErr_SetString(PyExc_ValueError, "Invalid initialization option"); return NULL; - case (Z_MEM_ERROR): + case Z_MEM_ERROR: Py_DECREF(self); PyErr_SetString(PyExc_MemoryError, "Can't allocate memory for decompression object"); @@ -411,58 +483,44 @@ PyDoc_STRVAR(comp_compress__doc__, static PyObject * PyZlib_objcompress(compobject *self, PyObject *args) { - int err, inplen; - Py_ssize_t length = DEFAULTALLOC; - PyObject *RetVal; - Byte *input; - unsigned long start_total_out; - - if (!PyArg_ParseTuple(args, "s#:compress", &input, &inplen)) - return NULL; + PyObject *RetVal = NULL; + Py_ssize_t ibuflen, obuflen = DEFAULTALLOC; + int err; - if (!(RetVal = PyString_FromStringAndSize(NULL, length))) + if (!PyArg_ParseTuple(args, "s#:compress", &self->zst.next_in, &ibuflen)) return NULL; ENTER_ZLIB - start_total_out = self->zst.total_out; - self->zst.avail_in = inplen; - self->zst.next_in = input; - self->zst.avail_out = length; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal); + do { + arrange_input_buffer(&self->zst, &ibuflen); - Py_BEGIN_ALLOW_THREADS - err = deflate(&(self->zst), Z_NO_FLUSH); - Py_END_ALLOW_THREADS + do { + obuflen = arrange_output_buffer(&self->zst, &RetVal, obuflen); + if (obuflen < 0) + goto error; - /* while Z_OK and the output buffer is full, there might be more output, - so extend the output buffer and try again */ - while (err == Z_OK && self->zst.avail_out == 0) { - if (_PyString_Resize(&RetVal, length << 1) < 0) - goto error; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal) \ - + length; - self->zst.avail_out = length; - length = length << 1; + Py_BEGIN_ALLOW_THREADS + err = deflate(&self->zst, Z_NO_FLUSH); + Py_END_ALLOW_THREADS - Py_BEGIN_ALLOW_THREADS - err = deflate(&(self->zst), Z_NO_FLUSH); - Py_END_ALLOW_THREADS - } - /* We will only get Z_BUF_ERROR if the output buffer was full but - there wasn't more output when we tried again, so it is not an error - condition. - */ - - if (err != Z_OK && err != Z_BUF_ERROR) { - zlib_error(self->zst, err, "while compressing"); - Py_DECREF(RetVal); - RetVal = NULL; - goto error; - } - _PyString_Resize(&RetVal, self->zst.total_out - start_total_out); + if (err == Z_STREAM_ERROR) { + zlib_error(self->zst, err, "while compressing data"); + goto error; + } + + } while (self->zst.avail_out == 0); + assert(self->zst.avail_in == 0); + + } while (ibuflen != 0); + + _PyString_Resize(&RetVal, self->zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)); + goto success; error: + Py_CLEAR(RetVal); + success: LEAVE_ZLIB return RetVal; } @@ -470,41 +528,46 @@ PyZlib_objcompress(compobject *self, PyObject *args) /* Helper for objdecompress() and unflush(). Saves any unconsumed input data in self->unused_data or self->unconsumed_tail, as appropriate. */ static int -save_unconsumed_input(compobject *self, int err) +save_unconsumed_input(compobject *self, Byte *input, Py_ssize_t inplen, + int err) { if (err == Z_STREAM_END) { /* The end of the compressed data has been reached. Store the leftover input data in self->unused_data. */ if (self->zst.avail_in > 0) { Py_ssize_t old_size = PyString_GET_SIZE(self->unused_data); - Py_ssize_t new_size; + Py_ssize_t new_size, left_size; PyObject *new_data; - if (self->zst.avail_in > PY_SSIZE_T_MAX - old_size) { + left_size = input + inplen - self->zst.next_in; + if (left_size > (PY_SSIZE_T_MAX - old_size)) { PyErr_NoMemory(); return -1; } - new_size = old_size + self->zst.avail_in; + new_size = old_size + left_size; new_data = PyString_FromStringAndSize(NULL, new_size); if (new_data == NULL) return -1; Py_MEMCPY(PyString_AS_STRING(new_data), PyString_AS_STRING(self->unused_data), old_size); Py_MEMCPY(PyString_AS_STRING(new_data) + old_size, - self->zst.next_in, self->zst.avail_in); + self->zst.next_in, left_size); Py_SETREF(self->unused_data, new_data); self->zst.avail_in = 0; } } + if (self->zst.avail_in > 0 || PyString_GET_SIZE(self->unconsumed_tail)) { /* This code handles two distinct cases: 1. Output limit was reached. Save leftover input in unconsumed_tail. 2. All input data was consumed. Clear unconsumed_tail. */ + Py_ssize_t left_size = input + inplen - self->zst.next_in; PyObject *new_data = PyString_FromStringAndSize( - (char *)self->zst.next_in, self->zst.avail_in); + (char *)self->zst.next_in, left_size); if (new_data == NULL) return -1; Py_SETREF(self->unconsumed_tail, new_data); } + return 0; } @@ -522,71 +585,69 @@ PyDoc_STRVAR(decomp_decompress__doc__, static PyObject * PyZlib_objdecompress(compobject *self, PyObject *args) { - int err, inplen, max_length = 0; - Py_ssize_t old_length, length = DEFAULTALLOC; - PyObject *RetVal; + int err = Z_OK; + Py_ssize_t inplen, max_length = 0; + Py_ssize_t ibuflen, obuflen = DEFAULTALLOC, hard_limit; + PyObject *RetVal = NULL; Byte *input; - unsigned long start_total_out; - if (!PyArg_ParseTuple(args, "s#|i:decompress", &input, + if (!PyArg_ParseTuple(args, "s#|n:decompress", &input, &inplen, &max_length)) return NULL; if (max_length < 0) { PyErr_SetString(PyExc_ValueError, "max_length must be greater than zero"); return NULL; - } + } else if (max_length == 0) + hard_limit = PY_SSIZE_T_MAX; + else + hard_limit = max_length; + + self->zst.next_in = input; + ibuflen = inplen; /* limit amount of data allocated to max_length */ - if (max_length && length > max_length) - length = max_length; - if (!(RetVal = PyString_FromStringAndSize(NULL, length))) - return NULL; + if (max_length && obuflen > max_length) + obuflen = max_length; ENTER_ZLIB - start_total_out = self->zst.total_out; - self->zst.avail_in = inplen; - self->zst.next_in = input; - self->zst.avail_out = length; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal); - - Py_BEGIN_ALLOW_THREADS - err = inflate(&(self->zst), Z_SYNC_FLUSH); - Py_END_ALLOW_THREADS - - /* While Z_OK and the output buffer is full, there might be more output. - So extend the output buffer and try again. - */ - while (err == Z_OK && self->zst.avail_out == 0) { - /* If max_length set, don't continue decompressing if we've already - reached the limit. - */ - if (max_length && length >= max_length) - break; + do { + arrange_input_buffer(&self->zst, &ibuflen); + + do { + obuflen = arrange_output_buffer_with_maximum(&self->zst, &RetVal, + obuflen, hard_limit); + if (obuflen == -2) { + if (max_length > 0) { + goto save; + } + PyErr_NoMemory(); + } + if (obuflen < 0) { + goto abort; + } - /* otherwise, ... */ - old_length = length; - length = length << 1; - if (max_length && length > max_length) - length = max_length; + Py_BEGIN_ALLOW_THREADS + err = inflate(&self->zst, Z_SYNC_FLUSH); + Py_END_ALLOW_THREADS + + switch (err) { + case Z_OK: /* fall through */ + case Z_BUF_ERROR: /* fall through */ + case Z_STREAM_END: + break; + default: + goto save; + } - if (_PyString_Resize(&RetVal, length) < 0) - goto error; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal) \ - + old_length; - self->zst.avail_out = length - old_length; + } while (self->zst.avail_out == 0); - Py_BEGIN_ALLOW_THREADS - err = inflate(&(self->zst), Z_SYNC_FLUSH); - Py_END_ALLOW_THREADS - } + } while (err != Z_STREAM_END && ibuflen != 0); - if (save_unconsumed_input(self, err) < 0) { - Py_DECREF(RetVal); - RetVal = NULL; - goto error; - } + save: + if (save_unconsumed_input(self, input, inplen, err) < 0) + goto abort; /* This is the logical place to call inflateEnd, but the old behaviour of only calling it on flush() is preserved. */ @@ -597,14 +658,16 @@ PyZlib_objdecompress(compobject *self, PyObject *args) not an error condition. */ zlib_error(self->zst, err, "while decompressing"); - Py_DECREF(RetVal); - RetVal = NULL; - goto error; + goto abort; } - _PyString_Resize(&RetVal, self->zst.total_out - start_total_out); + _PyString_Resize(&RetVal, self->zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)); + goto success; - error: + abort: + Py_CLEAR(RetVal); + success: LEAVE_ZLIB return RetVal; @@ -621,10 +684,10 @@ PyDoc_STRVAR(comp_flush__doc__, static PyObject * PyZlib_flush(compobject *self, PyObject *args) { - int err, length = DEFAULTALLOC; - PyObject *RetVal; + int err; + Py_ssize_t length = DEFAULTALLOC; + PyObject *RetVal = NULL; int flushmode = Z_FINISH; - unsigned long start_total_out; if (!PyArg_ParseTuple(args, "|i:flush", &flushmode)) return NULL; @@ -635,44 +698,37 @@ PyZlib_flush(compobject *self, PyObject *args) return PyString_FromStringAndSize(NULL, 0); } - if (!(RetVal = PyString_FromStringAndSize(NULL, length))) - return NULL; - ENTER_ZLIB - start_total_out = self->zst.total_out; self->zst.avail_in = 0; - self->zst.avail_out = length; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal); - Py_BEGIN_ALLOW_THREADS - err = deflate(&(self->zst), flushmode); - Py_END_ALLOW_THREADS - - /* while Z_OK and the output buffer is full, there might be more output, - so extend the output buffer and try again */ - while (err == Z_OK && self->zst.avail_out == 0) { - if (_PyString_Resize(&RetVal, length << 1) < 0) + do { + length = arrange_output_buffer(&self->zst, &RetVal, length); + if (length < 0) { + Py_CLEAR(RetVal); goto error; - self->zst.next_out = (unsigned char *)PyString_AS_STRING(RetVal) \ - + length; - self->zst.avail_out = length; - length = length << 1; + } Py_BEGIN_ALLOW_THREADS - err = deflate(&(self->zst), flushmode); + err = deflate(&self->zst, flushmode); Py_END_ALLOW_THREADS - } + + if (err == Z_STREAM_ERROR) { + zlib_error(self->zst, err, "while flushing"); + Py_CLEAR(RetVal); + goto error; + } + } while (self->zst.avail_out == 0); + assert(self->zst.avail_in == 0); /* If flushmode is Z_FINISH, we also have to call deflateEnd() to free various data structures. Note we should only get Z_STREAM_END when flushmode is Z_FINISH, but checking both for safety*/ if (err == Z_STREAM_END && flushmode == Z_FINISH) { - err = deflateEnd(&(self->zst)); + err = deflateEnd(&self->zst); if (err != Z_OK) { zlib_error(self->zst, err, "from deflateEnd()"); - Py_DECREF(RetVal); - RetVal = NULL; + Py_CLEAR(RetVal); goto error; } else @@ -682,18 +738,17 @@ PyZlib_flush(compobject *self, PyObject *args) but there wasn't more output when we tried again, so it is not an error condition. */ - } else if (err!=Z_OK && err!=Z_BUF_ERROR) { + } else if (err != Z_OK && err != Z_BUF_ERROR) { zlib_error(self->zst, err, "while flushing"); - Py_DECREF(RetVal); - RetVal = NULL; + Py_CLEAR(RetVal); goto error; } - _PyString_Resize(&RetVal, self->zst.total_out - start_total_out); + _PyString_Resize(&RetVal, self->zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)); error: LEAVE_ZLIB - return RetVal; } @@ -715,13 +770,13 @@ PyZlib_copy(compobject *self) */ ENTER_ZLIB err = deflateCopy(&retval->zst, &self->zst); - switch(err) { - case(Z_OK): + switch (err) { + case Z_OK: break; - case(Z_STREAM_ERROR): + case Z_STREAM_ERROR: PyErr_SetString(PyExc_ValueError, "Inconsistent stream state"); goto error; - case(Z_MEM_ERROR): + case Z_MEM_ERROR: PyErr_SetString(PyExc_MemoryError, "Can't allocate memory for compression object"); goto error; @@ -764,13 +819,13 @@ PyZlib_uncopy(compobject *self) */ ENTER_ZLIB err = inflateCopy(&retval->zst, &self->zst); - switch(err) { - case(Z_OK): + switch (err) { + case Z_OK: break; - case(Z_STREAM_ERROR): + case Z_STREAM_ERROR: PyErr_SetString(PyExc_ValueError, "Inconsistent stream state"); goto error; - case(Z_MEM_ERROR): + case Z_MEM_ERROR: PyErr_SetString(PyExc_MemoryError, "Can't allocate memory for decompression object"); goto error; @@ -807,73 +862,76 @@ PyDoc_STRVAR(decomp_flush__doc__, static PyObject * PyZlib_unflush(compobject *self, PyObject *args) { - int err, length = DEFAULTALLOC; - PyObject * retval = NULL; - unsigned long start_total_out; + Py_ssize_t length = DEFAULTALLOC; + int err, flush; + PyObject *RetVal = NULL; + Py_ssize_t ibuflen; - if (!PyArg_ParseTuple(args, "|i:flush", &length)) + if (!PyArg_ParseTuple(args, "|n:flush", &length)) return NULL; if (length <= 0) { PyErr_SetString(PyExc_ValueError, "length must be greater than zero"); return NULL; } - if (!(retval = PyString_FromStringAndSize(NULL, length))) - return NULL; - ENTER_ZLIB - start_total_out = self->zst.total_out; - self->zst.avail_in = PyString_GET_SIZE(self->unconsumed_tail); self->zst.next_in = (Byte *)PyString_AS_STRING(self->unconsumed_tail); - self->zst.avail_out = length; - self->zst.next_out = (Byte *)PyString_AS_STRING(retval); + ibuflen = PyString_GET_SIZE(self->unconsumed_tail); - Py_BEGIN_ALLOW_THREADS - err = inflate(&(self->zst), Z_FINISH); - Py_END_ALLOW_THREADS + do { + arrange_input_buffer(&self->zst, &ibuflen); + flush = ibuflen == 0 ? Z_FINISH : Z_NO_FLUSH; + + do { + length = arrange_output_buffer(&self->zst, &RetVal, length); + if (length < 0) + goto abort; + + Py_BEGIN_ALLOW_THREADS + err = inflate(&self->zst, flush); + Py_END_ALLOW_THREADS + + switch (err) { + case Z_OK: /* fall through */ + case Z_BUF_ERROR: /* fall through */ + case Z_STREAM_END: + break; + default: + goto save; + } - /* while Z_OK and the output buffer is full, there might be more output, - so extend the output buffer and try again */ - while ((err == Z_OK || err == Z_BUF_ERROR) && self->zst.avail_out == 0) { - if (_PyString_Resize(&retval, length << 1) < 0) - goto error; - self->zst.next_out = (Byte *)PyString_AS_STRING(retval) + length; - self->zst.avail_out = length; - length = length << 1; + } while (self->zst.avail_out == 0); - Py_BEGIN_ALLOW_THREADS - err = inflate(&(self->zst), Z_FINISH); - Py_END_ALLOW_THREADS - } + } while (err != Z_STREAM_END && ibuflen != 0); - if (save_unconsumed_input(self, err) < 0) { - Py_DECREF(retval); - retval = NULL; - goto error; - } + save: + if (save_unconsumed_input(self, + (Byte *)PyString_AS_STRING(self->unconsumed_tail), + PyString_GET_SIZE(self->unconsumed_tail), err) < 0) + goto abort; /* If flushmode is Z_FINISH, we also have to call deflateEnd() to free various data structures. Note we should only get Z_STREAM_END when flushmode is Z_FINISH */ if (err == Z_STREAM_END) { - err = inflateEnd(&(self->zst)); + err = inflateEnd(&self->zst); self->is_initialised = 0; if (err != Z_OK) { zlib_error(self->zst, err, "from inflateEnd()"); - Py_DECREF(retval); - retval = NULL; - goto error; + goto abort; } } - _PyString_Resize(&retval, self->zst.total_out - start_total_out); - -error: + _PyString_Resize(&RetVal, self->zst.next_out - + (Byte *)PyBytes_AS_STRING(RetVal)); + goto success; + abort: + Py_CLEAR(RetVal); + success: LEAVE_ZLIB - - return retval; + return RetVal; } static PyMethodDef comp_methods[] = @@ -943,15 +1001,24 @@ PyZlib_adler32(PyObject *self, PyObject *args) { unsigned int adler32val = 1; /* adler32(0L, Z_NULL, 0) */ Byte *buf; - int len, signed_val; + Py_ssize_t len; + int signed_val; if (!PyArg_ParseTuple(args, "s#|I:adler32", &buf, &len, &adler32val)) return NULL; + + /* Avoid truncation of length for very large buffers. adler32() takes + length as an unsigned int, which may be narrower than Py_ssize_t. */ + while ((size_t)len > UINT_MAX) { + adler32val = adler32(adler32val, buf, UINT_MAX); + buf += (size_t) UINT_MAX; + len -= (size_t) UINT_MAX; + } /* In Python 2.x we return a signed integer regardless of native platform * long size (the 32bit unsigned long is treated as 32-bit signed and sign * extended into a 64-bit long inside the integer object). 3.0 does the * right thing and returns unsigned. http://bugs.python.org/issue1202 */ - signed_val = adler32(adler32val, buf, len); + signed_val = adler32(adler32val, buf, (unsigned int)len); return PyInt_FromLong(signed_val); } @@ -966,15 +1033,24 @@ PyZlib_crc32(PyObject *self, PyObject *args) { unsigned int crc32val = 0; /* crc32(0L, Z_NULL, 0) */ Byte *buf; - int len, signed_val; + Py_ssize_t len; + int signed_val; if (!PyArg_ParseTuple(args, "s#|I:crc32", &buf, &len, &crc32val)) return NULL; + + /* Avoid truncation of length for very large buffers. crc32() takes + length as an unsigned int, which may be narrower than Py_ssize_t. */ + while ((size_t)len > UINT_MAX) { + crc32val = crc32(crc32val, buf, UINT_MAX); + buf += (size_t) UINT_MAX; + len -= (size_t) UINT_MAX; + } /* In Python 2.x we return a signed integer regardless of native platform * long size (the 32bit unsigned long is treated as 32-bit signed and sign * extended into a 64-bit long inside the integer object). 3.0 does the * right thing and returns unsigned. http://bugs.python.org/issue1202 */ - signed_val = crc32(crc32val, buf, len); + signed_val = crc32(crc32val, buf, (unsigned int)len); return PyInt_FromLong(signed_val); } diff --git a/Objects/abstract.c b/Objects/abstract.c index 3a50b73..aa92ea9 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -1641,7 +1641,7 @@ PyNumber_Int(PyObject *o) } return res; } - if (PyInt_Check(o)) { /* A int subclass without nb_int */ + if (PyInt_Check(o)) { /* An int subclass without nb_int */ PyIntObject *io = (PyIntObject*)o; return PyInt_FromLong(io->ob_ival); } @@ -2211,21 +2211,22 @@ PySequence_Tuple(PyObject *v) break; } if (j >= n) { - Py_ssize_t oldn = n; + size_t newn = (size_t)n; /* The over-allocation strategy can grow a bit faster than for lists because unlike lists the over-allocation isn't permanent -- we reclaim the excess before the end of this routine. So, grow by ten and then add 25%. */ - n += 10; - n += n >> 2; - if (n < oldn) { + newn += 10u; + newn += newn >> 2; + if (newn > PY_SSIZE_T_MAX) { /* Check for overflow */ PyErr_NoMemory(); Py_DECREF(item); goto Fail; } + n = (Py_ssize_t)newn; if (_PyTuple_Resize(&result, n) != 0) { Py_DECREF(item); goto Fail; diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index a90bdeb..9e3cead 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -273,7 +273,6 @@ PyByteArray_Resize(PyObject *self, Py_ssize_t size) PyObject * PyByteArray_Concat(PyObject *a, PyObject *b) { - Py_ssize_t size; Py_buffer va, vb; PyByteArrayObject *result = NULL; @@ -286,13 +285,13 @@ PyByteArray_Concat(PyObject *a, PyObject *b) goto done; } - size = va.len + vb.len; - if (size < 0) { - PyErr_NoMemory(); - goto done; + if (va.len > PY_SSIZE_T_MAX - vb.len) { + PyErr_NoMemory(); + goto done; } - result = (PyByteArrayObject *) PyByteArray_FromStringAndSize(NULL, size); + result = (PyByteArrayObject *) \ + PyByteArray_FromStringAndSize(NULL, va.len + vb.len); if (result != NULL) { memcpy(result->ob_bytes, va.buf, va.len); memcpy(result->ob_bytes + va.len, vb.buf, vb.len); @@ -328,11 +327,11 @@ bytearray_iconcat(PyByteArrayObject *self, PyObject *other) } mysize = Py_SIZE(self); - size = mysize + vo.len; - if (size < 0) { + if (mysize > PY_SSIZE_T_MAX - vo.len) { PyBuffer_Release(&vo); return PyErr_NoMemory(); } + size = mysize + vo.len; if (size < self->ob_alloc) { Py_SIZE(self) = size; self->ob_bytes[Py_SIZE(self)] = '\0'; /* Trailing null byte */ @@ -357,9 +356,9 @@ bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count) if (count < 0) count = 0; mysize = Py_SIZE(self); - size = mysize * count; - if (count != 0 && size / count != mysize) + if (count != 0 && mysize > PY_SSIZE_T_MAX / count) return PyErr_NoMemory(); + size = mysize * count; result = (PyByteArrayObject *)PyByteArray_FromStringAndSize(NULL, size); if (result != NULL && size != 0) { if (mysize == 1) @@ -382,9 +381,9 @@ bytearray_irepeat(PyByteArrayObject *self, Py_ssize_t count) if (count < 0) count = 0; mysize = Py_SIZE(self); - size = mysize * count; - if (count != 0 && size / count != mysize) + if (count != 0 && mysize > PY_SSIZE_T_MAX / count) return PyErr_NoMemory(); + size = mysize * count; if (size < self->ob_alloc) { Py_SIZE(self) = size; self->ob_bytes[Py_SIZE(self)] = '\0'; /* Trailing null byte */ @@ -1991,7 +1990,7 @@ replace(PyByteArrayObject *self, } if (to_len == 0) { - /* delete all occurances of 'from' bytes */ + /* delete all occurrences of 'from' bytes */ if (from_len == 1) { return replace_delete_single_character( self, from_s[0], maxcount); @@ -2323,7 +2322,17 @@ bytearray_extend(PyByteArrayObject *self, PyObject *arg) Py_DECREF(item); if (len >= buf_size) { - buf_size = len + (len >> 1) + 1; + Py_ssize_t addition; + if (len == PY_SSIZE_T_MAX) { + Py_DECREF(it); + Py_DECREF(bytearray_obj); + return PyErr_NoMemory(); + } + addition = len >> 1; + if (addition > PY_SSIZE_T_MAX - len - 1) + buf_size = PY_SSIZE_T_MAX; + else + buf_size = len + addition + 1; if (PyByteArray_Resize((PyObject *)bytearray_obj, buf_size) < 0) { Py_DECREF(it); Py_DECREF(bytearray_obj); @@ -2390,7 +2399,7 @@ bytearray_pop(PyByteArrayObject *self, PyObject *args) PyDoc_STRVAR(remove__doc__, "B.remove(int) -> None\n\ \n\ -Remove the first occurance of a value in B."); +Remove the first occurrence of a value in B."); static PyObject * bytearray_remove(PyByteArrayObject *self, PyObject *arg) { diff --git a/Objects/classobject.c b/Objects/classobject.c index 636d178..738e613 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -2256,7 +2256,7 @@ PyMethod_New(PyObject *func, PyObject *self, PyObject *klass) im = free_list; if (im != NULL) { free_list = (PyMethodObject *)(im->im_self); - PyObject_INIT(im, &PyMethod_Type); + (void)PyObject_INIT(im, &PyMethod_Type); numfree--; } else { diff --git a/Objects/codeobject.c b/Objects/codeobject.c index c104098..a66aa69 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -8,17 +8,20 @@ /* all_name_chars(s): true iff all chars in s are valid NAME_CHARS */ static int -all_name_chars(unsigned char *s) +all_name_chars(PyObject *o) { static char ok_name_char[256]; - static unsigned char *name_chars = (unsigned char *)NAME_CHARS; + static const unsigned char *name_chars = (unsigned char *)NAME_CHARS; + const unsigned char *s, *e; if (ok_name_char[*name_chars] == 0) { - unsigned char *p; + const unsigned char *p; for (p = name_chars; *p; p++) ok_name_char[*p] = 1; } - while (*s) { + s = (unsigned char *)PyString_AS_STRING(o); + e = s + PyString_GET_SIZE(o); + while (s != e) { if (ok_name_char[*s++] == 0) return 0; } @@ -39,6 +42,52 @@ intern_strings(PyObject *tuple) } } +/* Intern selected string constants */ +static int +intern_string_constants(PyObject *tuple) +{ + int modified = 0; + Py_ssize_t i; + + for (i = PyTuple_GET_SIZE(tuple); --i >= 0; ) { + PyObject *v = PyTuple_GET_ITEM(tuple, i); + if (PyString_CheckExact(v)) { + if (all_name_chars(v)) { + PyObject *w = v; + PyString_InternInPlace(&v); + if (w != v) { + PyTuple_SET_ITEM(tuple, i, v); + modified = 1; + } + } + } + else if (PyTuple_CheckExact(v)) { + intern_string_constants(v); + } + else if (PyFrozenSet_CheckExact(v)) { + PyObject *w = v; + PyObject *tmp = PySequence_Tuple(v); + if (tmp == NULL) { + PyErr_Clear(); + continue; + } + if (intern_string_constants(tmp)) { + v = PyFrozenSet_New(tmp); + if (v == NULL) { + PyErr_Clear(); + } + else { + PyTuple_SET_ITEM(tuple, i, v); + Py_DECREF(w); + modified = 1; + } + } + Py_DECREF(tmp); + } + } + return modified; +} + PyCodeObject * PyCode_New(int argcount, int nlocals, int stacksize, int flags, @@ -48,7 +97,6 @@ PyCode_New(int argcount, int nlocals, int stacksize, int flags, PyObject *lnotab) { PyCodeObject *co; - Py_ssize_t i; /* Check argument types */ if (argcount < 0 || nlocals < 0 || code == NULL || @@ -68,15 +116,7 @@ PyCode_New(int argcount, int nlocals, int stacksize, int flags, intern_strings(varnames); intern_strings(freevars); intern_strings(cellvars); - /* Intern selected string constants */ - for (i = PyTuple_Size(consts); --i >= 0; ) { - PyObject *v = PyTuple_GetItem(consts, i); - if (!PyString_Check(v)) - continue; - if (!all_name_chars((unsigned char *)PyString_AS_STRING(v))) - continue; - PyString_InternInPlace(&PyTuple_GET_ITEM(consts, i)); - } + intern_string_constants(consts); co = PyObject_NEW(PyCodeObject, &PyCode_Type); if (co != NULL) { co->co_argcount = argcount; @@ -690,7 +730,7 @@ _PyCode_CheckLineNumber(PyCodeObject* co, int lasti, PyAddrPair *bounds) /* possible optimization: if f->f_lasti == instr_ub (likely to be a common case) then we already know instr_lb -- if we stored the matching value of p - somwhere we could skip the first while loop. */ + somewhere we could skip the first while loop. */ /* See lnotab_notes.txt for the description of co_lnotab. A point to remember: increments to p diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 9e97d1b..ef18e3f 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -239,7 +239,7 @@ PyComplex_FromCComplex(Py_complex cval) op = (PyComplexObject *) PyObject_MALLOC(sizeof(PyComplexObject)); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT(op, &PyComplex_Type); + (void)PyObject_INIT(op, &PyComplex_Type); op->cval = cval; return (PyObject *) op; } @@ -495,20 +495,20 @@ to_complex(PyObject **pobj, Py_complex *pc) pc->real = pc->imag = 0.0; if (PyInt_Check(obj)) { - pc->real = PyInt_AS_LONG(obj); - return 0; + pc->real = PyInt_AS_LONG(obj); + return 0; } if (PyLong_Check(obj)) { - pc->real = PyLong_AsDouble(obj); - if (pc->real == -1.0 && PyErr_Occurred()) { - *pobj = NULL; - return -1; - } - return 0; + pc->real = PyLong_AsDouble(obj); + if (pc->real == -1.0 && PyErr_Occurred()) { + *pobj = NULL; + return -1; + } + return 0; } if (PyFloat_Check(obj)) { - pc->real = PyFloat_AsDouble(obj); - return 0; + pc->real = PyFloat_AsDouble(obj); + return 0; } Py_INCREF(Py_NotImplemented); *pobj = Py_NotImplemented; @@ -909,25 +909,25 @@ complex__format__(PyObject* self, PyObject* args) PyObject *format_spec; if (!PyArg_ParseTuple(args, "O:__format__", &format_spec)) - return NULL; + return NULL; if (PyBytes_Check(format_spec)) - return _PyComplex_FormatAdvanced(self, - PyBytes_AS_STRING(format_spec), - PyBytes_GET_SIZE(format_spec)); + return _PyComplex_FormatAdvanced(self, + PyBytes_AS_STRING(format_spec), + PyBytes_GET_SIZE(format_spec)); if (PyUnicode_Check(format_spec)) { - /* Convert format_spec to a str */ - PyObject *result; - PyObject *str_spec = PyObject_Str(format_spec); + /* Convert format_spec to a str */ + PyObject *result; + PyObject *str_spec = PyObject_Str(format_spec); - if (str_spec == NULL) - return NULL; + if (str_spec == NULL) + return NULL; - result = _PyComplex_FormatAdvanced(self, - PyBytes_AS_STRING(str_spec), - PyBytes_GET_SIZE(str_spec)); + result = _PyComplex_FormatAdvanced(self, + PyBytes_AS_STRING(str_spec), + PyBytes_GET_SIZE(str_spec)); - Py_DECREF(str_spec); - return result; + Py_DECREF(str_spec); + return result; } PyErr_SetString(PyExc_TypeError, "__format__ requires str or unicode"); return NULL; diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 3fc0e13..1929777 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -1640,7 +1640,7 @@ UnicodeEncodeError_str(PyObject *self) return PyUnicode_FromString(""); /* Get reason and encoding as strings, which they might not be if - they've been modified after we were contructed. */ + they've been modified after we were constructed. */ reason_str = PyObject_Str(uself->reason); if (reason_str == NULL) goto done; @@ -1729,7 +1729,7 @@ UnicodeDecodeError_str(PyObject *self) return PyUnicode_FromString(""); /* Get reason and encoding as strings, which they might not be if - they've been modified after we were contructed. */ + they've been modified after we were constructed. */ reason_str = PyObject_Str(uself->reason); if (reason_str == NULL) goto done; @@ -1830,7 +1830,7 @@ UnicodeTranslateError_str(PyObject *self) return PyUnicode_FromString(""); /* Get reason as a string, which it might not be if it's been - modified after we were contructed. */ + modified after we were constructed. */ reason_str = PyObject_Str(uself->reason); if (reason_str == NULL) goto done; diff --git a/Objects/fileobject.c b/Objects/fileobject.c index b29da8a..a7d64ba 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -2394,7 +2394,8 @@ file_init(PyObject *self, PyObject *args, PyObject *kwds) #ifdef MS_WINDOWS if (PyArg_ParseTupleAndKeywords(args, kwds, "U|si:file", - kwlist, &po, &mode, &bufsize)) { + kwlist, &po, &mode, &bufsize) && + wcslen(PyUnicode_AS_UNICODE(po)) == (size_t)PyUnicode_GET_SIZE(po)) { wideargument = 1; if (fill_file_fields(foself, NULL, po, mode, fclose) == NULL) diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 82cb28d..801f286 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -149,7 +149,7 @@ PyFloat_FromDouble(double fval) /* Inline PyObject_New */ op = free_list; free_list = (PyFloatObject *)Py_TYPE(op); - PyObject_INIT(op, &PyFloat_Type); + (void)PyObject_INIT(op, &PyFloat_Type); op->ob_fval = fval; return (PyObject *) op; } diff --git a/Objects/funcobject.c b/Objects/funcobject.c index 0e76a44..c62de9c 100644 --- a/Objects/funcobject.c +++ b/Objects/funcobject.c @@ -590,8 +590,9 @@ PyTypeObject PyFunction_Type = { To declare a class method, use this idiom: class C: - def f(cls, arg1, arg2, ...): ... - f = classmethod(f) + @classmethod + def f(cls, arg1, arg2, ...): + ... It can be called either on the class (e.g. C.f()) or on an instance (e.g. C().f()); the instance is ignored except for its class. @@ -676,8 +677,9 @@ just like an instance method receives the instance.\n\ To declare a class method, use this idiom:\n\ \n\ class C:\n\ - def f(cls, arg1, arg2, ...): ...\n\ - f = classmethod(f)\n\ + @classmethod\n\ + def f(cls, arg1, arg2, ...):\n\ + ...\n\ \n\ It can be called either on the class (e.g. C.f()) or on an instance\n\ (e.g. C().f()). The instance is ignored except for its class.\n\ @@ -748,8 +750,9 @@ PyClassMethod_New(PyObject *callable) To declare a static method, use this idiom: class C: - def f(arg1, arg2, ...): ... - f = staticmethod(f) + @staticmethod + def f(arg1, arg2, ...): + .... It can be called either on the class (e.g. C.f()) or on an instance (e.g. C().f()); the instance is ignored except for its class. @@ -828,8 +831,9 @@ A static method does not receive an implicit first argument.\n\ To declare a static method, use this idiom:\n\ \n\ class C:\n\ - def f(arg1, arg2, ...): ...\n\ - f = staticmethod(f)\n\ + @staticmethod\n\ + def f(arg1, arg2, ...):\n\ + ...\n\ \n\ It can be called either on the class (e.g. C.f()) or on an instance\n\ (e.g. C().f()). The instance is ignored except for its class.\n\ diff --git a/Objects/intobject.c b/Objects/intobject.c index 654d2fe..0c5ea65 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -107,7 +107,7 @@ PyInt_FromLong(long ival) /* Inline PyObject_New */ v = free_list; free_list = (PyIntObject *)Py_TYPE(v); - PyObject_INIT(v, &PyInt_Type); + (void)PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; return (PyObject *) v; } @@ -139,13 +139,6 @@ int_dealloc(PyIntObject *v) Py_TYPE(v)->tp_free((PyObject *)v); } -static void -int_free(PyIntObject *v) -{ - Py_TYPE(v) = (struct _typeobject *)free_list; - free_list = v; -} - long PyInt_AsLong(register PyObject *op) { @@ -1451,7 +1444,6 @@ PyTypeObject PyInt_Type = { 0, /* tp_init */ 0, /* tp_alloc */ int_new, /* tp_new */ - (freefunc)int_free, /* tp_free */ }; int @@ -1461,12 +1453,12 @@ _PyInt_Init(void) int ival; #if NSMALLNEGINTS + NSMALLPOSINTS > 0 for (ival = -NSMALLNEGINTS; ival < NSMALLPOSINTS; ival++) { - if (!free_list && (free_list = fill_free_list()) == NULL) - return 0; + if (!free_list && (free_list = fill_free_list()) == NULL) + return 0; /* PyObject_New is inlined */ v = free_list; free_list = (PyIntObject *)Py_TYPE(v); - PyObject_INIT(v, &PyInt_Type); + (void)PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; small_ints[ival + NSMALLNEGINTS] = v; } diff --git a/Objects/listobject.c b/Objects/listobject.c index c414620..8ee86c6 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -669,14 +669,17 @@ list_ass_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v) item = a->ob_item; /* recycle the items that we are about to remove */ s = norig * sizeof(PyObject *); - if (s > sizeof(recycle_on_stack)) { - recycle = (PyObject **)PyMem_MALLOC(s); - if (recycle == NULL) { - PyErr_NoMemory(); - goto Error; + /* If norig == 0, item might be NULL, in which case we may not memcpy from it. */ + if (s) { + if (s > sizeof(recycle_on_stack)) { + recycle = (PyObject **)PyMem_MALLOC(s); + if (recycle == NULL) { + PyErr_NoMemory(); + goto Error; + } } + memcpy(recycle, &item[ilow], s); } - memcpy(recycle, &item[ilow], s); if (d < 0) { /* Delete -d items */ memmove(&item[ihigh+d], &item[ihigh], diff --git a/Objects/listsort.txt b/Objects/listsort.txt index 08fef96..c6fcb34 100644 --- a/Objects/listsort.txt +++ b/Objects/listsort.txt @@ -694,7 +694,7 @@ search doesn't reduce the quadratic data movement costs. But in CPython's case, comparisons are extraordinarily expensive compared to moving data, and the details matter. Moving objects is just copying -pointers. Comparisons can be arbitrarily expensive (can invoke arbitary +pointers. Comparisons can be arbitrarily expensive (can invoke arbitrary user-supplied Python code), but even in simple cases (like 3 < 4) _all_ decisions are made at runtime: what's the type of the left comparand? the type of the right? do they need to be coerced to a common type? where's the diff --git a/Objects/longobject.c b/Objects/longobject.c index 6427f42..768a92a 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -211,7 +211,7 @@ PyLong_FromDouble(double dval) /* Checking for overflow in PyLong_AsLong is a PITA since C doesn't define * anything about what happens when a signed integer operation overflows, * and some compilers think they're doing you a favor by being "clever" - * then. The bit pattern for the largest postive signed long is + * then. The bit pattern for the largest positive signed long is * (unsigned long)LONG_MAX, and for the smallest negative signed long * it is abs(LONG_MIN), which we could write -(unsigned long)LONG_MIN. * However, some other compilers warn about applying unary minus to an @@ -556,10 +556,10 @@ _PyLong_FromByteArray(const unsigned char* bytes, size_t n, size_t i; const unsigned char* p = pendbyte; const int pincr = -incr; /* search MSB to LSB */ - const unsigned char insignficant = is_signed ? 0xff : 0x00; + const unsigned char insignificant = is_signed ? 0xff : 0x00; for (i = 0; i < n; ++i, p += pincr) { - if (*p != insignficant) + if (*p != insignificant) break; } numsignificantbytes = n - i; @@ -3315,9 +3315,9 @@ long_true_divide(PyObject *v, PyObject *w) /* Round by directly modifying the low digit of x. */ mask = (digit)1 << (extra_bits - 1); low = x->ob_digit[0] | inexact; - if (low & mask && low & (3*mask-1)) + if ((low & mask) && (low & (3U*mask-1U))) low += mask; - x->ob_digit[0] = low & ~(mask-1U); + x->ob_digit[0] = low & ~(2U*mask-1U); /* Convert x to a double dx; the conversion is exact. */ dx = x->ob_digit[--x_size]; @@ -3710,11 +3710,17 @@ long_lshift(PyObject *v, PyObject *w) shiftby = PyLong_AsSsize_t((PyObject *)b); if (shiftby == -1L && PyErr_Occurred()) - goto lshift_error; + goto out; if (shiftby < 0) { PyErr_SetString(PyExc_ValueError, "negative shift count"); - goto lshift_error; + goto out; } + + if (Py_SIZE(a) == 0) { + z = (PyLongObject *)PyLong_FromLong(0); + goto out; + } + /* wordshift, remshift = divmod(shiftby, PyLong_SHIFT) */ wordshift = shiftby / PyLong_SHIFT; remshift = shiftby - wordshift * PyLong_SHIFT; @@ -3725,7 +3731,7 @@ long_lshift(PyObject *v, PyObject *w) ++newsize; z = _PyLong_New(newsize); if (z == NULL) - goto lshift_error; + goto out; if (a->ob_size < 0) z->ob_size = -(z->ob_size); for (i = 0; i < wordshift; i++) @@ -3741,7 +3747,7 @@ long_lshift(PyObject *v, PyObject *w) else assert(!accum); z = long_normalize(z); - lshift_error: + out: Py_DECREF(a); Py_DECREF(b); return (PyObject *) z; diff --git a/Objects/methodobject.c b/Objects/methodobject.c index 0b60ca3..c1a99ab 100644 --- a/Objects/methodobject.c +++ b/Objects/methodobject.c @@ -20,7 +20,7 @@ PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) op = free_list; if (op != NULL) { free_list = (PyCFunctionObject *)(op->m_self); - PyObject_INIT(op, &PyCFunction_Type); + (void)PyObject_INIT(op, &PyCFunction_Type); numfree--; } else { diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 5203f40..baa8dee 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -30,11 +30,11 @@ get_len_of_range(long lo, long hi, long step) ---------------------------------------------------------------*/ assert(step != 0); if (step > 0 && lo < hi) - return 1UL + (hi - 1UL - lo) / step; + return 1UL + (hi - 1UL - lo) / step; else if (step < 0 && lo > hi) - return 1UL + (lo - 1UL - hi) / (0UL - step); + return 1UL + (lo - 1UL - hi) / (0UL - step); else - return 0UL; + return 0UL; } /* Return a stop value suitable for reconstructing the xrange from diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h index 1ac6277..70f574c 100644 --- a/Objects/stringlib/formatter.h +++ b/Objects/stringlib/formatter.h @@ -141,7 +141,7 @@ typedef struct { #if 0 -/* Occassionally useful for debugging. Should normally be commented out. */ +/* Occasionally useful for debugging. Should normally be commented out. */ static void DEBUG_PRINT_FORMAT_SPEC(InternalFormatSpec *format) { diff --git a/Objects/stringobject.c b/Objects/stringobject.c index f2db6da..4e38735 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -88,7 +88,7 @@ PyString_FromStringAndSize(const char *str, Py_ssize_t size) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; if (str != NULL) @@ -143,7 +143,7 @@ PyString_FromString(const char *str) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; Py_MEMCPY(op->ob_sval, str, size+1); @@ -901,7 +901,7 @@ string_print(PyStringObject *op, FILE *fp, int flags) fputc(quote, fp); for (i = 0; i < str_len; i++) { /* Since strings are immutable and the caller should have a - reference, accessing the interal buffer should not be an issue + reference, accessing the internal buffer should not be an issue with the GIL released. */ c = op->ob_sval[i]; if (c == quote || c == '\\') @@ -1040,7 +1040,6 @@ string_concat(register PyStringObject *a, register PyObject *bb) Py_INCREF(a); return (PyObject *)a; } - size = Py_SIZE(a) + Py_SIZE(b); /* Check that string sizes are not negative, to prevent an overflow in cases where we are passed incorrectly-created strings with negative lengths (due to a bug in other code). @@ -1051,6 +1050,7 @@ string_concat(register PyStringObject *a, register PyObject *bb) "strings are too large to concat"); return NULL; } + size = Py_SIZE(a) + Py_SIZE(b); /* Inline PyObject_NewVar */ if (size > PY_SSIZE_T_MAX - PyStringObject_SIZE) { @@ -1061,7 +1061,7 @@ string_concat(register PyStringObject *a, register PyObject *bb) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + size); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; Py_MEMCPY(op->ob_sval, a->ob_sval, Py_SIZE(a)); @@ -1081,15 +1081,15 @@ string_repeat(register PyStringObject *a, register Py_ssize_t n) size_t nbytes; if (n < 0) n = 0; - /* watch out for overflows: the size can overflow int, + /* watch out for overflows: the size can overflow Py_ssize_t, * and the # of bytes needed can overflow size_t */ - size = Py_SIZE(a) * n; - if (n && size / n != Py_SIZE(a)) { + if (n && Py_SIZE(a) > PY_SSIZE_T_MAX / n) { PyErr_SetString(PyExc_OverflowError, "repeated string is too long"); return NULL; } + size = Py_SIZE(a) * n; if (size == Py_SIZE(a) && PyString_CheckExact(a)) { Py_INCREF(a); return (PyObject *)a; @@ -1103,7 +1103,7 @@ string_repeat(register PyStringObject *a, register Py_ssize_t n) op = (PyStringObject *)PyObject_MALLOC(PyStringObject_SIZE + nbytes); if (op == NULL) return PyErr_NoMemory(); - PyObject_INIT_VAR(op, &PyString_Type, size); + (void)PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; op->ob_sval[size] = '\0'; @@ -2775,7 +2775,7 @@ replace(PyStringObject *self, } if (to_len == 0) { - /* delete all occurances of 'from' string */ + /* delete all occurrences of 'from' string */ if (from_len == 1) { return replace_delete_single_character( self, from_s[0], maxcount); @@ -3287,8 +3287,8 @@ string_zfill(PyStringObject *self, PyObject *args) } else return PyString_FromStringAndSize( - PyString_AS_STRING(self), - PyString_GET_SIZE(self) + PyString_AS_STRING(self), + PyString_GET_SIZE(self) ); } @@ -4006,26 +4006,30 @@ PyObject* _PyString_FormatLong(PyObject *val, int flags, int prec, int type, char **pbuf, int *plen) { - PyObject *result = NULL; + PyObject *result = NULL, *r1; + const char *s; char *buf; Py_ssize_t i; int sign; /* 1 if '-', else 0 */ int len; /* number of characters */ Py_ssize_t llen; - int numdigits; /* len == numnondigits + numdigits */ - int numnondigits = 0; + int numdigits; /* len == numnondigits + skipped + numdigits */ + int numnondigits, skipped, filled; + const char *method; switch (type) { case 'd': case 'u': + method = "str"; result = Py_TYPE(val)->tp_str(val); break; case 'o': + method = "oct"; result = Py_TYPE(val)->tp_as_number->nb_oct(val); break; case 'x': case 'X': - numnondigits = 2; + method = "hex"; result = Py_TYPE(val)->tp_as_number->nb_hex(val); break; default: @@ -4034,97 +4038,109 @@ _PyString_FormatLong(PyObject *val, int flags, int prec, int type, if (!result) return NULL; - buf = PyString_AsString(result); - if (!buf) { + if (PyString_AsStringAndSize(result, (char **)&s, &llen) < 0) { Py_DECREF(result); return NULL; } - - /* To modify the string in-place, there can only be one reference. */ - if (Py_REFCNT(result) != 1) { - PyErr_BadInternalCall(); - return NULL; - } - llen = PyString_Size(result); if (llen > INT_MAX) { PyErr_SetString(PyExc_ValueError, "string too large in _PyString_FormatLong"); + Py_DECREF(result); return NULL; } len = (int)llen; - if (buf[len-1] == 'L') { + if (len > 0 && s[len-1] == 'L') { --len; - buf[len] = '\0'; - } - sign = buf[0] == '-'; - numnondigits += sign; - numdigits = len - numnondigits; - assert(numdigits > 0); - - /* Get rid of base marker unless F_ALT */ - if ((flags & F_ALT) == 0) { - /* Need to skip 0x, 0X or 0. */ - int skipped = 0; - switch (type) { - case 'o': - assert(buf[sign] == '0'); - /* If 0 is only digit, leave it alone. */ - if (numdigits > 1) { - skipped = 1; - --numdigits; - } - break; - case 'x': - case 'X': - assert(buf[sign] == '0'); - assert(buf[sign + 1] == 'x'); + if (len == 0) + goto error; + } + sign = s[0] == '-'; + numnondigits = sign; + + /* Need to skip 0x, 0X or 0. */ + skipped = 0; + switch (type) { + case 'o': + if (s[sign] != '0') + goto error; + /* If 0 is only digit, leave it alone. */ + if ((flags & F_ALT) == 0 && len - sign > 1) + skipped = 1; + break; + case 'x': + case 'X': + if (s[sign] != '0' || (s[sign + 1] != 'x' && s[sign + 1] != 'X')) + goto error; + if ((flags & F_ALT) == 0) skipped = 2; - numnondigits -= 2; - break; - } - if (skipped) { - buf += skipped; - len -= skipped; - if (sign) - buf[0] = '-'; - } - assert(len == numnondigits + numdigits); - assert(numdigits > 0); + else + numnondigits += 2; + break; } + numdigits = len - numnondigits - skipped; + if (numdigits <= 0) + goto error; + + filled = prec - numdigits; + if (filled < 0) + filled = 0; + len = numnondigits + filled + numdigits; - /* Fill with leading zeroes to meet minimum width. */ - if (prec > numdigits) { - PyObject *r1 = PyString_FromStringAndSize(NULL, - numnondigits + prec); - char *b1; - if (!r1) { - Py_DECREF(result); + /* To modify the string in-place, there can only be one reference. */ + if (skipped >= filled && + PyString_CheckExact(result) && + Py_REFCNT(result) == 1 && + !PyString_CHECK_INTERNED(result)) + { + r1 = NULL; + buf = (char *)s + skipped - filled; + } + else { + r1 = result; + result = PyString_FromStringAndSize(NULL, len); + if (!result) { + Py_DECREF(r1); return NULL; } - b1 = PyString_AS_STRING(r1); - for (i = 0; i < numnondigits; ++i) - *b1++ = *buf++; - for (i = 0; i < prec - numdigits; i++) - *b1++ = '0'; - for (i = 0; i < numdigits; i++) - *b1++ = *buf++; - *b1 = '\0'; - Py_DECREF(result); - result = r1; buf = PyString_AS_STRING(result); - len = numnondigits + prec; } + for (i = numnondigits; --i >= 0;) + buf[i] = s[i]; + buf += numnondigits; + s += numnondigits + skipped; + for (i = 0; i < filled; i++) + *buf++ = '0'; + if (r1 == NULL) { + assert(buf == s); + buf += numdigits; + } + else { + for (i = 0; i < numdigits; i++) + *buf++ = *s++; + } + *buf = '\0'; + buf -= len; + Py_XDECREF(r1); + /* Fix up case for hex conversions. */ if (type == 'X') { /* Need to convert all lower case letters to upper case. and need to convert 0x to 0X (and -0x to -0X). */ - for (i = 0; i < len; i++) - if (buf[i] >= 'a' && buf[i] <= 'x') + for (i = 0; i < len; i++) { + if (buf[i] >= 'a' && buf[i] <= 'z') buf[i] -= 'a'-'A'; + } } *pbuf = buf; *plen = len; return result; + +error: + PyErr_Format(PyExc_ValueError, + "%%%c format: invalid result of __%s__ (type=%.200s)", + type, method, Py_TYPE(val)->tp_name); + Py_DECREF(result); + return NULL; } Py_LOCAL_INLINE(int) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index cae5118..3494fa9 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -791,7 +791,7 @@ PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems) Py_INCREF(type); if (type->tp_itemsize == 0) - PyObject_INIT(obj, type); + (void)PyObject_INIT(obj, type); else (void) PyObject_INIT_VAR((PyVarObject *)obj, type, nitems); @@ -1274,8 +1274,10 @@ call_method(PyObject *o, char *name, PyObject **nameobj, char *format, ...) va_end(va); - if (args == NULL) + if (args == NULL) { + Py_DECREF(func); return NULL; + } assert(PyTuple_Check(args)); retval = PyObject_Call(func, args, NULL); @@ -1312,8 +1314,10 @@ call_maybe(PyObject *o, char *name, PyObject **nameobj, char *format, ...) va_end(va); - if (args == NULL) + if (args == NULL) { + Py_DECREF(func); return NULL; + } assert(PyTuple_Check(args)); retval = PyObject_Call(func, args, NULL); @@ -1379,7 +1383,7 @@ classic_mro(PyObject *cls) The next three properties are the 3 constraints in "C3". - Local precendece order. + Local precedence order. If A precedes B in C's MRO, then A will precede B in the MRO of all subclasses of C. @@ -2541,11 +2545,25 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name) /* Look in tp_dict of types in MRO */ mro = type->tp_mro; - /* If mro is NULL, the type is either not yet initialized - by PyType_Ready(), or already cleared by type_clear(). - Either way the safest thing to do is to return NULL. */ - if (mro == NULL) - return NULL; + if (mro == NULL) { + if ((type->tp_flags & Py_TPFLAGS_READYING) == 0 && + PyType_Ready(type) < 0) { + /* It's not ideal to clear the error condition, + but this function is documented as not setting + an exception, and I don't want to change that. + When PyType_Ready() can't proceed, it won't + set the "ready" flag, so future attempts to ready + the same type will call it again -- hopefully + in a context that propagates the exception out. + */ + PyErr_Clear(); + return NULL; + } + mro = type->tp_mro; + if (mro == NULL) { + return NULL; + } + } res = NULL; assert(PyTuple_Check(mro)); @@ -3268,7 +3286,7 @@ reduce_2(PyObject *obj) PyErr_Format(PyExc_TypeError, "can't pickle %.200s objects", ((PyTypeObject *)cls)->tp_name); - return NULL; + goto end; } getnewargs = PyObject_GetAttrString(obj, "__getnewargs__"); @@ -3693,8 +3711,10 @@ add_members(PyTypeObject *type, PyMemberDef *memb) descr = PyDescr_NewMember(type, memb); if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, memb->name, descr) < 0) + if (PyDict_SetItemString(dict, memb->name, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } return 0; @@ -3713,8 +3733,10 @@ add_getset(PyTypeObject *type, PyGetSetDef *gsp) if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, gsp->name, descr) < 0) + if (PyDict_SetItemString(dict, gsp->name, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } return 0; @@ -4058,6 +4080,12 @@ PyType_Ready(PyTypeObject *type) _Py_AddToAllObjects((PyObject *)type, 0); #endif + if (type->tp_name == NULL) { + PyErr_Format(PyExc_SystemError, + "Type does not define the tp_name field."); + goto error; + } + /* Initialize tp_base (defaults to BaseObject unless that's us) */ base = type->tp_base; if (base == NULL && type != &PyBaseObject_Type) { @@ -6498,8 +6526,10 @@ add_operators(PyTypeObject *type) descr = PyDescr_NewWrapper(type, p, *ptr); if (descr == NULL) return -1; - if (PyDict_SetItem(dict, p->name_strobj, descr) < 0) + if (PyDict_SetItem(dict, p->name_strobj, descr) < 0) { + Py_DECREF(descr); return -1; + } Py_DECREF(descr); } } diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 0b81a3c..ca609a9 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -347,7 +347,7 @@ PyUnicodeObject *_PyUnicode_New(Py_ssize_t length) size_t new_size = sizeof(Py_UNICODE) * ((size_t)length + 1); unicode->str = (Py_UNICODE*) PyObject_MALLOC(new_size); } - PyObject_INIT(unicode, &PyUnicode_Type); + (void)PyObject_INIT(unicode, &PyUnicode_Type); } else { size_t new_size; @@ -2308,7 +2308,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s, stream as-is (giving a ZWNBSP character). */ if (bo == 0) { if (size >= 4) { - const Py_UCS4 bom = (q[iorder[3]] << 24) | (q[iorder[2]] << 16) | + const Py_UCS4 bom = ((unsigned int)q[iorder[3]] << 24) | (q[iorder[2]] << 16) | (q[iorder[1]] << 8) | q[iorder[0]]; #ifdef BYTEORDER_IS_LITTLE_ENDIAN if (bom == 0x0000FEFF) { @@ -2378,7 +2378,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s, /* The remaining input chars are ignored if the callback chooses to skip the input */ } - ch = (q[iorder[3]] << 24) | (q[iorder[2]] << 16) | + ch = ((unsigned int)q[iorder[3]] << 24) | (q[iorder[2]] << 16) | (q[iorder[1]] << 8) | q[iorder[0]]; if (ch >= 0x110000) @@ -6378,6 +6378,12 @@ PyObject *PyUnicode_Concat(PyObject *left, return (PyObject *)v; } + if (u->length > PY_SSIZE_T_MAX - v->length) { + PyErr_SetString(PyExc_OverflowError, + "strings are too large to concat"); + goto onError; + } + /* Concat the two Unicode strings */ w = _PyUnicode_New(u->length + v->length); if (w == NULL) @@ -7223,17 +7229,17 @@ unicode_repeat(PyUnicodeObject *str, Py_ssize_t len) return (PyObject*) str; } - /* ensure # of chars needed doesn't overflow int and # of bytes + /* ensure # of chars needed doesn't overflow Py_ssize_t and # of bytes * needed doesn't overflow size_t */ - nchars = len * str->length; - if (len && nchars / len != str->length) { + if (len && str->length > PY_SSIZE_T_MAX / len) { PyErr_SetString(PyExc_OverflowError, "repeated string is too long"); return NULL; } - nbytes = (nchars + 1) * sizeof(Py_UNICODE); - if (nbytes / sizeof(Py_UNICODE) != (size_t)(nchars + 1)) { + nchars = len * str->length; + nbytes = ((size_t)nchars + 1u) * sizeof(Py_UNICODE); + if (nbytes / sizeof(Py_UNICODE) != ((size_t)nchars + 1u)) { PyErr_SetString(PyExc_OverflowError, "repeated string is too long"); return NULL; diff --git a/PC/VS9.0/build_ssl.py b/PC/VS9.0/build_ssl.py index 95e0e78..524b4bc 100644 --- a/PC/VS9.0/build_ssl.py +++ b/PC/VS9.0/build_ssl.py @@ -26,6 +26,7 @@ from __future__ import with_statement, print_function from __future__ import with_statement import os, sys, re, shutil +import subprocess # Find all "foo.exe" files on the PATH. def find_all_on_path(filename, extras = None): @@ -48,12 +49,12 @@ def find_all_on_path(filename, extras = None): # is available. def find_working_perl(perls): for perl in perls: - fh = os.popen('"%s" -e "use Win32;"' % perl) - fh.read() - rc = fh.close() - if rc: + try: + subprocess.check_output([perl, "-e", "use win32;"]) + except Subprocess.CalledProcessError: continue - return perl + else: + return perl print("Can not find a suitable PERL:") if perls: print(" the following perl interpreters were found:") @@ -163,6 +164,8 @@ def main(): perl = find_working_perl(perls) if perl: print("Found a working perl at '%s'" % (perl,)) + # Set PERL for the makefile to find it + os.environ["PERL"] = perl else: print("No Perl installation was found. Existing Makefiles are used.") sys.stdout.flush() diff --git a/PC/VS9.0/pyproject.vsprops b/PC/VS9.0/pyproject.vsprops index 4901251..8b06f0c 100644 --- a/PC/VS9.0/pyproject.vsprops +++ b/PC/VS9.0/pyproject.vsprops @@ -74,7 +74,7 @@ /> hkey; - strcpy(python_dir, ivi->prefix); - SetDlgItemText(hwnd, IDC_PATH, python_dir); - /* retrieve the python version and pythondll to use */ + IDC_VERSIONS_LIST, + LB_GETITEMDATA, + id, + 0); + hkey_root = ivi->hkey; + strcpy(python_dir, ivi->prefix); + SetDlgItemText(hwnd, IDC_PATH, python_dir); + /* retrieve the python version and pythondll to use */ result = SendDlgItemMessage(hwnd, IDC_VERSIONS_LIST, LB_GETTEXTLEN, (WPARAM)id, 0); pbuf = (char *)malloc(result + 1); diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index 057900d..44c82e4 100644 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -148,7 +148,7 @@ msvcrt_get_osfhandle(PyObject *self, PyObject *args) if (handle == -1) return PyErr_SetFromErrno(PyExc_IOError); - /* technically 'handle' is not a pointer, but a integer as + /* technically 'handle' is not a pointer, but an integer as large as a pointer, Python's *VoidPtr interface is the most appropriate here */ return PyLong_FromVoidPtr((void*)handle); diff --git a/PC/os2emx/Makefile b/PC/os2emx/Makefile index bf2e486..613da64 100644 --- a/PC/os2emx/Makefile +++ b/PC/os2emx/Makefile @@ -102,7 +102,7 @@ ifeq ($(FIXED_PYHOME),yes) CFLAGS+= -DPREFIX=$(DQUOTE)$(LIB_DIR)$(DQUOTE) endif -# We're using the OMF format since EMX's ld has a obscure bug +# We're using the OMF format since EMX's ld has an obscure bug # because of which it sometimes fails to build relocations # in .data segment that point to another .data locations # (except for the final linking if the .EXEs) diff --git a/PC/os2vacpp/getpathp.c b/PC/os2vacpp/getpathp.c index 5bc2827..b1307d7 100644 --- a/PC/os2vacpp/getpathp.c +++ b/PC/os2vacpp/getpathp.c @@ -325,18 +325,18 @@ calculate_path(void) pythonhome = NULL; } else { - char *delim; + char *delim; strcpy(prefix, pythonhome); - /* Extract Any Optional Trailing EXEC_PREFIX */ - /* e.g. PYTHONHOME=: */ - delim = strchr(prefix, DELIM); - if (delim) { - *delim = '\0'; - strcpy(exec_prefix, delim+1); - } else - strcpy(exec_prefix, EXEC_PREFIX); + /* Extract Any Optional Trailing EXEC_PREFIX */ + /* e.g. PYTHONHOME=: */ + delim = strchr(prefix, DELIM); + if (delim) { + *delim = '\0'; + strcpy(exec_prefix, delim+1); + } else + strcpy(exec_prefix, EXEC_PREFIX); } if (envpath && *envpath == '\0') diff --git a/PC/winsound.c b/PC/winsound.c index 05305d2..f3c5be4 100644 --- a/PC/winsound.c +++ b/PC/winsound.c @@ -77,24 +77,23 @@ sound_playsound(PyObject *s, PyObject *args) int length; int ok; - if(!PyArg_ParseTuple(args,"z#i:PlaySound",&sound,&length,&flags)) { - return NULL; + if (!PyArg_ParseTuple(args, "z#i:PlaySound", &sound, &length, &flags)) { + return NULL; } - if(flags&SND_ASYNC && flags &SND_MEMORY) { - /* Sidestep reference counting headache; unfortunately this also - prevent SND_LOOP from memory. */ - PyErr_SetString(PyExc_RuntimeError,"Cannot play asynchronously from memory"); - return NULL; + if (flags & SND_ASYNC && flags & SND_MEMORY) { + /* Sidestep reference counting headache; unfortunately this also + prevent SND_LOOP from memory. */ + PyErr_SetString(PyExc_RuntimeError, "Cannot play asynchronously from memory"); + return NULL; } Py_BEGIN_ALLOW_THREADS - ok = PlaySound(sound,NULL,flags); + ok = PlaySound(sound, NULL, flags); Py_END_ALLOW_THREADS - if(!ok) - { - PyErr_SetString(PyExc_RuntimeError,"Failed to play sound"); - return NULL; + if (!ok) { + PyErr_SetString(PyExc_RuntimeError, "Failed to play sound"); + return NULL; } Py_INCREF(Py_None); @@ -151,11 +150,10 @@ static struct PyMethodDef sound_methods[] = static void add_define(PyObject *dict, const char *key, long value) { - PyObject *k=PyString_FromString(key); - PyObject *v=PyLong_FromLong(value); - if(v&&k) - { - PyDict_SetItem(dict,k,v); + PyObject *k = PyString_FromString(key); + PyObject *v = PyLong_FromLong(value); + if (v && k) { + PyDict_SetItem(dict, k, v); } Py_XDECREF(k); Py_XDECREF(v); diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat index 90b1068..387d9ae 100644 --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -58,7 +58,7 @@ set libraries= set libraries=%libraries% bzip2-1.0.6 if NOT "%IncludeBsddb%"=="false" set libraries=%libraries% db-4.7.25.0 if NOT "%IncludeSSL%"=="false" set libraries=%libraries% nasm-2.11.06 -if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2h +if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2j set libraries=%libraries% sqlite-3.8.11.0 if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tcl-8.5.15.0 if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tk-8.5.15.0 diff --git a/PCbuild/prepare_ssl.py b/PCbuild/prepare_ssl.py new file mode 100644 index 0000000..d746976 --- /dev/null +++ b/PCbuild/prepare_ssl.py @@ -0,0 +1,201 @@ +#! /usr/bin/env python3 +# Script for preparing OpenSSL for building on Windows. +# Uses Perl to create nmake makefiles and otherwise prepare the way +# for building on 32 or 64 bit platforms. + +# Script originally authored by Mark Hammond. +# Major revisions by: +# Martin v. Löwis +# Christian Heimes +# Zachary Ware + +# THEORETICALLY, you can: +# * Unpack the latest OpenSSL release where $(opensslDir) in +# PCbuild\pyproject.props expects it to be. +# * Install ActivePerl and ensure it is somewhere on your path. +# * Run this script with the OpenSSL source dir as the only argument. +# +# it should configure OpenSSL such that it is ready to be built by +# ssl.vcxproj on 32 or 64 bit platforms. + +from __future__ import print_function + +import os +import re +import sys +import subprocess +from shutil import copy + +# Find all "foo.exe" files on the PATH. +def find_all_on_path(filename, extras=None): + entries = os.environ["PATH"].split(os.pathsep) + ret = [] + for p in entries: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + if extras: + for p in extras: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + return ret + + +# Find a suitable Perl installation for OpenSSL. +# cygwin perl does *not* work. ActivePerl does. +# Being a Perl dummy, the simplest way I can check is if the "Win32" package +# is available. +def find_working_perl(perls): + for perl in perls: + try: + subprocess.check_output([perl, "-e", "use Win32;"]) + except subprocess.CalledProcessError: + continue + else: + return perl + + if perls: + print("The following perl interpreters were found:") + for p in perls: + print(" ", p) + print(" None of these versions appear suitable for building OpenSSL") + else: + print("NO perl interpreters were found on this machine at all!") + print(" Please install ActivePerl and ensure it appears on your path") + + +def create_asms(makefile, tmp_d): + #create a custom makefile out of the provided one + asm_makefile = os.path.splitext(makefile)[0] + '.asm.mak' + with open(makefile) as fin, open(asm_makefile, 'w') as fout: + for line in fin: + # Keep everything up to the install target (it's convenient) + if line.startswith('install: all'): + break + fout.write(line) + asms = [] + for line in fin: + if '.asm' in line and line.strip().endswith('.pl'): + asms.append(line.split(':')[0]) + while line.strip(): + fout.write(line) + line = next(fin) + fout.write('\n') + + fout.write('asms: $(TMP_D) ') + fout.write(' '.join(asms)) + fout.write('\n') + os.system('nmake /f {} PERL=perl TMP_D={} asms'.format(asm_makefile, tmp_d)) + + +def copy_includes(makefile, suffix): + dir = 'include'+suffix+'\\openssl' + try: + os.makedirs(dir) + except OSError: + pass + copy_if_different = r'$(PERL) $(SRC_D)\util\copy-if-different.pl' + with open(makefile) as fin: + for line in fin: + if copy_if_different in line: + perl, script, src, dest = line.split() + if not '$(INCO_D)' in dest: + continue + # We're in the root of the source tree + src = src.replace('$(SRC_D)', '.').strip('"') + dest = dest.strip('"').replace('$(INCO_D)', dir) + print('copying', src, 'to', dest) + copy(src, dest) + + +def run_configure(configure, do_script): + print("perl Configure "+configure+" no-idea no-mdc2") + os.system("perl Configure "+configure+" no-idea no-mdc2") + print(do_script) + os.system(do_script) + + +def prep(arch): + makefile_template = "ms\\nt{}.mak" + generated_makefile = makefile_template.format('') + if arch == "x86": + configure = "VC-WIN32" + do_script = "ms\\do_nasm" + suffix = "32" + elif arch == "amd64": + configure = "VC-WIN64A" + do_script = "ms\\do_win64a" + suffix = "64" + #os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" + else: + raise ValueError('Unrecognized platform: %s' % arch) + + print("Creating the makefiles...") + sys.stdout.flush() + # run configure, copy includes, create asms + run_configure(configure, do_script) + makefile = makefile_template.format(suffix) + try: + os.unlink(makefile) + except FileNotFoundError: + pass + os.rename(generated_makefile, makefile) + copy_includes(makefile, suffix) + + print('creating asms...') + create_asms(makefile, 'tmp'+suffix) + + +def main(): + if len(sys.argv) == 1: + print("Not enough arguments: directory containing OpenSSL", + "sources must be supplied") + sys.exit(1) + + if len(sys.argv) > 2: + print("Too many arguments supplied, all we need is the directory", + "containing OpenSSL sources") + sys.exit(1) + + ssl_dir = sys.argv[1] + + if not os.path.isdir(ssl_dir): + print(ssl_dir, "is not an existing directory!") + sys.exit(1) + + # perl should be on the path, but we also look in "\perl" and "c:\\perl" + # as "well known" locations + perls = find_all_on_path("perl.exe", [r"\perl\bin", + r"C:\perl\bin", + r"\perl64\bin", + r"C:\perl64\bin", + ]) + perl = find_working_perl(perls) + if perl: + print("Found a working perl at '%s'" % (perl,)) + else: + sys.exit(1) + if not find_all_on_path('nmake.exe'): + print('Could not find nmake.exe, try running env.bat') + sys.exit(1) + if not find_all_on_path('nasm.exe'): + print('Could not find nasm.exe, please add to PATH') + sys.exit(1) + sys.stdout.flush() + + # Put our working Perl at the front of our path + os.environ["PATH"] = os.path.dirname(perl) + \ + os.pathsep + \ + os.environ["PATH"] + + old_cwd = os.getcwd() + try: + os.chdir(ssl_dir) + for arch in ['amd64', 'x86']: + prep(arch) + finally: + os.chdir(old_cwd) + +if __name__=='__main__': + main() diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index 34938ea..10b1298 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -8,12 +8,9 @@ $(SolutionDir)obj\$(ArchName)\$(ProjectName)\ $(ProjectName) $(TargetName)$(PyDebugExt) - false - false - + false + false - true - true true true false diff --git a/PCbuild/python.props b/PCbuild/python.props index e40751a..21ea5fa 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -35,7 +35,7 @@ $(ExternalsDir)sqlite-3.8.11.0\ $(ExternalsDir)bzip2-1.0.6\ $(ExternalsDir)db-4.7.25.0 - $(ExternalsDir)openssl-1.0.2h\ + $(ExternalsDir)openssl-1.0.2j\ $(opensslDir)include32 $(opensslDir)include64 $(ExternalsDir)\nasm-2.11.06\ diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj index a4e9029..4380fed 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj @@ -55,6 +55,9 @@ <_ProjectFileVersion>10.0.30319.1 + + true + true diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index a29d31e..da5d5d9 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -59,6 +59,9 @@ <_ProjectFileVersion>10.0.30319.1 $(PyDllName) + + true + true Link diff --git a/PCbuild/pythonw.vcxproj b/PCbuild/pythonw.vcxproj index ea5f1c8..8c5335c 100644 --- a/PCbuild/pythonw.vcxproj +++ b/PCbuild/pythonw.vcxproj @@ -44,6 +44,9 @@ Application false + + true + true @@ -55,6 +58,9 @@ <_ProjectFileVersion>10.0.30319.1 + + true + true diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index 7fee48f..67adb7f 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -183,7 +183,7 @@ _bz2 Homepage: http://www.bzip.org/ _ssl - Python wrapper for version 1.0.2h of the OpenSSL secure sockets + Python wrapper for version 1.0.2j of the OpenSSL secure sockets library, which is built by ssl.vcxproj Homepage: http://www.openssl.org/ diff --git a/Parser/asdl.py b/Parser/asdl.py index 7f5856b..1ddc3f8 100644 --- a/Parser/asdl.py +++ b/Parser/asdl.py @@ -126,7 +126,7 @@ class ASDLParser(spark.GenericParser, object): "version ::= Id String" if version.value != "version": raise ASDLSyntaxError(version.lineno, - msg="expected 'version', found %" % version) + msg="expected 'version', found %s" % version) return V def p_definition_0(self, (definition,)): diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py index 7ebc236..2bbd5a0 100755 --- a/Parser/asdl_c.py +++ b/Parser/asdl_c.py @@ -136,7 +136,7 @@ class TypeDefVisitor(EmitVisitor): class StructVisitor(EmitVisitor): - """Visitor to generate typdefs for AST.""" + """Visitor to generate typedefs for AST.""" def visitModule(self, mod): for dfn in mod.dfns: @@ -513,6 +513,13 @@ class Obj2ModVisitor(PickleVisitor): self.emit("res = obj2ast_%s(PyList_GET_ITEM(tmp, i), &value, arena);" % field.type, depth+2, reflow=False) self.emit("if (res != 0) goto failed;", depth+2) + self.emit("if (len != PyList_GET_SIZE(tmp)) {", depth+2) + self.emit("PyErr_SetString(PyExc_RuntimeError, \"%s field \\\"%s\\\" " + "changed size during iteration\");" % + (name, field.name), + depth+3, reflow=False) + self.emit("goto failed;", depth+3) + self.emit("}", depth+2) self.emit("asdl_seq_SET(%s, i, value);" % field.name, depth+2) self.emit("}", depth+1) else: diff --git a/Parser/pgen.c b/Parser/pgen.c index beaf53b..f3031ae 100644 --- a/Parser/pgen.c +++ b/Parser/pgen.c @@ -136,11 +136,12 @@ addnfa(nfagrammar *gr, char *name) static char REQNFMT[] = "metacompile: less than %d children\n"; -#define REQN(i, count) \ +#define REQN(i, count) do { \ if (i < count) { \ fprintf(stderr, REQNFMT, count); \ Py_FatalError("REQN"); \ - } else + } \ +} while (0) #else #define REQN(i, count) /* empty */ @@ -283,6 +284,7 @@ compile_atom(labellist *ll, nfa *nf, node *n, int *pa, int *pb) REQ(n, ATOM); i = n->n_nchildren; + (void)i; /* Don't warn about set but unused */ REQN(i, 1); n = n->n_child; if (n->n_type == LPAR) { diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 7e4a300..4fdbad9 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -951,7 +951,7 @@ tok_nextc(register struct tok_state *tok) else { tok->done = E_OK; tok->inp = strchr(tok->buf, '\0'); - done = tok->inp[-1] == '\n'; + done = tok->inp == tok->buf || tok->inp[-1] == '\n'; } } else { diff --git a/Python/Python-ast.c b/Python/Python-ast.c index 6cf99ec..28c95b0 100644 --- a/Python/Python-ast.c +++ b/Python/Python-ast.c @@ -3351,6 +3351,10 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Module field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3387,6 +3391,10 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Interactive field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3446,6 +3454,10 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Suite field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3555,6 +3567,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3580,6 +3596,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"decorator_list\" changed size during iteration"); + goto failed; + } asdl_seq_SET(decorator_list, i, value); } Py_XDECREF(tmp); @@ -3632,6 +3652,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"bases\" changed size during iteration"); + goto failed; + } asdl_seq_SET(bases, i, value); } Py_XDECREF(tmp); @@ -3657,6 +3681,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3682,6 +3710,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"decorator_list\" changed size during iteration"); + goto failed; + } asdl_seq_SET(decorator_list, i, value); } Py_XDECREF(tmp); @@ -3741,6 +3773,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Delete field \"targets\" changed size during iteration"); + goto failed; + } asdl_seq_SET(targets, i, value); } Py_XDECREF(tmp); @@ -3778,6 +3814,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Assign field \"targets\" changed size during iteration"); + goto failed; + } asdl_seq_SET(targets, i, value); } Py_XDECREF(tmp); @@ -3888,6 +3928,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Print field \"values\" changed size during iteration"); + goto failed; + } asdl_seq_SET(values, i, value); } Py_XDECREF(tmp); @@ -3963,6 +4007,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "For field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -3988,6 +4036,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "For field \"orelse\" changed size during iteration"); + goto failed; + } asdl_seq_SET(orelse, i, value); } Py_XDECREF(tmp); @@ -4039,6 +4091,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "While field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -4064,6 +4120,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "While field \"orelse\" changed size during iteration"); + goto failed; + } asdl_seq_SET(orelse, i, value); } Py_XDECREF(tmp); @@ -4114,6 +4174,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "If field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -4139,6 +4203,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "If field \"orelse\" changed size during iteration"); + goto failed; + } asdl_seq_SET(orelse, i, value); } Py_XDECREF(tmp); @@ -4200,6 +4268,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "With field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -4285,6 +4357,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "TryExcept field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -4310,6 +4386,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) excepthandler_ty value; res = obj2ast_excepthandler(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "TryExcept field \"handlers\" changed size during iteration"); + goto failed; + } asdl_seq_SET(handlers, i, value); } Py_XDECREF(tmp); @@ -4335,6 +4415,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "TryExcept field \"orelse\" changed size during iteration"); + goto failed; + } asdl_seq_SET(orelse, i, value); } Py_XDECREF(tmp); @@ -4373,6 +4457,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "TryFinally field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -4398,6 +4486,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "TryFinally field \"finalbody\" changed size during iteration"); + goto failed; + } asdl_seq_SET(finalbody, i, value); } Py_XDECREF(tmp); @@ -4469,6 +4561,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) alias_ty value; res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Import field \"names\" changed size during iteration"); + goto failed; + } asdl_seq_SET(names, i, value); } Py_XDECREF(tmp); @@ -4518,6 +4614,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) alias_ty value; res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ImportFrom field \"names\" changed size during iteration"); + goto failed; + } asdl_seq_SET(names, i, value); } Py_XDECREF(tmp); @@ -4613,6 +4713,10 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) identifier value; res = obj2ast_identifier(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Global field \"names\" changed size during iteration"); + goto failed; + } asdl_seq_SET(names, i, value); } Py_XDECREF(tmp); @@ -4761,6 +4865,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "BoolOp field \"values\" changed size during iteration"); + goto failed; + } asdl_seq_SET(values, i, value); } Py_XDECREF(tmp); @@ -4968,6 +5076,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Dict field \"keys\" changed size during iteration"); + goto failed; + } asdl_seq_SET(keys, i, value); } Py_XDECREF(tmp); @@ -4993,6 +5105,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Dict field \"values\" changed size during iteration"); + goto failed; + } asdl_seq_SET(values, i, value); } Py_XDECREF(tmp); @@ -5029,6 +5145,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Set field \"elts\" changed size during iteration"); + goto failed; + } asdl_seq_SET(elts, i, value); } Py_XDECREF(tmp); @@ -5078,6 +5198,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) comprehension_ty value; res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ListComp field \"generators\" changed size during iteration"); + goto failed; + } asdl_seq_SET(generators, i, value); } Py_XDECREF(tmp); @@ -5127,6 +5251,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) comprehension_ty value; res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "SetComp field \"generators\" changed size during iteration"); + goto failed; + } asdl_seq_SET(generators, i, value); } Py_XDECREF(tmp); @@ -5189,6 +5317,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) comprehension_ty value; res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "DictComp field \"generators\" changed size during iteration"); + goto failed; + } asdl_seq_SET(generators, i, value); } Py_XDECREF(tmp); @@ -5239,6 +5371,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) comprehension_ty value; res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "GeneratorExp field \"generators\" changed size during iteration"); + goto failed; + } asdl_seq_SET(generators, i, value); } Py_XDECREF(tmp); @@ -5311,6 +5447,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) cmpop_ty value; res = obj2ast_cmpop(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Compare field \"ops\" changed size during iteration"); + goto failed; + } asdl_seq_SET(ops, i, value); } Py_XDECREF(tmp); @@ -5336,6 +5476,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Compare field \"comparators\" changed size during iteration"); + goto failed; + } asdl_seq_SET(comparators, i, value); } Py_XDECREF(tmp); @@ -5389,6 +5533,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Call field \"args\" changed size during iteration"); + goto failed; + } asdl_seq_SET(args, i, value); } Py_XDECREF(tmp); @@ -5414,6 +5562,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) keyword_ty value; res = obj2ast_keyword(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Call field \"keywords\" changed size during iteration"); + goto failed; + } asdl_seq_SET(keywords, i, value); } Py_XDECREF(tmp); @@ -5677,6 +5829,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "List field \"elts\" changed size during iteration"); + goto failed; + } asdl_seq_SET(elts, i, value); } Py_XDECREF(tmp); @@ -5726,6 +5882,10 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "Tuple field \"elts\" changed size during iteration"); + goto failed; + } asdl_seq_SET(elts, i, value); } Py_XDECREF(tmp); @@ -5913,6 +6073,10 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena) slice_ty value; res = obj2ast_slice(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ExtSlice field \"dims\" changed size during iteration"); + goto failed; + } asdl_seq_SET(dims, i, value); } Py_XDECREF(tmp); @@ -6290,6 +6454,10 @@ obj2ast_comprehension(PyObject* obj, comprehension_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "comprehension field \"ifs\" changed size during iteration"); + goto failed; + } asdl_seq_SET(ifs, i, value); } Py_XDECREF(tmp); @@ -6390,6 +6558,10 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena) stmt_ty value; res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "ExceptHandler field \"body\" changed size during iteration"); + goto failed; + } asdl_seq_SET(body, i, value); } Py_XDECREF(tmp); @@ -6438,6 +6610,10 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "arguments field \"args\" changed size during iteration"); + goto failed; + } asdl_seq_SET(args, i, value); } Py_XDECREF(tmp); @@ -6485,6 +6661,10 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena) expr_ty value; res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); if (res != 0) goto failed; + if (len != PyList_GET_SIZE(tmp)) { + PyErr_SetString(PyExc_RuntimeError, "arguments field \"defaults\" changed size during iteration"); + goto failed; + } asdl_seq_SET(defaults, i, value); } Py_XDECREF(tmp); diff --git a/Python/ast.c b/Python/ast.c index e5d7ac6..318c0bb 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -2179,7 +2179,7 @@ ast_for_expr_stmt(struct compiling *c, const node *n) testlist: test (',' test)* [','] augassign: '+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=' - test: ... here starts the operator precendence dance + test: ... here starts the operator precedence dance */ if (NCH(n) == 1) { @@ -2284,7 +2284,7 @@ ast_for_print_stmt(struct compiling *c, const node *n) dest = ast_for_expr(c, CHILD(n, 2)); if (!dest) return NULL; - start = 4; + start = 4; } values_count = (NCH(n) + 1 - start) / 2; if (values_count) { diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 2977bcd..f03e488 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -2923,20 +2923,20 @@ filterstring(PyObject *func, PyObject *strobj) if (need<2*outlen) { need = 2*outlen; - } - if (_PyString_Resize(&result, need)) { - Py_DECREF(item); - return NULL; - } - outlen = need; - } - memcpy( - PyString_AS_STRING(result) + j, - PyString_AS_STRING(item), - reslen - ); - j += reslen; } + if (_PyString_Resize(&result, need)) { + Py_DECREF(item); + return NULL; + } + outlen = need; + } + memcpy( + PyString_AS_STRING(result) + j, + PyString_AS_STRING(item), + reslen + ); + j += reslen; + } } Py_DECREF(item); if (ok < 0) @@ -3031,29 +3031,27 @@ filterunicode(PyObject *func, PyObject *strobj) assert(outlen >= 0); if (need > outlen) { - /* overallocate, - to avoid reallocations */ + /* overallocate, to avoid reallocations */ if (need < 2 * outlen) { - if (outlen > PY_SSIZE_T_MAX / 2) { - Py_DECREF(item); - return NULL; - } else { - need = 2 * outlen; - } - } - - if (PyUnicode_Resize( - &result, need) < 0) { - Py_DECREF(item); - goto Fail_1; - } - outlen = need; - } - memcpy(PyUnicode_AS_UNICODE(result) + j, - PyUnicode_AS_UNICODE(item), - reslen*sizeof(Py_UNICODE)); - j += reslen; + if (outlen > PY_SSIZE_T_MAX / 2) { + Py_DECREF(item); + return NULL; + } else { + need = 2 * outlen; + } } + + if (PyUnicode_Resize(&result, need) < 0) { + Py_DECREF(item); + goto Fail_1; + } + outlen = need; + } + memcpy(PyUnicode_AS_UNICODE(result) + j, + PyUnicode_AS_UNICODE(item), + reslen*sizeof(Py_UNICODE)); + j += reslen; + } } Py_DECREF(item); if (ok < 0) diff --git a/Python/ceval.c b/Python/ceval.c index 0b747d8..2af78ff 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2477,14 +2477,16 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) TARGET(BUILD_SET) { + int i; x = PySet_New(NULL); if (x != NULL) { - for (; --oparg >= 0;) { - w = POP(); + for (i = oparg; i > 0; i--) { + w = PEEK(i); if (err == 0) err = PySet_Add(x, w); Py_DECREF(w); } + STACKADJ(-oparg); if (err != 0) { Py_DECREF(x); break; diff --git a/Python/compile.c b/Python/compile.c index 51f2874..9c9b236 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -1889,7 +1889,7 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname) attr = PyString_FromStringAndSize(src, dot ? dot - src : strlen(src)); if (!attr) - return -1; + return 0; ADDOP_O(c, LOAD_ATTR, attr, names); Py_DECREF(attr); src = dot + 1; @@ -3147,7 +3147,7 @@ compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock *b) { struct fblockinfo *f; if (c->u->u_nfblocks >= CO_MAXBLOCKS) { - PyErr_SetString(PyExc_SystemError, + PyErr_SetString(PyExc_SyntaxError, "too many statically nested blocks"); return 0; } diff --git a/Python/getargs.c b/Python/getargs.c index bd15c2e..32ff6fc 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -576,6 +576,17 @@ float_argument_error(PyObject *arg) return 0; } +#ifdef Py_USING_UNICODE +static size_t +_ustrlen(Py_UNICODE *u) +{ + size_t i = 0; + Py_UNICODE *v = u; + while (*v != 0) { i++; v++; } + return i; +} +#endif + /* Convert a non-tuple argument. Return NULL if conversion went OK, or a string with a message describing the failure. The message is formatted as "must be , not ". @@ -1202,8 +1213,14 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, format++; } else { Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **); - if (PyUnicode_Check(arg)) + if (PyUnicode_Check(arg)) { *p = PyUnicode_AS_UNICODE(arg); + if (_ustrlen(*p) != (size_t)PyUnicode_GET_SIZE(arg)) { + return converterr( + "unicode without null characters", + arg, msgbuf, bufsize); + } + } else return converterr("unicode", arg, msgbuf, bufsize); } diff --git a/Python/import.c b/Python/import.c index 96f7d47..1d74faf 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2243,8 +2243,10 @@ import_module_level(char *name, PyObject *globals, PyObject *locals, if (parent == NULL) goto error_exit; + Py_INCREF(parent); head = load_next(parent, level < 0 ? Py_None : parent, &name, buf, &buflen); + Py_DECREF(parent); if (head == NULL) goto error_exit; @@ -2589,8 +2591,9 @@ ensure_fromlist(PyObject *mod, PyObject *fromlist, char *buf, Py_ssize_t buflen, return 0; } if (!PyString_Check(item)) { - PyErr_SetString(PyExc_TypeError, - "Item in ``from list'' not a string"); + PyErr_Format(PyExc_TypeError, + "Item in ``from list'' must be str, not %.200s", + Py_TYPE(item)->tp_name); Py_DECREF(item); return 0; } diff --git a/Python/mactoolboxglue.c b/Python/mactoolboxglue.c index 92bf3e8..b91be3b 100644 --- a/Python/mactoolboxglue.c +++ b/Python/mactoolboxglue.c @@ -106,7 +106,7 @@ PyMac_Error(OSErr err) } -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME OSErr PyMac_GetFullPathname(FSSpec *fss, char *path, int len) { @@ -154,7 +154,7 @@ PyMac_GetFullPathname(FSSpec *fss, char *path, int len) Py_XDECREF(fs); return err; } -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ /* Convert a 4-char string object argument to an OSType value */ int @@ -356,11 +356,11 @@ PyObject *(*PyMacGluePtr_##routinename)(object); \ \ PyObject *routinename(object cobj) { \ if (!PyMacGluePtr_##routinename) { \ - if (!PyImport_ImportModule(module)) return NULL; \ - if (!PyMacGluePtr_##routinename) { \ - PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \ - return NULL; \ - } \ + if (!PyImport_ImportModule(module)) return NULL; \ + if (!PyMacGluePtr_##routinename) { \ + PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \ + return NULL; \ + } \ } \ return (*PyMacGluePtr_##routinename)(cobj); \ } @@ -370,11 +370,11 @@ int (*PyMacGluePtr_##routinename)(PyObject *, object *); \ \ int routinename(PyObject *pyobj, object *cobj) { \ if (!PyMacGluePtr_##routinename) { \ - if (!PyImport_ImportModule(module)) return 0; \ - if (!PyMacGluePtr_##routinename) { \ - PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \ - return 0; \ - } \ + if (!PyImport_ImportModule(module)) return 0; \ + if (!PyMacGluePtr_##routinename) { \ + PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \ + return 0; \ + } \ } \ return (*PyMacGluePtr_##routinename)(pyobj, cobj); \ } @@ -419,7 +419,7 @@ GLUE_CONVERT(RGBColor, QdRGB_Convert, "Carbon.Qd") GLUE_NEW(GWorldPtr, GWorldObj_New, "Carbon.Qdoffs") GLUE_CONVERT(GWorldPtr, GWorldObj_Convert, "Carbon.Qdoffs") -#ifndef __LP64__ +#if APPLE_SUPPORTS_QUICKTIME GLUE_NEW(Track, TrackObj_New, "Carbon.Qt") GLUE_CONVERT(Track, TrackObj_Convert, "Carbon.Qt") GLUE_NEW(Movie, MovieObj_New, "Carbon.Qt") @@ -432,7 +432,7 @@ GLUE_NEW(UserData, UserDataObj_New, "Carbon.Qt") GLUE_CONVERT(UserData, UserDataObj_Convert, "Carbon.Qt") GLUE_NEW(Media, MediaObj_New, "Carbon.Qt") GLUE_CONVERT(Media, MediaObj_Convert, "Carbon.Qt") -#endif /* !__LP64__ */ +#endif /* APPLE_SUPPORTS_QUICKTIME */ GLUE_NEW(Handle, ResObj_New, "Carbon.Res") GLUE_CONVERT(Handle, ResObj_Convert, "Carbon.Res") diff --git a/Python/marshal.c b/Python/marshal.c index 6b285aa..e1a84d0 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -16,8 +16,13 @@ /* High water mark to determine when the marshalled object is dangerously deep * and risks coring the interpreter. When the object stack gets this deep, * raise an exception instead of continuing. + * On Windows debug builds, reduce this value. */ +#if defined(MS_WINDOWS) && defined(_DEBUG) +#define MAX_MARSHAL_STACK_DEPTH 1000 +#else #define MAX_MARSHAL_STACK_DEPTH 2000 +#endif #define TYPE_NULL '0' #define TYPE_NONE 'N' diff --git a/Python/pymath.c b/Python/pymath.c index 827a773..6799d20 100644 --- a/Python/pymath.c +++ b/Python/pymath.c @@ -73,7 +73,7 @@ round(double x) absx = fabs(x); y = floor(absx); if (absx - y >= 0.5) - y += 1.0; + y += 1.0; return copysign(y, x); } #endif /* HAVE_ROUND */ diff --git a/Python/random.c b/Python/random.c index b4bc1f3..2f83b5d 100644 --- a/Python/random.c +++ b/Python/random.c @@ -3,6 +3,9 @@ #include #else #include +#if defined(HAVE_GETRANDOM) || defined(HAVE_GETENTROPY) +#include +#endif #endif #ifdef Py_DEBUG diff --git a/Python/symtable.c b/Python/symtable.c index 137f12c..3b4247b 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -1421,11 +1421,11 @@ symtable_visit_alias(struct symtable *st, alias_ty a) } else { if (st->st_cur->ste_type != ModuleBlock) { - int lineno = st->st_cur->ste_lineno; - if (!symtable_warn(st, IMPORT_STAR_WARNING, lineno)) { - Py_DECREF(store_name); - return 0; - } + int lineno = st->st_cur->ste_lineno; + if (!symtable_warn(st, IMPORT_STAR_WARNING, lineno)) { + Py_DECREF(store_name); + return 0; + } } st->st_cur->ste_unoptimized |= OPT_IMPORT_STAR; Py_DECREF(store_name); diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 407d770..aeff38a 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1295,7 +1295,7 @@ static PyStructSequence_Field version_info_fields[] = { {"major", "Major release number"}, {"minor", "Minor release number"}, {"micro", "Patch release number"}, - {"releaselevel", "'alpha', 'beta', 'candidate', or 'release'"}, + {"releaselevel", "'alpha', 'beta', 'candidate', or 'final'"}, {"serial", "Serial release number"}, {0} }; diff --git a/Python/thread.c b/Python/thread.c index c54670d..3b69f96 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -50,7 +50,7 @@ threads. This is valid for HP-UX 11.23 running on an ia64 system. If needed, add - a check of __ia64 to verify that we're running on a ia64 system instead + a check of __ia64 to verify that we're running on an ia64 system instead of a pa-risc system. */ #ifdef __hpux diff --git a/Python/thread_wince.h b/Python/thread_wince.h index b9c10da..25634b8 100644 --- a/Python/thread_wince.h +++ b/Python/thread_wince.h @@ -72,12 +72,12 @@ PyThread_type_lock PyThread_allocate_lock(void) dprintf(("PyThread_allocate_lock called\n")); if (!initialized) - PyThread_init_thread(); + PyThread_init_thread(); aLock = CreateEvent(NULL, /* Security attributes */ - 0, /* Manual-Reset */ + 0, /* Manual-Reset */ 1, /* Is initially signalled */ - NULL); /* Name of event */ + NULL); /* Name of event */ dprintf(("%ld: PyThread_allocate_lock() -> %p\n", PyThread_get_thread_ident(), aLock)); @@ -117,7 +117,7 @@ int PyThread_acquire_lock(PyThread_type_lock aLock, int waitflag) #endif if (waitResult != WAIT_OBJECT_0) { - success = 0; /* We failed */ + success = 0; /* We failed */ } dprintf(("%ld: PyThread_acquire_lock(%p, %d) -> %d\n", PyThread_get_thread_ident(),aLock, waitflag, success)); @@ -130,7 +130,7 @@ void PyThread_release_lock(PyThread_type_lock aLock) dprintf(("%ld: PyThread_release_lock(%p) called\n", PyThread_get_thread_ident(),aLock)); if (!SetEvent(aLock)) - dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError())); + dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError())); } diff --git a/README b/README index 9b27c32..08d48c2 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This is Python version 2.7.12 +This is Python version 2.7.13 ============================= Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, @@ -173,10 +173,10 @@ rebuilt. In this case, you may have to run make again to correctly build your desired target. The interpreter executable is built in the top level directory. -If you need an optimized version of Python, you type "make profile-opt" -in the top level directory. This will rebuild the interpreter executable -using Profile Guided Optimization (PGO). For more details, see the -section below. +To get an optimized build of Python, "configure --enable-optimizations" before +you run make. This sets the default make targets up to enable Profile Guided +Optimization (PGO) and may be used to auto-enable Link Time Optimization (LTO) +on some platforms. For more details, see the sections bellow. Once you have built a Python interpreter, see the subsections below on testing and installation. If you run into trouble, see the next @@ -194,7 +194,7 @@ Profile Guided Optimization --------------------------- PGO takes advantage of recent versions of the GCC or Clang compilers. -If ran, the "profile-opt" rule will do several steps. +If ran, "make profile-opt" will do several steps. First, the entire Python directory is cleaned of temporary files that may have resulted in a previous compilation. @@ -207,13 +207,22 @@ workloads, as it has profiling instructions embedded inside. After this instrumented version of the interpreter is built, the Makefile will automatically run a training workload. This is necessary in order to profile the interpreter execution. Note also that any output, both stdout -and stderr, that may appear at this step is supressed. +and stderr, that may appear at this step is suppressed. Finally, the last step is to rebuild the interpreter, using the information collected in the previous one. The end result will be a Python binary that is optimized and suitable for distribution or production installation. +Link Time Optimization +---------------------- + +Enabled via configure's --with-lto flag. LTO takes advantages of recent +compiler toolchains ability to optimize across the otherwise arbitrary .o file +boundary when building final executables or shared libraries for additional +performance gains. + + Troubleshooting --------------- diff --git a/RISCOS/Modules/riscosmodule.c b/RISCOS/Modules/riscosmodule.c index 4387383..1049e65 100644 --- a/RISCOS/Modules/riscosmodule.c +++ b/RISCOS/Modules/riscosmodule.c @@ -46,7 +46,7 @@ riscos_rename(PyObject *self, PyObject *args) { char *path1, *path2; if (!PyArg_ParseTuple(args, "ss:rename", &path1, &path2)) - return NULL; + return NULL; if (rename(path1,path2)) return PyErr_SetFromErrno(PyExc_OSError); Py_INCREF(Py_None); return Py_None; diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py index 836f532..2764cec 100755 --- a/Tools/freeze/freeze.py +++ b/Tools/freeze/freeze.py @@ -159,7 +159,7 @@ def main(): except getopt.error, msg: usage('getopt error: ' + str(msg)) - # proces option arguments + # process option arguments for o, a in opts: if o == '-h': print __doc__ diff --git a/Tools/freeze/winmakemakefile.py b/Tools/freeze/winmakemakefile.py index 1950d6b..fce7ac6 100644 --- a/Tools/freeze/winmakemakefile.py +++ b/Tools/freeze/winmakemakefile.py @@ -143,5 +143,5 @@ def realwork(vars, moddefns, target): print "<<" print print "clean:" - print "\t-rm -f *.obj" - print "\t-rm -f $(target).exe" + print "\t-del /f *.obj" + print "\t-del /f $(target).exe" diff --git a/Tools/i18n/pygettext.py b/Tools/i18n/pygettext.py index af24b47..a62d2fe 100755 --- a/Tools/i18n/pygettext.py +++ b/Tools/i18n/pygettext.py @@ -482,7 +482,7 @@ class TokenEater: '# File: %(filename)s, line: %(lineno)d') % d elif options.locationstyle == options.GNU: # fit as many locations on one line, as long as the - # resulting line length doesn't exceeds 'options.width' + # resulting line length doesn't exceed 'options.width' locline = '#:' for filename, lineno in v: d = {'filename': filename, 'lineno': lineno} diff --git a/Tools/msi/WixCA.blob b/Tools/msi/WixCA.blob new file mode 100644 index 0000000000000000000000000000000000000000..171d3094effbba5f86f60da0ed00791d0cc87025 GIT binary patch literal 205824 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 literal 0 HcmV?d00001 diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py index 3ef4a65..65ce5c1 100644 --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -376,6 +376,7 @@ def add_ui(db): # the installed/uninstalled state according to both the # Extensions and TclTk features. add_data(db, "Binary", [("Script", msilib.Binary("msisupport.dll"))]) + add_data(db, "Binary", [("WixCA", msilib.Binary("WixCA.blob"))]) # See "Custom Action Type 1" if msilib.Win64: CheckDir = "CheckDir" @@ -407,10 +408,11 @@ def add_ui(db): ("VerdanaRed9", "Verdana", 9, 255, 0), ]) - compileargs = r'-Wi "[TARGETDIR]Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py3_" "[TARGETDIR]Lib"' - lib2to3args = r'-c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"' - updatepipargs = r'-m ensurepip -U --default-pip' - removepipargs = r'-B -m ensurepip._uninstall' + compileargs = r'"[#python.exe]" -Wi "[TARGETDIR]Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py3_" "[TARGETDIR]Lib"' + compileoargs = r'"[#python.exe]" -O -Wi "[TARGETDIR]Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py3_" "[TARGETDIR]Lib"' + lib2to3args = r'"[#python.exe]" -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"' + updatepipargs = r'"[#python.exe]" -m ensurepip -U --default-pip' + removepipargs = r'"[#python.exe]" -B -m ensurepip._uninstall' # See "CustomAction Table" add_data(db, "CustomAction", [ # msidbCustomActionTypeFirstSequence + msidbCustomActionTypeTextData + msidbCustomActionTypeProperty @@ -424,11 +426,16 @@ def add_ui(db): # See "Custom Action Type 18" # msidbCustomActionTypeInScript (1024); run during actual installation # msidbCustomActionTypeNoImpersonate (2048); run action in system account, not user account - ("CompilePyc", 18+1024+2048, "python.exe", compileargs), - ("CompilePyo", 18+1024+2048, "python.exe", "-O "+compileargs), - ("CompileGrammar", 18+1024+2048, "python.exe", lib2to3args), - ("UpdatePip", 18+1024+2048, "python.exe", updatepipargs), - ("RemovePip", 18+1024+2048, "python.exe", removepipargs), + ("SetCompilePycCommandLine", 51, "CompilePyc", compileargs), + ("SetCompilePyoCommandLine", 51, "CompilePyo", compileoargs), + ("SetCompileGrammarCommandLine", 51, "CompileGrammar", lib2to3args), + ("CompilePyc", 1+64+1024, "WixCA", "CAQuietExec"), + ("CompilePyo", 1+64+1024, "WixCA", "CAQuietExec"), + ("CompileGrammar", 1+64+1024, "WixCA", "CAQuietExec"), + ("SetUpdatePipCommandLine", 51, "UpdatePip", updatepipargs), + ("UpdatePip", 1+64+1024, "WixCA", "CAQuietExec"), + ("SetRemovePipCommandLine", 51, "RemovePip", removepipargs), + ("RemovePip", 1+64+1024, "WixCA", "CAQuietExec"), ]) # UI Sequences, see "InstallUISequence Table", "Using a Sequence Table" @@ -460,15 +467,20 @@ def add_ui(db): ("SetDLLDirToSystem32", 'DLLDIR="" and ' + sys32cond, 751), ("SetDLLDirToTarget", 'DLLDIR="" and not ' + sys32cond, 752), ("UpdateEditIDLE", None, 1050), - # run command if install state of pip changes to INSTALLSTATE_LOCAL - # run after InstallFiles - ("UpdatePip", "&pip_feature=3", 4001), # remove pip when state changes to INSTALLSTATE_ABSENT # run before RemoveFiles - ("RemovePip", "&pip_feature=2", 3499), - ("CompilePyc", "COMPILEALL", 4002), - ("CompilePyo", "COMPILEALL", 4003), - ("CompileGrammar", "COMPILEALL", 4004), + ("SetRemovePipCommandLine", "&pip_feature=2 and !pip_feature=3", 3498), + ("RemovePip", "RemovePip", 3499), + # run command if install state of pip changes to INSTALLSTATE_LOCAL + # run after InstallFiles + ("SetUpdatePipCommandLine", "&pip_feature=3 and not !pip_feature=3", 4001), + ("UpdatePip", "UpdatePip", 4002), + ("SetCompilePycCommandLine", "COMPILEALL", 4003), + ("SetCompilePyoCommandLine", "COMPILEALL", 4004), + ("SetCompileGrammarCommandLine", "COMPILEALL", 4005), + ("CompilePyc", "CompilePyc", 4006), + ("CompilePyo", "CompilePyo", 4007), + ("CompileGrammar", "CompileGrammar", 4008), ]) add_data(db, "AdminExecuteSequence", [("InitialTargetDir", 'TARGETDIR=""', 750), @@ -1041,7 +1053,6 @@ def add_files(db): lib.add_file("sgml_input.html") lib.add_file("testtar.tar") lib.add_file("test_difflib_expect.html") - lib.add_file("check_soundcard.vbs") lib.add_file("empty.vbs") lib.add_file("Sine-1000Hz-300ms.aif") lib.add_file("revocation.crl") @@ -1065,6 +1076,7 @@ def add_files(db): if dir=='idlelib': lib.glob("*.def") lib.add_file("idle.bat") + lib.add_file("help.html") if dir=="Icons": lib.glob("*.gif") lib.glob("*.ico") diff --git a/Tools/msi/schema.py b/Tools/msi/schema.py index b3032f8..523c836 100644 --- a/Tools/msi/schema.py +++ b/Tools/msi/schema.py @@ -733,7 +733,7 @@ _Validation_records = [ (u'CustomAction',u'Source',u'Y',None, None, None, None, u'CustomSource',None, u'The table reference of the source of the code.',), (u'CustomAction',u'Target',u'Y',None, None, None, None, u'Formatted',None, u'Execution parameter, depends on the type of custom action',), (u'DrLocator',u'Signature_',u'N',None, None, None, None, u'Identifier',None, u'The Signature_ represents a unique file signature and is also the foreign key in the Signature table.',), -(u'DrLocator',u'Path',u'Y',None, None, None, None, u'AnyPath',None, u'The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.',), +(u'DrLocator',u'Path',u'Y',None, None, None, None, u'AnyPath',None, u'The path on the user system. This is either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.',), (u'DrLocator',u'Depth',u'Y',0,32767,None, None, None, None, u'The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0.',), (u'DrLocator',u'Parent',u'Y',None, None, None, None, u'Identifier',None, u'The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.',), (u'DuplicateFile',u'File_',u'N',None, None, u'File',1,u'Identifier',None, u'Foreign key referencing the source file to be duplicated.',), diff --git a/Tools/msi/uisample.py b/Tools/msi/uisample.py index 456d9ae..d6c256b 100644 --- a/Tools/msi/uisample.py +++ b/Tools/msi/uisample.py @@ -998,7 +998,7 @@ _Validation = [ (u'CustomAction', u'Source', u'Y', None, None, None, None, u'CustomSource', None, u'The table reference of the source of the code.'), (u'CustomAction', u'Target', u'Y', None, None, None, None, u'Formatted', None, u'Execution parameter, depends on the type of custom action'), (u'DrLocator', u'Signature_', u'N', None, None, None, None, u'Identifier', None, u'The Signature_ represents a unique file signature and is also the foreign key in the Signature table.'), -(u'DrLocator', u'Path', u'Y', None, None, None, None, u'AnyPath', None, u'The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.'), +(u'DrLocator', u'Path', u'Y', None, None, None, None, u'AnyPath', None, u'The path on the user system. This is either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.'), (u'DrLocator', u'Depth', u'Y', 0, 32767, None, None, None, None, u'The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0.'), (u'DrLocator', u'Parent', u'Y', None, None, None, None, u'Identifier', None, u'The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.'), (u'DuplicateFile', u'File_', u'N', None, None, u'File', 1, u'Identifier', None, u'Foreign key referencing the source file to be duplicated.'), diff --git a/Tools/nuget/build.bat b/Tools/nuget/build.bat new file mode 100644 index 0000000..3c953f7 --- /dev/null +++ b/Tools/nuget/build.bat @@ -0,0 +1,63 @@ +@echo off +setlocal +set D=%~dp0 +set PCBUILD=%D%..\..\PCBuild\ + +set BUILDX86= +set BUILDX64= +set REBUILD= +set OUTPUT= +set PACKAGES= + +:CheckOpts +if "%~1" EQU "-h" goto Help +if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts +if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts +if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts +if "%~1" EQU "-o" (set OUTPUT="/p:OutputPath=%~2") && shift && shift && goto CheckOpts +if "%~1" EQU "--out" (set OUTPUT="/p:OutputPath=%~2") && shift && shift && goto CheckOpts +if "%~1" EQU "-p" (set PACKAGES=%PACKAGES% %~2) && shift && shift && goto CheckOpts + +if not defined BUILDX86 if not defined BUILDX64 (set BUILDX86=1) && (set BUILDX64=1) + +if not defined NUGET where nuget -q || echo Cannot find nuget.exe on PATH and NUGET is not set. && exit /B 1 +if not defined PYTHON set PYTHON=py -3 + +@%PYTHON% -c "" >nul 2>nul +@if errorlevel 1 ( + %NUGET% install python -OutputDirectory "%D%obj" -ExcludeVersion -NonInteractive + set PYTHON="%D%obj\python\tools\python.exe" +) + +call "%PCBUILD%env.bat" x86 + +if defined PACKAGES set PACKAGES="/p:Packages=%PACKAGES%" + +if defined BUILDX86 ( + if defined REBUILD ( call "%PCBUILD%build.bat" -e -r + ) else if not exist "%PCBUILD%python.exe" call "%PCBUILD%build.bat" -e + if errorlevel 1 goto :eof + + msbuild "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x86 %OUTPUT% %PACKAGES% + if errorlevel 1 goto :eof +) + +if defined BUILDX64 ( + if defined REBUILD ( call "%PCBUILD%build.bat" -p x64 -e -r + ) else if not exist "%PCBUILD%amd64\python.exe" call "%PCBUILD%build.bat" -p x64 -e + if errorlevel 1 goto :eof + + msbuild "%D%make_pkg.proj" /p:Configuration=Release /p:Platform=x64 %OUTPUT% %PACKAGES% + if errorlevel 1 goto :eof +) + +exit /B 0 + +:Help +echo build.bat [-x86] [-x64] [--out DIR] [-r] [-h] +echo. +echo -x86 Build x86 installers +echo -x64 Build x64 installers +echo -r Rebuild rather than incremental build +echo --out [DIR] Override output directory +echo -h Show usage diff --git a/Tools/nuget/make_pkg.proj b/Tools/nuget/make_pkg.proj new file mode 100644 index 0000000..cb124ab --- /dev/null +++ b/Tools/nuget/make_pkg.proj @@ -0,0 +1,53 @@ + + + + {6BA7092C-0093-47F0-9ED2-282AEE981E14} + python2 + $(OutputName)x86 + $(MSBuildThisFileDirectory) + + false + true + + + + + + $(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber) + false + $(OutputName).$(NuspecVersion) + .nupkg + $(OutputPath)\$(TargetName)$(TargetExt) + $(MSBuildThisFileDirectory)\obj_$(ArchName) + + rmdir /q/s "$(IntermediateOutputPath)" + + py + "$(Python)" "$(MSBuildThisFileDirectory)\make_zip.py" + $(PythonArguments) -s "$(PySourcePath.Trim('\'))" -t "$(IntermediateOutputPath)" -a $(ArchName) + + "$(IntermediateOutputPath)\python.exe" -B -c "import sys; sys.path.append(r'$(PySourcePath)\Lib'); import ensurepip; ensurepip._main()" + "$(IntermediateOutputPath)\python.exe" -B -m pip install -U $(Packages) + + "$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).nuspec" + $(NugetArguments) -BasePath "$(IntermediateOutputPath)" + $(NugetArguments) -OutputDirectory "$(OutputPath.Trim(`\`))" + $(NugetArguments) -Version "$(NuspecVersion)" + $(NugetArguments) -NoPackageAnalysis -NonInteractive + + + + + + + + + + + + + + + + + diff --git a/Tools/nuget/make_zip.py b/Tools/nuget/make_zip.py new file mode 100644 index 0000000..af64323 --- /dev/null +++ b/Tools/nuget/make_zip.py @@ -0,0 +1,219 @@ +#! /usr/bin/python3 + +import argparse +import py_compile +import re +import sys +import shutil +import stat +import os +import tempfile + +from pathlib import Path +from zipfile import ZipFile, ZIP_DEFLATED +import subprocess + +TKTCL_RE = re.compile(r'^(_?tk|tcl).+\.(pyd|dll)', re.IGNORECASE) +DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe|pdb|lib)$', re.IGNORECASE) +PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE) + +DEBUG_FILES = { + '_ctypes_test', + '_testbuffer', + '_testcapi', + '_testimportmultiple', + '_testmultiphase', + 'xxlimited', + 'python3_dstub', +} + +EXCLUDE_FROM_LIBRARY = { + '__pycache__', + 'ensurepip', + 'idlelib', + 'pydoc_data', + 'site-packages', + 'tkinter', + 'turtledemo', + 'venv', +} + +EXCLUDE_FILE_FROM_LIBRARY = { + 'bdist_wininst.py', +} + +EXCLUDE_FILE_FROM_LIBS = { + 'ssleay', + 'libeay', + 'python3stub', +} + +def is_not_debug(p): + if DEBUG_RE.search(p.name): + return False + + if TKTCL_RE.search(p.name): + return False + + return p.stem.lower() not in DEBUG_FILES + +def is_not_debug_or_python(p): + return is_not_debug(p) and not PYTHON_DLL_RE.search(p.name) + +def include_in_lib(p): + name = p.name.lower() + if p.is_dir(): + if name in EXCLUDE_FROM_LIBRARY: + return False + if name.startswith('plat-'): + return False + if name == 'test' and p.parts[-2].lower() == 'lib': + return False + if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib': + return False + return True + + if name in EXCLUDE_FILE_FROM_LIBRARY: + return False + + suffix = p.suffix.lower() + return suffix not in {'.pyc', '.pyo', '.exe'} + +def include_in_libs(p): + if not is_not_debug(p): + return False + + return p.stem.lower() not in EXCLUDE_FILE_FROM_LIBS + +def include_in_tools(p): + if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}: + return True + + return p.suffix.lower() in {'.py', '.pyw', '.txt'} + +FULL_LAYOUT = [ + ('/', 'PCBuild/$arch', 'python.exe', is_not_debug), + ('/', 'PCBuild/$arch', 'pythonw.exe', is_not_debug), + ('/', 'PCBuild/$arch', 'python27.dll', None), + ('DLLs/', 'PCBuild/$arch', '*.pyd', is_not_debug), + ('DLLs/', 'PCBuild/$arch', '*.dll', is_not_debug_or_python), + ('include/', 'include', '*.h', None), + ('include/', 'PC', 'pyconfig.h', None), + ('Lib/', 'Lib', '**/*', include_in_lib), + ('libs/', 'PCBuild/$arch', '*.lib', include_in_libs), + ('Tools/', 'Tools', '**/*', include_in_tools), +] + +EMBED_LAYOUT = [ + ('/', 'PCBuild/$arch', 'python*.exe', is_not_debug), + ('/', 'PCBuild/$arch', '*.pyd', is_not_debug), + ('/', 'PCBuild/$arch', '*.dll', is_not_debug), + ('python{0.major}{0.minor}.zip'.format(sys.version_info), 'Lib', '**/*', include_in_lib), +] + +if os.getenv('DOC_FILENAME'): + FULL_LAYOUT.append(('Doc/', 'Doc/build/htmlhelp', os.getenv('DOC_FILENAME'), None)) +if os.getenv('VCREDIST_PATH'): + FULL_LAYOUT.append(('/', os.getenv('VCREDIST_PATH'), 'vcruntime*.dll', None)) + EMBED_LAYOUT.append(('/', os.getenv('VCREDIST_PATH'), 'vcruntime*.dll', None)) + +def copy_to_layout(target, rel_sources): + count = 0 + + if target.suffix.lower() == '.zip': + if target.exists(): + target.unlink() + + with ZipFile(str(target), 'w', ZIP_DEFLATED) as f: + with tempfile.TemporaryDirectory() as tmpdir: + for s, rel in rel_sources: + if rel.suffix.lower() == '.py': + pyc = Path(tmpdir) / rel.with_suffix('.pyc').name + try: + py_compile.compile(str(s), str(pyc), str(rel), doraise=True, optimize=2) + except py_compile.PyCompileError: + f.write(str(s), str(rel)) + else: + f.write(str(pyc), str(rel.with_suffix('.pyc'))) + else: + f.write(str(s), str(rel)) + count += 1 + + else: + for s, rel in rel_sources: + dest = target / rel + try: + dest.parent.mkdir(parents=True) + except FileExistsError: + pass + if dest.is_file(): + dest.chmod(stat.S_IWRITE) + shutil.copy(str(s), str(dest)) + if dest.is_file(): + dest.chmod(stat.S_IWRITE) + count += 1 + + return count + +def rglob(root, pattern, condition): + dirs = [root] + recurse = pattern[:3] in {'**/', '**\\'} + while dirs: + d = dirs.pop(0) + for f in d.glob(pattern[3:] if recurse else pattern): + if recurse and f.is_dir() and (not condition or condition(f)): + dirs.append(f) + elif f.is_file() and (not condition or condition(f)): + yield f, f.relative_to(root) + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('-s', '--source', metavar='dir', help='The directory containing the repository root', type=Path) + parser.add_argument('-o', '--out', metavar='file', help='The name of the output self-extracting archive', type=Path, default=None) + parser.add_argument('-t', '--temp', metavar='dir', help='A directory to temporarily extract files into', type=Path, default=None) + parser.add_argument('-e', '--embed', help='Create an embedding layout', action='store_true', default=False) + parser.add_argument('-a', '--arch', help='Specify the architecture to use (win32/amd64)', type=str, default="win32") + ns = parser.parse_args() + + source = ns.source or (Path(__file__).resolve().parent.parent.parent) + out = ns.out + arch = '' if ns.arch == 'win32' else ns.arch + assert isinstance(source, Path) + assert not out or isinstance(out, Path) + assert isinstance(arch, str) + + if ns.temp: + temp = ns.temp + delete_temp = False + else: + temp = Path(tempfile.mkdtemp()) + delete_temp = True + + if out: + try: + out.parent.mkdir(parents=True) + except FileExistsError: + pass + try: + temp.mkdir(parents=True) + except FileExistsError: + pass + + layout = EMBED_LAYOUT if ns.embed else FULL_LAYOUT + + try: + for t, s, p, c in layout: + s = source / s.replace("$arch", arch) + copied = copy_to_layout(temp / t.rstrip('/'), rglob(s, p, c)) + print('Copied {} files'.format(copied)) + + if out: + total = copy_to_layout(out, rglob(temp, '**/*', None)) + print('Wrote {} files to {}'.format(total, out)) + finally: + if delete_temp: + shutil.rmtree(temp, True) + + +if __name__ == "__main__": + sys.exit(int(main() or 0)) diff --git a/Tools/nuget/python2.nuspec b/Tools/nuget/python2.nuspec new file mode 100644 index 0000000..7c1a63d --- /dev/null +++ b/Tools/nuget/python2.nuspec @@ -0,0 +1,18 @@ + + + + python2 + Python 2.7 + 0.0.0.0 + Python Software Foundation + https://docs.python.org/2.7/license.html + https://www.python.org/ + false + Installs 64-bit Python 2.7 for use in build scenarios. + https://www.python.org/static/favicon.ico + python + + + + + diff --git a/Tools/nuget/python2x86.nuspec b/Tools/nuget/python2x86.nuspec new file mode 100644 index 0000000..6f43321 --- /dev/null +++ b/Tools/nuget/python2x86.nuspec @@ -0,0 +1,18 @@ + + + + python2x86 + Python 2.7 (32-bit) + Python Software Foundation + 0.0.0.0 + https://docs.python.org/2.7/license.html + https://www.python.org/ + false + Installs 32-bit Python 2.7 for use in build scenarios. + https://www.python.org/static/favicon.ico + python + + + + + diff --git a/Tools/scripts/fixcid.py b/Tools/scripts/fixcid.py index 58ec7ad..1b461b9 100755 --- a/Tools/scripts/fixcid.py +++ b/Tools/scripts/fixcid.py @@ -88,9 +88,9 @@ def main(): sys.exit(bad) # Change this regular expression to select a different set of files -Wanted = '^[a-zA-Z0-9_]+\.[ch]$' +Wanted = r'^[a-zA-Z0-9_]+\.[ch]$' def wanted(name): - return re.match(Wanted, name) >= 0 + return re.match(Wanted, name) def recursedown(dirname): dbg('recursedown(%r)\n' % (dirname,)) @@ -168,6 +168,7 @@ def fix(filename): if filename == '-': return 0 # Done in filter mode f.close() if not g: return 0 # No changes + g.close() # Finishing touch -- move files @@ -193,21 +194,21 @@ def fix(filename): # Tokenizing ANSI C (partly) -Identifier = '\(struct \)?[a-zA-Z_][a-zA-Z0-9_]+' -String = '"\([^\n\\"]\|\\\\.\)*"' -Char = '\'\([^\n\\\']\|\\\\.\)*\'' -CommentStart = '/\*' -CommentEnd = '\*/' +Identifier = '(struct )?[a-zA-Z_][a-zA-Z0-9_]+' +String = r'"([^\n\\"]|\\.)*"' +Char = r"'([^\n\\']|\\.)*'" +CommentStart = r'/\*' +CommentEnd = r'\*/' Hexnumber = '0[xX][0-9a-fA-F]*[uUlL]*' Octnumber = '0[0-7]*[uUlL]*' Decnumber = '[1-9][0-9]*[uUlL]*' -Intnumber = Hexnumber + '\|' + Octnumber + '\|' + Decnumber +Intnumber = Hexnumber + '|' + Octnumber + '|' + Decnumber Exponent = '[eE][-+]?[0-9]+' -Pointfloat = '\([0-9]+\.[0-9]*\|\.[0-9]+\)\(' + Exponent + '\)?' +Pointfloat = r'([0-9]+\.[0-9]*|\.[0-9]+)(' + Exponent + r')?' Expfloat = '[0-9]+' + Exponent -Floatnumber = Pointfloat + '\|' + Expfloat -Number = Floatnumber + '\|' + Intnumber +Floatnumber = Pointfloat + '|' + Expfloat +Number = Floatnumber + '|' + Intnumber # Anything else is an operator -- don't list this explicitly because of '/*' @@ -228,9 +229,10 @@ def fixline(line): ## print '-->', repr(line) i = 0 while i < len(line): - i = Program.search(line, i) - if i < 0: break - found = Program.group(0) + match = Program.search(line, i) + if match is None: break + i = match.start() + found = match.group(0) ## if Program is InsideCommentProgram: print '...', ## else: print ' ', ## print found @@ -240,14 +242,14 @@ def fixline(line): elif found == '*/': Program = OutsideCommentProgram n = len(found) - if Dict.has_key(found): + if found in Dict: subst = Dict[found] if Program is InsideCommentProgram: if not Docomments: print 'Found in comment:', found i = i + n continue - if NotInComment.has_key(found): + if found in NotInComment: ## print 'Ignored in comment:', ## print found, '-->', subst ## print 'Line:', line, @@ -292,7 +294,7 @@ def addsubst(substfile): if not words: continue if len(words) == 3 and words[0] == 'struct': words[:2] = [words[0] + ' ' + words[1]] - elif len(words) <> 2: + elif len(words) != 2: err(substfile + '%s:%r: warning: bad line: %r' % (substfile, lineno, line)) continue if Reverse: @@ -304,7 +306,7 @@ def addsubst(substfile): if key[0] == '*': key = key[1:] NotInComment[key] = value - if Dict.has_key(key): + if key in Dict: err('%s:%r: warning: overriding: %r %r\n' % (substfile, lineno, key, value)) err('%s:%r: warning: previous: %r\n' % (substfile, lineno, Dict[key])) Dict[key] = value diff --git a/Tools/scripts/redemo.py b/Tools/scripts/redemo.py index 2b5ade4..60dba5e 100755 --- a/Tools/scripts/redemo.py +++ b/Tools/scripts/redemo.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -"""Basic regular expression demostration facility (Perl style syntax).""" +"""Basic regular expression demonstration facility (Perl style syntax).""" from Tkinter import * import re diff --git a/aclocal.m4 b/aclocal.m4 index 7d25fb9..2a745e5 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12,32 +12,63 @@ # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) @@ -59,18 +90,19 @@ if test -n "$PKG_CONFIG"; then PKG_CONFIG="" fi fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ @@ -80,8 +112,10 @@ m4_ifvaln([$3], [else $3])dnl fi]) -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" @@ -93,10 +127,11 @@ m4_define([_PKG_CONFIG], else pkg_failed=untried fi[]dnl -])# _PKG_CONFIG +])dnl _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -104,19 +139,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then else _pkg_short_errors_supported=no fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl @@ -170,16 +203,40 @@ else AC_MSG_RESULT([yes]) $3 fi[]dnl -])# PKG_CHECK_MODULES +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -190,16 +247,18 @@ AC_ARG_WITH([pkgconfigdir], AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR +])dnl PKG_INSTALLDIR -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -210,13 +269,15 @@ AC_ARG_WITH([noarch-pkgconfigdir], AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR +])dnl PKG_NOARCH_INSTALLDIR -# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# ------------------------------------------- -# Retrieves the value of the pkg-config variable for the given module. +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl @@ -225,5 +286,5 @@ _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl -])# PKG_CHECK_VAR +])dnl PKG_CHECK_VAR diff --git a/config.guess b/config.guess index 1f5c50c..2e9ad7f 100755 --- a/config.guess +++ b/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -579,8 +603,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -617,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -662,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -679,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -789,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -878,7 +903,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -901,7 +926,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -932,6 +957,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -944,6 +972,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -969,6 +1000,9 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1001,6 +1035,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1020,7 +1057,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1099,7 +1136,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1248,6 +1285,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1261,9 +1301,9 @@ EOF UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1285,7 +1325,7 @@ EOF exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1316,7 +1356,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1358,7 +1398,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1369,23 +1409,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/config.sub b/config.sub index d654d03..3478c1f 100755 --- a/config.sub +++ b/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-05-01' +timestamp='2016-11-19' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2014-05-01' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +33,7 @@ timestamp='2014-05-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2014-05-01' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,12 +254,13 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -301,10 +301,12 @@ case $basic_machine in | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -312,6 +314,7 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -326,6 +329,9 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -371,12 +377,13 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -422,13 +429,15 @@ case $basic_machine in | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -436,6 +445,7 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -512,6 +522,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -632,6 +645,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -773,6 +794,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -828,6 +852,10 @@ case $basic_machine in basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -1004,7 +1032,7 @@ case $basic_machine in ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1014,7 +1042,7 @@ case $basic_machine in ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1360,27 +1388,28 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1512,6 +1541,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) diff --git a/configure b/configure index 6b8e37f..c01dfe0 100755 --- a/configure +++ b/configure @@ -3,7 +3,7 @@ # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for python 2.7. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -268,7 +268,7 @@ fi $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://bugs.python.org/ about your system, including +$0: https://bugs.python.org/ about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." @@ -583,7 +583,7 @@ PACKAGE_NAME='python' PACKAGE_TARNAME='python' PACKAGE_VERSION='2.7' PACKAGE_STRING='python 2.7' -PACKAGE_BUGREPORT='http://bugs.python.org/' +PACKAGE_BUGREPORT='https://bugs.python.org/' PACKAGE_URL='' ac_unique_file="Include/object.h" @@ -662,12 +662,19 @@ SO LIBTOOL_CRUFT OTHER_LIBTOOL_OPT LLVM_PROF_FOUND +target_os +target_vendor +target_cpu +target +LLVM_PROFDATA LLVM_PROF_ERR LLVM_PROF_FILE LLVM_PROF_MERGER PGO_PROF_USE_FLAG PGO_PROF_GEN_FLAG LTOFLAGS +DEF_MAKE_RULE +DEF_MAKE_ALL_RULE UNIVERSAL_ARCH_FLAGS BASECFLAGS OPT @@ -680,7 +687,6 @@ HAS_HG HGBRANCH HGTAG HGVERSION -BASECPPFLAGS SVNVERSION ARFLAGS ac_ct_AR @@ -735,6 +741,7 @@ UNIVERSALSDK CONFIG_ARGS SOVERSION VERSION +GENERATED_COMMENT PYTHON_FOR_BUILD host_os host_vendor @@ -744,7 +751,6 @@ build_os build_vendor build_cpu build -cross_compiling target_alias host_alias build_alias @@ -764,6 +770,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -797,6 +804,7 @@ with_suffix enable_shared enable_profiling with_pydebug +enable_optimizations with_lto enable_toolbox_glue with_libs @@ -874,6 +882,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1126,6 +1135,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1263,7 +1281,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1416,6 +1434,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1436,6 +1455,7 @@ _ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi @@ -1455,6 +1475,8 @@ Optional Features: Build (MacOSX|Darwin) framework --enable-shared disable/enable building shared python library --enable-profiling enable C-level code profiling + --enable-optimizations Enable expensive optimizations (PGO, maybe LTO, + etc). Disabled by default. --enable-toolbox-glue disable/enable MacOSX glue code for extensions --enable-ipv6 Enable ipv6 (with ipv4) support --disable-ipv6 Disable ipv6 support @@ -1533,7 +1555,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1755,9 +1777,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## -------------------------------------- ## -## Report this to http://bugs.python.org/ ## -## -------------------------------------- ##" +( $as_echo "## --------------------------------------- ## +## Report this to https://bugs.python.org/ ## +## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -2911,14 +2933,18 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; } $as_echo "$interp" >&6; } PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp fi + # Used to comment out stuff for rebuilding generated files + GENERATED_COMMENT='#' elif test "$cross_compiling" = maybe; then as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5 else PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' + GENERATED_COMMENT='' fi + if test "$prefix" != "/"; then prefix=`echo "$prefix" | sed -e 's/\/$//g'` fi @@ -5721,20 +5747,6 @@ else fi -if test "$abs_srcdir" != "$abs_builddir"; then - # If we're building out-of-tree make sure Include (in the current dir) - # gets picked up before its $srcdir counterpart in order for Python-ast.h - # and graminit.h to get picked up from the correct directory. - # (A side effect of this is that these resources will automatically be - # regenerated when building out-of-tree, regardless of whether or not - # the $srcdir counterpart is up-to-date. This is an acceptable trade - # off.) - BASECPPFLAGS="-IInclude" -else - BASECPPFLAGS="" -fi - - # Extract the first word of "hg", so it can be a program name with args. @@ -6370,6 +6382,46 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +# Enable optimization flags + + +Py_OPT='false' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-optimizations" >&5 +$as_echo_n "checking for --enable-optimizations... " >&6; } +# Check whether --enable-optimizations was given. +if test "${enable_optimizations+set}" = set; then : + enableval=$enable_optimizations; +if test "$withval" != no +then + Py_OPT='true' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; +else + Py_OPT='false' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +if test "$Py_OPT" = 'true' ; then + # Intentionally not forcing Py_LTO='true' here. Too many toolchains do not + # compile working code using it and both test_distutils and test_gdb are + # broken when you do managed to get a toolchain that works with it. People + # who want LTO need to use --with-lto themselves. + Py_LTO='true' + DEF_MAKE_ALL_RULE="profile-opt" + REQUIRE_PGO="yes" + DEF_MAKE_RULE="build_all" +else + DEF_MAKE_ALL_RULE="build_all" + REQUIRE_PGO="no" + DEF_MAKE_RULE="all" +fi + + # Enable LTO flags { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-lto" >&5 @@ -6419,25 +6471,84 @@ fi +# Make this work on systems where llvm tools are not installed with their +# normal names in the default $PATH (ie: Ubuntu). They exist under the +# non-suffixed name in their versioned llvm directory. +llvm_bin_dir='' +llvm_path="${PATH}" +if test "${CC}" = "clang" +then + clang_bin=`which clang` + # Some systems install clang elsewhere as a symlink to the real path + # which is where the related llvm tools are located. + if test -L "${clang_bin}" + then + clang_dir=`dirname "${clang_bin}"` + clang_bin=`readlink "${clang_bin}"` + llvm_bin_dir="${clang_dir}/"`dirname "${clang_bin}"` + llvm_path="${llvm_path}${PATH_SEPARATOR}${llvm_bin_dir}" + fi +fi -# Extract the first word of "llvm-profdata", so it can be a program name with args. -set dummy llvm-profdata; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- +# Extract the first word of "$target_alias-llvm-profdata", so it can be a program name with args. +set dummy $target_alias-llvm-profdata; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LLVM_PROF_FOUND+:} false; then : +if ${ac_cv_path_LLVM_PROFDATA+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$LLVM_PROF_FOUND"; then - ac_cv_prog_LLVM_PROF_FOUND="$LLVM_PROF_FOUND" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + case $LLVM_PROFDATA in + [\\/]* | ?:[\\/]*) + ac_cv_path_LLVM_PROFDATA="$LLVM_PROFDATA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LLVM_PROF_FOUND="found" + ac_cv_path_LLVM_PROFDATA="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6445,30 +6556,105 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_prog_LLVM_PROF_FOUND" && ac_cv_prog_LLVM_PROF_FOUND="not-found" + ;; +esac +fi +LLVM_PROFDATA=$ac_cv_path_LLVM_PROFDATA +if test -n "$LLVM_PROFDATA"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROFDATA" >&5 +$as_echo "$LLVM_PROFDATA" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + + +if test -z "$ac_cv_path_LLVM_PROFDATA"; then + if test "$build" = "$target"; then + ac_pt_LLVM_PROFDATA=$LLVM_PROFDATA + # Extract the first word of "llvm-profdata", so it can be a program name with args. +set dummy llvm-profdata; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_LLVM_PROFDATA+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_LLVM_PROFDATA in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_LLVM_PROFDATA="$ac_pt_LLVM_PROFDATA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in ${llvm_path} +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_LLVM_PROFDATA="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_ac_pt_LLVM_PROFDATA" && ac_cv_path_ac_pt_LLVM_PROFDATA="''" + ;; +esac fi -LLVM_PROF_FOUND=$ac_cv_prog_LLVM_PROF_FOUND -if test -n "$LLVM_PROF_FOUND"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROF_FOUND" >&5 -$as_echo "$LLVM_PROF_FOUND" >&6; } +ac_pt_LLVM_PROFDATA=$ac_cv_path_ac_pt_LLVM_PROFDATA +if test -n "$ac_pt_LLVM_PROFDATA"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_PROFDATA" >&5 +$as_echo "$ac_pt_LLVM_PROFDATA" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + LLVM_PROFDATA=$ac_pt_LLVM_PROFDATA + else + LLVM_PROFDATA="''" + fi +else + LLVM_PROFDATA="$ac_cv_path_LLVM_PROFDATA" +fi + +if test -n "${LLVM_PROFDATA}" -a -x "${LLVM_PROFDATA}" +then + LLVM_PROF_FOUND="found" +else + LLVM_PROF_FOUND="not-found" +fi +if test "$ac_sys_system" = "Darwin" -a "${LLVM_PROF_FOUND}" = "not-found" +then + found_llvm_profdata=`/usr/bin/xcrun -find llvm-profdata 2>/dev/null` + if test -n "${found_llvm_profdata}" + then + # llvm-profdata isn't directly in $PATH in some cases. + # https://apple.stackexchange.com/questions/197053/ + LLVM_PROFDATA='/usr/bin/xcrun llvm-profdata' + LLVM_PROF_FOUND=found + { $as_echo "$as_me:${as_lineno-$LINENO}: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&5 +$as_echo "$as_me: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&6;} + fi +fi LLVM_PROF_ERR=no case $CC in *clang*) # Any changes made here should be reflected in the GCC+Darwin case below PGO_PROF_GEN_FLAG="-fprofile-instr-generate" PGO_PROF_USE_FLAG="-fprofile-instr-use=code.profclangd" - LLVM_PROF_MERGER="llvm-profdata merge -output=code.profclangd *.profclangr" + LLVM_PROF_MERGER="${LLVM_PROFDATA} merge -output=code.profclangd *.profclangr" LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"code-%p.profclangr\"" if test $LLVM_PROF_FOUND = not-found then LLVM_PROF_ERR=yes + if test "${REQUIRE_PGO}" = "yes" + then + as_fn_error $? "llvm-profdata is required for a --enable-optimizations build but could not be found." "$LINENO" 5 + fi fi ;; *gcc*) @@ -6476,11 +6662,15 @@ case $CC in Darwin*) PGO_PROF_GEN_FLAG="-fprofile-instr-generate" PGO_PROF_USE_FLAG="-fprofile-instr-use=code.profclangd" - LLVM_PROF_MERGER="llvm-profdata merge -output=code.profclangd *.profclangr" + LLVM_PROF_MERGER="${LLVM_PROFDATA} merge -output=code.profclangd *.profclangr" LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"code-%p.profclangr\"" - if test $LLVM_PROF_FOUND = not-found + if test "${LLVM_PROF_FOUND}" = "not-found" then LLVM_PROF_ERR=yes + if test "${REQUIRE_PGO}" = "yes" + then + as_fn_error $? "llvm-profdata is required for a --enable-optimizations build but could not be found." "$LINENO" 5 + fi fi ;; *) @@ -8361,7 +8551,7 @@ if test -z "$LDSHARED" then case $ac_sys_system/$ac_sys_release in AIX*) - BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp" + BLDSHARED="Modules/ld_so_aix \$(CC) -bI:Modules/python.exp" LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp" ;; BeOS*) @@ -8733,48 +8923,6 @@ _ACEOF fi # Dynamic linking for HP-UX -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RAND_egd in -lcrypto" >&5 -$as_echo_n "checking for RAND_egd in -lcrypto... " >&6; } -if ${ac_cv_lib_crypto_RAND_egd+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char RAND_egd (); -int -main () -{ -return RAND_egd (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_RAND_egd=yes -else - ac_cv_lib_crypto_RAND_egd=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_RAND_egd" >&5 -$as_echo "$ac_cv_lib_crypto_RAND_egd" >&6; } -if test "x$ac_cv_lib_crypto_RAND_egd" = xyes; then : - -$as_echo "#define HAVE_RAND_EGD 1" >>confdefs.h - -fi - # only check for sem_init if thread support is requested if test "$with_threads" = "yes" -o -z "$with_threads"; then @@ -11754,6 +11902,8 @@ int main() break; } } + freeaddrinfo(aitop); + aitop = NULL; } if (!(inet4 == 0 || inet4 == 2)) @@ -15573,7 +15723,7 @@ $config_files Configuration headers: $config_headers -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -16344,3 +16494,12 @@ $as_echo "$as_me: WARNING: esac mv config.c Modules + +if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then + echo "" >&6 + echo "" >&6 + echo "If you want a release build with all optimizations active (LTO, PGO, etc)," + echo "please run ./configure --enable-optimizations" >&6 + echo "" >&6 + echo "" >&6 +fi diff --git a/configure.ac b/configure.ac index 06c877b..1273465 100644 --- a/configure.ac +++ b/configure.ac @@ -8,11 +8,10 @@ m4_define(PYTHON_VERSION, 2.7) AC_PREREQ(2.65) AC_REVISION($Revision$) -AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/) +AC_INIT(python, PYTHON_VERSION, https://bugs.python.org/) AC_CONFIG_SRCDIR([Include/object.h]) AC_CONFIG_HEADER(pyconfig.h) -AC_SUBST(cross_compiling) AC_CANONICAL_HOST AC_SUBST(build) AC_SUBST(host) @@ -36,12 +35,16 @@ if test "$cross_compiling" = yes; then AC_MSG_RESULT($interp) PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp fi + # Used to comment out stuff for rebuilding generated files + GENERATED_COMMENT='#' elif test "$cross_compiling" = maybe; then AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) else PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' + GENERATED_COMMENT='' fi AC_SUBST(PYTHON_FOR_BUILD) +AC_SUBST(GENERATED_COMMENT) dnl Ensure that if prefix is specified, it does not end in a slash. If dnl it does, we get path names containing '//' which is both ugly and @@ -985,20 +988,6 @@ else SVNVERSION="echo Unversioned directory" fi -AC_SUBST(BASECPPFLAGS) -if test "$abs_srcdir" != "$abs_builddir"; then - # If we're building out-of-tree make sure Include (in the current dir) - # gets picked up before its $srcdir counterpart in order for Python-ast.h - # and graminit.h to get picked up from the correct directory. - # (A side effect of this is that these resources will automatically be - # regenerated when building out-of-tree, regardless of whether or not - # the $srcdir counterpart is up-to-date. This is an acceptable trade - # off.) - BASECPPFLAGS="-IInclude" -else - BASECPPFLAGS="" -fi - AC_SUBST(HGVERSION) AC_SUBST(HGTAG) AC_SUBST(HGBRANCH) @@ -1377,6 +1366,38 @@ then fi +# Enable optimization flags +AC_SUBST(DEF_MAKE_ALL_RULE) +AC_SUBST(DEF_MAKE_RULE) +Py_OPT='false' +AC_MSG_CHECKING(for --enable-optimizations) +AC_ARG_ENABLE(optimizations, AS_HELP_STRING([--enable-optimizations], [Enable expensive optimizations (PGO, maybe LTO, etc). Disabled by default.]), +[ +if test "$withval" != no +then + Py_OPT='true' + AC_MSG_RESULT(yes); +else + Py_OPT='false' + AC_MSG_RESULT(no); +fi], +[AC_MSG_RESULT(no)]) +if test "$Py_OPT" = 'true' ; then + # Intentionally not forcing Py_LTO='true' here. Too many toolchains do not + # compile working code using it and both test_distutils and test_gdb are + # broken when you do managed to get a toolchain that works with it. People + # who want LTO need to use --with-lto themselves. + Py_LTO='true' + DEF_MAKE_ALL_RULE="profile-opt" + REQUIRE_PGO="yes" + DEF_MAKE_RULE="build_all" +else + DEF_MAKE_ALL_RULE="build_all" + REQUIRE_PGO="no" + DEF_MAKE_RULE="all" +fi + + # Enable LTO flags AC_SUBST(LTOFLAGS) AC_MSG_CHECKING(for --with-lto) @@ -1417,19 +1438,60 @@ AC_SUBST(PGO_PROF_USE_FLAG) AC_SUBST(LLVM_PROF_MERGER) AC_SUBST(LLVM_PROF_FILE) AC_SUBST(LLVM_PROF_ERR) +# Make this work on systems where llvm tools are not installed with their +# normal names in the default $PATH (ie: Ubuntu). They exist under the +# non-suffixed name in their versioned llvm directory. +llvm_bin_dir='' +llvm_path="${PATH}" +if test "${CC}" = "clang" +then + clang_bin=`which clang` + # Some systems install clang elsewhere as a symlink to the real path + # which is where the related llvm tools are located. + if test -L "${clang_bin}" + then + clang_dir=`dirname "${clang_bin}"` + clang_bin=`readlink "${clang_bin}"` + llvm_bin_dir="${clang_dir}/"`dirname "${clang_bin}"` + llvm_path="${llvm_path}${PATH_SEPARATOR}${llvm_bin_dir}" + fi +fi +AC_SUBST(LLVM_PROFDATA) +AC_PATH_TARGET_TOOL(LLVM_PROFDATA, llvm-profdata, '', ${llvm_path}) AC_SUBST(LLVM_PROF_FOUND) -AC_CHECK_PROG(LLVM_PROF_FOUND, llvm-profdata, found, not-found) +if test -n "${LLVM_PROFDATA}" -a -x "${LLVM_PROFDATA}" +then + LLVM_PROF_FOUND="found" +else + LLVM_PROF_FOUND="not-found" +fi +if test "$ac_sys_system" = "Darwin" -a "${LLVM_PROF_FOUND}" = "not-found" +then + found_llvm_profdata=`/usr/bin/xcrun -find llvm-profdata 2>/dev/null` + if test -n "${found_llvm_profdata}" + then + # llvm-profdata isn't directly in $PATH in some cases. + # https://apple.stackexchange.com/questions/197053/ + LLVM_PROFDATA='/usr/bin/xcrun llvm-profdata' + LLVM_PROF_FOUND=found + AC_MSG_NOTICE([llvm-profdata found via xcrun: ${LLVM_PROFDATA}]) + fi +fi LLVM_PROF_ERR=no case $CC in *clang*) # Any changes made here should be reflected in the GCC+Darwin case below PGO_PROF_GEN_FLAG="-fprofile-instr-generate" PGO_PROF_USE_FLAG="-fprofile-instr-use=code.profclangd" - LLVM_PROF_MERGER="llvm-profdata merge -output=code.profclangd *.profclangr" + LLVM_PROF_MERGER="${LLVM_PROFDATA} merge -output=code.profclangd *.profclangr" LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"code-%p.profclangr\"" if test $LLVM_PROF_FOUND = not-found then LLVM_PROF_ERR=yes + if test "${REQUIRE_PGO}" = "yes" + then + AC_MSG_ERROR([llvm-profdata is required for a --enable-optimizations build but could not be found.]) + fi fi ;; *gcc*) @@ -1437,11 +1499,15 @@ case $CC in Darwin*) PGO_PROF_GEN_FLAG="-fprofile-instr-generate" PGO_PROF_USE_FLAG="-fprofile-instr-use=code.profclangd" - LLVM_PROF_MERGER="llvm-profdata merge -output=code.profclangd *.profclangr" + LLVM_PROF_MERGER="${LLVM_PROFDATA} merge -output=code.profclangd *.profclangr" LLVM_PROF_FILE="LLVM_PROFILE_FILE=\"code-%p.profclangr\"" - if test $LLVM_PROF_FOUND = not-found + if test "${LLVM_PROF_FOUND}" = "not-found" then LLVM_PROF_ERR=yes + if test "${REQUIRE_PGO}" = "yes" + then + AC_MSG_ERROR([llvm-profdata is required for a --enable-optimizations build but could not be found.]) + fi fi ;; *) @@ -2058,7 +2124,7 @@ if test -z "$LDSHARED" then case $ac_sys_system/$ac_sys_release in AIX*) - BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp" + BLDSHARED="Modules/ld_so_aix \$(CC) -bI:Modules/python.exp" LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp" ;; BeOS*) @@ -2333,9 +2399,6 @@ AC_MSG_RESULT($SHLIBS) # checks for libraries AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX -AC_CHECK_LIB(crypto, RAND_egd, - AC_DEFINE(HAVE_RAND_EGD, 1, - [Define if the libcrypto has RAND_egd])) # only check for sem_init if thread support is requested if test "$with_threads" = "yes" -o -z "$with_threads"; then @@ -3422,6 +3485,8 @@ int main() break; } } + freeaddrinfo(aitop); + aitop = NULL; } if (!(inet4 == 0 || inet4 == 2)) @@ -4773,3 +4838,12 @@ BeOS) esac mv config.c Modules + +if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then + echo "" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD + echo "If you want a release build with all optimizations active (LTO, PGO, etc)," + echo "please run ./configure --enable-optimizations" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD + echo "" >&AS_MESSAGE_FD +fi diff --git a/pyconfig.h.in b/pyconfig.h.in index 7a62abf..062d490 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -550,9 +550,6 @@ /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV -/* Define if the libcrypto has RAND_egd */ -#undef HAVE_RAND_EGD - /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK diff --git a/setup.py b/setup.py index aa08ada..54054c2 100644 --- a/setup.py +++ b/setup.py @@ -1652,7 +1652,7 @@ class PyBuildExt(build_ext): if int(os.uname()[2].split('.')[0]) >= 8: # We're on Mac OS X 10.4 or later, the compiler should # support '-Wno-deprecated-declarations'. This will - # surpress deprecation warnings for the Carbon extensions, + # suppress deprecation warnings for the Carbon extensions, # these extensions wrap the Carbon APIs and even those # parts that are deprecated. carbon_extra_compile_args = ['-Wno-deprecated-declarations'] @@ -2132,14 +2132,16 @@ class PyBuildExt(build_ext): ffi_inc = find_file('ffi.h', [], inc_dirs) if ffi_inc is not None: ffi_h = ffi_inc[0] + '/ffi.h' - fp = open(ffi_h) - while 1: - line = fp.readline() - if not line: + with open(ffi_h) as f: + for line in f: + line = line.strip() + if line.startswith(('#define LIBFFI_H', + '#define ffi_wrapper_h')): + break + else: ffi_inc = None - break - if line.startswith('#define LIBFFI_H'): - break + print('Header file {} does not define LIBFFI_H or ' + 'ffi_wrapper_h'.format(ffi_h)) ffi_lib = None if ffi_inc is not None: for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): -- 2.7.4

    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