From 28e1a275b0421c13d1154b748629b02882f361de Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 6 Nov 2020 18:39:35 -0800 Subject: [PATCH 1/4] bpo-42131: Add PEP 451-related methods to zipimport --- Doc/library/zipimport.rst | 44 +- Doc/whatsnew/3.10.rst | 7 + Lib/test/test_zipimport.py | 41 +- Lib/zipimport.py | 34 +- .../2020-11-06-18-20-47.bpo-42131.l2rjjG.rst | 5 + Python/importlib_zipimport.h | 1909 +++++++++-------- 6 files changed, 1102 insertions(+), 938 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-11-06-18-20-47.bpo-42131.l2rjjG.rst diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 8ac3fb16bdb90d..8f8f71bc800c4f 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -44,9 +44,6 @@ doesn't contain :file:`.pyc` files, importing may be rather slow. follows the specification in :pep:`273`, but uses an implementation written by Just van Rossum that uses the import hooks described in :pep:`302`. - :pep:`302` - New Import Hooks - The PEP to add the import hooks that help this module work. - This module defines an exception: @@ -73,7 +70,31 @@ zipimporter Objects :exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid ZIP archive. - .. method:: find_module(fullname[, path]) + .. method:: create_module(spec) + + Implementation of :meth:`importlib.abc.Loader.create_module` that returns + :const:`None` for default semantics. + + .. versionadded:: 3.10 + + + .. method:: exec_module(module) + + Implementation of :meth:`importlib.abc.Loader.exec_module`. + + .. versionadded:: 3.10 + + + .. method:: find_loader(fullname, path=None) + + An implementation of :meth:`importlib.abc.PathEntryFinder.find_loader`. + + .. deprecated:: 3.10 + + Use :meth:`find_spec` instead. + + + .. method:: find_module(fullname, path=None) Search for a module specified by *fullname*. *fullname* must be the fully qualified (dotted) module name. It returns the zipimporter instance itself @@ -81,6 +102,17 @@ zipimporter Objects *path* argument is ignored---it's there for compatibility with the importer protocol. + .. deprecated:: 3.10 + + Use :meth:`find_spec` instead. + + + .. method:: find_spec(fullname, target=None) + + An implementation of :meth:`importlib.abc.PathEntryFinder.find_spec`. + + .. versionadded:: 3.10 + .. method:: get_code(fullname) @@ -126,6 +158,10 @@ zipimporter Objects qualified (dotted) module name. It returns the imported module, or raises :exc:`ZipImportError` if it wasn't found. + .. deprecated:: 3.10 + + Use :meth:`exec_module` instead. + .. attribute:: archive diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 1e6c7c4067f3fa..525665f3d6e818 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -263,6 +263,13 @@ Add a :class:`~xml.sax.handler.LexicalHandler` class to the :mod:`xml.sax.handler` module. (Contributed by Jonathan Gossage and Zackery Spytz in :issue:`35018`.) +zipimport +--------- +Add methods related to :pep:`451`: :meth:`~zipimport.zipimporter.find_spec`, +:meth:`zipimport.zipimporter.create_module`, and +:meth:`zipimport.zipimporter.exec_module`. +(Contributed by Brett Cannon in :issue:`42131`. + Optimizations ============= diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 8df7489f754d3f..6db202009e3575 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -452,6 +452,7 @@ def testZipImporterMethods(self): self.assertEqual(zi.archive, TEMP_ZIP) self.assertEqual(zi.is_package(TESTPACK), True) + # PEP 302 find_mod = zi.find_module('spam') self.assertIsNotNone(find_mod) self.assertIsInstance(find_mod, zipimport.zipimporter) @@ -462,6 +463,20 @@ def testZipImporterMethods(self): mod = zi.load_module(TESTPACK) self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) + # PEP 451 + spec = zi.find_spec('spam') + self.assertIsNotNone(spec) + self.assertIsInstance(spec.loader, zipimport.zipimporter) + self.assertFalse(spec.loader.is_package('spam')) + exec_mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(exec_mod) + self.assertEqual(spec.loader.get_filename('spam'), exec_mod.__file__) + + spec = zi.find_spec(TESTPACK) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) + existing_pack_path = importlib.import_module(TESTPACK).__path__[0] expected_path_path = os.path.join(TEMP_ZIP, TESTPACK) self.assertEqual(existing_pack_path, expected_path_path) @@ -479,7 +494,7 @@ def testZipImporterMethods(self): self.assertEqual(zi.get_filename(mod_path), mod.__file__) # To pass in the module name instead of the path, we must use the # right importer - loader = mod.__loader__ + loader = mod.__spec__.loader self.assertEqual(loader.get_source(mod_name), None) self.assertEqual(loader.get_filename(mod_name), mod.__file__) @@ -506,8 +521,14 @@ def testZipImporterMethodsInSubDirectory(self): self.assertEqual(zi.archive, TEMP_ZIP) self.assertEqual(zi.prefix, packdir) self.assertEqual(zi.is_package(TESTPACK2), True) + # PEP 302 mod = zi.load_module(TESTPACK2) self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__) + # PEP 451 + spec = zi.find_spec(TESTPACK2) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + self.assertEqual(spec.loader.get_filename(TESTPACK2), mod.__file__) self.assertEqual( zi.is_package(TESTPACK2 + os.sep + '__init__'), False) @@ -516,6 +537,7 @@ def testZipImporterMethodsInSubDirectory(self): pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 zi2 = zipimport.zipimporter(pkg_path) + # PEP 302 find_mod_dotted = zi2.find_module(TESTMOD) self.assertIsNotNone(find_mod_dotted) self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) @@ -524,6 +546,16 @@ def testZipImporterMethodsInSubDirectory(self): self.assertEqual( find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) + # PEP 451 + spec = zi2.find_spec(TESTMOD) + self.assertIsNotNone(spec) + self.assertIsInstance(spec.loader, zipimport.zipimporter) + self.assertFalse(spec.loader.is_package(TESTMOD)) + load_mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(load_mod) + self.assertEqual( + spec.loader.get_filename(TESTMOD), load_mod.__file__) + mod_path = TESTPACK2 + os.sep + TESTMOD mod_name = module_path_to_dotted_name(mod_path) mod = importlib.import_module(mod_name) @@ -655,7 +687,9 @@ def testUnencodable(self): zinfo = ZipInfo(TESTMOD + ".py", time.localtime(NOW)) zinfo.compress_type = self.compression z.writestr(zinfo, test_src) - zipimport.zipimporter(filename).load_module(TESTMOD) + spec = zipimport.zipimporter(filename).find_spec(TESTMOD) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) def testBytesPath(self): filename = os_helper.TESTFN + ".zip" @@ -747,6 +781,8 @@ def _testBogusZipFile(self): try: self.assertRaises(TypeError, z.find_module, None) + self.assertRaises(TypeError, z.find_spec, None) + self.assertRaises(TypeError, z.exec_module, None) self.assertRaises(TypeError, z.load_module, None) self.assertRaises(TypeError, z.is_package, None) self.assertRaises(TypeError, z.get_code, None) @@ -755,6 +791,7 @@ def _testBogusZipFile(self): error = zipimport.ZipImportError self.assertEqual(z.find_module('abc'), None) + self.assertEqual(z.find_spec('abc'), None) self.assertRaises(error, z.load_module, 'abc') self.assertRaises(error, z.get_code, 'abc') diff --git a/Lib/zipimport.py b/Lib/zipimport.py index 080e0c4d986d63..2e5188a4a0aa54 100644 --- a/Lib/zipimport.py +++ b/Lib/zipimport.py @@ -42,7 +42,7 @@ class ZipImportError(ImportError): STRING_END_ARCHIVE = b'PK\x05\x06' MAX_COMMENT_LEN = (1 << 16) - 1 -class zipimporter: +class zipimporter(_bootstrap_external._LoaderBasics): """zipimporter(archivepath) -> zipimporter object Create a new zipimporter instance. 'archivepath' must be a path to @@ -115,6 +115,8 @@ def find_loader(self, fullname, path=None): full path name if it's possibly a portion of a namespace package, or None otherwise. The optional 'path' argument is ignored -- it's there for compatibility with the importer protocol. + + Deprecated since Python 3.10. Use find_spec() instead. """ mi = _get_module_info(self, fullname) if mi is not None: @@ -146,9 +148,37 @@ def find_module(self, fullname, path=None): instance itself if the module was found, or None if it wasn't. The optional 'path' argument is ignored -- it's there for compatibility with the importer protocol. + + Deprecated since Python 3.10. Use find_spec() instead. """ return self.find_loader(fullname, path)[0] + def find_spec(self, fullname, target=None): + """Create a ModuleSpec for the specified module. + + Returns None if the module cannot be found. + """ + module_info = _get_module_info(self, fullname) + if module_info is not None: + return _bootstrap.spec_from_loader(fullname, self, is_package=module_info) + else: + # Not a module or regular package. See if this is a directory, and + # therefore possibly a portion of a namespace package. + + # We're only interested in the last path component of fullname + # earlier components are recorded in self.prefix. + modpath = _get_module_path(self, fullname) + if _is_dir(self, modpath): + # This is possibly a portion of a namespace + # package. Return the string representing its path, + # without a trailing separator. + path = f'{self.archive}{path_sep}{modpath}' + spec = _bootstrap.ModuleSpec(name=fullname, loader=None, + is_package=True) + spec.submodule_search_locations.append(path) + return spec + else: + return None def get_code(self, fullname): """get_code(fullname) -> code object. @@ -237,6 +267,8 @@ def load_module(self, fullname): Load the module specified by 'fullname'. 'fullname' must be the fully qualified (dotted) module name. It returns the imported module, or raises ZipImportError if it wasn't found. + + Deprecated since Python 3.10. use exec_module() instead. """ code, ispackage, modpath = _get_module_code(self, fullname) mod = sys.modules.get(fullname) diff --git a/Misc/NEWS.d/next/Library/2020-11-06-18-20-47.bpo-42131.l2rjjG.rst b/Misc/NEWS.d/next/Library/2020-11-06-18-20-47.bpo-42131.l2rjjG.rst new file mode 100644 index 00000000000000..4381f5e9754c21 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-11-06-18-20-47.bpo-42131.l2rjjG.rst @@ -0,0 +1,5 @@ +Implement PEP 451/spec methods on zipimport.zipimporter: find_spec(), +create_module(), and exec_module(). + +This also allows for the documented deprecation of find_loader(), +find_module(), and load_module(). diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h index a70d7d2fe78070..17e7e9e7094393 100644 --- a/Python/importlib_zipimport.h +++ b/Python/importlib_zipimport.h @@ -1,7 +1,7 @@ /* Auto-generated by Programs/_freeze_importlib.c */ const unsigned char _Py_M__zipimport[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,64,0,0,0,115,68,1,0,0,100,0, + 0,4,0,0,0,64,0,0,0,115,72,1,0,0,100,0, 90,0,100,1,100,2,108,1,90,2,100,1,100,3,108,1, 109,3,90,3,109,4,90,4,1,0,100,1,100,2,108,5, 90,6,100,1,100,2,108,7,90,7,100,1,100,2,108,8, @@ -11,388 +11,429 @@ const unsigned char _Py_M__zipimport[] = { 133,2,25,0,90,15,71,0,100,7,100,4,132,0,100,4, 101,16,131,3,90,17,105,0,90,18,101,19,101,10,131,1, 90,20,100,8,90,21,100,9,90,22,100,10,90,23,71,0, - 100,11,100,5,132,0,100,5,131,2,90,24,101,13,100,12, - 23,0,100,13,100,13,102,3,101,13,100,14,23,0,100,15, - 100,13,102,3,100,16,100,17,102,4,90,25,100,18,100,19, - 132,0,90,26,100,20,100,21,132,0,90,27,100,22,100,23, - 132,0,90,28,100,24,100,25,132,0,90,29,100,26,90,30, - 100,15,97,31,100,27,100,28,132,0,90,32,100,29,100,30, - 132,0,90,33,100,31,100,32,132,0,90,34,100,33,100,34, - 132,0,90,35,101,19,101,35,106,36,131,1,90,37,100,35, - 100,36,132,0,90,38,100,37,100,38,132,0,90,39,100,39, - 100,40,132,0,90,40,100,41,100,42,132,0,90,41,100,43, - 100,44,132,0,90,42,100,45,100,46,132,0,90,43,100,2, - 83,0,41,47,97,80,2,0,0,122,105,112,105,109,112,111, - 114,116,32,112,114,111,118,105,100,101,115,32,115,117,112,112, - 111,114,116,32,102,111,114,32,105,109,112,111,114,116,105,110, - 103,32,80,121,116,104,111,110,32,109,111,100,117,108,101,115, - 32,102,114,111,109,32,90,105,112,32,97,114,99,104,105,118, - 101,115,46,10,10,84,104,105,115,32,109,111,100,117,108,101, - 32,101,120,112,111,114,116,115,32,116,104,114,101,101,32,111, - 98,106,101,99,116,115,58,10,45,32,122,105,112,105,109,112, - 111,114,116,101,114,58,32,97,32,99,108,97,115,115,59,32, - 105,116,115,32,99,111,110,115,116,114,117,99,116,111,114,32, - 116,97,107,101,115,32,97,32,112,97,116,104,32,116,111,32, - 97,32,90,105,112,32,97,114,99,104,105,118,101,46,10,45, - 32,90,105,112,73,109,112,111,114,116,69,114,114,111,114,58, - 32,101,120,99,101,112,116,105,111,110,32,114,97,105,115,101, - 100,32,98,121,32,122,105,112,105,109,112,111,114,116,101,114, - 32,111,98,106,101,99,116,115,46,32,73,116,39,115,32,97, - 10,32,32,115,117,98,99,108,97,115,115,32,111,102,32,73, - 109,112,111,114,116,69,114,114,111,114,44,32,115,111,32,105, - 116,32,99,97,110,32,98,101,32,99,97,117,103,104,116,32, - 97,115,32,73,109,112,111,114,116,69,114,114,111,114,44,32, - 116,111,111,46,10,45,32,95,122,105,112,95,100,105,114,101, - 99,116,111,114,121,95,99,97,99,104,101,58,32,97,32,100, - 105,99,116,44,32,109,97,112,112,105,110,103,32,97,114,99, - 104,105,118,101,32,112,97,116,104,115,32,116,111,32,122,105, - 112,32,100,105,114,101,99,116,111,114,121,10,32,32,105,110, - 102,111,32,100,105,99,116,115,44,32,97,115,32,117,115,101, - 100,32,105,110,32,122,105,112,105,109,112,111,114,116,101,114, - 46,95,102,105,108,101,115,46,10,10,73,116,32,105,115,32, - 117,115,117,97,108,108,121,32,110,111,116,32,110,101,101,100, - 101,100,32,116,111,32,117,115,101,32,116,104,101,32,122,105, - 112,105,109,112,111,114,116,32,109,111,100,117,108,101,32,101, - 120,112,108,105,99,105,116,108,121,59,32,105,116,32,105,115, - 10,117,115,101,100,32,98,121,32,116,104,101,32,98,117,105, - 108,116,105,110,32,105,109,112,111,114,116,32,109,101,99,104, - 97,110,105,115,109,32,102,111,114,32,115,121,115,46,112,97, - 116,104,32,105,116,101,109,115,32,116,104,97,116,32,97,114, - 101,32,112,97,116,104,115,10,116,111,32,90,105,112,32,97, - 114,99,104,105,118,101,115,46,10,233,0,0,0,0,78,41, - 2,218,14,95,117,110,112,97,99,107,95,117,105,110,116,49, - 54,218,14,95,117,110,112,97,99,107,95,117,105,110,116,51, - 50,218,14,90,105,112,73,109,112,111,114,116,69,114,114,111, - 114,218,11,122,105,112,105,109,112,111,114,116,101,114,233,1, - 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,64,0,0,0,115,12,0,0, - 0,101,0,90,1,100,0,90,2,100,1,83,0,41,2,114, - 3,0,0,0,78,41,3,218,8,95,95,110,97,109,101,95, - 95,218,10,95,95,109,111,100,117,108,101,95,95,218,12,95, - 95,113,117,97,108,110,97,109,101,95,95,169,0,114,9,0, - 0,0,114,9,0,0,0,250,18,60,102,114,111,122,101,110, - 32,122,105,112,105,109,112,111,114,116,62,114,3,0,0,0, - 33,0,0,0,115,2,0,0,0,8,1,233,22,0,0,0, - 115,4,0,0,0,80,75,5,6,105,255,255,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,64,0,0,0,115,108,0,0,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4, - 100,25,100,5,100,6,132,1,90,5,100,26,100,7,100,8, - 132,1,90,6,100,9,100,10,132,0,90,7,100,11,100,12, - 132,0,90,8,100,13,100,14,132,0,90,9,100,15,100,16, - 132,0,90,10,100,17,100,18,132,0,90,11,100,19,100,20, - 132,0,90,12,100,21,100,22,132,0,90,13,100,23,100,24, - 132,0,90,14,100,4,83,0,41,27,114,4,0,0,0,97, - 255,1,0,0,122,105,112,105,109,112,111,114,116,101,114,40, - 97,114,99,104,105,118,101,112,97,116,104,41,32,45,62,32, - 122,105,112,105,109,112,111,114,116,101,114,32,111,98,106,101, - 99,116,10,10,32,32,32,32,67,114,101,97,116,101,32,97, - 32,110,101,119,32,122,105,112,105,109,112,111,114,116,101,114, - 32,105,110,115,116,97,110,99,101,46,32,39,97,114,99,104, - 105,118,101,112,97,116,104,39,32,109,117,115,116,32,98,101, - 32,97,32,112,97,116,104,32,116,111,10,32,32,32,32,97, - 32,122,105,112,102,105,108,101,44,32,111,114,32,116,111,32, - 97,32,115,112,101,99,105,102,105,99,32,112,97,116,104,32, - 105,110,115,105,100,101,32,97,32,122,105,112,102,105,108,101, - 46,32,70,111,114,32,101,120,97,109,112,108,101,44,32,105, - 116,32,99,97,110,32,98,101,10,32,32,32,32,39,47,116, - 109,112,47,109,121,105,109,112,111,114,116,46,122,105,112,39, - 44,32,111,114,32,39,47,116,109,112,47,109,121,105,109,112, - 111,114,116,46,122,105,112,47,109,121,100,105,114,101,99,116, - 111,114,121,39,44,32,105,102,32,109,121,100,105,114,101,99, - 116,111,114,121,32,105,115,32,97,10,32,32,32,32,118,97, - 108,105,100,32,100,105,114,101,99,116,111,114,121,32,105,110, - 115,105,100,101,32,116,104,101,32,97,114,99,104,105,118,101, - 46,10,10,32,32,32,32,39,90,105,112,73,109,112,111,114, - 116,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 32,105,102,32,39,97,114,99,104,105,118,101,112,97,116,104, - 39,32,100,111,101,115,110,39,116,32,112,111,105,110,116,32, - 116,111,32,97,32,118,97,108,105,100,32,90,105,112,10,32, - 32,32,32,97,114,99,104,105,118,101,46,10,10,32,32,32, - 32,84,104,101,32,39,97,114,99,104,105,118,101,39,32,97, - 116,116,114,105,98,117,116,101,32,111,102,32,122,105,112,105, - 109,112,111,114,116,101,114,32,111,98,106,101,99,116,115,32, - 99,111,110,116,97,105,110,115,32,116,104,101,32,110,97,109, - 101,32,111,102,32,116,104,101,10,32,32,32,32,122,105,112, - 102,105,108,101,32,116,97,114,103,101,116,101,100,46,10,32, - 32,32,32,99,2,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,9,0,0,0,67,0,0,0,115,32,1,0, - 0,116,0,124,1,116,1,131,2,115,28,100,1,100,0,108, - 2,125,2,124,2,160,3,124,1,161,1,125,1,124,1,115, - 44,116,4,100,2,124,1,100,3,141,2,130,1,116,5,114, - 60,124,1,160,6,116,5,116,7,161,2,125,1,103,0,125, - 3,122,14,116,8,160,9,124,1,161,1,125,4,87,0,110, - 70,4,0,116,10,116,11,102,2,121,148,1,0,1,0,1, - 0,116,8,160,12,124,1,161,1,92,2,125,5,125,6,124, - 5,124,1,107,2,114,130,116,4,100,4,124,1,100,3,141, - 2,130,1,124,5,125,1,124,3,160,13,124,6,161,1,1, - 0,89,0,113,64,48,0,124,4,106,14,100,5,64,0,100, - 6,107,3,114,180,116,4,100,4,124,1,100,3,141,2,130, - 1,113,180,113,64,122,12,116,15,124,1,25,0,125,7,87, - 0,110,34,4,0,116,16,121,226,1,0,1,0,1,0,116, - 17,124,1,131,1,125,7,124,7,116,15,124,1,60,0,89, - 0,110,2,48,0,124,7,124,0,95,18,124,1,124,0,95, - 19,116,8,106,20,124,3,100,0,100,0,100,7,133,3,25, - 0,142,0,124,0,95,21,124,0,106,21,144,1,114,28,124, - 0,4,0,106,21,116,7,55,0,2,0,95,21,100,0,83, - 0,41,8,78,114,0,0,0,0,122,21,97,114,99,104,105, - 118,101,32,112,97,116,104,32,105,115,32,101,109,112,116,121, - 169,1,218,4,112,97,116,104,122,14,110,111,116,32,97,32, - 90,105,112,32,102,105,108,101,105,0,240,0,0,105,0,128, - 0,0,233,255,255,255,255,41,22,218,10,105,115,105,110,115, - 116,97,110,99,101,218,3,115,116,114,218,2,111,115,90,8, - 102,115,100,101,99,111,100,101,114,3,0,0,0,218,12,97, - 108,116,95,112,97,116,104,95,115,101,112,218,7,114,101,112, - 108,97,99,101,218,8,112,97,116,104,95,115,101,112,218,19, - 95,98,111,111,116,115,116,114,97,112,95,101,120,116,101,114, - 110,97,108,90,10,95,112,97,116,104,95,115,116,97,116,218, - 7,79,83,69,114,114,111,114,218,10,86,97,108,117,101,69, - 114,114,111,114,90,11,95,112,97,116,104,95,115,112,108,105, - 116,218,6,97,112,112,101,110,100,90,7,115,116,95,109,111, - 100,101,218,20,95,122,105,112,95,100,105,114,101,99,116,111, - 114,121,95,99,97,99,104,101,218,8,75,101,121,69,114,114, - 111,114,218,15,95,114,101,97,100,95,100,105,114,101,99,116, - 111,114,121,218,6,95,102,105,108,101,115,218,7,97,114,99, - 104,105,118,101,218,10,95,112,97,116,104,95,106,111,105,110, - 218,6,112,114,101,102,105,120,41,8,218,4,115,101,108,102, - 114,13,0,0,0,114,17,0,0,0,114,31,0,0,0,90, - 2,115,116,90,7,100,105,114,110,97,109,101,90,8,98,97, - 115,101,110,97,109,101,218,5,102,105,108,101,115,114,9,0, - 0,0,114,9,0,0,0,114,10,0,0,0,218,8,95,95, - 105,110,105,116,95,95,63,0,0,0,115,58,0,0,0,0, - 1,10,1,8,1,10,1,4,1,12,1,4,1,12,2,4, - 2,2,1,14,1,16,3,14,1,8,1,12,1,4,1,16, - 3,14,2,12,1,4,2,2,1,12,1,12,1,8,1,14, - 1,6,1,6,2,22,1,8,1,122,20,122,105,112,105,109, - 112,111,114,116,101,114,46,95,95,105,110,105,116,95,95,78, - 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,4,0,0,0,67,0,0,0,115,78,0,0,0,116,0, - 124,0,124,1,131,2,125,3,124,3,100,1,117,1,114,26, - 124,0,103,0,102,2,83,0,116,1,124,0,124,1,131,2, - 125,4,116,2,124,0,124,4,131,2,114,70,100,1,124,0, - 106,3,155,0,116,4,155,0,124,4,155,0,157,3,103,1, - 102,2,83,0,100,1,103,0,102,2,83,0,41,2,97,239, - 1,0,0,102,105,110,100,95,108,111,97,100,101,114,40,102, - 117,108,108,110,97,109,101,44,32,112,97,116,104,61,78,111, - 110,101,41,32,45,62,32,115,101,108,102,44,32,115,116,114, - 32,111,114,32,78,111,110,101,46,10,10,32,32,32,32,32, - 32,32,32,83,101,97,114,99,104,32,102,111,114,32,97,32, - 109,111,100,117,108,101,32,115,112,101,99,105,102,105,101,100, - 32,98,121,32,39,102,117,108,108,110,97,109,101,39,46,32, - 39,102,117,108,108,110,97,109,101,39,32,109,117,115,116,32, - 98,101,32,116,104,101,10,32,32,32,32,32,32,32,32,102, - 117,108,108,121,32,113,117,97,108,105,102,105,101,100,32,40, - 100,111,116,116,101,100,41,32,109,111,100,117,108,101,32,110, - 97,109,101,46,32,73,116,32,114,101,116,117,114,110,115,32, - 116,104,101,32,122,105,112,105,109,112,111,114,116,101,114,10, - 32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101, - 32,105,116,115,101,108,102,32,105,102,32,116,104,101,32,109, - 111,100,117,108,101,32,119,97,115,32,102,111,117,110,100,44, - 32,97,32,115,116,114,105,110,103,32,99,111,110,116,97,105, - 110,105,110,103,32,116,104,101,10,32,32,32,32,32,32,32, - 32,102,117,108,108,32,112,97,116,104,32,110,97,109,101,32, - 105,102,32,105,116,39,115,32,112,111,115,115,105,98,108,121, - 32,97,32,112,111,114,116,105,111,110,32,111,102,32,97,32, - 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103, - 101,44,10,32,32,32,32,32,32,32,32,111,114,32,78,111, - 110,101,32,111,116,104,101,114,119,105,115,101,46,32,84,104, - 101,32,111,112,116,105,111,110,97,108,32,39,112,97,116,104, - 39,32,97,114,103,117,109,101,110,116,32,105,115,32,105,103, - 110,111,114,101,100,32,45,45,32,105,116,39,115,10,32,32, - 32,32,32,32,32,32,116,104,101,114,101,32,102,111,114,32, - 99,111,109,112,97,116,105,98,105,108,105,116,121,32,119,105, - 116,104,32,116,104,101,32,105,109,112,111,114,116,101,114,32, - 112,114,111,116,111,99,111,108,46,10,32,32,32,32,32,32, - 32,32,78,41,5,218,16,95,103,101,116,95,109,111,100,117, - 108,101,95,105,110,102,111,218,16,95,103,101,116,95,109,111, - 100,117,108,101,95,112,97,116,104,218,7,95,105,115,95,100, - 105,114,114,29,0,0,0,114,20,0,0,0,41,5,114,32, - 0,0,0,218,8,102,117,108,108,110,97,109,101,114,13,0, - 0,0,218,2,109,105,218,7,109,111,100,112,97,116,104,114, - 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,11, - 102,105,110,100,95,108,111,97,100,101,114,109,0,0,0,115, - 14,0,0,0,0,10,10,1,8,2,8,7,10,1,10,4, - 24,2,122,23,122,105,112,105,109,112,111,114,116,101,114,46, - 102,105,110,100,95,108,111,97,100,101,114,99,3,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0, - 67,0,0,0,115,16,0,0,0,124,0,160,0,124,1,124, - 2,161,2,100,1,25,0,83,0,41,2,97,139,1,0,0, - 102,105,110,100,95,109,111,100,117,108,101,40,102,117,108,108, - 110,97,109,101,44,32,112,97,116,104,61,78,111,110,101,41, - 32,45,62,32,115,101,108,102,32,111,114,32,78,111,110,101, - 46,10,10,32,32,32,32,32,32,32,32,83,101,97,114,99, - 104,32,102,111,114,32,97,32,109,111,100,117,108,101,32,115, - 112,101,99,105,102,105,101,100,32,98,121,32,39,102,117,108, - 108,110,97,109,101,39,46,32,39,102,117,108,108,110,97,109, - 101,39,32,109,117,115,116,32,98,101,32,116,104,101,10,32, - 32,32,32,32,32,32,32,102,117,108,108,121,32,113,117,97, - 108,105,102,105,101,100,32,40,100,111,116,116,101,100,41,32, - 109,111,100,117,108,101,32,110,97,109,101,46,32,73,116,32, - 114,101,116,117,114,110,115,32,116,104,101,32,122,105,112,105, - 109,112,111,114,116,101,114,10,32,32,32,32,32,32,32,32, - 105,110,115,116,97,110,99,101,32,105,116,115,101,108,102,32, - 105,102,32,116,104,101,32,109,111,100,117,108,101,32,119,97, - 115,32,102,111,117,110,100,44,32,111,114,32,78,111,110,101, - 32,105,102,32,105,116,32,119,97,115,110,39,116,46,10,32, - 32,32,32,32,32,32,32,84,104,101,32,111,112,116,105,111, - 110,97,108,32,39,112,97,116,104,39,32,97,114,103,117,109, - 101,110,116,32,105,115,32,105,103,110,111,114,101,100,32,45, - 45,32,105,116,39,115,32,116,104,101,114,101,32,102,111,114, - 32,99,111,109,112,97,116,105,98,105,108,105,116,121,10,32, - 32,32,32,32,32,32,32,119,105,116,104,32,116,104,101,32, - 105,109,112,111,114,116,101,114,32,112,114,111,116,111,99,111, - 108,46,10,32,32,32,32,32,32,32,32,114,0,0,0,0, - 41,1,114,41,0,0,0,41,3,114,32,0,0,0,114,38, - 0,0,0,114,13,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,218,11,102,105,110,100,95,109,111, - 100,117,108,101,141,0,0,0,115,2,0,0,0,0,9,122, - 23,122,105,112,105,109,112,111,114,116,101,114,46,102,105,110, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,67,0,0, - 0,115,20,0,0,0,116,0,124,0,124,1,131,2,92,3, - 125,2,125,3,125,4,124,2,83,0,41,1,122,163,103,101, - 116,95,99,111,100,101,40,102,117,108,108,110,97,109,101,41, - 32,45,62,32,99,111,100,101,32,111,98,106,101,99,116,46, - 10,10,32,32,32,32,32,32,32,32,82,101,116,117,114,110, - 32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,116, - 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105, - 101,100,32,109,111,100,117,108,101,46,32,82,97,105,115,101, - 32,90,105,112,73,109,112,111,114,116,69,114,114,111,114,10, - 32,32,32,32,32,32,32,32,105,102,32,116,104,101,32,109, - 111,100,117,108,101,32,99,111,117,108,100,110,39,116,32,98, - 101,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32, - 32,169,1,218,16,95,103,101,116,95,109,111,100,117,108,101, - 95,99,111,100,101,169,5,114,32,0,0,0,114,38,0,0, - 0,218,4,99,111,100,101,218,9,105,115,112,97,99,107,97, - 103,101,114,40,0,0,0,114,9,0,0,0,114,9,0,0, - 0,114,10,0,0,0,218,8,103,101,116,95,99,111,100,101, - 153,0,0,0,115,4,0,0,0,0,6,16,1,122,20,122, - 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,99, - 111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,8,0,0,0,67,0,0,0,115,116,0,0, - 0,116,0,114,16,124,1,160,1,116,0,116,2,161,2,125, - 1,124,1,125,2,124,1,160,3,124,0,106,4,116,2,23, - 0,161,1,114,58,124,1,116,5,124,0,106,4,116,2,23, - 0,131,1,100,1,133,2,25,0,125,2,122,14,124,0,106, - 6,124,2,25,0,125,3,87,0,110,30,4,0,116,7,121, - 102,1,0,1,0,1,0,116,8,100,2,100,3,124,2,131, - 3,130,1,89,0,110,2,48,0,116,9,124,0,106,4,124, - 3,131,2,83,0,41,4,122,154,103,101,116,95,100,97,116, - 97,40,112,97,116,104,110,97,109,101,41,32,45,62,32,115, - 116,114,105,110,103,32,119,105,116,104,32,102,105,108,101,32, - 100,97,116,97,46,10,10,32,32,32,32,32,32,32,32,82, - 101,116,117,114,110,32,116,104,101,32,100,97,116,97,32,97, - 115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,39, - 112,97,116,104,110,97,109,101,39,46,32,82,97,105,115,101, - 32,79,83,69,114,114,111,114,32,105,102,10,32,32,32,32, - 32,32,32,32,116,104,101,32,102,105,108,101,32,119,97,115, - 110,39,116,32,102,111,117,110,100,46,10,32,32,32,32,32, - 32,32,32,78,114,0,0,0,0,218,0,41,10,114,18,0, - 0,0,114,19,0,0,0,114,20,0,0,0,218,10,115,116, - 97,114,116,115,119,105,116,104,114,29,0,0,0,218,3,108, - 101,110,114,28,0,0,0,114,26,0,0,0,114,22,0,0, - 0,218,9,95,103,101,116,95,100,97,116,97,41,4,114,32, - 0,0,0,218,8,112,97,116,104,110,97,109,101,90,3,107, - 101,121,218,9,116,111,99,95,101,110,116,114,121,114,9,0, - 0,0,114,9,0,0,0,114,10,0,0,0,218,8,103,101, - 116,95,100,97,116,97,163,0,0,0,115,20,0,0,0,0, - 6,4,1,12,2,4,1,16,1,22,2,2,1,14,1,12, - 1,18,1,122,20,122,105,112,105,109,112,111,114,116,101,114, - 46,103,101,116,95,100,97,116,97,99,2,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,67,0, - 0,0,115,20,0,0,0,116,0,124,0,124,1,131,2,92, - 3,125,2,125,3,125,4,124,4,83,0,41,1,122,106,103, - 101,116,95,102,105,108,101,110,97,109,101,40,102,117,108,108, - 110,97,109,101,41,32,45,62,32,102,105,108,101,110,97,109, - 101,32,115,116,114,105,110,103,46,10,10,32,32,32,32,32, - 32,32,32,82,101,116,117,114,110,32,116,104,101,32,102,105, - 108,101,110,97,109,101,32,102,111,114,32,116,104,101,32,115, - 112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,46, - 10,32,32,32,32,32,32,32,32,114,43,0,0,0,114,45, + 100,11,100,5,132,0,100,5,101,2,106,24,131,3,90,25, + 101,13,100,12,23,0,100,13,100,13,102,3,101,13,100,14, + 23,0,100,15,100,13,102,3,100,16,100,17,102,4,90,26, + 100,18,100,19,132,0,90,27,100,20,100,21,132,0,90,28, + 100,22,100,23,132,0,90,29,100,24,100,25,132,0,90,30, + 100,26,90,31,100,15,97,32,100,27,100,28,132,0,90,33, + 100,29,100,30,132,0,90,34,100,31,100,32,132,0,90,35, + 100,33,100,34,132,0,90,36,101,19,101,36,106,37,131,1, + 90,38,100,35,100,36,132,0,90,39,100,37,100,38,132,0, + 90,40,100,39,100,40,132,0,90,41,100,41,100,42,132,0, + 90,42,100,43,100,44,132,0,90,43,100,45,100,46,132,0, + 90,44,100,2,83,0,41,47,97,80,2,0,0,122,105,112, + 105,109,112,111,114,116,32,112,114,111,118,105,100,101,115,32, + 115,117,112,112,111,114,116,32,102,111,114,32,105,109,112,111, + 114,116,105,110,103,32,80,121,116,104,111,110,32,109,111,100, + 117,108,101,115,32,102,114,111,109,32,90,105,112,32,97,114, + 99,104,105,118,101,115,46,10,10,84,104,105,115,32,109,111, + 100,117,108,101,32,101,120,112,111,114,116,115,32,116,104,114, + 101,101,32,111,98,106,101,99,116,115,58,10,45,32,122,105, + 112,105,109,112,111,114,116,101,114,58,32,97,32,99,108,97, + 115,115,59,32,105,116,115,32,99,111,110,115,116,114,117,99, + 116,111,114,32,116,97,107,101,115,32,97,32,112,97,116,104, + 32,116,111,32,97,32,90,105,112,32,97,114,99,104,105,118, + 101,46,10,45,32,90,105,112,73,109,112,111,114,116,69,114, + 114,111,114,58,32,101,120,99,101,112,116,105,111,110,32,114, + 97,105,115,101,100,32,98,121,32,122,105,112,105,109,112,111, + 114,116,101,114,32,111,98,106,101,99,116,115,46,32,73,116, + 39,115,32,97,10,32,32,115,117,98,99,108,97,115,115,32, + 111,102,32,73,109,112,111,114,116,69,114,114,111,114,44,32, + 115,111,32,105,116,32,99,97,110,32,98,101,32,99,97,117, + 103,104,116,32,97,115,32,73,109,112,111,114,116,69,114,114, + 111,114,44,32,116,111,111,46,10,45,32,95,122,105,112,95, + 100,105,114,101,99,116,111,114,121,95,99,97,99,104,101,58, + 32,97,32,100,105,99,116,44,32,109,97,112,112,105,110,103, + 32,97,114,99,104,105,118,101,32,112,97,116,104,115,32,116, + 111,32,122,105,112,32,100,105,114,101,99,116,111,114,121,10, + 32,32,105,110,102,111,32,100,105,99,116,115,44,32,97,115, + 32,117,115,101,100,32,105,110,32,122,105,112,105,109,112,111, + 114,116,101,114,46,95,102,105,108,101,115,46,10,10,73,116, + 32,105,115,32,117,115,117,97,108,108,121,32,110,111,116,32, + 110,101,101,100,101,100,32,116,111,32,117,115,101,32,116,104, + 101,32,122,105,112,105,109,112,111,114,116,32,109,111,100,117, + 108,101,32,101,120,112,108,105,99,105,116,108,121,59,32,105, + 116,32,105,115,10,117,115,101,100,32,98,121,32,116,104,101, + 32,98,117,105,108,116,105,110,32,105,109,112,111,114,116,32, + 109,101,99,104,97,110,105,115,109,32,102,111,114,32,115,121, + 115,46,112,97,116,104,32,105,116,101,109,115,32,116,104,97, + 116,32,97,114,101,32,112,97,116,104,115,10,116,111,32,90, + 105,112,32,97,114,99,104,105,118,101,115,46,10,233,0,0, + 0,0,78,41,2,218,14,95,117,110,112,97,99,107,95,117, + 105,110,116,49,54,218,14,95,117,110,112,97,99,107,95,117, + 105,110,116,51,50,218,14,90,105,112,73,109,112,111,114,116, + 69,114,114,111,114,218,11,122,105,112,105,109,112,111,114,116, + 101,114,233,1,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0, + 115,12,0,0,0,101,0,90,1,100,0,90,2,100,1,83, + 0,41,2,114,3,0,0,0,78,41,3,218,8,95,95,110, + 97,109,101,95,95,218,10,95,95,109,111,100,117,108,101,95, + 95,218,12,95,95,113,117,97,108,110,97,109,101,95,95,169, + 0,114,9,0,0,0,114,9,0,0,0,250,18,60,102,114, + 111,122,101,110,32,122,105,112,105,109,112,111,114,116,62,114, + 3,0,0,0,33,0,0,0,115,2,0,0,0,8,1,233, + 22,0,0,0,115,4,0,0,0,80,75,5,6,105,255,255, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,64,0,0,0,115,118,0,0,0, + 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3, + 132,0,90,4,100,27,100,5,100,6,132,1,90,5,100,28, + 100,7,100,8,132,1,90,6,100,29,100,9,100,10,132,1, + 90,7,100,11,100,12,132,0,90,8,100,13,100,14,132,0, + 90,9,100,15,100,16,132,0,90,10,100,17,100,18,132,0, + 90,11,100,19,100,20,132,0,90,12,100,21,100,22,132,0, + 90,13,100,23,100,24,132,0,90,14,100,25,100,26,132,0, + 90,15,100,4,83,0,41,30,114,4,0,0,0,97,255,1, + 0,0,122,105,112,105,109,112,111,114,116,101,114,40,97,114, + 99,104,105,118,101,112,97,116,104,41,32,45,62,32,122,105, + 112,105,109,112,111,114,116,101,114,32,111,98,106,101,99,116, + 10,10,32,32,32,32,67,114,101,97,116,101,32,97,32,110, + 101,119,32,122,105,112,105,109,112,111,114,116,101,114,32,105, + 110,115,116,97,110,99,101,46,32,39,97,114,99,104,105,118, + 101,112,97,116,104,39,32,109,117,115,116,32,98,101,32,97, + 32,112,97,116,104,32,116,111,10,32,32,32,32,97,32,122, + 105,112,102,105,108,101,44,32,111,114,32,116,111,32,97,32, + 115,112,101,99,105,102,105,99,32,112,97,116,104,32,105,110, + 115,105,100,101,32,97,32,122,105,112,102,105,108,101,46,32, + 70,111,114,32,101,120,97,109,112,108,101,44,32,105,116,32, + 99,97,110,32,98,101,10,32,32,32,32,39,47,116,109,112, + 47,109,121,105,109,112,111,114,116,46,122,105,112,39,44,32, + 111,114,32,39,47,116,109,112,47,109,121,105,109,112,111,114, + 116,46,122,105,112,47,109,121,100,105,114,101,99,116,111,114, + 121,39,44,32,105,102,32,109,121,100,105,114,101,99,116,111, + 114,121,32,105,115,32,97,10,32,32,32,32,118,97,108,105, + 100,32,100,105,114,101,99,116,111,114,121,32,105,110,115,105, + 100,101,32,116,104,101,32,97,114,99,104,105,118,101,46,10, + 10,32,32,32,32,39,90,105,112,73,109,112,111,114,116,69, + 114,114,111,114,32,105,115,32,114,97,105,115,101,100,32,105, + 102,32,39,97,114,99,104,105,118,101,112,97,116,104,39,32, + 100,111,101,115,110,39,116,32,112,111,105,110,116,32,116,111, + 32,97,32,118,97,108,105,100,32,90,105,112,10,32,32,32, + 32,97,114,99,104,105,118,101,46,10,10,32,32,32,32,84, + 104,101,32,39,97,114,99,104,105,118,101,39,32,97,116,116, + 114,105,98,117,116,101,32,111,102,32,122,105,112,105,109,112, + 111,114,116,101,114,32,111,98,106,101,99,116,115,32,99,111, + 110,116,97,105,110,115,32,116,104,101,32,110,97,109,101,32, + 111,102,32,116,104,101,10,32,32,32,32,122,105,112,102,105, + 108,101,32,116,97,114,103,101,116,101,100,46,10,32,32,32, + 32,99,2,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,9,0,0,0,67,0,0,0,115,32,1,0,0,116, + 0,124,1,116,1,131,2,115,28,100,1,100,0,108,2,125, + 2,124,2,160,3,124,1,161,1,125,1,124,1,115,44,116, + 4,100,2,124,1,100,3,141,2,130,1,116,5,114,60,124, + 1,160,6,116,5,116,7,161,2,125,1,103,0,125,3,122, + 14,116,8,160,9,124,1,161,1,125,4,87,0,110,70,4, + 0,116,10,116,11,102,2,121,148,1,0,1,0,1,0,116, + 8,160,12,124,1,161,1,92,2,125,5,125,6,124,5,124, + 1,107,2,114,130,116,4,100,4,124,1,100,3,141,2,130, + 1,124,5,125,1,124,3,160,13,124,6,161,1,1,0,89, + 0,113,64,48,0,124,4,106,14,100,5,64,0,100,6,107, + 3,114,180,116,4,100,4,124,1,100,3,141,2,130,1,113, + 180,113,64,122,12,116,15,124,1,25,0,125,7,87,0,110, + 34,4,0,116,16,121,226,1,0,1,0,1,0,116,17,124, + 1,131,1,125,7,124,7,116,15,124,1,60,0,89,0,110, + 2,48,0,124,7,124,0,95,18,124,1,124,0,95,19,116, + 8,106,20,124,3,100,0,100,0,100,7,133,3,25,0,142, + 0,124,0,95,21,124,0,106,21,144,1,114,28,124,0,4, + 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,41, + 8,78,114,0,0,0,0,122,21,97,114,99,104,105,118,101, + 32,112,97,116,104,32,105,115,32,101,109,112,116,121,169,1, + 218,4,112,97,116,104,122,14,110,111,116,32,97,32,90,105, + 112,32,102,105,108,101,105,0,240,0,0,105,0,128,0,0, + 233,255,255,255,255,41,22,218,10,105,115,105,110,115,116,97, + 110,99,101,218,3,115,116,114,218,2,111,115,90,8,102,115, + 100,101,99,111,100,101,114,3,0,0,0,218,12,97,108,116, + 95,112,97,116,104,95,115,101,112,218,7,114,101,112,108,97, + 99,101,218,8,112,97,116,104,95,115,101,112,218,19,95,98, + 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97, + 108,90,10,95,112,97,116,104,95,115,116,97,116,218,7,79, + 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114, + 111,114,90,11,95,112,97,116,104,95,115,112,108,105,116,218, + 6,97,112,112,101,110,100,90,7,115,116,95,109,111,100,101, + 218,20,95,122,105,112,95,100,105,114,101,99,116,111,114,121, + 95,99,97,99,104,101,218,8,75,101,121,69,114,114,111,114, + 218,15,95,114,101,97,100,95,100,105,114,101,99,116,111,114, + 121,218,6,95,102,105,108,101,115,218,7,97,114,99,104,105, + 118,101,218,10,95,112,97,116,104,95,106,111,105,110,218,6, + 112,114,101,102,105,120,41,8,218,4,115,101,108,102,114,13, + 0,0,0,114,17,0,0,0,114,31,0,0,0,90,2,115, + 116,90,7,100,105,114,110,97,109,101,90,8,98,97,115,101, + 110,97,109,101,218,5,102,105,108,101,115,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,8,95,95,105,110, + 105,116,95,95,63,0,0,0,115,58,0,0,0,0,1,10, + 1,8,1,10,1,4,1,12,1,4,1,12,2,4,2,2, + 1,14,1,16,3,14,1,8,1,12,1,4,1,16,3,14, + 2,12,1,4,2,2,1,12,1,12,1,8,1,14,1,6, + 1,6,2,22,1,8,1,122,20,122,105,112,105,109,112,111, + 114,116,101,114,46,95,95,105,110,105,116,95,95,78,99,3, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4, + 0,0,0,67,0,0,0,115,78,0,0,0,116,0,124,0, + 124,1,131,2,125,3,124,3,100,1,117,1,114,26,124,0, + 103,0,102,2,83,0,116,1,124,0,124,1,131,2,125,4, + 116,2,124,0,124,4,131,2,114,70,100,1,124,0,106,3, + 155,0,116,4,155,0,124,4,155,0,157,3,103,1,102,2, + 83,0,100,1,103,0,102,2,83,0,41,2,97,47,2,0, + 0,102,105,110,100,95,108,111,97,100,101,114,40,102,117,108, + 108,110,97,109,101,44,32,112,97,116,104,61,78,111,110,101, + 41,32,45,62,32,115,101,108,102,44,32,115,116,114,32,111, + 114,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32, + 32,83,101,97,114,99,104,32,102,111,114,32,97,32,109,111, + 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98, + 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102, + 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101, + 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108, + 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111, + 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109, + 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104, + 101,32,122,105,112,105,109,112,111,114,116,101,114,10,32,32, + 32,32,32,32,32,32,105,110,115,116,97,110,99,101,32,105, + 116,115,101,108,102,32,105,102,32,116,104,101,32,109,111,100, + 117,108,101,32,119,97,115,32,102,111,117,110,100,44,32,97, + 32,115,116,114,105,110,103,32,99,111,110,116,97,105,110,105, + 110,103,32,116,104,101,10,32,32,32,32,32,32,32,32,102, + 117,108,108,32,112,97,116,104,32,110,97,109,101,32,105,102, + 32,105,116,39,115,32,112,111,115,115,105,98,108,121,32,97, + 32,112,111,114,116,105,111,110,32,111,102,32,97,32,110,97, + 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,44, + 10,32,32,32,32,32,32,32,32,111,114,32,78,111,110,101, + 32,111,116,104,101,114,119,105,115,101,46,32,84,104,101,32, + 111,112,116,105,111,110,97,108,32,39,112,97,116,104,39,32, + 97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,111, + 114,101,100,32,45,45,32,105,116,39,115,10,32,32,32,32, + 32,32,32,32,116,104,101,114,101,32,102,111,114,32,99,111, + 109,112,97,116,105,98,105,108,105,116,121,32,119,105,116,104, + 32,116,104,101,32,105,109,112,111,114,116,101,114,32,112,114, + 111,116,111,99,111,108,46,10,10,32,32,32,32,32,32,32, + 32,68,101,112,114,101,99,97,116,101,100,32,115,105,110,99, + 101,32,80,121,116,104,111,110,32,51,46,49,48,46,32,85, + 115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,105, + 110,115,116,101,97,100,46,10,32,32,32,32,32,32,32,32, + 78,41,5,218,16,95,103,101,116,95,109,111,100,117,108,101, + 95,105,110,102,111,218,16,95,103,101,116,95,109,111,100,117, + 108,101,95,112,97,116,104,218,7,95,105,115,95,100,105,114, + 114,29,0,0,0,114,20,0,0,0,41,5,114,32,0,0, + 0,218,8,102,117,108,108,110,97,109,101,114,13,0,0,0, + 218,2,109,105,218,7,109,111,100,112,97,116,104,114,9,0, + 0,0,114,9,0,0,0,114,10,0,0,0,218,11,102,105, + 110,100,95,108,111,97,100,101,114,109,0,0,0,115,14,0, + 0,0,0,12,10,1,8,2,8,7,10,1,10,4,24,2, + 122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,105, + 110,100,95,108,111,97,100,101,114,99,3,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0, + 0,0,115,16,0,0,0,124,0,160,0,124,1,124,2,161, + 2,100,1,25,0,83,0,41,2,97,203,1,0,0,102,105, + 110,100,95,109,111,100,117,108,101,40,102,117,108,108,110,97, + 109,101,44,32,112,97,116,104,61,78,111,110,101,41,32,45, + 62,32,115,101,108,102,32,111,114,32,78,111,110,101,46,10, + 10,32,32,32,32,32,32,32,32,83,101,97,114,99,104,32, + 102,111,114,32,97,32,109,111,100,117,108,101,32,115,112,101, + 99,105,102,105,101,100,32,98,121,32,39,102,117,108,108,110, + 97,109,101,39,46,32,39,102,117,108,108,110,97,109,101,39, + 32,109,117,115,116,32,98,101,32,116,104,101,10,32,32,32, + 32,32,32,32,32,102,117,108,108,121,32,113,117,97,108,105, + 102,105,101,100,32,40,100,111,116,116,101,100,41,32,109,111, + 100,117,108,101,32,110,97,109,101,46,32,73,116,32,114,101, + 116,117,114,110,115,32,116,104,101,32,122,105,112,105,109,112, + 111,114,116,101,114,10,32,32,32,32,32,32,32,32,105,110, + 115,116,97,110,99,101,32,105,116,115,101,108,102,32,105,102, + 32,116,104,101,32,109,111,100,117,108,101,32,119,97,115,32, + 102,111,117,110,100,44,32,111,114,32,78,111,110,101,32,105, + 102,32,105,116,32,119,97,115,110,39,116,46,10,32,32,32, + 32,32,32,32,32,84,104,101,32,111,112,116,105,111,110,97, + 108,32,39,112,97,116,104,39,32,97,114,103,117,109,101,110, + 116,32,105,115,32,105,103,110,111,114,101,100,32,45,45,32, + 105,116,39,115,32,116,104,101,114,101,32,102,111,114,32,99, + 111,109,112,97,116,105,98,105,108,105,116,121,10,32,32,32, + 32,32,32,32,32,119,105,116,104,32,116,104,101,32,105,109, + 112,111,114,116,101,114,32,112,114,111,116,111,99,111,108,46, + 10,10,32,32,32,32,32,32,32,32,68,101,112,114,101,99, + 97,116,101,100,32,115,105,110,99,101,32,80,121,116,104,111, + 110,32,51,46,49,48,46,32,85,115,101,32,102,105,110,100, + 95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,46, + 10,32,32,32,32,32,32,32,32,114,0,0,0,0,41,1, + 114,41,0,0,0,41,3,114,32,0,0,0,114,38,0,0, + 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,11,102,105,110,100,95,109,111,100,117, + 108,101,143,0,0,0,115,2,0,0,0,0,11,122,23,122, + 105,112,105,109,112,111,114,116,101,114,46,102,105,110,100,95, + 109,111,100,117,108,101,99,3,0,0,0,0,0,0,0,0, + 0,0,0,7,0,0,0,5,0,0,0,67,0,0,0,115, + 108,0,0,0,116,0,124,0,124,1,131,2,125,3,124,3, + 100,1,117,1,114,34,116,1,106,2,124,1,124,0,124,3, + 100,2,141,3,83,0,116,3,124,0,124,1,131,2,125,4, + 116,4,124,0,124,4,131,2,114,104,124,0,106,5,155,0, + 116,6,155,0,124,4,155,0,157,3,125,5,116,1,106,7, + 124,1,100,1,100,3,100,4,141,3,125,6,124,6,106,8, + 160,9,124,5,161,1,1,0,124,6,83,0,100,1,83,0, + 41,5,122,107,67,114,101,97,116,101,32,97,32,77,111,100, + 117,108,101,83,112,101,99,32,102,111,114,32,116,104,101,32, + 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101, + 46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,114, + 110,115,32,78,111,110,101,32,105,102,32,116,104,101,32,109, + 111,100,117,108,101,32,99,97,110,110,111,116,32,98,101,32, + 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,78, + 41,1,218,10,105,115,95,112,97,99,107,97,103,101,84,41, + 3,218,4,110,97,109,101,90,6,108,111,97,100,101,114,114, + 43,0,0,0,41,10,114,35,0,0,0,218,10,95,98,111, + 111,116,115,116,114,97,112,90,16,115,112,101,99,95,102,114, + 111,109,95,108,111,97,100,101,114,114,36,0,0,0,114,37, + 0,0,0,114,29,0,0,0,114,20,0,0,0,90,10,77, + 111,100,117,108,101,83,112,101,99,90,26,115,117,98,109,111, + 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97, + 116,105,111,110,115,114,24,0,0,0,41,7,114,32,0,0, + 0,114,38,0,0,0,90,6,116,97,114,103,101,116,90,11, + 109,111,100,117,108,101,95,105,110,102,111,114,40,0,0,0, + 114,13,0,0,0,90,4,115,112,101,99,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,9,102,105,110,100, + 95,115,112,101,99,156,0,0,0,115,24,0,0,0,0,5, + 10,1,8,1,16,7,10,1,10,4,18,1,8,1,2,255, + 6,2,12,1,4,2,122,21,122,105,112,105,109,112,111,114, + 116,101,114,46,102,105,110,100,95,115,112,101,99,99,2,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,67,0,0,0,115,20,0,0,0,116,0,124,0,124, + 1,131,2,92,3,125,2,125,3,125,4,124,2,83,0,41, + 1,122,163,103,101,116,95,99,111,100,101,40,102,117,108,108, + 110,97,109,101,41,32,45,62,32,99,111,100,101,32,111,98, + 106,101,99,116,46,10,10,32,32,32,32,32,32,32,32,82, + 101,116,117,114,110,32,116,104,101,32,99,111,100,101,32,111, + 98,106,101,99,116,32,102,111,114,32,116,104,101,32,115,112, + 101,99,105,102,105,101,100,32,109,111,100,117,108,101,46,32, + 82,97,105,115,101,32,90,105,112,73,109,112,111,114,116,69, + 114,114,111,114,10,32,32,32,32,32,32,32,32,105,102,32, + 116,104,101,32,109,111,100,117,108,101,32,99,111,117,108,100, + 110,39,116,32,98,101,32,102,111,117,110,100,46,10,32,32, + 32,32,32,32,32,32,169,1,218,16,95,103,101,116,95,109, + 111,100,117,108,101,95,99,111,100,101,169,5,114,32,0,0, + 0,114,38,0,0,0,218,4,99,111,100,101,218,9,105,115, + 112,97,99,107,97,103,101,114,40,0,0,0,114,9,0,0, + 0,114,9,0,0,0,114,10,0,0,0,218,8,103,101,116, + 95,99,111,100,101,183,0,0,0,115,4,0,0,0,0,6, + 16,1,122,20,122,105,112,105,109,112,111,114,116,101,114,46, + 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,8,0,0,0,67,0,0, + 0,115,116,0,0,0,116,0,114,16,124,1,160,1,116,0, + 116,2,161,2,125,1,124,1,125,2,124,1,160,3,124,0, + 106,4,116,2,23,0,161,1,114,58,124,1,116,5,124,0, + 106,4,116,2,23,0,131,1,100,1,133,2,25,0,125,2, + 122,14,124,0,106,6,124,2,25,0,125,3,87,0,110,30, + 4,0,116,7,121,102,1,0,1,0,1,0,116,8,100,2, + 100,3,124,2,131,3,130,1,89,0,110,2,48,0,116,9, + 124,0,106,4,124,3,131,2,83,0,41,4,122,154,103,101, + 116,95,100,97,116,97,40,112,97,116,104,110,97,109,101,41, + 32,45,62,32,115,116,114,105,110,103,32,119,105,116,104,32, + 102,105,108,101,32,100,97,116,97,46,10,10,32,32,32,32, + 32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,100, + 97,116,97,32,97,115,115,111,99,105,97,116,101,100,32,119, + 105,116,104,32,39,112,97,116,104,110,97,109,101,39,46,32, + 82,97,105,115,101,32,79,83,69,114,114,111,114,32,105,102, + 10,32,32,32,32,32,32,32,32,116,104,101,32,102,105,108, + 101,32,119,97,115,110,39,116,32,102,111,117,110,100,46,10, + 32,32,32,32,32,32,32,32,78,114,0,0,0,0,218,0, + 41,10,114,18,0,0,0,114,19,0,0,0,114,20,0,0, + 0,218,10,115,116,97,114,116,115,119,105,116,104,114,29,0, + 0,0,218,3,108,101,110,114,28,0,0,0,114,26,0,0, + 0,114,22,0,0,0,218,9,95,103,101,116,95,100,97,116, + 97,41,4,114,32,0,0,0,218,8,112,97,116,104,110,97, + 109,101,90,3,107,101,121,218,9,116,111,99,95,101,110,116, + 114,121,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,218,8,103,101,116,95,100,97,116,97,193,0,0,0,115, + 20,0,0,0,0,6,4,1,12,2,4,1,16,1,22,2, + 2,1,14,1,12,1,18,1,122,20,122,105,112,105,109,112, + 111,114,116,101,114,46,103,101,116,95,100,97,116,97,99,2, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, + 0,0,0,67,0,0,0,115,20,0,0,0,116,0,124,0, + 124,1,131,2,92,3,125,2,125,3,125,4,124,4,83,0, + 41,1,122,106,103,101,116,95,102,105,108,101,110,97,109,101, + 40,102,117,108,108,110,97,109,101,41,32,45,62,32,102,105, + 108,101,110,97,109,101,32,115,116,114,105,110,103,46,10,10, + 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116, + 104,101,32,102,105,108,101,110,97,109,101,32,102,111,114,32, + 116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111, + 100,117,108,101,46,10,32,32,32,32,32,32,32,32,114,47, + 0,0,0,114,49,0,0,0,114,9,0,0,0,114,9,0, + 0,0,114,10,0,0,0,218,12,103,101,116,95,102,105,108, + 101,110,97,109,101,214,0,0,0,115,4,0,0,0,0,7, + 16,1,122,24,122,105,112,105,109,112,111,114,116,101,114,46, + 103,101,116,95,102,105,108,101,110,97,109,101,99,2,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0, + 0,67,0,0,0,115,126,0,0,0,116,0,124,0,124,1, + 131,2,125,2,124,2,100,1,117,0,114,36,116,1,100,2, + 124,1,155,2,157,2,124,1,100,3,141,2,130,1,116,2, + 124,0,124,1,131,2,125,3,124,2,114,64,116,3,160,4, + 124,3,100,4,161,2,125,4,110,10,124,3,155,0,100,5, + 157,2,125,4,122,14,124,0,106,5,124,4,25,0,125,5, + 87,0,110,20,4,0,116,6,121,108,1,0,1,0,1,0, + 89,0,100,1,83,0,48,0,116,7,124,0,106,8,124,5, + 131,2,160,9,161,0,83,0,41,6,122,253,103,101,116,95, + 115,111,117,114,99,101,40,102,117,108,108,110,97,109,101,41, + 32,45,62,32,115,111,117,114,99,101,32,115,116,114,105,110, + 103,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, + 114,110,32,116,104,101,32,115,111,117,114,99,101,32,99,111, + 100,101,32,102,111,114,32,116,104,101,32,115,112,101,99,105, + 102,105,101,100,32,109,111,100,117,108,101,46,32,82,97,105, + 115,101,32,90,105,112,73,109,112,111,114,116,69,114,114,111, + 114,10,32,32,32,32,32,32,32,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,99,111,117,108,100,110,39,116, + 32,98,101,32,102,111,117,110,100,44,32,114,101,116,117,114, + 110,32,78,111,110,101,32,105,102,32,116,104,101,32,97,114, + 99,104,105,118,101,32,100,111,101,115,10,32,32,32,32,32, + 32,32,32,99,111,110,116,97,105,110,32,116,104,101,32,109, + 111,100,117,108,101,44,32,98,117,116,32,104,97,115,32,110, + 111,32,115,111,117,114,99,101,32,102,111,114,32,105,116,46, + 10,32,32,32,32,32,32,32,32,78,250,18,99,97,110,39, + 116,32,102,105,110,100,32,109,111,100,117,108,101,32,169,1, + 114,44,0,0,0,250,11,95,95,105,110,105,116,95,95,46, + 112,121,250,3,46,112,121,41,10,114,35,0,0,0,114,3, + 0,0,0,114,36,0,0,0,114,21,0,0,0,114,30,0, + 0,0,114,28,0,0,0,114,26,0,0,0,114,56,0,0, + 0,114,29,0,0,0,218,6,100,101,99,111,100,101,41,6, + 114,32,0,0,0,114,38,0,0,0,114,39,0,0,0,114, + 13,0,0,0,218,8,102,117,108,108,112,97,116,104,114,58, 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,218,12,103,101,116,95,102,105,108,101,110,97,109,101, - 184,0,0,0,115,4,0,0,0,0,7,16,1,122,24,122, - 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,102, - 105,108,101,110,97,109,101,99,2,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,8,0,0,0,67,0,0,0, - 115,126,0,0,0,116,0,124,0,124,1,131,2,125,2,124, + 0,0,218,10,103,101,116,95,115,111,117,114,99,101,225,0, + 0,0,115,24,0,0,0,0,7,10,1,8,1,18,2,10, + 1,4,1,14,2,10,2,2,1,14,1,12,2,8,1,122, + 22,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116, + 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,0, + 115,40,0,0,0,116,0,124,0,124,1,131,2,125,2,124, 2,100,1,117,0,114,36,116,1,100,2,124,1,155,2,157, - 2,124,1,100,3,141,2,130,1,116,2,124,0,124,1,131, - 2,125,3,124,2,114,64,116,3,160,4,124,3,100,4,161, - 2,125,4,110,10,124,3,155,0,100,5,157,2,125,4,122, - 14,124,0,106,5,124,4,25,0,125,5,87,0,110,20,4, - 0,116,6,121,108,1,0,1,0,1,0,89,0,100,1,83, - 0,48,0,116,7,124,0,106,8,124,5,131,2,160,9,161, - 0,83,0,41,6,122,253,103,101,116,95,115,111,117,114,99, - 101,40,102,117,108,108,110,97,109,101,41,32,45,62,32,115, - 111,117,114,99,101,32,115,116,114,105,110,103,46,10,10,32, - 32,32,32,32,32,32,32,82,101,116,117,114,110,32,116,104, - 101,32,115,111,117,114,99,101,32,99,111,100,101,32,102,111, - 114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32, - 109,111,100,117,108,101,46,32,82,97,105,115,101,32,90,105, - 112,73,109,112,111,114,116,69,114,114,111,114,10,32,32,32, - 32,32,32,32,32,105,102,32,116,104,101,32,109,111,100,117, - 108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,102, - 111,117,110,100,44,32,114,101,116,117,114,110,32,78,111,110, - 101,32,105,102,32,116,104,101,32,97,114,99,104,105,118,101, - 32,100,111,101,115,10,32,32,32,32,32,32,32,32,99,111, - 110,116,97,105,110,32,116,104,101,32,109,111,100,117,108,101, - 44,32,98,117,116,32,104,97,115,32,110,111,32,115,111,117, - 114,99,101,32,102,111,114,32,105,116,46,10,32,32,32,32, - 32,32,32,32,78,250,18,99,97,110,39,116,32,102,105,110, - 100,32,109,111,100,117,108,101,32,169,1,218,4,110,97,109, - 101,250,11,95,95,105,110,105,116,95,95,46,112,121,250,3, - 46,112,121,41,10,114,35,0,0,0,114,3,0,0,0,114, - 36,0,0,0,114,21,0,0,0,114,30,0,0,0,114,28, - 0,0,0,114,26,0,0,0,114,52,0,0,0,114,29,0, - 0,0,218,6,100,101,99,111,100,101,41,6,114,32,0,0, - 0,114,38,0,0,0,114,39,0,0,0,114,13,0,0,0, - 218,8,102,117,108,108,112,97,116,104,114,54,0,0,0,114, - 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,10, - 103,101,116,95,115,111,117,114,99,101,195,0,0,0,115,24, - 0,0,0,0,7,10,1,8,1,18,2,10,1,4,1,14, - 2,10,2,2,1,14,1,12,2,8,1,122,22,122,105,112, - 105,109,112,111,114,116,101,114,46,103,101,116,95,115,111,117, - 114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,4,0,0,0,67,0,0,0,115,40,0,0, - 0,116,0,124,0,124,1,131,2,125,2,124,2,100,1,117, - 0,114,36,116,1,100,2,124,1,155,2,157,2,124,1,100, - 3,141,2,130,1,124,2,83,0,41,4,122,171,105,115,95, - 112,97,99,107,97,103,101,40,102,117,108,108,110,97,109,101, - 41,32,45,62,32,98,111,111,108,46,10,10,32,32,32,32, - 32,32,32,32,82,101,116,117,114,110,32,84,114,117,101,32, - 105,102,32,116,104,101,32,109,111,100,117,108,101,32,115,112, - 101,99,105,102,105,101,100,32,98,121,32,102,117,108,108,110, - 97,109,101,32,105,115,32,97,32,112,97,99,107,97,103,101, - 46,10,32,32,32,32,32,32,32,32,82,97,105,115,101,32, - 90,105,112,73,109,112,111,114,116,69,114,114,111,114,32,105, - 102,32,116,104,101,32,109,111,100,117,108,101,32,99,111,117, - 108,100,110,39,116,32,98,101,32,102,111,117,110,100,46,10, - 32,32,32,32,32,32,32,32,78,114,57,0,0,0,114,58, - 0,0,0,41,2,114,35,0,0,0,114,3,0,0,0,41, - 3,114,32,0,0,0,114,38,0,0,0,114,39,0,0,0, - 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 10,105,115,95,112,97,99,107,97,103,101,221,0,0,0,115, - 8,0,0,0,0,6,10,1,8,1,18,1,122,22,122,105, - 112,105,109,112,111,114,116,101,114,46,105,115,95,112,97,99, - 107,97,103,101,99,2,0,0,0,0,0,0,0,0,0,0, - 0,8,0,0,0,8,0,0,0,67,0,0,0,115,246,0, - 0,0,116,0,124,0,124,1,131,2,92,3,125,2,125,3, - 125,4,116,1,106,2,160,3,124,1,161,1,125,5,124,5, - 100,1,117,0,115,46,116,4,124,5,116,5,131,2,115,64, - 116,5,124,1,131,1,125,5,124,5,116,1,106,2,124,1, - 60,0,124,0,124,5,95,6,122,84,124,3,114,108,116,7, - 124,0,124,1,131,2,125,6,116,8,160,9,124,0,106,10, - 124,6,161,2,125,7,124,7,103,1,124,5,95,11,116,12, - 124,5,100,2,131,2,115,124,116,13,124,5,95,13,116,8, - 160,14,124,5,106,15,124,1,124,4,161,3,1,0,116,16, - 124,2,124,5,106,15,131,2,1,0,87,0,110,22,1,0, - 1,0,1,0,116,1,106,2,124,1,61,0,130,0,89,0, - 110,2,48,0,122,14,116,1,106,2,124,1,25,0,125,5, - 87,0,110,34,4,0,116,17,121,226,1,0,1,0,1,0, - 116,18,100,3,124,1,155,2,100,4,157,3,131,1,130,1, - 89,0,110,2,48,0,116,19,160,20,100,5,124,1,124,4, - 161,3,1,0,124,5,83,0,41,6,122,245,108,111,97,100, + 2,124,1,100,3,141,2,130,1,124,2,83,0,41,4,122, + 171,105,115,95,112,97,99,107,97,103,101,40,102,117,108,108, + 110,97,109,101,41,32,45,62,32,98,111,111,108,46,10,10, + 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,84, + 114,117,101,32,105,102,32,116,104,101,32,109,111,100,117,108, + 101,32,115,112,101,99,105,102,105,101,100,32,98,121,32,102, + 117,108,108,110,97,109,101,32,105,115,32,97,32,112,97,99, + 107,97,103,101,46,10,32,32,32,32,32,32,32,32,82,97, + 105,115,101,32,90,105,112,73,109,112,111,114,116,69,114,114, + 111,114,32,105,102,32,116,104,101,32,109,111,100,117,108,101, + 32,99,111,117,108,100,110,39,116,32,98,101,32,102,111,117, + 110,100,46,10,32,32,32,32,32,32,32,32,78,114,61,0, + 0,0,114,62,0,0,0,41,2,114,35,0,0,0,114,3, + 0,0,0,41,3,114,32,0,0,0,114,38,0,0,0,114, + 39,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10, + 0,0,0,114,43,0,0,0,251,0,0,0,115,8,0,0, + 0,0,6,10,1,8,1,18,1,122,22,122,105,112,105,109, + 112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,103, + 101,99,2,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,8,0,0,0,67,0,0,0,115,246,0,0,0,116, + 0,124,0,124,1,131,2,92,3,125,2,125,3,125,4,116, + 1,106,2,160,3,124,1,161,1,125,5,124,5,100,1,117, + 0,115,46,116,4,124,5,116,5,131,2,115,64,116,5,124, + 1,131,1,125,5,124,5,116,1,106,2,124,1,60,0,124, + 0,124,5,95,6,122,84,124,3,114,108,116,7,124,0,124, + 1,131,2,125,6,116,8,160,9,124,0,106,10,124,6,161, + 2,125,7,124,7,103,1,124,5,95,11,116,12,124,5,100, + 2,131,2,115,124,116,13,124,5,95,13,116,8,160,14,124, + 5,106,15,124,1,124,4,161,3,1,0,116,16,124,2,124, + 5,106,15,131,2,1,0,87,0,110,22,1,0,1,0,1, + 0,116,1,106,2,124,1,61,0,130,0,89,0,110,2,48, + 0,122,14,116,1,106,2,124,1,25,0,125,5,87,0,110, + 34,4,0,116,17,121,226,1,0,1,0,1,0,116,18,100, + 3,124,1,155,2,100,4,157,3,131,1,130,1,89,0,110, + 2,48,0,116,19,160,20,100,5,124,1,124,4,161,3,1, + 0,124,5,83,0,41,6,97,55,1,0,0,108,111,97,100, 95,109,111,100,117,108,101,40,102,117,108,108,110,97,109,101, 41,32,45,62,32,109,111,100,117,108,101,46,10,10,32,32, 32,32,32,32,32,32,76,111,97,100,32,116,104,101,32,109, @@ -407,554 +448,560 @@ const unsigned char _Py_M__zipimport[] = { 32,32,32,32,109,111,100,117,108,101,44,32,111,114,32,114, 97,105,115,101,115,32,90,105,112,73,109,112,111,114,116,69, 114,114,111,114,32,105,102,32,105,116,32,119,97,115,110,39, - 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32, - 32,78,218,12,95,95,98,117,105,108,116,105,110,115,95,95, - 122,14,76,111,97,100,101,100,32,109,111,100,117,108,101,32, - 122,25,32,110,111,116,32,102,111,117,110,100,32,105,110,32, - 115,121,115,46,109,111,100,117,108,101,115,122,30,105,109,112, - 111,114,116,32,123,125,32,35,32,108,111,97,100,101,100,32, - 102,114,111,109,32,90,105,112,32,123,125,41,21,114,44,0, - 0,0,218,3,115,121,115,218,7,109,111,100,117,108,101,115, - 218,3,103,101,116,114,15,0,0,0,218,12,95,109,111,100, - 117,108,101,95,116,121,112,101,218,10,95,95,108,111,97,100, - 101,114,95,95,114,36,0,0,0,114,21,0,0,0,114,30, - 0,0,0,114,29,0,0,0,90,8,95,95,112,97,116,104, - 95,95,218,7,104,97,115,97,116,116,114,114,66,0,0,0, - 90,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, - 218,8,95,95,100,105,99,116,95,95,218,4,101,120,101,99, - 114,26,0,0,0,218,11,73,109,112,111,114,116,69,114,114, - 111,114,218,10,95,98,111,111,116,115,116,114,97,112,218,16, - 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101, - 41,8,114,32,0,0,0,114,38,0,0,0,114,46,0,0, - 0,114,47,0,0,0,114,40,0,0,0,90,3,109,111,100, - 114,13,0,0,0,114,63,0,0,0,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,218,11,108,111,97,100,95, - 109,111,100,117,108,101,234,0,0,0,115,48,0,0,0,0, - 7,16,1,12,1,18,1,8,1,10,1,6,2,2,1,4, - 3,10,1,14,1,8,2,10,1,6,1,16,1,16,1,6, - 1,8,1,8,2,2,1,14,1,12,1,22,1,14,1,122, - 23,122,105,112,105,109,112,111,114,116,101,114,46,108,111,97, - 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,8,0,0,0,67,0,0, - 0,115,64,0,0,0,122,20,124,0,160,0,124,1,161,1, - 115,18,87,0,100,1,83,0,87,0,110,20,4,0,116,1, - 121,40,1,0,1,0,1,0,89,0,100,1,83,0,48,0, - 100,2,100,3,108,2,109,3,125,2,1,0,124,2,124,0, - 124,1,131,2,83,0,41,4,122,204,82,101,116,117,114,110, - 32,116,104,101,32,82,101,115,111,117,114,99,101,82,101,97, - 100,101,114,32,102,111,114,32,97,32,112,97,99,107,97,103, - 101,32,105,110,32,97,32,122,105,112,32,102,105,108,101,46, - 10,10,32,32,32,32,32,32,32,32,73,102,32,39,102,117, - 108,108,110,97,109,101,39,32,105,115,32,97,32,112,97,99, - 107,97,103,101,32,119,105,116,104,105,110,32,116,104,101,32, - 122,105,112,32,102,105,108,101,44,32,114,101,116,117,114,110, - 32,116,104,101,10,32,32,32,32,32,32,32,32,39,82,101, - 115,111,117,114,99,101,82,101,97,100,101,114,39,32,111,98, - 106,101,99,116,32,102,111,114,32,116,104,101,32,112,97,99, - 107,97,103,101,46,32,32,79,116,104,101,114,119,105,115,101, - 32,114,101,116,117,114,110,32,78,111,110,101,46,10,32,32, - 32,32,32,32,32,32,78,114,0,0,0,0,41,1,218,9, - 90,105,112,82,101,97,100,101,114,41,4,114,65,0,0,0, - 114,3,0,0,0,90,17,105,109,112,111,114,116,108,105,98, - 46,114,101,97,100,101,114,115,114,79,0,0,0,41,3,114, - 32,0,0,0,114,38,0,0,0,114,79,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,218,19,103, - 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, - 101,114,16,1,0,0,115,14,0,0,0,0,6,2,1,10, - 1,10,1,12,1,8,1,12,1,122,31,122,105,112,105,109, - 112,111,114,116,101,114,46,103,101,116,95,114,101,115,111,117, - 114,99,101,95,114,101,97,100,101,114,99,1,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,67, - 0,0,0,115,24,0,0,0,100,1,124,0,106,0,155,0, - 116,1,155,0,124,0,106,2,155,0,100,2,157,5,83,0, - 41,3,78,122,21,60,122,105,112,105,109,112,111,114,116,101, - 114,32,111,98,106,101,99,116,32,34,122,2,34,62,41,3, - 114,29,0,0,0,114,20,0,0,0,114,31,0,0,0,41, - 1,114,32,0,0,0,114,9,0,0,0,114,9,0,0,0, - 114,10,0,0,0,218,8,95,95,114,101,112,114,95,95,31, - 1,0,0,115,2,0,0,0,0,1,122,20,122,105,112,105, - 109,112,111,114,116,101,114,46,95,95,114,101,112,114,95,95, - 41,1,78,41,1,78,41,15,114,6,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,7,95,95,100,111,99,95,95, - 114,34,0,0,0,114,41,0,0,0,114,42,0,0,0,114, - 48,0,0,0,114,55,0,0,0,114,56,0,0,0,114,64, - 0,0,0,114,65,0,0,0,114,78,0,0,0,114,80,0, - 0,0,114,81,0,0,0,114,9,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,114,4,0,0,0, - 45,0,0,0,115,24,0,0,0,8,1,4,17,8,46,10, - 32,10,12,8,10,8,21,8,11,8,26,8,13,8,38,8, - 15,122,12,95,95,105,110,105,116,95,95,46,112,121,99,84, - 114,60,0,0,0,70,41,3,122,4,46,112,121,99,84,70, - 41,3,114,61,0,0,0,70,70,99,2,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,0, - 0,0,115,20,0,0,0,124,0,106,0,124,1,160,1,100, - 1,161,1,100,2,25,0,23,0,83,0,41,3,78,218,1, - 46,233,2,0,0,0,41,2,114,31,0,0,0,218,10,114, - 112,97,114,116,105,116,105,111,110,41,2,114,32,0,0,0, - 114,38,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,36,0,0,0,49,1,0,0,115,2,0, - 0,0,0,1,114,36,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,2,0,0,0,67,0, - 0,0,115,18,0,0,0,124,1,116,0,23,0,125,2,124, - 2,124,0,106,1,118,0,83,0,169,1,78,41,2,114,20, - 0,0,0,114,28,0,0,0,41,3,114,32,0,0,0,114, - 13,0,0,0,90,7,100,105,114,112,97,116,104,114,9,0, - 0,0,114,9,0,0,0,114,10,0,0,0,114,37,0,0, - 0,53,1,0,0,115,4,0,0,0,0,4,8,2,114,37, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 7,0,0,0,4,0,0,0,67,0,0,0,115,54,0,0, - 0,116,0,124,0,124,1,131,2,125,2,116,1,68,0,93, - 34,92,3,125,3,125,4,125,5,124,2,124,3,23,0,125, - 6,124,6,124,0,106,2,118,0,114,14,124,5,2,0,1, - 0,83,0,100,0,83,0,114,86,0,0,0,41,3,114,36, - 0,0,0,218,16,95,122,105,112,95,115,101,97,114,99,104, - 111,114,100,101,114,114,28,0,0,0,41,7,114,32,0,0, - 0,114,38,0,0,0,114,13,0,0,0,218,6,115,117,102, - 102,105,120,218,10,105,115,98,121,116,101,99,111,100,101,114, - 47,0,0,0,114,63,0,0,0,114,9,0,0,0,114,9, - 0,0,0,114,10,0,0,0,114,35,0,0,0,62,1,0, - 0,115,12,0,0,0,0,1,10,1,14,1,8,1,10,1, - 8,1,114,35,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,26,0,0,0,9,0,0,0,67,0,0,0, - 115,2,5,0,0,122,14,116,0,160,1,124,0,161,1,125, - 1,87,0,110,36,4,0,116,2,121,50,1,0,1,0,1, - 0,116,3,100,1,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,89,0,110,2,48,0,124,1,144,4,143,164,1, - 0,122,36,124,1,160,4,116,5,11,0,100,3,161,2,1, - 0,124,1,160,6,161,0,125,2,124,1,160,7,116,5,161, - 1,125,3,87,0,110,36,4,0,116,2,121,132,1,0,1, - 0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,89,0,110,2,48,0,116,8,124,3,131, - 1,116,5,107,3,114,164,116,3,100,4,124,0,155,2,157, - 2,124,0,100,2,141,2,130,1,124,3,100,0,100,5,133, - 2,25,0,116,9,107,3,144,1,114,170,122,24,124,1,160, - 4,100,6,100,3,161,2,1,0,124,1,160,6,161,0,125, - 4,87,0,110,36,4,0,116,2,121,242,1,0,1,0,1, - 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,89,0,110,2,48,0,116,10,124,4,116,11,24, - 0,116,5,24,0,100,6,131,2,125,5,122,22,124,1,160, - 4,124,5,161,1,1,0,124,1,160,7,161,0,125,6,87, - 0,110,38,4,0,116,2,144,1,121,66,1,0,1,0,1, - 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,89,0,110,2,48,0,124,6,160,12,116,9,161, - 1,125,7,124,7,100,6,107,0,144,1,114,106,116,3,100, - 7,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, - 6,124,7,124,7,116,5,23,0,133,2,25,0,125,3,116, - 8,124,3,131,1,116,5,107,3,144,1,114,154,116,3,100, - 8,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, - 4,116,8,124,6,131,1,24,0,124,7,23,0,125,2,116, - 13,124,3,100,9,100,10,133,2,25,0,131,1,125,8,116, - 13,124,3,100,10,100,11,133,2,25,0,131,1,125,9,124, - 2,124,8,107,0,144,1,114,230,116,3,100,12,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,124,2,124,9,107, - 0,144,2,114,2,116,3,100,13,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,124,2,124,8,56,0,125,2,124, - 2,124,9,24,0,125,10,124,10,100,6,107,0,144,2,114, - 46,116,3,100,14,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,105,0,125,11,100,6,125,12,122,14,124,1,160, - 4,124,2,161,1,1,0,87,0,110,38,4,0,116,2,144, - 2,121,106,1,0,1,0,1,0,116,3,100,4,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,89,0,110,2,48, - 0,124,1,160,7,100,15,161,1,125,3,116,8,124,3,131, - 1,100,5,107,0,144,2,114,140,116,14,100,16,131,1,130, - 1,124,3,100,0,100,5,133,2,25,0,100,17,107,3,144, - 2,114,162,144,4,113,208,116,8,124,3,131,1,100,15,107, - 3,144,2,114,184,116,14,100,16,131,1,130,1,116,15,124, - 3,100,18,100,19,133,2,25,0,131,1,125,13,116,15,124, - 3,100,19,100,9,133,2,25,0,131,1,125,14,116,15,124, - 3,100,9,100,20,133,2,25,0,131,1,125,15,116,15,124, - 3,100,20,100,10,133,2,25,0,131,1,125,16,116,13,124, - 3,100,10,100,11,133,2,25,0,131,1,125,17,116,13,124, - 3,100,11,100,21,133,2,25,0,131,1,125,18,116,13,124, - 3,100,21,100,22,133,2,25,0,131,1,125,4,116,15,124, - 3,100,22,100,23,133,2,25,0,131,1,125,19,116,15,124, - 3,100,23,100,24,133,2,25,0,131,1,125,20,116,15,124, - 3,100,24,100,25,133,2,25,0,131,1,125,21,116,13,124, - 3,100,26,100,15,133,2,25,0,131,1,125,22,124,19,124, - 20,23,0,124,21,23,0,125,8,124,22,124,9,107,4,144, - 3,114,144,116,3,100,27,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,124,22,124,10,55,0,125,22,122,14,124, - 1,160,7,124,19,161,1,125,23,87,0,110,38,4,0,116, - 2,144,3,121,204,1,0,1,0,1,0,116,3,100,4,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,89,0,110, - 2,48,0,116,8,124,23,131,1,124,19,107,3,144,3,114, - 238,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,122,50,116,8,124,1,160,7,124,8,124,19,24, - 0,161,1,131,1,124,8,124,19,24,0,107,3,144,4,114, - 30,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,87,0,110,38,4,0,116,2,144,4,121,70,1, - 0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,89,0,110,2,48,0,124,13,100, - 28,64,0,144,4,114,92,124,23,160,16,161,0,125,23,110, - 52,122,14,124,23,160,16,100,29,161,1,125,23,87,0,110, - 36,4,0,116,17,144,4,121,142,1,0,1,0,1,0,124, - 23,160,16,100,30,161,1,160,18,116,19,161,1,125,23,89, - 0,110,2,48,0,124,23,160,20,100,31,116,21,161,2,125, - 23,116,22,160,23,124,0,124,23,161,2,125,24,124,24,124, - 14,124,18,124,4,124,22,124,15,124,16,124,17,102,8,125, - 25,124,25,124,11,124,23,60,0,124,12,100,32,55,0,125, - 12,144,2,113,108,87,0,100,0,4,0,4,0,131,3,1, - 0,110,18,49,0,144,4,115,230,48,0,1,0,1,0,1, - 0,89,0,1,0,116,24,160,25,100,33,124,12,124,0,161, - 3,1,0,124,11,83,0,41,34,78,122,21,99,97,110,39, - 116,32,111,112,101,110,32,90,105,112,32,102,105,108,101,58, - 32,114,12,0,0,0,114,84,0,0,0,250,21,99,97,110, - 39,116,32,114,101,97,100,32,90,105,112,32,102,105,108,101, - 58,32,233,4,0,0,0,114,0,0,0,0,122,16,110,111, - 116,32,97,32,90,105,112,32,102,105,108,101,58,32,122,18, - 99,111,114,114,117,112,116,32,90,105,112,32,102,105,108,101, - 58,32,233,12,0,0,0,233,16,0,0,0,233,20,0,0, - 0,122,28,98,97,100,32,99,101,110,116,114,97,108,32,100, - 105,114,101,99,116,111,114,121,32,115,105,122,101,58,32,122, - 30,98,97,100,32,99,101,110,116,114,97,108,32,100,105,114, - 101,99,116,111,114,121,32,111,102,102,115,101,116,58,32,122, - 38,98,97,100,32,99,101,110,116,114,97,108,32,100,105,114, - 101,99,116,111,114,121,32,115,105,122,101,32,111,114,32,111, - 102,102,115,101,116,58,32,233,46,0,0,0,250,27,69,79, - 70,32,114,101,97,100,32,119,104,101,114,101,32,110,111,116, - 32,101,120,112,101,99,116,101,100,115,4,0,0,0,80,75, - 1,2,233,8,0,0,0,233,10,0,0,0,233,14,0,0, - 0,233,24,0,0,0,233,28,0,0,0,233,30,0,0,0, - 233,32,0,0,0,233,34,0,0,0,233,42,0,0,0,122, - 25,98,97,100,32,108,111,99,97,108,32,104,101,97,100,101, - 114,32,111,102,102,115,101,116,58,32,105,0,8,0,0,218, - 5,97,115,99,105,105,90,6,108,97,116,105,110,49,250,1, - 47,114,5,0,0,0,122,33,122,105,112,105,109,112,111,114, - 116,58,32,102,111,117,110,100,32,123,125,32,110,97,109,101, - 115,32,105,110,32,123,33,114,125,41,26,218,3,95,105,111, - 218,9,111,112,101,110,95,99,111,100,101,114,22,0,0,0, - 114,3,0,0,0,218,4,115,101,101,107,218,20,69,78,68, - 95,67,69,78,84,82,65,76,95,68,73,82,95,83,73,90, - 69,90,4,116,101,108,108,218,4,114,101,97,100,114,51,0, - 0,0,218,18,83,84,82,73,78,71,95,69,78,68,95,65, - 82,67,72,73,86,69,218,3,109,97,120,218,15,77,65,88, - 95,67,79,77,77,69,78,84,95,76,69,78,218,5,114,102, - 105,110,100,114,2,0,0,0,218,8,69,79,70,69,114,114, - 111,114,114,1,0,0,0,114,62,0,0,0,218,18,85,110, - 105,99,111,100,101,68,101,99,111,100,101,69,114,114,111,114, - 218,9,116,114,97,110,115,108,97,116,101,218,11,99,112,52, - 51,55,95,116,97,98,108,101,114,19,0,0,0,114,20,0, - 0,0,114,21,0,0,0,114,30,0,0,0,114,76,0,0, - 0,114,77,0,0,0,41,26,114,29,0,0,0,218,2,102, - 112,90,15,104,101,97,100,101,114,95,112,111,115,105,116,105, - 111,110,218,6,98,117,102,102,101,114,218,9,102,105,108,101, - 95,115,105,122,101,90,17,109,97,120,95,99,111,109,109,101, - 110,116,95,115,116,97,114,116,218,4,100,97,116,97,90,3, - 112,111,115,218,11,104,101,97,100,101,114,95,115,105,122,101, - 90,13,104,101,97,100,101,114,95,111,102,102,115,101,116,90, - 10,97,114,99,95,111,102,102,115,101,116,114,33,0,0,0, - 218,5,99,111,117,110,116,218,5,102,108,97,103,115,218,8, - 99,111,109,112,114,101,115,115,218,4,116,105,109,101,218,4, - 100,97,116,101,218,3,99,114,99,218,9,100,97,116,97,95, - 115,105,122,101,218,9,110,97,109,101,95,115,105,122,101,218, - 10,101,120,116,114,97,95,115,105,122,101,90,12,99,111,109, - 109,101,110,116,95,115,105,122,101,218,11,102,105,108,101,95, - 111,102,102,115,101,116,114,59,0,0,0,114,13,0,0,0, - 218,1,116,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,27,0,0,0,93,1,0,0,115,212,0,0,0, - 0,1,2,1,14,1,12,1,24,2,8,1,2,1,14,1, - 8,1,14,1,12,1,24,1,12,1,18,1,18,3,2,1, - 12,1,12,1,12,1,10,1,2,255,12,2,8,1,2,255, - 2,1,2,255,4,2,2,1,10,1,12,1,14,1,10,1, - 2,255,12,2,10,1,10,1,10,1,2,255,6,2,16,1, - 14,1,10,1,2,255,6,2,16,2,16,1,16,1,10,1, - 18,1,10,1,18,1,8,1,8,1,10,1,18,2,4,2, - 4,1,2,1,14,1,14,1,24,2,10,1,14,1,8,2, - 18,1,4,1,14,1,8,1,16,1,16,1,16,1,16,1, - 16,1,16,1,16,1,16,1,16,1,16,1,16,1,12,1, - 10,1,18,1,8,2,2,1,14,1,14,1,24,1,14,1, - 18,4,2,1,28,1,22,1,14,1,24,2,10,2,10,3, - 2,1,14,1,14,1,22,2,12,1,12,1,20,1,8,1, - 44,1,14,1,114,27,0,0,0,117,190,1,0,0,0,1, - 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65, - 66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81, - 82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113, - 114,115,116,117,118,119,120,121,122,123,124,125,126,127,195,135, - 195,188,195,169,195,162,195,164,195,160,195,165,195,167,195,170, - 195,171,195,168,195,175,195,174,195,172,195,132,195,133,195,137, - 195,166,195,134,195,180,195,182,195,178,195,187,195,185,195,191, - 195,150,195,156,194,162,194,163,194,165,226,130,167,198,146,195, - 161,195,173,195,179,195,186,195,177,195,145,194,170,194,186,194, - 191,226,140,144,194,172,194,189,194,188,194,161,194,171,194,187, - 226,150,145,226,150,146,226,150,147,226,148,130,226,148,164,226, - 149,161,226,149,162,226,149,150,226,149,149,226,149,163,226,149, - 145,226,149,151,226,149,157,226,149,156,226,149,155,226,148,144, - 226,148,148,226,148,180,226,148,172,226,148,156,226,148,128,226, - 148,188,226,149,158,226,149,159,226,149,154,226,149,148,226,149, - 169,226,149,166,226,149,160,226,149,144,226,149,172,226,149,167, - 226,149,168,226,149,164,226,149,165,226,149,153,226,149,152,226, - 149,146,226,149,147,226,149,171,226,149,170,226,148,152,226,148, - 140,226,150,136,226,150,132,226,150,140,226,150,144,226,150,128, - 206,177,195,159,206,147,207,128,206,163,207,131,194,181,207,132, - 206,166,206,152,206,169,206,180,226,136,158,207,134,206,181,226, - 136,169,226,137,161,194,177,226,137,165,226,137,164,226,140,160, - 226,140,161,195,183,226,137,136,194,176,226,136,153,194,183,226, - 136,154,226,129,191,194,178,226,150,160,194,160,99,0,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0, - 0,67,0,0,0,115,110,0,0,0,116,0,114,22,116,1, - 160,2,100,1,161,1,1,0,116,3,100,2,131,1,130,1, - 100,3,97,0,122,62,122,16,100,4,100,5,108,4,109,5, - 125,0,1,0,87,0,110,36,4,0,116,6,121,80,1,0, - 1,0,1,0,116,1,160,2,100,1,161,1,1,0,116,3, - 100,2,131,1,130,1,89,0,110,2,48,0,87,0,100,6, - 97,0,110,6,100,6,97,0,48,0,116,1,160,2,100,7, - 161,1,1,0,124,0,83,0,41,8,78,122,27,122,105,112, - 105,109,112,111,114,116,58,32,122,108,105,98,32,85,78,65, - 86,65,73,76,65,66,76,69,250,41,99,97,110,39,116,32, - 100,101,99,111,109,112,114,101,115,115,32,100,97,116,97,59, - 32,122,108,105,98,32,110,111,116,32,97,118,97,105,108,97, - 98,108,101,84,114,0,0,0,0,169,1,218,10,100,101,99, - 111,109,112,114,101,115,115,70,122,25,122,105,112,105,109,112, - 111,114,116,58,32,122,108,105,98,32,97,118,97,105,108,97, - 98,108,101,41,7,218,15,95,105,109,112,111,114,116,105,110, - 103,95,122,108,105,98,114,76,0,0,0,114,77,0,0,0, - 114,3,0,0,0,90,4,122,108,105,98,114,139,0,0,0, - 218,9,69,120,99,101,112,116,105,111,110,114,138,0,0,0, - 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 20,95,103,101,116,95,100,101,99,111,109,112,114,101,115,115, - 95,102,117,110,99,251,1,0,0,115,24,0,0,0,0,2, - 4,3,10,1,8,2,4,1,4,1,16,1,12,1,10,1, - 16,2,12,2,10,1,114,142,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,17,0,0,0,9,0,0,0, - 67,0,0,0,115,144,1,0,0,124,1,92,8,125,2,125, - 3,125,4,125,5,125,6,125,7,125,8,125,9,124,4,100, - 1,107,0,114,36,116,0,100,2,131,1,130,1,116,1,160, - 2,124,0,161,1,144,1,143,14,125,10,122,14,124,10,160, - 3,124,6,161,1,1,0,87,0,110,36,4,0,116,4,121, - 100,1,0,1,0,1,0,116,0,100,3,124,0,155,2,157, - 2,124,0,100,4,141,2,130,1,89,0,110,2,48,0,124, - 10,160,5,100,5,161,1,125,11,116,6,124,11,131,1,100, - 5,107,3,114,132,116,7,100,6,131,1,130,1,124,11,100, - 0,100,7,133,2,25,0,100,8,107,3,114,166,116,0,100, - 9,124,0,155,2,157,2,124,0,100,4,141,2,130,1,116, - 8,124,11,100,10,100,11,133,2,25,0,131,1,125,12,116, - 8,124,11,100,11,100,5,133,2,25,0,131,1,125,13,100, - 5,124,12,23,0,124,13,23,0,125,14,124,6,124,14,55, - 0,125,6,122,14,124,10,160,3,124,6,161,1,1,0,87, - 0,110,38,4,0,116,4,144,1,121,14,1,0,1,0,1, - 0,116,0,100,3,124,0,155,2,157,2,124,0,100,4,141, - 2,130,1,89,0,110,2,48,0,124,10,160,5,124,4,161, - 1,125,15,116,6,124,15,131,1,124,4,107,3,144,1,114, - 48,116,4,100,12,131,1,130,1,87,0,100,0,4,0,4, - 0,131,3,1,0,110,18,49,0,144,1,115,70,48,0,1, - 0,1,0,1,0,89,0,1,0,124,3,100,1,107,2,144, - 1,114,94,124,15,83,0,122,10,116,9,131,0,125,16,87, - 0,110,28,4,0,116,10,144,1,121,132,1,0,1,0,1, - 0,116,0,100,13,131,1,130,1,89,0,110,2,48,0,124, - 16,124,15,100,14,131,2,83,0,41,15,78,114,0,0,0, - 0,122,18,110,101,103,97,116,105,118,101,32,100,97,116,97, - 32,115,105,122,101,114,90,0,0,0,114,12,0,0,0,114, - 102,0,0,0,114,96,0,0,0,114,91,0,0,0,115,4, - 0,0,0,80,75,3,4,122,23,98,97,100,32,108,111,99, - 97,108,32,102,105,108,101,32,104,101,97,100,101,114,58,32, - 233,26,0,0,0,114,101,0,0,0,122,26,122,105,112,105, - 109,112,111,114,116,58,32,99,97,110,39,116,32,114,101,97, - 100,32,100,97,116,97,114,137,0,0,0,105,241,255,255,255, - 41,11,114,3,0,0,0,114,108,0,0,0,114,109,0,0, - 0,114,110,0,0,0,114,22,0,0,0,114,112,0,0,0, - 114,51,0,0,0,114,117,0,0,0,114,1,0,0,0,114, - 142,0,0,0,114,141,0,0,0,41,17,114,29,0,0,0, - 114,54,0,0,0,90,8,100,97,116,97,112,97,116,104,114, - 128,0,0,0,114,132,0,0,0,114,123,0,0,0,114,135, - 0,0,0,114,129,0,0,0,114,130,0,0,0,114,131,0, - 0,0,114,121,0,0,0,114,122,0,0,0,114,133,0,0, - 0,114,134,0,0,0,114,125,0,0,0,90,8,114,97,119, - 95,100,97,116,97,114,139,0,0,0,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,114,52,0,0,0,16,2, - 0,0,115,62,0,0,0,0,1,20,1,8,1,8,2,14, - 2,2,1,14,1,12,1,24,1,10,1,12,1,8,2,16, - 2,18,2,16,1,16,1,12,1,8,1,2,1,14,1,14, - 1,24,1,10,1,14,1,40,2,10,2,4,3,2,1,10, - 1,14,1,14,1,114,52,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67, - 0,0,0,115,16,0,0,0,116,0,124,0,124,1,24,0, - 131,1,100,1,107,1,83,0,41,2,78,114,5,0,0,0, - 41,1,218,3,97,98,115,41,2,90,2,116,49,90,2,116, - 50,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, - 218,9,95,101,113,95,109,116,105,109,101,62,2,0,0,115, - 2,0,0,0,0,2,114,145,0,0,0,99,5,0,0,0, - 0,0,0,0,0,0,0,0,14,0,0,0,8,0,0,0, - 67,0,0,0,115,60,1,0,0,124,3,124,2,100,1,156, - 2,125,5,122,18,116,0,160,1,124,4,124,3,124,5,161, - 3,125,6,87,0,110,20,4,0,116,2,121,48,1,0,1, - 0,1,0,89,0,100,0,83,0,48,0,124,6,100,2,64, - 0,100,3,107,3,125,7,124,7,114,182,124,6,100,4,64, - 0,100,3,107,3,125,8,116,3,106,4,100,5,107,3,144, - 1,114,10,124,8,115,106,116,3,106,4,100,6,107,2,144, - 1,114,10,116,5,124,0,124,2,131,2,125,9,124,9,100, - 0,117,1,144,1,114,10,116,3,160,6,116,0,106,7,124, - 9,161,2,125,10,122,20,116,0,160,8,124,4,124,10,124, - 3,124,5,161,4,1,0,87,0,110,104,4,0,116,2,121, - 180,1,0,1,0,1,0,89,0,100,0,83,0,48,0,116, - 9,124,0,124,2,131,2,92,2,125,11,125,12,124,11,144, - 1,114,10,116,10,116,11,124,4,100,7,100,8,133,2,25, - 0,131,1,124,11,131,2,114,246,116,11,124,4,100,8,100, - 9,133,2,25,0,131,1,124,12,107,3,144,1,114,10,116, - 12,160,13,100,10,124,3,155,2,157,2,161,1,1,0,100, - 0,83,0,116,14,160,15,124,4,100,9,100,0,133,2,25, - 0,161,1,125,13,116,16,124,13,116,17,131,2,144,1,115, - 56,116,18,100,11,124,1,155,2,100,12,157,3,131,1,130, - 1,124,13,83,0,41,13,78,41,2,114,59,0,0,0,114, - 13,0,0,0,114,5,0,0,0,114,0,0,0,0,114,84, - 0,0,0,90,5,110,101,118,101,114,90,6,97,108,119,97, - 121,115,114,97,0,0,0,114,92,0,0,0,114,93,0,0, - 0,122,22,98,121,116,101,99,111,100,101,32,105,115,32,115, - 116,97,108,101,32,102,111,114,32,122,16,99,111,109,112,105, - 108,101,100,32,109,111,100,117,108,101,32,122,21,32,105,115, - 32,110,111,116,32,97,32,99,111,100,101,32,111,98,106,101, - 99,116,41,19,114,21,0,0,0,90,13,95,99,108,97,115, - 115,105,102,121,95,112,121,99,114,75,0,0,0,218,4,95, - 105,109,112,90,21,99,104,101,99,107,95,104,97,115,104,95, - 98,97,115,101,100,95,112,121,99,115,218,15,95,103,101,116, - 95,112,121,99,95,115,111,117,114,99,101,218,11,115,111,117, - 114,99,101,95,104,97,115,104,90,17,95,82,65,87,95,77, - 65,71,73,67,95,78,85,77,66,69,82,90,18,95,118,97, - 108,105,100,97,116,101,95,104,97,115,104,95,112,121,99,218, - 29,95,103,101,116,95,109,116,105,109,101,95,97,110,100,95, - 115,105,122,101,95,111,102,95,115,111,117,114,99,101,114,145, - 0,0,0,114,2,0,0,0,114,76,0,0,0,114,77,0, - 0,0,218,7,109,97,114,115,104,97,108,90,5,108,111,97, - 100,115,114,15,0,0,0,218,10,95,99,111,100,101,95,116, - 121,112,101,218,9,84,121,112,101,69,114,114,111,114,41,14, - 114,32,0,0,0,114,53,0,0,0,114,63,0,0,0,114, - 38,0,0,0,114,124,0,0,0,90,11,101,120,99,95,100, - 101,116,97,105,108,115,114,127,0,0,0,90,10,104,97,115, - 104,95,98,97,115,101,100,90,12,99,104,101,99,107,95,115, - 111,117,114,99,101,90,12,115,111,117,114,99,101,95,98,121, - 116,101,115,114,148,0,0,0,90,12,115,111,117,114,99,101, - 95,109,116,105,109,101,90,11,115,111,117,114,99,101,95,115, - 105,122,101,114,46,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,218,15,95,117,110,109,97,114,115, - 104,97,108,95,99,111,100,101,72,2,0,0,115,82,0,0, - 0,0,2,2,1,2,254,6,5,2,1,18,1,12,1,8, - 2,12,1,4,1,12,1,12,1,2,255,2,1,8,255,4, - 2,10,1,10,1,4,1,4,1,2,254,4,5,2,1,4, - 1,8,255,8,2,12,1,8,3,8,255,6,3,6,3,22, - 1,18,255,4,2,4,1,8,255,4,2,4,2,18,1,12, - 1,16,1,114,153,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0, - 0,115,28,0,0,0,124,0,160,0,100,1,100,2,161,2, - 125,0,124,0,160,0,100,3,100,2,161,2,125,0,124,0, - 83,0,41,4,78,115,2,0,0,0,13,10,243,1,0,0, - 0,10,243,1,0,0,0,13,41,1,114,19,0,0,0,41, - 1,218,6,115,111,117,114,99,101,114,9,0,0,0,114,9, - 0,0,0,114,10,0,0,0,218,23,95,110,111,114,109,97, - 108,105,122,101,95,108,105,110,101,95,101,110,100,105,110,103, - 115,123,2,0,0,115,6,0,0,0,0,1,12,1,12,1, - 114,157,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,24, - 0,0,0,116,0,124,1,131,1,125,1,116,1,124,1,124, - 0,100,1,100,2,100,3,141,4,83,0,41,4,78,114,74, - 0,0,0,84,41,1,90,12,100,111,110,116,95,105,110,104, - 101,114,105,116,41,2,114,157,0,0,0,218,7,99,111,109, - 112,105,108,101,41,2,114,53,0,0,0,114,156,0,0,0, - 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 15,95,99,111,109,112,105,108,101,95,115,111,117,114,99,101, - 130,2,0,0,115,4,0,0,0,0,1,8,1,114,159,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,11,0,0,0,67,0,0,0,115,68,0,0,0, - 116,0,160,1,124,0,100,1,63,0,100,2,23,0,124,0, - 100,3,63,0,100,4,64,0,124,0,100,5,64,0,124,1, - 100,6,63,0,124,1,100,3,63,0,100,7,64,0,124,1, - 100,5,64,0,100,8,20,0,100,9,100,9,100,9,102,9, - 161,1,83,0,41,10,78,233,9,0,0,0,105,188,7,0, - 0,233,5,0,0,0,233,15,0,0,0,233,31,0,0,0, - 233,11,0,0,0,233,63,0,0,0,114,84,0,0,0,114, - 14,0,0,0,41,2,114,129,0,0,0,90,6,109,107,116, - 105,109,101,41,2,218,1,100,114,136,0,0,0,114,9,0, - 0,0,114,9,0,0,0,114,10,0,0,0,218,14,95,112, - 97,114,115,101,95,100,111,115,116,105,109,101,136,2,0,0, - 115,18,0,0,0,0,1,4,1,10,1,10,1,6,1,6, - 1,10,1,10,1,6,249,114,167,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,10,0,0, - 0,67,0,0,0,115,110,0,0,0,122,82,124,1,100,1, - 100,0,133,2,25,0,100,2,118,0,115,22,74,0,130,1, - 124,1,100,0,100,1,133,2,25,0,125,1,124,0,106,0, - 124,1,25,0,125,2,124,2,100,3,25,0,125,3,124,2, - 100,4,25,0,125,4,124,2,100,5,25,0,125,5,116,1, - 124,4,124,3,131,2,124,5,102,2,87,0,83,0,4,0, - 116,2,116,3,116,4,102,3,121,108,1,0,1,0,1,0, - 89,0,100,6,83,0,48,0,41,7,78,114,14,0,0,0, - 169,2,218,1,99,218,1,111,114,161,0,0,0,233,6,0, - 0,0,233,3,0,0,0,41,2,114,0,0,0,0,114,0, - 0,0,0,41,5,114,28,0,0,0,114,167,0,0,0,114, - 26,0,0,0,218,10,73,110,100,101,120,69,114,114,111,114, - 114,152,0,0,0,41,6,114,32,0,0,0,114,13,0,0, - 0,114,54,0,0,0,114,129,0,0,0,114,130,0,0,0, - 90,17,117,110,99,111,109,112,114,101,115,115,101,100,95,115, - 105,122,101,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,149,0,0,0,149,2,0,0,115,20,0,0,0, - 0,1,2,2,20,1,12,1,10,3,8,1,8,1,8,1, - 16,1,18,1,114,149,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,0, - 0,0,115,80,0,0,0,124,1,100,1,100,0,133,2,25, - 0,100,2,118,0,115,20,74,0,130,1,124,1,100,0,100, - 1,133,2,25,0,125,1,122,14,124,0,106,0,124,1,25, - 0,125,2,87,0,110,20,4,0,116,1,121,66,1,0,1, - 0,1,0,89,0,100,0,83,0,48,0,116,2,124,0,106, - 3,124,2,131,2,83,0,41,3,78,114,14,0,0,0,114, - 168,0,0,0,41,4,114,28,0,0,0,114,26,0,0,0, - 114,52,0,0,0,114,29,0,0,0,41,3,114,32,0,0, - 0,114,13,0,0,0,114,54,0,0,0,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,114,147,0,0,0,168, - 2,0,0,115,14,0,0,0,0,2,20,1,12,2,2,1, - 14,1,12,1,8,2,114,147,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0, - 67,0,0,0,115,194,0,0,0,116,0,124,0,124,1,131, - 2,125,2,116,1,68,0,93,156,92,3,125,3,125,4,125, - 5,124,2,124,3,23,0,125,6,116,2,106,3,100,1,124, - 0,106,4,116,5,124,6,100,2,100,3,141,5,1,0,122, - 14,124,0,106,6,124,6,25,0,125,7,87,0,110,18,4, - 0,116,7,121,86,1,0,1,0,1,0,89,0,113,14,48, - 0,124,7,100,4,25,0,125,8,116,8,124,0,106,4,124, - 7,131,2,125,9,124,4,114,130,116,9,124,0,124,8,124, - 6,124,1,124,9,131,5,125,10,110,10,116,10,124,8,124, - 9,131,2,125,10,124,10,100,0,117,0,114,150,113,14,124, - 7,100,4,25,0,125,8,124,10,124,5,124,8,102,3,2, - 0,1,0,83,0,116,11,100,5,124,1,155,2,157,2,124, - 1,100,6,141,2,130,1,100,0,83,0,41,7,78,122,13, - 116,114,121,105,110,103,32,123,125,123,125,123,125,114,84,0, - 0,0,41,1,90,9,118,101,114,98,111,115,105,116,121,114, - 0,0,0,0,114,57,0,0,0,114,58,0,0,0,41,12, - 114,36,0,0,0,114,87,0,0,0,114,76,0,0,0,114, - 77,0,0,0,114,29,0,0,0,114,20,0,0,0,114,28, - 0,0,0,114,26,0,0,0,114,52,0,0,0,114,153,0, - 0,0,114,159,0,0,0,114,3,0,0,0,41,11,114,32, - 0,0,0,114,38,0,0,0,114,13,0,0,0,114,88,0, - 0,0,114,89,0,0,0,114,47,0,0,0,114,63,0,0, - 0,114,54,0,0,0,114,40,0,0,0,114,124,0,0,0, - 114,46,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,44,0,0,0,183,2,0,0,115,36,0, - 0,0,0,1,10,1,14,1,8,1,22,1,2,1,14,1, - 12,1,6,2,8,1,12,1,4,1,18,2,10,1,8,3, - 2,1,8,1,14,2,114,44,0,0,0,41,44,114,82,0, - 0,0,90,26,95,102,114,111,122,101,110,95,105,109,112,111, - 114,116,108,105,98,95,101,120,116,101,114,110,97,108,114,21, - 0,0,0,114,1,0,0,0,114,2,0,0,0,90,17,95, - 102,114,111,122,101,110,95,105,109,112,111,114,116,108,105,98, - 114,76,0,0,0,114,146,0,0,0,114,108,0,0,0,114, - 150,0,0,0,114,67,0,0,0,114,129,0,0,0,90,7, - 95,95,97,108,108,95,95,114,20,0,0,0,90,15,112,97, - 116,104,95,115,101,112,97,114,97,116,111,114,115,114,18,0, - 0,0,114,75,0,0,0,114,3,0,0,0,114,25,0,0, - 0,218,4,116,121,112,101,114,70,0,0,0,114,111,0,0, - 0,114,113,0,0,0,114,115,0,0,0,114,4,0,0,0, - 114,87,0,0,0,114,36,0,0,0,114,37,0,0,0,114, - 35,0,0,0,114,27,0,0,0,114,120,0,0,0,114,140, - 0,0,0,114,142,0,0,0,114,52,0,0,0,114,145,0, - 0,0,114,153,0,0,0,218,8,95,95,99,111,100,101,95, - 95,114,151,0,0,0,114,157,0,0,0,114,159,0,0,0, - 114,167,0,0,0,114,149,0,0,0,114,147,0,0,0,114, - 44,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9, - 0,0,0,114,10,0,0,0,218,8,60,109,111,100,117,108, - 101,62,1,0,0,0,115,84,0,0,0,4,16,8,1,16, - 1,8,1,8,1,8,1,8,1,8,1,8,2,8,3,6, - 1,14,3,16,4,4,2,8,2,4,1,4,1,4,2,14, - 127,0,125,12,1,12,1,2,1,2,252,4,9,8,4,8, - 9,8,31,8,126,2,254,2,29,4,5,8,21,8,46,8, - 10,8,46,10,5,8,7,8,6,8,13,8,19,8,15, + 116,32,102,111,117,110,100,46,10,10,32,32,32,32,32,32, + 32,32,68,101,112,114,101,99,97,116,101,100,32,115,105,110, + 99,101,32,80,121,116,104,111,110,32,51,46,49,48,46,32, + 117,115,101,32,101,120,101,99,95,109,111,100,117,108,101,40, + 41,32,105,110,115,116,101,97,100,46,10,32,32,32,32,32, + 32,32,32,78,218,12,95,95,98,117,105,108,116,105,110,115, + 95,95,122,14,76,111,97,100,101,100,32,109,111,100,117,108, + 101,32,122,25,32,110,111,116,32,102,111,117,110,100,32,105, + 110,32,115,121,115,46,109,111,100,117,108,101,115,122,30,105, + 109,112,111,114,116,32,123,125,32,35,32,108,111,97,100,101, + 100,32,102,114,111,109,32,90,105,112,32,123,125,41,21,114, + 48,0,0,0,218,3,115,121,115,218,7,109,111,100,117,108, + 101,115,218,3,103,101,116,114,15,0,0,0,218,12,95,109, + 111,100,117,108,101,95,116,121,112,101,218,10,95,95,108,111, + 97,100,101,114,95,95,114,36,0,0,0,114,21,0,0,0, + 114,30,0,0,0,114,29,0,0,0,90,8,95,95,112,97, + 116,104,95,95,218,7,104,97,115,97,116,116,114,114,68,0, + 0,0,90,14,95,102,105,120,95,117,112,95,109,111,100,117, + 108,101,218,8,95,95,100,105,99,116,95,95,218,4,101,120, + 101,99,114,26,0,0,0,218,11,73,109,112,111,114,116,69, + 114,114,111,114,114,45,0,0,0,218,16,95,118,101,114,98, + 111,115,101,95,109,101,115,115,97,103,101,41,8,114,32,0, + 0,0,114,38,0,0,0,114,50,0,0,0,114,51,0,0, + 0,114,40,0,0,0,90,3,109,111,100,114,13,0,0,0, + 114,66,0,0,0,114,9,0,0,0,114,9,0,0,0,114, + 10,0,0,0,218,11,108,111,97,100,95,109,111,100,117,108, + 101,8,1,0,0,115,48,0,0,0,0,9,16,1,12,1, + 18,1,8,1,10,1,6,2,2,1,4,3,10,1,14,1, + 8,2,10,1,6,1,16,1,16,1,6,1,8,1,8,2, + 2,1,14,1,12,1,22,1,14,1,122,23,122,105,112,105, + 109,112,111,114,116,101,114,46,108,111,97,100,95,109,111,100, + 117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,8,0,0,0,67,0,0,0,115,64,0,0, + 0,122,20,124,0,160,0,124,1,161,1,115,18,87,0,100, + 1,83,0,87,0,110,20,4,0,116,1,121,40,1,0,1, + 0,1,0,89,0,100,1,83,0,48,0,100,2,100,3,108, + 2,109,3,125,2,1,0,124,2,124,0,124,1,131,2,83, + 0,41,4,122,204,82,101,116,117,114,110,32,116,104,101,32, + 82,101,115,111,117,114,99,101,82,101,97,100,101,114,32,102, + 111,114,32,97,32,112,97,99,107,97,103,101,32,105,110,32, + 97,32,122,105,112,32,102,105,108,101,46,10,10,32,32,32, + 32,32,32,32,32,73,102,32,39,102,117,108,108,110,97,109, + 101,39,32,105,115,32,97,32,112,97,99,107,97,103,101,32, + 119,105,116,104,105,110,32,116,104,101,32,122,105,112,32,102, + 105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,10, + 32,32,32,32,32,32,32,32,39,82,101,115,111,117,114,99, + 101,82,101,97,100,101,114,39,32,111,98,106,101,99,116,32, + 102,111,114,32,116,104,101,32,112,97,99,107,97,103,101,46, + 32,32,79,116,104,101,114,119,105,115,101,32,114,101,116,117, + 114,110,32,78,111,110,101,46,10,32,32,32,32,32,32,32, + 32,78,114,0,0,0,0,41,1,218,9,90,105,112,82,101, + 97,100,101,114,41,4,114,43,0,0,0,114,3,0,0,0, + 90,17,105,109,112,111,114,116,108,105,98,46,114,101,97,100, + 101,114,115,114,80,0,0,0,41,3,114,32,0,0,0,114, + 38,0,0,0,114,80,0,0,0,114,9,0,0,0,114,9, + 0,0,0,114,10,0,0,0,218,19,103,101,116,95,114,101, + 115,111,117,114,99,101,95,114,101,97,100,101,114,48,1,0, + 0,115,14,0,0,0,0,6,2,1,10,1,10,1,12,1, + 8,1,12,1,122,31,122,105,112,105,109,112,111,114,116,101, + 114,46,103,101,116,95,114,101,115,111,117,114,99,101,95,114, + 101,97,100,101,114,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,24, + 0,0,0,100,1,124,0,106,0,155,0,116,1,155,0,124, + 0,106,2,155,0,100,2,157,5,83,0,41,3,78,122,21, + 60,122,105,112,105,109,112,111,114,116,101,114,32,111,98,106, + 101,99,116,32,34,122,2,34,62,41,3,114,29,0,0,0, + 114,20,0,0,0,114,31,0,0,0,41,1,114,32,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 218,8,95,95,114,101,112,114,95,95,63,1,0,0,115,2, + 0,0,0,0,1,122,20,122,105,112,105,109,112,111,114,116, + 101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,1, + 78,41,1,78,41,16,114,6,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,7,95,95,100,111,99,95,95,114,34, + 0,0,0,114,41,0,0,0,114,42,0,0,0,114,46,0, + 0,0,114,52,0,0,0,114,59,0,0,0,114,60,0,0, + 0,114,67,0,0,0,114,43,0,0,0,114,79,0,0,0, + 114,81,0,0,0,114,82,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,4, + 0,0,0,45,0,0,0,115,26,0,0,0,8,1,4,17, + 8,46,10,34,10,13,10,27,8,10,8,21,8,11,8,26, + 8,13,8,40,8,15,122,12,95,95,105,110,105,116,95,95, + 46,112,121,99,84,114,63,0,0,0,70,41,3,122,4,46, + 112,121,99,84,70,41,3,114,64,0,0,0,70,70,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,67,0,0,0,115,20,0,0,0,124,0,106,0, + 124,1,160,1,100,1,161,1,100,2,25,0,23,0,83,0, + 41,3,78,218,1,46,233,2,0,0,0,41,2,114,31,0, + 0,0,218,10,114,112,97,114,116,105,116,105,111,110,41,2, + 114,32,0,0,0,114,38,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,114,36,0,0,0,81,1, + 0,0,115,2,0,0,0,0,1,114,36,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2, + 0,0,0,67,0,0,0,115,18,0,0,0,124,1,116,0, + 23,0,125,2,124,2,124,0,106,1,118,0,83,0,169,1, + 78,41,2,114,20,0,0,0,114,28,0,0,0,41,3,114, + 32,0,0,0,114,13,0,0,0,90,7,100,105,114,112,97, + 116,104,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,114,37,0,0,0,85,1,0,0,115,4,0,0,0,0, + 4,8,2,114,37,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,7,0,0,0,4,0,0,0,67,0,0, + 0,115,54,0,0,0,116,0,124,0,124,1,131,2,125,2, + 116,1,68,0,93,34,92,3,125,3,125,4,125,5,124,2, + 124,3,23,0,125,6,124,6,124,0,106,2,118,0,114,14, + 124,5,2,0,1,0,83,0,100,0,83,0,114,87,0,0, + 0,41,3,114,36,0,0,0,218,16,95,122,105,112,95,115, + 101,97,114,99,104,111,114,100,101,114,114,28,0,0,0,41, + 7,114,32,0,0,0,114,38,0,0,0,114,13,0,0,0, + 218,6,115,117,102,102,105,120,218,10,105,115,98,121,116,101, + 99,111,100,101,114,51,0,0,0,114,66,0,0,0,114,9, + 0,0,0,114,9,0,0,0,114,10,0,0,0,114,35,0, + 0,0,94,1,0,0,115,12,0,0,0,0,1,10,1,14, + 1,8,1,10,1,8,1,114,35,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,26,0,0,0,9,0,0, + 0,67,0,0,0,115,2,5,0,0,122,14,116,0,160,1, + 124,0,161,1,125,1,87,0,110,36,4,0,116,2,121,50, + 1,0,1,0,1,0,116,3,100,1,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,89,0,110,2,48,0,124,1, + 144,4,143,164,1,0,122,36,124,1,160,4,116,5,11,0, + 100,3,161,2,1,0,124,1,160,6,161,0,125,2,124,1, + 160,7,116,5,161,1,125,3,87,0,110,36,4,0,116,2, + 121,132,1,0,1,0,1,0,116,3,100,4,124,0,155,2, + 157,2,124,0,100,2,141,2,130,1,89,0,110,2,48,0, + 116,8,124,3,131,1,116,5,107,3,114,164,116,3,100,4, + 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,3, + 100,0,100,5,133,2,25,0,116,9,107,3,144,1,114,170, + 122,24,124,1,160,4,100,6,100,3,161,2,1,0,124,1, + 160,6,161,0,125,4,87,0,110,36,4,0,116,2,121,242, + 1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,89,0,110,2,48,0,116,10, + 124,4,116,11,24,0,116,5,24,0,100,6,131,2,125,5, + 122,22,124,1,160,4,124,5,161,1,1,0,124,1,160,7, + 161,0,125,6,87,0,110,38,4,0,116,2,144,1,121,66, + 1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,89,0,110,2,48,0,124,6, + 160,12,116,9,161,1,125,7,124,7,100,6,107,0,144,1, + 114,106,116,3,100,7,124,0,155,2,157,2,124,0,100,2, + 141,2,130,1,124,6,124,7,124,7,116,5,23,0,133,2, + 25,0,125,3,116,8,124,3,131,1,116,5,107,3,144,1, + 114,154,116,3,100,8,124,0,155,2,157,2,124,0,100,2, + 141,2,130,1,124,4,116,8,124,6,131,1,24,0,124,7, + 23,0,125,2,116,13,124,3,100,9,100,10,133,2,25,0, + 131,1,125,8,116,13,124,3,100,10,100,11,133,2,25,0, + 131,1,125,9,124,2,124,8,107,0,144,1,114,230,116,3, + 100,12,124,0,155,2,157,2,124,0,100,2,141,2,130,1, + 124,2,124,9,107,0,144,2,114,2,116,3,100,13,124,0, + 155,2,157,2,124,0,100,2,141,2,130,1,124,2,124,8, + 56,0,125,2,124,2,124,9,24,0,125,10,124,10,100,6, + 107,0,144,2,114,46,116,3,100,14,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,105,0,125,11,100,6,125,12, + 122,14,124,1,160,4,124,2,161,1,1,0,87,0,110,38, + 4,0,116,2,144,2,121,106,1,0,1,0,1,0,116,3, + 100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1, + 89,0,110,2,48,0,124,1,160,7,100,15,161,1,125,3, + 116,8,124,3,131,1,100,5,107,0,144,2,114,140,116,14, + 100,16,131,1,130,1,124,3,100,0,100,5,133,2,25,0, + 100,17,107,3,144,2,114,162,144,4,113,208,116,8,124,3, + 131,1,100,15,107,3,144,2,114,184,116,14,100,16,131,1, + 130,1,116,15,124,3,100,18,100,19,133,2,25,0,131,1, + 125,13,116,15,124,3,100,19,100,9,133,2,25,0,131,1, + 125,14,116,15,124,3,100,9,100,20,133,2,25,0,131,1, + 125,15,116,15,124,3,100,20,100,10,133,2,25,0,131,1, + 125,16,116,13,124,3,100,10,100,11,133,2,25,0,131,1, + 125,17,116,13,124,3,100,11,100,21,133,2,25,0,131,1, + 125,18,116,13,124,3,100,21,100,22,133,2,25,0,131,1, + 125,4,116,15,124,3,100,22,100,23,133,2,25,0,131,1, + 125,19,116,15,124,3,100,23,100,24,133,2,25,0,131,1, + 125,20,116,15,124,3,100,24,100,25,133,2,25,0,131,1, + 125,21,116,13,124,3,100,26,100,15,133,2,25,0,131,1, + 125,22,124,19,124,20,23,0,124,21,23,0,125,8,124,22, + 124,9,107,4,144,3,114,144,116,3,100,27,124,0,155,2, + 157,2,124,0,100,2,141,2,130,1,124,22,124,10,55,0, + 125,22,122,14,124,1,160,7,124,19,161,1,125,23,87,0, + 110,38,4,0,116,2,144,3,121,204,1,0,1,0,1,0, + 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2, + 130,1,89,0,110,2,48,0,116,8,124,23,131,1,124,19, + 107,3,144,3,114,238,116,3,100,4,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,122,50,116,8,124,1,160,7, + 124,8,124,19,24,0,161,1,131,1,124,8,124,19,24,0, + 107,3,144,4,114,30,116,3,100,4,124,0,155,2,157,2, + 124,0,100,2,141,2,130,1,87,0,110,38,4,0,116,2, + 144,4,121,70,1,0,1,0,1,0,116,3,100,4,124,0, + 155,2,157,2,124,0,100,2,141,2,130,1,89,0,110,2, + 48,0,124,13,100,28,64,0,144,4,114,92,124,23,160,16, + 161,0,125,23,110,52,122,14,124,23,160,16,100,29,161,1, + 125,23,87,0,110,36,4,0,116,17,144,4,121,142,1,0, + 1,0,1,0,124,23,160,16,100,30,161,1,160,18,116,19, + 161,1,125,23,89,0,110,2,48,0,124,23,160,20,100,31, + 116,21,161,2,125,23,116,22,160,23,124,0,124,23,161,2, + 125,24,124,24,124,14,124,18,124,4,124,22,124,15,124,16, + 124,17,102,8,125,25,124,25,124,11,124,23,60,0,124,12, + 100,32,55,0,125,12,144,2,113,108,87,0,100,0,4,0, + 4,0,131,3,1,0,110,18,49,0,144,4,115,230,48,0, + 1,0,1,0,1,0,89,0,1,0,116,24,160,25,100,33, + 124,12,124,0,161,3,1,0,124,11,83,0,41,34,78,122, + 21,99,97,110,39,116,32,111,112,101,110,32,90,105,112,32, + 102,105,108,101,58,32,114,12,0,0,0,114,85,0,0,0, + 250,21,99,97,110,39,116,32,114,101,97,100,32,90,105,112, + 32,102,105,108,101,58,32,233,4,0,0,0,114,0,0,0, + 0,122,16,110,111,116,32,97,32,90,105,112,32,102,105,108, + 101,58,32,122,18,99,111,114,114,117,112,116,32,90,105,112, + 32,102,105,108,101,58,32,233,12,0,0,0,233,16,0,0, + 0,233,20,0,0,0,122,28,98,97,100,32,99,101,110,116, + 114,97,108,32,100,105,114,101,99,116,111,114,121,32,115,105, + 122,101,58,32,122,30,98,97,100,32,99,101,110,116,114,97, + 108,32,100,105,114,101,99,116,111,114,121,32,111,102,102,115, + 101,116,58,32,122,38,98,97,100,32,99,101,110,116,114,97, + 108,32,100,105,114,101,99,116,111,114,121,32,115,105,122,101, + 32,111,114,32,111,102,102,115,101,116,58,32,233,46,0,0, + 0,250,27,69,79,70,32,114,101,97,100,32,119,104,101,114, + 101,32,110,111,116,32,101,120,112,101,99,116,101,100,115,4, + 0,0,0,80,75,1,2,233,8,0,0,0,233,10,0,0, + 0,233,14,0,0,0,233,24,0,0,0,233,28,0,0,0, + 233,30,0,0,0,233,32,0,0,0,233,34,0,0,0,233, + 42,0,0,0,122,25,98,97,100,32,108,111,99,97,108,32, + 104,101,97,100,101,114,32,111,102,102,115,101,116,58,32,105, + 0,8,0,0,218,5,97,115,99,105,105,90,6,108,97,116, + 105,110,49,250,1,47,114,5,0,0,0,122,33,122,105,112, + 105,109,112,111,114,116,58,32,102,111,117,110,100,32,123,125, + 32,110,97,109,101,115,32,105,110,32,123,33,114,125,41,26, + 218,3,95,105,111,218,9,111,112,101,110,95,99,111,100,101, + 114,22,0,0,0,114,3,0,0,0,218,4,115,101,101,107, + 218,20,69,78,68,95,67,69,78,84,82,65,76,95,68,73, + 82,95,83,73,90,69,90,4,116,101,108,108,218,4,114,101, + 97,100,114,55,0,0,0,218,18,83,84,82,73,78,71,95, + 69,78,68,95,65,82,67,72,73,86,69,218,3,109,97,120, + 218,15,77,65,88,95,67,79,77,77,69,78,84,95,76,69, + 78,218,5,114,102,105,110,100,114,2,0,0,0,218,8,69, + 79,70,69,114,114,111,114,114,1,0,0,0,114,65,0,0, + 0,218,18,85,110,105,99,111,100,101,68,101,99,111,100,101, + 69,114,114,111,114,218,9,116,114,97,110,115,108,97,116,101, + 218,11,99,112,52,51,55,95,116,97,98,108,101,114,19,0, + 0,0,114,20,0,0,0,114,21,0,0,0,114,30,0,0, + 0,114,45,0,0,0,114,78,0,0,0,41,26,114,29,0, + 0,0,218,2,102,112,90,15,104,101,97,100,101,114,95,112, + 111,115,105,116,105,111,110,218,6,98,117,102,102,101,114,218, + 9,102,105,108,101,95,115,105,122,101,90,17,109,97,120,95, + 99,111,109,109,101,110,116,95,115,116,97,114,116,218,4,100, + 97,116,97,90,3,112,111,115,218,11,104,101,97,100,101,114, + 95,115,105,122,101,90,13,104,101,97,100,101,114,95,111,102, + 102,115,101,116,90,10,97,114,99,95,111,102,102,115,101,116, + 114,33,0,0,0,218,5,99,111,117,110,116,218,5,102,108, + 97,103,115,218,8,99,111,109,112,114,101,115,115,218,4,116, + 105,109,101,218,4,100,97,116,101,218,3,99,114,99,218,9, + 100,97,116,97,95,115,105,122,101,218,9,110,97,109,101,95, + 115,105,122,101,218,10,101,120,116,114,97,95,115,105,122,101, + 90,12,99,111,109,109,101,110,116,95,115,105,122,101,218,11, + 102,105,108,101,95,111,102,102,115,101,116,114,44,0,0,0, + 114,13,0,0,0,218,1,116,114,9,0,0,0,114,9,0, + 0,0,114,10,0,0,0,114,27,0,0,0,125,1,0,0, + 115,212,0,0,0,0,1,2,1,14,1,12,1,24,2,8, + 1,2,1,14,1,8,1,14,1,12,1,24,1,12,1,18, + 1,18,3,2,1,12,1,12,1,12,1,10,1,2,255,12, + 2,8,1,2,255,2,1,2,255,4,2,2,1,10,1,12, + 1,14,1,10,1,2,255,12,2,10,1,10,1,10,1,2, + 255,6,2,16,1,14,1,10,1,2,255,6,2,16,2,16, + 1,16,1,10,1,18,1,10,1,18,1,8,1,8,1,10, + 1,18,2,4,2,4,1,2,1,14,1,14,1,24,2,10, + 1,14,1,8,2,18,1,4,1,14,1,8,1,16,1,16, + 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, + 1,16,1,12,1,10,1,18,1,8,2,2,1,14,1,14, + 1,24,1,14,1,18,4,2,1,28,1,22,1,14,1,24, + 2,10,2,10,3,2,1,14,1,14,1,22,2,12,1,12, + 1,20,1,8,1,44,1,14,1,114,27,0,0,0,117,190, + 1,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60, + 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76, + 77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124, + 125,126,127,195,135,195,188,195,169,195,162,195,164,195,160,195, + 165,195,167,195,170,195,171,195,168,195,175,195,174,195,172,195, + 132,195,133,195,137,195,166,195,134,195,180,195,182,195,178,195, + 187,195,185,195,191,195,150,195,156,194,162,194,163,194,165,226, + 130,167,198,146,195,161,195,173,195,179,195,186,195,177,195,145, + 194,170,194,186,194,191,226,140,144,194,172,194,189,194,188,194, + 161,194,171,194,187,226,150,145,226,150,146,226,150,147,226,148, + 130,226,148,164,226,149,161,226,149,162,226,149,150,226,149,149, + 226,149,163,226,149,145,226,149,151,226,149,157,226,149,156,226, + 149,155,226,148,144,226,148,148,226,148,180,226,148,172,226,148, + 156,226,148,128,226,148,188,226,149,158,226,149,159,226,149,154, + 226,149,148,226,149,169,226,149,166,226,149,160,226,149,144,226, + 149,172,226,149,167,226,149,168,226,149,164,226,149,165,226,149, + 153,226,149,152,226,149,146,226,149,147,226,149,171,226,149,170, + 226,148,152,226,148,140,226,150,136,226,150,132,226,150,140,226, + 150,144,226,150,128,206,177,195,159,206,147,207,128,206,163,207, + 131,194,181,207,132,206,166,206,152,206,169,206,180,226,136,158, + 207,134,206,181,226,136,169,226,137,161,194,177,226,137,165,226, + 137,164,226,140,160,226,140,161,195,183,226,137,136,194,176,226, + 136,153,194,183,226,136,154,226,129,191,194,178,226,150,160,194, + 160,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,8,0,0,0,67,0,0,0,115,110,0,0,0,116, + 0,114,22,116,1,160,2,100,1,161,1,1,0,116,3,100, + 2,131,1,130,1,100,3,97,0,122,62,122,16,100,4,100, + 5,108,4,109,5,125,0,1,0,87,0,110,36,4,0,116, + 6,121,80,1,0,1,0,1,0,116,1,160,2,100,1,161, + 1,1,0,116,3,100,2,131,1,130,1,89,0,110,2,48, + 0,87,0,100,6,97,0,110,6,100,6,97,0,48,0,116, + 1,160,2,100,7,161,1,1,0,124,0,83,0,41,8,78, + 122,27,122,105,112,105,109,112,111,114,116,58,32,122,108,105, + 98,32,85,78,65,86,65,73,76,65,66,76,69,250,41,99, + 97,110,39,116,32,100,101,99,111,109,112,114,101,115,115,32, + 100,97,116,97,59,32,122,108,105,98,32,110,111,116,32,97, + 118,97,105,108,97,98,108,101,84,114,0,0,0,0,169,1, + 218,10,100,101,99,111,109,112,114,101,115,115,70,122,25,122, + 105,112,105,109,112,111,114,116,58,32,122,108,105,98,32,97, + 118,97,105,108,97,98,108,101,41,7,218,15,95,105,109,112, + 111,114,116,105,110,103,95,122,108,105,98,114,45,0,0,0, + 114,78,0,0,0,114,3,0,0,0,90,4,122,108,105,98, + 114,140,0,0,0,218,9,69,120,99,101,112,116,105,111,110, + 114,139,0,0,0,114,9,0,0,0,114,9,0,0,0,114, + 10,0,0,0,218,20,95,103,101,116,95,100,101,99,111,109, + 112,114,101,115,115,95,102,117,110,99,27,2,0,0,115,24, + 0,0,0,0,2,4,3,10,1,8,2,4,1,4,1,16, + 1,12,1,10,1,16,2,12,2,10,1,114,143,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,17,0,0, + 0,9,0,0,0,67,0,0,0,115,144,1,0,0,124,1, + 92,8,125,2,125,3,125,4,125,5,125,6,125,7,125,8, + 125,9,124,4,100,1,107,0,114,36,116,0,100,2,131,1, + 130,1,116,1,160,2,124,0,161,1,144,1,143,14,125,10, + 122,14,124,10,160,3,124,6,161,1,1,0,87,0,110,36, + 4,0,116,4,121,100,1,0,1,0,1,0,116,0,100,3, + 124,0,155,2,157,2,124,0,100,4,141,2,130,1,89,0, + 110,2,48,0,124,10,160,5,100,5,161,1,125,11,116,6, + 124,11,131,1,100,5,107,3,114,132,116,7,100,6,131,1, + 130,1,124,11,100,0,100,7,133,2,25,0,100,8,107,3, + 114,166,116,0,100,9,124,0,155,2,157,2,124,0,100,4, + 141,2,130,1,116,8,124,11,100,10,100,11,133,2,25,0, + 131,1,125,12,116,8,124,11,100,11,100,5,133,2,25,0, + 131,1,125,13,100,5,124,12,23,0,124,13,23,0,125,14, + 124,6,124,14,55,0,125,6,122,14,124,10,160,3,124,6, + 161,1,1,0,87,0,110,38,4,0,116,4,144,1,121,14, + 1,0,1,0,1,0,116,0,100,3,124,0,155,2,157,2, + 124,0,100,4,141,2,130,1,89,0,110,2,48,0,124,10, + 160,5,124,4,161,1,125,15,116,6,124,15,131,1,124,4, + 107,3,144,1,114,48,116,4,100,12,131,1,130,1,87,0, + 100,0,4,0,4,0,131,3,1,0,110,18,49,0,144,1, + 115,70,48,0,1,0,1,0,1,0,89,0,1,0,124,3, + 100,1,107,2,144,1,114,94,124,15,83,0,122,10,116,9, + 131,0,125,16,87,0,110,28,4,0,116,10,144,1,121,132, + 1,0,1,0,1,0,116,0,100,13,131,1,130,1,89,0, + 110,2,48,0,124,16,124,15,100,14,131,2,83,0,41,15, + 78,114,0,0,0,0,122,18,110,101,103,97,116,105,118,101, + 32,100,97,116,97,32,115,105,122,101,114,91,0,0,0,114, + 12,0,0,0,114,103,0,0,0,114,97,0,0,0,114,92, + 0,0,0,115,4,0,0,0,80,75,3,4,122,23,98,97, + 100,32,108,111,99,97,108,32,102,105,108,101,32,104,101,97, + 100,101,114,58,32,233,26,0,0,0,114,102,0,0,0,122, + 26,122,105,112,105,109,112,111,114,116,58,32,99,97,110,39, + 116,32,114,101,97,100,32,100,97,116,97,114,138,0,0,0, + 105,241,255,255,255,41,11,114,3,0,0,0,114,109,0,0, + 0,114,110,0,0,0,114,111,0,0,0,114,22,0,0,0, + 114,113,0,0,0,114,55,0,0,0,114,118,0,0,0,114, + 1,0,0,0,114,143,0,0,0,114,142,0,0,0,41,17, + 114,29,0,0,0,114,58,0,0,0,90,8,100,97,116,97, + 112,97,116,104,114,129,0,0,0,114,133,0,0,0,114,124, + 0,0,0,114,136,0,0,0,114,130,0,0,0,114,131,0, + 0,0,114,132,0,0,0,114,122,0,0,0,114,123,0,0, + 0,114,134,0,0,0,114,135,0,0,0,114,126,0,0,0, + 90,8,114,97,119,95,100,97,116,97,114,140,0,0,0,114, + 9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,56, + 0,0,0,48,2,0,0,115,62,0,0,0,0,1,20,1, + 8,1,8,2,14,2,2,1,14,1,12,1,24,1,10,1, + 12,1,8,2,16,2,18,2,16,1,16,1,12,1,8,1, + 2,1,14,1,14,1,24,1,10,1,14,1,40,2,10,2, + 4,3,2,1,10,1,14,1,14,1,114,56,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,124, + 0,124,1,24,0,131,1,100,1,107,1,83,0,41,2,78, + 114,5,0,0,0,41,1,218,3,97,98,115,41,2,90,2, + 116,49,90,2,116,50,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,9,95,101,113,95,109,116,105,109,101, + 94,2,0,0,115,2,0,0,0,0,2,114,146,0,0,0, + 99,5,0,0,0,0,0,0,0,0,0,0,0,14,0,0, + 0,8,0,0,0,67,0,0,0,115,60,1,0,0,124,3, + 124,2,100,1,156,2,125,5,122,18,116,0,160,1,124,4, + 124,3,124,5,161,3,125,6,87,0,110,20,4,0,116,2, + 121,48,1,0,1,0,1,0,89,0,100,0,83,0,48,0, + 124,6,100,2,64,0,100,3,107,3,125,7,124,7,114,182, + 124,6,100,4,64,0,100,3,107,3,125,8,116,3,106,4, + 100,5,107,3,144,1,114,10,124,8,115,106,116,3,106,4, + 100,6,107,2,144,1,114,10,116,5,124,0,124,2,131,2, + 125,9,124,9,100,0,117,1,144,1,114,10,116,3,160,6, + 116,0,106,7,124,9,161,2,125,10,122,20,116,0,160,8, + 124,4,124,10,124,3,124,5,161,4,1,0,87,0,110,104, + 4,0,116,2,121,180,1,0,1,0,1,0,89,0,100,0, + 83,0,48,0,116,9,124,0,124,2,131,2,92,2,125,11, + 125,12,124,11,144,1,114,10,116,10,116,11,124,4,100,7, + 100,8,133,2,25,0,131,1,124,11,131,2,114,246,116,11, + 124,4,100,8,100,9,133,2,25,0,131,1,124,12,107,3, + 144,1,114,10,116,12,160,13,100,10,124,3,155,2,157,2, + 161,1,1,0,100,0,83,0,116,14,160,15,124,4,100,9, + 100,0,133,2,25,0,161,1,125,13,116,16,124,13,116,17, + 131,2,144,1,115,56,116,18,100,11,124,1,155,2,100,12, + 157,3,131,1,130,1,124,13,83,0,41,13,78,41,2,114, + 44,0,0,0,114,13,0,0,0,114,5,0,0,0,114,0, + 0,0,0,114,85,0,0,0,90,5,110,101,118,101,114,90, + 6,97,108,119,97,121,115,114,98,0,0,0,114,93,0,0, + 0,114,94,0,0,0,122,22,98,121,116,101,99,111,100,101, + 32,105,115,32,115,116,97,108,101,32,102,111,114,32,122,16, + 99,111,109,112,105,108,101,100,32,109,111,100,117,108,101,32, + 122,21,32,105,115,32,110,111,116,32,97,32,99,111,100,101, + 32,111,98,106,101,99,116,41,19,114,21,0,0,0,90,13, + 95,99,108,97,115,115,105,102,121,95,112,121,99,114,77,0, + 0,0,218,4,95,105,109,112,90,21,99,104,101,99,107,95, + 104,97,115,104,95,98,97,115,101,100,95,112,121,99,115,218, + 15,95,103,101,116,95,112,121,99,95,115,111,117,114,99,101, + 218,11,115,111,117,114,99,101,95,104,97,115,104,90,17,95, + 82,65,87,95,77,65,71,73,67,95,78,85,77,66,69,82, + 90,18,95,118,97,108,105,100,97,116,101,95,104,97,115,104, + 95,112,121,99,218,29,95,103,101,116,95,109,116,105,109,101, + 95,97,110,100,95,115,105,122,101,95,111,102,95,115,111,117, + 114,99,101,114,146,0,0,0,114,2,0,0,0,114,45,0, + 0,0,114,78,0,0,0,218,7,109,97,114,115,104,97,108, + 90,5,108,111,97,100,115,114,15,0,0,0,218,10,95,99, + 111,100,101,95,116,121,112,101,218,9,84,121,112,101,69,114, + 114,111,114,41,14,114,32,0,0,0,114,57,0,0,0,114, + 66,0,0,0,114,38,0,0,0,114,125,0,0,0,90,11, + 101,120,99,95,100,101,116,97,105,108,115,114,128,0,0,0, + 90,10,104,97,115,104,95,98,97,115,101,100,90,12,99,104, + 101,99,107,95,115,111,117,114,99,101,90,12,115,111,117,114, + 99,101,95,98,121,116,101,115,114,149,0,0,0,90,12,115, + 111,117,114,99,101,95,109,116,105,109,101,90,11,115,111,117, + 114,99,101,95,115,105,122,101,114,50,0,0,0,114,9,0, + 0,0,114,9,0,0,0,114,10,0,0,0,218,15,95,117, + 110,109,97,114,115,104,97,108,95,99,111,100,101,104,2,0, + 0,115,82,0,0,0,0,2,2,1,2,254,6,5,2,1, + 18,1,12,1,8,2,12,1,4,1,12,1,12,1,2,255, + 2,1,8,255,4,2,10,1,10,1,4,1,4,1,2,254, + 4,5,2,1,4,1,8,255,8,2,12,1,8,3,8,255, + 6,3,6,3,22,1,18,255,4,2,4,1,8,255,4,2, + 4,2,18,1,12,1,16,1,114,154,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0, + 0,0,67,0,0,0,115,28,0,0,0,124,0,160,0,100, + 1,100,2,161,2,125,0,124,0,160,0,100,3,100,2,161, + 2,125,0,124,0,83,0,41,4,78,115,2,0,0,0,13, + 10,243,1,0,0,0,10,243,1,0,0,0,13,41,1,114, + 19,0,0,0,41,1,218,6,115,111,117,114,99,101,114,9, + 0,0,0,114,9,0,0,0,114,10,0,0,0,218,23,95, + 110,111,114,109,97,108,105,122,101,95,108,105,110,101,95,101, + 110,100,105,110,103,115,155,2,0,0,115,6,0,0,0,0, + 1,12,1,12,1,114,158,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,67, + 0,0,0,115,24,0,0,0,116,0,124,1,131,1,125,1, + 116,1,124,1,124,0,100,1,100,2,100,3,141,4,83,0, + 41,4,78,114,76,0,0,0,84,41,1,90,12,100,111,110, + 116,95,105,110,104,101,114,105,116,41,2,114,158,0,0,0, + 218,7,99,111,109,112,105,108,101,41,2,114,57,0,0,0, + 114,157,0,0,0,114,9,0,0,0,114,9,0,0,0,114, + 10,0,0,0,218,15,95,99,111,109,112,105,108,101,95,115, + 111,117,114,99,101,162,2,0,0,115,4,0,0,0,0,1, + 8,1,114,160,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,11,0,0,0,67,0,0,0, + 115,68,0,0,0,116,0,160,1,124,0,100,1,63,0,100, + 2,23,0,124,0,100,3,63,0,100,4,64,0,124,0,100, + 5,64,0,124,1,100,6,63,0,124,1,100,3,63,0,100, + 7,64,0,124,1,100,5,64,0,100,8,20,0,100,9,100, + 9,100,9,102,9,161,1,83,0,41,10,78,233,9,0,0, + 0,105,188,7,0,0,233,5,0,0,0,233,15,0,0,0, + 233,31,0,0,0,233,11,0,0,0,233,63,0,0,0,114, + 85,0,0,0,114,14,0,0,0,41,2,114,130,0,0,0, + 90,6,109,107,116,105,109,101,41,2,218,1,100,114,137,0, + 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,218,14,95,112,97,114,115,101,95,100,111,115,116,105,109, + 101,168,2,0,0,115,18,0,0,0,0,1,4,1,10,1, + 10,1,6,1,6,1,10,1,10,1,6,249,114,168,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,6,0, + 0,0,10,0,0,0,67,0,0,0,115,110,0,0,0,122, + 82,124,1,100,1,100,0,133,2,25,0,100,2,118,0,115, + 22,74,0,130,1,124,1,100,0,100,1,133,2,25,0,125, + 1,124,0,106,0,124,1,25,0,125,2,124,2,100,3,25, + 0,125,3,124,2,100,4,25,0,125,4,124,2,100,5,25, + 0,125,5,116,1,124,4,124,3,131,2,124,5,102,2,87, + 0,83,0,4,0,116,2,116,3,116,4,102,3,121,108,1, + 0,1,0,1,0,89,0,100,6,83,0,48,0,41,7,78, + 114,14,0,0,0,169,2,218,1,99,218,1,111,114,162,0, + 0,0,233,6,0,0,0,233,3,0,0,0,41,2,114,0, + 0,0,0,114,0,0,0,0,41,5,114,28,0,0,0,114, + 168,0,0,0,114,26,0,0,0,218,10,73,110,100,101,120, + 69,114,114,111,114,114,153,0,0,0,41,6,114,32,0,0, + 0,114,13,0,0,0,114,58,0,0,0,114,130,0,0,0, + 114,131,0,0,0,90,17,117,110,99,111,109,112,114,101,115, + 115,101,100,95,115,105,122,101,114,9,0,0,0,114,9,0, + 0,0,114,10,0,0,0,114,150,0,0,0,181,2,0,0, + 115,20,0,0,0,0,1,2,2,20,1,12,1,10,3,8, + 1,8,1,8,1,16,1,18,1,114,150,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8, + 0,0,0,67,0,0,0,115,80,0,0,0,124,1,100,1, + 100,0,133,2,25,0,100,2,118,0,115,20,74,0,130,1, + 124,1,100,0,100,1,133,2,25,0,125,1,122,14,124,0, + 106,0,124,1,25,0,125,2,87,0,110,20,4,0,116,1, + 121,66,1,0,1,0,1,0,89,0,100,0,83,0,48,0, + 116,2,124,0,106,3,124,2,131,2,83,0,41,3,78,114, + 14,0,0,0,114,169,0,0,0,41,4,114,28,0,0,0, + 114,26,0,0,0,114,56,0,0,0,114,29,0,0,0,41, + 3,114,32,0,0,0,114,13,0,0,0,114,58,0,0,0, + 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,114, + 148,0,0,0,200,2,0,0,115,14,0,0,0,0,2,20, + 1,12,2,2,1,14,1,12,1,8,2,114,148,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,11,0,0, + 0,9,0,0,0,67,0,0,0,115,194,0,0,0,116,0, + 124,0,124,1,131,2,125,2,116,1,68,0,93,156,92,3, + 125,3,125,4,125,5,124,2,124,3,23,0,125,6,116,2, + 106,3,100,1,124,0,106,4,116,5,124,6,100,2,100,3, + 141,5,1,0,122,14,124,0,106,6,124,6,25,0,125,7, + 87,0,110,18,4,0,116,7,121,86,1,0,1,0,1,0, + 89,0,113,14,48,0,124,7,100,4,25,0,125,8,116,8, + 124,0,106,4,124,7,131,2,125,9,124,4,114,130,116,9, + 124,0,124,8,124,6,124,1,124,9,131,5,125,10,110,10, + 116,10,124,8,124,9,131,2,125,10,124,10,100,0,117,0, + 114,150,113,14,124,7,100,4,25,0,125,8,124,10,124,5, + 124,8,102,3,2,0,1,0,83,0,116,11,100,5,124,1, + 155,2,157,2,124,1,100,6,141,2,130,1,100,0,83,0, + 41,7,78,122,13,116,114,121,105,110,103,32,123,125,123,125, + 123,125,114,85,0,0,0,41,1,90,9,118,101,114,98,111, + 115,105,116,121,114,0,0,0,0,114,61,0,0,0,114,62, + 0,0,0,41,12,114,36,0,0,0,114,88,0,0,0,114, + 45,0,0,0,114,78,0,0,0,114,29,0,0,0,114,20, + 0,0,0,114,28,0,0,0,114,26,0,0,0,114,56,0, + 0,0,114,154,0,0,0,114,160,0,0,0,114,3,0,0, + 0,41,11,114,32,0,0,0,114,38,0,0,0,114,13,0, + 0,0,114,89,0,0,0,114,90,0,0,0,114,51,0,0, + 0,114,66,0,0,0,114,58,0,0,0,114,40,0,0,0, + 114,125,0,0,0,114,50,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,114,48,0,0,0,215,2, + 0,0,115,36,0,0,0,0,1,10,1,14,1,8,1,22, + 1,2,1,14,1,12,1,6,2,8,1,12,1,4,1,18, + 2,10,1,8,3,2,1,8,1,14,2,114,48,0,0,0, + 41,45,114,83,0,0,0,90,26,95,102,114,111,122,101,110, + 95,105,109,112,111,114,116,108,105,98,95,101,120,116,101,114, + 110,97,108,114,21,0,0,0,114,1,0,0,0,114,2,0, + 0,0,90,17,95,102,114,111,122,101,110,95,105,109,112,111, + 114,116,108,105,98,114,45,0,0,0,114,147,0,0,0,114, + 109,0,0,0,114,151,0,0,0,114,69,0,0,0,114,130, + 0,0,0,90,7,95,95,97,108,108,95,95,114,20,0,0, + 0,90,15,112,97,116,104,95,115,101,112,97,114,97,116,111, + 114,115,114,18,0,0,0,114,77,0,0,0,114,3,0,0, + 0,114,25,0,0,0,218,4,116,121,112,101,114,72,0,0, + 0,114,112,0,0,0,114,114,0,0,0,114,116,0,0,0, + 90,13,95,76,111,97,100,101,114,66,97,115,105,99,115,114, + 4,0,0,0,114,88,0,0,0,114,36,0,0,0,114,37, + 0,0,0,114,35,0,0,0,114,27,0,0,0,114,121,0, + 0,0,114,141,0,0,0,114,143,0,0,0,114,56,0,0, + 0,114,146,0,0,0,114,154,0,0,0,218,8,95,95,99, + 111,100,101,95,95,114,152,0,0,0,114,158,0,0,0,114, + 160,0,0,0,114,168,0,0,0,114,150,0,0,0,114,148, + 0,0,0,114,48,0,0,0,114,9,0,0,0,114,9,0, + 0,0,114,9,0,0,0,114,10,0,0,0,218,8,60,109, + 111,100,117,108,101,62,1,0,0,0,115,86,0,0,0,4, + 16,8,1,16,1,8,1,8,1,8,1,8,1,8,1,8, + 2,8,3,6,1,14,3,16,4,4,2,8,2,4,1,4, + 1,4,2,18,127,0,127,0,30,12,1,12,1,2,1,2, + 252,4,9,8,4,8,9,8,31,8,126,2,254,2,29,4, + 5,8,21,8,46,8,10,8,46,10,5,8,7,8,6,8, + 13,8,19,8,15, }; From 73091d43bc8378a7bc6fd26470d62a2ef42e6cf9 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sat, 7 Nov 2020 11:13:00 -0800 Subject: [PATCH 2/4] Update Doc/library/zipimport.rst Co-authored-by: Nick Coghlan --- Doc/library/zipimport.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 8f8f71bc800c4f..9c34c7445ed78a 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -73,7 +73,7 @@ zipimporter Objects .. method:: create_module(spec) Implementation of :meth:`importlib.abc.Loader.create_module` that returns - :const:`None` for default semantics. + :const:`None` to explicitly request the default semantics. .. versionadded:: 3.10 From 7b4ade48ed101e5108de38c2dfab45a9c482c30f Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 13 Nov 2020 13:46:33 -0800 Subject: [PATCH 3/4] Add a reference to importlib --- Doc/library/zipimport.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 9c34c7445ed78a..8d579f21c7e8b0 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -44,6 +44,10 @@ doesn't contain :file:`.pyc` files, importing may be rather slow. follows the specification in :pep:`273`, but uses an implementation written by Just van Rossum that uses the import hooks described in :pep:`302`. + :mod:`importlib` - The implementation of the import machinery + Package providing the relevant protocols for all importers to + implement. + This module defines an exception: From 161e95b89c3d192692b1631e1dd731b2efffa6bb Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 13 Nov 2020 13:47:34 -0800 Subject: [PATCH 4/4] Update assertion methods --- Lib/test/test_zipimport.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 6db202009e3575..be0a198010cec1 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -450,7 +450,7 @@ def testZipImporterMethods(self): zi = zipimport.zipimporter(TEMP_ZIP) self.assertEqual(zi.archive, TEMP_ZIP) - self.assertEqual(zi.is_package(TESTPACK), True) + self.assertTrue(zi.is_package(TESTPACK)) # PEP 302 find_mod = zi.find_module('spam') @@ -481,21 +481,21 @@ def testZipImporterMethods(self): expected_path_path = os.path.join(TEMP_ZIP, TESTPACK) self.assertEqual(existing_pack_path, expected_path_path) - self.assertEqual(zi.is_package(packdir + '__init__'), False) - self.assertEqual(zi.is_package(packdir + TESTPACK2), True) - self.assertEqual(zi.is_package(packdir2 + TESTMOD), False) + self.assertFalse(zi.is_package(packdir + '__init__')) + self.assertTrue(zi.is_package(packdir + TESTPACK2)) + self.assertFalse(zi.is_package(packdir2 + TESTMOD)) mod_path = packdir2 + TESTMOD mod_name = module_path_to_dotted_name(mod_path) mod = importlib.import_module(mod_name) self.assertTrue(mod_name in sys.modules) - self.assertEqual(zi.get_source(TESTPACK), None) - self.assertEqual(zi.get_source(mod_path), None) + self.assertIsNone(zi.get_source(TESTPACK)) + self.assertIsNone(zi.get_source(mod_path)) self.assertEqual(zi.get_filename(mod_path), mod.__file__) # To pass in the module name instead of the path, we must use the # right importer loader = mod.__spec__.loader - self.assertEqual(loader.get_source(mod_name), None) + self.assertIsNone(loader.get_source(mod_name)) self.assertEqual(loader.get_filename(mod_name), mod.__file__) # test prefix and archivepath members @@ -520,7 +520,7 @@ def testZipImporterMethodsInSubDirectory(self): zi = zipimport.zipimporter(TEMP_ZIP + os.sep + packdir) self.assertEqual(zi.archive, TEMP_ZIP) self.assertEqual(zi.prefix, packdir) - self.assertEqual(zi.is_package(TESTPACK2), True) + self.assertTrue(zi.is_package(TESTPACK2)) # PEP 302 mod = zi.load_module(TESTPACK2) self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__) @@ -530,10 +530,8 @@ def testZipImporterMethodsInSubDirectory(self): spec.loader.exec_module(mod) self.assertEqual(spec.loader.get_filename(TESTPACK2), mod.__file__) - self.assertEqual( - zi.is_package(TESTPACK2 + os.sep + '__init__'), False) - self.assertEqual( - zi.is_package(TESTPACK2 + os.sep + TESTMOD), False) + self.assertFalse(zi.is_package(TESTPACK2 + os.sep + '__init__')) + self.assertFalse(zi.is_package(TESTPACK2 + os.sep + TESTMOD)) pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 zi2 = zipimport.zipimporter(pkg_path) @@ -560,13 +558,13 @@ def testZipImporterMethodsInSubDirectory(self): mod_name = module_path_to_dotted_name(mod_path) mod = importlib.import_module(mod_name) self.assertTrue(mod_name in sys.modules) - self.assertEqual(zi.get_source(TESTPACK2), None) - self.assertEqual(zi.get_source(mod_path), None) + self.assertIsNone(zi.get_source(TESTPACK2)) + self.assertIsNone(zi.get_source(mod_path)) self.assertEqual(zi.get_filename(mod_path), mod.__file__) # To pass in the module name instead of the path, we must use the # right importer. loader = mod.__loader__ - self.assertEqual(loader.get_source(mod_name), None) + self.assertIsNone(loader.get_source(mod_name)) self.assertEqual(loader.get_filename(mod_name), mod.__file__) def testGetData(self): @@ -790,8 +788,8 @@ def _testBogusZipFile(self): self.assertRaises(TypeError, z.get_source, None) error = zipimport.ZipImportError - self.assertEqual(z.find_module('abc'), None) - self.assertEqual(z.find_spec('abc'), None) + self.assertIsNone(z.find_module('abc')) + self.assertIsNone(z.find_spec('abc')) self.assertRaises(error, z.load_module, 'abc') self.assertRaises(error, z.get_code, 'abc')