From 82c1c781c7ee6496bd4c404b7ba972eed5dbcb12 Mon Sep 17 00:00:00 2001
From: Barry Warsaw <barry@python.org>
Date: Tue, 20 Nov 2012 15:22:51 -0500
Subject: - Issue #16514: Fix regression causing a traceback when sys.path[0]
 is None   (actually, any non-string or non-bytes type).

---
 Doc/library/sys.rst                          |   4 +-
 Doc/reference/import.rst                     |  24 +++--
 Lib/importlib/_bootstrap.py                  |   2 +
 Lib/test/test_importlib/import_/test_path.py |  25 +++++-
 Misc/NEWS                                    |   3 +
 Python/importlib.h                           | 130 ++++++++++++++-------------
 6 files changed, 111 insertions(+), 77 deletions(-)

diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index cd6d4bf..73914e3 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -783,7 +783,9 @@ always available.
    current directory first.  Notice that the script directory is inserted *before*
    the entries inserted as a result of :envvar:`PYTHONPATH`.
 
-   A program is free to modify this list for its own purposes.
+   A program is free to modify this list for its own purposes.  Only strings
+   and bytes should be added to :data:`sys.path`; all other data types are
+   ignored during import.
 
 
    .. seealso::
diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst
index fdecc76..ef0235d 100644
--- a/Doc/reference/import.rst
+++ b/Doc/reference/import.rst
@@ -540,7 +540,10 @@ environment variable and various other installation- and
 implementation-specific defaults.  Entries in :data:`sys.path` can name
 directories on the file system, zip files, and potentially other "locations"
 (see the :mod:`site` module) that should be searched for modules, such as
-URLs, or database queries.
+URLs, or database queries.  Only strings and bytes should be present on
+:data:`sys.path`; all other data types are ignored.  The encoding of bytes
+entries is determined by the individual :term:`path entry finders <path entry
+finder>`.
 
 The :term:`path based finder` is a :term:`meta path finder`, so the import
 machinery begins the :term:`import path` search by calling the path
