[Python-checkins] [3.5] Backport bpo-30876 (GH-2639), bpo-18018 and bpo-26367. (#2677)

Serhiy Storchaka webhook-mailer at python.org
Sun Jul 23 02:44:08 EDT 2017


https://github.com/python/cpython/commit/c824cc8426a16dd9f3949a3ed135523d37787bae
commit: c824cc8426a16dd9f3949a3ed135523d37787bae
branch: 3.5
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2017-07-23T09:44:05+03:00
summary:

[3.5] Backport bpo-30876 (GH-2639), bpo-18018 and bpo-26367. (#2677)

* bpo-30876: Relative import from unloaded package now reimports the package
instead of failing with SystemError.

Relative import from non-package now fails with ImportError rather than
SystemError.
(cherry picked from commit 8a9cd20edca7d01b68292036029ae3735ce65edd)

* bpo-18018: Import raises ImportError instead of SystemError if a relative
import is attempted without a known parent package.

* bpo-26367: importlib.__init__() raises ImportError like
builtins.__import__() when ``level`` is specified but without an accompanying
package specified.

files:
A Lib/test/test_import/data/package2/submodule1.py
A Lib/test/test_import/data/package2/submodule2.py
A Misc/NEWS.d/next/Core and Builtins/2017-07-11-06-31-32.bpo-30876.x35jZX.rst
M Lib/importlib/_bootstrap.py
M Lib/test/test_import/__init__.py
M Lib/test/test_importlib/import_/test___package__.py
M Lib/test/test_importlib/import_/test_relative_imports.py
M Python/import.c
M Python/importlib.h

diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 9eecbfe9672..02fe05b639f 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -925,10 +925,9 @@ def _sanity_check(name, package, level):
     if level > 0:
         if not isinstance(package, str):
             raise TypeError('__package__ not set to a string')
-        elif package not in sys.modules:
-            msg = ('Parent module {!r} not loaded, cannot perform relative '
-                   'import')
-            raise SystemError(msg.format(package))
+        elif not package:
+            raise ImportError('attempted relative import with no known parent '
+                              'package')
     if not name and level == 0:
         raise ValueError('Empty module name')
 
diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py
index 5d8b5621a37..6ef9bd568c2 100644
--- a/Lib/test/test_import/__init__.py
+++ b/Lib/test/test_import/__init__.py
@@ -22,8 +22,9 @@
     EnvironmentVarGuard, TESTFN, check_warnings, forget, is_jython,
     make_legacy_pyc, rmtree, run_unittest, swap_attr, swap_item, temp_umask,
     unlink, unload, create_empty_file, cpython_only, TESTFN_UNENCODABLE,
-    temp_dir)
+    temp_dir, DirsOnSysPath)
 from test.support import script_helper
+from test.test_importlib.util import uncache
 
 
 skip_if_dont_write_bytecode = unittest.skipIf(
@@ -600,11 +601,11 @@ def check_relative():
 
         # Check relative import fails with only __package__ wrong
         ns = dict(__package__='foo', __name__='test.notarealmodule')
-        self.assertRaises(SystemError, check_relative)
+        self.assertRaises(ImportError, check_relative)
 
         # Check relative import fails with __package__ and __name__ wrong
         ns = dict(__package__='foo', __name__='notarealpkg.notarealmodule')
-        self.assertRaises(SystemError, check_relative)
+        self.assertRaises(ImportError, check_relative)
 
         # Check relative import fails with package set to a non-string
         ns = dict(__package__=object())
@@ -619,6 +620,20 @@ def test_absolute_import_without_future(self):
             self.fail("explicit relative import triggered an "
                       "implicit absolute import")
 
+    def test_import_from_non_package(self):
+        path = os.path.join(os.path.dirname(__file__), 'data', 'package2')
+        with uncache('submodule1', 'submodule2'), DirsOnSysPath(path):
+            with self.assertRaises(ImportError):
+                import submodule1
+            self.assertNotIn('submodule1', sys.modules)
+            self.assertNotIn('submodule2', sys.modules)
+
+    def test_import_from_unloaded_package(self):
+        with uncache('package2', 'package2.submodule1', 'package2.submodule2'), \
+             DirsOnSysPath(os.path.join(os.path.dirname(__file__), 'data')):
+            import package2.submodule1
+            package2.submodule1.submodule2
+
 
 class OverridingImportBuiltinTests(unittest.TestCase):
     def test_override_builtin(self):
diff --git a/Lib/test/test_import/data/package2/submodule1.py b/Lib/test/test_import/data/package2/submodule1.py
new file mode 100644
index 00000000000..0698ed6de2a
--- /dev/null
+++ b/Lib/test/test_import/data/package2/submodule1.py
@@ -0,0 +1,3 @@
+import sys
+sys.modules.pop(__package__, None)
+from . import submodule2
diff --git a/Lib/test/test_import/data/package2/submodule2.py b/Lib/test/test_import/data/package2/submodule2.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/Lib/test/test_importlib/import_/test___package__.py b/Lib/test/test_importlib/import_/test___package__.py
index c7d3a2a2048..9a704050d89 100644
--- a/Lib/test/test_importlib/import_/test___package__.py
+++ b/Lib/test/test_importlib/import_/test___package__.py
@@ -61,7 +61,7 @@ def test_None_as___package__(self):
 
     def test_bad__package__(self):
         globals = {'__package__': '<not real>'}
-        with self.assertRaises(SystemError):
+        with self.assertRaises(ImportError):
             self.__import__('', globals, {}, ['relimport'], 1)
 
     def test_bunk__package__(self):
diff --git a/Lib/test/test_importlib/import_/test_relative_imports.py b/Lib/test/test_importlib/import_/test_relative_imports.py
index 3bb819f906d..717fc5b1bed 100644
--- a/Lib/test/test_importlib/import_/test_relative_imports.py
+++ b/Lib/test/test_importlib/import_/test_relative_imports.py
@@ -207,8 +207,13 @@ def test_relative_import_no_globals(self):
         with self.assertRaises(KeyError):
             self.__import__('sys', level=1)
 
+    def test_relative_import_no_package(self):
+        with self.assertRaises(ImportError):
+            self.__import__('a', {'__package__': '', '__spec__': None},
+                            level=1)
+
     def test_relative_import_no_package_exists_absolute(self):
-        with self.assertRaises(SystemError):
+        with self.assertRaises(ImportError):
             self.__import__('sys', {'__package__': '', '__spec__': None},
                             level=1)
 
diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-07-11-06-31-32.bpo-30876.x35jZX.rst b/Misc/NEWS.d/next/Core and Builtins/2017-07-11-06-31-32.bpo-30876.x35jZX.rst
new file mode 100644
index 00000000000..4f3f4d29190
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2017-07-11-06-31-32.bpo-30876.x35jZX.rst	
@@ -0,0 +1,3 @@
+Relative import from unloaded package now reimports the package instead of
+failing with SystemError.  Relative import from non-package now fails with
+ImportError rather than SystemError.
diff --git a/Python/import.c b/Python/import.c
index 4f08d5ebb77..9d54d59ea66 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1461,11 +1461,9 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
                 Py_DECREF(partition);
             }
         }
-
-        if (PyDict_GetItem(interp->modules, package) == NULL) {
-            PyErr_Format(PyExc_SystemError,
-                    "Parent module %R not loaded, cannot perform relative "
-                    "import", package);
+        if (PyUnicode_GET_LENGTH(package) == 0) {
+            PyErr_SetString(PyExc_ImportError,
+                    "attempted relative import with no known parent package");
             goto error;
         }
     }
diff --git a/Python/importlib.h b/Python/importlib.h
index a5fc936a28c..aba15fdcd4b 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -1610,379 +1610,376 @@ const unsigned char _Py_M__importlib[] = {
     1,10,1,3,1,13,1,13,1,18,1,12,1,8,2,25,
     1,12,2,22,1,13,1,3,1,13,1,13,4,9,2,12,
     1,4,2,7,2,8,2,114,176,0,0,0,99,3,0,0,
-    0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
-    0,115,185,0,0,0,116,0,0,124,0,0,116,1,0,131,
+    0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
+    0,115,161,0,0,0,116,0,0,124,0,0,116,1,0,131,
     2,0,115,42,0,116,2,0,100,1,0,106,3,0,116,4,
     0,124,0,0,131,1,0,131,1,0,131,1,0,130,1,0,
     124,2,0,100,2,0,107,0,0,114,66,0,116,5,0,100,
     3,0,131,1,0,130,1,0,124,2,0,100,2,0,107,4,
-    0,114,150,0,116,0,0,124,1,0,116,1,0,131,2,0,
+    0,114,126,0,116,0,0,124,1,0,116,1,0,131,2,0,
     115,108,0,116,2,0,100,4,0,131,1,0,130,1,0,110,
-    42,0,124,1,0,116,6,0,106,7,0,107,7,0,114,150,
-    0,100,5,0,125,3,0,116,8,0,124,3,0,106,3,0,
-    124,1,0,131,1,0,131,1,0,130,1,0,124,0,0,12,
-    114,181,0,124,2,0,100,2,0,107,2,0,114,181,0,116,
-    5,0,100,6,0,131,1,0,130,1,0,100,7,0,83,41,
-    8,122,28,86,101,114,105,102,121,32,97,114,103,117,109,101,
-    110,116,115,32,97,114,101,32,34,115,97,110,101,34,46,122,
-    31,109,111,100,117,108,101,32,110,97,109,101,32,109,117,115,
-    116,32,98,101,32,115,116,114,44,32,110,111,116,32,123,125,
-    114,33,0,0,0,122,18,108,101,118,101,108,32,109,117,115,
-    116,32,98,101,32,62,61,32,48,122,31,95,95,112,97,99,
-    107,97,103,101,95,95,32,110,111,116,32,115,101,116,32,116,
-    111,32,97,32,115,116,114,105,110,103,122,61,80,97,114,101,
-    110,116,32,109,111,100,117,108,101,32,123,33,114,125,32,110,
-    111,116,32,108,111,97,100,101,100,44,32,99,97,110,110,111,
-    116,32,112,101,114,102,111,114,109,32,114,101,108,97,116,105,
-    118,101,32,105,109,112,111,114,116,122,17,69,109,112,116,121,
-    32,109,111,100,117,108,101,32,110,97,109,101,78,41,9,218,
-    10,105,115,105,110,115,116,97,110,99,101,218,3,115,116,114,
-    218,9,84,121,112,101,69,114,114,111,114,114,50,0,0,0,
-    114,13,0,0,0,114,168,0,0,0,114,14,0,0,0,114,
-    21,0,0,0,218,11,83,121,115,116,101,109,69,114,114,111,
-    114,41,4,114,15,0,0,0,114,169,0,0,0,114,170,0,
-    0,0,114,147,0,0,0,114,10,0,0,0,114,10,0,0,
-    0,114,11,0,0,0,218,13,95,115,97,110,105,116,121,95,
-    99,104,101,99,107,151,3,0,0,115,24,0,0,0,0,2,
-    15,1,27,1,12,1,12,1,12,1,15,1,15,1,15,1,
-    6,2,21,1,19,1,114,181,0,0,0,122,16,78,111,32,
-    109,111,100,117,108,101,32,110,97,109,101,100,32,122,4,123,
-    33,114,125,99,2,0,0,0,0,0,0,0,8,0,0,0,
-    12,0,0,0,67,0,0,0,115,40,1,0,0,100,0,0,
-    125,2,0,124,0,0,106,0,0,100,1,0,131,1,0,100,
-    2,0,25,125,3,0,124,3,0,114,175,0,124,3,0,116,
-    1,0,106,2,0,107,7,0,114,59,0,116,3,0,124,1,
-    0,124,3,0,131,2,0,1,124,0,0,116,1,0,106,2,
-    0,107,6,0,114,85,0,116,1,0,106,2,0,124,0,0,
-    25,83,116,1,0,106,2,0,124,3,0,25,125,4,0,121,
-    13,0,124,4,0,106,4,0,125,2,0,87,110,61,0,4,
-    116,5,0,107,10,0,114,174,0,1,1,1,116,6,0,100,
-    3,0,23,106,7,0,124,0,0,124,3,0,131,2,0,125,
-    5,0,116,8,0,124,5,0,100,4,0,124,0,0,131,1,
-    1,100,0,0,130,2,0,89,110,1,0,88,116,9,0,124,
-    0,0,124,2,0,131,2,0,125,6,0,124,6,0,100,0,
-    0,107,8,0,114,232,0,116,8,0,116,6,0,106,7,0,
-    124,0,0,131,1,0,100,4,0,124,0,0,131,1,1,130,
-    1,0,110,12,0,116,10,0,124,6,0,131,1,0,125,7,
-    0,124,3,0,114,36,1,116,1,0,106,2,0,124,3,0,
-    25,125,4,0,116,11,0,124,4,0,124,0,0,106,0,0,
-    100,1,0,131,1,0,100,5,0,25,124,7,0,131,3,0,
-    1,124,7,0,83,41,6,78,114,121,0,0,0,114,33,0,
-    0,0,122,23,59,32,123,33,114,125,32,105,115,32,110,111,
-    116,32,97,32,112,97,99,107,97,103,101,114,15,0,0,0,
-    114,140,0,0,0,41,12,114,122,0,0,0,114,14,0,0,
-    0,114,21,0,0,0,114,65,0,0,0,114,131,0,0,0,
-    114,96,0,0,0,218,8,95,69,82,82,95,77,83,71,114,
-    50,0,0,0,114,77,0,0,0,114,176,0,0,0,114,149,
-    0,0,0,114,5,0,0,0,41,8,114,15,0,0,0,218,
-    7,105,109,112,111,114,116,95,114,152,0,0,0,114,123,0,
-    0,0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,
-    101,114,147,0,0,0,114,88,0,0,0,114,89,0,0,0,
+    18,0,124,1,0,115,126,0,116,6,0,100,5,0,131,1,
+    0,130,1,0,124,0,0,12,114,157,0,124,2,0,100,2,
+    0,107,2,0,114,157,0,116,5,0,100,6,0,131,1,0,
+    130,1,0,100,7,0,83,41,8,122,28,86,101,114,105,102,
+    121,32,97,114,103,117,109,101,110,116,115,32,97,114,101,32,
+    34,115,97,110,101,34,46,122,31,109,111,100,117,108,101,32,
+    110,97,109,101,32,109,117,115,116,32,98,101,32,115,116,114,
+    44,32,110,111,116,32,123,125,114,33,0,0,0,122,18,108,
+    101,118,101,108,32,109,117,115,116,32,98,101,32,62,61,32,
+    48,122,31,95,95,112,97,99,107,97,103,101,95,95,32,110,
+    111,116,32,115,101,116,32,116,111,32,97,32,115,116,114,105,
+    110,103,122,54,97,116,116,101,109,112,116,101,100,32,114,101,
+    108,97,116,105,118,101,32,105,109,112,111,114,116,32,119,105,
+    116,104,32,110,111,32,107,110,111,119,110,32,112,97,114,101,
+    110,116,32,112,97,99,107,97,103,101,122,17,69,109,112,116,
+    121,32,109,111,100,117,108,101,32,110,97,109,101,78,41,7,
+    218,10,105,115,105,110,115,116,97,110,99,101,218,3,115,116,
+    114,218,9,84,121,112,101,69,114,114,111,114,114,50,0,0,
+    0,114,13,0,0,0,114,168,0,0,0,114,77,0,0,0,
+    41,3,114,15,0,0,0,114,169,0,0,0,114,170,0,0,
+    0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+    218,13,95,115,97,110,105,116,121,95,99,104,101,99,107,151,
+    3,0,0,115,22,0,0,0,0,2,15,1,27,1,12,1,
+    12,1,12,1,15,1,15,1,6,1,12,2,19,1,114,180,
+    0,0,0,122,16,78,111,32,109,111,100,117,108,101,32,110,
+    97,109,101,100,32,122,4,123,33,114,125,99,2,0,0,0,
+    0,0,0,0,8,0,0,0,12,0,0,0,67,0,0,0,
+    115,40,1,0,0,100,0,0,125,2,0,124,0,0,106,0,
+    0,100,1,0,131,1,0,100,2,0,25,125,3,0,124,3,
+    0,114,175,0,124,3,0,116,1,0,106,2,0,107,7,0,
+    114,59,0,116,3,0,124,1,0,124,3,0,131,2,0,1,
+    124,0,0,116,1,0,106,2,0,107,6,0,114,85,0,116,
+    1,0,106,2,0,124,0,0,25,83,116,1,0,106,2,0,
+    124,3,0,25,125,4,0,121,13,0,124,4,0,106,4,0,
+    125,2,0,87,110,61,0,4,116,5,0,107,10,0,114,174,
+    0,1,1,1,116,6,0,100,3,0,23,106,7,0,124,0,
+    0,124,3,0,131,2,0,125,5,0,116,8,0,124,5,0,
+    100,4,0,124,0,0,131,1,1,100,0,0,130,2,0,89,
+    110,1,0,88,116,9,0,124,0,0,124,2,0,131,2,0,
+    125,6,0,124,6,0,100,0,0,107,8,0,114,232,0,116,
+    8,0,116,6,0,106,7,0,124,0,0,131,1,0,100,4,
+    0,124,0,0,131,1,1,130,1,0,110,12,0,116,10,0,
+    124,6,0,131,1,0,125,7,0,124,3,0,114,36,1,116,
+    1,0,106,2,0,124,3,0,25,125,4,0,116,11,0,124,
+    4,0,124,0,0,106,0,0,100,1,0,131,1,0,100,5,
+    0,25,124,7,0,131,3,0,1,124,7,0,83,41,6,78,
+    114,121,0,0,0,114,33,0,0,0,122,23,59,32,123,33,
+    114,125,32,105,115,32,110,111,116,32,97,32,112,97,99,107,
+    97,103,101,114,15,0,0,0,114,140,0,0,0,41,12,114,
+    122,0,0,0,114,14,0,0,0,114,21,0,0,0,114,65,
+    0,0,0,114,131,0,0,0,114,96,0,0,0,218,8,95,
+    69,82,82,95,77,83,71,114,50,0,0,0,114,77,0,0,
+    0,114,176,0,0,0,114,149,0,0,0,114,5,0,0,0,
+    41,8,114,15,0,0,0,218,7,105,109,112,111,114,116,95,
+    114,152,0,0,0,114,123,0,0,0,90,13,112,97,114,101,
+    110,116,95,109,111,100,117,108,101,114,147,0,0,0,114,88,
+    0,0,0,114,89,0,0,0,114,10,0,0,0,114,10,0,
+    0,0,114,11,0,0,0,218,23,95,102,105,110,100,95,97,
+    110,100,95,108,111,97,100,95,117,110,108,111,99,107,101,100,
+    170,3,0,0,115,42,0,0,0,0,1,6,1,19,1,6,
+    1,15,1,13,2,15,1,11,1,13,1,3,1,13,1,13,
+    1,22,1,26,1,15,1,12,1,30,2,12,1,6,2,13,
+    1,29,1,114,183,0,0,0,99,2,0,0,0,0,0,0,
+    0,2,0,0,0,10,0,0,0,67,0,0,0,115,37,0,
+    0,0,116,0,0,124,0,0,131,1,0,143,18,0,1,116,
+    1,0,124,0,0,124,1,0,131,2,0,83,87,100,1,0,
+    81,82,88,100,1,0,83,41,2,122,54,70,105,110,100,32,
+    97,110,100,32,108,111,97,100,32,116,104,101,32,109,111,100,
+    117,108,101,44,32,97,110,100,32,114,101,108,101,97,115,101,
+    32,116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,
+    46,78,41,2,114,54,0,0,0,114,183,0,0,0,41,2,
+    114,15,0,0,0,114,182,0,0,0,114,10,0,0,0,114,
+    10,0,0,0,114,11,0,0,0,218,14,95,102,105,110,100,
+    95,97,110,100,95,108,111,97,100,197,3,0,0,115,4,0,
+    0,0,0,2,13,1,114,184,0,0,0,114,33,0,0,0,
+    99,3,0,0,0,0,0,0,0,5,0,0,0,4,0,0,
+    0,67,0,0,0,115,166,0,0,0,116,0,0,124,0,0,
+    124,1,0,124,2,0,131,3,0,1,124,2,0,100,1,0,
+    107,4,0,114,46,0,116,1,0,124,0,0,124,1,0,124,
+    2,0,131,3,0,125,0,0,116,2,0,106,3,0,131,0,
+    0,1,124,0,0,116,4,0,106,5,0,107,7,0,114,84,
+    0,116,6,0,124,0,0,116,7,0,131,2,0,83,116,4,
+    0,106,5,0,124,0,0,25,125,3,0,124,3,0,100,2,
+    0,107,8,0,114,152,0,116,2,0,106,8,0,131,0,0,
+    1,100,3,0,106,9,0,124,0,0,131,1,0,125,4,0,
+    116,10,0,124,4,0,100,4,0,124,0,0,131,1,1,130,
+    1,0,116,11,0,124,0,0,131,1,0,1,124,3,0,83,
+    41,5,97,50,1,0,0,73,109,112,111,114,116,32,97,110,
+    100,32,114,101,116,117,114,110,32,116,104,101,32,109,111,100,
+    117,108,101,32,98,97,115,101,100,32,111,110,32,105,116,115,
+    32,110,97,109,101,44,32,116,104,101,32,112,97,99,107,97,
+    103,101,32,116,104,101,32,99,97,108,108,32,105,115,10,32,
+    32,32,32,98,101,105,110,103,32,109,97,100,101,32,102,114,
+    111,109,44,32,97,110,100,32,116,104,101,32,108,101,118,101,
+    108,32,97,100,106,117,115,116,109,101,110,116,46,10,10,32,
+    32,32,32,84,104,105,115,32,102,117,110,99,116,105,111,110,
+    32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32,
+    103,114,101,97,116,101,115,116,32,99,111,109,109,111,110,32,
+    100,101,110,111,109,105,110,97,116,111,114,32,111,102,32,102,
+    117,110,99,116,105,111,110,97,108,105,116,121,10,32,32,32,
+    32,98,101,116,119,101,101,110,32,105,109,112,111,114,116,95,
+    109,111,100,117,108,101,32,97,110,100,32,95,95,105,109,112,
+    111,114,116,95,95,46,32,84,104,105,115,32,105,110,99,108,
+    117,100,101,115,32,115,101,116,116,105,110,103,32,95,95,112,
+    97,99,107,97,103,101,95,95,32,105,102,10,32,32,32,32,
+    116,104,101,32,108,111,97,100,101,114,32,100,105,100,32,110,
+    111,116,46,10,10,32,32,32,32,114,33,0,0,0,78,122,
+    40,105,109,112,111,114,116,32,111,102,32,123,125,32,104,97,
+    108,116,101,100,59,32,78,111,110,101,32,105,110,32,115,121,
+    115,46,109,111,100,117,108,101,115,114,15,0,0,0,41,12,
+    114,180,0,0,0,114,171,0,0,0,114,57,0,0,0,114,
+    145,0,0,0,114,14,0,0,0,114,21,0,0,0,114,184,
+    0,0,0,218,11,95,103,99,100,95,105,109,112,111,114,116,
+    114,58,0,0,0,114,50,0,0,0,114,77,0,0,0,114,
+    63,0,0,0,41,5,114,15,0,0,0,114,169,0,0,0,
+    114,170,0,0,0,114,89,0,0,0,114,74,0,0,0,114,
+    10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,185,
+    0,0,0,203,3,0,0,115,28,0,0,0,0,9,16,1,
+    12,1,18,1,10,1,15,1,13,1,13,1,12,1,10,1,
+    6,1,9,1,18,1,10,1,114,185,0,0,0,99,3,0,
+    0,0,0,0,0,0,6,0,0,0,17,0,0,0,67,0,
+    0,0,115,239,0,0,0,116,0,0,124,0,0,100,1,0,
+    131,2,0,114,235,0,100,2,0,124,1,0,107,6,0,114,
+    83,0,116,1,0,124,1,0,131,1,0,125,1,0,124,1,
+    0,106,2,0,100,2,0,131,1,0,1,116,0,0,124,0,
+    0,100,3,0,131,2,0,114,83,0,124,1,0,106,3,0,
+    124,0,0,106,4,0,131,1,0,1,120,149,0,124,1,0,
+    68,93,141,0,125,3,0,116,0,0,124,0,0,124,3,0,
+    131,2,0,115,90,0,100,4,0,106,5,0,124,0,0,106,
+    6,0,124,3,0,131,2,0,125,4,0,121,17,0,116,7,
+    0,124,2,0,124,4,0,131,2,0,1,87,113,90,0,4,
+    116,8,0,107,10,0,114,230,0,1,125,5,0,1,122,47,
+    0,116,9,0,124,5,0,131,1,0,106,10,0,116,11,0,
+    131,1,0,114,209,0,124,5,0,106,12,0,124,4,0,107,
+    2,0,114,209,0,119,90,0,130,0,0,87,89,100,5,0,
+    100,5,0,125,5,0,126,5,0,88,113,90,0,88,113,90,
+    0,87,124,0,0,83,41,6,122,238,70,105,103,117,114,101,
+    32,111,117,116,32,119,104,97,116,32,95,95,105,109,112,111,
+    114,116,95,95,32,115,104,111,117,108,100,32,114,101,116,117,
+    114,110,46,10,10,32,32,32,32,84,104,101,32,105,109,112,
+    111,114,116,95,32,112,97,114,97,109,101,116,101,114,32,105,
+    115,32,97,32,99,97,108,108,97,98,108,101,32,119,104,105,
+    99,104,32,116,97,107,101,115,32,116,104,101,32,110,97,109,
+    101,32,111,102,32,109,111,100,117,108,101,32,116,111,10,32,
+    32,32,32,105,109,112,111,114,116,46,32,73,116,32,105,115,
+    32,114,101,113,117,105,114,101,100,32,116,111,32,100,101,99,
+    111,117,112,108,101,32,116,104,101,32,102,117,110,99,116,105,
+    111,110,32,102,114,111,109,32,97,115,115,117,109,105,110,103,
+    32,105,109,112,111,114,116,108,105,98,39,115,10,32,32,32,
+    32,105,109,112,111,114,116,32,105,109,112,108,101,109,101,110,
+    116,97,116,105,111,110,32,105,115,32,100,101,115,105,114,101,
+    100,46,10,10,32,32,32,32,114,131,0,0,0,250,1,42,
+    218,7,95,95,97,108,108,95,95,122,5,123,125,46,123,125,
+    78,41,13,114,4,0,0,0,114,130,0,0,0,218,6,114,
+    101,109,111,118,101,218,6,101,120,116,101,110,100,114,187,0,
+    0,0,114,50,0,0,0,114,1,0,0,0,114,65,0,0,
+    0,114,77,0,0,0,114,178,0,0,0,114,71,0,0,0,
+    218,15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,
+    88,114,15,0,0,0,41,6,114,89,0,0,0,218,8,102,
+    114,111,109,108,105,115,116,114,182,0,0,0,218,1,120,90,
+    9,102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,
+    10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,16,
+    95,104,97,110,100,108,101,95,102,114,111,109,108,105,115,116,
+    227,3,0,0,115,34,0,0,0,0,10,15,1,12,1,12,
+    1,13,1,15,1,16,1,13,1,15,1,21,1,3,1,17,
+    1,18,4,21,1,15,1,3,1,26,1,114,193,0,0,0,
+    99,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+    0,67,0,0,0,115,72,0,0,0,124,0,0,106,0,0,
+    100,1,0,131,1,0,125,1,0,124,1,0,100,2,0,107,
+    8,0,114,68,0,124,0,0,100,3,0,25,125,1,0,100,
+    4,0,124,0,0,107,7,0,114,68,0,124,1,0,106,1,
+    0,100,5,0,131,1,0,100,6,0,25,125,1,0,124,1,
+    0,83,41,7,122,167,67,97,108,99,117,108,97,116,101,32,
+    119,104,97,116,32,95,95,112,97,99,107,97,103,101,95,95,
+    32,115,104,111,117,108,100,32,98,101,46,10,10,32,32,32,
+    32,95,95,112,97,99,107,97,103,101,95,95,32,105,115,32,
+    110,111,116,32,103,117,97,114,97,110,116,101,101,100,32,116,
+    111,32,98,101,32,100,101,102,105,110,101,100,32,111,114,32,
+    99,111,117,108,100,32,98,101,32,115,101,116,32,116,111,32,
+    78,111,110,101,10,32,32,32,32,116,111,32,114,101,112,114,
+    101,115,101,110,116,32,116,104,97,116,32,105,116,115,32,112,
+    114,111,112,101,114,32,118,97,108,117,101,32,105,115,32,117,
+    110,107,110,111,119,110,46,10,10,32,32,32,32,114,134,0,
+    0,0,78,114,1,0,0,0,114,131,0,0,0,114,121,0,
+    0,0,114,33,0,0,0,41,2,114,42,0,0,0,114,122,
+    0,0,0,41,2,218,7,103,108,111,98,97,108,115,114,169,
+    0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+    0,0,218,17,95,99,97,108,99,95,95,95,112,97,99,107,
+    97,103,101,95,95,3,4,0,0,115,12,0,0,0,0,7,
+    15,1,12,1,10,1,12,1,19,1,114,195,0,0,0,99,
+    5,0,0,0,0,0,0,0,9,0,0,0,5,0,0,0,
+    67,0,0,0,115,227,0,0,0,124,4,0,100,1,0,107,
+    2,0,114,27,0,116,0,0,124,0,0,131,1,0,125,5,
+    0,110,54,0,124,1,0,100,2,0,107,9,0,114,45,0,
+    124,1,0,110,3,0,105,0,0,125,6,0,116,1,0,124,
+    6,0,131,1,0,125,7,0,116,0,0,124,0,0,124,7,
+    0,124,4,0,131,3,0,125,5,0,124,3,0,115,207,0,
+    124,4,0,100,1,0,107,2,0,114,122,0,116,0,0,124,
+    0,0,106,2,0,100,3,0,131,1,0,100,1,0,25,131,
+    1,0,83,124,0,0,115,132,0,124,5,0,83,116,3,0,
+    124,0,0,131,1,0,116,3,0,124,0,0,106,2,0,100,
+    3,0,131,1,0,100,1,0,25,131,1,0,24,125,8,0,
+    116,4,0,106,5,0,124,5,0,106,6,0,100,2,0,116,
+    3,0,124,5,0,106,6,0,131,1,0,124,8,0,24,133,
+    2,0,25,25,83,110,16,0,116,7,0,124,5,0,124,3,
+    0,116,0,0,131,3,0,83,100,2,0,83,41,4,97,215,
+    1,0,0,73,109,112,111,114,116,32,97,32,109,111,100,117,
+    108,101,46,10,10,32,32,32,32,84,104,101,32,39,103,108,
+    111,98,97,108,115,39,32,97,114,103,117,109,101,110,116,32,
+    105,115,32,117,115,101,100,32,116,111,32,105,110,102,101,114,
+    32,119,104,101,114,101,32,116,104,101,32,105,109,112,111,114,
+    116,32,105,115,32,111,99,99,117,114,114,105,110,103,32,102,
+    114,111,109,10,32,32,32,32,116,111,32,104,97,110,100,108,
+    101,32,114,101,108,97,116,105,118,101,32,105,109,112,111,114,
+    116,115,46,32,84,104,101,32,39,108,111,99,97,108,115,39,
+    32,97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,
+    111,114,101,100,46,32,84,104,101,10,32,32,32,32,39,102,
+    114,111,109,108,105,115,116,39,32,97,114,103,117,109,101,110,
+    116,32,115,112,101,99,105,102,105,101,115,32,119,104,97,116,
+    32,115,104,111,117,108,100,32,101,120,105,115,116,32,97,115,
+    32,97,116,116,114,105,98,117,116,101,115,32,111,110,32,116,
+    104,101,32,109,111,100,117,108,101,10,32,32,32,32,98,101,
+    105,110,103,32,105,109,112,111,114,116,101,100,32,40,101,46,
+    103,46,32,96,96,102,114,111,109,32,109,111,100,117,108,101,
+    32,105,109,112,111,114,116,32,60,102,114,111,109,108,105,115,
+    116,62,96,96,41,46,32,32,84,104,101,32,39,108,101,118,
+    101,108,39,10,32,32,32,32,97,114,103,117,109,101,110,116,
+    32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32,
+    112,97,99,107,97,103,101,32,108,111,99,97,116,105,111,110,
+    32,116,111,32,105,109,112,111,114,116,32,102,114,111,109,32,
+    105,110,32,97,32,114,101,108,97,116,105,118,101,10,32,32,
+    32,32,105,109,112,111,114,116,32,40,101,46,103,46,32,96,
+    96,102,114,111,109,32,46,46,112,107,103,32,105,109,112,111,
+    114,116,32,109,111,100,96,96,32,119,111,117,108,100,32,104,
+    97,118,101,32,97,32,39,108,101,118,101,108,39,32,111,102,
+    32,50,41,46,10,10,32,32,32,32,114,33,0,0,0,78,
+    114,121,0,0,0,41,8,114,185,0,0,0,114,195,0,0,
+    0,218,9,112,97,114,116,105,116,105,111,110,114,167,0,0,
+    0,114,14,0,0,0,114,21,0,0,0,114,1,0,0,0,
+    114,193,0,0,0,41,9,114,15,0,0,0,114,194,0,0,
+    0,218,6,108,111,99,97,108,115,114,191,0,0,0,114,170,
+    0,0,0,114,89,0,0,0,90,8,103,108,111,98,97,108,
+    115,95,114,169,0,0,0,90,7,99,117,116,95,111,102,102,
     114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
-    23,95,102,105,110,100,95,97,110,100,95,108,111,97,100,95,
-    117,110,108,111,99,107,101,100,171,3,0,0,115,42,0,0,
-    0,0,1,6,1,19,1,6,1,15,1,13,2,15,1,11,
-    1,13,1,3,1,13,1,13,1,22,1,26,1,15,1,12,
-    1,30,2,12,1,6,2,13,1,29,1,114,184,0,0,0,
-    99,2,0,0,0,0,0,0,0,2,0,0,0,10,0,0,
-    0,67,0,0,0,115,37,0,0,0,116,0,0,124,0,0,
-    131,1,0,143,18,0,1,116,1,0,124,0,0,124,1,0,
-    131,2,0,83,87,100,1,0,81,82,88,100,1,0,83,41,
-    2,122,54,70,105,110,100,32,97,110,100,32,108,111,97,100,
-    32,116,104,101,32,109,111,100,117,108,101,44,32,97,110,100,
-    32,114,101,108,101,97,115,101,32,116,104,101,32,105,109,112,
-    111,114,116,32,108,111,99,107,46,78,41,2,114,54,0,0,
-    0,114,184,0,0,0,41,2,114,15,0,0,0,114,183,0,
+    10,95,95,105,109,112,111,114,116,95,95,18,4,0,0,115,
+    26,0,0,0,0,11,12,1,15,2,24,1,12,1,18,1,
+    6,3,12,1,23,1,6,1,4,4,35,3,40,2,114,198,
+    0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,
+    3,0,0,0,67,0,0,0,115,53,0,0,0,116,0,0,
+    106,1,0,124,0,0,131,1,0,125,1,0,124,1,0,100,
+    0,0,107,8,0,114,43,0,116,2,0,100,1,0,124,0,
+    0,23,131,1,0,130,1,0,116,3,0,124,1,0,131,1,
+    0,83,41,2,78,122,25,110,111,32,98,117,105,108,116,45,
+    105,110,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
+    41,4,114,150,0,0,0,114,154,0,0,0,114,77,0,0,
+    0,114,149,0,0,0,41,2,114,15,0,0,0,114,88,0,
     0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
-    0,218,14,95,102,105,110,100,95,97,110,100,95,108,111,97,
-    100,198,3,0,0,115,4,0,0,0,0,2,13,1,114,185,
-    0,0,0,114,33,0,0,0,99,3,0,0,0,0,0,0,
-    0,5,0,0,0,4,0,0,0,67,0,0,0,115,166,0,
-    0,0,116,0,0,124,0,0,124,1,0,124,2,0,131,3,
-    0,1,124,2,0,100,1,0,107,4,0,114,46,0,116,1,
-    0,124,0,0,124,1,0,124,2,0,131,3,0,125,0,0,
-    116,2,0,106,3,0,131,0,0,1,124,0,0,116,4,0,
-    106,5,0,107,7,0,114,84,0,116,6,0,124,0,0,116,
-    7,0,131,2,0,83,116,4,0,106,5,0,124,0,0,25,
-    125,3,0,124,3,0,100,2,0,107,8,0,114,152,0,116,
-    2,0,106,8,0,131,0,0,1,100,3,0,106,9,0,124,
-    0,0,131,1,0,125,4,0,116,10,0,124,4,0,100,4,
-    0,124,0,0,131,1,1,130,1,0,116,11,0,124,0,0,
-    131,1,0,1,124,3,0,83,41,5,97,50,1,0,0,73,
-    109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,110,
-    32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,101,
-    100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,116,
-    104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,99,
-    97,108,108,32,105,115,10,32,32,32,32,98,101,105,110,103,
-    32,109,97,100,101,32,102,114,111,109,44,32,97,110,100,32,
-    116,104,101,32,108,101,118,101,108,32,97,100,106,117,115,116,
-    109,101,110,116,46,10,10,32,32,32,32,84,104,105,115,32,
-    102,117,110,99,116,105,111,110,32,114,101,112,114,101,115,101,
-    110,116,115,32,116,104,101,32,103,114,101,97,116,101,115,116,
-    32,99,111,109,109,111,110,32,100,101,110,111,109,105,110,97,
-    116,111,114,32,111,102,32,102,117,110,99,116,105,111,110,97,
-    108,105,116,121,10,32,32,32,32,98,101,116,119,101,101,110,
-    32,105,109,112,111,114,116,95,109,111,100,117,108,101,32,97,
-    110,100,32,95,95,105,109,112,111,114,116,95,95,46,32,84,
-    104,105,115,32,105,110,99,108,117,100,101,115,32,115,101,116,
-    116,105,110,103,32,95,95,112,97,99,107,97,103,101,95,95,
-    32,105,102,10,32,32,32,32,116,104,101,32,108,111,97,100,
-    101,114,32,100,105,100,32,110,111,116,46,10,10,32,32,32,
-    32,114,33,0,0,0,78,122,40,105,109,112,111,114,116,32,
-    111,102,32,123,125,32,104,97,108,116,101,100,59,32,78,111,
-    110,101,32,105,110,32,115,121,115,46,109,111,100,117,108,101,
-    115,114,15,0,0,0,41,12,114,181,0,0,0,114,171,0,
-    0,0,114,57,0,0,0,114,145,0,0,0,114,14,0,0,
-    0,114,21,0,0,0,114,185,0,0,0,218,11,95,103,99,
-    100,95,105,109,112,111,114,116,114,58,0,0,0,114,50,0,
-    0,0,114,77,0,0,0,114,63,0,0,0,41,5,114,15,
-    0,0,0,114,169,0,0,0,114,170,0,0,0,114,89,0,
-    0,0,114,74,0,0,0,114,10,0,0,0,114,10,0,0,
-    0,114,11,0,0,0,114,186,0,0,0,204,3,0,0,115,
-    28,0,0,0,0,9,16,1,12,1,18,1,10,1,15,1,
-    13,1,13,1,12,1,10,1,6,1,9,1,18,1,10,1,
-    114,186,0,0,0,99,3,0,0,0,0,0,0,0,6,0,
-    0,0,17,0,0,0,67,0,0,0,115,239,0,0,0,116,
-    0,0,124,0,0,100,1,0,131,2,0,114,235,0,100,2,
-    0,124,1,0,107,6,0,114,83,0,116,1,0,124,1,0,
-    131,1,0,125,1,0,124,1,0,106,2,0,100,2,0,131,
-    1,0,1,116,0,0,124,0,0,100,3,0,131,2,0,114,
-    83,0,124,1,0,106,3,0,124,0,0,106,4,0,131,1,
-    0,1,120,149,0,124,1,0,68,93,141,0,125,3,0,116,
-    0,0,124,0,0,124,3,0,131,2,0,115,90,0,100,4,
-    0,106,5,0,124,0,0,106,6,0,124,3,0,131,2,0,
-    125,4,0,121,17,0,116,7,0,124,2,0,124,4,0,131,
-    2,0,1,87,113,90,0,4,116,8,0,107,10,0,114,230,
-    0,1,125,5,0,1,122,47,0,116,9,0,124,5,0,131,
-    1,0,106,10,0,116,11,0,131,1,0,114,209,0,124,5,
-    0,106,12,0,124,4,0,107,2,0,114,209,0,119,90,0,
-    130,0,0,87,89,100,5,0,100,5,0,125,5,0,126,5,
-    0,88,113,90,0,88,113,90,0,87,124,0,0,83,41,6,
-    122,238,70,105,103,117,114,101,32,111,117,116,32,119,104,97,
-    116,32,95,95,105,109,112,111,114,116,95,95,32,115,104,111,
-    117,108,100,32,114,101,116,117,114,110,46,10,10,32,32,32,
-    32,84,104,101,32,105,109,112,111,114,116,95,32,112,97,114,
-    97,109,101,116,101,114,32,105,115,32,97,32,99,97,108,108,
-    97,98,108,101,32,119,104,105,99,104,32,116,97,107,101,115,
-    32,116,104,101,32,110,97,109,101,32,111,102,32,109,111,100,
-    117,108,101,32,116,111,10,32,32,32,32,105,109,112,111,114,
-    116,46,32,73,116,32,105,115,32,114,101,113,117,105,114,101,
-    100,32,116,111,32,100,101,99,111,117,112,108,101,32,116,104,
-    101,32,102,117,110,99,116,105,111,110,32,102,114,111,109,32,
-    97,115,115,117,109,105,110,103,32,105,109,112,111,114,116,108,
-    105,98,39,115,10,32,32,32,32,105,109,112,111,114,116,32,
-    105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,
-    115,32,100,101,115,105,114,101,100,46,10,10,32,32,32,32,
-    114,131,0,0,0,250,1,42,218,7,95,95,97,108,108,95,
-    95,122,5,123,125,46,123,125,78,41,13,114,4,0,0,0,
-    114,130,0,0,0,218,6,114,101,109,111,118,101,218,6,101,
-    120,116,101,110,100,114,188,0,0,0,114,50,0,0,0,114,
-    1,0,0,0,114,65,0,0,0,114,77,0,0,0,114,178,
-    0,0,0,114,71,0,0,0,218,15,95,69,82,82,95,77,
-    83,71,95,80,82,69,70,73,88,114,15,0,0,0,41,6,
-    114,89,0,0,0,218,8,102,114,111,109,108,105,115,116,114,
-    183,0,0,0,218,1,120,90,9,102,114,111,109,95,110,97,
-    109,101,90,3,101,120,99,114,10,0,0,0,114,10,0,0,
-    0,114,11,0,0,0,218,16,95,104,97,110,100,108,101,95,
-    102,114,111,109,108,105,115,116,228,3,0,0,115,34,0,0,
-    0,0,10,15,1,12,1,12,1,13,1,15,1,16,1,13,
-    1,15,1,21,1,3,1,17,1,18,4,21,1,15,1,3,
-    1,26,1,114,194,0,0,0,99,1,0,0,0,0,0,0,
-    0,2,0,0,0,2,0,0,0,67,0,0,0,115,72,0,
-    0,0,124,0,0,106,0,0,100,1,0,131,1,0,125,1,
-    0,124,1,0,100,2,0,107,8,0,114,68,0,124,0,0,
-    100,3,0,25,125,1,0,100,4,0,124,0,0,107,7,0,
-    114,68,0,124,1,0,106,1,0,100,5,0,131,1,0,100,
-    6,0,25,125,1,0,124,1,0,83,41,7,122,167,67,97,
-    108,99,117,108,97,116,101,32,119,104,97,116,32,95,95,112,
-    97,99,107,97,103,101,95,95,32,115,104,111,117,108,100,32,
-    98,101,46,10,10,32,32,32,32,95,95,112,97,99,107,97,
-    103,101,95,95,32,105,115,32,110,111,116,32,103,117,97,114,
-    97,110,116,101,101,100,32,116,111,32,98,101,32,100,101,102,
-    105,110,101,100,32,111,114,32,99,111,117,108,100,32,98,101,
-    32,115,101,116,32,116,111,32,78,111,110,101,10,32,32,32,
-    32,116,111,32,114,101,112,114,101,115,101,110,116,32,116,104,
-    97,116,32,105,116,115,32,112,114,111,112,101,114,32,118,97,
-    108,117,101,32,105,115,32,117,110,107,110,111,119,110,46,10,
-    10,32,32,32,32,114,134,0,0,0,78,114,1,0,0,0,
-    114,131,0,0,0,114,121,0,0,0,114,33,0,0,0,41,
-    2,114,42,0,0,0,114,122,0,0,0,41,2,218,7,103,
-    108,111,98,97,108,115,114,169,0,0,0,114,10,0,0,0,
-    114,10,0,0,0,114,11,0,0,0,218,17,95,99,97,108,
-    99,95,95,95,112,97,99,107,97,103,101,95,95,4,4,0,
-    0,115,12,0,0,0,0,7,15,1,12,1,10,1,12,1,
-    19,1,114,196,0,0,0,99,5,0,0,0,0,0,0,0,
-    9,0,0,0,5,0,0,0,67,0,0,0,115,227,0,0,
-    0,124,4,0,100,1,0,107,2,0,114,27,0,116,0,0,
-    124,0,0,131,1,0,125,5,0,110,54,0,124,1,0,100,
-    2,0,107,9,0,114,45,0,124,1,0,110,3,0,105,0,
-    0,125,6,0,116,1,0,124,6,0,131,1,0,125,7,0,
-    116,0,0,124,0,0,124,7,0,124,4,0,131,3,0,125,
-    5,0,124,3,0,115,207,0,124,4,0,100,1,0,107,2,
-    0,114,122,0,116,0,0,124,0,0,106,2,0,100,3,0,
-    131,1,0,100,1,0,25,131,1,0,83,124,0,0,115,132,
-    0,124,5,0,83,116,3,0,124,0,0,131,1,0,116,3,
-    0,124,0,0,106,2,0,100,3,0,131,1,0,100,1,0,
-    25,131,1,0,24,125,8,0,116,4,0,106,5,0,124,5,
-    0,106,6,0,100,2,0,116,3,0,124,5,0,106,6,0,
-    131,1,0,124,8,0,24,133,2,0,25,25,83,110,16,0,
-    116,7,0,124,5,0,124,3,0,116,0,0,131,3,0,83,
-    100,2,0,83,41,4,97,215,1,0,0,73,109,112,111,114,
-    116,32,97,32,109,111,100,117,108,101,46,10,10,32,32,32,
-    32,84,104,101,32,39,103,108,111,98,97,108,115,39,32,97,
-    114,103,117,109,101,110,116,32,105,115,32,117,115,101,100,32,
-    116,111,32,105,110,102,101,114,32,119,104,101,114,101,32,116,
-    104,101,32,105,109,112,111,114,116,32,105,115,32,111,99,99,
-    117,114,114,105,110,103,32,102,114,111,109,10,32,32,32,32,
-    116,111,32,104,97,110,100,108,101,32,114,101,108,97,116,105,
-    118,101,32,105,109,112,111,114,116,115,46,32,84,104,101,32,
-    39,108,111,99,97,108,115,39,32,97,114,103,117,109,101,110,
-    116,32,105,115,32,105,103,110,111,114,101,100,46,32,84,104,
-    101,10,32,32,32,32,39,102,114,111,109,108,105,115,116,39,
-    32,97,114,103,117,109,101,110,116,32,115,112,101,99,105,102,
-    105,101,115,32,119,104,97,116,32,115,104,111,117,108,100,32,
-    101,120,105,115,116,32,97,115,32,97,116,116,114,105,98,117,
-    116,101,115,32,111,110,32,116,104,101,32,109,111,100,117,108,
-    101,10,32,32,32,32,98,101,105,110,103,32,105,109,112,111,
-    114,116,101,100,32,40,101,46,103,46,32,96,96,102,114,111,
-    109,32,109,111,100,117,108,101,32,105,109,112,111,114,116,32,
-    60,102,114,111,109,108,105,115,116,62,96,96,41,46,32,32,
-    84,104,101,32,39,108,101,118,101,108,39,10,32,32,32,32,
-    97,114,103,117,109,101,110,116,32,114,101,112,114,101,115,101,
-    110,116,115,32,116,104,101,32,112,97,99,107,97,103,101,32,
-    108,111,99,97,116,105,111,110,32,116,111,32,105,109,112,111,
-    114,116,32,102,114,111,109,32,105,110,32,97,32,114,101,108,
-    97,116,105,118,101,10,32,32,32,32,105,109,112,111,114,116,
-    32,40,101,46,103,46,32,96,96,102,114,111,109,32,46,46,
-    112,107,103,32,105,109,112,111,114,116,32,109,111,100,96,96,
-    32,119,111,117,108,100,32,104,97,118,101,32,97,32,39,108,
-    101,118,101,108,39,32,111,102,32,50,41,46,10,10,32,32,
-    32,32,114,33,0,0,0,78,114,121,0,0,0,41,8,114,
-    186,0,0,0,114,196,0,0,0,218,9,112,97,114,116,105,
-    116,105,111,110,114,167,0,0,0,114,14,0,0,0,114,21,
-    0,0,0,114,1,0,0,0,114,194,0,0,0,41,9,114,
-    15,0,0,0,114,195,0,0,0,218,6,108,111,99,97,108,
-    115,114,192,0,0,0,114,170,0,0,0,114,89,0,0,0,
-    90,8,103,108,111,98,97,108,115,95,114,169,0,0,0,90,
-    7,99,117,116,95,111,102,102,114,10,0,0,0,114,10,0,
-    0,0,114,11,0,0,0,218,10,95,95,105,109,112,111,114,
-    116,95,95,19,4,0,0,115,26,0,0,0,0,11,12,1,
-    15,2,24,1,12,1,18,1,6,3,12,1,23,1,6,1,
-    4,4,35,3,40,2,114,199,0,0,0,99,1,0,0,0,
-    0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
-    115,53,0,0,0,116,0,0,106,1,0,124,0,0,131,1,
-    0,125,1,0,124,1,0,100,0,0,107,8,0,114,43,0,
-    116,2,0,100,1,0,124,0,0,23,131,1,0,130,1,0,
-    116,3,0,124,1,0,131,1,0,83,41,2,78,122,25,110,
-    111,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,
-    101,32,110,97,109,101,100,32,41,4,114,150,0,0,0,114,
-    154,0,0,0,114,77,0,0,0,114,149,0,0,0,41,2,
-    114,15,0,0,0,114,88,0,0,0,114,10,0,0,0,114,
-    10,0,0,0,114,11,0,0,0,218,18,95,98,117,105,108,
-    116,105,110,95,102,114,111,109,95,110,97,109,101,54,4,0,
-    0,115,8,0,0,0,0,1,15,1,12,1,16,1,114,200,
-    0,0,0,99,2,0,0,0,0,0,0,0,12,0,0,0,
-    12,0,0,0,67,0,0,0,115,74,1,0,0,124,1,0,
-    97,0,0,124,0,0,97,1,0,116,2,0,116,1,0,131,
-    1,0,125,2,0,120,123,0,116,1,0,106,3,0,106,4,
-    0,131,0,0,68,93,106,0,92,2,0,125,3,0,125,4,
-    0,116,5,0,124,4,0,124,2,0,131,2,0,114,40,0,
-    124,3,0,116,1,0,106,6,0,107,6,0,114,91,0,116,
-    7,0,125,5,0,110,27,0,116,0,0,106,8,0,124,3,
-    0,131,1,0,114,40,0,116,9,0,125,5,0,110,3,0,
-    113,40,0,116,10,0,124,4,0,124,5,0,131,2,0,125,
-    6,0,116,11,0,124,6,0,124,4,0,131,2,0,1,113,
-    40,0,87,116,1,0,106,3,0,116,12,0,25,125,7,0,
-    120,73,0,100,5,0,68,93,65,0,125,8,0,124,8,0,
-    116,1,0,106,3,0,107,7,0,114,206,0,116,13,0,124,
-    8,0,131,1,0,125,9,0,110,13,0,116,1,0,106,3,
-    0,124,8,0,25,125,9,0,116,14,0,124,7,0,124,8,
-    0,124,9,0,131,3,0,1,113,170,0,87,121,16,0,116,
-    13,0,100,2,0,131,1,0,125,10,0,87,110,24,0,4,
-    116,15,0,107,10,0,114,25,1,1,1,1,100,3,0,125,
-    10,0,89,110,1,0,88,116,14,0,124,7,0,100,2,0,
-    124,10,0,131,3,0,1,116,13,0,100,4,0,131,1,0,
-    125,11,0,116,14,0,124,7,0,100,4,0,124,11,0,131,
-    3,0,1,100,3,0,83,41,6,122,250,83,101,116,117,112,
-    32,105,109,112,111,114,116,108,105,98,32,98,121,32,105,109,
-    112,111,114,116,105,110,103,32,110,101,101,100,101,100,32,98,
-    117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,
-    97,110,100,32,105,110,106,101,99,116,105,110,103,32,116,104,
-    101,109,10,32,32,32,32,105,110,116,111,32,116,104,101,32,
-    103,108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,
-    46,10,10,32,32,32,32,65,115,32,115,121,115,32,105,115,
-    32,110,101,101,100,101,100,32,102,111,114,32,115,121,115,46,
-    109,111,100,117,108,101,115,32,97,99,99,101,115,115,32,97,
-    110,100,32,95,105,109,112,32,105,115,32,110,101,101,100,101,
-    100,32,116,111,32,108,111,97,100,32,98,117,105,108,116,45,
-    105,110,10,32,32,32,32,109,111,100,117,108,101,115,44,32,
-    116,104,111,115,101,32,116,119,111,32,109,111,100,117,108,101,
-    115,32,109,117,115,116,32,98,101,32,101,120,112,108,105,99,
-    105,116,108,121,32,112,97,115,115,101,100,32,105,110,46,10,
-    10,32,32,32,32,114,141,0,0,0,114,34,0,0,0,78,
-    114,62,0,0,0,41,1,114,141,0,0,0,41,16,114,57,
-    0,0,0,114,14,0,0,0,114,13,0,0,0,114,21,0,
-    0,0,218,5,105,116,101,109,115,114,177,0,0,0,114,76,
-    0,0,0,114,150,0,0,0,114,82,0,0,0,114,160,0,
-    0,0,114,132,0,0,0,114,137,0,0,0,114,1,0,0,
-    0,114,200,0,0,0,114,5,0,0,0,114,77,0,0,0,
-    41,12,218,10,115,121,115,95,109,111,100,117,108,101,218,11,
-    95,105,109,112,95,109,111,100,117,108,101,90,11,109,111,100,
-    117,108,101,95,116,121,112,101,114,15,0,0,0,114,89,0,
-    0,0,114,99,0,0,0,114,88,0,0,0,90,11,115,101,
-    108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,116,
-    105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,110,
-    95,109,111,100,117,108,101,90,13,116,104,114,101,97,100,95,
-    109,111,100,117,108,101,90,14,119,101,97,107,114,101,102,95,
-    109,111,100,117,108,101,114,10,0,0,0,114,10,0,0,0,
-    114,11,0,0,0,218,6,95,115,101,116,117,112,61,4,0,
-    0,115,50,0,0,0,0,9,6,1,6,3,12,1,28,1,
-    15,1,15,1,9,1,15,1,9,2,3,1,15,1,17,3,
-    13,1,13,1,15,1,15,2,13,1,20,3,3,1,16,1,
-    13,2,11,1,16,3,12,1,114,204,0,0,0,99,2,0,
-    0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,
-    0,0,115,87,0,0,0,116,0,0,124,0,0,124,1,0,
-    131,2,0,1,116,1,0,106,2,0,106,3,0,116,4,0,
-    131,1,0,1,116,1,0,106,2,0,106,3,0,116,5,0,
-    131,1,0,1,100,1,0,100,2,0,108,6,0,125,2,0,
-    124,2,0,97,7,0,124,2,0,106,8,0,116,1,0,106,
-    9,0,116,10,0,25,131,1,0,1,100,2,0,83,41,3,
-    122,50,73,110,115,116,97,108,108,32,105,109,112,111,114,116,
-    108,105,98,32,97,115,32,116,104,101,32,105,109,112,108,101,
-    109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112,
-    111,114,116,46,114,33,0,0,0,78,41,11,114,204,0,0,
-    0,114,14,0,0,0,114,174,0,0,0,114,113,0,0,0,
-    114,150,0,0,0,114,160,0,0,0,218,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,119,0,0,0,218,8,95,105,110,
-    115,116,97,108,108,114,21,0,0,0,114,1,0,0,0,41,
-    3,114,202,0,0,0,114,203,0,0,0,114,205,0,0,0,
-    114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
-    206,0,0,0,108,4,0,0,115,12,0,0,0,0,2,13,
-    2,16,1,16,3,12,1,6,1,114,206,0,0,0,41,51,
-    114,3,0,0,0,114,119,0,0,0,114,12,0,0,0,114,
-    16,0,0,0,114,17,0,0,0,114,59,0,0,0,114,41,
-    0,0,0,114,48,0,0,0,114,31,0,0,0,114,32,0,
-    0,0,114,53,0,0,0,114,54,0,0,0,114,56,0,0,
-    0,114,63,0,0,0,114,65,0,0,0,114,75,0,0,0,
-    114,81,0,0,0,114,84,0,0,0,114,90,0,0,0,114,
-    101,0,0,0,114,102,0,0,0,114,106,0,0,0,114,85,
-    0,0,0,218,6,111,98,106,101,99,116,90,9,95,80,79,
-    80,85,76,65,84,69,114,132,0,0,0,114,137,0,0,0,
-    114,144,0,0,0,114,97,0,0,0,114,86,0,0,0,114,
-    148,0,0,0,114,149,0,0,0,114,87,0,0,0,114,150,
-    0,0,0,114,160,0,0,0,114,165,0,0,0,114,171,0,
-    0,0,114,173,0,0,0,114,176,0,0,0,114,181,0,0,
-    0,114,191,0,0,0,114,182,0,0,0,114,184,0,0,0,
-    114,185,0,0,0,114,186,0,0,0,114,194,0,0,0,114,
-    196,0,0,0,114,199,0,0,0,114,200,0,0,0,114,204,
-    0,0,0,114,206,0,0,0,114,10,0,0,0,114,10,0,
-    0,0,114,10,0,0,0,114,11,0,0,0,218,8,60,109,
-    111,100,117,108,101,62,8,0,0,0,115,96,0,0,0,6,
-    17,6,2,12,8,12,4,19,20,6,2,6,3,22,4,19,
-    68,19,21,19,19,12,19,12,19,12,11,18,8,12,11,12,
-    12,12,16,12,36,19,27,19,101,24,26,9,3,18,45,18,
-    60,12,18,12,17,12,25,12,29,12,23,12,16,19,73,19,
-    77,19,13,12,9,12,9,15,40,12,17,6,1,10,2,12,
-    27,12,6,18,24,12,32,12,15,24,35,12,7,12,47,
+    0,218,18,95,98,117,105,108,116,105,110,95,102,114,111,109,
+    95,110,97,109,101,53,4,0,0,115,8,0,0,0,0,1,
+    15,1,12,1,16,1,114,199,0,0,0,99,2,0,0,0,
+    0,0,0,0,12,0,0,0,12,0,0,0,67,0,0,0,
+    115,74,1,0,0,124,1,0,97,0,0,124,0,0,97,1,
+    0,116,2,0,116,1,0,131,1,0,125,2,0,120,123,0,
+    116,1,0,106,3,0,106,4,0,131,0,0,68,93,106,0,
+    92,2,0,125,3,0,125,4,0,116,5,0,124,4,0,124,
+    2,0,131,2,0,114,40,0,124,3,0,116,1,0,106,6,
+    0,107,6,0,114,91,0,116,7,0,125,5,0,110,27,0,
+    116,0,0,106,8,0,124,3,0,131,1,0,114,40,0,116,
+    9,0,125,5,0,110,3,0,113,40,0,116,10,0,124,4,
+    0,124,5,0,131,2,0,125,6,0,116,11,0,124,6,0,
+    124,4,0,131,2,0,1,113,40,0,87,116,1,0,106,3,
+    0,116,12,0,25,125,7,0,120,73,0,100,5,0,68,93,
+    65,0,125,8,0,124,8,0,116,1,0,106,3,0,107,7,
+    0,114,206,0,116,13,0,124,8,0,131,1,0,125,9,0,
+    110,13,0,116,1,0,106,3,0,124,8,0,25,125,9,0,
+    116,14,0,124,7,0,124,8,0,124,9,0,131,3,0,1,
+    113,170,0,87,121,16,0,116,13,0,100,2,0,131,1,0,
+    125,10,0,87,110,24,0,4,116,15,0,107,10,0,114,25,
+    1,1,1,1,100,3,0,125,10,0,89,110,1,0,88,116,
+    14,0,124,7,0,100,2,0,124,10,0,131,3,0,1,116,
+    13,0,100,4,0,131,1,0,125,11,0,116,14,0,124,7,
+    0,100,4,0,124,11,0,131,3,0,1,100,3,0,83,41,
+    6,122,250,83,101,116,117,112,32,105,109,112,111,114,116,108,
+    105,98,32,98,121,32,105,109,112,111,114,116,105,110,103,32,
+    110,101,101,100,101,100,32,98,117,105,108,116,45,105,110,32,
+    109,111,100,117,108,101,115,32,97,110,100,32,105,110,106,101,
+    99,116,105,110,103,32,116,104,101,109,10,32,32,32,32,105,
+    110,116,111,32,116,104,101,32,103,108,111,98,97,108,32,110,
+    97,109,101,115,112,97,99,101,46,10,10,32,32,32,32,65,
+    115,32,115,121,115,32,105,115,32,110,101,101,100,101,100,32,
+    102,111,114,32,115,121,115,46,109,111,100,117,108,101,115,32,
+    97,99,99,101,115,115,32,97,110,100,32,95,105,109,112,32,
+    105,115,32,110,101,101,100,101,100,32,116,111,32,108,111,97,
+    100,32,98,117,105,108,116,45,105,110,10,32,32,32,32,109,
+    111,100,117,108,101,115,44,32,116,104,111,115,101,32,116,119,
+    111,32,109,111,100,117,108,101,115,32,109,117,115,116,32,98,
+    101,32,101,120,112,108,105,99,105,116,108,121,32,112,97,115,
+    115,101,100,32,105,110,46,10,10,32,32,32,32,114,141,0,
+    0,0,114,34,0,0,0,78,114,62,0,0,0,41,1,114,
+    141,0,0,0,41,16,114,57,0,0,0,114,14,0,0,0,
+    114,13,0,0,0,114,21,0,0,0,218,5,105,116,101,109,
+    115,114,177,0,0,0,114,76,0,0,0,114,150,0,0,0,
+    114,82,0,0,0,114,160,0,0,0,114,132,0,0,0,114,
+    137,0,0,0,114,1,0,0,0,114,199,0,0,0,114,5,
+    0,0,0,114,77,0,0,0,41,12,218,10,115,121,115,95,
+    109,111,100,117,108,101,218,11,95,105,109,112,95,109,111,100,
+    117,108,101,90,11,109,111,100,117,108,101,95,116,121,112,101,
+    114,15,0,0,0,114,89,0,0,0,114,99,0,0,0,114,
+    88,0,0,0,90,11,115,101,108,102,95,109,111,100,117,108,
+    101,90,12,98,117,105,108,116,105,110,95,110,97,109,101,90,
+    14,98,117,105,108,116,105,110,95,109,111,100,117,108,101,90,
+    13,116,104,114,101,97,100,95,109,111,100,117,108,101,90,14,
+    119,101,97,107,114,101,102,95,109,111,100,117,108,101,114,10,
+    0,0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,
+    115,101,116,117,112,60,4,0,0,115,50,0,0,0,0,9,
+    6,1,6,3,12,1,28,1,15,1,15,1,9,1,15,1,
+    9,2,3,1,15,1,17,3,13,1,13,1,15,1,15,2,
+    13,1,20,3,3,1,16,1,13,2,11,1,16,3,12,1,
+    114,203,0,0,0,99,2,0,0,0,0,0,0,0,3,0,
+    0,0,3,0,0,0,67,0,0,0,115,87,0,0,0,116,
+    0,0,124,0,0,124,1,0,131,2,0,1,116,1,0,106,
+    2,0,106,3,0,116,4,0,131,1,0,1,116,1,0,106,
+    2,0,106,3,0,116,5,0,131,1,0,1,100,1,0,100,
+    2,0,108,6,0,125,2,0,124,2,0,97,7,0,124,2,
+    0,106,8,0,116,1,0,106,9,0,116,10,0,25,131,1,
+    0,1,100,2,0,83,41,3,122,50,73,110,115,116,97,108,
+    108,32,105,109,112,111,114,116,108,105,98,32,97,115,32,116,
+    104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
+    110,32,111,102,32,105,109,112,111,114,116,46,114,33,0,0,
+    0,78,41,11,114,203,0,0,0,114,14,0,0,0,114,174,
+    0,0,0,114,113,0,0,0,114,150,0,0,0,114,160,0,
+    0,0,218,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,119,
+    0,0,0,218,8,95,105,110,115,116,97,108,108,114,21,0,
+    0,0,114,1,0,0,0,41,3,114,201,0,0,0,114,202,
+    0,0,0,114,204,0,0,0,114,10,0,0,0,114,10,0,
+    0,0,114,11,0,0,0,114,205,0,0,0,107,4,0,0,
+    115,12,0,0,0,0,2,13,2,16,1,16,3,12,1,6,
+    1,114,205,0,0,0,41,51,114,3,0,0,0,114,119,0,
+    0,0,114,12,0,0,0,114,16,0,0,0,114,17,0,0,
+    0,114,59,0,0,0,114,41,0,0,0,114,48,0,0,0,
+    114,31,0,0,0,114,32,0,0,0,114,53,0,0,0,114,
+    54,0,0,0,114,56,0,0,0,114,63,0,0,0,114,65,
+    0,0,0,114,75,0,0,0,114,81,0,0,0,114,84,0,
+    0,0,114,90,0,0,0,114,101,0,0,0,114,102,0,0,
+    0,114,106,0,0,0,114,85,0,0,0,218,6,111,98,106,
+    101,99,116,90,9,95,80,79,80,85,76,65,84,69,114,132,
+    0,0,0,114,137,0,0,0,114,144,0,0,0,114,97,0,
+    0,0,114,86,0,0,0,114,148,0,0,0,114,149,0,0,
+    0,114,87,0,0,0,114,150,0,0,0,114,160,0,0,0,
+    114,165,0,0,0,114,171,0,0,0,114,173,0,0,0,114,
+    176,0,0,0,114,180,0,0,0,114,190,0,0,0,114,181,
+    0,0,0,114,183,0,0,0,114,184,0,0,0,114,185,0,
+    0,0,114,193,0,0,0,114,195,0,0,0,114,198,0,0,
+    0,114,199,0,0,0,114,203,0,0,0,114,205,0,0,0,
+    114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+    11,0,0,0,218,8,60,109,111,100,117,108,101,62,8,0,
+    0,0,115,96,0,0,0,6,17,6,2,12,8,12,4,19,
+    20,6,2,6,3,22,4,19,68,19,21,19,19,12,19,12,
+    19,12,11,18,8,12,11,12,12,12,16,12,36,19,27,19,
+    101,24,26,9,3,18,45,18,60,12,18,12,17,12,25,12,
+    29,12,23,12,16,19,73,19,77,19,13,12,9,12,9,15,
+    40,12,16,6,1,10,2,12,27,12,6,18,24,12,32,12,
+    15,24,35,12,7,12,47,
 };



More information about the Python-checkins mailing list