@@ -563,14 +566,17 @@ free to remove cache entries from :data:`sys.path_importer_cache` forcing
 the path based finder to perform the path entry search again [#fnpic]_.
 
 If the path entry is not present in the cache, the path based finder iterates
-over every callable in :data:`sys.path_hooks`.  Each of the
-:term:`path entry hooks <path entry hook>` in this list is called with a
-single argument, the path entry to be searched.  This callable may either
-return a :term:`path entry finder` that can handle the path entry, or it may
-raise :exc:`ImportError`.
-An :exc:`ImportError` is used by the path based finder to signal that the hook
-cannot find a :term:`path entry finder` for that :term:`path entry`.  The
-exception is ignored and :term:`import path` iteration continues.
+over every callable in :data:`sys.path_hooks`.  Each of the :term:`path entry
+hooks <path entry hook>` in this list is called with a single argument, the
+path entry to be searched.  This callable may either return a :term:`path
+entry finder` that can handle the path entry, or it may raise
+:exc:`ImportError`.  An :exc:`ImportError` is used by the path based finder to
+signal that the hook cannot find a :term:`path entry finder` for that
+:term:`path entry`.  The exception is ignored and :term:`import path`
+iteration continues.  The hook should expect either a string or bytes object;
+the encoding of bytes objects is up to the hook (e.g. it may be a file system
+encoding, UTF-8, or something else), and if the hook cannot decode the
+argument, it should raise :exc:`ImportError`.
 
 If :data:`sys.path_hooks` iteration ends with no :term:`path entry finder`
 being returned, then the path based finder's :meth:`find_module()` method
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 888c2f5..a18ccc4 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1281,6 +1281,8 @@ class PathFinder:
         #  the list of paths that will become its __path__
         namespace_path = []
         for entry in path:
+            if not isinstance(entry, (str, bytes)):
+                continue
             finder = cls._path_importer_cache(entry)
             if finder is not None:
                 if hasattr(finder, 'find_loader'):
diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py
index 0c086ce..8b9c77d 100644
--- a/Lib/test/test_importlib/import_/test_path.py
+++ b/Lib/test/test_importlib/import_/test_path.py
@@ -1,15 +1,14 @@
 from importlib import _bootstrap
 from importlib import machinery
+from importlib import import_module
 from .. import util
 from . import util as import_util
-import imp
 import os
 import sys
-import tempfile
-from test import support
-from types import MethodType
+from types import ModuleType
 import unittest
 import warnings
+import zipimport
 
 
 class FinderTests(unittest.TestCase):
@@ -89,6 +88,24 @@ class FinderTests(unittest.TestCase):
             self.assertIs(loader, importer)
             self.assertIn(os.curdir, sys.path_importer_cache)
 
+    def test_None_on_sys_path(self):
+        # Putting None in sys.path[0] caused an import regression from Python
+        # 3.2: http://bugs.python.org/issue16514
+        new_path = sys.path[:]
+        new_path.insert(0, None)
+        new_path_importer_cache = sys.path_importer_cache.copy()
+        new_path_importer_cache.pop(None, None)
+        new_path_hooks = [zipimport.zipimporter,
+                          _bootstrap.FileFinder.path_hook(
+                              *_bootstrap._get_supported_file_loaders())]
+        with util.uncache('email'):
+            with util.import_state(meta_path=sys.meta_path[:],
+                                   path=new_path,
+                                   path_importer_cache=new_path_importer_cache,
+                                   path_hooks=new_path_hooks):
+                module = import_module('email')
+                self.assertIsInstance(module, ModuleType)
+
 
 def test_main():
     from test.support import run_unittest
diff --git a/Misc/NEWS b/Misc/NEWS
index 9771ecd..4893a94 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 3.3.1?
 Core and Builtins
 -----------------
 
+- Issue #16514: Fix regression causing a traceback when sys.path[0] is None
+  (actually, any non-string or non-bytes type).
+
 - Issue #16306: Fix multiple error messages when unknown command line
   parameters where passed to the interpreter.  Patch by Hieu Nguyen.
 
diff --git a/Python/importlib.h b/Python/importlib.h
index 578b42a..15ba108 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -3187,40 +3187,44 @@ unsigned char _Py_M__importlib[] = {
     3,1,17,1,13,1,15,1,18,1,117,31,0,0,0,80,
     97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
     105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,3,
-    0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,67,
-    0,0,0,115,162,0,0,0,103,0,0,125,3,0,120,149,
-    0,124,2,0,68,93,131,0,125,4,0,124,0,0,106,0,
-    0,124,4,0,131,1,0,125,5,0,124,5,0,100,2,0,
-    107,9,0,114,13,0,116,2,0,124,5,0,100,1,0,131,
-    2,0,114,85,0,124,5,0,106,3,0,124,1,0,131,1,
-    0,92,2,0,125,6,0,125,7,0,110,21,0,124,5,0,
-    106,4,0,124,1,0,131,1,0,125,6,0,103,0,0,125,
-    7,0,124,6,0,100,2,0,107,9,0,114,128,0,124,6,
-    0,124,3,0,102,2,0,83,124,3,0,106,5,0,124,7,
-    0,131,1,0,1,113,13,0,113,13,0,87,100,2,0,124,
-    3,0,102,2,0,83,100,2,0,83,40,3,0,0,0,117,
-    63,0,0,0,70,105,110,100,32,116,104,101,32,108,111,97,
-    100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101,
-    95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109,
-    111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97,
-    109,101,46,117,11,0,0,0,102,105,110,100,95,108,111,97,
-    100,101,114,78,40,6,0,0,0,117,20,0,0,0,95,112,
-    97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,
-    104,101,117,4,0,0,0,78,111,110,101,117,7,0,0,0,
-    104,97,115,97,116,116,114,117,11,0,0,0,102,105,110,100,
-    95,108,111,97,100,101,114,117,11,0,0,0,102,105,110,100,
-    95,109,111,100,117,108,101,117,6,0,0,0,101,120,116,101,
-    110,100,40,8,0,0,0,117,3,0,0,0,99,108,115,117,
-    8,0,0,0,102,117,108,108,110,97,109,101,117,4,0,0,
-    0,112,97,116,104,117,14,0,0,0,110,97,109,101,115,112,
-    97,99,101,95,112,97,116,104,117,5,0,0,0,101,110,116,
-    114,121,117,6,0,0,0,102,105,110,100,101,114,117,6,0,
-    0,0,108,111,97,100,101,114,117,8,0,0,0,112,111,114,
-    116,105,111,110,115,40,0,0,0,0,40,0,0,0,0,117,
-    29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
-    114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
-    62,117,11,0,0,0,95,103,101,116,95,108,111,97,100,101,
-    114,253,4,0,0,115,24,0,0,0,0,5,6,1,13,1,
+    0,0,0,0,0,0,0,8,0,0,0,5,0,0,0,67,
+    0,0,0,115,189,0,0,0,103,0,0,125,3,0,120,176,
+    0,124,2,0,68,93,158,0,125,4,0,116,0,0,124,4,
+    0,116,1,0,116,2,0,102,2,0,131,2,0,115,46,0,
+    113,13,0,110,0,0,124,0,0,106,3,0,124,4,0,131,
+    1,0,125,5,0,124,5,0,100,2,0,107,9,0,114,13,
+    0,116,5,0,124,5,0,100,1,0,131,2,0,114,112,0,
+    124,5,0,106,6,0,124,1,0,131,1,0,92,2,0,125,
+    6,0,125,7,0,110,21,0,124,5,0,106,7,0,124,1,
+    0,131,1,0,125,6,0,103,0,0,125,7,0,124,6,0,
+    100,2,0,107,9,0,114,155,0,124,6,0,124,3,0,102,
+    2,0,83,124,3,0,106,8,0,124,7,0,131,1,0,1,
+    113,13,0,113,13,0,87,100,2,0,124,3,0,102,2,0,
+    83,100,2,0,83,40,3,0,0,0,117,63,0,0,0,70,
+    105,110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,
+    114,32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,
+    32,102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,
+    47,112,97,99,107,97,103,101,32,110,97,109,101,46,117,11,
+    0,0,0,102,105,110,100,95,108,111,97,100,101,114,78,40,
+    9,0,0,0,117,10,0,0,0,105,115,105,110,115,116,97,
+    110,99,101,117,3,0,0,0,115,116,114,117,5,0,0,0,
+    98,121,116,101,115,117,20,0,0,0,95,112,97,116,104,95,
+    105,109,112,111,114,116,101,114,95,99,97,99,104,101,117,4,
+    0,0,0,78,111,110,101,117,7,0,0,0,104,97,115,97,
+    116,116,114,117,11,0,0,0,102,105,110,100,95,108,111,97,
+    100,101,114,117,11,0,0,0,102,105,110,100,95,109,111,100,
+    117,108,101,117,6,0,0,0,101,120,116,101,110,100,40,8,
+    0,0,0,117,3,0,0,0,99,108,115,117,8,0,0,0,
+    102,117,108,108,110,97,109,101,117,4,0,0,0,112,97,116,
+    104,117,14,0,0,0,110,97,109,101,115,112,97,99,101,95,
+    112,97,116,104,117,5,0,0,0,101,110,116,114,121,117,6,
+    0,0,0,102,105,110,100,101,114,117,6,0,0,0,108,111,
+    97,100,101,114,117,8,0,0,0,112,111,114,116,105,111,110,
+    115,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
+    60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
+    98,46,95,98,111,111,116,115,116,114,97,112,62,117,11,0,
+    0,0,95,103,101,116,95,108,111,97,100,101,114,253,4,0,
+    0,115,28,0,0,0,0,5,6,1,13,1,21,1,6,1,
     15,1,12,1,15,1,24,2,15,1,6,1,12,2,10,5,
     20,2,117,22,0,0,0,80,97,116,104,70,105,110,100,101,
     114,46,95,103,101,116,95,108,111,97,100,101,114,99,3,0,
@@ -3250,7 +3254,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,11,0,0,0,102,105,110,100,95,109,
-    111,100,117,108,101,22,5,0,0,115,16,0,0,0,0,4,
+    111,100,117,108,101,24,5,0,0,115,16,0,0,0,0,4,
     12,1,12,1,24,1,12,1,4,2,6,3,19,2,117,22,
     0,0,0,80,97,116,104,70,105,110,100,101,114,46,102,105,
     110,100,95,109,111,100,117,108,101,78,40,11,0,0,0,117,
@@ -3271,7 +3275,7 @@ unsigned char _Py_M__importlib[] = {
     116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
     117,10,0,0,0,80,97,116,104,70,105,110,100,101,114,207,
     4,0,0,115,14,0,0,0,16,2,6,2,18,8,18,17,
-    18,17,18,25,3,1,117,10,0,0,0,80,97,116,104,70,
+    18,17,18,27,3,1,117,10,0,0,0,80,97,116,104,70,
     105,110,100,101,114,99,1,0,0,0,0,0,0,0,1,0,
     0,0,3,0,0,0,66,0,0,0,115,110,0,0,0,124,
     0,0,69,101,0,0,90,1,0,100,0,0,90,2,0,100,
@@ -3325,7 +3329,7 @@ unsigned char _Py_M__importlib[] = {
     40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
     110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
     116,115,116,114,97,112,62,117,9,0,0,0,60,103,101,110,
-    101,120,112,114,62,55,5,0,0,115,2,0,0,0,6,0,
+    101,120,112,114,62,57,5,0,0,115,2,0,0,0,6,0,
     117,38,0,0,0,70,105,108,101,70,105,110,100,101,114,46,
     95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,
     62,46,60,103,101,110,101,120,112,114,62,117,1,0,0,0,
@@ -3344,7 +3348,7 @@ unsigned char _Py_M__importlib[] = {
     100,101,114,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,8,0,0,0,95,95,105,110,105,116,
-    95,95,49,5,0,0,115,16,0,0,0,0,4,6,1,19,
+    95,95,51,5,0,0,115,16,0,0,0,0,4,6,1,19,
     1,36,1,9,2,15,1,9,1,12,1,117,19,0,0,0,
     70,105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,
     116,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,
@@ -3359,7 +3363,7 @@ unsigned char _Py_M__importlib[] = {
     60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
     98,46,95,98,111,111,116,115,116,114,97,112,62,117,17,0,
     0,0,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
-    104,101,115,63,5,0,0,115,2,0,0,0,0,2,117,28,
+    104,101,115,65,5,0,0,115,2,0,0,0,0,2,117,28,
     0,0,0,70,105,108,101,70,105,110,100,101,114,46,105,110,
     118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,
     2,0,0,0,0,0,0,0,12,0,0,0,13,0,0,0,
@@ -3431,7 +3435,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
     109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
     114,97,112,62,117,11,0,0,0,102,105,110,100,95,108,111,
-    97,100,101,114,69,5,0,0,115,62,0,0,0,0,3,6,
+    97,100,101,114,71,5,0,0,115,62,0,0,0,0,3,6,
     1,19,1,3,1,25,1,13,1,11,1,15,1,10,1,12,
     2,9,1,9,1,15,2,9,1,6,2,12,1,18,1,12,
     1,22,1,10,1,15,1,12,1,26,4,12,2,22,1,16,
@@ -3470,7 +3474,7 @@ unsigned char _Py_M__importlib[] = {
     102,110,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
     0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
     105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,9,
-    0,0,0,60,103,101,110,101,120,112,114,62,139,5,0,0,
+    0,0,0,60,103,101,110,101,120,112,114,62,141,5,0,0,
     115,2,0,0,0,6,0,117,41,0,0,0,70,105,108,101,
     70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,
     104,101,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
@@ -3498,7 +3502,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,
     122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
     111,111,116,115,116,114,97,112,62,117,11,0,0,0,95,102,
-    105,108,108,95,99,97,99,104,101,111,5,0,0,115,34,0,
+    105,108,108,95,99,97,99,104,101,113,5,0,0,115,34,0,
     0,0,0,2,9,1,3,1,19,1,13,2,11,3,18,1,
     18,7,9,1,13,1,24,1,6,1,27,2,6,1,17,1,
     9,1,18,1,117,22,0,0,0,70,105,108,101,70,105,110,
@@ -3544,7 +3548,7 @@ unsigned char _Py_M__importlib[] = {
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,24,0,0,0,112,97,116,104,95,104,
     111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,
-    101,114,151,5,0,0,115,6,0,0,0,0,2,12,1,21,
+    101,114,153,5,0,0,115,6,0,0,0,0,2,12,1,21,
     1,117,54,0,0,0,70,105,108,101,70,105,110,100,101,114,
     46,112,97,116,104,95,104,111,111,107,46,60,108,111,99,97,
     108,115,62,46,112,97,116,104,95,104,111,111,107,95,102,111,
@@ -3558,7 +3562,7 @@ unsigned char _Py_M__importlib[] = {
     105,108,115,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,9,0,0,0,112,97,116,104,95,104,
-    111,111,107,141,5,0,0,115,4,0,0,0,0,10,21,6,
+    111,111,107,143,5,0,0,115,4,0,0,0,0,10,21,6,
     117,20,0,0,0,70,105,108,101,70,105,110,100,101,114,46,
     112,97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,
     0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,14,
@@ -3569,7 +3573,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,115,101,108,102,40,0,0,0,0,40,0,0,0,0,
     117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
     111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
-    112,62,117,8,0,0,0,95,95,114,101,112,114,95,95,159,
+    112,62,117,8,0,0,0,95,95,114,101,112,114,95,95,161,
     5,0,0,115,2,0,0,0,0,1,117,19,0,0,0,70,
     105,108,101,70,105,110,100,101,114,46,95,95,114,101,112,114,
     95,95,78,40,13,0,0,0,117,8,0,0,0,95,95,110,
@@ -3590,7 +3594,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,10,0,0,0,70,105,108,101,70,105,
-    110,100,101,114,40,5,0,0,115,16,0,0,0,16,7,6,
+    110,100,101,114,42,5,0,0,115,16,0,0,0,16,7,6,
     2,12,14,12,4,6,2,12,42,12,30,18,18,117,10,0,
     0,0,70,105,108,101,70,105,110,100,101,114,99,1,0,0,
     0,0,0,0,0,1,0,0,0,2,0,0,0,66,0,0,
@@ -3612,7 +3616,7 @@ unsigned char _Py_M__importlib[] = {
     0,115,101,108,102,40,0,0,0,0,40,0,0,0,0,117,
     29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,
     114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,
-    62,117,9,0,0,0,95,95,101,110,116,101,114,95,95,169,
+    62,117,9,0,0,0,95,95,101,110,116,101,114,95,95,171,
     5,0,0,115,2,0,0,0,0,2,117,28,0,0,0,95,
     73,109,112,111,114,116,76,111,99,107,67,111,110,116,101,120,
     116,46,95,95,101,110,116,101,114,95,95,99,4,0,0,0,
@@ -3631,7 +3635,7 @@ unsigned char _Py_M__importlib[] = {
     98,97,99,107,40,0,0,0,0,40,0,0,0,0,117,29,
     0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114,
     116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62,
-    117,8,0,0,0,95,95,101,120,105,116,95,95,173,5,0,
+    117,8,0,0,0,95,95,101,120,105,116,95,95,175,5,0,
     0,115,2,0,0,0,0,2,117,27,0,0,0,95,73,109,
     112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,46,
     95,95,101,120,105,116,95,95,78,40,6,0,0,0,117,8,
@@ -3645,7 +3649,7 @@ unsigned char _Py_M__importlib[] = {
     117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112,
     111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
     112,62,117,18,0,0,0,95,73,109,112,111,114,116,76,111,
-    99,107,67,111,110,116,101,120,116,165,5,0,0,115,6,0,
+    99,107,67,111,110,116,101,120,116,167,5,0,0,115,6,0,
     0,0,16,2,6,2,12,4,117,18,0,0,0,95,73,109,
     112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,99,
     3,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,
@@ -3674,7 +3678,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,13,0,0,0,95,114,101,115,111,108,
-    118,101,95,110,97,109,101,178,5,0,0,115,10,0,0,0,
+    118,101,95,110,97,109,101,180,5,0,0,115,10,0,0,0,
     0,2,22,1,18,1,15,1,10,1,117,13,0,0,0,95,
     114,101,115,111,108,118,101,95,110,97,109,101,99,2,0,0,
     0,0,0,0,0,4,0,0,0,11,0,0,0,67,0,0,
@@ -3706,7 +3710,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,
     105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,
     116,114,97,112,62,117,12,0,0,0,95,102,105,110,100,95,
-    109,111,100,117,108,101,187,5,0,0,115,20,0,0,0,0,
+    109,111,100,117,108,101,189,5,0,0,115,20,0,0,0,0,
     2,9,1,19,1,16,1,10,1,24,1,12,2,15,1,4,
     2,21,2,117,12,0,0,0,95,102,105,110,100,95,109,111,
     100,117,108,101,99,3,0,0,0,0,0,0,0,4,0,0,
@@ -3750,7 +3754,7 @@ unsigned char _Py_M__importlib[] = {
     40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,
     102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,
     46,95,98,111,111,116,115,116,114,97,112,62,117,13,0,0,
-    0,95,115,97,110,105,116,121,95,99,104,101,99,107,204,5,
+    0,95,115,97,110,105,116,121,95,99,104,101,99,107,206,5,
     0,0,115,24,0,0,0,0,2,15,1,30,1,12,1,15,
     1,6,1,15,1,15,1,15,1,6,2,27,1,19,1,117,
     13,0,0,0,95,115,97,110,105,116,121,95,99,104,101,99,
@@ -3828,7 +3832,7 @@ unsigned char _Py_M__importlib[] = {
     109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
     114,97,112,62,117,23,0,0,0,95,102,105,110,100,95,97,
     110,100,95,108,111,97,100,95,117,110,108,111,99,107,101,100,
-    223,5,0,0,115,76,0,0,0,0,1,6,1,19,1,6,
+    225,5,0,0,115,76,0,0,0,0,1,6,1,19,1,6,
     1,15,1,16,2,15,1,11,2,13,1,3,1,13,1,13,
     1,22,1,26,1,15,1,12,1,27,3,9,1,9,1,15,
     2,13,1,19,2,13,1,6,2,13,1,32,2,24,1,3,
@@ -3858,7 +3862,7 @@ unsigned char _Py_M__importlib[] = {
     0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
     105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,14,
     0,0,0,95,102,105,110,100,95,97,110,100,95,108,111,97,
-    100,17,6,0,0,115,14,0,0,0,0,2,3,1,16,2,
+    100,19,6,0,0,115,14,0,0,0,0,2,3,1,16,2,
     11,1,10,1,3,1,17,2,117,14,0,0,0,95,102,105,
     110,100,95,97,110,100,95,108,111,97,100,99,3,0,0,0,
     0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,
@@ -3916,7 +3920,7 @@ unsigned char _Py_M__importlib[] = {
     40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,
     110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,
     116,115,116,114,97,112,62,117,11,0,0,0,95,103,99,100,
-    95,105,109,112,111,114,116,30,6,0,0,115,28,0,0,0,
+    95,105,109,112,111,114,116,32,6,0,0,115,28,0,0,0,
     0,9,16,1,12,1,21,1,10,1,15,1,13,1,13,1,
     12,1,10,1,6,1,9,1,21,1,10,1,117,11,0,0,
     0,95,103,99,100,95,105,109,112,111,114,116,99,3,0,0,
@@ -3974,7 +3978,7 @@ unsigned char _Py_M__importlib[] = {
     0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122,
     101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111,
     111,116,115,116,114,97,112,62,117,16,0,0,0,95,104,97,
-    110,100,108,101,95,102,114,111,109,108,105,115,116,54,6,0,
+    110,100,108,101,95,102,114,111,109,108,105,115,116,56,6,0,
     0,115,34,0,0,0,0,10,15,1,12,1,12,1,13,1,
     15,1,22,1,13,1,15,1,21,1,3,1,17,1,18,6,
     18,1,15,1,9,1,32,1,117,16,0,0,0,95,104,97,
@@ -4008,7 +4012,7 @@ unsigned char _Py_M__importlib[] = {
     111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,
     98,111,111,116,115,116,114,97,112,62,117,17,0,0,0,95,
     99,97,108,99,95,95,95,112,97,99,107,97,103,101,95,95,
-    88,6,0,0,115,12,0,0,0,0,7,15,1,12,1,10,
+    90,6,0,0,115,12,0,0,0,0,7,15,1,12,1,10,
     1,12,1,25,1,117,17,0,0,0,95,99,97,108,99,95,
     95,95,112,97,99,107,97,103,101,95,95,99,0,0,0,0,
     0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
@@ -4040,7 +4044,7 @@ unsigned char _Py_M__importlib[] = {
     111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,
     112,62,117,27,0,0,0,95,103,101,116,95,115,117,112,112,
     111,114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,
-    114,115,103,6,0,0,115,8,0,0,0,0,5,18,1,12,
+    114,115,105,6,0,0,115,8,0,0,0,0,5,18,1,12,
     1,12,1,117,27,0,0,0,95,103,101,116,95,115,117,112,
     112,111,114,116,101,100,95,102,105,108,101,95,108,111,97,100,
     101,114,115,99,5,0,0,0,0,0,0,0,9,0,0,0,
@@ -4108,7 +4112,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,
     109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,
     114,97,112,62,117,10,0,0,0,95,95,105,109,112,111,114,
-    116,95,95,114,6,0,0,115,26,0,0,0,0,11,12,1,
+    116,95,95,116,6,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,117,10,0,0,0,95,95,105,109,112,
     111,114,116,95,95,99,2,0,0,0,0,0,0,0,14,0,
@@ -4189,7 +4193,7 @@ unsigned char _Py_M__importlib[] = {
     112,40,0,0,0,0,40,0,0,0,0,117,29,0,0,0,
     60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
     98,46,95,98,111,111,116,115,116,114,97,112,62,117,9,0,
-    0,0,60,103,101,110,101,120,112,114,62,182,6,0,0,115,
+    0,0,60,103,101,110,101,120,112,114,62,184,6,0,0,115,
     2,0,0,0,6,0,117,25,0,0,0,95,115,101,116,117,
     112,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,
     120,112,114,62,105,0,0,0,0,117,7,0,0,0,69,77,
@@ -4253,7 +4257,7 @@ unsigned char _Py_M__importlib[] = {
     108,101,40,0,0,0,0,40,0,0,0,0,117,29,0,0,
     0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,
     105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,6,
-    0,0,0,95,115,101,116,117,112,150,6,0,0,115,96,0,
+    0,0,0,95,115,101,116,117,112,152,6,0,0,115,96,0,
     0,0,0,9,6,1,6,2,12,1,9,2,6,2,19,1,
     15,1,16,2,13,1,13,1,15,1,18,2,13,1,20,2,
     48,1,19,2,31,1,10,1,15,1,13,1,4,2,3,1,
@@ -4297,7 +4301,7 @@ unsigned char _Py_M__importlib[] = {
     0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,
     32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,
     115,116,114,97,112,62,117,8,0,0,0,95,105,110,115,116,
-    97,108,108,224,6,0,0,115,16,0,0,0,0,2,13,1,
+    97,108,108,226,6,0,0,115,16,0,0,0,0,2,13,1,
     9,1,28,1,16,1,16,1,15,1,19,1,117,8,0,0,
     0,95,105,110,115,116,97,108,108,78,40,3,0,0,0,117,
     3,0,0,0,119,105,110,117,6,0,0,0,99,121,103,119,
@@ -4398,7 +4402,7 @@ unsigned char _Py_M__importlib[] = {
     1,37,2,6,2,9,2,9,1,9,2,15,27,12,23,12,
     21,12,8,12,13,12,11,12,55,12,18,12,11,12,11,12,
     17,19,57,19,54,19,50,19,82,22,134,19,29,25,49,25,
-    25,6,3,19,45,19,55,19,18,19,89,19,125,19,13,12,
+    25,6,3,19,45,19,55,19,18,19,91,19,125,19,13,12,
     9,12,17,12,17,6,2,12,50,12,13,18,24,12,34,12,
     15,12,11,24,36,12,74,
 };
-- 
cgit v0.12