Merge tag 'v3.10.0' into 3.10
Python 3.10.0
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f877d2b..88f825e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -212,7 +212,7 @@
strategy:
fail-fast: false
matrix:
- openssl_ver: [1.1.1l, 3.0.0-beta1]
+ openssl_ver: [1.1.1l, 3.0.0]
env:
OPENSSL_VER: ${{ matrix.openssl_ver }}
MULTISSL_DIR: ${{ github.workspace }}/multissl
diff --git a/Doc/library/multiprocessing.shared_memory.rst b/Doc/library/multiprocessing.shared_memory.rst
index cba576a..2ba42b7 100644
--- a/Doc/library/multiprocessing.shared_memory.rst
+++ b/Doc/library/multiprocessing.shared_memory.rst
@@ -342,3 +342,30 @@
>>> c.shm.close()
>>> c.shm.unlink()
+The following examples demonstrates that ``ShareableList``
+(and underlying ``SharedMemory``) objects
+can be pickled and unpickled if needed.
+Note, that it will still be the same shared object.
+This happens, because the deserialized object has
+the same unique name and is just attached to an existing
+object with the same name (if the object is still alive):
+
+ >>> import pickle
+ >>> from multiprocessing import shared_memory
+ >>> sl = shared_memory.ShareableList(range(10))
+ >>> list(sl)
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ >>> deserialized_sl = pickle.loads(pickle.dumps(sl))
+ >>> list(deserialized_sl)
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ >>> sl[0] = -1
+ >>> deserialized_sl[1] = -2
+ >>> list(sl)
+ [-1, -2, 2, 3, 4, 5, 6, 7, 8, 9]
+ >>> list(deserialized_sl)
+ [-1, -2, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ >>> sl.shm.close()
+ >>> sl.shm.unlink()
diff --git a/Include/Python.h b/Include/Python.h
index 04858f2..a83befa 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -35,19 +35,6 @@
#ifndef MS_WINDOWS
#include <unistd.h>
#endif
-#ifdef HAVE_CRYPT_H
-#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE)
-/* Required for glibc to expose the crypt_r() function prototype. */
-# define _GNU_SOURCE
-# define _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#include <crypt.h>
-#ifdef _Py_GNU_SOURCE_FOR_CRYPT
-/* Don't leak the _GNU_SOURCE define to other headers. */
-# undef _GNU_SOURCE
-# undef _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#endif
/* For size_t? */
#ifdef HAVE_STDDEF_H
diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h
index 6be8cb5..90d9813 100644
--- a/Include/internal/pycore_object.h
+++ b/Include/internal/pycore_object.h
@@ -29,6 +29,8 @@ _PyType_HasFeature(PyTypeObject *type, unsigned long feature) {
extern void _PyType_InitCache(PyInterpreterState *interp);
+/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */
+extern PyObject *_PyType_GetQualName(PyTypeObject *type);
/* Inline functions trading binary compatibility for speed:
_PyObject_Init() is the fast version of PyObject_Init(), and
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 2ded39a..ce4635a 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -1208,7 +1208,8 @@ def __call__(self, parser, namespace, values, option_string=None):
# namespace for the relevant parts.
subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
for key, value in vars(subnamespace).items():
- setattr(namespace, key, value)
+ if not hasattr(namespace, key):
+ setattr(namespace, key, value)
if arg_strings:
vars(namespace).setdefault(_UNRECOGNIZED_ARGS_ATTR, [])
@@ -1842,11 +1843,6 @@ def parse_known_args(self, args=None, namespace=None):
if action.default is not SUPPRESS:
setattr(namespace, action.dest, action.default)
- # add any parser defaults that aren't present
- for dest in self._defaults:
- if not hasattr(namespace, dest):
- setattr(namespace, dest, self._defaults[dest])
-
# parse the arguments and exit if there are any errors
if self.exit_on_error:
try:
@@ -1857,6 +1853,11 @@ def parse_known_args(self, args=None, namespace=None):
else:
namespace, args = self._parse_known_args(args, namespace)
+ # add any parser defaults that aren't present
+ for dest in self._defaults:
+ if not hasattr(namespace, dest):
+ setattr(namespace, dest, self._defaults[dest])
+
if hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR):
args.extend(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))
delattr(namespace, _UNRECOGNIZED_ARGS_ATTR)
diff --git a/Lib/compileall.py b/Lib/compileall.py
index 3e00477..3755e76 100644
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -367,9 +367,9 @@ def main():
'environment variable is set, and '
'"timestamp" otherwise.'))
parser.add_argument('-o', action='append', type=int, dest='opt_levels',
- help=('Optimization levels to run compilation with.'
- 'Default is -1 which uses optimization level of'
- 'Python interpreter itself (specified by -O).'))
+ help=('Optimization levels to run compilation with. '
+ 'Default is -1 which uses the optimization level '
+ 'of the Python interpreter itself (see -O).'))
parser.add_argument('-e', metavar='DIR', dest='limit_sl_dest',
help='Ignore symlinks pointing outsite of the DIR')
parser.add_argument('--hardlink-dupes', action='store_true',
diff --git a/Lib/concurrent/futures/thread.py b/Lib/concurrent/futures/thread.py
index b7a2cac..51c942f 100644
--- a/Lib/concurrent/futures/thread.py
+++ b/Lib/concurrent/futures/thread.py
@@ -36,6 +36,12 @@ def _python_exit():
# See bpo-39812 for context.
threading._register_atexit(_python_exit)
+# At fork, reinitialize the `_global_shutdown_lock` lock in the child process
+if hasattr(os, 'register_at_fork'):
+ os.register_at_fork(before=_global_shutdown_lock.acquire,
+ after_in_child=_global_shutdown_lock._at_fork_reinit,
+ after_in_parent=_global_shutdown_lock.release)
+
class _WorkItem(object):
def __init__(self, future, fn, args, kwargs):
diff --git a/Lib/distutils/tests/test_bdist_rpm.py b/Lib/distutils/tests/test_bdist_rpm.py
index 6453a02..ba4382f 100644
--- a/Lib/distutils/tests/test_bdist_rpm.py
+++ b/Lib/distutils/tests/test_bdist_rpm.py
@@ -44,7 +44,7 @@ def tearDown(self):
# spurious sdtout/stderr output under Mac OS X
@unittest.skipUnless(sys.platform.startswith('linux'),
'spurious sdtout/stderr output under Mac OS X')
- @requires_zlib
+ @requires_zlib()
@unittest.skipIf(find_executable('rpm') is None,
'the rpm command is not found')
@unittest.skipIf(find_executable('rpmbuild') is None,
@@ -87,7 +87,7 @@ def test_quiet(self):
# spurious sdtout/stderr output under Mac OS X
@unittest.skipUnless(sys.platform.startswith('linux'),
'spurious sdtout/stderr output under Mac OS X')
- @requires_zlib
+ @requires_zlib()
# http://bugs.python.org/issue1533164
@unittest.skipIf(find_executable('rpm') is None,
'the rpm command is not found')
diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py
index 64b13ac..019aacb 100644
--- a/Lib/idlelib/help_about.py
+++ b/Lib/idlelib/help_about.py
@@ -10,6 +10,8 @@
from idlelib import textview
+version = python_version()
+
def build_bits():
"Return bits for platform."
@@ -42,7 +44,7 @@ def __init__(self, parent, title=None, *, _htest=False, _utest=False):
self.create_widgets()
self.resizable(height=False, width=False)
self.title(title or
- f'About IDLE {python_version()} ({build_bits()} bit)')
+ f'About IDLE {version} ({build_bits()} bit)')
self.transient(parent)
self.grab_set()
self.protocol("WM_DELETE_WINDOW", self.ok)
@@ -88,8 +90,8 @@ def create_widgets(self):
email = Label(frame_background, text='email: idle-dev@python.org',
justify=LEFT, fg=self.fg, bg=self.bg)
email.grid(row=6, column=0, columnspan=2, sticky=W, padx=10, pady=0)
- docs = Label(frame_background, text='https://docs.python.org/' +
- python_version()[:3] + '/library/idle.html',
+ docs = Label(frame_background, text="https://docs.python.org/"
+ f"{version[:version.rindex('.')]}/library/idle.html",
justify=LEFT, fg=self.fg, bg=self.bg)
docs.grid(row=7, column=0, columnspan=2, sticky=W, padx=10, pady=0)
@@ -98,7 +100,7 @@ def create_widgets(self):
columnspan=3, padx=5, pady=5)
pyver = Label(frame_background,
- text='Python version: ' + python_version(),
+ text='Python version: ' + version,
fg=self.fg, bg=self.bg)
pyver.grid(row=9, column=0, sticky=W, padx=10, pady=0)
tkver = Label(frame_background, text='Tk version: ' + tk_patchlevel,
@@ -124,7 +126,7 @@ def create_widgets(self):
columnspan=3, padx=5, pady=5)
idlever = Label(frame_background,
- text='IDLE version: ' + python_version(),
+ text='IDLE version: ' + version,
fg=self.fg, bg=self.bg)
idlever.grid(row=12, column=0, sticky=W, padx=10, pady=0)
idle_buttons = Frame(frame_background, bg=self.bg)
diff --git a/Lib/idlelib/idle_test/test_query.py b/Lib/idlelib/idle_test/test_query.py
index 6902b80..bb12b2b 100644
--- a/Lib/idlelib/idle_test/test_query.py
+++ b/Lib/idlelib/idle_test/test_query.py
@@ -136,8 +136,8 @@ def test_good_module_name(self):
dialog = self.Dummy_ModuleName('idlelib')
self.assertTrue(dialog.entry_ok().endswith('__init__.py'))
self.assertEqual(dialog.entry_error['text'], '')
- dialog = self.Dummy_ModuleName('os.path')
- self.assertTrue(dialog.entry_ok().endswith('path.py'))
+ dialog = self.Dummy_ModuleName('idlelib.idle')
+ self.assertTrue(dialog.entry_ok().endswith('idle.py'))
self.assertEqual(dialog.entry_error['text'], '')
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 4e74400..6c333b0 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -66,6 +66,13 @@
HOST = '127.0.0.1' # python execution server on localhost loopback
PORT = 0 # someday pass in host, port for remote debug capability
+try: # In case IDLE started with -n.
+ eof = 'Ctrl-D (end-of-file)'
+ exit.eof = eof
+ quit.eof = eof
+except NameError: # In case python started with -S.
+ pass
+
# Override warnings module to write to warning_stream. Initialize to send IDLE
# internal warnings to the console. ScriptBinding.check_syntax() will
# temporarily redirect the stream to the shell window to display warnings when
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 3836727..47c4cbd 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -40,6 +40,13 @@
LOCALHOST = '127.0.0.1'
+try:
+ eof = 'Ctrl-D (end-of-file)'
+ exit.eof = eof
+ quit.eof = eof
+except NameError: # In case subprocess started with -S (maybe in future).
+ pass
+
def idle_formatwarning(message, category, filename, lineno, line=None):
"""Format warnings the IDLE way."""
diff --git a/Lib/importlib/__init__.py b/Lib/importlib/__init__.py
index a510f08..ce61883 100644
--- a/Lib/importlib/__init__.py
+++ b/Lib/importlib/__init__.py
@@ -79,7 +79,7 @@ def find_loader(name, path=None):
"""
warnings.warn('Deprecated since Python 3.4 and slated for removal in '
- 'Python 3.10; use importlib.util.find_spec() instead',
+ 'Python 3.12; use importlib.util.find_spec() instead',
DeprecationWarning, stacklevel=2)
try:
loader = sys.modules[name].__loader__
diff --git a/Lib/lib2to3/tests/data/py2_test_grammar.py b/Lib/lib2to3/tests/data/py2_test_grammar.py
index 8663161..f9e4ea1 100644
--- a/Lib/lib2to3/tests/data/py2_test_grammar.py
+++ b/Lib/lib2to3/tests/data/py2_test_grammar.py
@@ -8,7 +8,7 @@
# regression test, the filterwarnings() call has been added to
# regrtest.py.
-from test.test_support import run_unittest, check_syntax_error
+from test.test_support import check_syntax_error
import unittest
import sys
# testing import *
@@ -967,8 +967,5 @@ def _checkeval(msg, ret):
self.assertEqual((6 < 4 if 0 else 2), 2)
-def test_main():
- run_unittest(TokenTests, GrammarTests)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/lib2to3/tests/data/py3_test_grammar.py b/Lib/lib2to3/tests/data/py3_test_grammar.py
index e1eee52..a4a3f7e 100644
--- a/Lib/lib2to3/tests/data/py3_test_grammar.py
+++ b/Lib/lib2to3/tests/data/py3_test_grammar.py
@@ -8,7 +8,7 @@
# regression test, the filterwarnings() call has been added to
# regrtest.py.
-from test.support import run_unittest, check_syntax_error
+from test.support import check_syntax_error
import unittest
import sys
# testing import *
@@ -952,8 +952,5 @@ def _checkeval(msg, ret):
self.assertEqual((6 < 4 if 0 else 2), 2)
-def test_main():
- run_unittest(TokenTests, GrammarTests)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index 1e83131..c389685 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -175,7 +175,7 @@ def guess_all_extensions(self, type, strict=True):
but non-standard types.
"""
type = type.lower()
- extensions = self.types_map_inv[True].get(type, [])
+ extensions = list(self.types_map_inv[True].get(type, []))
if not strict:
for ext in self.types_map_inv[False].get(type, []):
if ext not in extensions:
diff --git a/Lib/statistics.py b/Lib/statistics.py
index 268cc71..cfcc456 100644
--- a/Lib/statistics.py
+++ b/Lib/statistics.py
@@ -147,21 +147,17 @@ class StatisticsError(ValueError):
# === Private utilities ===
-def _sum(data, start=0):
- """_sum(data [, start]) -> (type, sum, count)
+def _sum(data):
+ """_sum(data) -> (type, sum, count)
Return a high-precision sum of the given numeric data as a fraction,
together with the type to be converted to and the count of items.
- If optional argument ``start`` is given, it is added to the total.
- If ``data`` is empty, ``start`` (defaulting to 0) is returned.
-
-
Examples
--------
- >>> _sum([3, 2.25, 4.5, -0.5, 1.0], 0.75)
- (<class 'float'>, Fraction(11, 1), 5)
+ >>> _sum([3, 2.25, 4.5, -0.5, 0.25])
+ (<class 'float'>, Fraction(19, 2), 5)
Some sources of round-off error will be avoided:
@@ -184,10 +180,9 @@ def _sum(data, start=0):
allowed.
"""
count = 0
- n, d = _exact_ratio(start)
- partials = {d: n}
+ partials = {}
partials_get = partials.get
- T = _coerce(int, type(start))
+ T = int
for typ, values in groupby(data, type):
T = _coerce(T, typ) # or raise TypeError
for n, d in map(_exact_ratio, values):
@@ -200,8 +195,7 @@ def _sum(data, start=0):
assert not _isfinite(total)
else:
# Sum all the partial sums using builtin sum.
- # FIXME is this faster if we sum them in order of the denominator?
- total = sum(Fraction(n, d) for d, n in sorted(partials.items()))
+ total = sum(Fraction(n, d) for d, n in partials.items())
return (T, total, count)
@@ -252,27 +246,19 @@ def _exact_ratio(x):
x is expected to be an int, Fraction, Decimal or float.
"""
try:
- # Optimise the common case of floats. We expect that the most often
- # used numeric type will be builtin floats, so try to make this as
- # fast as possible.
- if type(x) is float or type(x) is Decimal:
- return x.as_integer_ratio()
- try:
- # x may be an int, Fraction, or Integral ABC.
- return (x.numerator, x.denominator)
- except AttributeError:
- try:
- # x may be a float or Decimal subclass.
- return x.as_integer_ratio()
- except AttributeError:
- # Just give up?
- pass
+ return x.as_integer_ratio()
+ except AttributeError:
+ pass
except (OverflowError, ValueError):
# float NAN or INF.
assert not _isfinite(x)
return (x, None)
- msg = "can't convert type '{}' to numerator/denominator"
- raise TypeError(msg.format(type(x).__name__))
+ try:
+ # x may be an Integral ABC.
+ return (x.numerator, x.denominator)
+ except AttributeError:
+ msg = f"can't convert type '{type(x).__name__}' to numerator/denominator"
+ raise TypeError(msg)
def _convert(value, T):
@@ -719,14 +705,20 @@ def _ss(data, c=None):
if c is not None:
T, total, count = _sum((x-c)**2 for x in data)
return (T, total)
- c = mean(data)
- T, total, count = _sum((x-c)**2 for x in data)
- # The following sum should mathematically equal zero, but due to rounding
- # error may not.
- U, total2, count2 = _sum((x - c) for x in data)
- assert T == U and count == count2
- total -= total2 ** 2 / len(data)
- assert not total < 0, 'negative sum of square deviations: %f' % total
+ T, total, count = _sum(data)
+ mean_n, mean_d = (total / count).as_integer_ratio()
+ partials = Counter()
+ for n, d in map(_exact_ratio, data):
+ diff_n = n * mean_d - d * mean_n
+ diff_d = d * mean_d
+ partials[diff_d * diff_d] += diff_n * diff_n
+ if None in partials:
+ # The sum will be a NAN or INF. We can ignore all the finite
+ # partials, and just look at this special one.
+ total = partials[None]
+ assert not _isfinite(total)
+ else:
+ total = sum(Fraction(n, d) for d, n in partials.items())
return (T, total)
@@ -830,6 +822,9 @@ def stdev(data, xbar=None):
1.0810874155219827
"""
+ # Fixme: Despite the exact sum of squared deviations, some inaccuracy
+ # remain because there are two rounding steps. The first occurs in
+ # the _convert() step for variance(), the second occurs in math.sqrt().
var = variance(data, xbar)
try:
return var.sqrt()
@@ -846,6 +841,9 @@ def pstdev(data, mu=None):
0.986893273527251
"""
+ # Fixme: Despite the exact sum of squared deviations, some inaccuracy
+ # remain because there are two rounding steps. The first occurs in
+ # the _convert() step for pvariance(), the second occurs in math.sqrt().
var = pvariance(data, mu)
try:
return var.sqrt()
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 18d415a..c1ee122 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -2349,6 +2349,15 @@ def next(self):
raise ReadError(str(e)) from None
except SubsequentHeaderError as e:
raise ReadError(str(e)) from None
+ except Exception as e:
+ try:
+ import zlib
+ if isinstance(e, zlib.error):
+ raise ReadError(f'zlib error: {e}') from None
+ else:
+ raise e
+ except ImportError:
+ raise e
break
if tarinfo is not None:
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index ab43ece..3bc5b8f 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -611,6 +611,7 @@ def test_lose_target_ref(self):
del c
p.start()
p.join()
+ gc.collect() # For PyPy or other GCs.
self.assertIs(wr(), None)
self.assertEqual(q.get(), 5)
close_queue(q)
@@ -2667,6 +2668,7 @@ def test_release_task_refs(self):
self.pool.map(identity, objs)
del objs
+ gc.collect() # For PyPy or other GCs.
time.sleep(DELTA) # let threaded cleanup code run
self.assertEqual(set(wr() for wr in refs), {None})
# With a process pool, copies of the objects are returned, check
@@ -3791,13 +3793,6 @@ def test_shared_memory_basics(self):
self.assertIn(sms.name, str(sms))
self.assertIn(str(sms.size), str(sms))
- # Test pickling
- sms.buf[0:6] = b'pickle'
- pickled_sms = pickle.dumps(sms)
- sms2 = pickle.loads(pickled_sms)
- self.assertEqual(sms.name, sms2.name)
- self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle')
-
# Modify contents of shared memory segment through memoryview.
sms.buf[0] = 42
self.assertEqual(sms.buf[0], 42)
@@ -3896,6 +3891,29 @@ class OptionalAttachSharedMemory(shared_memory.SharedMemory):
sms.close()
+ def test_shared_memory_recreate(self):
+ # Test if shared memory segment is created properly,
+ # when _make_filename returns an existing shared memory segment name
+ with unittest.mock.patch(
+ 'multiprocessing.shared_memory._make_filename') as mock_make_filename:
+
+ NAME_PREFIX = shared_memory._SHM_NAME_PREFIX
+ names = ['test01_fn', 'test02_fn']
+ # Prepend NAME_PREFIX which can be '/psm_' or 'wnsm_', necessary
+ # because some POSIX compliant systems require name to start with /
+ names = [NAME_PREFIX + name for name in names]
+
+ mock_make_filename.side_effect = names
+ shm1 = shared_memory.SharedMemory(create=True, size=1)
+ self.addCleanup(shm1.unlink)
+ self.assertEqual(shm1._name, names[0])
+
+ mock_make_filename.side_effect = names
+ shm2 = shared_memory.SharedMemory(create=True, size=1)
+ self.addCleanup(shm2.unlink)
+ self.assertEqual(shm2._name, names[1])
+
+ def test_invalid_shared_memory_cration(self):
# Test creating a shared memory segment with negative size
with self.assertRaises(ValueError):
sms_invalid = shared_memory.SharedMemory(create=True, size=-1)
@@ -3908,6 +3926,47 @@ class OptionalAttachSharedMemory(shared_memory.SharedMemory):
with self.assertRaises(ValueError):
sms_invalid = shared_memory.SharedMemory(create=True)
+ def test_shared_memory_pickle_unpickle(self):
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ with self.subTest(proto=proto):
+ sms = shared_memory.SharedMemory(create=True, size=512)
+ self.addCleanup(sms.unlink)
+ sms.buf[0:6] = b'pickle'
+
+ # Test pickling
+ pickled_sms = pickle.dumps(sms, protocol=proto)
+
+ # Test unpickling
+ sms2 = pickle.loads(pickled_sms)
+ self.assertIsInstance(sms2, shared_memory.SharedMemory)
+ self.assertEqual(sms.name, sms2.name)
+ self.assertEqual(bytes(sms.buf[0:6]), b'pickle')
+ self.assertEqual(bytes(sms2.buf[0:6]), b'pickle')
+
+ # Test that unpickled version is still the same SharedMemory
+ sms.buf[0:6] = b'newval'
+ self.assertEqual(bytes(sms.buf[0:6]), b'newval')
+ self.assertEqual(bytes(sms2.buf[0:6]), b'newval')
+
+ sms2.buf[0:6] = b'oldval'
+ self.assertEqual(bytes(sms.buf[0:6]), b'oldval')
+ self.assertEqual(bytes(sms2.buf[0:6]), b'oldval')
+
+ def test_shared_memory_pickle_unpickle_dead_object(self):
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ with self.subTest(proto=proto):
+ sms = shared_memory.SharedMemory(create=True, size=512)
+ sms.buf[0:6] = b'pickle'
+ pickled_sms = pickle.dumps(sms, protocol=proto)
+
+ # Now, we are going to kill the original object.
+ # So, unpickled one won't be able to attach to it.
+ sms.close()
+ sms.unlink()
+
+ with self.assertRaises(FileNotFoundError):
+ pickle.loads(pickled_sms)
+
def test_shared_memory_across_processes(self):
# bpo-40135: don't define shared memory block's name in case of
# the failure when we run multiprocessing tests in parallel.
@@ -4125,29 +4184,45 @@ def test_shared_memory_ShareableList_basics(self):
empty_sl.shm.unlink()
def test_shared_memory_ShareableList_pickling(self):
- sl = shared_memory.ShareableList(range(10))
- self.addCleanup(sl.shm.unlink)
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ with self.subTest(proto=proto):
+ sl = shared_memory.ShareableList(range(10))
+ self.addCleanup(sl.shm.unlink)
- serialized_sl = pickle.dumps(sl)
- deserialized_sl = pickle.loads(serialized_sl)
- self.assertTrue(
- isinstance(deserialized_sl, shared_memory.ShareableList)
- )
- self.assertTrue(deserialized_sl[-1], 9)
- self.assertFalse(sl is deserialized_sl)
- deserialized_sl[4] = "changed"
- self.assertEqual(sl[4], "changed")
+ serialized_sl = pickle.dumps(sl, protocol=proto)
+ deserialized_sl = pickle.loads(serialized_sl)
+ self.assertIsInstance(
+ deserialized_sl, shared_memory.ShareableList)
+ self.assertEqual(deserialized_sl[-1], 9)
+ self.assertIsNot(sl, deserialized_sl)
- # Verify data is not being put into the pickled representation.
- name = 'a' * len(sl.shm.name)
- larger_sl = shared_memory.ShareableList(range(400))
- self.addCleanup(larger_sl.shm.unlink)
- serialized_larger_sl = pickle.dumps(larger_sl)
- self.assertTrue(len(serialized_sl) == len(serialized_larger_sl))
- larger_sl.shm.close()
+ deserialized_sl[4] = "changed"
+ self.assertEqual(sl[4], "changed")
+ sl[3] = "newvalue"
+ self.assertEqual(deserialized_sl[3], "newvalue")
- deserialized_sl.shm.close()
- sl.shm.close()
+ larger_sl = shared_memory.ShareableList(range(400))
+ self.addCleanup(larger_sl.shm.unlink)
+ serialized_larger_sl = pickle.dumps(larger_sl, protocol=proto)
+ self.assertEqual(len(serialized_sl), len(serialized_larger_sl))
+ larger_sl.shm.close()
+
+ deserialized_sl.shm.close()
+ sl.shm.close()
+
+ def test_shared_memory_ShareableList_pickling_dead_object(self):
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ with self.subTest(proto=proto):
+ sl = shared_memory.ShareableList(range(10))
+ serialized_sl = pickle.dumps(sl, protocol=proto)
+
+ # Now, we are going to kill the original object.
+ # So, unpickled one won't be able to attach to it.
+ sl.shm.close()
+ sl.shm.unlink()
+
+ with self.assertRaises(FileNotFoundError):
+ pickle.loads(serialized_sl)
def test_shared_memory_cleaned_after_process_termination(self):
cmd = '''if 1:
@@ -4184,6 +4259,13 @@ def test_shared_memory_cleaned_after_process_termination(self):
" a process was abruptly terminated.")
if os.name == 'posix':
+ # Without this line it was raising warnings like:
+ # UserWarning: resource_tracker:
+ # There appear to be 1 leaked shared_memory
+ # objects to clean up at shutdown
+ # See: https://bugs.python.org/issue45209
+ resource_tracker.unregister(f"/{name}", "shared_memory")
+
# A warning was emitted by the subprocess' own
# resource_tracker (on Windows, shared memory segments
# are released automatically by the OS).
@@ -4193,7 +4275,7 @@ def test_shared_memory_cleaned_after_process_termination(self):
"shared_memory objects to clean up at shutdown", err)
#
-#
+# Test to verify that `Finalize` works.
#
class _TestFinalize(BaseTestCase):
@@ -4205,6 +4287,7 @@ def setUp(self):
util._finalizer_registry.clear()
def tearDown(self):
+ gc.collect() # For PyPy or other GCs.
self.assertFalse(util._finalizer_registry)
util._finalizer_registry.update(self.registry_backup)
@@ -4216,12 +4299,14 @@ class Foo(object):
a = Foo()
util.Finalize(a, conn.send, args=('a',))
del a # triggers callback for a
+ gc.collect() # For PyPy or other GCs.
b = Foo()
close_b = util.Finalize(b, conn.send, args=('b',))
close_b() # triggers callback for b
close_b() # does nothing because callback has already been called
del b # does nothing because callback has already been called
+ gc.collect() # For PyPy or other GCs.
c = Foo()
util.Finalize(c, conn.send, args=('c',))
diff --git a/Lib/test/ann_module5.py b/Lib/test/ann_module5.py
new file mode 100644
index 0000000..837041e
--- /dev/null
+++ b/Lib/test/ann_module5.py
@@ -0,0 +1,10 @@
+# Used by test_typing to verify that Final wrapped in ForwardRef works.
+
+from __future__ import annotations
+
+from typing import Final
+
+name: Final[str] = "final"
+
+class MyClass:
+ value: Final = 3000
diff --git a/Lib/test/ann_module6.py b/Lib/test/ann_module6.py
new file mode 100644
index 0000000..6791756
--- /dev/null
+++ b/Lib/test/ann_module6.py
@@ -0,0 +1,7 @@
+# Tests that top-level ClassVar is not allowed
+
+from __future__ import annotations
+
+from typing import ClassVar
+
+wrong: ClassVar[int] = 1
diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py
index d69bcc9..dffb7d4 100644
--- a/Lib/test/lock_tests.py
+++ b/Lib/test/lock_tests.py
@@ -3,6 +3,7 @@
"""
import os
+import gc
import sys
import time
from _thread import start_new_thread, TIMEOUT_MAX
@@ -221,6 +222,7 @@ def test_weakref_deleted(self):
lock = self.locktype()
ref = weakref.ref(lock)
del lock
+ gc.collect() # For PyPy or other GCs.
self.assertIsNone(ref())
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py
index 8e01d31..25283f8 100644
--- a/Lib/test/pickletester.py
+++ b/Lib/test/pickletester.py
@@ -828,7 +828,7 @@ def create_data():
return x
-class AbstractUnpickleTests(unittest.TestCase):
+class AbstractUnpickleTests:
# Subclass must define self.loads.
_testdata = create_data()
@@ -1441,7 +1441,7 @@ def t():
-class AbstractPickleTests(unittest.TestCase):
+class AbstractPickleTests:
# Subclass must define self.dumps, self.loads.
optimized = False
@@ -3032,7 +3032,7 @@ def check_array(arr):
check_array(arr[::2])
-class BigmemPickleTests(unittest.TestCase):
+class BigmemPickleTests:
# Binary protocols can serialize longs of up to 2 GiB-1
@@ -3305,7 +3305,7 @@ def __getattr__(self, key):
self.foo
-class AbstractPickleModuleTests(unittest.TestCase):
+class AbstractPickleModuleTests:
def test_dump_closed_file(self):
f = open(TESTFN, "wb")
@@ -3412,7 +3412,7 @@ def loads(data, **kwargs):
self.check_dumps_loads_oob_buffers(dumps, loads)
-class AbstractPersistentPicklerTests(unittest.TestCase):
+class AbstractPersistentPicklerTests:
# This class defines persistent_id() and persistent_load()
# functions that should be used by the pickler. All even integers
@@ -3452,7 +3452,7 @@ def test_persistence(self):
self.assertEqual(self.load_false_count, 1)
-class AbstractIdentityPersistentPicklerTests(unittest.TestCase):
+class AbstractIdentityPersistentPicklerTests:
def persistent_id(self, obj):
return obj
@@ -3481,7 +3481,7 @@ def test_protocol0_is_ascii_only(self):
self.assertRaises(pickle.UnpicklingError, self.loads, pickled)
-class AbstractPicklerUnpicklerObjectTests(unittest.TestCase):
+class AbstractPicklerUnpicklerObjectTests:
pickler_class = None
unpickler_class = None
@@ -3695,7 +3695,7 @@ def reducer_override(self, obj):
return NotImplemented
-class AbstractHookTests(unittest.TestCase):
+class AbstractHookTests:
def test_pickler_hook(self):
# test the ability of a custom, user-defined CPickler subclass to
# override the default reducing routines of any type using the method
@@ -3761,7 +3761,7 @@ def f():
self.assertIsNone(wr())
-class AbstractDispatchTableTests(unittest.TestCase):
+class AbstractDispatchTableTests:
def test_default_dispatch_table(self):
# No dispatch_table attribute by default
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 318f47e..44c5bd5 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -687,9 +687,8 @@ def check_sizeof(test, o, size):
# Decorator for running a function in a different locale, correctly resetting
# it afterwards.
+@contextlib.contextmanager
def run_with_locale(catstr, *locales):
- def decorator(func):
- def inner(*args, **kwds):
try:
import locale
category = getattr(locale, catstr)
@@ -708,16 +707,11 @@ def inner(*args, **kwds):
except:
pass
- # now run the function, resetting the locale on exceptions
try:
- return func(*args, **kwds)
+ yield
finally:
if locale and orig_locale:
locale.setlocale(category, orig_locale)
- inner.__name__ = func.__name__
- inner.__doc__ = func.__doc__
- return inner
- return decorator
#=======================================================================
# Decorator for running a function in a specific timezone, correctly
diff --git a/Lib/test/support/import_helper.py b/Lib/test/support/import_helper.py
index 5d1e940..43ae314 100644
--- a/Lib/test/support/import_helper.py
+++ b/Lib/test/support/import_helper.py
@@ -80,33 +80,13 @@ def import_module(name, deprecated=False, *, required_on=()):
raise unittest.SkipTest(str(msg))
-def _save_and_remove_module(name, orig_modules):
- """Helper function to save and remove a module from sys.modules
-
- Raise ImportError if the module can't be imported.
- """
- # try to import the module and raise an error if it can't be imported
- if name not in sys.modules:
- __import__(name)
- del sys.modules[name]
+def _save_and_remove_modules(names):
+ orig_modules = {}
+ prefixes = tuple(name + '.' for name in names)
for modname in list(sys.modules):
- if modname == name or modname.startswith(name + '.'):
- orig_modules[modname] = sys.modules[modname]
- del sys.modules[modname]
-
-
-def _save_and_block_module(name, orig_modules):
- """Helper function to save and block a module in sys.modules
-
- Return True if the module was in sys.modules, False otherwise.
- """
- saved = True
- try:
- orig_modules[name] = sys.modules[name]
- except KeyError:
- saved = False
- sys.modules[name] = None
- return saved
+ if modname in names or modname.startswith(prefixes):
+ orig_modules[modname] = sys.modules.pop(modname)
+ return orig_modules
def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
@@ -118,7 +98,8 @@ def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
this operation.
*fresh* is an iterable of additional module names that are also removed
- from the sys.modules cache before doing the import.
+ from the sys.modules cache before doing the import. If one of these
+ modules can't be imported, None is returned.
*blocked* is an iterable of module names that are replaced with None
in the module cache during the import to ensure that attempts to import
@@ -139,24 +120,24 @@ def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
with _ignore_deprecated_imports(deprecated):
# Keep track of modules saved for later restoration as well
# as those which just need a blocking entry removed
- orig_modules = {}
- names_to_remove = []
- _save_and_remove_module(name, orig_modules)
+ fresh = list(fresh)
+ blocked = list(blocked)
+ names = {name, *fresh, *blocked}
+ orig_modules = _save_and_remove_modules(names)
+ for modname in blocked:
+ sys.modules[modname] = None
+
try:
- for fresh_name in fresh:
- _save_and_remove_module(fresh_name, orig_modules)
- for blocked_name in blocked:
- if not _save_and_block_module(blocked_name, orig_modules):
- names_to_remove.append(blocked_name)
- fresh_module = importlib.import_module(name)
- except ImportError:
- fresh_module = None
+ # Return None when one of the "fresh" modules can not be imported.
+ try:
+ for modname in fresh:
+ __import__(modname)
+ except ImportError:
+ return None
+ return importlib.import_module(name)
finally:
- for orig_name, module in orig_modules.items():
- sys.modules[orig_name] = module
- for name_to_remove in names_to_remove:
- del sys.modules[name_to_remove]
- return fresh_module
+ _save_and_remove_modules(names)
+ sys.modules.update(orig_modules)
class CleanImport(object):
diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py
index f453f60..0927281 100644
--- a/Lib/test/test_argparse.py
+++ b/Lib/test/test_argparse.py
@@ -12,7 +12,6 @@
from io import StringIO
-from test import support
from test.support import os_helper
from unittest import mock
class StdIOBuffer(StringIO):
@@ -3060,6 +3059,12 @@ def test_set_defaults_on_parent_and_subparser(self):
xparser.set_defaults(foo=2)
self.assertEqual(NS(foo=2), parser.parse_args(['X']))
+ def test_set_defaults_on_subparser_with_namespace(self):
+ parser = argparse.ArgumentParser()
+ xparser = parser.add_subparsers().add_parser('X')
+ xparser.set_defaults(foo=1)
+ self.assertEqual(NS(foo=2), parser.parse_args(['X'], NS(foo=2)))
+
def test_set_defaults_same_as_add_argument(self):
parser = ErrorRaisingArgumentParser()
parser.set_defaults(w='W', x='X', y='Y', z='Z')
@@ -5391,13 +5396,11 @@ def test_exit_on_error_with_bad_args(self):
self.parser.parse_args('--integers a'.split())
-def test_main():
- support.run_unittest(__name__)
+def tearDownModule():
# Remove global references to avoid looking like we have refleaks.
RFile.seen = {}
WFile.seen = set()
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
old mode 100644
new mode 100755
index 18f78d5..6a48c1c
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -1097,6 +1097,7 @@ def test_weakref(self):
p = weakref.proxy(s)
self.assertEqual(p.tobytes(), s.tobytes())
s = None
+ support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, len, p)
@unittest.skipUnless(hasattr(sys, 'getrefcount'),
diff --git a/Lib/test/test_asyncgen.py b/Lib/test/test_asyncgen.py
index f448f8d..473bce4 100644
--- a/Lib/test/test_asyncgen.py
+++ b/Lib/test/test_asyncgen.py
@@ -1044,6 +1044,7 @@ async def run():
await g.__anext__()
await g.__anext__()
del g
+ gc_collect() # For PyPy or other GCs.
await asyncio.sleep(0.1)
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
index f7345c5..9498c72 100644
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -2690,6 +2690,7 @@ def coro():
self.new_task(self.loop, gen)
finally:
gen.close()
+ gc.collect() # For PyPy or other GCs.
self.assertTrue(m_log.error.called)
message = m_log.error.call_args[0][0]
diff --git a/Lib/test/test_bdb.py b/Lib/test/test_bdb.py
index 398698c..6ec5953 100644
--- a/Lib/test/test_bdb.py
+++ b/Lib/test/test_bdb.py
@@ -57,7 +57,6 @@
import linecache
from contextlib import contextmanager
from itertools import islice, repeat
-import test.support
from test.support import import_helper
from test.support import os_helper
@@ -1193,13 +1192,6 @@ def main():
with TracerRun(self) as tracer:
tracer.runcall(tfunc_import)
-def test_main():
- test.support.run_unittest(
- StateTestCase,
- RunTestCase,
- BreakpointTestCase,
- IssuesTestCase,
- )
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_bigaddrspace.py b/Lib/test/test_bigaddrspace.py
index aa1f8ca..50272e9 100644
--- a/Lib/test/test_bigaddrspace.py
+++ b/Lib/test/test_bigaddrspace.py
@@ -92,10 +92,7 @@ def test_repeat(self):
x = None
-def test_main():
- support.run_unittest(BytesTest, StrTest)
-
if __name__ == '__main__':
if len(sys.argv) > 1:
support.set_memlimit(sys.argv[1])
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_bigmem.py b/Lib/test/test_bigmem.py
index 6a244dd..859f153 100644
--- a/Lib/test/test_bigmem.py
+++ b/Lib/test/test_bigmem.py
@@ -1247,11 +1247,8 @@ def test_sort(self, size):
self.assertEqual(l[:10], [1] * 10)
self.assertEqual(l[-10:], [5] * 10)
-def test_main():
- support.run_unittest(StrTest, BytesTest, BytearrayTest,
- TupleTest, ListTest)
if __name__ == '__main__':
if len(sys.argv) > 1:
support.set_memlimit(sys.argv[1])
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_bool.py b/Lib/test/test_bool.py
index a3214c9..4b32aad 100644
--- a/Lib/test/test_bool.py
+++ b/Lib/test/test_bool.py
@@ -1,7 +1,6 @@
# Test properties of bool promised by PEP 285
import unittest
-from test import support
from test.support import os_helper
import os
@@ -370,8 +369,6 @@ def f(x):
f(x)
self.assertGreaterEqual(x.count, 1)
-def test_main():
- support.run_unittest(BoolTest)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 7913beb..9965c1f 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -1005,15 +1005,9 @@ def test_newline(self):
self.assertEqual(f.readlines(), [text])
-def test_main():
- support.run_unittest(
- BZ2FileTest,
- BZ2CompressorTest,
- BZ2DecompressorTest,
- CompressDecompressTest,
- OpenTest,
- )
+def tearDownModule():
support.reap_children()
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_c_locale_coercion.py b/Lib/test/test_c_locale_coercion.py
index fcc8599..71f9347 100644
--- a/Lib/test/test_c_locale_coercion.py
+++ b/Lib/test/test_c_locale_coercion.py
@@ -427,12 +427,9 @@ def test_PYTHONCOERCECLOCALE_set_to_one(self):
self.assertEqual(cmd.stdout.rstrip(), loc)
-def test_main():
- support.run_unittest(
- LocaleConfigurationTests,
- LocaleCoercionTests
- )
+def tearDownModule():
support.reap_children()
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index cbf9ff2..d93e98f 100644
--- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py
@@ -864,9 +864,10 @@ def test_tokenizer_error_with_stdin(self):
def test_decoding_error_at_the_end_of_the_line(self):
self.check_string(br"'\u1f'")
-def test_main():
- support.run_unittest(CmdLineTest, IgnoreEnvironmentTest, SyntaxErrorTests)
+
+def tearDownModule():
support.reap_children()
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py
index 6ffec91..c93ed5b 100644
--- a/Lib/test/test_cmd_line_script.py
+++ b/Lib/test/test_cmd_line_script.py
@@ -739,9 +739,9 @@ def test_nonexisting_script(self):
self.assertNotEqual(proc.returncode, 0)
-def test_main():
- support.run_unittest(CmdLineTest)
+def tearDownModule():
support.reap_children()
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py
index 74cd045..b9c4f8b 100644
--- a/Lib/test/test_code.py
+++ b/Lib/test/test_code.py
@@ -135,7 +135,7 @@
except ImportError:
ctypes = None
from test.support import (run_doctest, run_unittest, cpython_only,
- check_impl_detail)
+ check_impl_detail, gc_collect)
def consts(t):
@@ -343,6 +343,7 @@ def callback(code):
coderef = weakref.ref(f.__code__, callback)
self.assertTrue(bool(coderef()))
del f
+ gc_collect() # For PyPy or other GCs.
self.assertFalse(bool(coderef()))
self.assertTrue(self.called)
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 99ba487..4de5448 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -648,6 +648,17 @@ def test_merge_code_attrs(self):
self.assertIs(f1.__code__.co_linetable, f2.__code__.co_linetable)
self.assertIs(f1.__code__.co_code, f2.__code__.co_code)
+ # Stripping unused constants is not a strict requirement for the
+ # Python semantics, it's a more an implementation detail.
+ @support.cpython_only
+ def test_strip_unused_consts(self):
+ # Python 3.10rc1 appended None to co_consts when None is not used
+ # at all. See bpo-45056.
+ def f1():
+ "docstring"
+ return 42
+ self.assertEqual(f1.__code__.co_consts, ("docstring", 42))
+
# This is a regression test for a CPython specific peephole optimizer
# implementation bug present in a few releases. It's assertion verifies
# that peephole optimization was actually done though that isn't an
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
index cc51b8c..9e15ecf 100644
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -91,7 +91,8 @@ def test_year_2038_mtime_compilation(self):
os.utime(self.source_path, (2**32 - 1, 2**32 - 1))
except (OverflowError, OSError):
self.skipTest("filesystem doesn't support timestamps near 2**32")
- self.assertTrue(compileall.compile_file(self.source_path))
+ with contextlib.redirect_stdout(io.StringIO()):
+ self.assertTrue(compileall.compile_file(self.source_path))
def test_larger_than_32_bit_times(self):
# This is similar to the test above but we skip it if the OS doesn't
@@ -100,7 +101,8 @@ def test_larger_than_32_bit_times(self):
os.utime(self.source_path, (2**35, 2**35))
except (OverflowError, OSError):
self.skipTest("filesystem doesn't support large timestamps")
- self.assertTrue(compileall.compile_file(self.source_path))
+ with contextlib.redirect_stdout(io.StringIO()):
+ self.assertTrue(compileall.compile_file(self.source_path))
def recreation_check(self, metadata):
"""Check that compileall recreates bytecode when the new metadata is
diff --git a/Lib/test/test_complex.py b/Lib/test/test_complex.py
index abd7e39..c6a261b 100644
--- a/Lib/test/test_complex.py
+++ b/Lib/test/test_complex.py
@@ -777,8 +777,6 @@ def test_format(self):
self.assertEqual(format(complex(INF, 1), 'F'), 'INF+1.000000j')
self.assertEqual(format(complex(INF, -1), 'F'), 'INF-1.000000j')
-def test_main():
- support.run_unittest(ComplexTest)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py
index 99651f5..84209ca 100644
--- a/Lib/test/test_concurrent_futures.py
+++ b/Lib/test/test_concurrent_futures.py
@@ -463,6 +463,7 @@ def test_thread_names_assigned(self):
executor.map(abs, range(-5, 5))
threads = executor._threads
del executor
+ support.gc_collect() # For PyPy or other GCs.
for t in threads:
self.assertRegex(t.name, r'^SpecialPool_[0-4]$')
@@ -473,6 +474,7 @@ def test_thread_names_default(self):
executor.map(abs, range(-5, 5))
threads = executor._threads
del executor
+ support.gc_collect() # For PyPy or other GCs.
for t in threads:
# Ensure that our default name is reasonably sane and unique when
@@ -535,6 +537,7 @@ def test_del_shutdown(self):
call_queue = executor._call_queue
executor_manager_thread = executor._executor_manager_thread
del executor
+ support.gc_collect() # For PyPy or other GCs.
# Make sure that all the executor resources were properly cleaned by
# the shutdown process
@@ -759,6 +762,7 @@ def test_free_reference_yielded_future(self):
futures_list.remove(future)
wr = weakref.ref(future)
del future
+ support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
futures_list[0].set_result("test")
@@ -766,6 +770,7 @@ def test_free_reference_yielded_future(self):
futures_list.remove(future)
wr = weakref.ref(future)
del future
+ support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
if futures_list:
futures_list[0].set_result("test")
@@ -865,6 +870,7 @@ def test_free_reference(self):
for obj in self.executor.map(make_dummy_object, range(10)):
wr = weakref.ref(obj)
del obj
+ support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
@@ -905,6 +911,20 @@ def test_idle_thread_reuse(self):
self.assertEqual(len(executor._threads), 1)
executor.shutdown(wait=True)
+ @unittest.skipUnless(hasattr(os, 'register_at_fork'), 'need os.register_at_fork')
+ def test_hang_global_shutdown_lock(self):
+ # bpo-45021: _global_shutdown_lock should be reinitialized in the child
+ # process, otherwise it will never exit
+ def submit(pool):
+ pool.submit(submit, pool)
+
+ with futures.ThreadPoolExecutor(1) as pool:
+ pool.submit(submit, pool)
+
+ for _ in range(50):
+ with futures.ProcessPoolExecutor(1, mp_context=get_context('fork')) as workers:
+ workers.submit(tuple)
+
class ProcessPoolExecutorTest(ExecutorTest):
@@ -1509,16 +1529,10 @@ def test_multiple_set_exception(self):
self.assertEqual(f.exception(), e)
-_threads_key = None
-
def setUpModule():
- global _threads_key
- _threads_key = threading_helper.threading_setup()
-
-
-def tearDownModule():
- threading_helper.threading_cleanup(*_threads_key)
- multiprocessing.util._cleanup_tests()
+ unittest.addModuleCleanup(multiprocessing.util._cleanup_tests)
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == "__main__":
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index ba3d233..f1ca8cb 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -7,6 +7,7 @@
from operator import le, lt, ge, gt, eq, ne
import unittest
+from test import support
order_comparisons = le, lt, ge, gt
equality_comparisons = eq, ne
@@ -805,6 +806,7 @@ class C(object):
self.assertEqual(v[c], d)
self.assertEqual(len(v), 2)
del c, d
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(v), 1)
x, y = C(), C()
# The underlying containers are decoupled
@@ -834,6 +836,7 @@ def __init__(self, i):
self.assertEqual(v[a].i, b.i)
self.assertEqual(v[c].i, d.i)
del c
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(v), 1)
def test_deepcopy_weakvaluedict(self):
@@ -857,6 +860,7 @@ def __init__(self, i):
self.assertIs(t, d)
del x, y, z, t
del d
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(v), 1)
def test_deepcopy_bound_method(self):
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py
index bdb9f02..7f9094f 100644
--- a/Lib/test/test_datetime.py
+++ b/Lib/test/test_datetime.py
@@ -1,59 +1,57 @@
import unittest
import sys
-from test.support import run_unittest
from test.support.import_helper import import_fresh_module
TESTS = 'test.datetimetester'
-try:
- pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_strptime'],
- blocked=['_datetime'])
- fast_tests = import_fresh_module(TESTS, fresh=['datetime',
- '_datetime', '_strptime'])
-finally:
- # XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
- # XXX: but it does not, so we have to cleanup ourselves.
- for modname in ['datetime', '_datetime', '_strptime']:
- sys.modules.pop(modname, None)
-test_modules = [pure_tests, fast_tests]
-test_suffixes = ["_Pure", "_Fast"]
-# XXX(gb) First run all the _Pure tests, then all the _Fast tests. You might
-# not believe this, but in spite of all the sys.modules trickery running a _Pure
-# test last will leave a mix of pure and native datetime stuff lying around.
-all_test_classes = []
+def load_tests(loader, tests, pattern):
+ try:
+ pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_strptime'],
+ blocked=['_datetime'])
+ fast_tests = import_fresh_module(TESTS, fresh=['datetime',
+ '_datetime', '_strptime'])
+ finally:
+ # XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
+ # XXX: but it does not, so we have to cleanup ourselves.
+ for modname in ['datetime', '_datetime', '_strptime']:
+ sys.modules.pop(modname, None)
-for module, suffix in zip(test_modules, test_suffixes):
- test_classes = []
- for name, cls in module.__dict__.items():
- if not isinstance(cls, type):
- continue
- if issubclass(cls, unittest.TestCase):
- test_classes.append(cls)
- elif issubclass(cls, unittest.TestSuite):
- suit = cls()
- test_classes.extend(type(test) for test in suit)
- test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
- for cls in test_classes:
- cls.__name__ += suffix
- cls.__qualname__ += suffix
- @classmethod
- def setUpClass(cls_, module=module):
- cls_._save_sys_modules = sys.modules.copy()
- sys.modules[TESTS] = module
- sys.modules['datetime'] = module.datetime_module
- sys.modules['_strptime'] = module._strptime
- @classmethod
- def tearDownClass(cls_):
- sys.modules.clear()
- sys.modules.update(cls_._save_sys_modules)
- cls.setUpClass = setUpClass
- cls.tearDownClass = tearDownClass
- all_test_classes.extend(test_classes)
+ test_modules = [pure_tests, fast_tests]
+ test_suffixes = ["_Pure", "_Fast"]
+ # XXX(gb) First run all the _Pure tests, then all the _Fast tests. You might
+ # not believe this, but in spite of all the sys.modules trickery running a _Pure
+ # test last will leave a mix of pure and native datetime stuff lying around.
+ for module, suffix in zip(test_modules, test_suffixes):
+ test_classes = []
+ for name, cls in module.__dict__.items():
+ if not isinstance(cls, type):
+ continue
+ if issubclass(cls, unittest.TestCase):
+ test_classes.append(cls)
+ elif issubclass(cls, unittest.TestSuite):
+ suit = cls()
+ test_classes.extend(type(test) for test in suit)
+ test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
+ for cls in test_classes:
+ cls.__name__ += suffix
+ cls.__qualname__ += suffix
+ @classmethod
+ def setUpClass(cls_, module=module):
+ cls_._save_sys_modules = sys.modules.copy()
+ sys.modules[TESTS] = module
+ sys.modules['datetime'] = module.datetime_module
+ sys.modules['_strptime'] = module._strptime
+ @classmethod
+ def tearDownClass(cls_):
+ sys.modules.clear()
+ sys.modules.update(cls_._save_sys_modules)
+ cls.setUpClass = setUpClass
+ cls.tearDownClass = tearDownClass
+ tests.addTests(loader.loadTestsFromTestCase(cls))
+ return tests
-def test_main():
- run_unittest(*all_test_classes)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 28d5690..b6173a5 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -43,6 +43,17 @@
import random
import inspect
import threading
+import sysconfig
+_cflags = sysconfig.get_config_var('CFLAGS') or ''
+_config_args = sysconfig.get_config_var('CONFIG_ARGS') or ''
+MEMORY_SANITIZER = (
+ '-fsanitize=memory' in _cflags or
+ '--with-memory-sanitizer' in _config_args
+)
+
+ADDRESS_SANITIZER = (
+ '-fsanitize=address' in _cflags
+)
if sys.platform == 'darwin':
@@ -51,7 +62,7 @@
C = import_fresh_module('decimal', fresh=['_decimal'])
P = import_fresh_module('decimal', blocked=['_decimal'])
-orig_sys_decimal = sys.modules['decimal']
+import decimal as orig_sys_decimal
# fractions module must import the correct decimal module.
cfractions = import_fresh_module('fractions', fresh=['fractions'])
@@ -5500,6 +5511,8 @@ def __abs__(self):
# Issue 41540:
@unittest.skipIf(sys.platform.startswith("aix"),
"AIX: default ulimit: test is flaky because of extreme over-allocation")
+ @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
+ "instead of returning NULL for malloc failure.")
def test_maxcontext_exact_arith(self):
# Make sure that exact operations do not raise MemoryError due
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
index 8bd6ebd..7886bbf 100644
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -869,6 +869,7 @@ def test_weakref(self):
p = weakref.proxy(d)
self.assertEqual(str(p), str(d))
d = None
+ support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, str, p)
def test_strange_subclass(self):
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index c67911b..b8862fd 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -4996,8 +4996,11 @@ def test_repr(self):
self.assertIn('{!r}: {!r}'.format(k, v), r)
-class PTypesLongInitTest(unittest.TestCase):
+class AAAPTypesLongInitTest(unittest.TestCase):
# This is in its own TestCase so that it can be run before any other tests.
+ # (Hence the 'AAA' in the test class name: to make it the first
+ # item in a list sorted by name, like
+ # unittest.TestLoader.getTestCaseNames() does.)
def test_pytype_long_ready(self):
# Testing SF bug 551412 ...
@@ -5735,12 +5738,5 @@ class A(metaclass=M):
pass
-def test_main():
- # Run all local test cases, with PTypesLongInitTest first.
- support.run_unittest(PTypesLongInitTest, OperatorsTest,
- ClassPropertiesAndMethods, DictProxyTests,
- MiscTests, PicklingTests, SharedKeyTests,
- MroTest)
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_devpoll.py b/Lib/test/test_devpoll.py
index 110c006..85e0acc 100644
--- a/Lib/test/test_devpoll.py
+++ b/Lib/test/test_devpoll.py
@@ -6,7 +6,7 @@
import random
import select
import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
if not hasattr(select, 'devpoll') :
raise unittest.SkipTest('test works only on Solaris OS family')
@@ -138,8 +138,5 @@ def test_events_mask_overflow_c_limits(self):
self.assertRaises(OverflowError, pollster.modify, 1, USHRT_MAX + 1)
-def test_main():
- run_unittest(DevPollTests)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_difflib.py b/Lib/test/test_difflib.py
index 9a24e00..6afd90a 100644
--- a/Lib/test/test_difflib.py
+++ b/Lib/test/test_difflib.py
@@ -1,5 +1,5 @@
import difflib
-from test.support import run_unittest, findfile
+from test.support import findfile
import unittest
import doctest
import sys
@@ -547,12 +547,14 @@ def test_longest_match_with_popular_chars(self):
self.assertFalse(self.longer_match_exists(a, b, match.size))
-def test_main():
+def setUpModule():
difflib.HtmlDiff._default_prefix = 0
- Doctests = doctest.DocTestSuite(difflib)
- run_unittest(
- TestWithAscii, TestAutojunk, TestSFpatches, TestSFbugs,
- TestOutputFormat, TestBytes, TestJunkAPIs, TestFindLongest, Doctests)
+
+
+def load_tests(loader, tests, pattern):
+ tests.addTest(doctest.DocTestSuite(difflib))
+ return tests
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index d03aa75..edda967 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -689,10 +689,7 @@ def get_disassembly(self, func, lasti=-1, wrapper=True, **kwargs):
if sys.flags.optimize:
code_info_consts = "0: None"
else:
- code_info_consts = (
- """0: 'Formatted details of methods, functions, or code.'
- 1: None"""
-)
+ code_info_consts = "0: 'Formatted details of methods, functions, or code.'"
code_info_code_info = f"""\
Name: code_info
@@ -816,7 +813,6 @@ def f(c=c):
Constants:
0: 0
1: 1
- 2: None
Names:
0: x"""
diff --git a/Lib/test/test_distutils.py b/Lib/test/test_distutils.py
index 90bfc70..4b40af0 100644
--- a/Lib/test/test_distutils.py
+++ b/Lib/test/test_distutils.py
@@ -15,16 +15,14 @@
import distutils.tests
-def test_main():
- # used by regrtest
- support.run_unittest(distutils.tests.test_suite())
- support.reap_children()
-
-
def load_tests(*_):
# used by unittest
return distutils.tests.test_suite()
+def tearDownModule():
+ support.reap_children()
+
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_dtrace.py b/Lib/test/test_dtrace.py
index 8612e27..1db73cc 100644
--- a/Lib/test/test_dtrace.py
+++ b/Lib/test/test_dtrace.py
@@ -6,7 +6,7 @@
import types
import unittest
-from test.support import findfile, run_unittest
+from test.support import findfile
def abspath(filename):
@@ -97,7 +97,7 @@ class SystemTapBackend(TraceBackend):
COMMAND = ["stap", "-g"]
-class TraceTests(unittest.TestCase):
+class TraceTests:
# unittest.TestCase options
maxDiff = None
@@ -149,30 +149,25 @@ def test_line(self):
self.run_case("line")
-class DTraceNormalTests(TraceTests):
+class DTraceNormalTests(TraceTests, unittest.TestCase):
backend = DTraceBackend()
optimize_python = 0
-class DTraceOptimizedTests(TraceTests):
+class DTraceOptimizedTests(TraceTests, unittest.TestCase):
backend = DTraceBackend()
optimize_python = 2
-class SystemTapNormalTests(TraceTests):
+class SystemTapNormalTests(TraceTests, unittest.TestCase):
backend = SystemTapBackend()
optimize_python = 0
-class SystemTapOptimizedTests(TraceTests):
+class SystemTapOptimizedTests(TraceTests, unittest.TestCase):
backend = SystemTapBackend()
optimize_python = 2
-def test_main():
- run_unittest(DTraceNormalTests, DTraceOptimizedTests, SystemTapNormalTests,
- SystemTapOptimizedTests)
-
-
if __name__ == '__main__':
test_main()
diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index 479d712..0a66e7f 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -311,6 +311,14 @@ def test_run_main(self):
self.assertEqual(out.rstrip(), "Py_RunMain(): sys.argv=['-c', 'arg2']")
self.assertEqual(err, '')
+ def test_run_main_loop(self):
+ # bpo-40413: Calling Py_InitializeFromConfig()+Py_RunMain() multiple
+ # times must not crash.
+ nloop = 5
+ out, err = self.run_embedded_interpreter("test_run_main_loop")
+ self.assertEqual(out, "Py_RunMain(): sys.argv=['-c', 'arg2']\n" * nloop)
+ self.assertEqual(err, '')
+
class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
maxDiff = 4096
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 520deb3..82aa79e 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -656,6 +656,7 @@ def inner_raising_func():
except MyException as e:
pass
obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
self.assertIsNone(obj)
@@ -667,6 +668,7 @@ def inner_raising_func():
except MyException:
pass
obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
self.assertIsNone(obj)
@@ -678,6 +680,7 @@ def inner_raising_func():
except:
pass
obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
self.assertIsNone(obj)
@@ -690,6 +693,7 @@ def inner_raising_func():
except:
break
obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
self.assertIsNone(obj)
@@ -708,6 +712,7 @@ def inner_raising_func():
# must clear the latter manually for our test to succeed.
e.__context__ = None
obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
# guarantee no ref cycles on CPython (don't gc_collect)
if check_impl_detail(cpython=False):
@@ -898,6 +903,7 @@ def raising_gen():
next(g)
testfunc(g)
g = obj = None
+ gc_collect() # For PyPy or other GCs.
obj = wr()
self.assertIsNone(obj)
@@ -951,6 +957,7 @@ def __del__(self):
raise Exception(MyObject())
except:
pass
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(e, (None, None, None))
def test_raise_does_not_create_context_chain_cycle(self):
@@ -1413,6 +1420,7 @@ def inner():
self.assertNotEqual(wr(), None)
else:
self.fail("MemoryError not raised")
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(wr(), None)
@no_tracing
@@ -1433,6 +1441,7 @@ def inner():
self.assertNotEqual(wr(), None)
else:
self.fail("RecursionError not raised")
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(wr(), None)
def test_errno_ENOTDIR(self):
@@ -1453,6 +1462,7 @@ def __del__(self):
with support.catch_unraisable_exception() as cm:
del obj
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(cm.unraisable.object, BrokenDel.__del__)
self.assertIsNotNone(cm.unraisable.exc_traceback)
@@ -2288,6 +2298,7 @@ def test_range_of_offsets(self):
except SyntaxError as exc:
with support.captured_stderr() as err:
sys.__excepthook__(*sys.exc_info())
+ self.assertIn(expected, err.getvalue())
the_exception = exc
def test_encodings(self):
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py
index 83ee7a5..fc8c393 100644
--- a/Lib/test/test_fcntl.py
+++ b/Lib/test/test_fcntl.py
@@ -6,7 +6,7 @@
import sys
import unittest
from multiprocessing import Process
-from test.support import (verbose, run_unittest, cpython_only)
+from test.support import verbose, cpython_only
from test.support.import_helper import import_module
from test.support.os_helper import TESTFN, unlink
@@ -210,8 +210,5 @@ def test_fcntl_f_pipesize(self):
os.close(test_pipe_w)
-def test_main():
- run_unittest(TestFcntl)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py
index 1ec756f..1146a37 100644
--- a/Lib/test/test_file.py
+++ b/Lib/test/test_file.py
@@ -7,6 +7,7 @@
import io
import _pyio as pyio
+from test.support import gc_collect
from test.support.os_helper import TESTFN
from test.support import os_helper
from test.support import warnings_helper
@@ -30,6 +31,7 @@ def testWeakRefs(self):
self.assertEqual(self.f.tell(), p.tell())
self.f.close()
self.f = None
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, getattr, p, 'tell')
def testAttributes(self):
diff --git a/Lib/test/test_filecmp.py b/Lib/test/test_filecmp.py
index 64ba5a0..9b5ac12 100644
--- a/Lib/test/test_filecmp.py
+++ b/Lib/test/test_filecmp.py
@@ -246,8 +246,5 @@ def _assert_report(self, dircmp_report, expected_report_lines):
self.assertEqual(report_lines, expected_report_lines)
-def test_main():
- support.run_unittest(FileCompareTestCase, DirCompareTestCase)
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index ff611a9..4269b0e 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -9,7 +9,7 @@
from weakref import proxy
from functools import wraps
-from test.support import (run_unittest, cpython_only, swap_attr)
+from test.support import cpython_only, swap_attr, gc_collect
from test.support.os_helper import (TESTFN, TESTFN_UNICODE, make_bad_fd)
from test.support.warnings_helper import check_warnings
from collections import UserList
@@ -36,6 +36,7 @@ def testWeakRefs(self):
self.assertEqual(self.f.tell(), p.tell())
self.f.close()
self.f = None
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, getattr, p, 'tell')
def testSeekTell(self):
@@ -605,15 +606,12 @@ def test_open_code(self):
self.assertNotEqual(w.warnings, [])
-def test_main():
+def tearDownModule():
# Historically, these tests have been sloppy about removing TESTFN.
# So get rid of it no matter what.
- try:
- run_unittest(CAutoFileTests, PyAutoFileTests,
- COtherFileTests, PyOtherFileTests)
- finally:
- if os.path.exists(TESTFN):
- os.unlink(TESTFN)
+ if os.path.exists(TESTFN):
+ os.unlink(TESTFN)
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 3492ba4..56e3d8a 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -10,6 +10,7 @@
import os
import threading
import time
+import unittest
try:
import ssl
except ImportError:
@@ -1144,18 +1145,10 @@ def test__all__(self):
support.check__all__(self, ftplib, not_exported=not_exported)
-def test_main():
- tests = [TestFTPClass, TestTimeouts,
- TestIPv6Environment,
- TestTLS_FTPClassMixin, TestTLS_FTPClass,
- MiscTestCase]
-
+def setUpModule():
thread_info = threading_helper.threading_setup()
- try:
- support.run_unittest(*tests)
- finally:
- threading_helper.threading_cleanup(*thread_info)
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index fbf5578..fece825 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -167,6 +167,7 @@ def test_weakref(self):
p = proxy(f)
self.assertEqual(f.func, p.func)
f = None
+ support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, getattr, p, 'func')
def test_with_bound_and_unbound_methods(self):
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index 1528cf6..6c28b2b 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -1,6 +1,6 @@
import unittest
import unittest.mock
-from test.support import (verbose, refcount_test, run_unittest,
+from test.support import (verbose, refcount_test,
cpython_only)
from test.support.import_helper import import_module
from test.support.os_helper import temp_dir, TESTFN, unlink
@@ -1389,30 +1389,27 @@ def search_func(encoding):
assert_python_ok("-c", code)
-def test_main():
+def setUpModule():
+ global enabled, debug
enabled = gc.isenabled()
gc.disable()
assert not gc.isenabled()
debug = gc.get_debug()
gc.set_debug(debug & ~gc.DEBUG_LEAK) # this test is supposed to leak
+ gc.collect() # Delete 2nd generation garbage
- try:
- gc.collect() # Delete 2nd generation garbage
- run_unittest(
- GCTests,
- GCCallbackTests,
- GCTogglingTests,
- PythonFinalizationTests)
- finally:
- gc.set_debug(debug)
- # test gc.enable() even if GC is disabled by default
- if verbose:
- print("restoring automatic collection")
- # make sure to always test gc.enable()
- gc.enable()
- assert gc.isenabled()
- if not enabled:
- gc.disable()
+
+def tearDownModule():
+ gc.set_debug(debug)
+ # test gc.enable() even if GC is disabled by default
+ if verbose:
+ print("restoring automatic collection")
+ # make sure to always test gc.enable()
+ gc.enable()
+ assert gc.isenabled()
+ if not enabled:
+ gc.disable()
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index 22c75ba..5f55489 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -145,7 +145,8 @@ class DebuggerTests(unittest.TestCase):
def get_stack_trace(self, source=None, script=None,
breakpoint=BREAKPOINT_FN,
cmds_after_breakpoint=None,
- import_site=False):
+ import_site=False,
+ ignore_stderr=False):
'''
Run 'python -c SOURCE' under gdb with a breakpoint.
@@ -224,8 +225,9 @@ def get_stack_trace(self, source=None, script=None,
# Use "args" to invoke gdb, capturing stdout, stderr:
out, err = run_gdb(*args, PYTHONHASHSEED=PYTHONHASHSEED)
- for line in err.splitlines():
- print(line, file=sys.stderr)
+ if not ignore_stderr:
+ for line in err.splitlines():
+ print(line, file=sys.stderr)
# bpo-34007: Sometimes some versions of the shared libraries that
# are part of the traceback are compiled in optimised mode and the
@@ -908,6 +910,9 @@ def bar():
cmd,
breakpoint=func_name,
cmds_after_breakpoint=['bt', 'py-bt'],
+ # bpo-45207: Ignore 'Function "meth_varargs" not
+ # defined.' message in stderr.
+ ignore_stderr=True,
)
self.assertIn(f'<built-in method {func_name}', gdb_output)
@@ -916,6 +921,9 @@ def bar():
cmd,
breakpoint=func_name,
cmds_after_breakpoint=['py-bt-full'],
+ # bpo-45207: Ignore 'Function "meth_varargs" not
+ # defined.' message in stderr.
+ ignore_stderr=True,
)
self.assertIn(
f'#{expected_frame} <built-in method {func_name}',
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 53d579e..d14c757 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -1966,6 +1966,8 @@ def printsolution(self, x):
"""
coroutine_tests = """\
+>>> from test.support import gc_collect
+
Sending a value into a started generator:
>>> def f():
@@ -2189,7 +2191,7 @@ def printsolution(self, x):
>>> g = f()
>>> next(g)
->>> del g
+>>> del g; gc_collect() # For PyPy or other GCs.
exiting
@@ -2204,7 +2206,7 @@ def printsolution(self, x):
>>> g = f()
>>> next(g)
->>> del g
+>>> del g; gc_collect() # For PyPy or other GCs.
finally
diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 2e70e75..0daaff0 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -2,6 +2,7 @@
import unittest
import pickle
+import copy
from collections import (
defaultdict, deque, OrderedDict, Counter, UserDict, UserList
)
@@ -270,11 +271,30 @@ class MyType(type):
def test_pickle(self):
alias = GenericAlias(list, T)
- s = pickle.dumps(alias)
- loaded = pickle.loads(s)
- self.assertEqual(alias.__origin__, loaded.__origin__)
- self.assertEqual(alias.__args__, loaded.__args__)
- self.assertEqual(alias.__parameters__, loaded.__parameters__)
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ s = pickle.dumps(alias, proto)
+ loaded = pickle.loads(s)
+ self.assertEqual(loaded.__origin__, alias.__origin__)
+ self.assertEqual(loaded.__args__, alias.__args__)
+ self.assertEqual(loaded.__parameters__, alias.__parameters__)
+
+ def test_copy(self):
+ class X(list):
+ def __copy__(self):
+ return self
+ def __deepcopy__(self, memo):
+ return self
+
+ for origin in list, deque, X:
+ alias = GenericAlias(origin, T)
+ copied = copy.copy(alias)
+ self.assertEqual(copied.__origin__, alias.__origin__)
+ self.assertEqual(copied.__args__, alias.__args__)
+ self.assertEqual(copied.__parameters__, alias.__parameters__)
+ copied = copy.deepcopy(alias)
+ self.assertEqual(copied.__origin__, alias.__origin__)
+ self.assertEqual(copied.__args__, alias.__args__)
+ self.assertEqual(copied.__parameters__, alias.__parameters__)
def test_union(self):
a = typing.Union[list[int], list[str]]
diff --git a/Lib/test/test_global.py b/Lib/test/test_global.py
index c71d055..d0bde3f 100644
--- a/Lib/test/test_global.py
+++ b/Lib/test/test_global.py
@@ -1,6 +1,6 @@
"""Verify that warnings are issued for global statements following use."""
-from test.support import run_unittest, check_syntax_error
+from test.support import check_syntax_error
from test.support.warnings_helper import check_warnings
import unittest
import warnings
@@ -53,10 +53,12 @@ def test4(self):
compile(prog_text_4, "<test string>", "exec")
-def test_main():
- with warnings.catch_warnings():
- warnings.filterwarnings("error", module="<test string>")
- run_unittest(GlobalTests)
+def setUpModule():
+ cm = warnings.catch_warnings()
+ cm.__enter__()
+ unittest.addModuleCleanup(cm.__exit__, None, None, None)
+ warnings.filterwarnings("error", module="<test string>")
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 7b51e45..f86e767 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -10,7 +10,6 @@
import sys
import unittest
from subprocess import PIPE, Popen
-from test import support
from test.support import import_helper
from test.support import os_helper
from test.support import _4G, bigmemtest
@@ -842,9 +841,5 @@ def test_decompress_cannot_have_flags_compression(self):
self.assertEqual(out, b'')
-def test_main(verbose=None):
- support.run_unittest(TestGzip, TestOpen, TestCommandLine)
-
-
if __name__ == "__main__":
- test_main(verbose=True)
+ unittest.main()
diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py
index 69790ec..1cc020f 100644
--- a/Lib/test/test_httpservers.py
+++ b/Lib/test/test_httpservers.py
@@ -1302,21 +1302,9 @@ def test_server_test_ipv4(self, _):
self.assertEqual(mock_server.address_family, socket.AF_INET)
-def test_main(verbose=None):
- cwd = os.getcwd()
- try:
- support.run_unittest(
- RequestHandlerLoggingTestCase,
- BaseHTTPRequestHandlerTestCase,
- BaseHTTPServerTestCase,
- SimpleHTTPServerTestCase,
- CGIHTTPServerTestCase,
- SimpleHTTPRequestHandlerTestCase,
- MiscTestCase,
- ScriptTestCase
- )
- finally:
- os.chdir(cwd)
+def setUpModule():
+ unittest.addModuleCleanup(os.chdir, os.getcwd())
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_importlib/test_locks.py b/Lib/test/test_importlib/test_locks.py
index 0e94ce9..9290bac 100644
--- a/Lib/test/test_importlib/test_locks.py
+++ b/Lib/test/test_importlib/test_locks.py
@@ -4,6 +4,7 @@
import sys
import threading
+import unittest
import weakref
from test import support
@@ -139,15 +140,10 @@ def test_all_locks(self):
) = test_util.test_both(LifetimeTests, init=init)
-@threading_helper.reap_threads
-def test_main():
- support.run_unittest(Frozen_ModuleLockAsRLockTests,
- Source_ModuleLockAsRLockTests,
- Frozen_DeadlockAvoidanceTests,
- Source_DeadlockAvoidanceTests,
- Frozen_LifetimeTests,
- Source_LifetimeTests)
+def setUpModule():
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == '__main__':
- test_main()
+ unittets.main()
diff --git a/Lib/test/test_importlib/test_threaded_import.py b/Lib/test/test_importlib/test_threaded_import.py
index 03bde96..76b028e 100644
--- a/Lib/test/test_importlib/test_threaded_import.py
+++ b/Lib/test/test_importlib/test_threaded_import.py
@@ -14,7 +14,7 @@
import threading
import unittest
from unittest import mock
-from test.support import (verbose, run_unittest)
+from test.support import verbose
from test.support.import_helper import forget
from test.support.os_helper import (TESTFN, unlink, rmtree)
from test.support import script_helper, threading_helper
@@ -258,19 +258,16 @@ def test_multiprocessing_pool_circular_import(self):
script_helper.assert_python_ok(fn)
-@threading_helper.reap_threads
-def test_main():
- old_switchinterval = None
+def setUpModule():
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
try:
old_switchinterval = sys.getswitchinterval()
+ unittest.addModuleCleanup(sys.setswitchinterval, old_switchinterval)
sys.setswitchinterval(1e-5)
except AttributeError:
pass
- try:
- run_unittest(ThreadedImportTests)
- finally:
- if old_switchinterval is not None:
- sys.setswitchinterval(old_switchinterval)
+
if __name__ == "__main__":
- test_main()
+ unittets.main()
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index a977828..f0dc6bb 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -24,7 +24,7 @@
except ImportError:
ThreadPoolExecutor = None
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
from test.support import MISSING_C_DOCSTRINGS, ALWAYS_EQ
from test.support.import_helper import DirsOnSysPath
from test.support.os_helper import TESTFN
@@ -4350,19 +4350,5 @@ def test_getsource_reload(self):
self.assertInspectEqual(path, module)
-def test_main():
- run_unittest(
- TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBlockComments,
- TestBuggyCases, TestInterpreterStack, TestClassesAndFunctions, TestPredicates,
- TestGetcallargsFunctions, TestGetcallargsMethods,
- TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState,
- TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject,
- TestBoundArguments, TestSignaturePrivateHelpers,
- TestSignatureDefinitions, TestIsDataDescriptor,
- TestGetClosureVars, TestUnwrap, TestMain, TestReload,
- TestGetCoroutineState, TestGettingSourceOfToplevelFrames,
- TestGetsourceInteractive,
- )
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 32c29ea..35013b6 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -73,6 +73,10 @@ class EmptyStruct(ctypes.Structure):
'--with-memory-sanitizer' in _config_args
)
+ADDRESS_SANITIZER = (
+ '-fsanitize=address' in _cflags
+)
+
# Does io.IOBase finalizer log the exception if the close() method fails?
# The exception is ignored silently by default in release build.
IOBASE_EMITS_UNRAISABLE = (hasattr(sys, "gettotalrefcount") or sys.flags.dev_mode)
@@ -1546,7 +1550,7 @@ def test_truncate_on_read_only(self):
class CBufferedReaderTest(BufferedReaderTest, SizeofTest):
tp = io.BufferedReader
- @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
"instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedReaderTest.test_constructor(self)
@@ -1911,7 +1915,7 @@ def test_slow_close_from_thread(self):
class CBufferedWriterTest(BufferedWriterTest, SizeofTest):
tp = io.BufferedWriter
- @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
"instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedWriterTest.test_constructor(self)
@@ -2410,7 +2414,7 @@ def test_interleaved_readline_write(self):
class CBufferedRandomTest(BufferedRandomTest, SizeofTest):
tp = io.BufferedRandom
- @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+ @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
"instead of returning NULL for malloc failure.")
def test_constructor(self):
BufferedRandomTest.test_constructor(self)
@@ -4372,6 +4376,31 @@ def check_interrupted_write(self, item, bytes, **fdopen_kwargs):
"""Check that a partial write, when it gets interrupted, properly
invokes the signal handler, and bubbles up the exception raised
in the latter."""
+
+ # XXX This test has three flaws that appear when objects are
+ # XXX not reference counted.
+
+ # - if wio.write() happens to trigger a garbage collection,
+ # the signal exception may be raised when some __del__
+ # method is running; it will not reach the assertRaises()
+ # call.
+
+ # - more subtle, if the wio object is not destroyed at once
+ # and survives this function, the next opened file is likely
+ # to have the same fileno (since the file descriptor was
+ # actively closed). When wio.__del__ is finally called, it
+ # will close the other's test file... To trigger this with
+ # CPython, try adding "global wio" in this function.
+
+ # - This happens only for streams created by the _pyio module,
+ # because a wio.close() that fails still consider that the
+ # file needs to be closed again. You can try adding an
+ # "assert wio.closed" at the end of the function.
+
+ # Fortunately, a little gc.collect() seems to be enough to
+ # work around all these issues.
+ support.gc_collect() # For PyPy or other GCs.
+
read_results = []
def _read():
s = os.read(r, 1)
diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py
index 20cb9c0..554f602 100644
--- a/Lib/test/test_iter.py
+++ b/Lib/test/test_iter.py
@@ -2,7 +2,7 @@
import sys
import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
from test.support.os_helper import TESTFN, unlink
from test.support import check_free_after_iterating, ALWAYS_EQ, NEVER_EQ
import pickle
@@ -1037,9 +1037,5 @@ def test_error_iter(self):
self.assertRaises(ZeroDivisionError, iter, BadIterableClass())
-def test_main():
- run_unittest(TestCase)
-
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index 3f4fb4c..a12f6f0 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -1442,6 +1442,7 @@ def test_tee(self):
p = weakref.proxy(a)
self.assertEqual(getattr(p, '__class__'), type(b))
del a
+ support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, getattr, p, '__class__')
ans = list('abc')
diff --git a/Lib/test/test_json/test_speedups.py b/Lib/test/test_json/test_speedups.py
index fbfee1a..682014c 100644
--- a/Lib/test/test_json/test_speedups.py
+++ b/Lib/test/test_json/test_speedups.py
@@ -59,6 +59,15 @@ def bad_encoder2(*args):
with self.assertRaises(ZeroDivisionError):
enc('spam', 4)
+ def test_bad_markers_argument_to_encoder(self):
+ # https://bugs.python.org/issue45269
+ with self.assertRaisesRegex(
+ TypeError,
+ r'make_encoder\(\) argument 1 must be dict or None, not int',
+ ):
+ self.json.encoder.c_make_encoder(1, None, None, None, ': ', ', ',
+ False, False, False)
+
def test_bad_bool_args(self):
def test(name):
self.json.encoder.JSONEncoder(**{name: BadBool()}).encode({'a': 1})
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index af841d6..8356e6b 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -5489,25 +5489,11 @@ def test__all__(self):
# Set the locale to the platform-dependent default. I have no idea
# why the test does this, but in any case we save the current locale
# first and restore it at the end.
-@support.run_with_locale('LC_ALL', '')
-def test_main():
- tests = [
- BuiltinLevelsTest, BasicFilterTest, CustomLevelsAndFiltersTest,
- HandlerTest, MemoryHandlerTest, ConfigFileTest, SocketHandlerTest,
- DatagramHandlerTest, MemoryTest, EncodingTest, WarningsTest,
- ConfigDictTest, ManagerTest, FormatterTest, BufferingFormatterTest,
- StreamHandlerTest, LogRecordFactoryTest, ChildLoggerTest,
- QueueHandlerTest, ShutdownTest, ModuleLevelMiscTest, BasicConfigTest,
- LoggerAdapterTest, LoggerTest, SMTPHandlerTest, FileHandlerTest,
- RotatingFileHandlerTest, LastResortTest, LogRecordTest,
- ExceptionTest, SysLogHandlerTest, IPv6SysLogHandlerTest, HTTPHandlerTest,
- NTEventLogHandlerTest, TimedRotatingFileHandlerTest,
- UnixSocketHandlerTest, UnixDatagramHandlerTest, UnixSysLogHandlerTest,
- MiscTestCase
- ]
- if hasattr(logging.handlers, 'QueueListener'):
- tests.append(QueueListenerTest)
- support.run_unittest(*tests)
+def setUpModule():
+ cm = support.run_with_locale('LC_ALL', '')
+ cm.__enter__()
+ unittest.addModuleCleanup(cm.__exit__, None, None, None)
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py
index 1e2066b..145c8cf 100644
--- a/Lib/test/test_lzma.py
+++ b/Lib/test/test_lzma.py
@@ -9,9 +9,7 @@
from test import support
import unittest
-from test.support import (
- _4G, bigmemtest, run_unittest
-)
+from test.support import _4G, bigmemtest
from test.support.import_helper import import_module
from test.support.os_helper import (
TESTFN, unlink
@@ -1941,14 +1939,5 @@ def test_filter_properties_roundtrip(self):
)
-def test_main():
- run_unittest(
- CompressorDecompressorTestCase,
- CompressDecompressFunctionTestCase,
- FileTestCase,
- OpenTestCase,
- MiscellaneousTestCase,
- )
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 8a5d692..604fc45 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -2300,15 +2300,9 @@ def test__all__(self):
not_exported={"linesep", "fcntl"})
-def test_main():
- tests = (TestMailboxSuperclass, TestMaildir, TestMbox, TestMMDF, TestMH,
- TestBabyl, TestMessage, TestMaildirMessage, TestMboxMessage,
- TestMHMessage, TestBabylMessage, TestMMDFMessage,
- TestMessageConversion, TestProxyFile, TestPartialFile,
- MaildirTestCase, TestFakeMailBox, MiscTestCase)
- support.run_unittest(*tests)
+def tearDownModule():
support.reap_children()
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 3d12874..e5f4e2b 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -1783,16 +1783,22 @@ def test_prod(self):
self.assertRaises(TypeError, prod)
self.assertRaises(TypeError, prod, 42)
self.assertRaises(TypeError, prod, ['a', 'b', 'c'])
- self.assertRaises(TypeError, prod, ['a', 'b', 'c'], '')
- self.assertRaises(TypeError, prod, [b'a', b'c'], b'')
+ self.assertRaises(TypeError, prod, ['a', 'b', 'c'], start='')
+ self.assertRaises(TypeError, prod, [b'a', b'c'], start=b'')
values = [bytearray(b'a'), bytearray(b'b')]
- self.assertRaises(TypeError, prod, values, bytearray(b''))
+ self.assertRaises(TypeError, prod, values, start=bytearray(b''))
self.assertRaises(TypeError, prod, [[1], [2], [3]])
self.assertRaises(TypeError, prod, [{2:3}])
- self.assertRaises(TypeError, prod, [{2:3}]*2, {2:3})
- self.assertRaises(TypeError, prod, [[1], [2], [3]], [])
+ self.assertRaises(TypeError, prod, [{2:3}]*2, start={2:3})
+ self.assertRaises(TypeError, prod, [[1], [2], [3]], start=[])
+
+ # Some odd cases
+ self.assertEqual(prod([2, 3], start='ab'), 'abababababab')
+ self.assertEqual(prod([2, 3], start=[1, 2]), [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2])
+ self.assertEqual(prod([], start={2: 3}), {2:3})
+
with self.assertRaises(TypeError):
- prod([10, 20], [30, 40]) # start is a keyword-only argument
+ prod([10, 20], 1) # start is a keyword-only argument
self.assertEqual(prod([0, 1, 2, 3]), 0)
self.assertEqual(prod([1, 0, 2, 3]), 0)
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index fb9cb04..4098a22 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -113,20 +113,29 @@ def test_filename_with_url_delimiters(self):
eq(self.db.guess_type(r" \"\`;b&b&c |.tar.gz"), gzip_expected)
def test_guess_all_types(self):
- eq = self.assertEqual
- unless = self.assertTrue
# First try strict. Use a set here for testing the results because if
# test_urllib2 is run before test_mimetypes, global state is modified
# such that the 'all' set will have more items in it.
- all = set(self.db.guess_all_extensions('text/plain', strict=True))
- unless(all >= set(['.bat', '.c', '.h', '.ksh', '.pl', '.txt']))
+ all = self.db.guess_all_extensions('text/plain', strict=True)
+ self.assertTrue(set(all) >= {'.bat', '.c', '.h', '.ksh', '.pl', '.txt'})
+ self.assertEqual(len(set(all)), len(all)) # no duplicates
# And now non-strict
all = self.db.guess_all_extensions('image/jpg', strict=False)
- all.sort()
- eq(all, ['.jpg'])
+ self.assertEqual(all, ['.jpg'])
# And now for no hits
all = self.db.guess_all_extensions('image/jpg', strict=True)
- eq(all, [])
+ self.assertEqual(all, [])
+ # And now for type existing in both strict and non-strict mappings.
+ self.db.add_type('test-type', '.strict-ext')
+ self.db.add_type('test-type', '.non-strict-ext', strict=False)
+ all = self.db.guess_all_extensions('test-type', strict=False)
+ self.assertEqual(all, ['.strict-ext', '.non-strict-ext'])
+ all = self.db.guess_all_extensions('test-type')
+ self.assertEqual(all, ['.strict-ext'])
+ # Test that changing the result list does not affect the global state
+ all.append('.no-such-ext')
+ all = self.db.guess_all_extensions('test-type')
+ self.assertNotIn('.no-such-ext', all)
def test_encoding(self):
getpreferredencoding = locale.getpreferredencoding
diff --git a/Lib/test/test_multibytecodec.py b/Lib/test/test_multibytecodec.py
index 3efa150..cf8bb5e 100644
--- a/Lib/test/test_multibytecodec.py
+++ b/Lib/test/test_multibytecodec.py
@@ -403,8 +403,6 @@ class TestHZStateful(TestStateful):
reset = b'~}'
expected_reset = expected + reset
-def test_main():
- support.run_unittest(__name__)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py
index 1ed6bf9..28b2744 100644
--- a/Lib/test/test_optparse.py
+++ b/Lib/test/test_optparse.py
@@ -1656,8 +1656,5 @@ def test__all__(self):
support.check__all__(self, optparse, not_exported=not_exported)
-def test_main():
- support.run_unittest(__name__)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py
index d3766e5..ebce3e9 100644
--- a/Lib/test/test_ossaudiodev.py
+++ b/Lib/test/test_ossaudiodev.py
@@ -188,7 +188,7 @@ def test_on_closed(self):
mixer.close()
self.assertRaises(ValueError, mixer.fileno)
-def test_main():
+def setUpModule():
try:
dsp = ossaudiodev.open('w')
except (ossaudiodev.error, OSError) as msg:
@@ -197,7 +197,6 @@ def test_main():
raise unittest.SkipTest(msg)
raise
dsp.close()
- support.run_unittest(__name__)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index a9afca8..d4c037d 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -11,7 +11,7 @@
import textwrap
import linecache
-from contextlib import ExitStack
+from contextlib import ExitStack, redirect_stdout
from io import StringIO
from test.support import os_helper
# This little helper class is essential for testing pdb under doctest.
@@ -1688,7 +1688,7 @@ def test_module_without_a_main(self):
os_helper.rmtree(module_name)
init_file = module_name + '/__init__.py'
os.mkdir(module_name)
- with open(init_file, 'w') as f:
+ with open(init_file, 'w'):
pass
self.addCleanup(os_helper.rmtree, module_name)
stdout, stderr = self._run_pdb(['-m', module_name], "")
@@ -1701,7 +1701,7 @@ def test_package_without_a_main(self):
os_helper.rmtree(pkg_name)
modpath = pkg_name + '/' + module_name
os.makedirs(modpath)
- with open(modpath + '/__init__.py', 'w') as f:
+ with open(modpath + '/__init__.py', 'w'):
pass
self.addCleanup(os_helper.rmtree, pkg_name)
stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "")
@@ -1915,19 +1915,20 @@ def test_checkline_after_reset(self):
self.assertEqual(db.checkline(os_helper.TESTFN, 1), 1)
def test_checkline_is_not_executable(self):
- with open(os_helper.TESTFN, "w") as f:
- # Test for comments, docstrings and empty lines
- s = textwrap.dedent("""
- # Comment
- \"\"\" docstring \"\"\"
- ''' docstring '''
+ # Test for comments, docstrings and empty lines
+ s = textwrap.dedent("""
+ # Comment
+ \"\"\" docstring \"\"\"
+ ''' docstring '''
- """)
+ """)
+ with open(os_helper.TESTFN, "w") as f:
f.write(s)
- db = pdb.Pdb()
num_lines = len(s.splitlines()) + 2 # Test for EOF
- for lineno in range(num_lines):
- self.assertFalse(db.checkline(os_helper.TESTFN, lineno))
+ with redirect_stdout(StringIO()):
+ db = pdb.Pdb()
+ for lineno in range(num_lines):
+ self.assertFalse(db.checkline(os_helper.TESTFN, lineno))
def load_tests(*args):
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index f8b43a1..8775ff4 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -9,6 +9,7 @@
import warnings
import weakref
+import doctest
import unittest
from test import support
from test.support import import_helper
@@ -31,7 +32,7 @@
has_c_implementation = False
-class PyPickleTests(AbstractPickleModuleTests):
+class PyPickleTests(AbstractPickleModuleTests, unittest.TestCase):
dump = staticmethod(pickle._dump)
dumps = staticmethod(pickle._dumps)
load = staticmethod(pickle._load)
@@ -40,7 +41,7 @@ class PyPickleTests(AbstractPickleModuleTests):
Unpickler = pickle._Unpickler
-class PyUnpicklerTests(AbstractUnpickleTests):
+class PyUnpicklerTests(AbstractUnpickleTests, unittest.TestCase):
unpickler = pickle._Unpickler
bad_stack_errors = (IndexError,)
@@ -54,7 +55,7 @@ def loads(self, buf, **kwds):
return u.load()
-class PyPicklerTests(AbstractPickleTests):
+class PyPicklerTests(AbstractPickleTests, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
@@ -73,7 +74,7 @@ def loads(self, buf, **kwds):
class InMemoryPickleTests(AbstractPickleTests, AbstractUnpickleTests,
- BigmemPickleTests):
+ BigmemPickleTests, unittest.TestCase):
bad_stack_errors = (pickle.UnpicklingError, IndexError)
truncated_errors = (pickle.UnpicklingError, EOFError,
@@ -110,14 +111,14 @@ def persistent_load(subself, obj):
class PyPersPicklerTests(AbstractPersistentPicklerTests,
- PersistentPicklerUnpicklerMixin):
+ PersistentPicklerUnpicklerMixin, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
class PyIdPersPicklerTests(AbstractIdentityPersistentPicklerTests,
- PersistentPicklerUnpicklerMixin):
+ PersistentPicklerUnpicklerMixin, unittest.TestCase):
pickler = pickle._Pickler
unpickler = pickle._Unpickler
@@ -183,13 +184,13 @@ def persistent_load(pid):
check(PersUnpickler)
-class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
pickler_class = pickle._Pickler
unpickler_class = pickle._Unpickler
-class PyDispatchTableTests(AbstractDispatchTableTests):
+class PyDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle._Pickler
@@ -197,7 +198,7 @@ def get_dispatch_table(self):
return pickle.dispatch_table.copy()
-class PyChainDispatchTableTests(AbstractDispatchTableTests):
+class PyChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle._Pickler
@@ -205,7 +206,7 @@ def get_dispatch_table(self):
return collections.ChainMap({}, pickle.dispatch_table)
-class PyPicklerHookTests(AbstractHookTests):
+class PyPicklerHookTests(AbstractHookTests, unittest.TestCase):
class CustomPyPicklerClass(pickle._Pickler,
AbstractCustomPicklerClass):
pass
@@ -213,7 +214,7 @@ class CustomPyPicklerClass(pickle._Pickler,
if has_c_implementation:
- class CPickleTests(AbstractPickleModuleTests):
+ class CPickleTests(AbstractPickleModuleTests, unittest.TestCase):
from _pickle import dump, dumps, load, loads, Pickler, Unpickler
class CUnpicklerTests(PyUnpicklerTests):
@@ -241,7 +242,7 @@ class DumpPickle_CLoadPickle(PyPicklerTests):
pickler = pickle._Pickler
unpickler = _pickle.Unpickler
- class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+ class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
pickler_class = _pickle.Pickler
unpickler_class = _pickle.Unpickler
@@ -254,17 +255,17 @@ def test_issue18339(self):
unpickler.memo = {-1: None}
unpickler.memo = {1: None}
- class CDispatchTableTests(AbstractDispatchTableTests):
+ class CDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle.Pickler
def get_dispatch_table(self):
return pickle.dispatch_table.copy()
- class CChainDispatchTableTests(AbstractDispatchTableTests):
+ class CChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
pickler_class = pickle.Pickler
def get_dispatch_table(self):
return collections.ChainMap({}, pickle.dispatch_table)
- class CPicklerHookTests(AbstractHookTests):
+ class CPicklerHookTests(AbstractHookTests, unittest.TestCase):
class CustomCPicklerClass(_pickle.Pickler, AbstractCustomPicklerClass):
pass
pickler_class = CustomCPicklerClass
@@ -514,22 +515,10 @@ def test_multiprocessing_exceptions(self):
('multiprocessing.context', name))
-def test_main():
- tests = [PyPickleTests, PyUnpicklerTests, PyPicklerTests,
- PyPersPicklerTests, PyIdPersPicklerTests,
- PyDispatchTableTests, PyChainDispatchTableTests,
- CompatPickleTests, PyPicklerHookTests]
- if has_c_implementation:
- tests.extend([CPickleTests, CUnpicklerTests, CPicklerTests,
- CPersPicklerTests, CIdPersPicklerTests,
- CDumpPickle_LoadPickle, DumpPickle_CLoadPickle,
- PyPicklerUnpicklerObjectTests,
- CPicklerUnpicklerObjectTests,
- CDispatchTableTests, CChainDispatchTableTests,
- CPicklerHookTests,
- InMemoryPickleTests, SizeofTests])
- support.run_unittest(*tests)
- support.run_doctest(pickle)
+def load_tests(loader, tests, pattern):
+ tests.addTest(doctest.DocTestSuite())
+ return tests
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_pickletools.py b/Lib/test/test_pickletools.py
index f5e9ae4..d37af79 100644
--- a/Lib/test/test_pickletools.py
+++ b/Lib/test/test_pickletools.py
@@ -2,9 +2,10 @@
import pickletools
from test import support
from test.pickletester import AbstractPickleTests
+import doctest
import unittest
-class OptimizedPickleTests(AbstractPickleTests):
+class OptimizedPickleTests(AbstractPickleTests, unittest.TestCase):
def dumps(self, arg, proto=None, **kwargs):
return pickletools.optimize(pickle.dumps(arg, proto, **kwargs))
@@ -94,11 +95,10 @@ def test__all__(self):
support.check__all__(self, pickletools, not_exported=not_exported)
-def test_main():
- support.run_unittest(OptimizedPickleTests)
- support.run_unittest(MiscTestCase)
- support.run_doctest(pickletools)
+def load_tests(loader, tests, pattern):
+ tests.addTest(doctest.DocTestSuite(pickletools))
+ return tests
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py
index 6a13b36..6335e7c 100644
--- a/Lib/test/test_pipes.py
+++ b/Lib/test/test_pipes.py
@@ -3,7 +3,7 @@
import string
import unittest
import shutil
-from test.support import run_unittest, reap_children, unix_shell
+from test.support import reap_children, unix_shell
from test.support.os_helper import TESTFN, unlink
@@ -199,9 +199,10 @@ def testClone(self):
self.assertNotEqual(id(t.steps), id(u.steps))
self.assertEqual(t.debugging, u.debugging)
-def test_main():
- run_unittest(SimplePipeTests)
+
+def tearDownModule():
reap_children()
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_pkgutil.py b/Lib/test/test_pkgutil.py
index 6e3618f..800fe38 100644
--- a/Lib/test/test_pkgutil.py
+++ b/Lib/test/test_pkgutil.py
@@ -1,4 +1,3 @@
-from test.support import run_unittest
from test.support.import_helper import unload, CleanImport
from test.support.warnings_helper import check_warnings
import unittest
@@ -580,9 +579,7 @@ def test_iter_importers_avoids_emulation(self):
self.assertEqual(len(w.warnings), 0)
-def test_main():
- run_unittest(PkgutilTests, PkgutilPEP302Tests, ExtendPathTests,
- NestedNamespacePackageTest, ImportlibMigrationTests)
+def tearDownModule():
# this is necessary if test is run repeated (like when finding leaks)
import zipimport
import importlib
@@ -591,4 +588,4 @@ def test_main():
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py
index de62350..82bbb3a 100644
--- a/Lib/test/test_poll.py
+++ b/Lib/test/test_poll.py
@@ -7,7 +7,7 @@
import threading
import time
import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
from test.support import threading_helper
from test.support.os_helper import TESTFN
@@ -229,8 +229,5 @@ def test_poll_blocks_with_negative_ms(self):
os.close(w)
-def test_main():
- run_unittest(PollTests)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index 8dd6ea6..44cf523 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -9,6 +9,7 @@
import errno
import threading
+import unittest
from unittest import TestCase, skipUnless
from test import support as test_support
from test.support import hashlib_helper
@@ -538,15 +539,10 @@ def testTimeoutValue(self):
poplib.POP3(HOST, self.port, timeout=0)
-def test_main():
- tests = [TestPOP3Class, TestTimeouts,
- TestPOP3_SSLClass, TestPOP3_TLSClass]
+def setUpModule():
thread_info = threading_helper.threading_setup()
- try:
- test_support.run_unittest(*tests)
- finally:
- threading_helper.threading_cleanup(*thread_info)
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index e466688..56b72f4 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -2171,17 +2171,9 @@ def test_utime(self):
os.utime("path", dir_fd=0)
-def test_main():
- try:
- support.run_unittest(
- PosixTester,
- PosixGroupsTester,
- TestPosixSpawn,
- TestPosixSpawnP,
- TestPosixWeaklinking
- )
- finally:
- support.reap_children()
+def tearDownModule():
+ support.reap_children()
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_profile.py b/Lib/test/test_profile.py
index 7de7d52..d97fe44 100644
--- a/Lib/test/test_profile.py
+++ b/Lib/test/test_profile.py
@@ -6,7 +6,6 @@
import os
from difflib import unified_diff
from io import StringIO
-from test.support import run_unittest
from test.support.os_helper import TESTFN, unlink, temp_dir, change_cwd
from contextlib import contextmanager
@@ -156,12 +155,10 @@ def silent():
finally:
sys.stdout = stdout
-def test_main():
- run_unittest(ProfileTest)
def main():
if '-r' not in sys.argv:
- test_main()
+ unittest.main()
else:
regenerate_expected_output(__file__, ProfileTest)
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index 0afa3e6..44c1698 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -1571,20 +1571,11 @@ def test_sys_path_adjustment_when_curdir_already_included(self):
self.assertIsNone(self._get_revised_path(trailing_argv0dir))
-@threading_helper.reap_threads
-def test_main():
- try:
- test.support.run_unittest(PydocDocTest,
- PydocImportTest,
- TestDescriptions,
- PydocServerTest,
- PydocUrlHandlerTest,
- TestHelper,
- PydocWithMetaClasses,
- TestInternalUtilities,
- )
- finally:
- reap_children()
+def setUpModule():
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
+ unittest.addModuleCleanup(reap_children)
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py
index 508b739..9bb5181 100644
--- a/Lib/test/test_queue.py
+++ b/Lib/test/test_queue.py
@@ -6,6 +6,7 @@
import time
import unittest
import weakref
+from test.support import gc_collect
from test.support import import_helper
from test.support import threading_helper
@@ -590,6 +591,7 @@ class C:
q.put(C())
for i in range(N):
wr = weakref.ref(q.get())
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
diff --git a/Lib/test/test_raise.py b/Lib/test/test_raise.py
index 57da0e1..8dc62a9 100644
--- a/Lib/test/test_raise.py
+++ b/Lib/test/test_raise.py
@@ -438,6 +438,7 @@ def f():
f()
def test_3611(self):
+ import gc
# A re-raised exception in a __del__ caused the __context__
# to be cleared
class C:
@@ -451,9 +452,11 @@ def f():
x = C()
try:
try:
- x.x
+ f.x
except AttributeError:
+ # make x.__del__ trigger
del x
+ gc.collect() # For PyPy or other GCs.
raise TypeError
except Exception as e:
self.assertNotEqual(e.__context__, None)
diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py
index e8fb8d2..59dbef9 100644
--- a/Lib/test/test_readline.py
+++ b/Lib/test/test_readline.py
@@ -255,7 +255,9 @@ def display(substitution, matches, longest_match_length):
self.assertIn(b"matches ['t\\xebnt', 't\\xebxt']\r\n", output)
expected = br"'[\xefnserted]|t\xebxt[after]'"
self.assertIn(b"result " + expected + b"\r\n", output)
- self.assertIn(b"history " + expected + b"\r\n", output)
+ # bpo-45195: Sometimes, the newline character is not written at the
+ # end, so don't expect it in the output.
+ self.assertIn(b"history " + expected, output)
# We have 2 reasons to skip this test:
# - readline: history size was added in 6.0
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index d909e31..f2642c6 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -174,8 +174,5 @@ def __getitem__(self, key):
limits)
-def test_main(verbose=None):
- support.run_unittest(ResourceTest)
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py
index 801143f..eda4e6a 100644
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
@@ -24,7 +24,7 @@
from urllib.error import URLError
import urllib.request
from test.support import os_helper
-from test.support import findfile, run_unittest
+from test.support import findfile
from test.support.os_helper import FakePath, TESTFN
@@ -1506,22 +1506,5 @@ def characters(self, content):
self.assertEqual(self.char_index, 2)
-def test_main():
- run_unittest(MakeParserTest,
- ParseTest,
- SaxutilsTest,
- PrepareInputSourceTest,
- StringXmlgenTest,
- BytesXmlgenTest,
- WriterXmlgenTest,
- StreamWriterXmlgenTest,
- StreamReaderWriterXmlgenTest,
- ExpatReaderTest,
- ErrorReportingTest,
- XmlReaderTest,
- LexicalHandlerTest,
- CDATAHandlerTest)
-
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 4239b26..59d5912 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -2,6 +2,7 @@
import weakref
from test.support import check_syntax_error, cpython_only
+from test.support import gc_collect
class ScopeTests(unittest.TestCase):
@@ -422,6 +423,7 @@ def f2():
for i in range(100):
f1()
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(Foo.count, 0)
def testClassAndGlobal(self):
@@ -754,6 +756,7 @@ def dig(self):
tester.dig()
ref = weakref.ref(tester)
del tester
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(ref())
diff --git a/Lib/test/test_selectors.py b/Lib/test/test_selectors.py
index 851b1fc..fe6b725 100644
--- a/Lib/test/test_selectors.py
+++ b/Lib/test/test_selectors.py
@@ -49,7 +49,7 @@ def find_ready_matching(ready, flag):
return match
-class BaseSelectorTestCase(unittest.TestCase):
+class BaseSelectorTestCase:
def make_socketpair(self):
rd, wr = socketpair()
@@ -493,26 +493,28 @@ def test_above_fd_setsize(self):
self.assertEqual(NUM_FDS // 2, len(fds))
-class DefaultSelectorTestCase(BaseSelectorTestCase):
+class DefaultSelectorTestCase(BaseSelectorTestCase, unittest.TestCase):
SELECTOR = selectors.DefaultSelector
-class SelectSelectorTestCase(BaseSelectorTestCase):
+class SelectSelectorTestCase(BaseSelectorTestCase, unittest.TestCase):
SELECTOR = selectors.SelectSelector
@unittest.skipUnless(hasattr(selectors, 'PollSelector'),
"Test needs selectors.PollSelector")
-class PollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class PollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+ unittest.TestCase):
SELECTOR = getattr(selectors, 'PollSelector', None)
@unittest.skipUnless(hasattr(selectors, 'EpollSelector'),
"Test needs selectors.EpollSelector")
-class EpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class EpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+ unittest.TestCase):
SELECTOR = getattr(selectors, 'EpollSelector', None)
@@ -529,7 +531,8 @@ def test_register_file(self):
@unittest.skipUnless(hasattr(selectors, 'KqueueSelector'),
"Test needs selectors.KqueueSelector)")
-class KqueueSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class KqueueSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+ unittest.TestCase):
SELECTOR = getattr(selectors, 'KqueueSelector', None)
@@ -561,19 +564,15 @@ def test_empty_select_timeout(self):
@unittest.skipUnless(hasattr(selectors, 'DevpollSelector'),
"Test needs selectors.DevpollSelector")
-class DevpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class DevpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+ unittest.TestCase):
SELECTOR = getattr(selectors, 'DevpollSelector', None)
-
-def test_main():
- tests = [DefaultSelectorTestCase, SelectSelectorTestCase,
- PollSelectorTestCase, EpollSelectorTestCase,
- KqueueSelectorTestCase, DevpollSelectorTestCase]
- support.run_unittest(*tests)
+def tearDownModule():
support.reap_children()
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index b1fab0f..29bb39d 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -593,6 +593,7 @@ def test_weakref(self):
p = weakref.proxy(s)
self.assertEqual(str(p), str(s))
s = None
+ support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, str, p)
def test_rich_compare(self):
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 12af22f..5c15648 100755
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -199,7 +199,7 @@ def setUp(self):
self.serv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
self.port = socket_helper.bind_port(self.serv)
-class ThreadSafeCleanupTestCase(unittest.TestCase):
+class ThreadSafeCleanupTestCase:
"""Subclass of unittest.TestCase with thread-safe cleanup methods.
This subclass protects the addCleanup() and doCleanups() methods
@@ -326,9 +326,7 @@ def _testFoo(self):
def __init__(self):
# Swap the true setup function
self.__setUp = self.setUp
- self.__tearDown = self.tearDown
self.setUp = self._setUp
- self.tearDown = self._tearDown
def serverExplicitReady(self):
"""This method allows the server to explicitly indicate that
@@ -340,6 +338,7 @@ def serverExplicitReady(self):
def _setUp(self):
self.wait_threads = threading_helper.wait_threads_exit()
self.wait_threads.__enter__()
+ self.addCleanup(self.wait_threads.__exit__, None, None, None)
self.server_ready = threading.Event()
self.client_ready = threading.Event()
@@ -347,6 +346,11 @@ def _setUp(self):
self.queue = queue.Queue(1)
self.server_crashed = False
+ def raise_queued_exception():
+ if self.queue.qsize():
+ raise self.queue.get()
+ self.addCleanup(raise_queued_exception)
+
# Do some munging to start the client test.
methodname = self.id()
i = methodname.rfind('.')
@@ -363,15 +367,7 @@ def _setUp(self):
finally:
self.server_ready.set()
self.client_ready.wait()
-
- def _tearDown(self):
- self.__tearDown()
- self.done.wait()
- self.wait_threads.__exit__(None, None, None)
-
- if self.queue.qsize():
- exc = self.queue.get()
- raise exc
+ self.addCleanup(self.done.wait)
def clientRun(self, test_func):
self.server_ready.wait()
@@ -870,6 +866,7 @@ def test_weakref(self):
p = proxy(s)
self.assertEqual(p.fileno(), s.fileno())
s = None
+ support.gc_collect() # For PyPy or other GCs.
try:
p.fileno()
except ReferenceError:
@@ -4416,7 +4413,7 @@ class RecvmsgIntoSCMRightsStreamTest(RecvmsgIntoMixin, SCMRightsTest,
# threads alive during the test so that the OS cannot deliver the
# signal to the wrong one.
-class InterruptedTimeoutBase(unittest.TestCase):
+class InterruptedTimeoutBase:
# Base class for interrupted send/receive tests. Installs an
# empty handler for SIGALRM and removes it on teardown, along with
# any scheduled alarms.
@@ -6175,6 +6172,7 @@ def _testWithTimeoutTriggeredSend(self):
def testWithTimeoutTriggeredSend(self):
conn = self.accept_conn()
conn.recv(88192)
+ time.sleep(1)
# errors
@@ -6494,13 +6492,6 @@ def test_dualstack_ipv6_family(self):
class CreateServerFunctionalTest(unittest.TestCase):
timeout = support.LOOPBACK_TIMEOUT
- def setUp(self):
- self.thread = None
-
- def tearDown(self):
- if self.thread is not None:
- self.thread.join(self.timeout)
-
def echo_server(self, sock):
def run(sock):
with sock:
@@ -6514,8 +6505,9 @@ def run(sock):
event = threading.Event()
sock.settimeout(self.timeout)
- self.thread = threading.Thread(target=run, args=(sock, ))
- self.thread.start()
+ thread = threading.Thread(target=run, args=(sock, ))
+ thread.start()
+ self.addCleanup(thread.join, self.timeout)
event.set()
def echo_client(self, addr, family):
@@ -6603,84 +6595,10 @@ def close_fds(fds):
self.assertEqual(data, str(index).encode())
-def test_main():
- tests = [GeneralModuleTests, BasicTCPTest, TCPCloserTest, TCPTimeoutTest,
- TestExceptions, BufferIOTest, BasicTCPTest2, BasicUDPTest,
- UDPTimeoutTest, CreateServerTest, CreateServerFunctionalTest,
- SendRecvFdsTests]
-
- tests.extend([
- NonBlockingTCPTests,
- FileObjectClassTestCase,
- UnbufferedFileObjectClassTestCase,
- LineBufferedFileObjectClassTestCase,
- SmallBufferedFileObjectClassTestCase,
- UnicodeReadFileObjectClassTestCase,
- UnicodeWriteFileObjectClassTestCase,
- UnicodeReadWriteFileObjectClassTestCase,
- NetworkConnectionNoServer,
- NetworkConnectionAttributesTest,
- NetworkConnectionBehaviourTest,
- ContextManagersTest,
- InheritanceTest,
- NonblockConstantTest
- ])
- tests.append(BasicSocketPairTest)
- tests.append(TestUnixDomain)
- tests.append(TestLinuxAbstractNamespace)
- tests.extend([TIPCTest, TIPCThreadableTest])
- tests.extend([BasicCANTest, CANTest])
- tests.extend([BasicRDSTest, RDSTest])
- tests.append(LinuxKernelCryptoAPI)
- tests.append(BasicQIPCRTRTest)
- tests.extend([
- BasicVSOCKTest,
- ThreadedVSOCKSocketStreamTest,
- ])
- tests.append(BasicBluetoothTest)
- tests.extend([
- CmsgMacroTests,
- SendmsgUDPTest,
- RecvmsgUDPTest,
- RecvmsgIntoUDPTest,
- SendmsgUDP6Test,
- RecvmsgUDP6Test,
- RecvmsgRFC3542AncillaryUDP6Test,
- RecvmsgIntoRFC3542AncillaryUDP6Test,
- RecvmsgIntoUDP6Test,
- SendmsgUDPLITETest,
- RecvmsgUDPLITETest,
- RecvmsgIntoUDPLITETest,
- SendmsgUDPLITE6Test,
- RecvmsgUDPLITE6Test,
- RecvmsgRFC3542AncillaryUDPLITE6Test,
- RecvmsgIntoRFC3542AncillaryUDPLITE6Test,
- RecvmsgIntoUDPLITE6Test,
- SendmsgTCPTest,
- RecvmsgTCPTest,
- RecvmsgIntoTCPTest,
- SendmsgSCTPStreamTest,
- RecvmsgSCTPStreamTest,
- RecvmsgIntoSCTPStreamTest,
- SendmsgUnixStreamTest,
- RecvmsgUnixStreamTest,
- RecvmsgIntoUnixStreamTest,
- RecvmsgSCMRightsStreamTest,
- RecvmsgIntoSCMRightsStreamTest,
- # These are slow when setitimer() is not available
- InterruptedRecvTimeoutTest,
- InterruptedSendTimeoutTest,
- TestSocketSharing,
- SendfileUsingSendTest,
- SendfileUsingSendfileTest,
- ])
- tests.append(TestMSWindowsTCPFlags)
- tests.append(TestMacOSTCPFlags)
-
+def setUpModule():
thread_info = threading_helper.threading_setup()
- support.run_unittest(*tests)
- threading_helper.threading_cleanup(*thread_info)
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index f4a8470..a485f7d 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -2343,6 +2343,7 @@ def test_bio_read_write_data(self):
self.ssl_io_loop(sock, incoming, outgoing, sslobj.unwrap)
+@support.requires_resource('network')
class NetworkedTests(unittest.TestCase):
def test_timeout_connect_ex(self):
@@ -4869,7 +4870,7 @@ def sni_cb(sock, servername, ctx):
s.connect((HOST, server.port))
-def test_main(verbose=False):
+def setUpModule():
if support.verbose:
plats = {
'Mac': platform.mac_ver,
@@ -4900,20 +4901,9 @@ def test_main(verbose=False):
if not os.path.exists(filename):
raise support.TestFailed("Can't read certificate file %r" % filename)
- tests = [
- ContextTests, BasicSocketTests, SSLErrorTests, MemoryBIOTests,
- SSLObjectTests, SimpleBackgroundTests, ThreadedTests,
- TestPostHandshakeAuth, TestSSLDebug
- ]
-
- if support.is_resource_enabled('network'):
- tests.append(NetworkedTests)
-
thread_info = threading_helper.threading_setup()
- try:
- support.run_unittest(*tests)
- finally:
- threading_helper.threading_cleanup(*thread_info)
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py
index 436c420..adccfad 100644
--- a/Lib/test/test_statistics.py
+++ b/Lib/test/test_statistics.py
@@ -1247,20 +1247,14 @@ def test_empty_data(self):
# Override test for empty data.
for data in ([], (), iter([])):
self.assertEqual(self.func(data), (int, Fraction(0), 0))
- self.assertEqual(self.func(data, 23), (int, Fraction(23), 0))
- self.assertEqual(self.func(data, 2.3), (float, Fraction(2.3), 0))
def test_ints(self):
self.assertEqual(self.func([1, 5, 3, -4, -8, 20, 42, 1]),
(int, Fraction(60), 8))
- self.assertEqual(self.func([4, 2, 3, -8, 7], 1000),
- (int, Fraction(1008), 5))
def test_floats(self):
self.assertEqual(self.func([0.25]*20),
(float, Fraction(5.0), 20))
- self.assertEqual(self.func([0.125, 0.25, 0.5, 0.75], 1.5),
- (float, Fraction(3.125), 4))
def test_fractions(self):
self.assertEqual(self.func([Fraction(1, 1000)]*500),
@@ -1281,14 +1275,6 @@ def test_compare_with_math_fsum(self):
data = [random.uniform(-100, 1000) for _ in range(1000)]
self.assertApproxEqual(float(self.func(data)[1]), math.fsum(data), rel=2e-16)
- def test_start_argument(self):
- # Test that the optional start argument works correctly.
- data = [random.uniform(1, 1000) for _ in range(100)]
- t = self.func(data)[1]
- self.assertEqual(t+42, self.func(data, 42)[1])
- self.assertEqual(t-23, self.func(data, -23)[1])
- self.assertEqual(t+Fraction(1e20), self.func(data, 1e20)[1])
-
def test_strings_fail(self):
# Sum of strings should fail.
self.assertRaises(TypeError, self.func, [1, 2, 3], '999')
@@ -2077,6 +2063,13 @@ def test_decimals(self):
self.assertEqual(result, exact)
self.assertIsInstance(result, Decimal)
+ def test_accuracy_bug_20499(self):
+ data = [0, 0, 1]
+ exact = 2 / 9
+ result = self.func(data)
+ self.assertEqual(result, exact)
+ self.assertIsInstance(result, float)
+
class TestVariance(VarianceStdevMixin, NumericTestCase, UnivariateTypeMixin):
# Tests for sample variance.
@@ -2117,6 +2110,13 @@ def test_center_not_at_mean(self):
self.assertEqual(self.func(data), 0.5)
self.assertEqual(self.func(data, xbar=2.0), 1.0)
+ def test_accuracy_bug_20499(self):
+ data = [0, 0, 2]
+ exact = 4 / 3
+ result = self.func(data)
+ self.assertEqual(result, exact)
+ self.assertIsInstance(result, float)
+
class TestPStdev(VarianceStdevMixin, NumericTestCase):
# Tests for population standard deviation.
def setUp(self):
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index f0f0e6f..7bb0492 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -3022,6 +3022,7 @@ def test_leak_fast_process_del_killed(self):
pid = p.pid
with warnings_helper.check_warnings(('', ResourceWarning)):
p = None
+ support.gc_collect() # For PyPy or other GCs.
os.kill(pid, signal.SIGKILL)
if mswindows:
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 11ca0c2..7929098 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -709,9 +709,5 @@ def test_print_warning(self):
# SuppressCrashReport
-def test_main():
- tests = [TestSupport]
- support.run_unittest(*tests)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 1fd5247..8717def 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -1069,6 +1069,20 @@ def __del__(self):
self.assertIn("del is broken", report)
self.assertTrue(report.endswith("\n"))
+ def test_original_unraisablehook_exception_qualname(self):
+ class A:
+ class B:
+ class X(Exception):
+ pass
+
+ with test.support.captured_stderr() as stderr, \
+ test.support.swap_attr(sys, 'unraisablehook',
+ sys.__unraisablehook__):
+ expected = self.write_unraisable_exc(
+ A.B.X(), "msg", "obj");
+ report = stderr.getvalue()
+ testName = 'test_original_unraisablehook_exception_qualname'
+ self.assertIn(f"{testName}.<locals>.A.B.X", report)
def test_original_unraisablehook_wrong_type(self):
exc = ValueError(42)
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index cfdda24..e4b5c52 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -20,6 +20,10 @@
except ImportError:
gzip = None
try:
+ import zlib
+except ImportError:
+ zlib = None
+try:
import bz2
except ImportError:
bz2 = None
@@ -687,6 +691,16 @@ def test_parallel_iteration(self):
self.assertEqual(m1.offset, m2.offset)
self.assertEqual(m1.get_info(), m2.get_info())
+ @unittest.skipIf(zlib is None, "requires zlib")
+ def test_zlib_error_does_not_leak(self):
+ # bpo-39039: tarfile.open allowed zlib exceptions to bubble up when
+ # parsing certain types of invalid data
+ with unittest.mock.patch("tarfile.TarInfo.fromtarfile") as mock:
+ mock.side_effect = zlib.error
+ with self.assertRaises(tarfile.ReadError):
+ tarfile.open(self.tarname)
+
+
class MiscReadTest(MiscReadTestBase, unittest.TestCase):
test_fail_comp = None
diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py
index 6e5ef09..30f0431 100644
--- a/Lib/test/test_tcl.py
+++ b/Lib/test/test_tcl.py
@@ -804,8 +804,5 @@ def setUpModule():
print('patchlevel =', tcl.call('info', 'patchlevel'))
-def test_main():
- support.run_unittest(TclTest, TkinterTest, BigmemTclTest)
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py
index 3a3f6a9..f1d4837 100644
--- a/Lib/test/test_tempfile.py
+++ b/Lib/test/test_tempfile.py
@@ -430,6 +430,7 @@ def test_choose_directory(self):
self.do_create(dir=dir).write(b"blat")
self.do_create(dir=pathlib.Path(dir)).write(b"blat")
finally:
+ support.gc_collect() # For PyPy or other GCs.
os.rmdir(dir)
def test_file_mode(self):
@@ -880,6 +881,8 @@ def test_many(self):
extant = list(range(TEST_FILES))
for i in extant:
extant[i] = self.do_create(pre="aa")
+ del extant
+ support.gc_collect() # For PyPy or other GCs.
## def test_warning(self):
## # mktemp issues a warning when used
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index 62b57fa..4ae8a83 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -132,6 +132,7 @@ def task():
del task
while not done:
time.sleep(POLL_SLEEP)
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(thread._count(), orig)
def test_unraisable_exception(self):
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index c51de6f..c54806e 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -928,6 +928,39 @@ def test_debug_deprecation(self):
b'is deprecated and will be removed in Python 3.12')
self.assertIn(msg, err)
+ def test_import_from_another_thread(self):
+ # bpo-1596321: If the threading module is first import from a thread
+ # different than the main thread, threading._shutdown() must handle
+ # this case without logging an error at Python exit.
+ code = textwrap.dedent('''
+ import _thread
+ import sys
+
+ event = _thread.allocate_lock()
+ event.acquire()
+
+ def import_threading():
+ import threading
+ event.release()
+
+ if 'threading' in sys.modules:
+ raise Exception('threading is already imported')
+
+ _thread.start_new_thread(import_threading, ())
+
+ # wait until the threading module is imported
+ event.acquire()
+ event.release()
+
+ if 'threading' not in sys.modules:
+ raise Exception('threading is not imported')
+
+ # don't wait until the thread completes
+ ''')
+ rc, out, err = assert_python_ok("-c", code)
+ self.assertEqual(out, b'')
+ self.assertEqual(err, b'')
+
class ThreadJoinOnShutdown(BaseTestCase):
diff --git a/Lib/test/test_threading_local.py b/Lib/test/test_threading_local.py
index 9862094..13facb5 100644
--- a/Lib/test/test_threading_local.py
+++ b/Lib/test/test_threading_local.py
@@ -37,7 +37,7 @@ def _local_refs(self, n):
t.join()
del t
- gc.collect()
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(weaklist), n)
# XXX _threading_local keeps the local of the last stopped thread alive.
@@ -46,7 +46,7 @@ def _local_refs(self, n):
# Assignment to the same thread local frees it sometimes (!)
local.someothervar = None
- gc.collect()
+ support.gc_collect() # For PyPy or other GCs.
deadlist = [weak for weak in weaklist if weak() is None]
self.assertIn(len(deadlist), (n-1, n), (n, len(deadlist)))
@@ -89,7 +89,7 @@ def f():
# 2) GC the cycle (triggers threadmodule.c::local_clear
# before local_dealloc)
del cycle
- gc.collect()
+ support.gc_collect() # For PyPy or other GCs.
e1.set()
e2.wait()
@@ -190,7 +190,7 @@ class X:
x.local.x = x
wr = weakref.ref(x)
del x
- gc.collect()
+ support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py
index 15e8078..bac82b8 100644
--- a/Lib/test/test_threadsignals.py
+++ b/Lib/test/test_threadsignals.py
@@ -4,7 +4,6 @@
import signal
import os
import sys
-from test import support
from test.support import threading_helper
import _thread as thread
import time
@@ -231,7 +230,7 @@ def send_signals():
signal.signal(signal.SIGUSR1, old_handler)
-def test_main():
+def setUpModule():
global signal_blackboard
signal_blackboard = { signal.SIGUSR1 : {'tripped': 0, 'tripped_by': 0 },
@@ -239,10 +238,8 @@ def test_main():
signal.SIGALRM : {'tripped': 0, 'tripped_by': 0 } }
oldsigs = registerSignals(handle_signals, handle_signals, handle_signals)
- try:
- support.run_unittest(ThreadSignals)
- finally:
- registerSignals(*oldsigs)
+ unittest.addModuleCleanup(registerSignals, *oldsigs)
+
if __name__ == '__main__':
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_timeout.py b/Lib/test/test_timeout.py
index 823d5c3..70a0175 100644
--- a/Lib/test/test_timeout.py
+++ b/Lib/test/test_timeout.py
@@ -290,13 +290,9 @@ def testRecvfromTimeout(self):
self._sock_operation(1, 1.5, 'recvfrom', 1024)
-def test_main():
+def setUpModule():
support.requires('network')
- support.run_unittest(
- CreationTestCase,
- TCPTimeoutTestCase,
- UDPTimeoutTestCase,
- )
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
index c25628b..fabe5d0 100644
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -794,6 +794,19 @@ def test_syntax_error_various_offsets(self):
exp = "\n".join(expected)
self.assertEqual(exp, err)
+ def test_format_exception_only_qualname(self):
+ class A:
+ class B:
+ class X(Exception):
+ def __str__(self):
+ return "I am X"
+ pass
+ err = self.get_report(A.B.X())
+ str_value = 'I am X'
+ str_name = '.'.join([A.B.X.__module__, A.B.X.__qualname__])
+ exp = "%s: %s\n" % (str_name, str_value)
+ self.assertEqual(exp, err)
+
class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase):
#
diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py
index 5566567..82be98d 100644
--- a/Lib/test/test_tracemalloc.py
+++ b/Lib/test/test_tracemalloc.py
@@ -1082,15 +1082,5 @@ def test_stop_untrack(self):
self.untrack()
-def test_main():
- support.run_unittest(
- TestTraceback,
- TestTracemallocEnabled,
- TestSnapshot,
- TestFilters,
- TestCommandLine,
- TestCAPI,
- )
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index c84ff0f..762c0cc 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -2969,7 +2969,7 @@ async def __aexit__(self, etype, eval, tb):
# Definitions needed for features introduced in Python 3.6
-from test import ann_module, ann_module2, ann_module3
+from test import ann_module, ann_module2, ann_module3, ann_module5, ann_module6
from typing import AsyncContextManager
class A:
@@ -3333,6 +3333,22 @@ class C(Generic[T]): pass
(Concatenate[int, P], int))
self.assertEqual(get_args(list | str), (list, str))
+ def test_forward_ref_and_final(self):
+ # https://bugs.python.org/issue45166
+ hints = get_type_hints(ann_module5)
+ self.assertEqual(hints, {'name': Final[str]})
+
+ hints = get_type_hints(ann_module5.MyClass)
+ self.assertEqual(hints, {'value': Final})
+
+ def test_top_level_class_var(self):
+ # https://bugs.python.org/issue45166
+ with self.assertRaisesRegex(
+ TypeError,
+ r'typing.ClassVar\[int\] is not valid as type argument',
+ ):
+ get_type_hints(ann_module6)
+
class CollectionsAbcTests(BaseTestCase):
@@ -4065,6 +4081,19 @@ def test_namedtuple_special_keyword_names(self):
self.assertEqual(a.typename, 'foo')
self.assertEqual(a.fields, [('bar', tuple)])
+ def test_empty_namedtuple(self):
+ NT = NamedTuple('NT')
+
+ class CNT(NamedTuple):
+ pass # empty body
+
+ for struct in [NT, CNT]:
+ with self.subTest(struct=struct):
+ self.assertEqual(struct._fields, ())
+ self.assertEqual(struct._field_defaults, {})
+ self.assertEqual(struct.__annotations__, {})
+ self.assertIsInstance(struct(), struct)
+
def test_namedtuple_errors(self):
with self.assertRaises(TypeError):
NamedTuple.__new__()
diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py
index e397949..80c22c6 100644
--- a/Lib/test/test_unicode_file.py
+++ b/Lib/test/test_unicode_file.py
@@ -6,7 +6,6 @@
import unicodedata
import unittest
-from test.support import run_unittest
from test.support.os_helper import (rmtree, change_cwd, TESTFN_UNICODE,
TESTFN_UNENCODABLE, create_empty_file)
@@ -136,8 +135,6 @@ def test_directories(self):
self._do_directory(TESTFN_UNENCODABLE+ext,
TESTFN_UNENCODABLE+ext)
-def test_main():
- run_unittest(__name__)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_unicode_file_functions.py b/Lib/test/test_unicode_file_functions.py
index 7ef11aa..54916dec4 100644
--- a/Lib/test/test_unicode_file_functions.py
+++ b/Lib/test/test_unicode_file_functions.py
@@ -5,7 +5,6 @@
import unittest
import warnings
from unicodedata import normalize
-from test import support
from test.support import os_helper
@@ -185,15 +184,5 @@ class UnicodeNFKDFileTests(UnicodeFileTests):
normal_form = 'NFKD'
-def test_main():
- support.run_unittest(
- UnicodeFileTests,
- UnicodeNFCFileTests,
- UnicodeNFDFileTests,
- UnicodeNFKCFileTests,
- UnicodeNFKDFileTests,
- )
-
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index bfc3ded..1079c7d 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -3,14 +3,14 @@
from test import support
-def test_main():
- # used by regrtest
- support.run_unittest(unittest.test.suite())
- support.reap_children()
-
def load_tests(*_):
# used by unittest
return unittest.test.suite()
+
+def tearDownModule():
+ support.reap_children()
+
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
index ebb43c3..36fb05d 100644
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -661,17 +661,10 @@ def test_line_iteration(self):
self.assertEqual(index + 1, len(lines))
-threads_key = None
-
def setUpModule():
- # Store the threading_setup in a key and ensure that it is cleaned up
- # in the tearDown
- global threads_key
- threads_key = threading_helper.threading_setup()
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
-def tearDownModule():
- if threads_key:
- threading_helper.threading_cleanup(*threads_key)
if __name__ == "__main__":
unittest.main()
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
index 1a5314c..5a3e59c 100644
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -12,6 +12,7 @@
from test import support
from test.support import script_helper, ALWAYS_EQ
+from test.support import gc_collect
# Used in ReferencesTestCase.test_ref_created_during_del() .
ref_from_del = None
@@ -135,6 +136,7 @@ def test_multiple_callbacks(self):
ref1 = weakref.ref(o, self.callback)
ref2 = weakref.ref(o, self.callback)
del o
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(ref1(), "expected reference to be invalidated")
self.assertIsNone(ref2(), "expected reference to be invalidated")
self.assertEqual(self.cbcalled, 2,
@@ -168,13 +170,16 @@ def test_proxy_ref(self):
ref1 = weakref.proxy(o, self.callback)
ref2 = weakref.proxy(o, self.callback)
del o
+ gc_collect() # For PyPy or other GCs.
def check(proxy):
proxy.bar
self.assertRaises(ReferenceError, check, ref1)
self.assertRaises(ReferenceError, check, ref2)
- self.assertRaises(ReferenceError, bool, weakref.proxy(C()))
+ ref3 = weakref.proxy(C())
+ gc_collect() # For PyPy or other GCs.
+ self.assertRaises(ReferenceError, bool, ref3)
self.assertEqual(self.cbcalled, 2)
def check_basic_ref(self, factory):
@@ -191,6 +196,7 @@ def check_basic_callback(self, factory):
o = factory()
ref = weakref.ref(o, self.callback)
del o
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(self.cbcalled, 1,
"callback did not properly set 'cbcalled'")
self.assertIsNone(ref(),
@@ -215,6 +221,7 @@ def test_ref_reuse(self):
self.assertEqual(weakref.getweakrefcount(o), 2,
"wrong weak ref count for object")
del proxy
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(weakref.getweakrefcount(o), 1,
"wrong weak ref count for object after deleting proxy")
@@ -480,6 +487,7 @@ def test_getweakrefcount(self):
"got wrong number of weak reference objects")
del ref1, ref2, proxy1, proxy2
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(weakref.getweakrefcount(o), 0,
"weak reference objects not unlinked from"
" referent when discarded.")
@@ -493,6 +501,7 @@ def test_getweakrefs(self):
ref1 = weakref.ref(o, self.callback)
ref2 = weakref.ref(o, self.callback)
del ref1
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(weakref.getweakrefs(o), [ref2],
"list of refs does not match")
@@ -500,10 +509,12 @@ def test_getweakrefs(self):
ref1 = weakref.ref(o, self.callback)
ref2 = weakref.ref(o, self.callback)
del ref2
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(weakref.getweakrefs(o), [ref1],
"list of refs does not match")
del ref1
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(weakref.getweakrefs(o), [],
"list of refs not cleared")
@@ -989,6 +1000,7 @@ def __call__(self):
self.assertTrue(mr.called)
self.assertEqual(mr.value, 24)
del o
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(mr())
self.assertTrue(mr.called)
@@ -1291,15 +1303,18 @@ def test_weak_values(self):
del items1, items2
self.assertEqual(len(dict), self.COUNT)
del objects[0]
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(len(dict), self.COUNT - 1,
"deleting object did not cause dictionary update")
del objects, o
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(len(dict), 0,
"deleting the values did not clear the dictionary")
# regression on SF bug #447152:
dict = weakref.WeakValueDictionary()
self.assertRaises(KeyError, dict.__getitem__, 1)
dict[2] = C()
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(KeyError, dict.__getitem__, 2)
def test_weak_keys(self):
@@ -1320,9 +1335,11 @@ def test_weak_keys(self):
del items1, items2
self.assertEqual(len(dict), self.COUNT)
del objects[0]
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(len(dict), (self.COUNT - 1),
"deleting object did not cause dictionary update")
del objects, o
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(len(dict), 0,
"deleting the keys did not clear the dictionary")
o = Object(42)
@@ -1821,6 +1838,7 @@ def __eq__(self, other):
for o in objs:
count += 1
del d[o]
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(len(d), 0)
self.assertEqual(count, 2)
@@ -2129,6 +2147,7 @@ def test_atexit(self):
libreftest = """ Doctest for examples in the library reference: weakref.rst
+>>> from test.support import gc_collect
>>> import weakref
>>> class Dict(dict):
... pass
@@ -2148,6 +2167,7 @@ def test_atexit(self):
>>> o is o2
True
>>> del o, o2
+>>> gc_collect() # For PyPy or other GCs.
>>> print(r())
None
@@ -2200,6 +2220,7 @@ def test_atexit(self):
>>> id2obj(a_id) is a
True
>>> del a
+>>> gc_collect() # For PyPy or other GCs.
>>> try:
... id2obj(a_id)
... except KeyError:
diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py
index 49a9b5c..9b31d5f 100644
--- a/Lib/test/test_weakset.py
+++ b/Lib/test/test_weakset.py
@@ -5,6 +5,7 @@
from collections.abc import Set, MutableSet
import gc
import contextlib
+from test import support
class Foo:
@@ -48,6 +49,7 @@ def test_len(self):
self.assertEqual(len(self.s), len(self.d))
self.assertEqual(len(self.fs), 1)
del self.obj
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(self.fs), 0)
def test_contains(self):
@@ -57,6 +59,7 @@ def test_contains(self):
self.assertNotIn(1, self.s)
self.assertIn(self.obj, self.fs)
del self.obj
+ support.gc_collect() # For PyPy or other GCs.
self.assertNotIn(ustr('F'), self.fs)
def test_union(self):
@@ -215,6 +218,7 @@ def test_add(self):
self.assertEqual(self.s, dup)
self.assertRaises(TypeError, self.s.add, [])
self.fs.add(Foo())
+ support.gc_collect() # For PyPy or other GCs.
self.assertTrue(len(self.fs) == 1)
self.fs.add(self.obj)
self.assertTrue(len(self.fs) == 1)
@@ -406,6 +410,7 @@ def test_len_cycles(self):
n1 = len(s)
del it
gc.collect()
+ gc.collect() # For PyPy or other GCs.
n2 = len(s)
# one item may be kept alive inside the iterator
self.assertIn(n1, (0, 1))
diff --git a/Lib/test/test_winreg.py b/Lib/test/test_winreg.py
index e7aa615..8157c2d 100644
--- a/Lib/test/test_winreg.py
+++ b/Lib/test/test_winreg.py
@@ -3,7 +3,6 @@
import os, sys, errno
import unittest
-from test import support
from test.support import import_helper
import threading
from platform import machine, win32_edition
@@ -490,12 +489,9 @@ def test_exception_numbers(self):
with self.assertRaises(FileNotFoundError) as ctx:
QueryValue(HKEY_CLASSES_ROOT, 'some_value_that_does_not_exist')
-def test_main():
- support.run_unittest(LocalWinregTests, RemoteWinregTests,
- Win64WinregTests)
if __name__ == "__main__":
if not REMOTE_NAME:
print("Remote registry calls can be tested using",
"'test_winreg.py --remote \\\\machine_name'")
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index 553529a..5a8824a 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -26,7 +26,7 @@
from test import support
from test.support import os_helper
from test.support import warnings_helper
-from test.support import findfile, gc_collect, swap_attr
+from test.support import findfile, gc_collect, swap_attr, swap_item
from test.support.import_helper import import_fresh_module
from test.support.os_helper import TESTFN
@@ -167,12 +167,11 @@ def setUpClass(cls):
cls.modules = {pyET, ET}
def pickleRoundTrip(self, obj, name, dumper, loader, proto):
- save_m = sys.modules[name]
try:
- sys.modules[name] = dumper
- temp = pickle.dumps(obj, proto)
- sys.modules[name] = loader
- result = pickle.loads(temp)
+ with swap_item(sys.modules, name, dumper):
+ temp = pickle.dumps(obj, proto)
+ with swap_item(sys.modules, name, loader):
+ result = pickle.loads(temp)
except pickle.PicklingError as pe:
# pyET must be second, because pyET may be (equal to) ET.
human = dict([(ET, "cET"), (pyET, "pyET")])
@@ -180,8 +179,6 @@ def pickleRoundTrip(self, obj, name, dumper, loader, proto):
% (obj,
human.get(dumper, dumper),
human.get(loader, loader))) from pe
- finally:
- sys.modules[name] = save_m
return result
def assertEqualElements(self, alice, bob):
@@ -2480,6 +2477,7 @@ def wref_cb(w):
wref = weakref.ref(e, wref_cb)
self.assertEqual(wref().tag, 'e')
del e
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(flag, True)
self.assertEqual(wref(), None)
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index a9f6746..85e27ad 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -1504,16 +1504,10 @@ def test_xmlrpcserver_has_use_builtin_types_flag(self):
self.assertTrue(server.use_builtin_types)
-@threading_helper.reap_threads
-def test_main():
- support.run_unittest(XMLRPCTestCase, HelperTestCase, DateTimeTestCase,
- BinaryTestCase, FaultTestCase, UseBuiltinTypesTestCase,
- SimpleServerTestCase, SimpleServerEncodingTestCase,
- KeepaliveServerTestCase1, KeepaliveServerTestCase2,
- GzipServerTestCase, GzipUtilTestCase, HeadersServerTestCase,
- MultiPathServerTestCase, ServerProxyTestCase, FailingServerTestCase,
- CGIHandlerTestCase, SimpleXMLRPCDispatcherTestCase)
+def setUpModule():
+ thread_info = threading_helper.threading_setup()
+ unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_xmlrpc_net.py b/Lib/test/test_xmlrpc_net.py
index f3652b8..51167b2 100644
--- a/Lib/test/test_xmlrpc_net.py
+++ b/Lib/test/test_xmlrpc_net.py
@@ -5,6 +5,9 @@
import xmlrpc.client as xmlrpclib
+support.requires("network")
+
+
@unittest.skip('XXX: buildbot.python.org/all/xmlrpc/ is gone')
class PythonBuildersTest(unittest.TestCase):
@@ -24,9 +27,5 @@ def test_python_builders(self):
self.assertTrue([x for x in builders if "3.x" in x], builders)
-def test_main():
- support.requires("network")
- support.run_unittest(PythonBuildersTest)
-
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py
index f6f5ca4..19d3a88 100644
--- a/Lib/test/test_zipimport.py
+++ b/Lib/test/test_zipimport.py
@@ -547,8 +547,9 @@ def testInvalidateCaches(self):
# Check that the cached data is removed if the file is deleted
os.remove(TEMP_ZIP)
zi.invalidate_caches()
- self.assertIsNone(zi._files)
+ self.assertFalse(zi._files)
self.assertIsNone(zipimport._zip_directory_cache.get(zi.archive))
+ self.assertIsNone(zi.find_spec("name_does_not_matter"))
def testZipImporterMethodsInSubDirectory(self):
packdir = TESTPACK + os.sep
@@ -855,15 +856,9 @@ def _testBogusZipFile(self):
zipimport._zip_directory_cache.clear()
-def test_main():
- try:
- support.run_unittest(
- UncompressedZipImportTestCase,
- CompressedZipImportTestCase,
- BadFileZipImportTestCase,
- )
- finally:
- os_helper.unlink(TESTMOD)
+def tearDownModule():
+ os_helper.unlink(TESTMOD)
+
if __name__ == "__main__":
- test_main()
+ unittest.main()
diff --git a/Lib/threading.py b/Lib/threading.py
index 766011f..3e9577d 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -634,7 +634,7 @@ def __init__(self, parties, action=None, timeout=None):
self._action = action
self._timeout = timeout
self._parties = parties
- self._state = 0 #0 filling, 1, draining, -1 resetting, -2 broken
+ self._state = 0 # 0 filling, 1 draining, -1 resetting, -2 broken
self._count = 0
def wait(self, timeout=None):
@@ -1100,11 +1100,24 @@ def _wait_for_tstate_lock(self, block=True, timeout=-1):
# If the lock is acquired, the C code is done, and self._stop() is
# called. That sets ._is_stopped to True, and ._tstate_lock to None.
lock = self._tstate_lock
- if lock is None: # already determined that the C code is done
+ if lock is None:
+ # already determined that the C code is done
assert self._is_stopped
- elif lock.acquire(block, timeout):
- lock.release()
- self._stop()
+ return
+
+ try:
+ if lock.acquire(block, timeout):
+ lock.release()
+ self._stop()
+ except:
+ if lock.locked():
+ # bpo-45274: lock.acquire() acquired the lock, but the function
+ # was interrupted with an exception before reaching the
+ # lock.release(). It can happen if a signal handler raises an
+ # exception, like CTRL+C which raises KeyboardInterrupt.
+ lock.release()
+ self._stop()
+ raise
@property
def name(self):
@@ -1510,20 +1523,29 @@ def _shutdown():
global _SHUTTING_DOWN
_SHUTTING_DOWN = True
- # Main thread
- tlock = _main_thread._tstate_lock
- # The main thread isn't finished yet, so its thread state lock can't have
- # been released.
- assert tlock is not None
- assert tlock.locked()
- tlock.release()
- _main_thread._stop()
# Call registered threading atexit functions before threads are joined.
# Order is reversed, similar to atexit.
for atexit_call in reversed(_threading_atexits):
atexit_call()
+ # Main thread
+ if _main_thread.ident == get_ident():
+ tlock = _main_thread._tstate_lock
+ # The main thread isn't finished yet, so its thread state lock can't
+ # have been released.
+ assert tlock is not None
+ assert tlock.locked()
+ tlock.release()
+ _main_thread._stop()
+ else:
+ # bpo-1596321: _shutdown() must be called in the main thread.
+ # If the threading module was not imported by the main thread,
+ # _main_thread is the thread which imported the threading module.
+ # In this case, ignore _main_thread, similar behavior than for threads
+ # spawned by C libraries or using _thread.start_new_thread().
+ pass
+
# Join all non-deamon threads
while True:
with _shutdown_locks_lock:
diff --git a/Lib/tkinter/test/test_tkinter/test_images.py b/Lib/tkinter/test/test_tkinter/test_images.py
index 2526e92..c7b4680 100644
--- a/Lib/tkinter/test/test_tkinter/test_images.py
+++ b/Lib/tkinter/test/test_tkinter/test_images.py
@@ -78,6 +78,7 @@ def test_create_from_file(self):
self.assertEqual(image.height(), 16)
self.assertIn('::img::test', self.root.image_names())
del image
+ support.gc_collect() # For PyPy or other GCs.
self.assertNotIn('::img::test', self.root.image_names())
def test_create_from_data(self):
@@ -92,6 +93,7 @@ def test_create_from_data(self):
self.assertEqual(image.height(), 16)
self.assertIn('::img::test', self.root.image_names())
del image
+ support.gc_collect() # For PyPy or other GCs.
self.assertNotIn('::img::test', self.root.image_names())
def assertEqualStrList(self, actual, expected):
@@ -172,6 +174,7 @@ def check_create_from_file(self, ext):
self.assertEqual(image['file'], testfile)
self.assertIn('::img::test', self.root.image_names())
del image
+ support.gc_collect() # For PyPy or other GCs.
self.assertNotIn('::img::test', self.root.image_names())
def check_create_from_data(self, ext):
@@ -189,6 +192,7 @@ def check_create_from_data(self, ext):
self.assertEqual(image['file'], '')
self.assertIn('::img::test', self.root.image_names())
del image
+ support.gc_collect() # For PyPy or other GCs.
self.assertNotIn('::img::test', self.root.image_names())
def test_create_from_ppm_file(self):
diff --git a/Lib/tkinter/test/test_tkinter/test_variables.py b/Lib/tkinter/test/test_tkinter/test_variables.py
index 6aebe8d..0be5282 100644
--- a/Lib/tkinter/test/test_tkinter/test_variables.py
+++ b/Lib/tkinter/test/test_tkinter/test_variables.py
@@ -1,4 +1,6 @@
import unittest
+from test import support
+
import gc
import tkinter
from tkinter import (Variable, StringVar, IntVar, DoubleVar, BooleanVar, Tcl,
@@ -46,6 +48,7 @@ def test___del__(self):
v = Variable(self.root, "sample string", "varname")
self.assertTrue(self.info_exists("varname"))
del v
+ support.gc_collect() # For PyPy or other GCs.
self.assertFalse(self.info_exists("varname"))
def test_dont_unset_not_existing(self):
@@ -53,9 +56,11 @@ def test_dont_unset_not_existing(self):
v1 = Variable(self.root, name="name")
v2 = Variable(self.root, name="name")
del v1
+ support.gc_collect() # For PyPy or other GCs.
self.assertFalse(self.info_exists("name"))
# shouldn't raise exception
del v2
+ support.gc_collect() # For PyPy or other GCs.
self.assertFalse(self.info_exists("name"))
def test_equality(self):
diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py
index 1a70e0b..e6b3ecc 100644
--- a/Lib/tkinter/test/test_ttk/test_extensions.py
+++ b/Lib/tkinter/test/test_ttk/test_extensions.py
@@ -2,7 +2,7 @@
import unittest
import tkinter
from tkinter import ttk
-from test.support import requires, run_unittest
+from test.support import requires, run_unittest, gc_collect
from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest
requires('gui')
@@ -18,6 +18,7 @@ def test_widget_destroy(self):
x = ttk.LabeledScale(self.root)
var = x._variable._name
x.destroy()
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(tkinter.TclError, x.tk.globalgetvar, var)
# manually created variable
@@ -30,6 +31,7 @@ def test_widget_destroy(self):
else:
self.assertEqual(float(x.tk.globalgetvar(name)), myvar.get())
del myvar
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(tkinter.TclError, x.tk.globalgetvar, name)
# checking that the tracing callback is properly removed
@@ -171,6 +173,7 @@ def test_variable_change(self):
def test_resize(self):
x = ttk.LabeledScale(self.root)
x.pack(expand=True, fill='both')
+ gc_collect() # For PyPy or other GCs.
x.update()
width, height = x.master.winfo_width(), x.master.winfo_height()
@@ -206,6 +209,7 @@ def test_widget_destroy(self):
optmenu.destroy()
self.assertEqual(optmenu.tk.globalgetvar(name), var.get())
del var
+ gc_collect() # For PyPy or other GCs.
self.assertRaises(tkinter.TclError, optmenu.tk.globalgetvar, name)
@@ -251,6 +255,7 @@ def test_menu(self):
# check that variable is updated correctly
optmenu.pack()
+ gc_collect() # For PyPy or other GCs.
optmenu['menu'].invoke(0)
self.assertEqual(optmenu._variable.get(), items[0])
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index 1fac83a..ee5af82 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -1,7 +1,7 @@
import unittest
import tkinter
from tkinter import ttk, TclError
-from test.support import requires
+from test.support import requires, gc_collect
import sys
from tkinter.test.test_ttk.test_functions import MockTclObj
@@ -839,6 +839,7 @@ def test_set(self):
self.assertEqual(conv(self.scale.get()), var.get())
self.assertEqual(conv(self.scale.get()), max + 5)
del var
+ gc_collect() # For PyPy or other GCs.
# the same happens with the value option
self.scale['value'] = max + 10
diff --git a/Lib/typing.py b/Lib/typing.py
index 00700eb..f842fc2 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -143,7 +143,7 @@ def _type_convert(arg, module=None):
return arg
-def _type_check(arg, msg, is_argument=True, module=None):
+def _type_check(arg, msg, is_argument=True, module=None, *, is_class=False):
"""Check that the argument is a type, and return it (internal helper).
As a special case, accept None and return type(None) instead. Also wrap strings
@@ -156,14 +156,16 @@ def _type_check(arg, msg, is_argument=True, module=None):
We append the repr() of the actual value (truncated to 100 chars).
"""
invalid_generic_forms = (Generic, Protocol)
- if is_argument:
- invalid_generic_forms = invalid_generic_forms + (ClassVar, Final)
+ if not is_class:
+ invalid_generic_forms += (ClassVar,)
+ if is_argument:
+ invalid_generic_forms += (Final,)
arg = _type_convert(arg, module=module)
if (isinstance(arg, _GenericAlias) and
arg.__origin__ in invalid_generic_forms):
raise TypeError(f"{arg} is not valid as type argument")
- if arg in (Any, NoReturn):
+ if arg in (Any, NoReturn, Final):
return arg
if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):
raise TypeError(f"Plain {arg} is not valid as type argument")
@@ -654,9 +656,10 @@ class ForwardRef(_Final, _root=True):
__slots__ = ('__forward_arg__', '__forward_code__',
'__forward_evaluated__', '__forward_value__',
- '__forward_is_argument__', '__forward_module__')
+ '__forward_is_argument__', '__forward_is_class__',
+ '__forward_module__')
- def __init__(self, arg, is_argument=True, module=None):
+ def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
if not isinstance(arg, str):
raise TypeError(f"Forward reference must be a string -- got {arg!r}")
try:
@@ -668,6 +671,7 @@ def __init__(self, arg, is_argument=True, module=None):
self.__forward_evaluated__ = False
self.__forward_value__ = None
self.__forward_is_argument__ = is_argument
+ self.__forward_is_class__ = is_class
self.__forward_module__ = module
def _evaluate(self, globalns, localns, recursive_guard):
@@ -684,10 +688,11 @@ def _evaluate(self, globalns, localns, recursive_guard):
globalns = getattr(
sys.modules.get(self.__forward_module__, None), '__dict__', globalns
)
- type_ =_type_check(
+ type_ = _type_check(
eval(self.__forward_code__, globalns, localns),
"Forward references must evaluate to types.",
is_argument=self.__forward_is_argument__,
+ is_class=self.__forward_is_class__,
)
self.__forward_value__ = _eval_type(
type_, globalns, localns, recursive_guard | {self.__forward_arg__}
@@ -1800,7 +1805,7 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
if value is None:
value = type(None)
if isinstance(value, str):
- value = ForwardRef(value, is_argument=False)
+ value = ForwardRef(value, is_argument=False, is_class=True)
value = _eval_type(value, base_globals, base_locals)
hints[name] = value
return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
@@ -1832,7 +1837,13 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
if value is None:
value = type(None)
if isinstance(value, str):
- value = ForwardRef(value)
+ # class-level forward refs were handled above, this must be either
+ # a module-level annotation or a function argument annotation
+ value = ForwardRef(
+ value,
+ is_argument=not isinstance(obj, types.ModuleType),
+ is_class=False,
+ )
value = _eval_type(value, globalns, localns)
if name in defaults and defaults[name] is None:
value = Optional[value]
diff --git a/Lib/unittest/async_case.py b/Lib/unittest/async_case.py
index 86ed704..c48380e 100644
--- a/Lib/unittest/async_case.py
+++ b/Lib/unittest/async_case.py
@@ -72,15 +72,15 @@ def _callCleanup(self, function, *args, **kwargs):
self._callMaybeAsync(function, *args, **kwargs)
def _callAsync(self, func, /, *args, **kwargs):
- assert self._asyncioTestLoop is not None
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
ret = func(*args, **kwargs)
- assert inspect.isawaitable(ret)
+ assert inspect.isawaitable(ret), f'{func!r} returned non-awaitable'
fut = self._asyncioTestLoop.create_future()
self._asyncioCallsQueue.put_nowait((fut, ret))
return self._asyncioTestLoop.run_until_complete(fut)
def _callMaybeAsync(self, func, /, *args, **kwargs):
- assert self._asyncioTestLoop is not None
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
ret = func(*args, **kwargs)
if inspect.isawaitable(ret):
fut = self._asyncioTestLoop.create_future()
@@ -109,7 +109,7 @@ async def _asyncioLoopRunner(self, fut):
fut.set_exception(ex)
def _setupAsyncioLoop(self):
- assert self._asyncioTestLoop is None
+ assert self._asyncioTestLoop is None, 'asyncio test loop already initialized'
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.set_debug(True)
@@ -119,7 +119,7 @@ def _setupAsyncioLoop(self):
loop.run_until_complete(fut)
def _tearDownAsyncioLoop(self):
- assert self._asyncioTestLoop is not None
+ assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
loop = self._asyncioTestLoop
self._asyncioTestLoop = None
self._asyncioCallsQueue.put_nowait(None)
@@ -158,3 +158,12 @@ def run(self, result=None):
return super().run(result)
finally:
self._tearDownAsyncioLoop()
+
+ def debug(self):
+ self._setupAsyncioLoop()
+ super().debug()
+ self._tearDownAsyncioLoop()
+
+ def __del__(self):
+ if self._asyncioTestLoop is not None:
+ self._tearDownAsyncioLoop()
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index e8d9c05..607c7ae 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -651,12 +651,20 @@ def __call__(self, *args, **kwds):
def debug(self):
"""Run the test without collecting errors in a TestResult"""
- self.setUp()
- getattr(self, self._testMethodName)()
- self.tearDown()
+ testMethod = getattr(self, self._testMethodName)
+ if (getattr(self.__class__, "__unittest_skip__", False) or
+ getattr(testMethod, "__unittest_skip__", False)):
+ # If the class or method was skipped.
+ skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
+ or getattr(testMethod, '__unittest_skip_why__', ''))
+ raise SkipTest(skip_why)
+
+ self._callSetUp()
+ self._callTestMethod(testMethod)
+ self._callTearDown()
while self._cleanups:
- function, args, kwargs = self._cleanups.pop(-1)
- function(*args, **kwargs)
+ function, args, kwargs = self._cleanups.pop()
+ self._callCleanup(function, *args, **kwargs)
def skipTest(self, reason):
"""Skip this test."""
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index c606715..6226bd4 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -1004,6 +1004,11 @@ def _get_child_mock(self, /, **kw):
if _new_name in self.__dict__['_spec_asyncs']:
return AsyncMock(**kw)
+ if self._mock_sealed:
+ attribute = f".{kw['name']}" if "name" in kw else "()"
+ mock_name = self._extract_mock_name() + attribute
+ raise AttributeError(mock_name)
+
_type = type(self)
if issubclass(_type, MagicMock) and _new_name in _async_method_magics:
# Any asynchronous magic becomes an AsyncMock
@@ -1022,12 +1027,6 @@ def _get_child_mock(self, /, **kw):
klass = Mock
else:
klass = _type.__mro__[1]
-
- if self._mock_sealed:
- attribute = "." + kw["name"] if "name" in kw else "()"
- mock_name = self._extract_mock_name() + attribute
- raise AttributeError(mock_name)
-
return klass(**kw)
@@ -2927,6 +2926,8 @@ def seal(mock):
continue
if not isinstance(m, NonCallableMock):
continue
+ if isinstance(m._mock_children.get(attr), _SpecState):
+ continue
if m._mock_new_parent is mock:
seal(m)
diff --git a/Lib/unittest/test/test_assertions.py b/Lib/unittest/test/test_assertions.py
index f5e64d6..a0db3423 100644
--- a/Lib/unittest/test/test_assertions.py
+++ b/Lib/unittest/test/test_assertions.py
@@ -2,6 +2,7 @@
import warnings
import weakref
import unittest
+from test.support import gc_collect
from itertools import product
@@ -124,8 +125,10 @@ def test_with(self):
self.foo()
Foo("test_functional").run()
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
Foo("test_with").run()
+ gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())
def testAssertNotRegex(self):
diff --git a/Lib/unittest/test/test_async_case.py b/Lib/unittest/test/test_async_case.py
index 6e48b9e..e46b99f 100644
--- a/Lib/unittest/test/test_async_case.py
+++ b/Lib/unittest/test/test_async_case.py
@@ -1,5 +1,10 @@
import asyncio
import unittest
+from test import support
+
+
+class MyException(Exception):
+ pass
def tearDownModule():
@@ -7,9 +12,14 @@ def tearDownModule():
class TestAsyncCase(unittest.TestCase):
- def test_full_cycle(self):
- events = []
+ maxDiff = None
+ def tearDown(self):
+ # Ensure that IsolatedAsyncioTestCase instances are destroyed before
+ # starting a new event loop
+ support.gc_collect()
+
+ def test_full_cycle(self):
class Test(unittest.IsolatedAsyncioTestCase):
def setUp(self):
self.assertEqual(events, [])
@@ -18,12 +28,13 @@ def setUp(self):
async def asyncSetUp(self):
self.assertEqual(events, ['setUp'])
events.append('asyncSetUp')
+ self.addAsyncCleanup(self.on_cleanup1)
async def test_func(self):
self.assertEqual(events, ['setUp',
'asyncSetUp'])
events.append('test')
- self.addAsyncCleanup(self.on_cleanup)
+ self.addAsyncCleanup(self.on_cleanup2)
async def asyncTearDown(self):
self.assertEqual(events, ['setUp',
@@ -38,34 +49,48 @@ def tearDown(self):
'asyncTearDown'])
events.append('tearDown')
- async def on_cleanup(self):
+ async def on_cleanup1(self):
+ self.assertEqual(events, ['setUp',
+ 'asyncSetUp',
+ 'test',
+ 'asyncTearDown',
+ 'tearDown',
+ 'cleanup2'])
+ events.append('cleanup1')
+
+ async def on_cleanup2(self):
self.assertEqual(events, ['setUp',
'asyncSetUp',
'test',
'asyncTearDown',
'tearDown'])
- events.append('cleanup')
+ events.append('cleanup2')
+ events = []
test = Test("test_func")
- test.run()
- self.assertEqual(events, ['setUp',
- 'asyncSetUp',
- 'test',
- 'asyncTearDown',
- 'tearDown',
- 'cleanup'])
+ result = test.run()
+ self.assertEqual(result.errors, [])
+ self.assertEqual(result.failures, [])
+ expected = ['setUp', 'asyncSetUp', 'test',
+ 'asyncTearDown', 'tearDown', 'cleanup2', 'cleanup1']
+ self.assertEqual(events, expected)
+
+ events = []
+ test = Test("test_func")
+ test.debug()
+ self.assertEqual(events, expected)
+ test.doCleanups()
+ self.assertEqual(events, expected)
def test_exception_in_setup(self):
- events = []
-
class Test(unittest.IsolatedAsyncioTestCase):
async def asyncSetUp(self):
events.append('asyncSetUp')
- raise Exception()
+ self.addAsyncCleanup(self.on_cleanup)
+ raise MyException()
async def test_func(self):
events.append('test')
- self.addAsyncCleanup(self.on_cleanup)
async def asyncTearDown(self):
events.append('asyncTearDown')
@@ -74,35 +99,26 @@ async def on_cleanup(self):
events.append('cleanup')
+ events = []
test = Test("test_func")
- test.run()
+ result = test.run()
+ self.assertEqual(events, ['asyncSetUp', 'cleanup'])
+ self.assertIs(result.errors[0][0], test)
+ self.assertIn('MyException', result.errors[0][1])
+
+ events = []
+ test = Test("test_func")
+ try:
+ test.debug()
+ except MyException:
+ pass
+ else:
+ self.fail('Expected a MyException exception')
self.assertEqual(events, ['asyncSetUp'])
+ test.doCleanups()
+ self.assertEqual(events, ['asyncSetUp', 'cleanup'])
def test_exception_in_test(self):
- events = []
-
- class Test(unittest.IsolatedAsyncioTestCase):
- async def asyncSetUp(self):
- events.append('asyncSetUp')
-
- async def test_func(self):
- events.append('test')
- raise Exception()
- self.addAsyncCleanup(self.on_cleanup)
-
- async def asyncTearDown(self):
- events.append('asyncTearDown')
-
- async def on_cleanup(self):
- events.append('cleanup')
-
- test = Test("test_func")
- test.run()
- self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown'])
-
- def test_exception_in_test_after_adding_cleanup(self):
- events = []
-
class Test(unittest.IsolatedAsyncioTestCase):
async def asyncSetUp(self):
events.append('asyncSetUp')
@@ -110,7 +126,7 @@ async def asyncSetUp(self):
async def test_func(self):
events.append('test')
self.addAsyncCleanup(self.on_cleanup)
- raise Exception()
+ raise MyException()
async def asyncTearDown(self):
events.append('asyncTearDown')
@@ -118,13 +134,26 @@ async def asyncTearDown(self):
async def on_cleanup(self):
events.append('cleanup')
+ events = []
test = Test("test_func")
- test.run()
+ result = test.run()
self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+ self.assertIs(result.errors[0][0], test)
+ self.assertIn('MyException', result.errors[0][1])
+
+ events = []
+ test = Test("test_func")
+ try:
+ test.debug()
+ except MyException:
+ pass
+ else:
+ self.fail('Expected a MyException exception')
+ self.assertEqual(events, ['asyncSetUp', 'test'])
+ test.doCleanups()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'cleanup'])
def test_exception_in_tear_down(self):
- events = []
-
class Test(unittest.IsolatedAsyncioTestCase):
async def asyncSetUp(self):
events.append('asyncSetUp')
@@ -135,37 +164,70 @@ async def test_func(self):
async def asyncTearDown(self):
events.append('asyncTearDown')
- raise Exception()
+ raise MyException()
async def on_cleanup(self):
events.append('cleanup')
+ events = []
test = Test("test_func")
- test.run()
+ result = test.run()
self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+ self.assertIs(result.errors[0][0], test)
+ self.assertIn('MyException', result.errors[0][1])
+ events = []
+ test = Test("test_func")
+ try:
+ test.debug()
+ except MyException:
+ pass
+ else:
+ self.fail('Expected a MyException exception')
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown'])
+ test.doCleanups()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
def test_exception_in_tear_clean_up(self):
- events = []
-
class Test(unittest.IsolatedAsyncioTestCase):
async def asyncSetUp(self):
events.append('asyncSetUp')
async def test_func(self):
events.append('test')
- self.addAsyncCleanup(self.on_cleanup)
+ self.addAsyncCleanup(self.on_cleanup1)
+ self.addAsyncCleanup(self.on_cleanup2)
async def asyncTearDown(self):
events.append('asyncTearDown')
- async def on_cleanup(self):
- events.append('cleanup')
- raise Exception()
+ async def on_cleanup1(self):
+ events.append('cleanup1')
+ raise MyException('some error')
+ async def on_cleanup2(self):
+ events.append('cleanup2')
+ raise MyException('other error')
+
+ events = []
test = Test("test_func")
- test.run()
- self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+ result = test.run()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2', 'cleanup1'])
+ self.assertIs(result.errors[0][0], test)
+ self.assertIn('MyException: other error', result.errors[0][1])
+ self.assertIn('MyException: some error', result.errors[1][1])
+
+ events = []
+ test = Test("test_func")
+ try:
+ test.debug()
+ except MyException:
+ pass
+ else:
+ self.fail('Expected a MyException exception')
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2'])
+ test.doCleanups()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2', 'cleanup1'])
def test_cleanups_interleave_order(self):
events = []
@@ -235,7 +297,49 @@ async def coro():
output = test.run()
self.assertTrue(cancelled)
+ def test_debug_cleanup_same_loop(self):
+ class Test(unittest.IsolatedAsyncioTestCase):
+ async def asyncSetUp(self):
+ async def coro():
+ await asyncio.sleep(0)
+ fut = asyncio.ensure_future(coro())
+ self.addAsyncCleanup(self.cleanup, fut)
+ events.append('asyncSetUp')
+ async def test_func(self):
+ events.append('test')
+ raise MyException()
+
+ async def asyncTearDown(self):
+ events.append('asyncTearDown')
+
+ async def cleanup(self, fut):
+ try:
+ # Raises an exception if in different loop
+ await asyncio.wait([fut])
+ events.append('cleanup')
+ except:
+ import traceback
+ traceback.print_exc()
+ raise
+
+ events = []
+ test = Test("test_func")
+ result = test.run()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+ self.assertIn('MyException', result.errors[0][1])
+
+ events = []
+ test = Test("test_func")
+ try:
+ test.debug()
+ except MyException:
+ pass
+ else:
+ self.fail('Expected a MyException exception')
+ self.assertEqual(events, ['asyncSetUp', 'test'])
+ test.doCleanups()
+ self.assertEqual(events, ['asyncSetUp', 'test', 'cleanup'])
if __name__ == "__main__":
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py
index b8aca92..3533485 100644
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -19,7 +19,7 @@
TestEquality, TestHashing, LoggingResult, LegacyLoggingResult,
ResultWithNoStartTestRunStopTestRun
)
-from test.support import captured_stderr
+from test.support import captured_stderr, gc_collect
log_foo = logging.getLogger('foo')
@@ -1947,6 +1947,7 @@ def test2(self):
for method_name in ('test1', 'test2'):
testcase = TestCase(method_name)
testcase.run()
+ gc_collect() # For PyPy or other GCs.
self.assertEqual(MyException.ninstance, 0)
diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py
index c14410a..7cb9d33 100644
--- a/Lib/unittest/test/test_skipping.py
+++ b/Lib/unittest/test/test_skipping.py
@@ -460,5 +460,71 @@ def test_1(self):
self.assertIs(suite.run(result), result)
self.assertEqual(result.skipped, [(test, "")])
+ def test_debug_skipping(self):
+ class Foo(unittest.TestCase):
+ def setUp(self):
+ events.append("setUp")
+ def tearDown(self):
+ events.append("tearDown")
+ def test1(self):
+ self.skipTest('skipping exception')
+ events.append("test1")
+ @unittest.skip("skipping decorator")
+ def test2(self):
+ events.append("test2")
+
+ events = []
+ test = Foo("test1")
+ with self.assertRaises(unittest.SkipTest) as cm:
+ test.debug()
+ self.assertIn("skipping exception", str(cm.exception))
+ self.assertEqual(events, ["setUp"])
+
+ events = []
+ test = Foo("test2")
+ with self.assertRaises(unittest.SkipTest) as cm:
+ test.debug()
+ self.assertIn("skipping decorator", str(cm.exception))
+ self.assertEqual(events, [])
+
+ def test_debug_skipping_class(self):
+ @unittest.skip("testing")
+ class Foo(unittest.TestCase):
+ def setUp(self):
+ events.append("setUp")
+ def tearDown(self):
+ events.append("tearDown")
+ def test(self):
+ events.append("test")
+
+ events = []
+ test = Foo("test")
+ with self.assertRaises(unittest.SkipTest) as cm:
+ test.debug()
+ self.assertIn("testing", str(cm.exception))
+ self.assertEqual(events, [])
+
+ def test_debug_skipping_subtests(self):
+ class Foo(unittest.TestCase):
+ def setUp(self):
+ events.append("setUp")
+ def tearDown(self):
+ events.append("tearDown")
+ def test(self):
+ with self.subTest(a=1):
+ events.append('subtest')
+ self.skipTest("skip subtest")
+ events.append('end subtest')
+ events.append('end test')
+
+ events = []
+ result = LoggingResult(events)
+ test = Foo("test")
+ with self.assertRaises(unittest.SkipTest) as cm:
+ test.debug()
+ self.assertIn("skip subtest", str(cm.exception))
+ self.assertEqual(events, ['setUp', 'subtest'])
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/Lib/unittest/test/testmock/testsealable.py b/Lib/unittest/test/testmock/testsealable.py
index 59f5233..11784c3 100644
--- a/Lib/unittest/test/testmock/testsealable.py
+++ b/Lib/unittest/test/testmock/testsealable.py
@@ -171,6 +171,67 @@ def test_call_chain_is_maintained(self):
m.test1().test2.test3().test4()
self.assertIn("mock.test1().test2.test3().test4", str(cm.exception))
+ def test_seal_with_autospec(self):
+ # https://bugs.python.org/issue45156
+ class Foo:
+ foo = 0
+ def bar1(self):
+ return 1
+ def bar2(self):
+ return 2
+
+ class Baz:
+ baz = 3
+ def ban(self):
+ return 4
+
+ for spec_set in (True, False):
+ with self.subTest(spec_set=spec_set):
+ foo = mock.create_autospec(Foo, spec_set=spec_set)
+ foo.bar1.return_value = 'a'
+ foo.Baz.ban.return_value = 'b'
+
+ mock.seal(foo)
+
+ self.assertIsInstance(foo.foo, mock.NonCallableMagicMock)
+ self.assertIsInstance(foo.bar1, mock.MagicMock)
+ self.assertIsInstance(foo.bar2, mock.MagicMock)
+ self.assertIsInstance(foo.Baz, mock.MagicMock)
+ self.assertIsInstance(foo.Baz.baz, mock.NonCallableMagicMock)
+ self.assertIsInstance(foo.Baz.ban, mock.MagicMock)
+
+ self.assertEqual(foo.bar1(), 'a')
+ foo.bar1.return_value = 'new_a'
+ self.assertEqual(foo.bar1(), 'new_a')
+ self.assertEqual(foo.Baz.ban(), 'b')
+ foo.Baz.ban.return_value = 'new_b'
+ self.assertEqual(foo.Baz.ban(), 'new_b')
+
+ with self.assertRaises(TypeError):
+ foo.foo()
+ with self.assertRaises(AttributeError):
+ foo.bar = 1
+ with self.assertRaises(AttributeError):
+ foo.bar2()
+
+ foo.bar2.return_value = 'bar2'
+ self.assertEqual(foo.bar2(), 'bar2')
+
+ with self.assertRaises(AttributeError):
+ foo.missing_attr
+ with self.assertRaises(AttributeError):
+ foo.missing_attr = 1
+ with self.assertRaises(AttributeError):
+ foo.missing_method()
+ with self.assertRaises(TypeError):
+ foo.Baz.baz()
+ with self.assertRaises(AttributeError):
+ foo.Baz.missing_attr
+ with self.assertRaises(AttributeError):
+ foo.Baz.missing_attr = 1
+ with self.assertRaises(AttributeError):
+ foo.Baz.missing_method()
+
if __name__ == "__main__":
unittest.main()
diff --git a/Lib/zipimport.py b/Lib/zipimport.py
index c55fec6..25eaee9 100644
--- a/Lib/zipimport.py
+++ b/Lib/zipimport.py
@@ -334,7 +334,7 @@ def invalidate_caches(self):
_zip_directory_cache[self.archive] = self._files
except ZipImportError:
_zip_directory_cache.pop(self.archive, None)
- self._files = None
+ self._files = {}
def __repr__(self):
diff --git a/Misc/NEWS.d/next/Build/2021-09-09-16-45-26.bpo-45067.mFmY92.rst b/Misc/NEWS.d/next/Build/2021-09-09-16-45-26.bpo-45067.mFmY92.rst
new file mode 100644
index 0000000..a89736e
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-09-09-16-45-26.bpo-45067.mFmY92.rst
@@ -0,0 +1,7 @@
+The ncurses function extended_color_content was introduced in 2017
+
+(https://invisible-island.net/ncurses/NEWS.html#index-t20170401). The
+
+ncurses-devel package in CentOS 7 had a older version ncurses resulted in
+compilation error. For compiling ncurses with extended color support, we
+verify the version of the ncurses library >= 20170401.
diff --git a/Misc/NEWS.d/next/Build/2021-09-16-18-00-43.bpo-45220.TgbkvW.rst b/Misc/NEWS.d/next/Build/2021-09-16-18-00-43.bpo-45220.TgbkvW.rst
new file mode 100644
index 0000000..8bbd634
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-09-16-18-00-43.bpo-45220.TgbkvW.rst
@@ -0,0 +1,3 @@
+Avoid building with the Windows 11 SDK previews automatically. This may be
+overridden by setting the ``DefaultWindowsSDKVersion`` environment variable
+before building.
diff --git a/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
new file mode 100644
index 0000000..d7b9f09
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-07-27-17-29-12.bpo-44751.4qmbDG.rst
@@ -0,0 +1 @@
+Remove ``crypt.h`` include from the public ``Python.h`` header.
diff --git a/Misc/NEWS.d/next/C API/2021-09-19-17-18-25.bpo-44687.3fqDRC.rst b/Misc/NEWS.d/next/C API/2021-09-19-17-18-25.bpo-44687.3fqDRC.rst
new file mode 100644
index 0000000..d38fa60
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-09-19-17-18-25.bpo-44687.3fqDRC.rst
@@ -0,0 +1 @@
+:meth:`BufferedReader.peek` no longer raises :exc:`ValueError` when the entire file has already been buffered.
diff --git a/Misc/NEWS.d/next/C API/2021-09-28-12-00-55.bpo-45307.3ETFfX.rst b/Misc/NEWS.d/next/C API/2021-09-28-12-00-55.bpo-45307.3ETFfX.rst
new file mode 100644
index 0000000..aa2bd7a
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-09-28-12-00-55.bpo-45307.3ETFfX.rst
@@ -0,0 +1,2 @@
+Restore the private C API function :func:`_PyImport_FindExtensionObject`. It
+will be removed in Python 3.11.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst
new file mode 100644
index 0000000..6c790f5
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst
@@ -0,0 +1 @@
+Compiler now removes trailing unused constants from co_consts.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst
new file mode 100644
index 0000000..7bfd87b
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst
@@ -0,0 +1,3 @@
+When the interpreter renders an exception, its name now has a complete qualname. Previously only the class name was concatenated to the module name, which sometimes resulted in an incorrect full name being displayed.
+
+(This issue impacted only the C code exception rendering, the :mod:`traceback` module was using qualname already).
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-07-17-10-16.bpo-45121.iG-Hsf.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-07-17-10-16.bpo-45121.iG-Hsf.rst
new file mode 100644
index 0000000..19eb331
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-07-17-10-16.bpo-45121.iG-Hsf.rst
@@ -0,0 +1,2 @@
+Fix issue where ``Protocol.__init__`` raises ``RecursionError`` when it's
+called directly or via ``super()``. Patch provided by Yurii Karabas.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-09-10-32-33.bpo-44219.WiYyjz.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-09-10-32-33.bpo-44219.WiYyjz.rst
new file mode 100644
index 0000000..2abd816
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-09-10-32-33.bpo-44219.WiYyjz.rst
@@ -0,0 +1,5 @@
+Release the GIL while performing ``isatty`` system calls on arbitrary file
+descriptors. In particular, this affects :func:`os.isatty`,
+:func:`os.device_encoding` and :class:`io.TextIOWrapper`. By extension,
+:func:`io.open` in text mode is also affected. This change solves
+a deadlock in :func:`os.isatty`. Patch by Vincent Michel in :issue:`44219`.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-14-09-23-59.bpo-45167.CPSSoV.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-14-09-23-59.bpo-45167.CPSSoV.rst
new file mode 100644
index 0000000..47755ae
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-14-09-23-59.bpo-45167.CPSSoV.rst
@@ -0,0 +1 @@
+Fix deepcopying of :class:`types.GenericAlias` objects.
diff --git a/Misc/NEWS.d/next/Documentation/2021-09-08-17-20-19.bpo-45024.dkNPNi.rst b/Misc/NEWS.d/next/Documentation/2021-09-08-17-20-19.bpo-45024.dkNPNi.rst
new file mode 100644
index 0000000..e73d52b
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2021-09-08-17-20-19.bpo-45024.dkNPNi.rst
@@ -0,0 +1,4 @@
+:mod:`collections.abc` documentation has been expanded to explicitly cover
+how instance and subclass checks work, with additional doctest examples and
+an exhaustive list of ABCs which test membership purely by presence of the
+right :term:`special method`\s. Patch by Raymond Hettinger.
diff --git a/Misc/NEWS.d/next/Documentation/2021-09-18-13-45-19.bpo-45216.o56nyt.rst b/Misc/NEWS.d/next/Documentation/2021-09-18-13-45-19.bpo-45216.o56nyt.rst
new file mode 100644
index 0000000..d10b18e
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2021-09-18-13-45-19.bpo-45216.o56nyt.rst
@@ -0,0 +1,2 @@
+Remove extra documentation listing methods in ``difflib``. It was rendering
+twice in pydoc and was outdated in some places.
diff --git a/Misc/NEWS.d/next/IDLE/2021-09-15-03-20-06.bpo-45193.G61_GV.rst b/Misc/NEWS.d/next/IDLE/2021-09-15-03-20-06.bpo-45193.G61_GV.rst
new file mode 100644
index 0000000..9472964
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2021-09-15-03-20-06.bpo-45193.G61_GV.rst
@@ -0,0 +1 @@
+Make completion boxes appear on Ubuntu again.
diff --git a/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst b/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst
new file mode 100644
index 0000000..52bade1
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst
@@ -0,0 +1,2 @@
+On Windows, change exit/quit message to suggest Ctrl-D, which works, instead
+of <Ctrl-Z Return>, which does not work in IDLE.
diff --git a/Misc/NEWS.d/next/Library/2021-08-18-10-36-14.bpo-39039.A63LYh.rst b/Misc/NEWS.d/next/Library/2021-08-18-10-36-14.bpo-39039.A63LYh.rst
new file mode 100644
index 0000000..7250055
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-08-18-10-36-14.bpo-39039.A63LYh.rst
@@ -0,0 +1,2 @@
+tarfile.open raises :exc:`~tarfile.ReadError` when a zlib error occurs
+during file extraction.
diff --git a/Misc/NEWS.d/next/Library/2021-08-28-13-00-12.bpo-45021.rReeaj.rst b/Misc/NEWS.d/next/Library/2021-08-28-13-00-12.bpo-45021.rReeaj.rst
new file mode 100644
index 0000000..54fd910
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-08-28-13-00-12.bpo-45021.rReeaj.rst
@@ -0,0 +1 @@
+Fix a potential deadlock at shutdown of forked children when using :mod:`concurrent.futures` module
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2021-09-08-01-19-31.bpo-20499.tSxx8Y.rst b/Misc/NEWS.d/next/Library/2021-09-08-01-19-31.bpo-20499.tSxx8Y.rst
new file mode 100644
index 0000000..cbbe61a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-08-01-19-31.bpo-20499.tSxx8Y.rst
@@ -0,0 +1 @@
+Improve the speed and accuracy of statistics.pvariance().
diff --git a/Misc/NEWS.d/next/Library/2021-09-10-21-35-53.bpo-45166.UHipXF.rst b/Misc/NEWS.d/next/Library/2021-09-10-21-35-53.bpo-45166.UHipXF.rst
new file mode 100644
index 0000000..b7242d4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-10-21-35-53.bpo-45166.UHipXF.rst
@@ -0,0 +1,2 @@
+:func:`typing.get_type_hints` now works with :data:`~typing.Final` wrapped in
+:class:`~typing.ForwardRef`.
diff --git a/Misc/NEWS.d/next/Library/2021-09-11-10-45-12.bpo-35474.tEY3SD.rst b/Misc/NEWS.d/next/Library/2021-09-11-10-45-12.bpo-35474.tEY3SD.rst
new file mode 100644
index 0000000..f4dd3b9
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-11-10-45-12.bpo-35474.tEY3SD.rst
@@ -0,0 +1,3 @@
+Calling :func:`mimetypes.guess_all_extensions` with ``strict=False`` no
+longer affects the result of the following call with ``strict=True``.
+Also, mutating the returned list no longer affects the global state.
diff --git a/Misc/NEWS.d/next/Library/2021-09-13-19-32-58.bpo-42135.1ZAHqR.rst b/Misc/NEWS.d/next/Library/2021-09-13-19-32-58.bpo-42135.1ZAHqR.rst
new file mode 100644
index 0000000..983b46e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-13-19-32-58.bpo-42135.1ZAHqR.rst
@@ -0,0 +1,3 @@
+Fix typo: ``importlib.find_loader`` is really slated for removal in Python 3.12 not 3.10, like the others in GH-25169.
+
+Patch by Hugo van Kemenade.
diff --git a/Misc/NEWS.d/next/Library/2021-09-17-09-59-33.bpo-45228.WV1dcT.rst b/Misc/NEWS.d/next/Library/2021-09-17-09-59-33.bpo-45228.WV1dcT.rst
new file mode 100644
index 0000000..9336c0a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-17-09-59-33.bpo-45228.WV1dcT.rst
@@ -0,0 +1 @@
+Fix stack buffer overflow in parsing J1939 network address.
diff --git a/Misc/NEWS.d/next/Library/2021-09-17-11-20-55.bpo-45234.qUcTVt.rst b/Misc/NEWS.d/next/Library/2021-09-17-11-20-55.bpo-45234.qUcTVt.rst
new file mode 100644
index 0000000..3817b5d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-17-11-20-55.bpo-45234.qUcTVt.rst
@@ -0,0 +1,3 @@
+Fixed a regression in :func:`~shutil.copyfile`, :func:`~shutil.copy`,
+:func:`~shutil.copy2` raising :exc:`FileNotFoundError` when source is a
+directory, which should raise :exc:`IsADirectoryError`
diff --git a/Misc/NEWS.d/next/Library/2021-09-17-15-58-53.bpo-45183.Vv_vch.rst b/Misc/NEWS.d/next/Library/2021-09-17-15-58-53.bpo-45183.Vv_vch.rst
new file mode 100644
index 0000000..f3194b3
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-17-15-58-53.bpo-45183.Vv_vch.rst
@@ -0,0 +1,3 @@
+Have zipimport.zipimporter.find_spec() not raise an exception when the underlying zip
+file has been deleted and the internal cache has been reset via
+invalidate_cache().
diff --git a/Misc/NEWS.d/next/Library/2021-09-17-16-55-37.bpo-45235.sXnmPA.rst b/Misc/NEWS.d/next/Library/2021-09-17-16-55-37.bpo-45235.sXnmPA.rst
new file mode 100644
index 0000000..871ec52
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-17-16-55-37.bpo-45235.sXnmPA.rst
@@ -0,0 +1,2 @@
+Fix an issue where argparse would not preserve values in a provided namespace
+when using a subparser with defaults.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2021-09-18-13-14-57.bpo-36674.a2k5Zb.rst b/Misc/NEWS.d/next/Library/2021-09-18-13-14-57.bpo-36674.a2k5Zb.rst
new file mode 100644
index 0000000..bc8c924
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-18-13-14-57.bpo-36674.a2k5Zb.rst
@@ -0,0 +1,2 @@
+:meth:`unittest.TestCase.debug` raises now a :class:`unittest.SkipTest` if
+the class or the test method are decorated with the skipping decorator.
diff --git a/Misc/NEWS.d/next/Library/2021-09-18-16-56-33.bpo-45238.Hng_9V.rst b/Misc/NEWS.d/next/Library/2021-09-18-16-56-33.bpo-45238.Hng_9V.rst
new file mode 100644
index 0000000..857f315
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-18-16-56-33.bpo-45238.Hng_9V.rst
@@ -0,0 +1,2 @@
+Fix :meth:`unittest.IsolatedAsyncioTestCase.debug`: it runs now asynchronous
+methods and callbacks.
diff --git a/Misc/NEWS.d/next/Library/2021-09-23-22-17-26.bpo-45274.gPpa4E.rst b/Misc/NEWS.d/next/Library/2021-09-23-22-17-26.bpo-45274.gPpa4E.rst
new file mode 100644
index 0000000..94d06ce
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-23-22-17-26.bpo-45274.gPpa4E.rst
@@ -0,0 +1,5 @@
+Fix a race condition in the :meth:`Thread.join() <threading.Thread.join>`
+method of the :mod:`threading` module. If the function is interrupted by a
+signal and the signal handler raises an exception, make sure that the thread
+remains in a consistent state to prevent a deadlock. Patch by Victor
+Stinner.
diff --git a/Misc/NEWS.d/next/Library/2021-09-24-17-20-23.bpo-1596321.3nhPUk.rst b/Misc/NEWS.d/next/Library/2021-09-24-17-20-23.bpo-1596321.3nhPUk.rst
new file mode 100644
index 0000000..61a3e5a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-24-17-20-23.bpo-1596321.3nhPUk.rst
@@ -0,0 +1,3 @@
+Fix the :func:`threading._shutdown` function when the :mod:`threading` module
+was imported first from a thread different than the main thread: no longer log
+an error at Python exit.
diff --git a/Misc/NEWS.d/next/Library/2021-09-30-23-00-18.bpo-41710.svuloZ.rst b/Misc/NEWS.d/next/Library/2021-09-30-23-00-18.bpo-41710.svuloZ.rst
new file mode 100644
index 0000000..d8a4f95
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-09-30-23-00-18.bpo-41710.svuloZ.rst
@@ -0,0 +1,5 @@
+On Unix, if the ``sem_clockwait()`` function is available in the C library
+(glibc 2.30 and newer), the :meth:`threading.Lock.acquire` method now uses the
+monotonic clock (:data:`time.CLOCK_MONOTONIC`) for the timeout, rather than
+using the system clock (:data:`time.CLOCK_REALTIME`), to not be affected by
+system clock changes. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Library/2021-10-01-13-09-53.bpo-45329.9iMYaO.rst b/Misc/NEWS.d/next/Library/2021-10-01-13-09-53.bpo-45329.9iMYaO.rst
new file mode 100644
index 0000000..b4bedbc
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-10-01-13-09-53.bpo-45329.9iMYaO.rst
@@ -0,0 +1,2 @@
+Fix freed memory access in :class:`pyexpat.xmlparser` when building it with an
+installed expat library <= 2.2.0.
diff --git a/Misc/NEWS.d/next/Tests/2021-08-27-22-37-19.bpo-25130.ig4oJe.rst b/Misc/NEWS.d/next/Tests/2021-08-27-22-37-19.bpo-25130.ig4oJe.rst
new file mode 100644
index 0000000..43ce68b
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-08-27-22-37-19.bpo-25130.ig4oJe.rst
@@ -0,0 +1 @@
+Add calls of :func:`gc.collect` in tests to support PyPy.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst b/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst
new file mode 100644
index 0000000..153a9c5
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst
@@ -0,0 +1,2 @@
+Update ``test_sysconfig.test_user_similar()`` for the posix_user scheme:
+``platlib`` doesn't use :data:`sys.platlibdir`. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-11-22-08-18.bpo-45125.FVSzs2.rst b/Misc/NEWS.d/next/Tests/2021-09-11-22-08-18.bpo-45125.FVSzs2.rst
new file mode 100644
index 0000000..5dfbe0e
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-11-22-08-18.bpo-45125.FVSzs2.rst
@@ -0,0 +1,2 @@
+Improves pickling tests and docs of ``SharedMemory`` and ``SharableList``
+objects.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-13-00-28-17.bpo-45156.8oomV3.rst b/Misc/NEWS.d/next/Tests/2021-09-13-00-28-17.bpo-45156.8oomV3.rst
new file mode 100644
index 0000000..b2094b5
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-13-00-28-17.bpo-45156.8oomV3.rst
@@ -0,0 +1,2 @@
+Fixes infinite loop on :func:`unittest.mock.seal` of mocks created by
+:func:`~unittest.create_autospec`.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-14-13-16-18.bpo-45195.EyQR1G.rst b/Misc/NEWS.d/next/Tests/2021-09-14-13-16-18.bpo-45195.EyQR1G.rst
new file mode 100644
index 0000000..16a1f44
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-14-13-16-18.bpo-45195.EyQR1G.rst
@@ -0,0 +1,3 @@
+Fix test_readline.test_nonascii(): sometimes, the newline character is not
+written at the end, so don't expect it in the output. Patch by Victor
+Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-15-23-32-39.bpo-45209.55ntL5.rst b/Misc/NEWS.d/next/Tests/2021-09-15-23-32-39.bpo-45209.55ntL5.rst
new file mode 100644
index 0000000..4c3bed0
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-15-23-32-39.bpo-45209.55ntL5.rst
@@ -0,0 +1,2 @@
+Fix ``UserWarning: resource_tracker`` warning in
+``_test_multiprocessing._TestSharedMemory.test_shared_memory_cleaned_after_process_termination``
diff --git a/Misc/NEWS.d/next/Tests/2021-09-16-17-22-35.bpo-45128.Jz6fl2.rst b/Misc/NEWS.d/next/Tests/2021-09-16-17-22-35.bpo-45128.Jz6fl2.rst
new file mode 100644
index 0000000..b50eb32
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-16-17-22-35.bpo-45128.Jz6fl2.rst
@@ -0,0 +1,2 @@
+Fix ``test_multiprocessing_fork`` failure due to ``test_logging`` and
+``sys.modules`` manipulation.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-24-10-41-49.bpo-45269.8jKEr8.rst b/Misc/NEWS.d/next/Tests/2021-09-24-10-41-49.bpo-45269.8jKEr8.rst
new file mode 100644
index 0000000..72dd947
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-24-10-41-49.bpo-45269.8jKEr8.rst
@@ -0,0 +1 @@
+Cover case when invalid ``markers`` type is supplied to ``c_make_encoder``.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-25-11-05-31.bpo-45280.3MA6lC.rst b/Misc/NEWS.d/next/Tests/2021-09-25-11-05-31.bpo-45280.3MA6lC.rst
new file mode 100644
index 0000000..71691f5
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-25-11-05-31.bpo-45280.3MA6lC.rst
@@ -0,0 +1 @@
+Add a test case for empty :class:`typing.NamedTuple`.
diff --git a/Misc/NEWS.d/next/Tests/2021-09-30-16-54-39.bpo-40173.J_slCw.rst b/Misc/NEWS.d/next/Tests/2021-09-30-16-54-39.bpo-40173.J_slCw.rst
new file mode 100644
index 0000000..2167147
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-30-16-54-39.bpo-40173.J_slCw.rst
@@ -0,0 +1,2 @@
+Fix :func:`test.support.import_helper.import_fresh_module`.
+
diff --git a/Misc/NEWS.d/next/Tools-Demos/2021-09-14-11-44-26.bpo-44786.DU0LC0.rst b/Misc/NEWS.d/next/Tools-Demos/2021-09-14-11-44-26.bpo-44786.DU0LC0.rst
new file mode 100644
index 0000000..96ebf2c
--- /dev/null
+++ b/Misc/NEWS.d/next/Tools-Demos/2021-09-14-11-44-26.bpo-44786.DU0LC0.rst
@@ -0,0 +1 @@
+Fix a warning in regular expression in the c-analyzer script.
diff --git a/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst b/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst
new file mode 100644
index 0000000..29a6ff9
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst
@@ -0,0 +1,3 @@
+When building CPython on macOS with ``./configure
+--with-undefined-behavior-sanitizer --with-pydebug``, the stack size is now
+quadrupled to allow for the entire test suite to pass.
diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
index a95f55a..72a4f44 100644
--- a/Modules/_cryptmodule.c
+++ b/Modules/_cryptmodule.c
@@ -4,6 +4,9 @@
#include "Python.h"
#include <sys/types.h>
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
/* Module crypt */
diff --git a/Modules/_decimal/tests/bench.py b/Modules/_decimal/tests/bench.py
index 3726db1..24e091b 100644
--- a/Modules/_decimal/tests/bench.py
+++ b/Modules/_decimal/tests/bench.py
@@ -7,10 +7,7 @@
import time
-try:
- from test.support import import_fresh_module
-except ImportError:
- from test.test_support import import_fresh_module
+from test.support.import_helper import import_fresh_module
C = import_fresh_module('decimal', fresh=['_decimal'])
P = import_fresh_module('decimal', blocked=['_decimal'])
diff --git a/Modules/_decimal/tests/deccheck.py b/Modules/_decimal/tests/deccheck.py
index 98ecd50..edf753f 100644
--- a/Modules/_decimal/tests/deccheck.py
+++ b/Modules/_decimal/tests/deccheck.py
@@ -47,7 +47,7 @@
from queue import Queue, Empty
from threading import Thread, Event, Lock
-from test.support import import_fresh_module
+from test.support.import_helper import import_fresh_module
from randdec import randfloat, all_unary, all_binary, all_ternary
from randdec import unary_optarg, binary_optarg, ternary_optarg
from formathelper import rand_format, rand_locale
diff --git a/Modules/_decimal/tests/formathelper.py b/Modules/_decimal/tests/formathelper.py
index 19b2aad..c3daacf 100644
--- a/Modules/_decimal/tests/formathelper.py
+++ b/Modules/_decimal/tests/formathelper.py
@@ -31,7 +31,7 @@
import os, sys, locale, random
import platform, subprocess
-from test.support import import_fresh_module
+from test.support.import_helper import import_fresh_module
from distutils.spawn import find_executable
C = import_fresh_module('decimal', fresh=['_decimal'])
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 5984d34..ba966f5 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -341,11 +341,10 @@ _enter_buffered_busy(buffered *self)
: buffered_closed(self)))
#define CHECK_CLOSED(self, error_msg) \
- if (IS_CLOSED(self)) { \
+ if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \
PyErr_SetString(PyExc_ValueError, error_msg); \
return NULL; \
- }
-
+ } \
#define VALID_READ_BUFFER(self) \
(self->readable && self->read_end != -1)
@@ -530,6 +529,9 @@ buffered_close(buffered *self, PyObject *args)
Py_CLEAR(res);
}
+ self->read_end = 0;
+ self->pos = 0;
+
end:
LEAVE_BUFFERED(self)
return res;
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 5813e34..2cc5f53 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -87,6 +87,7 @@ pysqlite_connection_init(pysqlite_Connection *self, PyObject *args,
}
if (PySys_Audit("sqlite3.connect", "O", database_obj) < 0) {
+ Py_DECREF(database_obj);
return -1;
}
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index a2a2db2..16da008 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -3081,14 +3081,9 @@ math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
}
if (result == NULL) {
- result = PyLong_FromLong(1);
- if (result == NULL) {
- Py_DECREF(iter);
- return NULL;
- }
- } else {
- Py_INCREF(result);
+ result = _PyLong_GetOne();
}
+ Py_INCREF(result);
#ifndef SLOW_PROD
/* Fast paths for integers keeping temporary products in C.
* Assumes all inputs are the same type.
@@ -3104,7 +3099,7 @@ math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
}
/* Loop over all the items in the iterable until we finish, we overflow
* or we found a non integer element */
- while(result == NULL) {
+ while (result == NULL) {
item = PyIter_Next(iter);
if (item == NULL) {
Py_DECREF(iter);
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 25ddc82..18761cc 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10062,9 +10062,11 @@ os_isatty_impl(PyObject *module, int fd)
/*[clinic end generated code: output=6a48c8b4e644ca00 input=08ce94aa1eaf7b5e]*/
{
int return_value;
+ Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
return_value = isatty(fd);
_Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
return return_value;
}
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index ec68463..b3d9bdd 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -1204,10 +1204,10 @@ static void
xmlparse_dealloc(xmlparseobject *self)
{
PyObject_GC_UnTrack(self);
+ (void)xmlparse_clear(self);
if (self->itself != NULL)
XML_ParserFree(self->itself);
self->itself = NULL;
- (void)xmlparse_clear(self);
if (self->handlers != NULL) {
PyMem_Free(self->handlers);
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 898ec05..83f05b7 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -1513,10 +1513,10 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
#ifdef CAN_J1939
case CAN_J1939:
{
- return Py_BuildValue("O&KkB", PyUnicode_DecodeFSDefault,
+ return Py_BuildValue("O&KIB", PyUnicode_DecodeFSDefault,
ifname,
- a->can_addr.j1939.name,
- a->can_addr.j1939.pgn,
+ (unsigned long long)a->can_addr.j1939.name,
+ (unsigned int)a->can_addr.j1939.pgn,
a->can_addr.j1939.addr);
}
#endif /* CAN_J1939 */
@@ -2207,13 +2207,13 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
PyObject *interfaceName;
struct ifreq ifr;
Py_ssize_t len;
- uint64_t j1939_name;
- uint32_t j1939_pgn;
+ unsigned long long j1939_name; /* at least 64 bits */
+ unsigned int j1939_pgn; /* at least 32 bits */
uint8_t j1939_addr;
struct sockaddr_can *addr = &addrbuf->can;
- if (!PyArg_ParseTuple(args, "O&KkB", PyUnicode_FSConverter,
+ if (!PyArg_ParseTuple(args, "O&KIB", PyUnicode_FSConverter,
&interfaceName,
&j1939_name,
&j1939_pgn,
@@ -2241,8 +2241,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
addr->can_family = AF_CAN;
addr->can_ifindex = ifr.ifr_ifindex;
- addr->can_addr.j1939.name = j1939_name;
- addr->can_addr.j1939.pgn = j1939_pgn;
+ addr->can_addr.j1939.name = (uint64_t)j1939_name;
+ addr->can_addr.j1939.pgn = (uint32_t)j1939_pgn;
addr->can_addr.j1939.addr = j1939_addr;
*len_ret = sizeof(*addr);
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index aa97301..d02cf9d 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -46,7 +46,7 @@ PyFrame_GetLineNumber(PyFrameObject *f)
return f->f_lineno;
}
else {
- return PyCode_Addr2Line(f->f_code, f->f_lasti*2);
+ return PyCode_Addr2Line(f->f_code, f->f_lasti*sizeof(_Py_CODEUNIT));
}
}
@@ -68,7 +68,7 @@ frame_getlasti(PyFrameObject *f, void *closure)
if (f->f_lasti < 0) {
return PyLong_FromLong(-1);
}
- return PyLong_FromLong(f->f_lasti*2);
+ return PyLong_FromLong(f->f_lasti*sizeof(_Py_CODEUNIT));
}
@@ -275,8 +275,8 @@ marklines(PyCodeObject *code, int len)
}
while (PyLineTable_NextAddressRange(&bounds)) {
- assert(bounds.ar_start/2 < len);
- linestarts[bounds.ar_start/2] = bounds.ar_line;
+ assert(bounds.ar_start/(int)sizeof(_Py_CODEUNIT) < len);
+ linestarts[bounds.ar_start/sizeof(_Py_CODEUNIT)] = bounds.ar_line;
}
return linestarts;
}
diff --git a/Objects/genericaliasobject.c b/Objects/genericaliasobject.c
index 38b68e4..dbe5d89 100644
--- a/Objects/genericaliasobject.c
+++ b/Objects/genericaliasobject.c
@@ -418,6 +418,8 @@ static const char* const attr_exceptions[] = {
"__mro_entries__",
"__reduce_ex__", // needed so we don't look up object.__reduce_ex__
"__reduce__",
+ "__copy__",
+ "__deepcopy__",
NULL,
};
diff --git a/Objects/setobject.c b/Objects/setobject.c
index caff85c..9d4cfd3 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -16,7 +16,7 @@
reduces the cost of hash collisions because consecutive memory accesses
tend to be much cheaper than scattered probes. After LINEAR_PROBES steps,
we then use more of the upper bits from the hash value and apply a simple
- linear congruential random number genearator. This helps break-up long
+ linear congruential random number generator. This helps break-up long
chains of collisions.
All arithmetic on hash should ignore overflow.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index a689da0..dc06cf0 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3617,6 +3617,14 @@ PyType_FromSpec(PyType_Spec *spec)
return PyType_FromSpecWithBases(spec, NULL);
}
+/* private in 3.10 and 3.9.8+; public in 3.11 */
+PyObject *
+_PyType_GetQualName(PyTypeObject *type)
+{
+ return type_qualname(type, NULL);
+}
+
+
void *
PyType_GetSlot(PyTypeObject *type, int slot)
{
diff --git a/PCbuild/get_external.py b/PCbuild/get_external.py
index a682d38..4ecc892 100755
--- a/PCbuild/get_external.py
+++ b/PCbuild/get_external.py
@@ -3,6 +3,8 @@
import argparse
import os
import pathlib
+import sys
+import time
import zipfile
from urllib.request import urlretrieve
@@ -53,7 +55,22 @@ def main():
verbose=args.verbose,
)
final_name = args.externals_dir / args.tag
- extract_zip(args.externals_dir, zip_path).replace(final_name)
+ extracted = extract_zip(args.externals_dir, zip_path)
+ for wait in [1, 2, 3, 5, 8, 0]:
+ try:
+ extracted.replace(final_name)
+ break
+ except PermissionError as ex:
+ retry = f" Retrying in {wait}s..." if wait else ""
+ print(f"Encountered permission error '{ex}'.{retry}", file=sys.stderr)
+ time.sleep(wait)
+ else:
+ print(
+ f"ERROR: Failed to extract {final_name}.",
+ "You may need to restart your build",
+ file=sys.stderr,
+ )
+ sys.exit(1)
if __name__ == '__main__':
diff --git a/PCbuild/python.props b/PCbuild/python.props
index 42c67de..888de37 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -107,6 +107,9 @@
<!-- Sometimes the version in the registry has to .0 suffix, and sometimes it doesn't. Check and add it -->
<_RegistryVersion Condition="$(_RegistryVersion) != '' and !$(_RegistryVersion.EndsWith('.0'))">$(_RegistryVersion).0</_RegistryVersion>
+ <!-- Avoid upgrading to Windows 11 SDK for now, but assume the latest Win10 SDK is installed -->
+ <_RegistryVersion Condition="$([System.Version]::Parse($(_RegistryVersion))) >= $([System.Version]::Parse(`10.0.22000.0`))">10.0.19041.0</_RegistryVersion>
+
<!-- The minimum allowed SDK version to use for building -->
<DefaultWindowsSDKVersion>10.0.10586.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(_RegistryVersion) != '' and $([System.Version]::Parse($(_RegistryVersion))) > $([System.Version]::Parse($(DefaultWindowsSDKVersion)))">$(_RegistryVersion)</DefaultWindowsSDKVersion>
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index f8de6bc..b7d4675 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -1662,15 +1662,26 @@ static int test_run_main(void)
}
+static int test_run_main_loop(void)
+{
+ // bpo-40413: Calling Py_InitializeFromConfig()+Py_RunMain() multiple
+ // times must not crash.
+ for (int i=0; i<5; i++) {
+ int exitcode = test_run_main();
+ if (exitcode != 0) {
+ return exitcode;
+ }
+ }
+ return 0;
+}
+
+
static int test_get_argc_argv(void)
{
PyConfig config;
PyConfig_InitPythonConfig(&config);
- wchar_t *argv[] = {L"python3", L"-c",
- (L"import sys; "
- L"print(f'Py_RunMain(): sys.argv={sys.argv}')"),
- L"arg2"};
+ wchar_t *argv[] = {L"python3", L"-c", L"pass", L"arg2"};
config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv);
config_set_string(&config, &config.program_name, L"./python3");
@@ -1844,6 +1855,7 @@ static struct TestCase TestCases[] = {
{"test_init_warnoptions", test_init_warnoptions},
{"test_init_set_config", test_init_set_config},
{"test_run_main", test_run_main},
+ {"test_run_main_loop", test_run_main_loop},
{"test_get_argc_argv", test_get_argc_argv},
// Audit
diff --git a/Python/ceval.c b/Python/ceval.c
index 429ddb8..624baf5 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1297,12 +1297,6 @@ eval_frame_handle_pending(PyThreadState *tstate)
#if USE_COMPUTED_GOTOS
#define TARGET(op) op: TARGET_##op
-#define DISPATCH_GOTO() goto *opcode_targets[opcode]
-#else
-#define TARGET(op) op
-#define DISPATCH_GOTO() goto dispatch_opcode
-#endif
-
#define DISPATCH() \
{ \
if (trace_info.cframe.use_tracing OR_DTRACE_LINE OR_LLTRACE) { \
@@ -1310,8 +1304,13 @@ eval_frame_handle_pending(PyThreadState *tstate)
} \
f->f_lasti = INSTR_OFFSET(); \
NEXTOPARG(); \
- DISPATCH_GOTO(); \
+ goto *opcode_targets[opcode]; \
}
+#else
+#define TARGET(op) op
+#define DISPATCH() goto predispatch;
+#endif
+
#define CHECK_EVAL_BREAKER() \
if (_Py_atomic_load_relaxed(eval_breaker)) { \
@@ -1827,7 +1826,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
}
}
#endif
+#if USE_COMPUTED_GOTOS == 0
+ goto dispatch_opcode;
+ predispatch:
+ if (trace_info.cframe.use_tracing OR_DTRACE_LINE OR_LLTRACE) {
+ goto tracing_dispatch;
+ }
+ f->f_lasti = INSTR_OFFSET();
+ NEXTOPARG();
+#endif
dispatch_opcode:
#ifdef DYNAMIC_EXECUTION_PROFILE
#ifdef DXPAIRS
@@ -5482,7 +5490,7 @@ call_trace(Py_tracefunc func, PyObject *obj,
}
else {
initialize_trace_info(trace_info, frame);
- frame->f_lineno = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+ frame->f_lineno = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
}
result = func(obj, frame, what, arg);
frame->f_lineno = 0;
@@ -5522,8 +5530,8 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
then call the trace function if we're tracing source lines.
*/
initialize_trace_info(trace_info, frame);
- int lastline = _PyCode_CheckLineNumber(instr_prev*2, &trace_info->bounds);
- int line = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+ int lastline = _PyCode_CheckLineNumber(instr_prev*sizeof(_Py_CODEUNIT), &trace_info->bounds);
+ int line = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
if (line != -1 && frame->f_trace_lines) {
/* Trace backward edges or if line number has changed */
if (frame->f_lasti < instr_prev || line != lastline) {
@@ -6486,7 +6494,7 @@ maybe_dtrace_line(PyFrameObject *frame,
instruction window, reset the window.
*/
initialize_trace_info(trace_info, frame);
- int line = _PyCode_CheckLineNumber(frame->f_lasti*2, &trace_info->bounds);
+ int line = _PyCode_CheckLineNumber(frame->f_lasti*sizeof(_Py_CODEUNIT), &trace_info->bounds);
/* If the last instruction falls at the start of a line or if
it represents a jump backwards, update the frame's line
number and call the trace function. */
diff --git a/Python/compile.c b/Python/compile.c
index baea494..97aa224 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -6619,7 +6619,7 @@ static int
assemble_line_range(struct assembler *a)
{
int ldelta, bdelta;
- bdelta = (a->a_offset - a->a_lineno_start) * 2;
+ bdelta = (a->a_offset - a->a_lineno_start) * sizeof(_Py_CODEUNIT);
if (bdelta == 0) {
return 1;
}
@@ -6986,6 +6986,9 @@ normalize_basic_block(basicblock *bb);
static int
optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts);
+static int
+trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts);
+
/* Duplicates exit BBs, so that line numbers can be propagated to them */
static int
duplicate_exits_without_lineno(struct compiler *c);
@@ -7127,6 +7130,9 @@ assemble(struct compiler *c, int addNone)
if (duplicate_exits_without_lineno(c)) {
return NULL;
}
+ if (trim_unused_consts(c, &a, consts)) {
+ goto error;
+ }
propagate_line_numbers(&a);
guarantee_lineno_for_exits(&a, c->u->u_firstlineno);
/* Can't modify the bytecode after computing jump offsets. */
@@ -7809,6 +7815,33 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts)
return 0;
}
+// Remove trailing unused constants.
+static int
+trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts)
+{
+ assert(PyList_CheckExact(consts));
+
+ // The first constant may be docstring; keep it always.
+ int max_const_index = 0;
+ for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) {
+ for (int i = 0; i < b->b_iused; i++) {
+ if (b->b_instr[i].i_opcode == LOAD_CONST &&
+ b->b_instr[i].i_oparg > max_const_index) {
+ max_const_index = b->b_instr[i].i_oparg;
+ }
+ }
+ }
+ if (max_const_index+1 < PyList_GET_SIZE(consts)) {
+ //fprintf(stderr, "removing trailing consts: max=%d, size=%d\n",
+ // max_const_index, (int)PyList_GET_SIZE(consts));
+ if (PyList_SetSlice(consts, max_const_index+1,
+ PyList_GET_SIZE(consts), NULL) < 0) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
static inline int
is_exit_without_lineno(basicblock *b) {
return b->b_exit && b->b_instr[0].i_lineno < 0;
diff --git a/Python/errors.c b/Python/errors.c
index 9944c3a..600300e 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -3,6 +3,7 @@
#include "Python.h"
#include "pycore_initconfig.h"
+#include "pycore_object.h" // _PyType_GetQualName
#include "pycore_pyerrors.h"
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_sysmodule.h"
@@ -1323,46 +1324,45 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
}
assert(PyExceptionClass_Check(exc_type));
- const char *className = PyExceptionClass_Name(exc_type);
- if (className != NULL) {
- const char *dot = strrchr(className, '.');
- if (dot != NULL) {
- className = dot+1;
- }
- }
- PyObject *moduleName = _PyObject_GetAttrId(exc_type, &PyId___module__);
- if (moduleName == NULL || !PyUnicode_Check(moduleName)) {
- Py_XDECREF(moduleName);
+ PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__);
+ if (modulename == NULL || !PyUnicode_Check(modulename)) {
+ Py_XDECREF(modulename);
_PyErr_Clear(tstate);
if (PyFile_WriteString("<unknown>", file) < 0) {
return -1;
}
}
else {
- if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) {
- if (PyFile_WriteObject(moduleName, file, Py_PRINT_RAW) < 0) {
- Py_DECREF(moduleName);
+ if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) {
+ if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(modulename);
return -1;
}
- Py_DECREF(moduleName);
+ Py_DECREF(modulename);
if (PyFile_WriteString(".", file) < 0) {
return -1;
}
}
else {
- Py_DECREF(moduleName);
+ Py_DECREF(modulename);
}
}
- if (className == NULL) {
+
+ PyObject *qualname = _PyType_GetQualName((PyTypeObject *)exc_type);
+ if (qualname == NULL || !PyUnicode_Check(qualname)) {
+ Py_XDECREF(qualname);
+ _PyErr_Clear(tstate);
if (PyFile_WriteString("<unknown>", file) < 0) {
return -1;
}
}
else {
- if (PyFile_WriteString(className, file) < 0) {
+ if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) {
+ Py_DECREF(qualname);
return -1;
}
+ Py_DECREF(qualname);
}
if (exc_value && exc_value != Py_None) {
diff --git a/Python/fileutils.c b/Python/fileutils.c
index e8a7eda..9e732dd 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -67,9 +67,11 @@ PyObject *
_Py_device_encoding(int fd)
{
int valid;
+ Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
valid = isatty(fd);
_Py_END_SUPPRESS_IPH
+ Py_END_ALLOW_THREADS
if (!valid)
Py_RETURN_NONE;
@@ -1776,12 +1778,22 @@ _Py_write_impl(int fd, const void *buf, size_t count, int gil_held)
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
- if (count > 32767 && isatty(fd)) {
+ if (count > 32767) {
/* Issue #11395: the Windows console returns an error (12: not
enough space error) on writing into stdout if stdout mode is
binary and the length is greater than 66,000 bytes (or less,
depending on heap usage). */
- count = 32767;
+ if (gil_held) {
+ Py_BEGIN_ALLOW_THREADS
+ if (isatty(fd)) {
+ count = 32767;
+ }
+ Py_END_ALLOW_THREADS
+ } else {
+ if (isatty(fd)) {
+ count = 32767;
+ }
+ }
}
#endif
if (count > _PY_WRITE_MAX) {
diff --git a/Python/importlib.h b/Python/importlib.h
index ef28705..dd1a9f1 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -389,7 +389,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
114,72,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
0,0,3,0,0,0,4,0,0,0,79,0,0,0,115,14,
0,0,0,124,0,124,1,105,0,124,2,164,1,142,1,83,
- 0,41,2,97,46,1,0,0,114,101,109,111,118,101,95,105,
+ 0,41,1,97,46,1,0,0,114,101,109,111,118,101,95,105,
109,112,111,114,116,108,105,98,95,102,114,97,109,101,115,32,
105,110,32,105,109,112,111,114,116,46,99,32,119,105,108,108,
32,97,108,119,97,121,115,32,114,101,109,111,118,101,32,115,
@@ -408,1479 +408,1478 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
101,32,116,114,97,99,101,98,97,99,107,32,40,101,46,103,
46,32,119,104,101,110,32,101,120,101,99,117,116,105,110,103,
10,32,32,32,32,109,111,100,117,108,101,32,99,111,100,101,
- 41,10,32,32,32,32,78,114,5,0,0,0,41,3,218,1,
- 102,114,62,0,0,0,90,4,107,119,100,115,114,5,0,0,
- 0,114,5,0,0,0,114,6,0,0,0,218,25,95,99,97,
- 108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,
- 101,109,111,118,101,100,233,0,0,0,115,2,0,0,0,14,
- 8,114,74,0,0,0,114,42,0,0,0,41,1,218,9,118,
- 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,
- 0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,
- 0,115,58,0,0,0,116,0,106,1,106,2,124,1,107,5,
- 114,27,124,0,160,3,100,1,161,1,115,15,100,2,124,0,
- 23,0,125,0,116,4,124,0,106,5,124,2,142,0,116,0,
- 106,6,100,3,141,2,1,0,100,4,83,0,100,4,83,0,
- 41,5,122,61,80,114,105,110,116,32,116,104,101,32,109,101,
- 115,115,97,103,101,32,116,111,32,115,116,100,101,114,114,32,
- 105,102,32,45,118,47,80,89,84,72,79,78,86,69,82,66,
- 79,83,69,32,105,115,32,116,117,114,110,101,100,32,111,110,
- 46,41,2,250,1,35,122,7,105,109,112,111,114,116,32,122,
- 2,35,32,41,1,90,4,102,105,108,101,78,41,7,114,18,
- 0,0,0,218,5,102,108,97,103,115,218,7,118,101,114,98,
- 111,115,101,218,10,115,116,97,114,116,115,119,105,116,104,218,
- 5,112,114,105,110,116,114,50,0,0,0,218,6,115,116,100,
- 101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,75,
- 0,0,0,114,62,0,0,0,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,218,16,95,118,101,114,98,111,115,
- 101,95,109,101,115,115,97,103,101,244,0,0,0,115,10,0,
- 0,0,12,2,10,1,8,1,24,1,4,253,114,83,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,135,
- 0,102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,
- 0,131,2,1,0,124,1,83,0,41,4,122,49,68,101,99,
- 111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121,
- 32,116,104,101,32,110,97,109,101,100,32,109,111,100,117,108,
- 101,32,105,115,32,98,117,105,108,116,45,105,110,46,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,19,0,0,0,115,38,0,0,0,124,1,116,0,
- 106,1,118,1,114,14,116,2,100,1,160,3,124,1,161,1,
- 124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,
- 83,0,41,3,78,250,29,123,33,114,125,32,105,115,32,110,
- 111,116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,
- 100,117,108,101,114,19,0,0,0,41,4,114,18,0,0,0,
- 218,20,98,117,105,108,116,105,110,95,109,111,100,117,108,101,
- 95,110,97,109,101,115,218,11,73,109,112,111,114,116,69,114,
- 114,111,114,114,50,0,0,0,169,2,114,33,0,0,0,218,
- 8,102,117,108,108,110,97,109,101,169,1,218,3,102,120,110,
- 114,5,0,0,0,114,6,0,0,0,218,25,95,114,101,113,
- 117,105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,
- 97,112,112,101,114,254,0,0,0,243,10,0,0,0,10,1,
- 10,1,2,1,6,255,10,2,122,52,95,114,101,113,117,105,
- 114,101,115,95,98,117,105,108,116,105,110,46,60,108,111,99,
- 97,108,115,62,46,95,114,101,113,117,105,114,101,115,95,98,
- 117,105,108,116,105,110,95,119,114,97,112,112,101,114,78,169,
- 1,114,17,0,0,0,41,2,114,91,0,0,0,114,92,0,
- 0,0,114,5,0,0,0,114,90,0,0,0,114,6,0,0,
- 0,218,17,95,114,101,113,117,105,114,101,115,95,98,117,105,
- 108,116,105,110,252,0,0,0,243,6,0,0,0,12,2,10,
- 5,4,1,114,95,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,
- 0,114,84,0,0,0,41,4,122,47,68,101,99,111,114,97,
- 116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,
- 101,32,110,97,109,101,100,32,109,111,100,117,108,101,32,105,
- 115,32,102,114,111,122,101,110,46,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,4,0,0,0,19,0,
- 0,0,115,38,0,0,0,116,0,160,1,124,1,161,1,115,
- 14,116,2,100,1,160,3,124,1,161,1,124,1,100,2,141,
- 2,130,1,136,0,124,0,124,1,131,2,83,0,169,3,78,
- 122,27,123,33,114,125,32,105,115,32,110,111,116,32,97,32,
- 102,114,111,122,101,110,32,109,111,100,117,108,101,114,19,0,
- 0,0,41,4,114,64,0,0,0,218,9,105,115,95,102,114,
- 111,122,101,110,114,87,0,0,0,114,50,0,0,0,114,88,
- 0,0,0,114,90,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,218,24,95,114,101,113,117,105,114,101,115,95,102,114,
- 111,122,101,110,95,119,114,97,112,112,101,114,9,1,0,0,
- 114,93,0,0,0,122,50,95,114,101,113,117,105,114,101,115,
- 95,102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,
- 46,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,
- 110,95,119,114,97,112,112,101,114,78,114,94,0,0,0,41,
- 2,114,91,0,0,0,114,99,0,0,0,114,5,0,0,0,
- 114,90,0,0,0,114,6,0,0,0,218,16,95,114,101,113,
- 117,105,114,101,115,95,102,114,111,122,101,110,7,1,0,0,
- 114,96,0,0,0,114,100,0,0,0,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,
- 0,0,0,115,74,0,0,0,100,1,125,2,116,0,160,1,
- 124,2,116,2,161,2,1,0,116,3,124,1,124,0,131,2,
- 125,3,124,1,116,4,106,5,118,0,114,33,116,4,106,5,
- 124,1,25,0,125,4,116,6,124,3,124,4,131,2,1,0,
- 116,4,106,5,124,1,25,0,83,0,116,7,124,3,131,1,
- 83,0,41,3,122,130,76,111,97,100,32,116,104,101,32,115,
- 112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,
- 105,110,116,111,32,115,121,115,46,109,111,100,117,108,101,115,
- 32,97,110,100,32,114,101,116,117,114,110,32,105,116,46,10,
- 10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
- 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
- 32,85,115,101,32,108,111,97,100,101,114,46,101,120,101,99,
- 95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,
- 100,46,10,10,32,32,32,32,122,103,116,104,101,32,108,111,
- 97,100,95,109,111,100,117,108,101,40,41,32,109,101,116,104,
- 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
- 32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,
- 114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,
- 110,32,51,46,49,50,59,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,78,41,8,218,9,95,119,97,114,110,105,110,103,115,218,
- 4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,105,
- 111,110,87,97,114,110,105,110,103,218,16,115,112,101,99,95,
- 102,114,111,109,95,108,111,97,100,101,114,114,18,0,0,0,
- 218,7,109,111,100,117,108,101,115,218,5,95,101,120,101,99,
- 218,5,95,108,111,97,100,41,5,114,33,0,0,0,114,89,
- 0,0,0,218,3,109,115,103,218,4,115,112,101,99,218,6,
- 109,111,100,117,108,101,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,218,17,95,108,111,97,100,95,109,111,100,
- 117,108,101,95,115,104,105,109,19,1,0,0,115,16,0,0,
- 0,4,6,12,2,10,1,10,1,10,1,10,1,10,1,8,
- 2,114,111,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,115,
- 188,0,0,0,116,0,124,0,100,1,100,2,131,3,125,1,
- 116,0,124,0,100,3,100,2,131,3,4,0,125,2,114,18,
- 116,1,124,2,131,1,83,0,116,2,124,1,100,4,131,2,
- 114,39,122,6,124,1,160,3,124,0,161,1,87,0,83,0,
- 4,0,116,4,121,38,1,0,1,0,1,0,89,0,110,1,
- 119,0,122,5,124,0,106,5,125,3,87,0,110,11,4,0,
- 116,6,121,55,1,0,1,0,1,0,100,5,125,3,89,0,
- 110,1,119,0,122,5,124,0,106,7,125,4,87,0,110,26,
- 4,0,116,6,121,87,1,0,1,0,1,0,124,1,100,2,
- 117,0,114,79,100,6,160,8,124,3,161,1,6,0,89,0,
- 83,0,100,7,160,8,124,3,124,1,161,2,6,0,89,0,
- 83,0,119,0,100,8,160,8,124,3,124,4,161,2,83,0,
- 41,9,122,44,84,104,101,32,105,109,112,108,101,109,101,110,
- 116,97,116,105,111,110,32,111,102,32,77,111,100,117,108,101,
- 84,121,112,101,46,95,95,114,101,112,114,95,95,40,41,46,
- 218,10,95,95,108,111,97,100,101,114,95,95,78,218,8,95,
- 95,115,112,101,99,95,95,218,11,109,111,100,117,108,101,95,
- 114,101,112,114,250,1,63,250,13,60,109,111,100,117,108,101,
- 32,123,33,114,125,62,250,20,60,109,111,100,117,108,101,32,
- 123,33,114,125,32,40,123,33,114,125,41,62,250,23,60,109,
- 111,100,117,108,101,32,123,33,114,125,32,102,114,111,109,32,
- 123,33,114,125,62,41,9,114,13,0,0,0,218,22,95,109,
- 111,100,117,108,101,95,114,101,112,114,95,102,114,111,109,95,
- 115,112,101,99,114,11,0,0,0,114,114,0,0,0,218,9,
- 69,120,99,101,112,116,105,111,110,114,9,0,0,0,114,2,
- 0,0,0,218,8,95,95,102,105,108,101,95,95,114,50,0,
- 0,0,41,5,114,110,0,0,0,218,6,108,111,97,100,101,
- 114,114,109,0,0,0,114,20,0,0,0,218,8,102,105,108,
- 101,110,97,109,101,114,5,0,0,0,114,5,0,0,0,114,
- 6,0,0,0,218,12,95,109,111,100,117,108,101,95,114,101,
- 112,114,38,1,0,0,115,44,0,0,0,12,2,16,1,8,
- 1,10,1,2,1,12,1,12,1,4,1,2,255,2,3,10,
- 1,12,1,8,1,2,255,2,2,10,1,12,1,8,1,14,
- 1,16,2,2,252,12,6,114,124,0,0,0,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,114,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,2,100,2,100,3,156,3,
- 100,4,100,5,132,2,90,4,100,6,100,7,132,0,90,5,
- 100,8,100,9,132,0,90,6,101,7,100,10,100,11,132,0,
- 131,1,90,8,101,8,106,9,100,12,100,11,132,0,131,1,
- 90,8,101,7,100,13,100,14,132,0,131,1,90,10,101,7,
- 100,15,100,16,132,0,131,1,90,11,101,11,106,9,100,17,
- 100,16,132,0,131,1,90,11,100,2,83,0,41,18,218,10,
- 77,111,100,117,108,101,83,112,101,99,97,208,5,0,0,84,
- 104,101,32,115,112,101,99,105,102,105,99,97,116,105,111,110,
- 32,102,111,114,32,97,32,109,111,100,117,108,101,44,32,117,
- 115,101,100,32,102,111,114,32,108,111,97,100,105,110,103,46,
- 10,10,32,32,32,32,65,32,109,111,100,117,108,101,39,115,
- 32,115,112,101,99,32,105,115,32,116,104,101,32,115,111,117,
- 114,99,101,32,102,111,114,32,105,110,102,111,114,109,97,116,
- 105,111,110,32,97,98,111,117,116,32,116,104,101,32,109,111,
- 100,117,108,101,46,32,32,70,111,114,10,32,32,32,32,100,
- 97,116,97,32,97,115,115,111,99,105,97,116,101,100,32,119,
- 105,116,104,32,116,104,101,32,109,111,100,117,108,101,44,32,
- 105,110,99,108,117,100,105,110,103,32,115,111,117,114,99,101,
- 44,32,117,115,101,32,116,104,101,32,115,112,101,99,39,115,
- 10,32,32,32,32,108,111,97,100,101,114,46,10,10,32,32,
- 32,32,96,110,97,109,101,96,32,105,115,32,116,104,101,32,
- 97,98,115,111,108,117,116,101,32,110,97,109,101,32,111,102,
- 32,116,104,101,32,109,111,100,117,108,101,46,32,32,96,108,
- 111,97,100,101,114,96,32,105,115,32,116,104,101,32,108,111,
- 97,100,101,114,10,32,32,32,32,116,111,32,117,115,101,32,
- 119,104,101,110,32,108,111,97,100,105,110,103,32,116,104,101,
- 32,109,111,100,117,108,101,46,32,32,96,112,97,114,101,110,
- 116,96,32,105,115,32,116,104,101,32,110,97,109,101,32,111,
- 102,32,116,104,101,10,32,32,32,32,112,97,99,107,97,103,
- 101,32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,
- 105,110,46,32,32,84,104,101,32,112,97,114,101,110,116,32,
- 105,115,32,100,101,114,105,118,101,100,32,102,114,111,109,32,
- 116,104,101,32,110,97,109,101,46,10,10,32,32,32,32,96,
- 105,115,95,112,97,99,107,97,103,101,96,32,100,101,116,101,
- 114,109,105,110,101,115,32,105,102,32,116,104,101,32,109,111,
- 100,117,108,101,32,105,115,32,99,111,110,115,105,100,101,114,
- 101,100,32,97,32,112,97,99,107,97,103,101,32,111,114,10,
- 32,32,32,32,110,111,116,46,32,32,79,110,32,109,111,100,
- 117,108,101,115,32,116,104,105,115,32,105,115,32,114,101,102,
- 108,101,99,116,101,100,32,98,121,32,116,104,101,32,96,95,
- 95,112,97,116,104,95,95,96,32,97,116,116,114,105,98,117,
- 116,101,46,10,10,32,32,32,32,96,111,114,105,103,105,110,
- 96,32,105,115,32,116,104,101,32,115,112,101,99,105,102,105,
- 99,32,108,111,99,97,116,105,111,110,32,117,115,101,100,32,
- 98,121,32,116,104,101,32,108,111,97,100,101,114,32,102,114,
- 111,109,32,119,104,105,99,104,32,116,111,10,32,32,32,32,
- 108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,44,
- 32,105,102,32,116,104,97,116,32,105,110,102,111,114,109,97,
- 116,105,111,110,32,105,115,32,97,118,97,105,108,97,98,108,
- 101,46,32,32,87,104,101,110,32,102,105,108,101,110,97,109,
- 101,32,105,115,10,32,32,32,32,115,101,116,44,32,111,114,
- 105,103,105,110,32,119,105,108,108,32,109,97,116,99,104,46,
- 10,10,32,32,32,32,96,104,97,115,95,108,111,99,97,116,
- 105,111,110,96,32,105,110,100,105,99,97,116,101,115,32,116,
- 104,97,116,32,97,32,115,112,101,99,39,115,32,34,111,114,
- 105,103,105,110,34,32,114,101,102,108,101,99,116,115,32,97,
- 32,108,111,99,97,116,105,111,110,46,10,32,32,32,32,87,
- 104,101,110,32,116,104,105,115,32,105,115,32,84,114,117,101,
- 44,32,96,95,95,102,105,108,101,95,95,96,32,97,116,116,
- 114,105,98,117,116,101,32,111,102,32,116,104,101,32,109,111,
- 100,117,108,101,32,105,115,32,115,101,116,46,10,10,32,32,
- 32,32,96,99,97,99,104,101,100,96,32,105,115,32,116,104,
- 101,32,108,111,99,97,116,105,111,110,32,111,102,32,116,104,
- 101,32,99,97,99,104,101,100,32,98,121,116,101,99,111,100,
- 101,32,102,105,108,101,44,32,105,102,32,97,110,121,46,32,
- 32,73,116,10,32,32,32,32,99,111,114,114,101,115,112,111,
- 110,100,115,32,116,111,32,116,104,101,32,96,95,95,99,97,
- 99,104,101,100,95,95,96,32,97,116,116,114,105,98,117,116,
- 101,46,10,10,32,32,32,32,96,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,96,32,105,115,32,116,104,101,32,115,101,113,117,
- 101,110,99,101,32,111,102,32,112,97,116,104,32,101,110,116,
- 114,105,101,115,32,116,111,10,32,32,32,32,115,101,97,114,
- 99,104,32,119,104,101,110,32,105,109,112,111,114,116,105,110,
- 103,32,115,117,98,109,111,100,117,108,101,115,46,32,32,73,
- 102,32,115,101,116,44,32,105,115,95,112,97,99,107,97,103,
- 101,32,115,104,111,117,108,100,32,98,101,10,32,32,32,32,
- 84,114,117,101,45,45,97,110,100,32,70,97,108,115,101,32,
- 111,116,104,101,114,119,105,115,101,46,10,10,32,32,32,32,
- 80,97,99,107,97,103,101,115,32,97,114,101,32,115,105,109,
- 112,108,121,32,109,111,100,117,108,101,115,32,116,104,97,116,
- 32,40,109,97,121,41,32,104,97,118,101,32,115,117,98,109,
- 111,100,117,108,101,115,46,32,32,73,102,32,97,32,115,112,
- 101,99,10,32,32,32,32,104,97,115,32,97,32,110,111,110,
- 45,78,111,110,101,32,118,97,108,117,101,32,105,110,32,96,
- 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,96,44,32,116,104,101,
- 32,105,109,112,111,114,116,10,32,32,32,32,115,121,115,116,
- 101,109,32,119,105,108,108,32,99,111,110,115,105,100,101,114,
- 32,109,111,100,117,108,101,115,32,108,111,97,100,101,100,32,
- 102,114,111,109,32,116,104,101,32,115,112,101,99,32,97,115,
- 32,112,97,99,107,97,103,101,115,46,10,10,32,32,32,32,
- 79,110,108,121,32,102,105,110,100,101,114,115,32,40,115,101,
- 101,32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,
- 77,101,116,97,80,97,116,104,70,105,110,100,101,114,32,97,
- 110,100,10,32,32,32,32,105,109,112,111,114,116,108,105,98,
- 46,97,98,99,46,80,97,116,104,69,110,116,114,121,70,105,
- 110,100,101,114,41,32,115,104,111,117,108,100,32,109,111,100,
- 105,102,121,32,77,111,100,117,108,101,83,112,101,99,32,105,
- 110,115,116,97,110,99,101,115,46,10,10,32,32,32,32,78,
- 41,3,218,6,111,114,105,103,105,110,218,12,108,111,97,100,
- 101,114,95,115,116,97,116,101,218,10,105,115,95,112,97,99,
- 107,97,103,101,99,3,0,0,0,0,0,0,0,3,0,0,
- 0,6,0,0,0,2,0,0,0,67,0,0,0,115,54,0,
- 0,0,124,1,124,0,95,0,124,2,124,0,95,1,124,3,
- 124,0,95,2,124,4,124,0,95,3,124,5,114,16,103,0,
- 110,1,100,0,124,0,95,4,100,1,124,0,95,5,100,0,
- 124,0,95,6,100,0,83,0,41,2,78,70,41,7,114,20,
- 0,0,0,114,122,0,0,0,114,126,0,0,0,114,127,0,
- 0,0,218,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,218,13,
- 95,115,101,116,95,102,105,108,101,97,116,116,114,218,7,95,
- 99,97,99,104,101,100,41,6,114,33,0,0,0,114,20,0,
- 0,0,114,122,0,0,0,114,126,0,0,0,114,127,0,0,
- 0,114,128,0,0,0,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,114,34,0,0,0,101,1,0,0,115,14,
- 0,0,0,6,2,6,1,6,1,6,1,14,1,6,3,10,
- 1,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95,
- 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,
- 102,0,0,0,100,1,160,0,124,0,106,1,161,1,100,2,
- 160,0,124,0,106,2,161,1,103,2,125,1,124,0,106,3,
- 100,0,117,1,114,26,124,1,160,4,100,3,160,0,124,0,
- 106,3,161,1,161,1,1,0,124,0,106,5,100,0,117,1,
- 114,40,124,1,160,4,100,4,160,0,124,0,106,5,161,1,
- 161,1,1,0,100,5,160,0,124,0,106,6,106,7,100,6,
- 160,8,124,1,161,1,161,2,83,0,41,7,78,122,9,110,
- 97,109,101,61,123,33,114,125,122,11,108,111,97,100,101,114,
- 61,123,33,114,125,122,11,111,114,105,103,105,110,61,123,33,
- 114,125,122,29,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,61,123,
- 125,122,6,123,125,40,123,125,41,122,2,44,32,41,9,114,
- 50,0,0,0,114,20,0,0,0,114,122,0,0,0,114,126,
- 0,0,0,218,6,97,112,112,101,110,100,114,129,0,0,0,
- 218,9,95,95,99,108,97,115,115,95,95,114,9,0,0,0,
- 218,4,106,111,105,110,41,2,114,33,0,0,0,114,62,0,
- 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
- 0,114,53,0,0,0,113,1,0,0,115,20,0,0,0,10,
- 1,10,1,4,255,10,2,18,1,10,1,6,1,8,1,4,
- 255,22,2,122,19,77,111,100,117,108,101,83,112,101,99,46,
- 95,95,114,101,112,114,95,95,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,102,0,0,0,124,0,106,0,125,2,122,36,124,0,
- 106,1,124,1,106,1,107,2,111,38,124,0,106,2,124,1,
- 106,2,107,2,111,38,124,0,106,3,124,1,106,3,107,2,
- 111,38,124,2,124,1,106,0,107,2,111,38,124,0,106,4,
- 124,1,106,4,107,2,111,38,124,0,106,5,124,1,106,5,
- 107,2,87,0,83,0,4,0,116,6,121,50,1,0,1,0,
- 1,0,116,7,6,0,89,0,83,0,119,0,114,0,0,0,
- 0,41,8,114,129,0,0,0,114,20,0,0,0,114,122,0,
- 0,0,114,126,0,0,0,218,6,99,97,99,104,101,100,218,
- 12,104,97,115,95,108,111,99,97,116,105,111,110,114,2,0,
- 0,0,218,14,78,111,116,73,109,112,108,101,109,101,110,116,
- 101,100,41,3,114,33,0,0,0,90,5,111,116,104,101,114,
- 90,4,115,109,115,108,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,218,6,95,95,101,113,95,95,123,1,0,
- 0,115,32,0,0,0,6,1,2,1,12,1,10,1,2,255,
- 10,2,2,254,8,3,2,253,10,4,2,252,10,5,4,251,
- 12,6,8,1,2,255,122,17,77,111,100,117,108,101,83,112,
- 101,99,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,115,58,0,0,0,124,0,106,0,100,0,117,0,114,
- 26,124,0,106,1,100,0,117,1,114,26,124,0,106,2,114,
- 26,116,3,100,0,117,0,114,19,116,4,130,1,116,3,160,
- 5,124,0,106,1,161,1,124,0,95,0,124,0,106,0,83,
- 0,114,0,0,0,0,41,6,114,131,0,0,0,114,126,0,
- 0,0,114,130,0,0,0,218,19,95,98,111,111,116,115,116,
- 114,97,112,95,101,120,116,101,114,110,97,108,218,19,78,111,
- 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,
- 114,90,11,95,103,101,116,95,99,97,99,104,101,100,114,52,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,114,135,0,0,0,135,1,0,0,115,12,0,0,0,
- 10,2,16,1,8,1,4,1,14,1,6,1,122,17,77,111,
- 100,117,108,101,83,112,101,99,46,99,97,99,104,101,100,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 2,0,0,0,67,0,0,0,115,10,0,0,0,124,1,124,
- 0,95,0,100,0,83,0,114,0,0,0,0,41,1,114,131,
- 0,0,0,41,2,114,33,0,0,0,114,135,0,0,0,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,135,
- 0,0,0,144,1,0,0,115,2,0,0,0,10,2,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
- 0,0,0,67,0,0,0,115,32,0,0,0,124,0,106,0,
- 100,1,117,0,114,13,124,0,106,1,160,2,100,2,161,1,
- 100,3,25,0,83,0,124,0,106,1,83,0,41,4,122,32,
- 84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,
- 109,111,100,117,108,101,39,115,32,112,97,114,101,110,116,46,
- 78,218,1,46,114,25,0,0,0,41,3,114,129,0,0,0,
- 114,20,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
- 110,114,52,0,0,0,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,218,6,112,97,114,101,110,116,148,1,0,
- 0,115,6,0,0,0,10,3,16,1,6,2,122,17,77,111,
- 100,117,108,101,83,112,101,99,46,112,97,114,101,110,116,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
- 1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
- 0,83,0,114,0,0,0,0,41,1,114,130,0,0,0,114,
- 52,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
- 0,0,0,114,136,0,0,0,156,1,0,0,115,2,0,0,
- 0,6,2,122,23,77,111,100,117,108,101,83,112,101,99,46,
- 104,97,115,95,108,111,99,97,116,105,111,110,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
- 0,67,0,0,0,115,14,0,0,0,116,0,124,1,131,1,
- 124,0,95,1,100,0,83,0,114,0,0,0,0,41,2,218,
- 4,98,111,111,108,114,130,0,0,0,41,2,114,33,0,0,
- 0,218,5,118,97,108,117,101,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,114,136,0,0,0,160,1,0,0,
- 115,2,0,0,0,14,2,41,12,114,9,0,0,0,114,8,
- 0,0,0,114,1,0,0,0,114,10,0,0,0,114,34,0,
- 0,0,114,53,0,0,0,114,138,0,0,0,218,8,112,114,
- 111,112,101,114,116,121,114,135,0,0,0,218,6,115,101,116,
- 116,101,114,114,143,0,0,0,114,136,0,0,0,114,5,0,
- 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
- 0,114,125,0,0,0,64,1,0,0,115,34,0,0,0,8,
- 0,4,1,4,36,2,1,12,255,8,12,8,10,2,12,10,
- 1,4,8,10,1,2,3,10,1,2,7,10,1,4,3,14,
- 1,114,125,0,0,0,169,2,114,126,0,0,0,114,128,0,
- 0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6,
- 0,0,0,8,0,0,0,67,0,0,0,115,150,0,0,0,
- 116,0,124,1,100,1,131,2,114,37,116,1,100,2,117,0,
- 114,11,116,2,130,1,116,1,106,3,125,4,124,3,100,2,
- 117,0,114,24,124,4,124,0,124,1,100,3,141,2,83,0,
- 124,3,114,28,103,0,110,1,100,2,125,5,124,4,124,0,
- 124,1,124,5,100,4,141,3,83,0,124,3,100,2,117,0,
- 114,67,116,0,124,1,100,5,131,2,114,65,122,7,124,1,
- 160,4,124,0,161,1,125,3,87,0,110,13,4,0,116,5,
- 121,64,1,0,1,0,1,0,100,2,125,3,89,0,110,3,
- 119,0,100,6,125,3,116,6,124,0,124,1,124,2,124,3,
- 100,7,141,4,83,0,41,8,122,53,82,101,116,117,114,110,
- 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,
- 97,115,101,100,32,111,110,32,118,97,114,105,111,117,115,32,
- 108,111,97,100,101,114,32,109,101,116,104,111,100,115,46,90,
- 12,103,101,116,95,102,105,108,101,110,97,109,101,78,41,1,
- 114,122,0,0,0,41,2,114,122,0,0,0,114,129,0,0,
- 0,114,128,0,0,0,70,114,148,0,0,0,41,7,114,11,
- 0,0,0,114,139,0,0,0,114,140,0,0,0,218,23,115,
- 112,101,99,95,102,114,111,109,95,102,105,108,101,95,108,111,
- 99,97,116,105,111,110,114,128,0,0,0,114,87,0,0,0,
- 114,125,0,0,0,41,6,114,20,0,0,0,114,122,0,0,
- 0,114,126,0,0,0,114,128,0,0,0,114,149,0,0,0,
- 90,6,115,101,97,114,99,104,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,114,104,0,0,0,165,1,0,0,
- 115,38,0,0,0,10,2,8,1,4,1,6,1,8,2,12,
- 1,12,1,6,1,2,1,6,255,8,3,10,1,2,1,14,
- 1,12,1,8,1,2,255,4,4,16,2,114,104,0,0,0,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
- 0,8,0,0,0,67,0,0,0,115,38,1,0,0,122,5,
- 124,0,106,0,125,3,87,0,110,9,4,0,116,1,121,14,
- 1,0,1,0,1,0,89,0,110,7,119,0,124,3,100,0,
- 117,1,114,21,124,3,83,0,124,0,106,2,125,4,124,1,
- 100,0,117,0,114,43,122,5,124,0,106,3,125,1,87,0,
- 110,9,4,0,116,1,121,42,1,0,1,0,1,0,89,0,
- 110,1,119,0,122,5,124,0,106,4,125,5,87,0,110,11,
- 4,0,116,1,121,59,1,0,1,0,1,0,100,0,125,5,
- 89,0,110,1,119,0,124,2,100,0,117,0,114,87,124,5,
- 100,0,117,0,114,85,122,5,124,1,106,5,125,2,87,0,
- 110,13,4,0,116,1,121,84,1,0,1,0,1,0,100,0,
- 125,2,89,0,110,3,119,0,124,5,125,2,122,5,124,0,
- 106,6,125,6,87,0,110,11,4,0,116,1,121,103,1,0,
- 1,0,1,0,100,0,125,6,89,0,110,1,119,0,122,7,
- 116,7,124,0,106,8,131,1,125,7,87,0,110,11,4,0,
- 116,1,121,122,1,0,1,0,1,0,100,0,125,7,89,0,
- 110,1,119,0,116,9,124,4,124,1,124,2,100,1,141,3,
- 125,3,124,5,100,0,117,0,114,136,100,2,110,1,100,3,
- 124,3,95,10,124,6,124,3,95,11,124,7,124,3,95,12,
- 124,3,83,0,41,4,78,169,1,114,126,0,0,0,70,84,
- 41,13,114,113,0,0,0,114,2,0,0,0,114,9,0,0,
- 0,114,112,0,0,0,114,121,0,0,0,218,7,95,79,82,
- 73,71,73,78,218,10,95,95,99,97,99,104,101,100,95,95,
- 218,4,108,105,115,116,218,8,95,95,112,97,116,104,95,95,
- 114,125,0,0,0,114,130,0,0,0,114,135,0,0,0,114,
- 129,0,0,0,41,8,114,110,0,0,0,114,122,0,0,0,
- 114,126,0,0,0,114,109,0,0,0,114,20,0,0,0,90,
- 8,108,111,99,97,116,105,111,110,114,135,0,0,0,114,129,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,218,17,95,115,112,101,99,95,102,114,111,109,95,109,
- 111,100,117,108,101,191,1,0,0,115,84,0,0,0,2,2,
- 10,1,12,1,4,1,2,255,8,3,4,1,6,2,8,1,
- 2,1,10,1,12,1,4,2,2,254,2,3,10,1,12,1,
- 8,1,2,255,8,2,8,1,2,1,10,1,12,1,8,1,
- 2,255,4,3,2,1,10,1,12,1,8,1,2,255,2,2,
- 14,1,12,1,8,1,2,255,14,3,18,1,6,1,6,1,
- 4,1,114,155,0,0,0,70,169,1,218,8,111,118,101,114,
- 114,105,100,101,99,2,0,0,0,0,0,0,0,1,0,0,
- 0,5,0,0,0,8,0,0,0,67,0,0,0,115,190,1,
- 0,0,124,2,115,10,116,0,124,1,100,1,100,0,131,3,
- 100,0,117,0,114,26,122,6,124,0,106,1,124,1,95,2,
- 87,0,110,9,4,0,116,3,121,25,1,0,1,0,1,0,
- 89,0,110,1,119,0,124,2,115,36,116,0,124,1,100,2,
- 100,0,131,3,100,0,117,0,114,87,124,0,106,4,125,3,
- 124,3,100,0,117,0,114,72,124,0,106,5,100,0,117,1,
- 114,72,116,6,100,0,117,0,114,54,116,7,130,1,116,6,
- 106,8,125,4,124,4,160,9,124,4,161,1,125,3,124,0,
- 106,5,124,3,95,10,124,3,124,0,95,4,100,0,124,1,
- 95,11,122,5,124,3,124,1,95,12,87,0,110,9,4,0,
- 116,3,121,86,1,0,1,0,1,0,89,0,110,1,119,0,
- 124,2,115,97,116,0,124,1,100,3,100,0,131,3,100,0,
- 117,0,114,113,122,6,124,0,106,13,124,1,95,14,87,0,
- 110,9,4,0,116,3,121,112,1,0,1,0,1,0,89,0,
- 110,1,119,0,122,5,124,0,124,1,95,15,87,0,110,9,
- 4,0,116,3,121,127,1,0,1,0,1,0,89,0,110,1,
- 119,0,124,2,115,138,116,0,124,1,100,4,100,0,131,3,
- 100,0,117,0,114,159,124,0,106,5,100,0,117,1,114,159,
- 122,6,124,0,106,5,124,1,95,16,87,0,110,9,4,0,
- 116,3,121,158,1,0,1,0,1,0,89,0,110,1,119,0,
- 124,0,106,17,114,221,124,2,115,172,116,0,124,1,100,5,
- 100,0,131,3,100,0,117,0,114,188,122,6,124,0,106,18,
- 124,1,95,11,87,0,110,9,4,0,116,3,121,187,1,0,
- 1,0,1,0,89,0,110,1,119,0,124,2,115,198,116,0,
- 124,1,100,6,100,0,131,3,100,0,117,0,114,221,124,0,
- 106,19,100,0,117,1,114,221,122,7,124,0,106,19,124,1,
- 95,20,87,0,124,1,83,0,4,0,116,3,121,220,1,0,
- 1,0,1,0,89,0,124,1,83,0,119,0,124,1,83,0,
- 41,7,78,114,9,0,0,0,114,112,0,0,0,218,11,95,
- 95,112,97,99,107,97,103,101,95,95,114,154,0,0,0,114,
- 121,0,0,0,114,152,0,0,0,41,21,114,13,0,0,0,
- 114,20,0,0,0,114,9,0,0,0,114,2,0,0,0,114,
- 122,0,0,0,114,129,0,0,0,114,139,0,0,0,114,140,
- 0,0,0,218,16,95,78,97,109,101,115,112,97,99,101,76,
- 111,97,100,101,114,218,7,95,95,110,101,119,95,95,90,5,
- 95,112,97,116,104,114,121,0,0,0,114,112,0,0,0,114,
- 143,0,0,0,114,158,0,0,0,114,113,0,0,0,114,154,
- 0,0,0,114,136,0,0,0,114,126,0,0,0,114,135,0,
- 0,0,114,152,0,0,0,41,5,114,109,0,0,0,114,110,
- 0,0,0,114,157,0,0,0,114,122,0,0,0,114,159,0,
- 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
- 0,218,18,95,105,110,105,116,95,109,111,100,117,108,101,95,
- 97,116,116,114,115,236,1,0,0,115,114,0,0,0,20,4,
- 2,1,12,1,12,1,4,1,2,255,20,3,6,1,8,1,
- 10,2,8,1,4,1,6,1,10,2,8,1,6,1,6,11,
- 2,1,10,1,12,1,4,1,2,255,20,3,2,1,12,1,
- 12,1,4,1,2,255,2,3,10,1,12,1,4,1,2,255,
- 20,3,10,1,2,1,12,1,12,1,4,1,2,255,6,3,
- 20,1,2,1,12,1,12,1,4,1,2,255,20,3,10,1,
- 2,1,10,1,4,3,12,254,2,1,4,1,2,254,4,2,
- 114,161,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,82,
- 0,0,0,100,1,125,1,116,0,124,0,106,1,100,2,131,
- 2,114,15,124,0,106,1,160,2,124,0,161,1,125,1,110,
- 10,116,0,124,0,106,1,100,3,131,2,114,25,116,3,100,
- 4,131,1,130,1,124,1,100,1,117,0,114,34,116,4,124,
- 0,106,5,131,1,125,1,116,6,124,0,124,1,131,2,1,
- 0,124,1,83,0,41,5,122,43,67,114,101,97,116,101,32,
- 97,32,109,111,100,117,108,101,32,98,97,115,101,100,32,111,
- 110,32,116,104,101,32,112,114,111,118,105,100,101,100,32,115,
- 112,101,99,46,78,218,13,99,114,101,97,116,101,95,109,111,
- 100,117,108,101,218,11,101,120,101,99,95,109,111,100,117,108,
- 101,122,66,108,111,97,100,101,114,115,32,116,104,97,116,32,
- 100,101,102,105,110,101,32,101,120,101,99,95,109,111,100,117,
- 108,101,40,41,32,109,117,115,116,32,97,108,115,111,32,100,
- 101,102,105,110,101,32,99,114,101,97,116,101,95,109,111,100,
- 117,108,101,40,41,41,7,114,11,0,0,0,114,122,0,0,
- 0,114,162,0,0,0,114,87,0,0,0,114,21,0,0,0,
- 114,20,0,0,0,114,161,0,0,0,169,2,114,109,0,0,
- 0,114,110,0,0,0,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,218,16,109,111,100,117,108,101,95,102,114,
- 111,109,95,115,112,101,99,52,2,0,0,115,18,0,0,0,
- 4,3,12,1,14,3,12,1,8,1,8,2,10,1,10,1,
- 4,1,114,165,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,
- 115,100,0,0,0,124,0,106,0,100,1,117,0,114,7,100,
- 2,110,2,124,0,106,0,125,1,124,0,106,1,100,1,117,
- 0,114,32,124,0,106,2,100,1,117,0,114,25,100,3,160,
- 3,124,1,161,1,83,0,100,4,160,3,124,1,124,0,106,
- 2,161,2,83,0,124,0,106,4,114,42,100,5,160,3,124,
- 1,124,0,106,1,161,2,83,0,100,6,160,3,124,0,106,
- 0,124,0,106,1,161,2,83,0,41,7,122,38,82,101,116,
- 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32,
- 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117,
- 108,101,46,78,114,115,0,0,0,114,116,0,0,0,114,117,
- 0,0,0,114,118,0,0,0,250,18,60,109,111,100,117,108,
- 101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,20,
- 0,0,0,114,126,0,0,0,114,122,0,0,0,114,50,0,
- 0,0,114,136,0,0,0,41,2,114,109,0,0,0,114,20,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,114,119,0,0,0,69,2,0,0,115,16,0,0,0,
- 20,3,10,1,10,1,10,1,14,2,6,2,14,1,16,2,
- 114,119,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,10,0,0,0,67,0,0,0,115,24,
- 1,0,0,124,0,106,0,125,2,116,1,124,2,131,1,143,
- 123,1,0,116,2,106,3,160,4,124,2,161,1,124,1,117,
- 1,114,27,100,1,160,5,124,2,161,1,125,3,116,6,124,
- 3,124,2,100,2,141,2,130,1,122,80,124,0,106,7,100,
- 3,117,0,114,53,124,0,106,8,100,3,117,0,114,45,116,
- 6,100,4,124,0,106,0,100,2,141,2,130,1,116,9,124,
- 0,124,1,100,5,100,6,141,3,1,0,110,40,116,9,124,
- 0,124,1,100,5,100,6,141,3,1,0,116,10,124,0,106,
- 7,100,7,131,2,115,87,116,11,124,0,106,7,131,1,155,
- 0,100,8,157,2,125,3,116,12,160,13,124,3,116,14,161,
- 2,1,0,124,0,106,7,160,15,124,2,161,1,1,0,110,
- 6,124,0,106,7,160,16,124,1,161,1,1,0,87,0,116,
- 2,106,3,160,17,124,0,106,0,161,1,125,1,124,1,116,
- 2,106,3,124,0,106,0,60,0,110,14,116,2,106,3,160,
- 17,124,0,106,0,161,1,125,1,124,1,116,2,106,3,124,
- 0,106,0,60,0,119,0,87,0,100,3,4,0,4,0,131,
- 3,1,0,124,1,83,0,49,0,115,133,119,1,1,0,1,
- 0,1,0,89,0,1,0,124,1,83,0,41,9,122,70,69,
- 120,101,99,117,116,101,32,116,104,101,32,115,112,101,99,39,
- 115,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,
- 108,101,32,105,110,32,97,110,32,101,120,105,115,116,105,110,
- 103,32,109,111,100,117,108,101,39,115,32,110,97,109,101,115,
- 112,97,99,101,46,122,30,109,111,100,117,108,101,32,123,33,
- 114,125,32,110,111,116,32,105,110,32,115,121,115,46,109,111,
- 100,117,108,101,115,114,19,0,0,0,78,250,14,109,105,115,
- 115,105,110,103,32,108,111,97,100,101,114,84,114,156,0,0,
- 0,114,163,0,0,0,250,55,46,101,120,101,99,95,109,111,
- 100,117,108,101,40,41,32,110,111,116,32,102,111,117,110,100,
- 59,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,
- 111,32,108,111,97,100,95,109,111,100,117,108,101,40,41,41,
- 18,114,20,0,0,0,114,57,0,0,0,114,18,0,0,0,
- 114,105,0,0,0,114,38,0,0,0,114,50,0,0,0,114,
- 87,0,0,0,114,122,0,0,0,114,129,0,0,0,114,161,
- 0,0,0,114,11,0,0,0,114,7,0,0,0,114,101,0,
- 0,0,114,102,0,0,0,218,13,73,109,112,111,114,116,87,
- 97,114,110,105,110,103,218,11,108,111,97,100,95,109,111,100,
- 117,108,101,114,163,0,0,0,218,3,112,111,112,41,4,114,
- 109,0,0,0,114,110,0,0,0,114,20,0,0,0,114,108,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,114,106,0,0,0,86,2,0,0,115,50,0,0,0,
- 6,2,10,1,16,1,10,1,12,1,2,1,10,1,10,1,
- 14,1,16,2,14,2,12,1,16,1,12,2,14,1,12,2,
- 2,128,14,4,14,1,14,255,16,1,10,233,4,24,16,232,
- 4,24,114,106,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,
- 115,14,1,0,0,122,9,124,0,106,0,160,1,124,0,106,
- 2,161,1,1,0,87,0,110,23,1,0,1,0,1,0,124,
- 0,106,2,116,3,106,4,118,0,114,32,116,3,106,4,160,
- 5,124,0,106,2,161,1,125,1,124,1,116,3,106,4,124,
- 0,106,2,60,0,130,0,116,3,106,4,160,5,124,0,106,
- 2,161,1,125,1,124,1,116,3,106,4,124,0,106,2,60,
- 0,116,6,124,1,100,1,100,0,131,3,100,0,117,0,114,
- 70,122,6,124,0,106,0,124,1,95,7,87,0,110,9,4,
- 0,116,8,121,69,1,0,1,0,1,0,89,0,110,1,119,
- 0,116,6,124,1,100,2,100,0,131,3,100,0,117,0,114,
- 108,122,20,124,1,106,9,124,1,95,10,116,11,124,1,100,
- 3,131,2,115,97,124,0,106,2,160,12,100,4,161,1,100,
- 5,25,0,124,1,95,10,87,0,110,9,4,0,116,8,121,
- 107,1,0,1,0,1,0,89,0,110,1,119,0,116,6,124,
- 1,100,6,100,0,131,3,100,0,117,0,114,133,122,6,124,
- 0,124,1,95,13,87,0,124,1,83,0,4,0,116,8,121,
- 132,1,0,1,0,1,0,89,0,124,1,83,0,119,0,124,
- 1,83,0,41,7,78,114,112,0,0,0,114,158,0,0,0,
- 114,154,0,0,0,114,141,0,0,0,114,25,0,0,0,114,
- 113,0,0,0,41,14,114,122,0,0,0,114,170,0,0,0,
- 114,20,0,0,0,114,18,0,0,0,114,105,0,0,0,114,
- 171,0,0,0,114,13,0,0,0,114,112,0,0,0,114,2,
- 0,0,0,114,9,0,0,0,114,158,0,0,0,114,11,0,
- 0,0,114,142,0,0,0,114,113,0,0,0,114,164,0,0,
- 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
- 218,25,95,108,111,97,100,95,98,97,99,107,119,97,114,100,
- 95,99,111,109,112,97,116,105,98,108,101,116,2,0,0,115,
- 66,0,0,0,2,3,18,1,6,1,12,1,14,1,12,1,
- 2,1,14,3,12,1,16,1,2,1,12,1,12,1,4,1,
- 2,255,16,2,2,1,8,4,10,1,18,1,4,128,12,1,
- 4,1,2,255,16,2,2,1,8,1,4,3,12,254,2,1,
- 4,1,2,254,4,2,114,172,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,11,0,0,0,
- 67,0,0,0,115,242,0,0,0,124,0,106,0,100,0,117,
- 1,114,29,116,1,124,0,106,0,100,1,131,2,115,29,116,
- 2,124,0,106,0,131,1,155,0,100,2,157,2,125,1,116,
- 3,160,4,124,1,116,5,161,2,1,0,116,6,124,0,131,
- 1,83,0,116,7,124,0,131,1,125,2,100,3,124,0,95,
- 8,122,80,124,2,116,9,106,10,124,0,106,11,60,0,122,
- 26,124,0,106,0,100,0,117,0,114,62,124,0,106,12,100,
- 0,117,0,114,61,116,13,100,4,124,0,106,11,100,5,141,
- 2,130,1,110,6,124,0,106,0,160,14,124,2,161,1,1,
- 0,87,0,110,20,1,0,1,0,1,0,122,7,116,9,106,
- 10,124,0,106,11,61,0,87,0,130,0,4,0,116,15,121,
- 89,1,0,1,0,1,0,89,0,130,0,119,0,116,9,106,
- 10,160,16,124,0,106,11,161,1,125,2,124,2,116,9,106,
- 10,124,0,106,11,60,0,116,17,100,6,124,0,106,11,124,
- 0,106,0,131,3,1,0,87,0,100,7,124,0,95,8,124,
- 2,83,0,100,7,124,0,95,8,119,0,41,8,78,114,163,
- 0,0,0,114,168,0,0,0,84,114,167,0,0,0,114,19,
- 0,0,0,122,18,105,109,112,111,114,116,32,123,33,114,125,
- 32,35,32,123,33,114,125,70,41,18,114,122,0,0,0,114,
- 11,0,0,0,114,7,0,0,0,114,101,0,0,0,114,102,
- 0,0,0,114,169,0,0,0,114,172,0,0,0,114,165,0,
- 0,0,90,13,95,105,110,105,116,105,97,108,105,122,105,110,
- 103,114,18,0,0,0,114,105,0,0,0,114,20,0,0,0,
- 114,129,0,0,0,114,87,0,0,0,114,163,0,0,0,114,
- 70,0,0,0,114,171,0,0,0,114,83,0,0,0,41,3,
- 114,109,0,0,0,114,108,0,0,0,114,110,0,0,0,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,14,
- 95,108,111,97,100,95,117,110,108,111,99,107,101,100,152,2,
- 0,0,115,60,0,0,0,10,2,12,2,16,1,12,2,8,
- 1,8,2,6,5,2,1,12,1,2,1,10,1,10,1,14,
- 1,2,255,12,4,4,128,6,1,2,1,12,1,2,3,12,
- 254,2,1,2,1,2,254,14,7,12,1,18,1,6,2,4,
- 2,8,254,114,173,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
- 0,115,54,0,0,0,116,0,124,0,106,1,131,1,143,12,
- 1,0,116,2,124,0,131,1,87,0,2,0,100,1,4,0,
- 4,0,131,3,1,0,83,0,49,0,115,20,119,1,1,0,
- 1,0,1,0,89,0,1,0,100,1,83,0,41,2,122,191,
- 82,101,116,117,114,110,32,97,32,110,101,119,32,109,111,100,
- 117,108,101,32,111,98,106,101,99,116,44,32,108,111,97,100,
- 101,100,32,98,121,32,116,104,101,32,115,112,101,99,39,115,
- 32,108,111,97,100,101,114,46,10,10,32,32,32,32,84,104,
- 101,32,109,111,100,117,108,101,32,105,115,32,110,111,116,32,
- 97,100,100,101,100,32,116,111,32,105,116,115,32,112,97,114,
- 101,110,116,46,10,10,32,32,32,32,73,102,32,97,32,109,
- 111,100,117,108,101,32,105,115,32,97,108,114,101,97,100,121,
- 32,105,110,32,115,121,115,46,109,111,100,117,108,101,115,44,
- 32,116,104,97,116,32,101,120,105,115,116,105,110,103,32,109,
- 111,100,117,108,101,32,103,101,116,115,10,32,32,32,32,99,
- 108,111,98,98,101,114,101,100,46,10,10,32,32,32,32,78,
- 41,3,114,57,0,0,0,114,20,0,0,0,114,173,0,0,
- 0,169,1,114,109,0,0,0,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,114,107,0,0,0,197,2,0,0,
- 115,6,0,0,0,12,9,6,1,36,255,114,107,0,0,0,
- 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,140,0,0,0,101,0,
- 90,1,100,0,90,2,100,1,90,3,100,2,90,4,101,5,
- 100,3,100,4,132,0,131,1,90,6,101,7,100,20,100,6,
- 100,7,132,1,131,1,90,8,101,7,100,21,100,8,100,9,
- 132,1,131,1,90,9,101,5,100,10,100,11,132,0,131,1,
- 90,10,101,5,100,12,100,13,132,0,131,1,90,11,101,7,
- 101,12,100,14,100,15,132,0,131,1,131,1,90,13,101,7,
- 101,12,100,16,100,17,132,0,131,1,131,1,90,14,101,7,
- 101,12,100,18,100,19,132,0,131,1,131,1,90,15,101,7,
- 101,16,131,1,90,17,100,5,83,0,41,22,218,15,66,117,
- 105,108,116,105,110,73,109,112,111,114,116,101,114,122,144,77,
- 101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,32,
- 102,111,114,32,98,117,105,108,116,45,105,110,32,109,111,100,
- 117,108,101,115,46,10,10,32,32,32,32,65,108,108,32,109,
- 101,116,104,111,100,115,32,97,114,101,32,101,105,116,104,101,
- 114,32,99,108,97,115,115,32,111,114,32,115,116,97,116,105,
- 99,32,109,101,116,104,111,100,115,32,116,111,32,97,118,111,
- 105,100,32,116,104,101,32,110,101,101,100,32,116,111,10,32,
- 32,32,32,105,110,115,116,97,110,116,105,97,116,101,32,116,
- 104,101,32,99,108,97,115,115,46,10,10,32,32,32,32,122,
- 8,98,117,105,108,116,45,105,110,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,34,0,0,0,116,0,160,1,100,1,116,2,161,
- 2,1,0,100,2,124,0,106,3,155,2,100,3,116,4,106,
- 5,155,0,100,4,157,5,83,0,41,6,250,115,82,101,116,
- 117,114,110,32,114,101,112,114,32,102,111,114,32,116,104,101,
- 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,
- 32,32,84,104,101,32,109,101,116,104,111,100,32,105,115,32,
- 100,101,112,114,101,99,97,116,101,100,46,32,32,84,104,101,
- 32,105,109,112,111,114,116,32,109,97,99,104,105,110,101,114,
- 121,32,100,111,101,115,32,116,104,101,32,106,111,98,32,105,
- 116,115,101,108,102,46,10,10,32,32,32,32,32,32,32,32,
- 122,81,66,117,105,108,116,105,110,73,109,112,111,114,116,101,
- 114,46,109,111,100,117,108,101,95,114,101,112,114,40,41,32,
+ 41,10,32,32,32,32,114,5,0,0,0,41,3,218,1,102,
+ 114,62,0,0,0,90,4,107,119,100,115,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,218,25,95,99,97,108,
+ 108,95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,
+ 109,111,118,101,100,233,0,0,0,115,2,0,0,0,14,8,
+ 114,74,0,0,0,114,42,0,0,0,41,1,218,9,118,101,
+ 114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,0,
+ 1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,0,
+ 115,58,0,0,0,116,0,106,1,106,2,124,1,107,5,114,
+ 27,124,0,160,3,100,1,161,1,115,15,100,2,124,0,23,
+ 0,125,0,116,4,124,0,106,5,124,2,142,0,116,0,106,
+ 6,100,3,141,2,1,0,100,4,83,0,100,4,83,0,41,
+ 5,122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,
+ 115,97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,
+ 102,32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,
+ 83,69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,
+ 41,2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,
+ 35,32,41,1,90,4,102,105,108,101,78,41,7,114,18,0,
+ 0,0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,
+ 115,101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,
+ 112,114,105,110,116,114,50,0,0,0,218,6,115,116,100,101,
+ 114,114,41,3,218,7,109,101,115,115,97,103,101,114,75,0,
+ 0,0,114,62,0,0,0,114,5,0,0,0,114,5,0,0,
+ 0,114,6,0,0,0,218,16,95,118,101,114,98,111,115,101,
+ 95,109,101,115,115,97,103,101,244,0,0,0,115,10,0,0,
+ 0,12,2,10,1,8,1,24,1,4,253,114,83,0,0,0,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,3,0,0,0,3,0,0,0,243,26,0,0,0,135,0,
+ 102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,0,
+ 131,2,1,0,124,1,83,0,41,3,122,49,68,101,99,111,
+ 114,97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,
+ 116,104,101,32,110,97,109,101,100,32,109,111,100,117,108,101,
+ 32,105,115,32,98,117,105,108,116,45,105,110,46,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,
+ 0,0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,
+ 1,118,1,114,14,116,2,100,1,160,3,124,1,161,1,124,
+ 1,100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,
+ 0,41,3,78,250,29,123,33,114,125,32,105,115,32,110,111,
+ 116,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,
+ 117,108,101,114,19,0,0,0,41,4,114,18,0,0,0,218,
+ 20,98,117,105,108,116,105,110,95,109,111,100,117,108,101,95,
+ 110,97,109,101,115,218,11,73,109,112,111,114,116,69,114,114,
+ 111,114,114,50,0,0,0,169,2,114,33,0,0,0,218,8,
+ 102,117,108,108,110,97,109,101,169,1,218,3,102,120,110,114,
+ 5,0,0,0,114,6,0,0,0,218,25,95,114,101,113,117,
+ 105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,97,
+ 112,112,101,114,254,0,0,0,243,10,0,0,0,10,1,10,
+ 1,2,1,6,255,10,2,122,52,95,114,101,113,117,105,114,
+ 101,115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,
+ 108,115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,
+ 105,108,116,105,110,95,119,114,97,112,112,101,114,169,1,114,
+ 17,0,0,0,41,2,114,91,0,0,0,114,92,0,0,0,
+ 114,5,0,0,0,114,90,0,0,0,114,6,0,0,0,218,
+ 17,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,
+ 105,110,252,0,0,0,243,6,0,0,0,12,2,10,5,4,
+ 1,114,95,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,114,
+ 84,0,0,0,41,3,122,47,68,101,99,111,114,97,116,111,
+ 114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,32,
+ 110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,32,
+ 102,114,111,122,101,110,46,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,4,0,0,0,19,0,0,0,
+ 115,38,0,0,0,116,0,160,1,124,1,161,1,115,14,116,
+ 2,100,1,160,3,124,1,161,1,124,1,100,2,141,2,130,
+ 1,136,0,124,0,124,1,131,2,83,0,169,3,78,122,27,
+ 123,33,114,125,32,105,115,32,110,111,116,32,97,32,102,114,
+ 111,122,101,110,32,109,111,100,117,108,101,114,19,0,0,0,
+ 41,4,114,64,0,0,0,218,9,105,115,95,102,114,111,122,
+ 101,110,114,87,0,0,0,114,50,0,0,0,114,88,0,0,
+ 0,114,90,0,0,0,114,5,0,0,0,114,6,0,0,0,
+ 218,24,95,114,101,113,117,105,114,101,115,95,102,114,111,122,
+ 101,110,95,119,114,97,112,112,101,114,9,1,0,0,114,93,
+ 0,0,0,122,50,95,114,101,113,117,105,114,101,115,95,102,
+ 114,111,122,101,110,46,60,108,111,99,97,108,115,62,46,95,
+ 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,95,
+ 119,114,97,112,112,101,114,114,94,0,0,0,41,2,114,91,
+ 0,0,0,114,99,0,0,0,114,5,0,0,0,114,90,0,
+ 0,0,114,6,0,0,0,218,16,95,114,101,113,117,105,114,
+ 101,115,95,102,114,111,122,101,110,7,1,0,0,114,96,0,
+ 0,0,114,100,0,0,0,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,
+ 115,74,0,0,0,100,1,125,2,116,0,160,1,124,2,116,
+ 2,161,2,1,0,116,3,124,1,124,0,131,2,125,3,124,
+ 1,116,4,106,5,118,0,114,33,116,4,106,5,124,1,25,
+ 0,125,4,116,6,124,3,124,4,131,2,1,0,116,4,106,
+ 5,124,1,25,0,83,0,116,7,124,3,131,1,83,0,41,
+ 2,122,130,76,111,97,100,32,116,104,101,32,115,112,101,99,
+ 105,102,105,101,100,32,109,111,100,117,108,101,32,105,110,116,
+ 111,32,115,121,115,46,109,111,100,117,108,101,115,32,97,110,
+ 100,32,114,101,116,117,114,110,32,105,116,46,10,10,32,32,
+ 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+ 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+ 101,32,108,111,97,100,101,114,46,101,120,101,99,95,109,111,
+ 100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,
+ 10,32,32,32,32,122,103,116,104,101,32,108,111,97,100,95,
+ 109,111,100,117,108,101,40,41,32,109,101,116,104,111,100,32,
105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,
100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,
111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,
- 46,49,50,122,8,60,109,111,100,117,108,101,32,122,2,32,
- 40,122,2,41,62,78,41,6,114,101,0,0,0,114,102,0,
- 0,0,114,103,0,0,0,114,9,0,0,0,114,175,0,0,
- 0,114,151,0,0,0,169,1,114,110,0,0,0,114,5,0,
- 0,0,114,5,0,0,0,114,6,0,0,0,114,114,0,0,
- 0,223,2,0,0,115,8,0,0,0,6,7,2,1,4,255,
- 22,2,122,27,66,117,105,108,116,105,110,73,109,112,111,114,
- 116,101,114,46,109,111,100,117,108,101,95,114,101,112,114,78,
- 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,5,0,0,0,67,0,0,0,115,42,0,0,0,124,2,
- 100,0,117,1,114,6,100,0,83,0,116,0,160,1,124,1,
- 161,1,114,19,116,2,124,1,124,0,124,0,106,3,100,1,
- 141,3,83,0,100,0,83,0,169,2,78,114,150,0,0,0,
- 41,4,114,64,0,0,0,90,10,105,115,95,98,117,105,108,
- 116,105,110,114,104,0,0,0,114,151,0,0,0,169,4,218,
- 3,99,108,115,114,89,0,0,0,218,4,112,97,116,104,218,
- 6,116,97,114,103,101,116,114,5,0,0,0,114,5,0,0,
- 0,114,6,0,0,0,218,9,102,105,110,100,95,115,112,101,
- 99,234,2,0,0,115,10,0,0,0,8,2,4,1,10,1,
- 16,1,4,2,122,25,66,117,105,108,116,105,110,73,109,112,
- 111,114,116,101,114,46,102,105,110,100,95,115,112,101,99,99,
- 3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
- 4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,160,
- 1,100,1,116,2,161,2,1,0,124,0,160,3,124,1,124,
- 2,161,2,125,3,124,3,100,2,117,1,114,19,124,3,106,
- 4,83,0,100,2,83,0,41,3,122,175,70,105,110,100,32,
- 116,104,101,32,98,117,105,108,116,45,105,110,32,109,111,100,
- 117,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102,
- 32,39,112,97,116,104,39,32,105,115,32,101,118,101,114,32,
- 115,112,101,99,105,102,105,101,100,32,116,104,101,110,32,116,
- 104,101,32,115,101,97,114,99,104,32,105,115,32,99,111,110,
- 115,105,100,101,114,101,100,32,97,32,102,97,105,108,117,114,
- 101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
- 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
- 99,97,116,101,100,46,32,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,10,32,32,32,32,32,32,32,32,122,106,66,117,105,108,
- 116,105,110,73,109,112,111,114,116,101,114,46,102,105,110,100,
- 95,109,111,100,117,108,101,40,41,32,105,115,32,100,101,112,
- 114,101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,
- 101,100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,
- 110,32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,
- 115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,
- 110,115,116,101,97,100,78,41,5,114,101,0,0,0,114,102,
- 0,0,0,114,103,0,0,0,114,183,0,0,0,114,122,0,
- 0,0,41,4,114,180,0,0,0,114,89,0,0,0,114,181,
- 0,0,0,114,109,0,0,0,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,218,11,102,105,110,100,95,109,111,
- 100,117,108,101,243,2,0,0,115,10,0,0,0,6,9,2,
- 2,4,254,12,3,18,1,122,27,66,117,105,108,116,105,110,
- 73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,
- 100,117,108,101,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,46,0,
- 0,0,124,0,106,0,116,1,106,2,118,1,114,17,116,3,
- 100,1,160,4,124,0,106,0,161,1,124,0,106,0,100,2,
- 141,2,130,1,116,5,116,6,106,7,124,0,131,2,83,0,
- 41,4,122,24,67,114,101,97,116,101,32,97,32,98,117,105,
- 108,116,45,105,110,32,109,111,100,117,108,101,114,85,0,0,
- 0,114,19,0,0,0,78,41,8,114,20,0,0,0,114,18,
- 0,0,0,114,86,0,0,0,114,87,0,0,0,114,50,0,
- 0,0,114,74,0,0,0,114,64,0,0,0,90,14,99,114,
- 101,97,116,101,95,98,117,105,108,116,105,110,114,174,0,0,
- 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
- 114,162,0,0,0,2,3,0,0,115,10,0,0,0,12,3,
- 12,1,4,1,6,255,12,2,122,29,66,117,105,108,116,105,
- 110,73,109,112,111,114,116,101,114,46,99,114,101,97,116,101,
- 95,109,111,100,117,108,101,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 115,16,0,0,0,116,0,116,1,106,2,124,0,131,2,1,
- 0,100,1,83,0,41,2,122,22,69,120,101,99,32,97,32,
- 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,78,
- 41,3,114,74,0,0,0,114,64,0,0,0,90,12,101,120,
- 101,99,95,98,117,105,108,116,105,110,114,177,0,0,0,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,163,
- 0,0,0,10,3,0,0,115,2,0,0,0,16,3,122,27,
- 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
- 101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,243,4,0,0,0,100,1,83,0,41,2,122,
- 57,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
- 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
- 32,100,111,32,110,111,116,32,104,97,118,101,32,99,111,100,
- 101,32,111,98,106,101,99,116,115,46,78,114,5,0,0,0,
- 169,2,114,180,0,0,0,114,89,0,0,0,114,5,0,0,
- 0,114,5,0,0,0,114,6,0,0,0,218,8,103,101,116,
- 95,99,111,100,101,15,3,0,0,243,2,0,0,0,4,4,
- 122,24,66,117,105,108,116,105,110,73,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,2,0,0,0,1,0,0,0,67,
- 0,0,0,114,185,0,0,0,41,2,122,56,82,101,116,117,
- 114,110,32,78,111,110,101,32,97,115,32,98,117,105,108,116,
- 45,105,110,32,109,111,100,117,108,101,115,32,100,111,32,110,
- 111,116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,
- 111,100,101,46,78,114,5,0,0,0,114,186,0,0,0,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,10,
- 103,101,116,95,115,111,117,114,99,101,21,3,0,0,114,188,
- 0,0,0,122,26,66,117,105,108,116,105,110,73,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,2,0,0,0,
- 1,0,0,0,67,0,0,0,114,185,0,0,0,41,3,122,
- 52,82,101,116,117,114,110,32,70,97,108,115,101,32,97,115,
- 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
- 115,32,97,114,101,32,110,101,118,101,114,32,112,97,99,107,
- 97,103,101,115,46,70,78,114,5,0,0,0,114,186,0,0,
- 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
- 114,128,0,0,0,27,3,0,0,114,188,0,0,0,122,26,
- 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,
- 105,115,95,112,97,99,107,97,103,101,169,2,78,78,114,0,
- 0,0,0,41,18,114,9,0,0,0,114,8,0,0,0,114,
- 1,0,0,0,114,10,0,0,0,114,151,0,0,0,218,12,
- 115,116,97,116,105,99,109,101,116,104,111,100,114,114,0,0,
- 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,183,
- 0,0,0,114,184,0,0,0,114,162,0,0,0,114,163,0,
- 0,0,114,95,0,0,0,114,187,0,0,0,114,189,0,0,
- 0,114,128,0,0,0,114,111,0,0,0,114,170,0,0,0,
- 114,5,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
- 6,0,0,0,114,175,0,0,0,212,2,0,0,115,46,0,
- 0,0,8,0,4,2,4,7,2,2,10,1,2,10,12,1,
- 2,8,12,1,2,14,10,1,2,7,10,1,2,4,2,1,
- 12,1,2,4,2,1,12,1,2,4,2,1,12,1,12,4,
- 114,175,0,0,0,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,144,
- 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
- 2,90,4,101,5,100,3,100,4,132,0,131,1,90,6,101,
- 7,100,22,100,6,100,7,132,1,131,1,90,8,101,7,100,
- 23,100,8,100,9,132,1,131,1,90,9,101,5,100,10,100,
- 11,132,0,131,1,90,10,101,5,100,12,100,13,132,0,131,
- 1,90,11,101,7,100,14,100,15,132,0,131,1,90,12,101,
- 7,101,13,100,16,100,17,132,0,131,1,131,1,90,14,101,
- 7,101,13,100,18,100,19,132,0,131,1,131,1,90,15,101,
- 7,101,13,100,20,100,21,132,0,131,1,131,1,90,16,100,
- 5,83,0,41,24,218,14,70,114,111,122,101,110,73,109,112,
- 111,114,116,101,114,122,142,77,101,116,97,32,112,97,116,104,
- 32,105,109,112,111,114,116,32,102,111,114,32,102,114,111,122,
- 101,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,
- 32,65,108,108,32,109,101,116,104,111,100,115,32,97,114,101,
- 32,101,105,116,104,101,114,32,99,108,97,115,115,32,111,114,
- 32,115,116,97,116,105,99,32,109,101,116,104,111,100,115,32,
- 116,111,32,97,118,111,105,100,32,116,104,101,32,110,101,101,
- 100,32,116,111,10,32,32,32,32,105,110,115,116,97,110,116,
- 105,97,116,101,32,116,104,101,32,99,108,97,115,115,46,10,
- 10,32,32,32,32,90,6,102,114,111,122,101,110,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,116,0,160,1,100,
- 1,116,2,161,2,1,0,100,2,160,3,124,0,106,4,116,
- 5,106,6,161,2,83,0,41,4,114,176,0,0,0,122,80,
- 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,109,
- 111,100,117,108,101,95,114,101,112,114,40,41,32,105,115,32,
- 100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115,
- 108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97,
- 108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50,
- 114,166,0,0,0,78,41,7,114,101,0,0,0,114,102,0,
- 0,0,114,103,0,0,0,114,50,0,0,0,114,9,0,0,
- 0,114,193,0,0,0,114,151,0,0,0,41,1,218,1,109,
- 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
- 114,0,0,0,47,3,0,0,115,8,0,0,0,6,7,2,
- 1,4,255,16,2,122,26,70,114,111,122,101,110,73,109,112,
- 111,114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,
- 114,78,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,5,0,0,0,67,0,0,0,115,30,0,0,0,
- 116,0,160,1,124,1,161,1,114,13,116,2,124,1,124,0,
- 124,0,106,3,100,1,141,3,83,0,100,0,83,0,114,178,
- 0,0,0,41,4,114,64,0,0,0,114,98,0,0,0,114,
- 104,0,0,0,114,151,0,0,0,114,179,0,0,0,114,5,
- 0,0,0,114,5,0,0,0,114,6,0,0,0,114,183,0,
- 0,0,58,3,0,0,115,6,0,0,0,10,2,16,1,4,
- 2,122,24,70,114,111,122,101,110,73,109,112,111,114,116,101,
- 114,46,102,105,110,100,95,115,112,101,99,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,30,0,0,0,116,0,160,1,100,1,116,
- 2,161,2,1,0,116,3,160,4,124,1,161,1,114,13,124,
- 0,83,0,100,2,83,0,41,3,122,93,70,105,110,100,32,
- 97,32,102,114,111,122,101,110,32,109,111,100,117,108,101,46,
- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
- 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
- 116,101,100,46,32,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,10,
- 32,32,32,32,32,32,32,32,122,105,70,114,111,122,101,110,
- 73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,
- 100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
- 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
- 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,
- 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,
- 101,97,100,78,41,5,114,101,0,0,0,114,102,0,0,0,
- 114,103,0,0,0,114,64,0,0,0,114,98,0,0,0,41,
- 3,114,180,0,0,0,114,89,0,0,0,114,181,0,0,0,
- 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
- 184,0,0,0,65,3,0,0,115,8,0,0,0,6,7,2,
- 2,4,254,18,3,122,26,70,114,111,122,101,110,73,109,112,
- 111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,
- 101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
- 0,0,1,0,0,0,67,0,0,0,114,185,0,0,0,41,
- 2,122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,
- 101,109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,
- 117,108,101,32,99,114,101,97,116,105,111,110,46,78,114,5,
- 0,0,0,114,174,0,0,0,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,114,162,0,0,0,77,3,0,0,
- 115,2,0,0,0,4,0,122,28,70,114,111,122,101,110,73,
- 109,112,111,114,116,101,114,46,99,114,101,97,116,101,95,109,
- 111,100,117,108,101,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,64,
- 0,0,0,124,0,106,0,106,1,125,1,116,2,160,3,124,
- 1,161,1,115,18,116,4,100,1,160,5,124,1,161,1,124,
- 1,100,2,141,2,130,1,116,6,116,2,106,7,124,1,131,
- 2,125,2,116,8,124,2,124,0,106,9,131,2,1,0,100,
- 0,83,0,114,97,0,0,0,41,10,114,113,0,0,0,114,
- 20,0,0,0,114,64,0,0,0,114,98,0,0,0,114,87,
- 0,0,0,114,50,0,0,0,114,74,0,0,0,218,17,103,
- 101,116,95,102,114,111,122,101,110,95,111,98,106,101,99,116,
- 218,4,101,120,101,99,114,14,0,0,0,41,3,114,110,0,
- 0,0,114,20,0,0,0,218,4,99,111,100,101,114,5,0,
- 0,0,114,5,0,0,0,114,6,0,0,0,114,163,0,0,
- 0,81,3,0,0,115,14,0,0,0,8,2,10,1,10,1,
- 2,1,6,255,12,2,16,1,122,26,70,114,111,122,101,110,
- 73,109,112,111,114,116,101,114,46,101,120,101,99,95,109,111,
- 100,117,108,101,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,10,0,
- 0,0,116,0,124,0,124,1,131,2,83,0,41,2,122,95,
- 76,111,97,100,32,97,32,102,114,111,122,101,110,32,109,111,
- 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
- 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
- 112,114,101,99,97,116,101,100,46,32,32,85,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,10,32,32,32,32,32,32,32,32,78,
- 41,1,114,111,0,0,0,114,186,0,0,0,114,5,0,0,
- 0,114,5,0,0,0,114,6,0,0,0,114,170,0,0,0,
- 90,3,0,0,115,2,0,0,0,10,8,122,26,70,114,111,
- 122,101,110,73,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,2,0,0,0,3,0,0,0,67,0,0,0,
- 243,10,0,0,0,116,0,160,1,124,1,161,1,83,0,41,
- 2,122,45,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,102,114,111,122,101,110,32,109,111,100,117,108,101,46,
- 78,41,2,114,64,0,0,0,114,195,0,0,0,114,186,0,
+ 46,49,50,59,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,41,8,
+ 218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114,
+ 110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97,
+ 114,110,105,110,103,218,16,115,112,101,99,95,102,114,111,109,
+ 95,108,111,97,100,101,114,114,18,0,0,0,218,7,109,111,
+ 100,117,108,101,115,218,5,95,101,120,101,99,218,5,95,108,
+ 111,97,100,41,5,114,33,0,0,0,114,89,0,0,0,218,
+ 3,109,115,103,218,4,115,112,101,99,218,6,109,111,100,117,
+ 108,101,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,
+ 115,104,105,109,19,1,0,0,115,16,0,0,0,4,6,12,
+ 2,10,1,10,1,10,1,10,1,10,1,8,2,114,111,0,
+ 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,
+ 0,0,0,8,0,0,0,67,0,0,0,115,188,0,0,0,
+ 116,0,124,0,100,1,100,2,131,3,125,1,116,0,124,0,
+ 100,3,100,2,131,3,4,0,125,2,114,18,116,1,124,2,
+ 131,1,83,0,116,2,124,1,100,4,131,2,114,39,122,6,
+ 124,1,160,3,124,0,161,1,87,0,83,0,4,0,116,4,
+ 121,38,1,0,1,0,1,0,89,0,110,1,119,0,122,5,
+ 124,0,106,5,125,3,87,0,110,11,4,0,116,6,121,55,
+ 1,0,1,0,1,0,100,5,125,3,89,0,110,1,119,0,
+ 122,5,124,0,106,7,125,4,87,0,110,26,4,0,116,6,
+ 121,87,1,0,1,0,1,0,124,1,100,2,117,0,114,79,
+ 100,6,160,8,124,3,161,1,6,0,89,0,83,0,100,7,
+ 160,8,124,3,124,1,161,2,6,0,89,0,83,0,119,0,
+ 100,8,160,8,124,3,124,4,161,2,83,0,41,9,122,44,
+ 84,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,
+ 111,110,32,111,102,32,77,111,100,117,108,101,84,121,112,101,
+ 46,95,95,114,101,112,114,95,95,40,41,46,218,10,95,95,
+ 108,111,97,100,101,114,95,95,78,218,8,95,95,115,112,101,
+ 99,95,95,218,11,109,111,100,117,108,101,95,114,101,112,114,
+ 250,1,63,250,13,60,109,111,100,117,108,101,32,123,33,114,
+ 125,62,250,20,60,109,111,100,117,108,101,32,123,33,114,125,
+ 32,40,123,33,114,125,41,62,250,23,60,109,111,100,117,108,
+ 101,32,123,33,114,125,32,102,114,111,109,32,123,33,114,125,
+ 62,41,9,114,13,0,0,0,218,22,95,109,111,100,117,108,
+ 101,95,114,101,112,114,95,102,114,111,109,95,115,112,101,99,
+ 114,11,0,0,0,114,114,0,0,0,218,9,69,120,99,101,
+ 112,116,105,111,110,114,9,0,0,0,114,2,0,0,0,218,
+ 8,95,95,102,105,108,101,95,95,114,50,0,0,0,41,5,
+ 114,110,0,0,0,218,6,108,111,97,100,101,114,114,109,0,
+ 0,0,114,20,0,0,0,218,8,102,105,108,101,110,97,109,
+ 101,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
+ 218,12,95,109,111,100,117,108,101,95,114,101,112,114,38,1,
+ 0,0,115,44,0,0,0,12,2,16,1,8,1,10,1,2,
+ 1,12,1,12,1,4,1,2,255,2,3,10,1,12,1,8,
+ 1,2,255,2,2,10,1,12,1,8,1,14,1,16,2,2,
+ 252,12,6,114,124,0,0,0,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,114,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,2,100,2,100,3,156,3,100,4,100,5,
+ 132,2,90,4,100,6,100,7,132,0,90,5,100,8,100,9,
+ 132,0,90,6,101,7,100,10,100,11,132,0,131,1,90,8,
+ 101,8,106,9,100,12,100,11,132,0,131,1,90,8,101,7,
+ 100,13,100,14,132,0,131,1,90,10,101,7,100,15,100,16,
+ 132,0,131,1,90,11,101,11,106,9,100,17,100,16,132,0,
+ 131,1,90,11,100,2,83,0,41,18,218,10,77,111,100,117,
+ 108,101,83,112,101,99,97,208,5,0,0,84,104,101,32,115,
+ 112,101,99,105,102,105,99,97,116,105,111,110,32,102,111,114,
+ 32,97,32,109,111,100,117,108,101,44,32,117,115,101,100,32,
+ 102,111,114,32,108,111,97,100,105,110,103,46,10,10,32,32,
+ 32,32,65,32,109,111,100,117,108,101,39,115,32,115,112,101,
+ 99,32,105,115,32,116,104,101,32,115,111,117,114,99,101,32,
+ 102,111,114,32,105,110,102,111,114,109,97,116,105,111,110,32,
+ 97,98,111,117,116,32,116,104,101,32,109,111,100,117,108,101,
+ 46,32,32,70,111,114,10,32,32,32,32,100,97,116,97,32,
+ 97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,
+ 116,104,101,32,109,111,100,117,108,101,44,32,105,110,99,108,
+ 117,100,105,110,103,32,115,111,117,114,99,101,44,32,117,115,
+ 101,32,116,104,101,32,115,112,101,99,39,115,10,32,32,32,
+ 32,108,111,97,100,101,114,46,10,10,32,32,32,32,96,110,
+ 97,109,101,96,32,105,115,32,116,104,101,32,97,98,115,111,
+ 108,117,116,101,32,110,97,109,101,32,111,102,32,116,104,101,
+ 32,109,111,100,117,108,101,46,32,32,96,108,111,97,100,101,
+ 114,96,32,105,115,32,116,104,101,32,108,111,97,100,101,114,
+ 10,32,32,32,32,116,111,32,117,115,101,32,119,104,101,110,
+ 32,108,111,97,100,105,110,103,32,116,104,101,32,109,111,100,
+ 117,108,101,46,32,32,96,112,97,114,101,110,116,96,32,105,
+ 115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
+ 101,10,32,32,32,32,112,97,99,107,97,103,101,32,116,104,
+ 101,32,109,111,100,117,108,101,32,105,115,32,105,110,46,32,
+ 32,84,104,101,32,112,97,114,101,110,116,32,105,115,32,100,
+ 101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,
+ 110,97,109,101,46,10,10,32,32,32,32,96,105,115,95,112,
+ 97,99,107,97,103,101,96,32,100,101,116,101,114,109,105,110,
+ 101,115,32,105,102,32,116,104,101,32,109,111,100,117,108,101,
+ 32,105,115,32,99,111,110,115,105,100,101,114,101,100,32,97,
+ 32,112,97,99,107,97,103,101,32,111,114,10,32,32,32,32,
+ 110,111,116,46,32,32,79,110,32,109,111,100,117,108,101,115,
+ 32,116,104,105,115,32,105,115,32,114,101,102,108,101,99,116,
+ 101,100,32,98,121,32,116,104,101,32,96,95,95,112,97,116,
+ 104,95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,
+ 10,32,32,32,32,96,111,114,105,103,105,110,96,32,105,115,
+ 32,116,104,101,32,115,112,101,99,105,102,105,99,32,108,111,
+ 99,97,116,105,111,110,32,117,115,101,100,32,98,121,32,116,
+ 104,101,32,108,111,97,100,101,114,32,102,114,111,109,32,119,
+ 104,105,99,104,32,116,111,10,32,32,32,32,108,111,97,100,
+ 32,116,104,101,32,109,111,100,117,108,101,44,32,105,102,32,
+ 116,104,97,116,32,105,110,102,111,114,109,97,116,105,111,110,
+ 32,105,115,32,97,118,97,105,108,97,98,108,101,46,32,32,
+ 87,104,101,110,32,102,105,108,101,110,97,109,101,32,105,115,
+ 10,32,32,32,32,115,101,116,44,32,111,114,105,103,105,110,
+ 32,119,105,108,108,32,109,97,116,99,104,46,10,10,32,32,
+ 32,32,96,104,97,115,95,108,111,99,97,116,105,111,110,96,
+ 32,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,
+ 97,32,115,112,101,99,39,115,32,34,111,114,105,103,105,110,
+ 34,32,114,101,102,108,101,99,116,115,32,97,32,108,111,99,
+ 97,116,105,111,110,46,10,32,32,32,32,87,104,101,110,32,
+ 116,104,105,115,32,105,115,32,84,114,117,101,44,32,96,95,
+ 95,102,105,108,101,95,95,96,32,97,116,116,114,105,98,117,
+ 116,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,
+ 32,105,115,32,115,101,116,46,10,10,32,32,32,32,96,99,
+ 97,99,104,101,100,96,32,105,115,32,116,104,101,32,108,111,
+ 99,97,116,105,111,110,32,111,102,32,116,104,101,32,99,97,
+ 99,104,101,100,32,98,121,116,101,99,111,100,101,32,102,105,
+ 108,101,44,32,105,102,32,97,110,121,46,32,32,73,116,10,
+ 32,32,32,32,99,111,114,114,101,115,112,111,110,100,115,32,
+ 116,111,32,116,104,101,32,96,95,95,99,97,99,104,101,100,
+ 95,95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,
+ 32,32,32,32,96,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,96,
+ 32,105,115,32,116,104,101,32,115,101,113,117,101,110,99,101,
+ 32,111,102,32,112,97,116,104,32,101,110,116,114,105,101,115,
+ 32,116,111,10,32,32,32,32,115,101,97,114,99,104,32,119,
+ 104,101,110,32,105,109,112,111,114,116,105,110,103,32,115,117,
+ 98,109,111,100,117,108,101,115,46,32,32,73,102,32,115,101,
+ 116,44,32,105,115,95,112,97,99,107,97,103,101,32,115,104,
+ 111,117,108,100,32,98,101,10,32,32,32,32,84,114,117,101,
+ 45,45,97,110,100,32,70,97,108,115,101,32,111,116,104,101,
+ 114,119,105,115,101,46,10,10,32,32,32,32,80,97,99,107,
+ 97,103,101,115,32,97,114,101,32,115,105,109,112,108,121,32,
+ 109,111,100,117,108,101,115,32,116,104,97,116,32,40,109,97,
+ 121,41,32,104,97,118,101,32,115,117,98,109,111,100,117,108,
+ 101,115,46,32,32,73,102,32,97,32,115,112,101,99,10,32,
+ 32,32,32,104,97,115,32,97,32,110,111,110,45,78,111,110,
+ 101,32,118,97,108,117,101,32,105,110,32,96,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,96,44,32,116,104,101,32,105,109,112,
+ 111,114,116,10,32,32,32,32,115,121,115,116,101,109,32,119,
+ 105,108,108,32,99,111,110,115,105,100,101,114,32,109,111,100,
+ 117,108,101,115,32,108,111,97,100,101,100,32,102,114,111,109,
+ 32,116,104,101,32,115,112,101,99,32,97,115,32,112,97,99,
+ 107,97,103,101,115,46,10,10,32,32,32,32,79,110,108,121,
+ 32,102,105,110,100,101,114,115,32,40,115,101,101,32,105,109,
+ 112,111,114,116,108,105,98,46,97,98,99,46,77,101,116,97,
+ 80,97,116,104,70,105,110,100,101,114,32,97,110,100,10,32,
+ 32,32,32,105,109,112,111,114,116,108,105,98,46,97,98,99,
+ 46,80,97,116,104,69,110,116,114,121,70,105,110,100,101,114,
+ 41,32,115,104,111,117,108,100,32,109,111,100,105,102,121,32,
+ 77,111,100,117,108,101,83,112,101,99,32,105,110,115,116,97,
+ 110,99,101,115,46,10,10,32,32,32,32,78,41,3,218,6,
+ 111,114,105,103,105,110,218,12,108,111,97,100,101,114,95,115,
+ 116,97,116,101,218,10,105,115,95,112,97,99,107,97,103,101,
+ 99,3,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+ 0,2,0,0,0,67,0,0,0,115,54,0,0,0,124,1,
+ 124,0,95,0,124,2,124,0,95,1,124,3,124,0,95,2,
+ 124,4,124,0,95,3,124,5,114,16,103,0,110,1,100,0,
+ 124,0,95,4,100,1,124,0,95,5,100,0,124,0,95,6,
+ 100,0,83,0,41,2,78,70,41,7,114,20,0,0,0,114,
+ 122,0,0,0,114,126,0,0,0,114,127,0,0,0,218,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,218,13,95,115,101,116,
+ 95,102,105,108,101,97,116,116,114,218,7,95,99,97,99,104,
+ 101,100,41,6,114,33,0,0,0,114,20,0,0,0,114,122,
+ 0,0,0,114,126,0,0,0,114,127,0,0,0,114,128,0,
0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
- 0,114,187,0,0,0,100,3,0,0,243,2,0,0,0,10,
- 4,122,23,70,114,111,122,101,110,73,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,2,0,0,0,1,0,0,0,67,
- 0,0,0,114,185,0,0,0,41,2,122,54,82,101,116,117,
- 114,110,32,78,111,110,101,32,97,115,32,102,114,111,122,101,
- 110,32,109,111,100,117,108,101,115,32,100,111,32,110,111,116,
- 32,104,97,118,101,32,115,111,117,114,99,101,32,99,111,100,
- 101,46,78,114,5,0,0,0,114,186,0,0,0,114,5,0,
- 0,0,114,5,0,0,0,114,6,0,0,0,114,189,0,0,
- 0,106,3,0,0,114,188,0,0,0,122,25,70,114,111,122,
- 101,110,73,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,2,0,0,0,3,0,0,0,67,0,0,0,114,198,
- 0,0,0,41,2,122,46,82,101,116,117,114,110,32,84,114,
- 117,101,32,105,102,32,116,104,101,32,102,114,111,122,101,110,
- 32,109,111,100,117,108,101,32,105,115,32,97,32,112,97,99,
- 107,97,103,101,46,78,41,2,114,64,0,0,0,90,17,105,
- 115,95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,
- 114,186,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
- 6,0,0,0,114,128,0,0,0,112,3,0,0,114,199,0,
- 0,0,122,25,70,114,111,122,101,110,73,109,112,111,114,116,
- 101,114,46,105,115,95,112,97,99,107,97,103,101,114,190,0,
- 0,0,114,0,0,0,0,41,17,114,9,0,0,0,114,8,
- 0,0,0,114,1,0,0,0,114,10,0,0,0,114,151,0,
- 0,0,114,191,0,0,0,114,114,0,0,0,114,192,0,0,
- 0,114,183,0,0,0,114,184,0,0,0,114,162,0,0,0,
- 114,163,0,0,0,114,170,0,0,0,114,100,0,0,0,114,
- 187,0,0,0,114,189,0,0,0,114,128,0,0,0,114,5,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,114,193,0,0,0,36,3,0,0,115,48,0,0,0,
- 8,0,4,2,4,7,2,2,10,1,2,10,12,1,2,6,
- 12,1,2,11,10,1,2,3,10,1,2,8,10,1,2,9,
- 2,1,12,1,2,4,2,1,12,1,2,4,2,1,16,1,
- 114,193,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,32,
- 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
- 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,
- 6,83,0,41,7,218,18,95,73,109,112,111,114,116,76,111,
- 99,107,67,111,110,116,101,120,116,122,36,67,111,110,116,101,
- 120,116,32,109,97,110,97,103,101,114,32,102,111,114,32,116,
- 104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
- 2,0,0,0,67,0,0,0,243,12,0,0,0,116,0,160,
- 1,161,0,1,0,100,1,83,0,41,2,122,24,65,99,113,
- 117,105,114,101,32,116,104,101,32,105,109,112,111,114,116,32,
- 108,111,99,107,46,78,41,2,114,64,0,0,0,114,65,0,
- 0,0,114,52,0,0,0,114,5,0,0,0,114,5,0,0,
- 0,114,6,0,0,0,114,61,0,0,0,125,3,0,0,243,
- 2,0,0,0,12,2,122,28,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,0,0,0,0,0,0,0,
- 0,4,0,0,0,2,0,0,0,67,0,0,0,114,201,0,
- 0,0,41,2,122,60,82,101,108,101,97,115,101,32,116,104,
- 101,32,105,109,112,111,114,116,32,108,111,99,107,32,114,101,
- 103,97,114,100,108,101,115,115,32,111,102,32,97,110,121,32,
- 114,97,105,115,101,100,32,101,120,99,101,112,116,105,111,110,
- 115,46,78,41,2,114,64,0,0,0,114,67,0,0,0,41,
- 4,114,33,0,0,0,218,8,101,120,99,95,116,121,112,101,
- 218,9,101,120,99,95,118,97,108,117,101,218,13,101,120,99,
- 95,116,114,97,99,101,98,97,99,107,114,5,0,0,0,114,
- 5,0,0,0,114,6,0,0,0,114,63,0,0,0,129,3,
- 0,0,114,202,0,0,0,122,27,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,41,6,114,9,0,0,0,114,8,0,0,
- 0,114,1,0,0,0,114,10,0,0,0,114,61,0,0,0,
- 114,63,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
- 5,0,0,0,114,6,0,0,0,114,200,0,0,0,121,3,
- 0,0,115,8,0,0,0,8,0,4,2,8,2,12,4,114,
- 200,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
- 0,5,0,0,0,5,0,0,0,67,0,0,0,115,64,0,
- 0,0,124,1,160,0,100,1,124,2,100,2,24,0,161,2,
- 125,3,116,1,124,3,131,1,124,2,107,0,114,18,116,2,
- 100,3,131,1,130,1,124,3,100,4,25,0,125,4,124,0,
- 114,30,100,5,160,3,124,4,124,0,161,2,83,0,124,4,
- 83,0,41,7,122,50,82,101,115,111,108,118,101,32,97,32,
- 114,101,108,97,116,105,118,101,32,109,111,100,117,108,101,32,
- 110,97,109,101,32,116,111,32,97,110,32,97,98,115,111,108,
- 117,116,101,32,111,110,101,46,114,141,0,0,0,114,42,0,
- 0,0,122,50,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,98,101,
- 121,111,110,100,32,116,111,112,45,108,101,118,101,108,32,112,
- 97,99,107,97,103,101,114,25,0,0,0,250,5,123,125,46,
- 123,125,78,41,4,218,6,114,115,112,108,105,116,218,3,108,
- 101,110,114,87,0,0,0,114,50,0,0,0,41,5,114,20,
- 0,0,0,218,7,112,97,99,107,97,103,101,218,5,108,101,
- 118,101,108,90,4,98,105,116,115,90,4,98,97,115,101,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,13,
- 95,114,101,115,111,108,118,101,95,110,97,109,101,134,3,0,
- 0,115,10,0,0,0,16,2,12,1,8,1,8,1,20,1,
- 114,211,0,0,0,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,60,
- 0,0,0,116,0,124,0,131,1,155,0,100,1,157,2,125,
- 3,116,1,160,2,124,3,116,3,161,2,1,0,124,0,160,
- 4,124,1,124,2,161,2,125,4,124,4,100,0,117,0,114,
- 25,100,0,83,0,116,5,124,1,124,4,131,2,83,0,41,
- 2,78,122,53,46,102,105,110,100,95,115,112,101,99,40,41,
- 32,110,111,116,32,102,111,117,110,100,59,32,102,97,108,108,
- 105,110,103,32,98,97,99,107,32,116,111,32,102,105,110,100,
- 95,109,111,100,117,108,101,40,41,41,6,114,7,0,0,0,
- 114,101,0,0,0,114,102,0,0,0,114,169,0,0,0,114,
- 184,0,0,0,114,104,0,0,0,41,5,218,6,102,105,110,
- 100,101,114,114,20,0,0,0,114,181,0,0,0,114,108,0,
- 0,0,114,122,0,0,0,114,5,0,0,0,114,5,0,0,
- 0,114,6,0,0,0,218,17,95,102,105,110,100,95,115,112,
- 101,99,95,108,101,103,97,99,121,143,3,0,0,115,12,0,
- 0,0,14,1,12,2,12,1,8,1,4,1,10,1,114,213,
- 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 10,0,0,0,10,0,0,0,67,0,0,0,115,24,1,0,
- 0,116,0,106,1,125,3,124,3,100,1,117,0,114,11,116,
- 2,100,2,131,1,130,1,124,3,115,19,116,3,160,4,100,
- 3,116,5,161,2,1,0,124,0,116,0,106,6,118,0,125,
- 4,124,3,68,0,93,111,125,5,116,7,131,0,143,47,1,
- 0,122,5,124,5,106,8,125,6,87,0,110,27,4,0,116,
- 9,121,64,1,0,1,0,1,0,116,10,124,5,124,0,124,
- 1,131,3,125,7,124,7,100,1,117,0,114,62,89,0,87,
- 0,100,1,4,0,4,0,131,3,1,0,113,26,89,0,110,
- 7,119,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
- 0,100,1,4,0,4,0,131,3,1,0,110,8,49,0,115,
- 81,119,1,1,0,1,0,1,0,89,0,1,0,124,7,100,
- 1,117,1,114,137,124,4,115,133,124,0,116,0,106,6,118,
- 0,114,133,116,0,106,6,124,0,25,0,125,8,122,5,124,
- 8,106,11,125,9,87,0,110,13,4,0,116,9,121,120,1,
- 0,1,0,1,0,124,7,6,0,89,0,2,0,1,0,83,
- 0,119,0,124,9,100,1,117,0,114,129,124,7,2,0,1,
- 0,83,0,124,9,2,0,1,0,83,0,124,7,2,0,1,
- 0,83,0,113,26,100,1,83,0,41,4,122,21,70,105,110,
- 100,32,97,32,109,111,100,117,108,101,39,115,32,115,112,101,
- 99,46,78,122,53,115,121,115,46,109,101,116,97,95,112,97,
- 116,104,32,105,115,32,78,111,110,101,44,32,80,121,116,104,
- 111,110,32,105,115,32,108,105,107,101,108,121,32,115,104,117,
- 116,116,105,110,103,32,100,111,119,110,122,22,115,121,115,46,
- 109,101,116,97,95,112,97,116,104,32,105,115,32,101,109,112,
- 116,121,41,12,114,18,0,0,0,218,9,109,101,116,97,95,
- 112,97,116,104,114,87,0,0,0,114,101,0,0,0,114,102,
- 0,0,0,114,169,0,0,0,114,105,0,0,0,114,200,0,
- 0,0,114,183,0,0,0,114,2,0,0,0,114,213,0,0,
- 0,114,113,0,0,0,41,10,114,20,0,0,0,114,181,0,
- 0,0,114,182,0,0,0,114,214,0,0,0,90,9,105,115,
- 95,114,101,108,111,97,100,114,212,0,0,0,114,183,0,0,
- 0,114,109,0,0,0,114,110,0,0,0,114,113,0,0,0,
- 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,
- 10,95,102,105,110,100,95,115,112,101,99,153,3,0,0,115,
- 68,0,0,0,6,2,8,1,8,2,4,3,12,1,10,5,
- 8,1,8,1,2,1,10,1,12,1,12,1,8,1,2,1,
- 14,250,4,5,2,254,12,5,2,128,28,248,8,9,14,2,
- 10,1,2,1,10,1,12,1,12,4,2,252,8,6,8,1,
- 8,2,8,2,2,239,4,19,114,215,0,0,0,99,3,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,
- 0,0,67,0,0,0,115,110,0,0,0,116,0,124,0,116,
- 1,131,2,115,14,116,2,100,1,160,3,116,4,124,0,131,
- 1,161,1,131,1,130,1,124,2,100,2,107,0,114,22,116,
- 5,100,3,131,1,130,1,124,2,100,2,107,4,114,41,116,
- 0,124,1,116,1,131,2,115,35,116,2,100,4,131,1,130,
- 1,124,1,115,41,116,6,100,5,131,1,130,1,124,0,115,
- 51,124,2,100,2,107,2,114,53,116,5,100,6,131,1,130,
- 1,100,7,83,0,100,7,83,0,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,25,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,3,0,0,0,218,10,86,97,108,117,101,69,
- 114,114,111,114,114,87,0,0,0,169,3,114,20,0,0,0,
- 114,209,0,0,0,114,210,0,0,0,114,5,0,0,0,114,
- 5,0,0,0,114,6,0,0,0,218,13,95,115,97,110,105,
- 116,121,95,99,104,101,99,107,200,3,0,0,115,24,0,0,
- 0,10,2,18,1,8,1,8,1,8,1,10,1,8,1,4,
- 1,8,1,12,2,8,1,8,255,114,221,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,0,
- 0,0,0,9,0,0,0,8,0,0,0,67,0,0,0,115,
- 16,1,0,0,100,0,125,2,124,0,160,0,100,1,161,1,
- 100,2,25,0,125,3,124,3,114,64,124,3,116,1,106,2,
- 118,1,114,21,116,3,124,1,124,3,131,2,1,0,124,0,
- 116,1,106,2,118,0,114,31,116,1,106,2,124,0,25,0,
- 83,0,116,1,106,2,124,3,25,0,125,4,122,5,124,4,
- 106,4,125,2,87,0,110,22,4,0,116,5,121,63,1,0,
- 1,0,1,0,116,6,100,3,23,0,160,7,124,0,124,3,
- 161,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0,
- 130,2,119,0,116,9,124,0,124,2,131,2,125,6,124,6,
- 100,0,117,0,114,82,116,8,116,6,160,7,124,0,161,1,
- 124,0,100,4,141,2,130,1,116,10,124,6,131,1,125,7,
- 124,3,114,134,116,1,106,2,124,3,25,0,125,4,124,0,
- 160,0,100,1,161,1,100,5,25,0,125,8,122,9,116,11,
- 124,4,124,8,124,7,131,3,1,0,87,0,124,7,83,0,
- 4,0,116,5,121,133,1,0,1,0,1,0,100,6,124,3,
- 155,2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,
- 124,5,116,14,161,2,1,0,89,0,124,7,83,0,119,0,
- 124,7,83,0,41,8,78,114,141,0,0,0,114,25,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,19,0,0,0,233,
- 2,0,0,0,122,27,67,97,110,110,111,116,32,115,101,116,
- 32,97,110,32,97,116,116,114,105,98,117,116,101,32,111,110,
- 32,122,18,32,102,111,114,32,99,104,105,108,100,32,109,111,
- 100,117,108,101,32,41,15,114,142,0,0,0,114,18,0,0,
- 0,114,105,0,0,0,114,74,0,0,0,114,154,0,0,0,
- 114,2,0,0,0,218,8,95,69,82,82,95,77,83,71,114,
- 50,0,0,0,218,19,77,111,100,117,108,101,78,111,116,70,
- 111,117,110,100,69,114,114,111,114,114,215,0,0,0,114,173,
- 0,0,0,114,12,0,0,0,114,101,0,0,0,114,102,0,
- 0,0,114,169,0,0,0,41,9,114,20,0,0,0,218,7,
- 105,109,112,111,114,116,95,114,181,0,0,0,114,143,0,0,
- 0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,101,
- 114,108,0,0,0,114,109,0,0,0,114,110,0,0,0,90,
- 5,99,104,105,108,100,114,5,0,0,0,114,5,0,0,0,
- 114,6,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,219,3,
- 0,0,115,60,0,0,0,4,1,14,1,4,1,10,1,10,
- 1,10,2,10,1,10,1,2,1,10,1,12,1,16,1,14,
- 1,2,254,10,3,8,1,18,1,8,2,4,1,10,2,14,
- 1,2,1,14,1,4,4,12,253,16,1,14,1,4,1,2,
- 253,4,3,114,226,0,0,0,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,128,0,0,0,116,0,124,0,131,1,143,31,1,0,
- 116,1,106,2,160,3,124,0,116,4,161,2,125,2,124,2,
- 116,4,117,0,114,28,116,5,124,0,124,1,131,2,87,0,
- 2,0,100,1,4,0,4,0,131,3,1,0,83,0,87,0,
- 100,1,4,0,4,0,131,3,1,0,110,8,49,0,115,38,
- 119,1,1,0,1,0,1,0,89,0,1,0,124,2,100,1,
- 117,0,114,58,100,2,160,6,124,0,161,1,125,3,116,7,
- 124,3,124,0,100,3,141,2,130,1,116,8,124,0,131,1,
- 1,0,124,2,83,0,41,4,122,25,70,105,110,100,32,97,
- 110,100,32,108,111,97,100,32,116,104,101,32,109,111,100,117,
- 108,101,46,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,19,
- 0,0,0,41,9,114,57,0,0,0,114,18,0,0,0,114,
- 105,0,0,0,114,38,0,0,0,218,14,95,78,69,69,68,
- 83,95,76,79,65,68,73,78,71,114,226,0,0,0,114,50,
- 0,0,0,114,224,0,0,0,114,72,0,0,0,41,4,114,
- 20,0,0,0,114,225,0,0,0,114,110,0,0,0,114,82,
- 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
- 0,0,218,14,95,102,105,110,100,95,97,110,100,95,108,111,
- 97,100,254,3,0,0,115,28,0,0,0,10,2,14,1,8,
- 1,8,1,16,253,2,2,28,254,8,5,2,1,6,1,2,
- 255,12,2,8,2,4,1,114,228,0,0,0,114,25,0,0,
- 0,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,42,0,0,0,116,
- 0,124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,
- 4,114,16,116,1,124,0,124,1,124,2,131,3,125,0,116,
- 2,124,0,116,3,131,2,83,0,41,3,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,25,0,0,0,78,41,4,114,221,0,0,0,114,
- 211,0,0,0,114,228,0,0,0,218,11,95,103,99,100,95,
- 105,109,112,111,114,116,114,220,0,0,0,114,5,0,0,0,
- 114,5,0,0,0,114,6,0,0,0,114,229,0,0,0,14,
- 4,0,0,115,8,0,0,0,12,9,8,1,12,1,10,1,
- 114,229,0,0,0,169,1,218,9,114,101,99,117,114,115,105,
- 118,101,99,3,0,0,0,0,0,0,0,1,0,0,0,8,
- 0,0,0,11,0,0,0,67,0,0,0,115,218,0,0,0,
- 124,1,68,0,93,104,125,4,116,0,124,4,116,1,131,2,
- 115,32,124,3,114,17,124,0,106,2,100,1,23,0,125,5,
- 110,2,100,2,125,5,116,3,100,3,124,5,155,0,100,4,
- 116,4,124,4,131,1,106,2,155,0,157,4,131,1,130,1,
- 124,4,100,5,107,2,114,53,124,3,115,52,116,5,124,0,
- 100,6,131,2,114,52,116,6,124,0,124,0,106,7,124,2,
- 100,7,100,8,141,4,1,0,113,2,116,5,124,0,124,4,
- 131,2,115,106,100,9,160,8,124,0,106,2,124,4,161,2,
- 125,6,122,7,116,9,124,2,124,6,131,2,1,0,87,0,
- 113,2,4,0,116,10,121,105,1,0,125,7,1,0,122,21,
- 124,7,106,11,124,6,107,2,114,100,116,12,106,13,160,14,
- 124,6,116,15,161,2,100,10,117,1,114,100,87,0,89,0,
- 100,10,125,7,126,7,113,2,130,0,100,10,125,7,126,7,
- 119,1,119,0,113,2,124,0,83,0,41,11,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,122,8,46,95,
- 95,97,108,108,95,95,122,13,96,96,102,114,111,109,32,108,
- 105,115,116,39,39,122,8,73,116,101,109,32,105,110,32,122,
- 18,32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,
- 111,116,32,250,1,42,218,7,95,95,97,108,108,95,95,84,
- 114,230,0,0,0,114,206,0,0,0,78,41,16,114,216,0,
- 0,0,114,217,0,0,0,114,9,0,0,0,114,218,0,0,
- 0,114,3,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,114,233,0,
- 0,0,114,50,0,0,0,114,74,0,0,0,114,224,0,0,
- 0,114,20,0,0,0,114,18,0,0,0,114,105,0,0,0,
- 114,38,0,0,0,114,227,0,0,0,41,8,114,110,0,0,
- 0,218,8,102,114,111,109,108,105,115,116,114,225,0,0,0,
- 114,231,0,0,0,218,1,120,90,5,119,104,101,114,101,90,
- 9,102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,
- 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,234,
- 0,0,0,29,4,0,0,115,56,0,0,0,8,10,10,1,
- 4,1,12,1,4,2,10,1,8,1,8,255,8,2,14,1,
- 10,1,2,1,6,255,2,128,10,2,14,1,2,1,14,1,
- 14,1,10,4,16,1,2,255,12,2,2,1,8,128,2,249,
- 2,252,4,12,114,234,0,0,0,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,
- 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,
- 1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,117,
- 1,114,41,124,2,100,3,117,1,114,39,124,1,124,2,106,
- 1,107,3,114,39,116,2,106,3,100,4,124,1,155,2,100,
- 5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,
- 8,141,3,1,0,124,1,83,0,124,2,100,3,117,1,114,
- 48,124,2,106,1,83,0,116,2,106,3,100,9,116,4,100,
- 7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,100,
- 11,124,0,118,1,114,71,124,1,160,5,100,12,161,1,100,
- 13,25,0,125,1,124,1,83,0,41,14,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,158,0,0,0,114,113,0,0,0,78,122,
- 32,95,95,112,97,99,107,97,103,101,95,95,32,33,61,32,
- 95,95,115,112,101,99,95,95,46,112,97,114,101,110,116,32,
- 40,122,4,32,33,61,32,250,1,41,233,3,0,0,0,41,
- 1,90,10,115,116,97,99,107,108,101,118,101,108,122,89,99,
- 97,110,39,116,32,114,101,115,111,108,118,101,32,112,97,99,
- 107,97,103,101,32,102,114,111,109,32,95,95,115,112,101,99,
- 95,95,32,111,114,32,95,95,112,97,99,107,97,103,101,95,
- 95,44,32,102,97,108,108,105,110,103,32,98,97,99,107,32,
- 111,110,32,95,95,110,97,109,101,95,95,32,97,110,100,32,
- 95,95,112,97,116,104,95,95,114,9,0,0,0,114,154,0,
- 0,0,114,141,0,0,0,114,25,0,0,0,41,6,114,38,
- 0,0,0,114,143,0,0,0,114,101,0,0,0,114,102,0,
- 0,0,114,169,0,0,0,114,142,0,0,0,41,3,218,7,
- 103,108,111,98,97,108,115,114,209,0,0,0,114,109,0,0,
- 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,
- 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103,
- 101,95,95,66,4,0,0,115,42,0,0,0,10,7,10,1,
- 8,1,18,1,6,1,2,1,4,255,4,1,6,255,4,2,
- 6,254,4,3,8,1,6,1,6,2,4,2,6,254,8,3,
- 8,1,14,1,4,1,114,240,0,0,0,114,5,0,0,0,
- 99,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,
- 0,5,0,0,0,67,0,0,0,115,174,0,0,0,124,4,
- 100,1,107,2,114,9,116,0,124,0,131,1,125,5,110,18,
- 124,1,100,2,117,1,114,15,124,1,110,1,105,0,125,6,
- 116,1,124,6,131,1,125,7,116,0,124,0,124,7,124,4,
- 131,3,125,5,124,3,115,74,124,4,100,1,107,2,114,42,
- 116,0,124,0,160,2,100,3,161,1,100,1,25,0,131,1,
- 83,0,124,0,115,46,124,5,83,0,116,3,124,0,131,1,
- 116,3,124,0,160,2,100,3,161,1,100,1,25,0,131,1,
- 24,0,125,8,116,4,106,5,124,5,106,6,100,2,116,3,
- 124,5,106,6,131,1,124,8,24,0,133,2,25,0,25,0,
- 83,0,116,7,124,5,100,4,131,2,114,85,116,8,124,5,
- 124,3,116,0,131,3,83,0,124,5,83,0,41,5,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,25,0,0,0,78,
- 114,141,0,0,0,114,154,0,0,0,41,9,114,229,0,0,
- 0,114,240,0,0,0,218,9,112,97,114,116,105,116,105,111,
- 110,114,208,0,0,0,114,18,0,0,0,114,105,0,0,0,
- 114,9,0,0,0,114,11,0,0,0,114,234,0,0,0,41,
- 9,114,20,0,0,0,114,239,0,0,0,218,6,108,111,99,
- 97,108,115,114,235,0,0,0,114,210,0,0,0,114,110,0,
- 0,0,90,8,103,108,111,98,97,108,115,95,114,209,0,0,
- 0,90,7,99,117,116,95,111,102,102,114,5,0,0,0,114,
- 5,0,0,0,114,6,0,0,0,218,10,95,95,105,109,112,
- 111,114,116,95,95,93,4,0,0,115,30,0,0,0,8,11,
- 10,1,16,2,8,1,12,1,4,1,8,3,18,1,4,1,
- 4,1,26,4,30,3,10,1,12,1,4,2,114,243,0,0,
+ 0,114,34,0,0,0,101,1,0,0,115,14,0,0,0,6,
+ 2,6,1,6,1,6,1,14,1,6,3,10,1,122,19,77,
+ 111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116,
+ 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,6,0,0,0,67,0,0,0,115,102,0,0,0,
+ 100,1,160,0,124,0,106,1,161,1,100,2,160,0,124,0,
+ 106,2,161,1,103,2,125,1,124,0,106,3,100,0,117,1,
+ 114,26,124,1,160,4,100,3,160,0,124,0,106,3,161,1,
+ 161,1,1,0,124,0,106,5,100,0,117,1,114,40,124,1,
+ 160,4,100,4,160,0,124,0,106,5,161,1,161,1,1,0,
+ 100,5,160,0,124,0,106,6,106,7,100,6,160,8,124,1,
+ 161,1,161,2,83,0,41,7,78,122,9,110,97,109,101,61,
+ 123,33,114,125,122,11,108,111,97,100,101,114,61,123,33,114,
+ 125,122,11,111,114,105,103,105,110,61,123,33,114,125,122,29,
+ 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,61,123,125,122,6,123,
+ 125,40,123,125,41,122,2,44,32,41,9,114,50,0,0,0,
+ 114,20,0,0,0,114,122,0,0,0,114,126,0,0,0,218,
+ 6,97,112,112,101,110,100,114,129,0,0,0,218,9,95,95,
+ 99,108,97,115,115,95,95,114,9,0,0,0,218,4,106,111,
+ 105,110,41,2,114,33,0,0,0,114,62,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,114,53,0,
+ 0,0,113,1,0,0,115,20,0,0,0,10,1,10,1,4,
+ 255,10,2,18,1,10,1,6,1,8,1,4,255,22,2,122,
+ 19,77,111,100,117,108,101,83,112,101,99,46,95,95,114,101,
+ 112,114,95,95,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,102,0,
+ 0,0,124,0,106,0,125,2,122,36,124,0,106,1,124,1,
+ 106,1,107,2,111,38,124,0,106,2,124,1,106,2,107,2,
+ 111,38,124,0,106,3,124,1,106,3,107,2,111,38,124,2,
+ 124,1,106,0,107,2,111,38,124,0,106,4,124,1,106,4,
+ 107,2,111,38,124,0,106,5,124,1,106,5,107,2,87,0,
+ 83,0,4,0,116,6,121,50,1,0,1,0,1,0,116,7,
+ 6,0,89,0,83,0,119,0,114,0,0,0,0,41,8,114,
+ 129,0,0,0,114,20,0,0,0,114,122,0,0,0,114,126,
+ 0,0,0,218,6,99,97,99,104,101,100,218,12,104,97,115,
+ 95,108,111,99,97,116,105,111,110,114,2,0,0,0,218,14,
+ 78,111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,
+ 114,33,0,0,0,90,5,111,116,104,101,114,90,4,115,109,
+ 115,108,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,218,6,95,95,101,113,95,95,123,1,0,0,115,32,0,
+ 0,0,6,1,2,1,12,1,10,1,2,255,10,2,2,254,
+ 8,3,2,253,10,4,2,252,10,5,4,251,12,6,8,1,
+ 2,255,122,17,77,111,100,117,108,101,83,112,101,99,46,95,
+ 95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,58,
+ 0,0,0,124,0,106,0,100,0,117,0,114,26,124,0,106,
+ 1,100,0,117,1,114,26,124,0,106,2,114,26,116,3,100,
+ 0,117,0,114,19,116,4,130,1,116,3,160,5,124,0,106,
+ 1,161,1,124,0,95,0,124,0,106,0,83,0,114,0,0,
+ 0,0,41,6,114,131,0,0,0,114,126,0,0,0,114,130,
+ 0,0,0,218,19,95,98,111,111,116,115,116,114,97,112,95,
+ 101,120,116,101,114,110,97,108,218,19,78,111,116,73,109,112,
+ 108,101,109,101,110,116,101,100,69,114,114,111,114,90,11,95,
+ 103,101,116,95,99,97,99,104,101,100,114,52,0,0,0,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,135,
+ 0,0,0,135,1,0,0,115,12,0,0,0,10,2,16,1,
+ 8,1,4,1,14,1,6,1,122,17,77,111,100,117,108,101,
+ 83,112,101,99,46,99,97,99,104,101,100,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
+ 67,0,0,0,115,10,0,0,0,124,1,124,0,95,0,100,
+ 0,83,0,114,0,0,0,0,41,1,114,131,0,0,0,41,
+ 2,114,33,0,0,0,114,135,0,0,0,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,114,135,0,0,0,144,
+ 1,0,0,115,2,0,0,0,10,2,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
+ 0,0,0,115,32,0,0,0,124,0,106,0,100,1,117,0,
+ 114,13,124,0,106,1,160,2,100,2,161,1,100,3,25,0,
+ 83,0,124,0,106,1,83,0,41,4,122,32,84,104,101,32,
+ 110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,
+ 108,101,39,115,32,112,97,114,101,110,116,46,78,218,1,46,
+ 114,25,0,0,0,41,3,114,129,0,0,0,114,20,0,0,
+ 0,218,10,114,112,97,114,116,105,116,105,111,110,114,52,0,
+ 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,218,6,112,97,114,101,110,116,148,1,0,0,115,6,0,
+ 0,0,10,3,16,1,6,2,122,17,77,111,100,117,108,101,
+ 83,112,101,99,46,112,97,114,101,110,116,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,
+ 67,0,0,0,115,6,0,0,0,124,0,106,0,83,0,114,
+ 0,0,0,0,41,1,114,130,0,0,0,114,52,0,0,0,
+ 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
+ 136,0,0,0,156,1,0,0,115,2,0,0,0,6,2,122,
+ 23,77,111,100,117,108,101,83,112,101,99,46,104,97,115,95,
+ 108,111,99,97,116,105,111,110,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,
+ 0,115,14,0,0,0,116,0,124,1,131,1,124,0,95,1,
+ 100,0,83,0,114,0,0,0,0,41,2,218,4,98,111,111,
+ 108,114,130,0,0,0,41,2,114,33,0,0,0,218,5,118,
+ 97,108,117,101,114,5,0,0,0,114,5,0,0,0,114,6,
+ 0,0,0,114,136,0,0,0,160,1,0,0,115,2,0,0,
+ 0,14,2,41,12,114,9,0,0,0,114,8,0,0,0,114,
+ 1,0,0,0,114,10,0,0,0,114,34,0,0,0,114,53,
+ 0,0,0,114,138,0,0,0,218,8,112,114,111,112,101,114,
+ 116,121,114,135,0,0,0,218,6,115,101,116,116,101,114,114,
+ 143,0,0,0,114,136,0,0,0,114,5,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,114,125,0,
+ 0,0,64,1,0,0,115,34,0,0,0,8,0,4,1,4,
+ 36,2,1,12,255,8,12,8,10,2,12,10,1,4,8,10,
+ 1,2,3,10,1,2,7,10,1,4,3,14,1,114,125,0,
+ 0,0,169,2,114,126,0,0,0,114,128,0,0,0,99,2,
+ 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,8,
+ 0,0,0,67,0,0,0,115,150,0,0,0,116,0,124,1,
+ 100,1,131,2,114,37,116,1,100,2,117,0,114,11,116,2,
+ 130,1,116,1,106,3,125,4,124,3,100,2,117,0,114,24,
+ 124,4,124,0,124,1,100,3,141,2,83,0,124,3,114,28,
+ 103,0,110,1,100,2,125,5,124,4,124,0,124,1,124,5,
+ 100,4,141,3,83,0,124,3,100,2,117,0,114,67,116,0,
+ 124,1,100,5,131,2,114,65,122,7,124,1,160,4,124,0,
+ 161,1,125,3,87,0,110,13,4,0,116,5,121,64,1,0,
+ 1,0,1,0,100,2,125,3,89,0,110,3,119,0,100,6,
+ 125,3,116,6,124,0,124,1,124,2,124,3,100,7,141,4,
+ 83,0,41,8,122,53,82,101,116,117,114,110,32,97,32,109,
+ 111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
+ 32,111,110,32,118,97,114,105,111,117,115,32,108,111,97,100,
+ 101,114,32,109,101,116,104,111,100,115,46,90,12,103,101,116,
+ 95,102,105,108,101,110,97,109,101,78,41,1,114,122,0,0,
+ 0,41,2,114,122,0,0,0,114,129,0,0,0,114,128,0,
+ 0,0,70,114,148,0,0,0,41,7,114,11,0,0,0,114,
+ 139,0,0,0,114,140,0,0,0,218,23,115,112,101,99,95,
+ 102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,105,
+ 111,110,114,128,0,0,0,114,87,0,0,0,114,125,0,0,
+ 0,41,6,114,20,0,0,0,114,122,0,0,0,114,126,0,
+ 0,0,114,128,0,0,0,114,149,0,0,0,90,6,115,101,
+ 97,114,99,104,114,5,0,0,0,114,5,0,0,0,114,6,
+ 0,0,0,114,104,0,0,0,165,1,0,0,115,38,0,0,
+ 0,10,2,8,1,4,1,6,1,8,2,12,1,12,1,6,
+ 1,2,1,6,255,8,3,10,1,2,1,14,1,12,1,8,
+ 1,2,255,4,4,16,2,114,104,0,0,0,99,3,0,0,
+ 0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,
+ 0,67,0,0,0,115,38,1,0,0,122,5,124,0,106,0,
+ 125,3,87,0,110,9,4,0,116,1,121,14,1,0,1,0,
+ 1,0,89,0,110,7,119,0,124,3,100,0,117,1,114,21,
+ 124,3,83,0,124,0,106,2,125,4,124,1,100,0,117,0,
+ 114,43,122,5,124,0,106,3,125,1,87,0,110,9,4,0,
+ 116,1,121,42,1,0,1,0,1,0,89,0,110,1,119,0,
+ 122,5,124,0,106,4,125,5,87,0,110,11,4,0,116,1,
+ 121,59,1,0,1,0,1,0,100,0,125,5,89,0,110,1,
+ 119,0,124,2,100,0,117,0,114,87,124,5,100,0,117,0,
+ 114,85,122,5,124,1,106,5,125,2,87,0,110,13,4,0,
+ 116,1,121,84,1,0,1,0,1,0,100,0,125,2,89,0,
+ 110,3,119,0,124,5,125,2,122,5,124,0,106,6,125,6,
+ 87,0,110,11,4,0,116,1,121,103,1,0,1,0,1,0,
+ 100,0,125,6,89,0,110,1,119,0,122,7,116,7,124,0,
+ 106,8,131,1,125,7,87,0,110,11,4,0,116,1,121,122,
+ 1,0,1,0,1,0,100,0,125,7,89,0,110,1,119,0,
+ 116,9,124,4,124,1,124,2,100,1,141,3,125,3,124,5,
+ 100,0,117,0,114,136,100,2,110,1,100,3,124,3,95,10,
+ 124,6,124,3,95,11,124,7,124,3,95,12,124,3,83,0,
+ 41,4,78,169,1,114,126,0,0,0,70,84,41,13,114,113,
+ 0,0,0,114,2,0,0,0,114,9,0,0,0,114,112,0,
+ 0,0,114,121,0,0,0,218,7,95,79,82,73,71,73,78,
+ 218,10,95,95,99,97,99,104,101,100,95,95,218,4,108,105,
+ 115,116,218,8,95,95,112,97,116,104,95,95,114,125,0,0,
+ 0,114,130,0,0,0,114,135,0,0,0,114,129,0,0,0,
+ 41,8,114,110,0,0,0,114,122,0,0,0,114,126,0,0,
+ 0,114,109,0,0,0,114,20,0,0,0,90,8,108,111,99,
+ 97,116,105,111,110,114,135,0,0,0,114,129,0,0,0,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,17,
+ 95,115,112,101,99,95,102,114,111,109,95,109,111,100,117,108,
+ 101,191,1,0,0,115,84,0,0,0,2,2,10,1,12,1,
+ 4,1,2,255,8,3,4,1,6,2,8,1,2,1,10,1,
+ 12,1,4,2,2,254,2,3,10,1,12,1,8,1,2,255,
+ 8,2,8,1,2,1,10,1,12,1,8,1,2,255,4,3,
+ 2,1,10,1,12,1,8,1,2,255,2,2,14,1,12,1,
+ 8,1,2,255,14,3,18,1,6,1,6,1,4,1,114,155,
+ 0,0,0,70,169,1,218,8,111,118,101,114,114,105,100,101,
+ 99,2,0,0,0,0,0,0,0,1,0,0,0,5,0,0,
+ 0,8,0,0,0,67,0,0,0,115,190,1,0,0,124,2,
+ 115,10,116,0,124,1,100,1,100,0,131,3,100,0,117,0,
+ 114,26,122,6,124,0,106,1,124,1,95,2,87,0,110,9,
+ 4,0,116,3,121,25,1,0,1,0,1,0,89,0,110,1,
+ 119,0,124,2,115,36,116,0,124,1,100,2,100,0,131,3,
+ 100,0,117,0,114,87,124,0,106,4,125,3,124,3,100,0,
+ 117,0,114,72,124,0,106,5,100,0,117,1,114,72,116,6,
+ 100,0,117,0,114,54,116,7,130,1,116,6,106,8,125,4,
+ 124,4,160,9,124,4,161,1,125,3,124,0,106,5,124,3,
+ 95,10,124,3,124,0,95,4,100,0,124,1,95,11,122,5,
+ 124,3,124,1,95,12,87,0,110,9,4,0,116,3,121,86,
+ 1,0,1,0,1,0,89,0,110,1,119,0,124,2,115,97,
+ 116,0,124,1,100,3,100,0,131,3,100,0,117,0,114,113,
+ 122,6,124,0,106,13,124,1,95,14,87,0,110,9,4,0,
+ 116,3,121,112,1,0,1,0,1,0,89,0,110,1,119,0,
+ 122,5,124,0,124,1,95,15,87,0,110,9,4,0,116,3,
+ 121,127,1,0,1,0,1,0,89,0,110,1,119,0,124,2,
+ 115,138,116,0,124,1,100,4,100,0,131,3,100,0,117,0,
+ 114,159,124,0,106,5,100,0,117,1,114,159,122,6,124,0,
+ 106,5,124,1,95,16,87,0,110,9,4,0,116,3,121,158,
+ 1,0,1,0,1,0,89,0,110,1,119,0,124,0,106,17,
+ 114,221,124,2,115,172,116,0,124,1,100,5,100,0,131,3,
+ 100,0,117,0,114,188,122,6,124,0,106,18,124,1,95,11,
+ 87,0,110,9,4,0,116,3,121,187,1,0,1,0,1,0,
+ 89,0,110,1,119,0,124,2,115,198,116,0,124,1,100,6,
+ 100,0,131,3,100,0,117,0,114,221,124,0,106,19,100,0,
+ 117,1,114,221,122,7,124,0,106,19,124,1,95,20,87,0,
+ 124,1,83,0,4,0,116,3,121,220,1,0,1,0,1,0,
+ 89,0,124,1,83,0,119,0,124,1,83,0,41,7,78,114,
+ 9,0,0,0,114,112,0,0,0,218,11,95,95,112,97,99,
+ 107,97,103,101,95,95,114,154,0,0,0,114,121,0,0,0,
+ 114,152,0,0,0,41,21,114,13,0,0,0,114,20,0,0,
+ 0,114,9,0,0,0,114,2,0,0,0,114,122,0,0,0,
+ 114,129,0,0,0,114,139,0,0,0,114,140,0,0,0,218,
+ 16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+ 114,218,7,95,95,110,101,119,95,95,90,5,95,112,97,116,
+ 104,114,121,0,0,0,114,112,0,0,0,114,143,0,0,0,
+ 114,158,0,0,0,114,113,0,0,0,114,154,0,0,0,114,
+ 136,0,0,0,114,126,0,0,0,114,135,0,0,0,114,152,
+ 0,0,0,41,5,114,109,0,0,0,114,110,0,0,0,114,
+ 157,0,0,0,114,122,0,0,0,114,159,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,218,18,95,
+ 105,110,105,116,95,109,111,100,117,108,101,95,97,116,116,114,
+ 115,236,1,0,0,115,114,0,0,0,20,4,2,1,12,1,
+ 12,1,4,1,2,255,20,3,6,1,8,1,10,2,8,1,
+ 4,1,6,1,10,2,8,1,6,1,6,11,2,1,10,1,
+ 12,1,4,1,2,255,20,3,2,1,12,1,12,1,4,1,
+ 2,255,2,3,10,1,12,1,4,1,2,255,20,3,10,1,
+ 2,1,12,1,12,1,4,1,2,255,6,3,20,1,2,1,
+ 12,1,12,1,4,1,2,255,20,3,10,1,2,1,10,1,
+ 4,3,12,254,2,1,4,1,2,254,4,2,114,161,0,0,
0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,
- 0,160,1,124,0,161,1,125,1,124,1,100,0,117,0,114,
- 15,116,2,100,1,124,0,23,0,131,1,130,1,116,3,124,
- 1,131,1,83,0,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,175,0,0,0,114,183,0,0,0,114,
- 87,0,0,0,114,173,0,0,0,41,2,114,20,0,0,0,
- 114,109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
- 6,0,0,0,218,18,95,98,117,105,108,116,105,110,95,102,
- 114,111,109,95,110,97,109,101,130,4,0,0,115,8,0,0,
- 0,10,1,8,1,12,1,8,1,114,244,0,0,0,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,5,
- 0,0,0,67,0,0,0,115,166,0,0,0,124,1,97,0,
- 124,0,97,1,116,2,116,1,131,1,125,2,116,1,106,3,
- 160,4,161,0,68,0,93,36,92,2,125,3,125,4,116,5,
- 124,4,124,2,131,2,114,49,124,3,116,1,106,6,118,0,
- 114,30,116,7,125,5,110,9,116,0,160,8,124,3,161,1,
- 114,38,116,9,125,5,110,1,113,13,116,10,124,4,124,5,
- 131,2,125,6,116,11,124,6,124,4,131,2,1,0,113,13,
- 116,1,106,3,116,12,25,0,125,7,100,1,68,0,93,23,
- 125,8,124,8,116,1,106,3,118,1,114,69,116,13,124,8,
- 131,1,125,9,110,5,116,1,106,3,124,8,25,0,125,9,
- 116,14,124,7,124,8,124,9,131,3,1,0,113,57,100,2,
- 83,0,41,3,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,
- 41,3,114,26,0,0,0,114,101,0,0,0,114,71,0,0,
- 0,78,41,15,114,64,0,0,0,114,18,0,0,0,114,3,
- 0,0,0,114,105,0,0,0,218,5,105,116,101,109,115,114,
- 216,0,0,0,114,86,0,0,0,114,175,0,0,0,114,98,
- 0,0,0,114,193,0,0,0,114,155,0,0,0,114,161,0,
- 0,0,114,9,0,0,0,114,244,0,0,0,114,12,0,0,
- 0,41,10,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,20,0,0,0,114,110,
- 0,0,0,114,122,0,0,0,114,109,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,114,5,0,0,0,114,5,0,
- 0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,137,
- 4,0,0,115,40,0,0,0,4,9,4,1,8,3,18,1,
- 10,1,10,1,6,1,10,1,6,1,2,2,10,1,10,1,
- 2,128,10,3,8,1,10,1,10,1,10,2,14,1,4,251,
- 114,248,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,38,
- 0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,106,
- 2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,116,
- 5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,115,
- 116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,102,
- 111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,102,
- 114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,6,
- 114,248,0,0,0,114,18,0,0,0,114,214,0,0,0,114,
- 132,0,0,0,114,175,0,0,0,114,193,0,0,0,41,2,
- 114,246,0,0,0,114,247,0,0,0,114,5,0,0,0,114,
- 5,0,0,0,114,6,0,0,0,218,8,95,105,110,115,116,
- 97,108,108,172,4,0,0,115,6,0,0,0,10,2,12,2,
- 16,1,114,249,0,0,0,99,0,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,
- 115,32,0,0,0,100,1,100,2,108,0,125,0,124,0,97,
- 1,124,0,160,2,116,3,106,4,116,5,25,0,161,1,1,
- 0,100,2,83,0,41,3,122,57,73,110,115,116,97,108,108,
- 32,105,109,112,111,114,116,101,114,115,32,116,104,97,116,32,
- 114,101,113,117,105,114,101,32,101,120,116,101,114,110,97,108,
- 32,102,105,108,101,115,121,115,116,101,109,32,97,99,99,101,
- 115,115,114,25,0,0,0,78,41,6,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,139,0,0,0,114,249,0,0,0,
- 114,18,0,0,0,114,105,0,0,0,114,9,0,0,0,41,
- 1,114,250,0,0,0,114,5,0,0,0,114,5,0,0,0,
- 114,6,0,0,0,218,27,95,105,110,115,116,97,108,108,95,
- 101,120,116,101,114,110,97,108,95,105,109,112,111,114,116,101,
- 114,115,180,4,0,0,115,6,0,0,0,8,3,4,1,20,
- 1,114,251,0,0,0,114,190,0,0,0,114,0,0,0,0,
- 114,24,0,0,0,41,4,78,78,114,5,0,0,0,114,25,
- 0,0,0,41,54,114,10,0,0,0,114,7,0,0,0,114,
- 26,0,0,0,114,101,0,0,0,114,71,0,0,0,114,139,
- 0,0,0,114,17,0,0,0,114,21,0,0,0,114,66,0,
- 0,0,114,37,0,0,0,114,47,0,0,0,114,22,0,0,
- 0,114,23,0,0,0,114,55,0,0,0,114,57,0,0,0,
- 114,60,0,0,0,114,72,0,0,0,114,74,0,0,0,114,
- 83,0,0,0,114,95,0,0,0,114,100,0,0,0,114,111,
- 0,0,0,114,124,0,0,0,114,125,0,0,0,114,104,0,
- 0,0,114,155,0,0,0,114,161,0,0,0,114,165,0,0,
- 0,114,119,0,0,0,114,106,0,0,0,114,172,0,0,0,
- 114,173,0,0,0,114,107,0,0,0,114,175,0,0,0,114,
- 193,0,0,0,114,200,0,0,0,114,211,0,0,0,114,213,
- 0,0,0,114,215,0,0,0,114,221,0,0,0,90,15,95,
- 69,82,82,95,77,83,71,95,80,82,69,70,73,88,114,223,
- 0,0,0,114,226,0,0,0,218,6,111,98,106,101,99,116,
- 114,227,0,0,0,114,228,0,0,0,114,229,0,0,0,114,
- 234,0,0,0,114,240,0,0,0,114,243,0,0,0,114,244,
- 0,0,0,114,248,0,0,0,114,249,0,0,0,114,251,0,
- 0,0,114,5,0,0,0,114,5,0,0,0,114,5,0,0,
- 0,114,6,0,0,0,218,8,60,109,111,100,117,108,101,62,
- 1,0,0,0,115,104,0,0,0,4,0,8,22,4,9,4,
- 1,4,1,4,3,8,3,8,8,4,8,4,2,16,3,14,
- 4,14,77,14,21,8,16,8,37,8,17,14,11,8,8,8,
- 11,8,12,8,19,14,26,16,101,10,26,14,45,8,72,8,
- 17,8,17,8,30,8,36,8,45,14,15,14,80,14,85,8,
- 13,8,9,10,10,8,47,4,16,8,1,8,2,6,32,8,
- 3,10,16,14,15,8,37,10,27,8,37,8,7,8,35,12,
- 8,
+ 0,0,3,0,0,0,67,0,0,0,115,82,0,0,0,100,
+ 1,125,1,116,0,124,0,106,1,100,2,131,2,114,15,124,
+ 0,106,1,160,2,124,0,161,1,125,1,110,10,116,0,124,
+ 0,106,1,100,3,131,2,114,25,116,3,100,4,131,1,130,
+ 1,124,1,100,1,117,0,114,34,116,4,124,0,106,5,131,
+ 1,125,1,116,6,124,0,124,1,131,2,1,0,124,1,83,
+ 0,41,5,122,43,67,114,101,97,116,101,32,97,32,109,111,
+ 100,117,108,101,32,98,97,115,101,100,32,111,110,32,116,104,
+ 101,32,112,114,111,118,105,100,101,100,32,115,112,101,99,46,
+ 78,218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,
+ 218,11,101,120,101,99,95,109,111,100,117,108,101,122,66,108,
+ 111,97,100,101,114,115,32,116,104,97,116,32,100,101,102,105,
+ 110,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,
+ 32,109,117,115,116,32,97,108,115,111,32,100,101,102,105,110,
+ 101,32,99,114,101,97,116,101,95,109,111,100,117,108,101,40,
+ 41,41,7,114,11,0,0,0,114,122,0,0,0,114,162,0,
+ 0,0,114,87,0,0,0,114,21,0,0,0,114,20,0,0,
+ 0,114,161,0,0,0,169,2,114,109,0,0,0,114,110,0,
+ 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,
+ 112,101,99,52,2,0,0,115,18,0,0,0,4,3,12,1,
+ 14,3,12,1,8,1,8,2,10,1,10,1,4,1,114,165,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,67,0,0,0,115,100,0,0,
+ 0,124,0,106,0,100,1,117,0,114,7,100,2,110,2,124,
+ 0,106,0,125,1,124,0,106,1,100,1,117,0,114,32,124,
+ 0,106,2,100,1,117,0,114,25,100,3,160,3,124,1,161,
+ 1,83,0,100,4,160,3,124,1,124,0,106,2,161,2,83,
+ 0,124,0,106,4,114,42,100,5,160,3,124,1,124,0,106,
+ 1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106,
+ 1,161,2,83,0,41,7,122,38,82,101,116,117,114,110,32,
+ 116,104,101,32,114,101,112,114,32,116,111,32,117,115,101,32,
+ 102,111,114,32,116,104,101,32,109,111,100,117,108,101,46,78,
+ 114,115,0,0,0,114,116,0,0,0,114,117,0,0,0,114,
+ 118,0,0,0,250,18,60,109,111,100,117,108,101,32,123,33,
+ 114,125,32,40,123,125,41,62,41,5,114,20,0,0,0,114,
+ 126,0,0,0,114,122,0,0,0,114,50,0,0,0,114,136,
+ 0,0,0,41,2,114,109,0,0,0,114,20,0,0,0,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,119,
+ 0,0,0,69,2,0,0,115,16,0,0,0,20,3,10,1,
+ 10,1,10,1,14,2,6,2,14,1,16,2,114,119,0,0,
+ 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,10,0,0,0,67,0,0,0,115,24,1,0,0,124,
+ 0,106,0,125,2,116,1,124,2,131,1,143,123,1,0,116,
+ 2,106,3,160,4,124,2,161,1,124,1,117,1,114,27,100,
+ 1,160,5,124,2,161,1,125,3,116,6,124,3,124,2,100,
+ 2,141,2,130,1,122,80,124,0,106,7,100,3,117,0,114,
+ 53,124,0,106,8,100,3,117,0,114,45,116,6,100,4,124,
+ 0,106,0,100,2,141,2,130,1,116,9,124,0,124,1,100,
+ 5,100,6,141,3,1,0,110,40,116,9,124,0,124,1,100,
+ 5,100,6,141,3,1,0,116,10,124,0,106,7,100,7,131,
+ 2,115,87,116,11,124,0,106,7,131,1,155,0,100,8,157,
+ 2,125,3,116,12,160,13,124,3,116,14,161,2,1,0,124,
+ 0,106,7,160,15,124,2,161,1,1,0,110,6,124,0,106,
+ 7,160,16,124,1,161,1,1,0,87,0,116,2,106,3,160,
+ 17,124,0,106,0,161,1,125,1,124,1,116,2,106,3,124,
+ 0,106,0,60,0,110,14,116,2,106,3,160,17,124,0,106,
+ 0,161,1,125,1,124,1,116,2,106,3,124,0,106,0,60,
+ 0,119,0,87,0,100,3,4,0,4,0,131,3,1,0,124,
+ 1,83,0,49,0,115,133,119,1,1,0,1,0,1,0,89,
+ 0,1,0,124,1,83,0,41,9,122,70,69,120,101,99,117,
+ 116,101,32,116,104,101,32,115,112,101,99,39,115,32,115,112,
+ 101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,105,
+ 110,32,97,110,32,101,120,105,115,116,105,110,103,32,109,111,
+ 100,117,108,101,39,115,32,110,97,109,101,115,112,97,99,101,
+ 46,122,30,109,111,100,117,108,101,32,123,33,114,125,32,110,
+ 111,116,32,105,110,32,115,121,115,46,109,111,100,117,108,101,
+ 115,114,19,0,0,0,78,250,14,109,105,115,115,105,110,103,
+ 32,108,111,97,100,101,114,84,114,156,0,0,0,114,163,0,
+ 0,0,250,55,46,101,120,101,99,95,109,111,100,117,108,101,
+ 40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,97,
+ 108,108,105,110,103,32,98,97,99,107,32,116,111,32,108,111,
+ 97,100,95,109,111,100,117,108,101,40,41,41,18,114,20,0,
+ 0,0,114,57,0,0,0,114,18,0,0,0,114,105,0,0,
+ 0,114,38,0,0,0,114,50,0,0,0,114,87,0,0,0,
+ 114,122,0,0,0,114,129,0,0,0,114,161,0,0,0,114,
+ 11,0,0,0,114,7,0,0,0,114,101,0,0,0,114,102,
+ 0,0,0,218,13,73,109,112,111,114,116,87,97,114,110,105,
+ 110,103,218,11,108,111,97,100,95,109,111,100,117,108,101,114,
+ 163,0,0,0,218,3,112,111,112,41,4,114,109,0,0,0,
+ 114,110,0,0,0,114,20,0,0,0,114,108,0,0,0,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,106,
+ 0,0,0,86,2,0,0,115,50,0,0,0,6,2,10,1,
+ 16,1,10,1,12,1,2,1,10,1,10,1,14,1,16,2,
+ 14,2,12,1,16,1,12,2,14,1,12,2,2,128,14,4,
+ 14,1,14,255,16,1,10,233,4,24,16,232,4,24,114,106,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,8,0,0,0,67,0,0,0,115,14,1,0,
+ 0,122,9,124,0,106,0,160,1,124,0,106,2,161,1,1,
+ 0,87,0,110,23,1,0,1,0,1,0,124,0,106,2,116,
+ 3,106,4,118,0,114,32,116,3,106,4,160,5,124,0,106,
+ 2,161,1,125,1,124,1,116,3,106,4,124,0,106,2,60,
+ 0,130,0,116,3,106,4,160,5,124,0,106,2,161,1,125,
+ 1,124,1,116,3,106,4,124,0,106,2,60,0,116,6,124,
+ 1,100,1,100,0,131,3,100,0,117,0,114,70,122,6,124,
+ 0,106,0,124,1,95,7,87,0,110,9,4,0,116,8,121,
+ 69,1,0,1,0,1,0,89,0,110,1,119,0,116,6,124,
+ 1,100,2,100,0,131,3,100,0,117,0,114,108,122,20,124,
+ 1,106,9,124,1,95,10,116,11,124,1,100,3,131,2,115,
+ 97,124,0,106,2,160,12,100,4,161,1,100,5,25,0,124,
+ 1,95,10,87,0,110,9,4,0,116,8,121,107,1,0,1,
+ 0,1,0,89,0,110,1,119,0,116,6,124,1,100,6,100,
+ 0,131,3,100,0,117,0,114,133,122,6,124,0,124,1,95,
+ 13,87,0,124,1,83,0,4,0,116,8,121,132,1,0,1,
+ 0,1,0,89,0,124,1,83,0,119,0,124,1,83,0,41,
+ 7,78,114,112,0,0,0,114,158,0,0,0,114,154,0,0,
+ 0,114,141,0,0,0,114,25,0,0,0,114,113,0,0,0,
+ 41,14,114,122,0,0,0,114,170,0,0,0,114,20,0,0,
+ 0,114,18,0,0,0,114,105,0,0,0,114,171,0,0,0,
+ 114,13,0,0,0,114,112,0,0,0,114,2,0,0,0,114,
+ 9,0,0,0,114,158,0,0,0,114,11,0,0,0,114,142,
+ 0,0,0,114,113,0,0,0,114,164,0,0,0,114,5,0,
+ 0,0,114,5,0,0,0,114,6,0,0,0,218,25,95,108,
+ 111,97,100,95,98,97,99,107,119,97,114,100,95,99,111,109,
+ 112,97,116,105,98,108,101,116,2,0,0,115,66,0,0,0,
+ 2,3,18,1,6,1,12,1,14,1,12,1,2,1,14,3,
+ 12,1,16,1,2,1,12,1,12,1,4,1,2,255,16,2,
+ 2,1,8,4,10,1,18,1,4,128,12,1,4,1,2,255,
+ 16,2,2,1,8,1,4,3,12,254,2,1,4,1,2,254,
+ 4,2,114,172,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,11,0,0,0,67,0,0,0,
+ 115,242,0,0,0,124,0,106,0,100,0,117,1,114,29,116,
+ 1,124,0,106,0,100,1,131,2,115,29,116,2,124,0,106,
+ 0,131,1,155,0,100,2,157,2,125,1,116,3,160,4,124,
+ 1,116,5,161,2,1,0,116,6,124,0,131,1,83,0,116,
+ 7,124,0,131,1,125,2,100,3,124,0,95,8,122,80,124,
+ 2,116,9,106,10,124,0,106,11,60,0,122,26,124,0,106,
+ 0,100,0,117,0,114,62,124,0,106,12,100,0,117,0,114,
+ 61,116,13,100,4,124,0,106,11,100,5,141,2,130,1,110,
+ 6,124,0,106,0,160,14,124,2,161,1,1,0,87,0,110,
+ 20,1,0,1,0,1,0,122,7,116,9,106,10,124,0,106,
+ 11,61,0,87,0,130,0,4,0,116,15,121,89,1,0,1,
+ 0,1,0,89,0,130,0,119,0,116,9,106,10,160,16,124,
+ 0,106,11,161,1,125,2,124,2,116,9,106,10,124,0,106,
+ 11,60,0,116,17,100,6,124,0,106,11,124,0,106,0,131,
+ 3,1,0,87,0,100,7,124,0,95,8,124,2,83,0,100,
+ 7,124,0,95,8,119,0,41,8,78,114,163,0,0,0,114,
+ 168,0,0,0,84,114,167,0,0,0,114,19,0,0,0,122,
+ 18,105,109,112,111,114,116,32,123,33,114,125,32,35,32,123,
+ 33,114,125,70,41,18,114,122,0,0,0,114,11,0,0,0,
+ 114,7,0,0,0,114,101,0,0,0,114,102,0,0,0,114,
+ 169,0,0,0,114,172,0,0,0,114,165,0,0,0,90,13,
+ 95,105,110,105,116,105,97,108,105,122,105,110,103,114,18,0,
+ 0,0,114,105,0,0,0,114,20,0,0,0,114,129,0,0,
+ 0,114,87,0,0,0,114,163,0,0,0,114,70,0,0,0,
+ 114,171,0,0,0,114,83,0,0,0,41,3,114,109,0,0,
+ 0,114,108,0,0,0,114,110,0,0,0,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,218,14,95,108,111,97,
+ 100,95,117,110,108,111,99,107,101,100,152,2,0,0,115,60,
+ 0,0,0,10,2,12,2,16,1,12,2,8,1,8,2,6,
+ 5,2,1,12,1,2,1,10,1,10,1,14,1,2,255,12,
+ 4,4,128,6,1,2,1,12,1,2,3,12,254,2,1,2,
+ 1,2,254,14,7,12,1,18,1,6,2,4,2,8,254,114,
+ 173,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,8,0,0,0,67,0,0,0,115,54,0,
+ 0,0,116,0,124,0,106,1,131,1,143,12,1,0,116,2,
+ 124,0,131,1,87,0,2,0,100,1,4,0,4,0,131,3,
+ 1,0,83,0,49,0,115,20,119,1,1,0,1,0,1,0,
+ 89,0,1,0,100,1,83,0,41,2,122,191,82,101,116,117,
+ 114,110,32,97,32,110,101,119,32,109,111,100,117,108,101,32,
+ 111,98,106,101,99,116,44,32,108,111,97,100,101,100,32,98,
+ 121,32,116,104,101,32,115,112,101,99,39,115,32,108,111,97,
+ 100,101,114,46,10,10,32,32,32,32,84,104,101,32,109,111,
+ 100,117,108,101,32,105,115,32,110,111,116,32,97,100,100,101,
+ 100,32,116,111,32,105,116,115,32,112,97,114,101,110,116,46,
+ 10,10,32,32,32,32,73,102,32,97,32,109,111,100,117,108,
+ 101,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,
+ 115,121,115,46,109,111,100,117,108,101,115,44,32,116,104,97,
+ 116,32,101,120,105,115,116,105,110,103,32,109,111,100,117,108,
+ 101,32,103,101,116,115,10,32,32,32,32,99,108,111,98,98,
+ 101,114,101,100,46,10,10,32,32,32,32,78,41,3,114,57,
+ 0,0,0,114,20,0,0,0,114,173,0,0,0,169,1,114,
+ 109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+ 0,0,0,114,107,0,0,0,197,2,0,0,115,6,0,0,
+ 0,12,9,6,1,36,255,114,107,0,0,0,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,140,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,4,
+ 132,0,131,1,90,6,101,7,100,20,100,6,100,7,132,1,
+ 131,1,90,8,101,7,100,21,100,8,100,9,132,1,131,1,
+ 90,9,101,5,100,10,100,11,132,0,131,1,90,10,101,5,
+ 100,12,100,13,132,0,131,1,90,11,101,7,101,12,100,14,
+ 100,15,132,0,131,1,131,1,90,13,101,7,101,12,100,16,
+ 100,17,132,0,131,1,131,1,90,14,101,7,101,12,100,18,
+ 100,19,132,0,131,1,131,1,90,15,101,7,101,16,131,1,
+ 90,17,100,5,83,0,41,22,218,15,66,117,105,108,116,105,
+ 110,73,109,112,111,114,116,101,114,122,144,77,101,116,97,32,
+ 112,97,116,104,32,105,109,112,111,114,116,32,102,111,114,32,
+ 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
+ 46,10,10,32,32,32,32,65,108,108,32,109,101,116,104,111,
+ 100,115,32,97,114,101,32,101,105,116,104,101,114,32,99,108,
+ 97,115,115,32,111,114,32,115,116,97,116,105,99,32,109,101,
+ 116,104,111,100,115,32,116,111,32,97,118,111,105,100,32,116,
+ 104,101,32,110,101,101,100,32,116,111,10,32,32,32,32,105,
+ 110,115,116,97,110,116,105,97,116,101,32,116,104,101,32,99,
+ 108,97,115,115,46,10,10,32,32,32,32,122,8,98,117,105,
+ 108,116,45,105,110,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,34,
+ 0,0,0,116,0,160,1,100,1,116,2,161,2,1,0,100,
+ 2,124,0,106,3,155,2,100,3,116,4,106,5,155,0,100,
+ 4,157,5,83,0,41,5,250,115,82,101,116,117,114,110,32,
+ 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100,
+ 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,
+ 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+ 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112,
+ 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111,
+ 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108,
+ 102,46,10,10,32,32,32,32,32,32,32,32,122,81,66,117,
+ 105,108,116,105,110,73,109,112,111,114,116,101,114,46,109,111,
+ 100,117,108,101,95,114,101,112,114,40,41,32,105,115,32,100,
+ 101,112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,
+ 97,116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,
+ 32,105,110,32,80,121,116,104,111,110,32,51,46,49,50,122,
+ 8,60,109,111,100,117,108,101,32,122,2,32,40,122,2,41,
+ 62,41,6,114,101,0,0,0,114,102,0,0,0,114,103,0,
+ 0,0,114,9,0,0,0,114,175,0,0,0,114,151,0,0,
+ 0,169,1,114,110,0,0,0,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,114,114,0,0,0,223,2,0,0,
+ 115,8,0,0,0,6,7,2,1,4,255,22,2,122,27,66,
+ 117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,109,
+ 111,100,117,108,101,95,114,101,112,114,78,99,4,0,0,0,
+ 0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,
+ 67,0,0,0,115,42,0,0,0,124,2,100,0,117,1,114,
+ 6,100,0,83,0,116,0,160,1,124,1,161,1,114,19,116,
+ 2,124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,
+ 0,83,0,169,2,78,114,150,0,0,0,41,4,114,64,0,
+ 0,0,90,10,105,115,95,98,117,105,108,116,105,110,114,104,
+ 0,0,0,114,151,0,0,0,169,4,218,3,99,108,115,114,
+ 89,0,0,0,218,4,112,97,116,104,218,6,116,97,114,103,
+ 101,116,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,218,9,102,105,110,100,95,115,112,101,99,234,2,0,0,
+ 115,10,0,0,0,8,2,4,1,10,1,16,1,4,2,122,
+ 25,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,
+ 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
+ 0,0,0,115,42,0,0,0,116,0,160,1,100,1,116,2,
+ 161,2,1,0,124,0,160,3,124,1,124,2,161,2,125,3,
+ 124,3,100,2,117,1,114,19,124,3,106,4,83,0,100,2,
+ 83,0,41,3,122,175,70,105,110,100,32,116,104,101,32,98,
+ 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10,
+ 10,32,32,32,32,32,32,32,32,73,102,32,39,112,97,116,
+ 104,39,32,105,115,32,101,118,101,114,32,115,112,101,99,105,
+ 102,105,101,100,32,116,104,101,110,32,116,104,101,32,115,101,
+ 97,114,99,104,32,105,115,32,99,111,110,115,105,100,101,114,
+ 101,100,32,97,32,102,97,105,108,117,114,101,46,10,10,32,
+ 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
+ 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
+ 46,32,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,10,32,32,32,
+ 32,32,32,32,32,122,106,66,117,105,108,116,105,110,73,109,
+ 112,111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,
+ 108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
+ 101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
+ 114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
+ 104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
+ 110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
+ 100,78,41,5,114,101,0,0,0,114,102,0,0,0,114,103,
+ 0,0,0,114,183,0,0,0,114,122,0,0,0,41,4,114,
+ 180,0,0,0,114,89,0,0,0,114,181,0,0,0,114,109,
+ 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
+ 0,0,218,11,102,105,110,100,95,109,111,100,117,108,101,243,
+ 2,0,0,115,10,0,0,0,6,9,2,2,4,254,12,3,
+ 18,1,122,27,66,117,105,108,116,105,110,73,109,112,111,114,
+ 116,101,114,46,102,105,110,100,95,109,111,100,117,108,101,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,46,0,0,0,124,0,106,
+ 0,116,1,106,2,118,1,114,17,116,3,100,1,160,4,124,
+ 0,106,0,161,1,124,0,106,0,100,2,141,2,130,1,116,
+ 5,116,6,106,7,124,0,131,2,83,0,41,3,122,24,67,
+ 114,101,97,116,101,32,97,32,98,117,105,108,116,45,105,110,
+ 32,109,111,100,117,108,101,114,85,0,0,0,114,19,0,0,
+ 0,41,8,114,20,0,0,0,114,18,0,0,0,114,86,0,
+ 0,0,114,87,0,0,0,114,50,0,0,0,114,74,0,0,
+ 0,114,64,0,0,0,90,14,99,114,101,97,116,101,95,98,
+ 117,105,108,116,105,110,114,174,0,0,0,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,114,162,0,0,0,2,
+ 3,0,0,115,10,0,0,0,12,3,12,1,4,1,6,255,
+ 12,2,122,29,66,117,105,108,116,105,110,73,109,112,111,114,
+ 116,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,
+ 101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+ 0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
+ 0,116,1,106,2,124,0,131,2,1,0,100,1,83,0,41,
+ 2,122,22,69,120,101,99,32,97,32,98,117,105,108,116,45,
+ 105,110,32,109,111,100,117,108,101,78,41,3,114,74,0,0,
+ 0,114,64,0,0,0,90,12,101,120,101,99,95,98,117,105,
+ 108,116,105,110,114,177,0,0,0,114,5,0,0,0,114,5,
+ 0,0,0,114,6,0,0,0,114,163,0,0,0,10,3,0,
+ 0,115,2,0,0,0,16,3,122,27,66,117,105,108,116,105,
+ 110,73,109,112,111,114,116,101,114,46,101,120,101,99,95,109,
+ 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,1,0,0,0,67,0,0,0,243,4,
+ 0,0,0,100,1,83,0,41,2,122,57,82,101,116,117,114,
+ 110,32,78,111,110,101,32,97,115,32,98,117,105,108,116,45,
+ 105,110,32,109,111,100,117,108,101,115,32,100,111,32,110,111,
+ 116,32,104,97,118,101,32,99,111,100,101,32,111,98,106,101,
+ 99,116,115,46,78,114,5,0,0,0,169,2,114,180,0,0,
+ 0,114,89,0,0,0,114,5,0,0,0,114,5,0,0,0,
+ 114,6,0,0,0,218,8,103,101,116,95,99,111,100,101,15,
+ 3,0,0,243,2,0,0,0,4,4,122,24,66,117,105,108,
+ 116,105,110,73,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,2,0,0,0,1,0,0,0,67,0,0,0,114,185,0,
+ 0,0,41,2,122,56,82,101,116,117,114,110,32,78,111,110,
+ 101,32,97,115,32,98,117,105,108,116,45,105,110,32,109,111,
+ 100,117,108,101,115,32,100,111,32,110,111,116,32,104,97,118,
+ 101,32,115,111,117,114,99,101,32,99,111,100,101,46,78,114,
+ 5,0,0,0,114,186,0,0,0,114,5,0,0,0,114,5,
+ 0,0,0,114,6,0,0,0,218,10,103,101,116,95,115,111,
+ 117,114,99,101,21,3,0,0,114,188,0,0,0,122,26,66,
+ 117,105,108,116,105,110,73,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,2,0,0,0,1,0,0,0,67,0,
+ 0,0,114,185,0,0,0,41,2,122,52,82,101,116,117,114,
+ 110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,116,
+ 45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,32,
+ 110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,70,
+ 114,5,0,0,0,114,186,0,0,0,114,5,0,0,0,114,
+ 5,0,0,0,114,6,0,0,0,114,128,0,0,0,27,3,
+ 0,0,114,188,0,0,0,122,26,66,117,105,108,116,105,110,
+ 73,109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,
+ 97,103,101,169,2,78,78,114,0,0,0,0,41,18,114,9,
+ 0,0,0,114,8,0,0,0,114,1,0,0,0,114,10,0,
+ 0,0,114,151,0,0,0,218,12,115,116,97,116,105,99,109,
+ 101,116,104,111,100,114,114,0,0,0,218,11,99,108,97,115,
+ 115,109,101,116,104,111,100,114,183,0,0,0,114,184,0,0,
+ 0,114,162,0,0,0,114,163,0,0,0,114,95,0,0,0,
+ 114,187,0,0,0,114,189,0,0,0,114,128,0,0,0,114,
+ 111,0,0,0,114,170,0,0,0,114,5,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,114,175,0,
+ 0,0,212,2,0,0,115,46,0,0,0,8,0,4,2,4,
+ 7,2,2,10,1,2,10,12,1,2,8,12,1,2,14,10,
+ 1,2,7,10,1,2,4,2,1,12,1,2,4,2,1,12,
+ 1,2,4,2,1,12,1,12,4,114,175,0,0,0,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,144,0,0,0,101,0,90,1,
+ 100,0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,
+ 100,4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,
+ 132,1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,
+ 131,1,90,9,101,5,100,10,100,11,132,0,131,1,90,10,
+ 101,5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,
+ 100,15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,
+ 132,0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,
+ 132,0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,
+ 132,0,131,1,131,1,90,16,100,5,83,0,41,24,218,14,
+ 70,114,111,122,101,110,73,109,112,111,114,116,101,114,122,142,
+ 77,101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,
+ 32,102,111,114,32,102,114,111,122,101,110,32,109,111,100,117,
+ 108,101,115,46,10,10,32,32,32,32,65,108,108,32,109,101,
+ 116,104,111,100,115,32,97,114,101,32,101,105,116,104,101,114,
+ 32,99,108,97,115,115,32,111,114,32,115,116,97,116,105,99,
+ 32,109,101,116,104,111,100,115,32,116,111,32,97,118,111,105,
+ 100,32,116,104,101,32,110,101,101,100,32,116,111,10,32,32,
+ 32,32,105,110,115,116,97,110,116,105,97,116,101,32,116,104,
+ 101,32,99,108,97,115,115,46,10,10,32,32,32,32,90,6,
+ 102,114,111,122,101,110,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,116,0,160,1,100,1,116,2,161,2,1,0,
+ 100,2,160,3,124,0,106,4,116,5,106,6,161,2,83,0,
+ 41,3,114,176,0,0,0,122,80,70,114,111,122,101,110,73,
+ 109,112,111,114,116,101,114,46,109,111,100,117,108,101,95,114,
+ 101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,97,
+ 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,
+ 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,
+ 116,104,111,110,32,51,46,49,50,114,166,0,0,0,41,7,
+ 114,101,0,0,0,114,102,0,0,0,114,103,0,0,0,114,
+ 50,0,0,0,114,9,0,0,0,114,193,0,0,0,114,151,
+ 0,0,0,41,1,218,1,109,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,114,114,0,0,0,47,3,0,0,
+ 115,8,0,0,0,6,7,2,1,4,255,16,2,122,26,70,
+ 114,111,122,101,110,73,109,112,111,114,116,101,114,46,109,111,
+ 100,117,108,101,95,114,101,112,114,78,99,4,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
+ 0,0,0,115,30,0,0,0,116,0,160,1,124,1,161,1,
+ 114,13,116,2,124,1,124,0,124,0,106,3,100,1,141,3,
+ 83,0,100,0,83,0,114,178,0,0,0,41,4,114,64,0,
+ 0,0,114,98,0,0,0,114,104,0,0,0,114,151,0,0,
+ 0,114,179,0,0,0,114,5,0,0,0,114,5,0,0,0,
+ 114,6,0,0,0,114,183,0,0,0,58,3,0,0,115,6,
+ 0,0,0,10,2,16,1,4,2,122,24,70,114,111,122,101,
+ 110,73,109,112,111,114,116,101,114,46,102,105,110,100,95,115,
+ 112,101,99,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,30,0,0,
+ 0,116,0,160,1,100,1,116,2,161,2,1,0,116,3,160,
+ 4,124,1,161,1,114,13,124,0,83,0,100,2,83,0,41,
+ 3,122,93,70,105,110,100,32,97,32,102,114,111,122,101,110,
+ 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,
+ 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+ 32,100,101,112,114,101,99,97,116,101,100,46,32,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,10,32,32,32,32,32,32,32,32,
+ 122,105,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+ 46,102,105,110,100,95,109,111,100,117,108,101,40,41,32,105,
+ 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,
+ 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,
+ 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,
+ 49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,101,
+ 99,40,41,32,105,110,115,116,101,97,100,78,41,5,114,101,
+ 0,0,0,114,102,0,0,0,114,103,0,0,0,114,64,0,
+ 0,0,114,98,0,0,0,41,3,114,180,0,0,0,114,89,
+ 0,0,0,114,181,0,0,0,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,114,184,0,0,0,65,3,0,0,
+ 115,8,0,0,0,6,7,2,2,4,254,18,3,122,26,70,
+ 114,111,122,101,110,73,109,112,111,114,116,101,114,46,102,105,
+ 110,100,95,109,111,100,117,108,101,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,
+ 0,0,114,185,0,0,0,41,2,122,42,85,115,101,32,100,
+ 101,102,97,117,108,116,32,115,101,109,97,110,116,105,99,115,
+ 32,102,111,114,32,109,111,100,117,108,101,32,99,114,101,97,
+ 116,105,111,110,46,78,114,5,0,0,0,114,174,0,0,0,
+ 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,
+ 162,0,0,0,77,3,0,0,115,2,0,0,0,4,0,122,
+ 28,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,
+ 99,114,101,97,116,101,95,109,111,100,117,108,101,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
+ 0,0,67,0,0,0,115,64,0,0,0,124,0,106,0,106,
+ 1,125,1,116,2,160,3,124,1,161,1,115,18,116,4,100,
+ 1,160,5,124,1,161,1,124,1,100,2,141,2,130,1,116,
+ 6,116,2,106,7,124,1,131,2,125,2,116,8,124,2,124,
+ 0,106,9,131,2,1,0,100,0,83,0,114,97,0,0,0,
+ 41,10,114,113,0,0,0,114,20,0,0,0,114,64,0,0,
+ 0,114,98,0,0,0,114,87,0,0,0,114,50,0,0,0,
+ 114,74,0,0,0,218,17,103,101,116,95,102,114,111,122,101,
+ 110,95,111,98,106,101,99,116,218,4,101,120,101,99,114,14,
+ 0,0,0,41,3,114,110,0,0,0,114,20,0,0,0,218,
+ 4,99,111,100,101,114,5,0,0,0,114,5,0,0,0,114,
+ 6,0,0,0,114,163,0,0,0,81,3,0,0,115,14,0,
+ 0,0,8,2,10,1,10,1,2,1,6,255,12,2,16,1,
+ 122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,114,
+ 46,101,120,101,99,95,109,111,100,117,108,101,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,10,0,0,0,116,0,124,0,124,1,
+ 131,2,83,0,41,1,122,95,76,111,97,100,32,97,32,102,
+ 114,111,122,101,110,32,109,111,100,117,108,101,46,10,10,32,
+ 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
+ 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
+ 46,32,32,85,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,10,32,
+ 32,32,32,32,32,32,32,41,1,114,111,0,0,0,114,186,
+ 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
+ 0,0,114,170,0,0,0,90,3,0,0,115,2,0,0,0,
+ 10,8,122,26,70,114,111,122,101,110,73,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,2,0,0,0,3,
+ 0,0,0,67,0,0,0,243,10,0,0,0,116,0,160,1,
+ 124,1,161,1,83,0,41,1,122,45,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,102,114,111,122,101,110,32,
+ 109,111,100,117,108,101,46,41,2,114,64,0,0,0,114,195,
+ 0,0,0,114,186,0,0,0,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,114,187,0,0,0,100,3,0,0,
+ 243,2,0,0,0,10,4,122,23,70,114,111,122,101,110,73,
+ 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,2,0,0,
+ 0,1,0,0,0,67,0,0,0,114,185,0,0,0,41,2,
+ 122,54,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
+ 32,102,114,111,122,101,110,32,109,111,100,117,108,101,115,32,
+ 100,111,32,110,111,116,32,104,97,118,101,32,115,111,117,114,
+ 99,101,32,99,111,100,101,46,78,114,5,0,0,0,114,186,
+ 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,
+ 0,0,114,189,0,0,0,106,3,0,0,114,188,0,0,0,
+ 122,25,70,114,111,122,101,110,73,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,2,0,0,0,3,0,0,0,
+ 67,0,0,0,114,198,0,0,0,41,1,122,46,82,101,116,
+ 117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,
+ 102,114,111,122,101,110,32,109,111,100,117,108,101,32,105,115,
+ 32,97,32,112,97,99,107,97,103,101,46,41,2,114,64,0,
+ 0,0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,
+ 99,107,97,103,101,114,186,0,0,0,114,5,0,0,0,114,
+ 5,0,0,0,114,6,0,0,0,114,128,0,0,0,112,3,
+ 0,0,114,199,0,0,0,122,25,70,114,111,122,101,110,73,
+ 109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,
+ 103,101,114,190,0,0,0,114,0,0,0,0,41,17,114,9,
+ 0,0,0,114,8,0,0,0,114,1,0,0,0,114,10,0,
+ 0,0,114,151,0,0,0,114,191,0,0,0,114,114,0,0,
+ 0,114,192,0,0,0,114,183,0,0,0,114,184,0,0,0,
+ 114,162,0,0,0,114,163,0,0,0,114,170,0,0,0,114,
+ 100,0,0,0,114,187,0,0,0,114,189,0,0,0,114,128,
+ 0,0,0,114,5,0,0,0,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,114,193,0,0,0,36,3,0,0,
+ 115,48,0,0,0,8,0,4,2,4,7,2,2,10,1,2,
+ 10,12,1,2,6,12,1,2,11,10,1,2,3,10,1,2,
+ 8,10,1,2,9,2,1,12,1,2,4,2,1,12,1,2,
+ 4,2,1,16,1,114,193,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+ 0,0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
+ 132,0,90,5,100,6,83,0,41,7,218,18,95,73,109,112,
+ 111,114,116,76,111,99,107,67,111,110,116,101,120,116,122,36,
+ 67,111,110,116,101,120,116,32,109,97,110,97,103,101,114,32,
+ 102,111,114,32,116,104,101,32,105,109,112,111,114,116,32,108,
+ 111,99,107,46,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,2,0,0,0,67,0,0,0,243,12,0,
+ 0,0,116,0,160,1,161,0,1,0,100,1,83,0,41,2,
+ 122,24,65,99,113,117,105,114,101,32,116,104,101,32,105,109,
+ 112,111,114,116,32,108,111,99,107,46,78,41,2,114,64,0,
+ 0,0,114,65,0,0,0,114,52,0,0,0,114,5,0,0,
+ 0,114,5,0,0,0,114,6,0,0,0,114,61,0,0,0,
+ 125,3,0,0,243,2,0,0,0,12,2,122,28,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,0,0,
+ 0,0,0,0,0,0,4,0,0,0,2,0,0,0,67,0,
+ 0,0,114,201,0,0,0,41,2,122,60,82,101,108,101,97,
+ 115,101,32,116,104,101,32,105,109,112,111,114,116,32,108,111,
+ 99,107,32,114,101,103,97,114,100,108,101,115,115,32,111,102,
+ 32,97,110,121,32,114,97,105,115,101,100,32,101,120,99,101,
+ 112,116,105,111,110,115,46,78,41,2,114,64,0,0,0,114,
+ 67,0,0,0,41,4,114,33,0,0,0,218,8,101,120,99,
+ 95,116,121,112,101,218,9,101,120,99,95,118,97,108,117,101,
+ 218,13,101,120,99,95,116,114,97,99,101,98,97,99,107,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,63,
+ 0,0,0,129,3,0,0,114,202,0,0,0,122,27,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,41,6,114,9,0,0,
+ 0,114,8,0,0,0,114,1,0,0,0,114,10,0,0,0,
+ 114,61,0,0,0,114,63,0,0,0,114,5,0,0,0,114,
+ 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,200,
+ 0,0,0,121,3,0,0,115,8,0,0,0,8,0,4,2,
+ 8,2,12,4,114,200,0,0,0,99,3,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,0,
+ 0,0,115,64,0,0,0,124,1,160,0,100,1,124,2,100,
+ 2,24,0,161,2,125,3,116,1,124,3,131,1,124,2,107,
+ 0,114,18,116,2,100,3,131,1,130,1,124,3,100,4,25,
+ 0,125,4,124,0,114,30,100,5,160,3,124,4,124,0,161,
+ 2,83,0,124,4,83,0,41,6,122,50,82,101,115,111,108,
+ 118,101,32,97,32,114,101,108,97,116,105,118,101,32,109,111,
+ 100,117,108,101,32,110,97,109,101,32,116,111,32,97,110,32,
+ 97,98,115,111,108,117,116,101,32,111,110,101,46,114,141,0,
+ 0,0,114,42,0,0,0,122,50,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,98,101,121,111,110,100,32,116,111,112,45,108,101,
+ 118,101,108,32,112,97,99,107,97,103,101,114,25,0,0,0,
+ 250,5,123,125,46,123,125,41,4,218,6,114,115,112,108,105,
+ 116,218,3,108,101,110,114,87,0,0,0,114,50,0,0,0,
+ 41,5,114,20,0,0,0,218,7,112,97,99,107,97,103,101,
+ 218,5,108,101,118,101,108,90,4,98,105,116,115,90,4,98,
+ 97,115,101,114,5,0,0,0,114,5,0,0,0,114,6,0,
+ 0,0,218,13,95,114,101,115,111,108,118,101,95,110,97,109,
+ 101,134,3,0,0,115,10,0,0,0,16,2,12,1,8,1,
+ 8,1,20,1,114,211,0,0,0,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,60,0,0,0,116,0,124,0,131,1,155,0,100,
+ 1,157,2,125,3,116,1,160,2,124,3,116,3,161,2,1,
+ 0,124,0,160,4,124,1,124,2,161,2,125,4,124,4,100,
+ 0,117,0,114,25,100,0,83,0,116,5,124,1,124,4,131,
+ 2,83,0,41,2,78,122,53,46,102,105,110,100,95,115,112,
+ 101,99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,
+ 102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,
+ 102,105,110,100,95,109,111,100,117,108,101,40,41,41,6,114,
+ 7,0,0,0,114,101,0,0,0,114,102,0,0,0,114,169,
+ 0,0,0,114,184,0,0,0,114,104,0,0,0,41,5,218,
+ 6,102,105,110,100,101,114,114,20,0,0,0,114,181,0,0,
+ 0,114,108,0,0,0,114,122,0,0,0,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,218,17,95,102,105,110,
+ 100,95,115,112,101,99,95,108,101,103,97,99,121,143,3,0,
+ 0,115,12,0,0,0,14,1,12,2,12,1,8,1,4,1,
+ 10,1,114,213,0,0,0,99,3,0,0,0,0,0,0,0,
+ 0,0,0,0,10,0,0,0,10,0,0,0,67,0,0,0,
+ 115,24,1,0,0,116,0,106,1,125,3,124,3,100,1,117,
+ 0,114,11,116,2,100,2,131,1,130,1,124,3,115,19,116,
+ 3,160,4,100,3,116,5,161,2,1,0,124,0,116,0,106,
+ 6,118,0,125,4,124,3,68,0,93,111,125,5,116,7,131,
+ 0,143,47,1,0,122,5,124,5,106,8,125,6,87,0,110,
+ 27,4,0,116,9,121,64,1,0,1,0,1,0,116,10,124,
+ 5,124,0,124,1,131,3,125,7,124,7,100,1,117,0,114,
+ 62,89,0,87,0,100,1,4,0,4,0,131,3,1,0,113,
+ 26,89,0,110,7,119,0,124,6,124,0,124,1,124,2,131,
+ 3,125,7,87,0,100,1,4,0,4,0,131,3,1,0,110,
+ 8,49,0,115,81,119,1,1,0,1,0,1,0,89,0,1,
+ 0,124,7,100,1,117,1,114,137,124,4,115,133,124,0,116,
+ 0,106,6,118,0,114,133,116,0,106,6,124,0,25,0,125,
+ 8,122,5,124,8,106,11,125,9,87,0,110,13,4,0,116,
+ 9,121,120,1,0,1,0,1,0,124,7,6,0,89,0,2,
+ 0,1,0,83,0,119,0,124,9,100,1,117,0,114,129,124,
+ 7,2,0,1,0,83,0,124,9,2,0,1,0,83,0,124,
+ 7,2,0,1,0,83,0,113,26,100,1,83,0,41,4,122,
+ 21,70,105,110,100,32,97,32,109,111,100,117,108,101,39,115,
+ 32,115,112,101,99,46,78,122,53,115,121,115,46,109,101,116,
+ 97,95,112,97,116,104,32,105,115,32,78,111,110,101,44,32,
+ 80,121,116,104,111,110,32,105,115,32,108,105,107,101,108,121,
+ 32,115,104,117,116,116,105,110,103,32,100,111,119,110,122,22,
+ 115,121,115,46,109,101,116,97,95,112,97,116,104,32,105,115,
+ 32,101,109,112,116,121,41,12,114,18,0,0,0,218,9,109,
+ 101,116,97,95,112,97,116,104,114,87,0,0,0,114,101,0,
+ 0,0,114,102,0,0,0,114,169,0,0,0,114,105,0,0,
+ 0,114,200,0,0,0,114,183,0,0,0,114,2,0,0,0,
+ 114,213,0,0,0,114,113,0,0,0,41,10,114,20,0,0,
+ 0,114,181,0,0,0,114,182,0,0,0,114,214,0,0,0,
+ 90,9,105,115,95,114,101,108,111,97,100,114,212,0,0,0,
+ 114,183,0,0,0,114,109,0,0,0,114,110,0,0,0,114,
+ 113,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+ 0,0,0,218,10,95,102,105,110,100,95,115,112,101,99,153,
+ 3,0,0,115,68,0,0,0,6,2,8,1,8,2,4,3,
+ 12,1,10,5,8,1,8,1,2,1,10,1,12,1,12,1,
+ 8,1,2,1,14,250,4,5,2,254,12,5,2,128,28,248,
+ 8,9,14,2,10,1,2,1,10,1,12,1,12,4,2,252,
+ 8,6,8,1,8,2,8,2,2,239,4,19,114,215,0,0,
+ 0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,5,0,0,0,67,0,0,0,115,110,0,0,0,116,
+ 0,124,0,116,1,131,2,115,14,116,2,100,1,160,3,116,
+ 4,124,0,131,1,161,1,131,1,130,1,124,2,100,2,107,
+ 0,114,22,116,5,100,3,131,1,130,1,124,2,100,2,107,
+ 4,114,41,116,0,124,1,116,1,131,2,115,35,116,2,100,
+ 4,131,1,130,1,124,1,115,41,116,6,100,5,131,1,130,
+ 1,124,0,115,51,124,2,100,2,107,2,114,53,116,5,100,
+ 6,131,1,130,1,100,7,83,0,100,7,83,0,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,25,
+ 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,3,0,0,0,218,10,86,97,
+ 108,117,101,69,114,114,111,114,114,87,0,0,0,169,3,114,
+ 20,0,0,0,114,209,0,0,0,114,210,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,218,13,95,
+ 115,97,110,105,116,121,95,99,104,101,99,107,200,3,0,0,
+ 115,24,0,0,0,10,2,18,1,8,1,8,1,8,1,10,
+ 1,8,1,4,1,8,1,12,2,8,1,8,255,114,221,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,0,0,0,0,9,0,0,0,8,0,0,0,67,
+ 0,0,0,115,16,1,0,0,100,0,125,2,124,0,160,0,
+ 100,1,161,1,100,2,25,0,125,3,124,3,114,64,124,3,
+ 116,1,106,2,118,1,114,21,116,3,124,1,124,3,131,2,
+ 1,0,124,0,116,1,106,2,118,0,114,31,116,1,106,2,
+ 124,0,25,0,83,0,116,1,106,2,124,3,25,0,125,4,
+ 122,5,124,4,106,4,125,2,87,0,110,22,4,0,116,5,
+ 121,63,1,0,1,0,1,0,116,6,100,3,23,0,160,7,
+ 124,0,124,3,161,2,125,5,116,8,124,5,124,0,100,4,
+ 141,2,100,0,130,2,119,0,116,9,124,0,124,2,131,2,
+ 125,6,124,6,100,0,117,0,114,82,116,8,116,6,160,7,
+ 124,0,161,1,124,0,100,4,141,2,130,1,116,10,124,6,
+ 131,1,125,7,124,3,114,134,116,1,106,2,124,3,25,0,
+ 125,4,124,0,160,0,100,1,161,1,100,5,25,0,125,8,
+ 122,9,116,11,124,4,124,8,124,7,131,3,1,0,87,0,
+ 124,7,83,0,4,0,116,5,121,133,1,0,1,0,1,0,
+ 100,6,124,3,155,2,100,7,124,8,155,2,157,4,125,5,
+ 116,12,160,13,124,5,116,14,161,2,1,0,89,0,124,7,
+ 83,0,119,0,124,7,83,0,41,8,78,114,141,0,0,0,
+ 114,25,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,19,
+ 0,0,0,233,2,0,0,0,122,27,67,97,110,110,111,116,
+ 32,115,101,116,32,97,110,32,97,116,116,114,105,98,117,116,
+ 101,32,111,110,32,122,18,32,102,111,114,32,99,104,105,108,
+ 100,32,109,111,100,117,108,101,32,41,15,114,142,0,0,0,
+ 114,18,0,0,0,114,105,0,0,0,114,74,0,0,0,114,
+ 154,0,0,0,114,2,0,0,0,218,8,95,69,82,82,95,
+ 77,83,71,114,50,0,0,0,218,19,77,111,100,117,108,101,
+ 78,111,116,70,111,117,110,100,69,114,114,111,114,114,215,0,
+ 0,0,114,173,0,0,0,114,12,0,0,0,114,101,0,0,
+ 0,114,102,0,0,0,114,169,0,0,0,41,9,114,20,0,
+ 0,0,218,7,105,109,112,111,114,116,95,114,181,0,0,0,
+ 114,143,0,0,0,90,13,112,97,114,101,110,116,95,109,111,
+ 100,117,108,101,114,108,0,0,0,114,109,0,0,0,114,110,
+ 0,0,0,90,5,99,104,105,108,100,114,5,0,0,0,114,
+ 5,0,0,0,114,6,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,219,3,0,0,115,60,0,0,0,4,1,14,1,4,
+ 1,10,1,10,1,10,2,10,1,10,1,2,1,10,1,12,
+ 1,16,1,14,1,2,254,10,3,8,1,18,1,8,2,4,
+ 1,10,2,14,1,2,1,14,1,4,4,12,253,16,1,14,
+ 1,4,1,2,253,4,3,114,226,0,0,0,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,128,0,0,0,116,0,124,0,131,1,
+ 143,31,1,0,116,1,106,2,160,3,124,0,116,4,161,2,
+ 125,2,124,2,116,4,117,0,114,28,116,5,124,0,124,1,
+ 131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,0,
+ 83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,8,
+ 49,0,115,38,119,1,1,0,1,0,1,0,89,0,1,0,
+ 124,2,100,1,117,0,114,58,100,2,160,6,124,0,161,1,
+ 125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,8,
+ 124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,105,
+ 110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,
+ 109,111,100,117,108,101,46,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,19,0,0,0,41,9,114,57,0,0,0,114,18,
+ 0,0,0,114,105,0,0,0,114,38,0,0,0,218,14,95,
+ 78,69,69,68,83,95,76,79,65,68,73,78,71,114,226,0,
+ 0,0,114,50,0,0,0,114,224,0,0,0,114,72,0,0,
+ 0,41,4,114,20,0,0,0,114,225,0,0,0,114,110,0,
+ 0,0,114,82,0,0,0,114,5,0,0,0,114,5,0,0,
+ 0,114,6,0,0,0,218,14,95,102,105,110,100,95,97,110,
+ 100,95,108,111,97,100,254,3,0,0,115,28,0,0,0,10,
+ 2,14,1,8,1,8,1,16,253,2,2,28,254,8,5,2,
+ 1,6,1,2,255,12,2,8,2,4,1,114,228,0,0,0,
+ 114,25,0,0,0,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,42,
+ 0,0,0,116,0,124,0,124,1,124,2,131,3,1,0,124,
+ 2,100,1,107,4,114,16,116,1,124,0,124,1,124,2,131,
+ 3,125,0,116,2,124,0,116,3,131,2,83,0,41,2,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,25,0,0,0,41,4,114,221,0,
+ 0,0,114,211,0,0,0,114,228,0,0,0,218,11,95,103,
+ 99,100,95,105,109,112,111,114,116,114,220,0,0,0,114,5,
+ 0,0,0,114,5,0,0,0,114,6,0,0,0,114,229,0,
+ 0,0,14,4,0,0,115,8,0,0,0,12,9,8,1,12,
+ 1,10,1,114,229,0,0,0,169,1,218,9,114,101,99,117,
+ 114,115,105,118,101,99,3,0,0,0,0,0,0,0,1,0,
+ 0,0,8,0,0,0,11,0,0,0,67,0,0,0,115,218,
+ 0,0,0,124,1,68,0,93,104,125,4,116,0,124,4,116,
+ 1,131,2,115,32,124,3,114,17,124,0,106,2,100,1,23,
+ 0,125,5,110,2,100,2,125,5,116,3,100,3,124,5,155,
+ 0,100,4,116,4,124,4,131,1,106,2,155,0,157,4,131,
+ 1,130,1,124,4,100,5,107,2,114,53,124,3,115,52,116,
+ 5,124,0,100,6,131,2,114,52,116,6,124,0,124,0,106,
+ 7,124,2,100,7,100,8,141,4,1,0,113,2,116,5,124,
+ 0,124,4,131,2,115,106,100,9,160,8,124,0,106,2,124,
+ 4,161,2,125,6,122,7,116,9,124,2,124,6,131,2,1,
+ 0,87,0,113,2,4,0,116,10,121,105,1,0,125,7,1,
+ 0,122,21,124,7,106,11,124,6,107,2,114,100,116,12,106,
+ 13,160,14,124,6,116,15,161,2,100,10,117,1,114,100,87,
+ 0,89,0,100,10,125,7,126,7,113,2,130,0,100,10,125,
+ 7,126,7,119,1,119,0,113,2,124,0,83,0,41,11,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,122,
+ 8,46,95,95,97,108,108,95,95,122,13,96,96,102,114,111,
+ 109,32,108,105,115,116,39,39,122,8,73,116,101,109,32,105,
+ 110,32,122,18,32,109,117,115,116,32,98,101,32,115,116,114,
+ 44,32,110,111,116,32,250,1,42,218,7,95,95,97,108,108,
+ 95,95,84,114,230,0,0,0,114,206,0,0,0,78,41,16,
+ 114,216,0,0,0,114,217,0,0,0,114,9,0,0,0,114,
+ 218,0,0,0,114,3,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,
+ 114,233,0,0,0,114,50,0,0,0,114,74,0,0,0,114,
+ 224,0,0,0,114,20,0,0,0,114,18,0,0,0,114,105,
+ 0,0,0,114,38,0,0,0,114,227,0,0,0,41,8,114,
+ 110,0,0,0,218,8,102,114,111,109,108,105,115,116,114,225,
+ 0,0,0,114,231,0,0,0,218,1,120,90,5,119,104,101,
+ 114,101,90,9,102,114,111,109,95,110,97,109,101,90,3,101,
+ 120,99,114,5,0,0,0,114,5,0,0,0,114,6,0,0,
+ 0,114,234,0,0,0,29,4,0,0,115,56,0,0,0,8,
+ 10,10,1,4,1,12,1,4,2,10,1,8,1,8,255,8,
+ 2,14,1,10,1,2,1,6,255,2,128,10,2,14,1,2,
+ 1,14,1,14,1,10,4,16,1,2,255,12,2,2,1,8,
+ 128,2,249,2,252,4,12,114,234,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+ 0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,1,
+ 161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,1,
+ 100,3,117,1,114,41,124,2,100,3,117,1,114,39,124,1,
+ 124,2,106,1,107,3,114,39,116,2,106,3,100,4,124,1,
+ 155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,4,
+ 100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,3,
+ 117,1,114,48,124,2,106,1,83,0,116,2,106,3,100,9,
+ 116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,0,
+ 125,1,100,11,124,0,118,1,114,71,124,1,160,5,100,12,
+ 161,1,100,13,25,0,125,1,124,1,83,0,41,14,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,158,0,0,0,114,113,0,0,
+ 0,78,122,32,95,95,112,97,99,107,97,103,101,95,95,32,
+ 33,61,32,95,95,115,112,101,99,95,95,46,112,97,114,101,
+ 110,116,32,40,122,4,32,33,61,32,250,1,41,233,3,0,
+ 0,0,41,1,90,10,115,116,97,99,107,108,101,118,101,108,
+ 122,89,99,97,110,39,116,32,114,101,115,111,108,118,101,32,
+ 112,97,99,107,97,103,101,32,102,114,111,109,32,95,95,115,
+ 112,101,99,95,95,32,111,114,32,95,95,112,97,99,107,97,
+ 103,101,95,95,44,32,102,97,108,108,105,110,103,32,98,97,
+ 99,107,32,111,110,32,95,95,110,97,109,101,95,95,32,97,
+ 110,100,32,95,95,112,97,116,104,95,95,114,9,0,0,0,
+ 114,154,0,0,0,114,141,0,0,0,114,25,0,0,0,41,
+ 6,114,38,0,0,0,114,143,0,0,0,114,101,0,0,0,
+ 114,102,0,0,0,114,169,0,0,0,114,142,0,0,0,41,
+ 3,218,7,103,108,111,98,97,108,115,114,209,0,0,0,114,
+ 109,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,
+ 0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,99,
+ 107,97,103,101,95,95,66,4,0,0,115,42,0,0,0,10,
+ 7,10,1,8,1,18,1,6,1,2,1,4,255,4,1,6,
+ 255,4,2,6,254,4,3,8,1,6,1,6,2,4,2,6,
+ 254,8,3,8,1,14,1,4,1,114,240,0,0,0,114,5,
+ 0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,0,
+ 9,0,0,0,5,0,0,0,67,0,0,0,115,174,0,0,
+ 0,124,4,100,1,107,2,114,9,116,0,124,0,131,1,125,
+ 5,110,18,124,1,100,2,117,1,114,15,124,1,110,1,105,
+ 0,125,6,116,1,124,6,131,1,125,7,116,0,124,0,124,
+ 7,124,4,131,3,125,5,124,3,115,74,124,4,100,1,107,
+ 2,114,42,116,0,124,0,160,2,100,3,161,1,100,1,25,
+ 0,131,1,83,0,124,0,115,46,124,5,83,0,116,3,124,
+ 0,131,1,116,3,124,0,160,2,100,3,161,1,100,1,25,
+ 0,131,1,24,0,125,8,116,4,106,5,124,5,106,6,100,
+ 2,116,3,124,5,106,6,131,1,124,8,24,0,133,2,25,
+ 0,25,0,83,0,116,7,124,5,100,4,131,2,114,85,116,
+ 8,124,5,124,3,116,0,131,3,83,0,124,5,83,0,41,
+ 5,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,25,0,
+ 0,0,78,114,141,0,0,0,114,154,0,0,0,41,9,114,
+ 229,0,0,0,114,240,0,0,0,218,9,112,97,114,116,105,
+ 116,105,111,110,114,208,0,0,0,114,18,0,0,0,114,105,
+ 0,0,0,114,9,0,0,0,114,11,0,0,0,114,234,0,
+ 0,0,41,9,114,20,0,0,0,114,239,0,0,0,218,6,
+ 108,111,99,97,108,115,114,235,0,0,0,114,210,0,0,0,
+ 114,110,0,0,0,90,8,103,108,111,98,97,108,115,95,114,
+ 209,0,0,0,90,7,99,117,116,95,111,102,102,114,5,0,
+ 0,0,114,5,0,0,0,114,6,0,0,0,218,10,95,95,
+ 105,109,112,111,114,116,95,95,93,4,0,0,115,30,0,0,
+ 0,8,11,10,1,16,2,8,1,12,1,4,1,8,3,18,
+ 1,4,1,4,1,26,4,30,3,10,1,12,1,4,2,114,
+ 243,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,
+ 117,0,114,15,116,2,100,1,124,0,23,0,131,1,130,1,
+ 116,3,124,1,131,1,83,0,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,175,0,0,0,114,183,0,
+ 0,0,114,87,0,0,0,114,173,0,0,0,41,2,114,20,
+ 0,0,0,114,109,0,0,0,114,5,0,0,0,114,5,0,
+ 0,0,114,6,0,0,0,218,18,95,98,117,105,108,116,105,
+ 110,95,102,114,111,109,95,110,97,109,101,130,4,0,0,115,
+ 8,0,0,0,10,1,8,1,12,1,8,1,114,244,0,0,
+ 0,99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,
+ 0,0,5,0,0,0,67,0,0,0,115,166,0,0,0,124,
+ 1,97,0,124,0,97,1,116,2,116,1,131,1,125,2,116,
+ 1,106,3,160,4,161,0,68,0,93,36,92,2,125,3,125,
+ 4,116,5,124,4,124,2,131,2,114,49,124,3,116,1,106,
+ 6,118,0,114,30,116,7,125,5,110,9,116,0,160,8,124,
+ 3,161,1,114,38,116,9,125,5,110,1,113,13,116,10,124,
+ 4,124,5,131,2,125,6,116,11,124,6,124,4,131,2,1,
+ 0,113,13,116,1,106,3,116,12,25,0,125,7,100,1,68,
+ 0,93,23,125,8,124,8,116,1,106,3,118,1,114,69,116,
+ 13,124,8,131,1,125,9,110,5,116,1,106,3,124,8,25,
+ 0,125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,
+ 57,100,2,83,0,41,3,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,41,3,114,26,0,0,0,114,101,0,0,0,114,
+ 71,0,0,0,78,41,15,114,64,0,0,0,114,18,0,0,
+ 0,114,3,0,0,0,114,105,0,0,0,218,5,105,116,101,
+ 109,115,114,216,0,0,0,114,86,0,0,0,114,175,0,0,
+ 0,114,98,0,0,0,114,193,0,0,0,114,155,0,0,0,
+ 114,161,0,0,0,114,9,0,0,0,114,244,0,0,0,114,
+ 12,0,0,0,41,10,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,20,0,0,
+ 0,114,110,0,0,0,114,122,0,0,0,114,109,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,114,5,0,0,0,
+ 114,5,0,0,0,114,6,0,0,0,218,6,95,115,101,116,
+ 117,112,137,4,0,0,115,40,0,0,0,4,9,4,1,8,
+ 3,18,1,10,1,10,1,6,1,10,1,6,1,2,2,10,
+ 1,10,1,2,128,10,3,8,1,10,1,10,1,10,2,14,
+ 1,4,251,114,248,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,38,0,0,0,116,0,124,0,124,1,131,2,1,0,
+ 116,1,106,2,160,3,116,4,161,1,1,0,116,1,106,2,
+ 160,3,116,5,161,1,1,0,100,1,83,0,41,2,122,48,
+ 73,110,115,116,97,108,108,32,105,109,112,111,114,116,101,114,
+ 115,32,102,111,114,32,98,117,105,108,116,105,110,32,97,110,
+ 100,32,102,114,111,122,101,110,32,109,111,100,117,108,101,115,
+ 78,41,6,114,248,0,0,0,114,18,0,0,0,114,214,0,
+ 0,0,114,132,0,0,0,114,175,0,0,0,114,193,0,0,
+ 0,41,2,114,246,0,0,0,114,247,0,0,0,114,5,0,
+ 0,0,114,5,0,0,0,114,6,0,0,0,218,8,95,105,
+ 110,115,116,97,108,108,172,4,0,0,115,6,0,0,0,10,
+ 2,12,2,16,1,114,249,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,
+ 0,0,0,115,32,0,0,0,100,1,100,2,108,0,125,0,
+ 124,0,97,1,124,0,160,2,116,3,106,4,116,5,25,0,
+ 161,1,1,0,100,2,83,0,41,3,122,57,73,110,115,116,
+ 97,108,108,32,105,109,112,111,114,116,101,114,115,32,116,104,
+ 97,116,32,114,101,113,117,105,114,101,32,101,120,116,101,114,
+ 110,97,108,32,102,105,108,101,115,121,115,116,101,109,32,97,
+ 99,99,101,115,115,114,25,0,0,0,78,41,6,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,139,0,0,0,114,249,
+ 0,0,0,114,18,0,0,0,114,105,0,0,0,114,9,0,
+ 0,0,41,1,114,250,0,0,0,114,5,0,0,0,114,5,
+ 0,0,0,114,6,0,0,0,218,27,95,105,110,115,116,97,
+ 108,108,95,101,120,116,101,114,110,97,108,95,105,109,112,111,
+ 114,116,101,114,115,180,4,0,0,115,6,0,0,0,8,3,
+ 4,1,20,1,114,251,0,0,0,114,190,0,0,0,114,0,
+ 0,0,0,114,24,0,0,0,41,4,78,78,114,5,0,0,
+ 0,114,25,0,0,0,41,54,114,10,0,0,0,114,7,0,
+ 0,0,114,26,0,0,0,114,101,0,0,0,114,71,0,0,
+ 0,114,139,0,0,0,114,17,0,0,0,114,21,0,0,0,
+ 114,66,0,0,0,114,37,0,0,0,114,47,0,0,0,114,
+ 22,0,0,0,114,23,0,0,0,114,55,0,0,0,114,57,
+ 0,0,0,114,60,0,0,0,114,72,0,0,0,114,74,0,
+ 0,0,114,83,0,0,0,114,95,0,0,0,114,100,0,0,
+ 0,114,111,0,0,0,114,124,0,0,0,114,125,0,0,0,
+ 114,104,0,0,0,114,155,0,0,0,114,161,0,0,0,114,
+ 165,0,0,0,114,119,0,0,0,114,106,0,0,0,114,172,
+ 0,0,0,114,173,0,0,0,114,107,0,0,0,114,175,0,
+ 0,0,114,193,0,0,0,114,200,0,0,0,114,211,0,0,
+ 0,114,213,0,0,0,114,215,0,0,0,114,221,0,0,0,
+ 90,15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,
+ 88,114,223,0,0,0,114,226,0,0,0,218,6,111,98,106,
+ 101,99,116,114,227,0,0,0,114,228,0,0,0,114,229,0,
+ 0,0,114,234,0,0,0,114,240,0,0,0,114,243,0,0,
+ 0,114,244,0,0,0,114,248,0,0,0,114,249,0,0,0,
+ 114,251,0,0,0,114,5,0,0,0,114,5,0,0,0,114,
+ 5,0,0,0,114,6,0,0,0,218,8,60,109,111,100,117,
+ 108,101,62,1,0,0,0,115,104,0,0,0,4,0,8,22,
+ 4,9,4,1,4,1,4,3,8,3,8,8,4,8,4,2,
+ 16,3,14,4,14,77,14,21,8,16,8,37,8,17,14,11,
+ 8,8,8,11,8,12,8,19,14,26,16,101,10,26,14,45,
+ 8,72,8,17,8,17,8,30,8,36,8,45,14,15,14,80,
+ 14,85,8,13,8,9,10,10,8,47,4,16,8,1,8,2,
+ 6,32,8,3,10,16,14,15,8,37,10,27,8,37,8,7,
+ 8,35,12,8,
};
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 01fdef7..90c8d89 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -102,841 +102,840 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
19,0,0,0,115,20,0,0,0,116,0,106,1,106,2,12,
- 0,111,9,136,0,116,3,106,4,118,0,83,0,41,2,122,
+ 0,111,9,136,0,116,3,106,4,118,0,83,0,41,1,122,
94,84,114,117,101,32,105,102,32,102,105,108,101,110,97,109,
101,115,32,109,117,115,116,32,98,101,32,99,104,101,99,107,
101,100,32,99,97,115,101,45,105,110,115,101,110,115,105,116,
105,118,101,108,121,32,97,110,100,32,105,103,110,111,114,101,
32,101,110,118,105,114,111,110,109,101,110,116,32,102,108,97,
- 103,115,32,97,114,101,32,110,111,116,32,115,101,116,46,78,
- 41,5,218,3,115,121,115,218,5,102,108,97,103,115,218,18,
- 105,103,110,111,114,101,95,101,110,118,105,114,111,110,109,101,
- 110,116,218,3,95,111,115,90,7,101,110,118,105,114,111,110,
- 114,7,0,0,0,169,1,218,3,107,101,121,114,7,0,0,
- 0,114,8,0,0,0,218,11,95,114,101,108,97,120,95,99,
- 97,115,101,67,0,0,0,243,2,0,0,0,20,2,122,37,
+ 103,115,32,97,114,101,32,110,111,116,32,115,101,116,46,41,
+ 5,218,3,115,121,115,218,5,102,108,97,103,115,218,18,105,
+ 103,110,111,114,101,95,101,110,118,105,114,111,110,109,101,110,
+ 116,218,3,95,111,115,90,7,101,110,118,105,114,111,110,114,
+ 7,0,0,0,169,1,218,3,107,101,121,114,7,0,0,0,
+ 114,8,0,0,0,218,11,95,114,101,108,97,120,95,99,97,
+ 115,101,67,0,0,0,243,2,0,0,0,20,2,122,37,95,
+ 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,46,
+ 60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,95,
+ 99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,83,0,0,0,243,4,0,
+ 0,0,100,1,83,0,41,2,122,53,84,114,117,101,32,105,
+ 102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,116,
+ 32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,101,
+ 45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,70,
+ 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,114,21,0,0,0,71,0,
+ 0,0,243,2,0,0,0,4,2,41,5,114,15,0,0,0,
+ 218,8,112,108,97,116,102,111,114,109,218,10,115,116,97,114,
+ 116,115,119,105,116,104,218,27,95,67,65,83,69,95,73,78,
+ 83,69,78,83,73,84,73,86,69,95,80,76,65,84,70,79,
+ 82,77,83,218,35,95,67,65,83,69,95,73,78,83,69,78,
+ 83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
+ 95,83,84,82,95,75,69,89,41,1,114,21,0,0,0,114,
+ 7,0,0,0,114,19,0,0,0,114,8,0,0,0,218,16,
95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,
- 46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,
- 95,99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,83,0,0,0,243,4,
- 0,0,0,100,1,83,0,41,3,122,53,84,114,117,101,32,
- 105,102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,
- 116,32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,
- 101,45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,
- 70,78,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,21,0,0,0,
- 71,0,0,0,243,2,0,0,0,4,2,41,5,114,15,0,
- 0,0,218,8,112,108,97,116,102,111,114,109,218,10,115,116,
- 97,114,116,115,119,105,116,104,218,27,95,67,65,83,69,95,
- 73,78,83,69,78,83,73,84,73,86,69,95,80,76,65,84,
- 70,79,82,77,83,218,35,95,67,65,83,69,95,73,78,83,
- 69,78,83,73,84,73,86,69,95,80,76,65,84,70,79,82,
- 77,83,95,83,84,82,95,75,69,89,41,1,114,21,0,0,
- 0,114,7,0,0,0,114,19,0,0,0,114,8,0,0,0,
- 218,16,95,109,97,107,101,95,114,101,108,97,120,95,99,97,
- 115,101,60,0,0,0,115,16,0,0,0,12,1,12,1,6,
- 1,4,2,12,2,4,7,8,253,4,3,114,29,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,20,0,0,0,116,0,
- 124,0,131,1,100,1,64,0,160,1,100,2,100,3,161,2,
- 83,0,41,5,122,42,67,111,110,118,101,114,116,32,97,32,
- 51,50,45,98,105,116,32,105,110,116,101,103,101,114,32,116,
- 111,32,108,105,116,116,108,101,45,101,110,100,105,97,110,46,
- 236,3,0,0,0,255,127,255,127,3,0,233,4,0,0,0,
- 218,6,108,105,116,116,108,101,78,41,2,218,3,105,110,116,
- 218,8,116,111,95,98,121,116,101,115,41,1,218,1,120,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,12,
- 95,112,97,99,107,95,117,105,110,116,51,50,79,0,0,0,
- 114,22,0,0,0,114,36,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,243,28,0,0,0,116,0,124,0,131,1,100,1,
- 107,2,115,8,74,0,130,1,116,1,160,2,124,0,100,2,
- 161,2,83,0,41,4,122,47,67,111,110,118,101,114,116,32,
- 52,32,98,121,116,101,115,32,105,110,32,108,105,116,116,108,
- 101,45,101,110,100,105,97,110,32,116,111,32,97,110,32,105,
- 110,116,101,103,101,114,46,114,31,0,0,0,114,32,0,0,
- 0,78,169,3,114,4,0,0,0,114,33,0,0,0,218,10,
- 102,114,111,109,95,98,121,116,101,115,169,1,218,4,100,97,
- 116,97,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,218,14,95,117,110,112,97,99,107,95,117,105,110,116,51,
- 50,84,0,0,0,243,4,0,0,0,16,2,12,1,114,42,
- 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,114,37,0,0,
- 0,41,4,122,47,67,111,110,118,101,114,116,32,50,32,98,
+ 60,0,0,0,115,16,0,0,0,12,1,12,1,6,1,4,
+ 2,12,2,4,7,8,253,4,3,114,29,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,20,0,0,0,116,0,124,0,
+ 131,1,100,1,64,0,160,1,100,2,100,3,161,2,83,0,
+ 41,4,122,42,67,111,110,118,101,114,116,32,97,32,51,50,
+ 45,98,105,116,32,105,110,116,101,103,101,114,32,116,111,32,
+ 108,105,116,116,108,101,45,101,110,100,105,97,110,46,236,3,
+ 0,0,0,255,127,255,127,3,0,233,4,0,0,0,218,6,
+ 108,105,116,116,108,101,41,2,218,3,105,110,116,218,8,116,
+ 111,95,98,121,116,101,115,41,1,218,1,120,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,12,95,112,97,
+ 99,107,95,117,105,110,116,51,50,79,0,0,0,114,22,0,
+ 0,0,114,36,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,
+ 243,28,0,0,0,116,0,124,0,131,1,100,1,107,2,115,
+ 8,74,0,130,1,116,1,160,2,124,0,100,2,161,2,83,
+ 0,41,3,122,47,67,111,110,118,101,114,116,32,52,32,98,
121,116,101,115,32,105,110,32,108,105,116,116,108,101,45,101,
110,100,105,97,110,32,116,111,32,97,110,32,105,110,116,101,
- 103,101,114,46,233,2,0,0,0,114,32,0,0,0,78,114,
- 38,0,0,0,114,40,0,0,0,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,218,14,95,117,110,112,97,99,
- 107,95,117,105,110,116,49,54,89,0,0,0,114,43,0,0,
- 0,114,45,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,5,0,0,0,4,0,0,0,71,0,0,0,115,
- 228,0,0,0,124,0,115,4,100,1,83,0,116,0,124,0,
- 131,1,100,2,107,2,114,14,124,0,100,3,25,0,83,0,
- 100,1,125,1,103,0,125,2,116,1,116,2,106,3,124,0,
- 131,2,68,0,93,61,92,2,125,3,125,4,124,3,160,4,
- 116,5,161,1,115,38,124,3,160,6,116,5,161,1,114,51,
- 124,3,160,7,116,8,161,1,112,44,124,1,125,1,116,9,
- 124,4,23,0,103,1,125,2,113,24,124,3,160,6,100,4,
- 161,1,114,76,124,1,160,10,161,0,124,3,160,10,161,0,
- 107,3,114,70,124,3,125,1,124,4,103,1,125,2,113,24,
- 124,2,160,11,124,4,161,1,1,0,113,24,124,3,112,79,
- 124,1,125,1,124,2,160,11,124,4,161,1,1,0,113,24,
- 100,5,100,6,132,0,124,2,68,0,131,1,125,2,116,0,
- 124,2,131,1,100,2,107,2,114,107,124,2,100,3,25,0,
- 115,107,124,1,116,9,23,0,83,0,124,1,116,9,160,12,
- 124,2,161,1,23,0,83,0,41,8,250,31,82,101,112,108,
+ 103,101,114,46,114,31,0,0,0,114,32,0,0,0,169,3,
+ 114,4,0,0,0,114,33,0,0,0,218,10,102,114,111,109,
+ 95,98,121,116,101,115,169,1,218,4,100,97,116,97,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,218,14,95,
+ 117,110,112,97,99,107,95,117,105,110,116,51,50,84,0,0,
+ 0,243,4,0,0,0,16,2,12,1,114,42,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,114,37,0,0,0,41,3,122,
+ 47,67,111,110,118,101,114,116,32,50,32,98,121,116,101,115,
+ 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
+ 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
+ 233,2,0,0,0,114,32,0,0,0,114,38,0,0,0,114,
+ 40,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,14,95,117,110,112,97,99,107,95,117,105,110,
+ 116,49,54,89,0,0,0,114,43,0,0,0,114,45,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,4,0,0,0,71,0,0,0,115,228,0,0,0,124,
+ 0,115,4,100,1,83,0,116,0,124,0,131,1,100,2,107,
+ 2,114,14,124,0,100,3,25,0,83,0,100,1,125,1,103,
+ 0,125,2,116,1,116,2,106,3,124,0,131,2,68,0,93,
+ 61,92,2,125,3,125,4,124,3,160,4,116,5,161,1,115,
+ 38,124,3,160,6,116,5,161,1,114,51,124,3,160,7,116,
+ 8,161,1,112,44,124,1,125,1,116,9,124,4,23,0,103,
+ 1,125,2,113,24,124,3,160,6,100,4,161,1,114,76,124,
+ 1,160,10,161,0,124,3,160,10,161,0,107,3,114,70,124,
+ 3,125,1,124,4,103,1,125,2,113,24,124,2,160,11,124,
+ 4,161,1,1,0,113,24,124,3,112,79,124,1,125,1,124,
+ 2,160,11,124,4,161,1,1,0,113,24,100,5,100,6,132,
+ 0,124,2,68,0,131,1,125,2,116,0,124,2,131,1,100,
+ 2,107,2,114,107,124,2,100,3,25,0,115,107,124,1,116,
+ 9,23,0,83,0,124,1,116,9,160,12,124,2,161,1,23,
+ 0,83,0,41,7,250,31,82,101,112,108,97,99,101,109,101,
+ 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,106,
+ 111,105,110,40,41,46,114,10,0,0,0,114,3,0,0,0,
+ 114,0,0,0,0,114,11,0,0,0,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,83,
+ 0,0,0,243,26,0,0,0,103,0,124,0,93,9,125,1,
+ 124,1,114,2,124,1,160,0,116,1,161,1,145,2,113,2,
+ 83,0,114,7,0,0,0,169,2,218,6,114,115,116,114,105,
+ 112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,111,
+ 114,115,169,2,114,5,0,0,0,218,1,112,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,10,60,108,105,
+ 115,116,99,111,109,112,62,119,0,0,0,115,2,0,0,0,
+ 26,0,250,30,95,112,97,116,104,95,106,111,105,110,46,60,
+ 108,111,99,97,108,115,62,46,60,108,105,115,116,99,111,109,
+ 112,62,41,13,114,4,0,0,0,218,3,109,97,112,114,18,
+ 0,0,0,218,15,95,112,97,116,104,95,115,112,108,105,116,
+ 114,111,111,116,114,26,0,0,0,218,14,112,97,116,104,95,
+ 115,101,112,95,116,117,112,108,101,218,8,101,110,100,115,119,
+ 105,116,104,114,49,0,0,0,114,50,0,0,0,218,8,112,
+ 97,116,104,95,115,101,112,218,8,99,97,115,101,102,111,108,
+ 100,218,6,97,112,112,101,110,100,218,4,106,111,105,110,41,
+ 5,218,10,112,97,116,104,95,112,97,114,116,115,218,4,114,
+ 111,111,116,218,4,112,97,116,104,90,8,110,101,119,95,114,
+ 111,111,116,218,4,116,97,105,108,114,7,0,0,0,114,7,
+ 0,0,0,114,8,0,0,0,218,10,95,112,97,116,104,95,
+ 106,111,105,110,96,0,0,0,115,42,0,0,0,4,2,4,
+ 1,12,1,8,1,4,1,4,1,20,1,20,1,14,1,12,
+ 1,10,1,16,1,4,3,8,1,12,2,8,2,12,1,14,
+ 1,20,1,8,2,14,1,114,67,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,
+ 0,71,0,0,0,115,20,0,0,0,116,0,160,1,100,1,
+ 100,2,132,0,124,0,68,0,131,1,161,1,83,0,41,3,
+ 114,46,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,5,0,0,0,83,0,0,0,114,47,
+ 0,0,0,114,7,0,0,0,114,48,0,0,0,41,2,114,
+ 5,0,0,0,218,4,112,97,114,116,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,114,53,0,0,0,128,0,
+ 0,0,115,6,0,0,0,6,0,4,1,16,255,114,54,0,
+ 0,0,41,2,114,59,0,0,0,114,62,0,0,0,41,1,
+ 114,63,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,114,67,0,0,0,126,0,0,0,115,6,0,
+ 0,0,10,2,2,1,8,255,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,
+ 0,115,66,0,0,0,116,0,135,0,102,1,100,1,100,2,
+ 132,8,116,1,68,0,131,1,131,1,125,1,124,1,100,3,
+ 107,0,114,19,100,4,136,0,102,2,83,0,136,0,100,5,
+ 124,1,133,2,25,0,136,0,124,1,100,6,23,0,100,5,
+ 133,2,25,0,102,2,83,0,41,7,122,32,82,101,112,108,
97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,
- 97,116,104,46,106,111,105,110,40,41,46,114,10,0,0,0,
- 114,3,0,0,0,114,0,0,0,0,114,11,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 5,0,0,0,83,0,0,0,243,26,0,0,0,103,0,124,
- 0,93,9,125,1,124,1,114,2,124,1,160,0,116,1,161,
- 1,145,2,113,2,83,0,114,7,0,0,0,169,2,218,6,
- 114,115,116,114,105,112,218,15,112,97,116,104,95,115,101,112,
- 97,114,97,116,111,114,115,169,2,114,5,0,0,0,218,1,
- 112,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,10,60,108,105,115,116,99,111,109,112,62,119,0,0,0,
- 115,2,0,0,0,26,0,250,30,95,112,97,116,104,95,106,
- 111,105,110,46,60,108,111,99,97,108,115,62,46,60,108,105,
- 115,116,99,111,109,112,62,78,41,13,114,4,0,0,0,218,
- 3,109,97,112,114,18,0,0,0,218,15,95,112,97,116,104,
- 95,115,112,108,105,116,114,111,111,116,114,26,0,0,0,218,
- 14,112,97,116,104,95,115,101,112,95,116,117,112,108,101,218,
- 8,101,110,100,115,119,105,116,104,114,49,0,0,0,114,50,
- 0,0,0,218,8,112,97,116,104,95,115,101,112,218,8,99,
- 97,115,101,102,111,108,100,218,6,97,112,112,101,110,100,218,
- 4,106,111,105,110,41,5,218,10,112,97,116,104,95,112,97,
- 114,116,115,218,4,114,111,111,116,218,4,112,97,116,104,90,
- 8,110,101,119,95,114,111,111,116,218,4,116,97,105,108,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,
- 95,112,97,116,104,95,106,111,105,110,96,0,0,0,115,42,
- 0,0,0,4,2,4,1,12,1,8,1,4,1,4,1,20,
- 1,20,1,14,1,12,1,10,1,16,1,4,3,8,1,12,
- 2,8,2,12,1,14,1,20,1,8,2,14,1,114,67,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,
- 0,0,0,4,0,0,0,71,0,0,0,115,20,0,0,0,
- 116,0,160,1,100,1,100,2,132,0,124,0,68,0,131,1,
- 161,1,83,0,41,4,114,46,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
- 83,0,0,0,114,47,0,0,0,114,7,0,0,0,114,48,
- 0,0,0,41,2,114,5,0,0,0,218,4,112,97,114,116,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
- 53,0,0,0,128,0,0,0,115,6,0,0,0,6,0,4,
- 1,16,255,114,54,0,0,0,78,41,2,114,59,0,0,0,
- 114,62,0,0,0,41,1,114,63,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,67,0,0,0,
- 126,0,0,0,115,6,0,0,0,10,2,2,1,8,255,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 4,0,0,0,3,0,0,0,115,66,0,0,0,116,0,135,
- 0,102,1,100,1,100,2,132,8,116,1,68,0,131,1,131,
- 1,125,1,124,1,100,3,107,0,114,19,100,4,136,0,102,
- 2,83,0,136,0,100,5,124,1,133,2,25,0,136,0,124,
- 1,100,6,23,0,100,5,133,2,25,0,102,2,83,0,41,
- 7,122,32,82,101,112,108,97,99,101,109,101,110,116,32,102,
- 111,114,32,111,115,46,112,97,116,104,46,115,112,108,105,116,
- 40,41,46,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,4,0,0,0,51,0,0,0,115,26,0,0,
- 0,129,0,124,0,93,8,125,1,136,0,160,0,124,1,161,
- 1,86,0,1,0,113,2,100,0,83,0,169,1,78,41,1,
- 218,5,114,102,105,110,100,114,51,0,0,0,169,1,114,65,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,
- 0,0,134,0,0,0,115,4,0,0,0,2,128,24,0,122,
- 30,95,112,97,116,104,95,115,112,108,105,116,46,60,108,111,
- 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,114,
- 0,0,0,0,114,10,0,0,0,78,114,3,0,0,0,41,
- 2,218,3,109,97,120,114,50,0,0,0,41,2,114,65,0,
- 0,0,218,1,105,114,7,0,0,0,114,71,0,0,0,114,
- 8,0,0,0,218,11,95,112,97,116,104,95,115,112,108,105,
- 116,132,0,0,0,115,8,0,0,0,22,2,8,1,8,1,
- 28,1,114,74,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 115,10,0,0,0,116,0,160,1,124,0,161,1,83,0,41,
- 2,122,126,83,116,97,116,32,116,104,101,32,112,97,116,104,
- 46,10,10,32,32,32,32,77,97,100,101,32,97,32,115,101,
- 112,97,114,97,116,101,32,102,117,110,99,116,105,111,110,32,
- 116,111,32,109,97,107,101,32,105,116,32,101,97,115,105,101,
- 114,32,116,111,32,111,118,101,114,114,105,100,101,32,105,110,
- 32,101,120,112,101,114,105,109,101,110,116,115,10,32,32,32,
- 32,40,101,46,103,46,32,99,97,99,104,101,32,115,116,97,
- 116,32,114,101,115,117,108,116,115,41,46,10,10,32,32,32,
- 32,78,41,2,114,18,0,0,0,90,4,115,116,97,116,114,
- 71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,10,95,112,97,116,104,95,115,116,97,116,140,
- 0,0,0,115,2,0,0,0,10,7,114,75,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,48,0,0,0,122,6,116,
- 0,124,0,131,1,125,2,87,0,110,10,4,0,116,1,121,
- 16,1,0,1,0,1,0,89,0,100,1,83,0,119,0,124,
- 2,106,2,100,2,64,0,124,1,107,2,83,0,41,4,122,
- 49,84,101,115,116,32,119,104,101,116,104,101,114,32,116,104,
- 101,32,112,97,116,104,32,105,115,32,116,104,101,32,115,112,
- 101,99,105,102,105,101,100,32,109,111,100,101,32,116,121,112,
- 101,46,70,105,0,240,0,0,78,41,3,114,75,0,0,0,
- 218,7,79,83,69,114,114,111,114,218,7,115,116,95,109,111,
- 100,101,41,3,114,65,0,0,0,218,4,109,111,100,101,90,
- 9,115,116,97,116,95,105,110,102,111,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,18,95,112,97,116,104,
- 95,105,115,95,109,111,100,101,95,116,121,112,101,150,0,0,
- 0,115,12,0,0,0,2,2,12,1,12,1,6,1,2,255,
- 14,2,114,79,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 115,10,0,0,0,116,0,124,0,100,1,131,2,83,0,41,
- 3,122,31,82,101,112,108,97,99,101,109,101,110,116,32,102,
- 111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,108,
- 101,46,105,0,128,0,0,78,41,1,114,79,0,0,0,114,
- 71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,12,95,112,97,116,104,95,105,115,102,105,108,
- 101,159,0,0,0,243,2,0,0,0,10,2,114,80,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
- 0,0,3,0,0,0,67,0,0,0,115,22,0,0,0,124,
- 0,115,6,116,0,160,1,161,0,125,0,116,2,124,0,100,
- 1,131,2,83,0,41,3,122,30,82,101,112,108,97,99,101,
- 109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104,
- 46,105,115,100,105,114,46,105,0,64,0,0,78,41,3,114,
- 18,0,0,0,218,6,103,101,116,99,119,100,114,79,0,0,
- 0,114,71,0,0,0,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,218,11,95,112,97,116,104,95,105,115,100,
- 105,114,164,0,0,0,115,6,0,0,0,4,2,8,1,10,
- 1,114,83,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
- 62,0,0,0,124,0,115,4,100,1,83,0,116,0,160,1,
- 124,0,161,1,100,2,25,0,160,2,100,3,100,4,161,2,
- 125,1,116,3,124,1,131,1,100,5,107,4,111,30,124,1,
- 160,4,100,6,161,1,112,30,124,1,160,5,100,4,161,1,
- 83,0,41,8,250,30,82,101,112,108,97,99,101,109,101,110,
- 116,32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,
- 97,98,115,46,70,114,0,0,0,0,114,2,0,0,0,114,
- 1,0,0,0,114,3,0,0,0,122,2,92,92,78,41,6,
- 114,18,0,0,0,114,56,0,0,0,218,7,114,101,112,108,
- 97,99,101,114,4,0,0,0,114,26,0,0,0,114,58,0,
- 0,0,41,2,114,65,0,0,0,114,64,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,
- 112,97,116,104,95,105,115,97,98,115,172,0,0,0,115,8,
- 0,0,0,4,2,4,1,22,1,32,1,114,86,0,0,0,
+ 97,116,104,46,115,112,108,105,116,40,41,46,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+ 0,51,0,0,0,115,26,0,0,0,129,0,124,0,93,8,
+ 125,1,136,0,160,0,124,1,161,1,86,0,1,0,113,2,
+ 100,0,83,0,169,1,78,41,1,218,5,114,102,105,110,100,
+ 114,51,0,0,0,169,1,114,65,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,9,0,0,0,134,0,0,0,115,
+ 4,0,0,0,2,128,24,0,122,30,95,112,97,116,104,95,
+ 115,112,108,105,116,46,60,108,111,99,97,108,115,62,46,60,
+ 103,101,110,101,120,112,114,62,114,0,0,0,0,114,10,0,
+ 0,0,78,114,3,0,0,0,41,2,218,3,109,97,120,114,
+ 50,0,0,0,41,2,114,65,0,0,0,218,1,105,114,7,
+ 0,0,0,114,71,0,0,0,114,8,0,0,0,218,11,95,
+ 112,97,116,104,95,115,112,108,105,116,132,0,0,0,115,8,
+ 0,0,0,22,2,8,1,8,1,28,1,114,74,0,0,0,
99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,3,0,0,0,67,0,0,0,115,10,0,0,0,124,0,
- 160,0,116,1,161,1,83,0,41,2,114,84,0,0,0,78,
- 41,2,114,26,0,0,0,114,50,0,0,0,114,71,0,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,86,0,0,0,180,0,0,0,114,81,0,0,0,233,182,
- 1,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 6,0,0,0,11,0,0,0,67,0,0,0,115,170,0,0,
- 0,100,1,160,0,124,0,116,1,124,0,131,1,161,2,125,
- 3,116,2,160,3,124,3,116,2,106,4,116,2,106,5,66,
- 0,116,2,106,6,66,0,124,2,100,2,64,0,161,3,125,
- 4,122,36,116,7,160,8,124,4,100,3,161,2,143,13,125,
- 5,124,5,160,9,124,1,161,1,1,0,87,0,100,4,4,
- 0,4,0,131,3,1,0,110,8,49,0,115,47,119,1,1,
- 0,1,0,1,0,89,0,1,0,116,2,160,10,124,3,124,
- 0,161,2,1,0,87,0,100,4,83,0,4,0,116,11,121,
- 84,1,0,1,0,1,0,122,7,116,2,160,12,124,3,161,
- 1,1,0,87,0,130,0,4,0,116,11,121,83,1,0,1,
- 0,1,0,89,0,130,0,119,0,119,0,41,5,122,162,66,
- 101,115,116,45,101,102,102,111,114,116,32,102,117,110,99,116,
- 105,111,110,32,116,111,32,119,114,105,116,101,32,100,97,116,
- 97,32,116,111,32,97,32,112,97,116,104,32,97,116,111,109,
- 105,99,97,108,108,121,46,10,32,32,32,32,66,101,32,112,
- 114,101,112,97,114,101,100,32,116,111,32,104,97,110,100,108,
- 101,32,97,32,70,105,108,101,69,120,105,115,116,115,69,114,
- 114,111,114,32,105,102,32,99,111,110,99,117,114,114,101,110,
- 116,32,119,114,105,116,105,110,103,32,111,102,32,116,104,101,
- 10,32,32,32,32,116,101,109,112,111,114,97,114,121,32,102,
- 105,108,101,32,105,115,32,97,116,116,101,109,112,116,101,100,
- 46,250,5,123,125,46,123,125,114,87,0,0,0,90,2,119,
- 98,78,41,13,218,6,102,111,114,109,97,116,218,2,105,100,
- 114,18,0,0,0,90,4,111,112,101,110,90,6,79,95,69,
- 88,67,76,90,7,79,95,67,82,69,65,84,90,8,79,95,
- 87,82,79,78,76,89,218,3,95,105,111,218,6,70,105,108,
- 101,73,79,218,5,119,114,105,116,101,114,85,0,0,0,114,
- 76,0,0,0,90,6,117,110,108,105,110,107,41,6,114,65,
- 0,0,0,114,41,0,0,0,114,78,0,0,0,90,8,112,
- 97,116,104,95,116,109,112,90,2,102,100,218,4,102,105,108,
- 101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,13,95,119,114,105,116,101,95,97,116,111,109,105,99,185,
- 0,0,0,115,36,0,0,0,16,5,6,1,22,1,4,255,
- 2,2,14,3,12,1,28,255,18,2,12,1,2,1,12,1,
- 2,3,12,254,2,1,2,1,2,254,2,253,114,95,0,0,
- 0,105,111,13,0,0,114,44,0,0,0,114,32,0,0,0,
- 115,2,0,0,0,13,10,90,11,95,95,112,121,99,97,99,
- 104,101,95,95,122,4,111,112,116,45,122,3,46,112,121,122,
- 4,46,112,121,119,122,4,46,112,121,99,41,1,218,12,111,
- 112,116,105,109,105,122,97,116,105,111,110,99,2,0,0,0,
- 0,0,0,0,1,0,0,0,12,0,0,0,5,0,0,0,
- 67,0,0,0,115,80,1,0,0,124,1,100,1,117,1,114,
- 26,116,0,160,1,100,2,116,2,161,2,1,0,124,2,100,
- 1,117,1,114,20,100,3,125,3,116,3,124,3,131,1,130,
- 1,124,1,114,24,100,4,110,1,100,5,125,2,116,4,160,
- 5,124,0,161,1,125,0,116,6,124,0,131,1,92,2,125,
- 4,125,5,124,5,160,7,100,6,161,1,92,3,125,6,125,
- 7,125,8,116,8,106,9,106,10,125,9,124,9,100,1,117,
- 0,114,57,116,11,100,7,131,1,130,1,100,4,160,12,124,
- 6,114,63,124,6,110,1,124,8,124,7,124,9,103,3,161,
- 1,125,10,124,2,100,1,117,0,114,86,116,8,106,13,106,
- 14,100,8,107,2,114,82,100,4,125,2,110,4,116,8,106,
- 13,106,14,125,2,116,15,124,2,131,1,125,2,124,2,100,
- 4,107,3,114,112,124,2,160,16,161,0,115,105,116,17,100,
- 9,160,18,124,2,161,1,131,1,130,1,100,10,160,18,124,
- 10,116,19,124,2,161,3,125,10,124,10,116,20,100,8,25,
- 0,23,0,125,11,116,8,106,21,100,1,117,1,114,162,116,
- 22,124,4,131,1,115,134,116,23,116,4,160,24,161,0,124,
- 4,131,2,125,4,124,4,100,5,25,0,100,11,107,2,114,
- 152,124,4,100,8,25,0,116,25,118,1,114,152,124,4,100,
- 12,100,1,133,2,25,0,125,4,116,23,116,8,106,21,124,
- 4,160,26,116,25,161,1,124,11,131,3,83,0,116,23,124,
- 4,116,27,124,11,131,3,83,0,41,13,97,254,2,0,0,
+ 0,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
+ 160,1,124,0,161,1,83,0,41,1,122,126,83,116,97,116,
+ 32,116,104,101,32,112,97,116,104,46,10,10,32,32,32,32,
+ 77,97,100,101,32,97,32,115,101,112,97,114,97,116,101,32,
+ 102,117,110,99,116,105,111,110,32,116,111,32,109,97,107,101,
+ 32,105,116,32,101,97,115,105,101,114,32,116,111,32,111,118,
+ 101,114,114,105,100,101,32,105,110,32,101,120,112,101,114,105,
+ 109,101,110,116,115,10,32,32,32,32,40,101,46,103,46,32,
+ 99,97,99,104,101,32,115,116,97,116,32,114,101,115,117,108,
+ 116,115,41,46,10,10,32,32,32,32,41,2,114,18,0,0,
+ 0,90,4,115,116,97,116,114,71,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,10,95,112,97,
+ 116,104,95,115,116,97,116,140,0,0,0,115,2,0,0,0,
+ 10,7,114,75,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,48,0,0,0,122,6,116,0,124,0,131,1,125,2,87,
+ 0,110,10,4,0,116,1,121,16,1,0,1,0,1,0,89,
+ 0,100,1,83,0,119,0,124,2,106,2,100,2,64,0,124,
+ 1,107,2,83,0,41,3,122,49,84,101,115,116,32,119,104,
+ 101,116,104,101,114,32,116,104,101,32,112,97,116,104,32,105,
+ 115,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,
+ 109,111,100,101,32,116,121,112,101,46,70,105,0,240,0,0,
+ 41,3,114,75,0,0,0,218,7,79,83,69,114,114,111,114,
+ 218,7,115,116,95,109,111,100,101,41,3,114,65,0,0,0,
+ 218,4,109,111,100,101,90,9,115,116,97,116,95,105,110,102,
+ 111,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
+ 116,121,112,101,150,0,0,0,115,12,0,0,0,2,2,12,
+ 1,12,1,6,1,2,255,14,2,114,79,0,0,0,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
+ 0,0,0,67,0,0,0,115,10,0,0,0,116,0,124,0,
+ 100,1,131,2,83,0,41,2,122,31,82,101,112,108,97,99,
+ 101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,
+ 104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,1,
+ 114,79,0,0,0,114,71,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,218,12,95,112,97,116,104,
+ 95,105,115,102,105,108,101,159,0,0,0,243,2,0,0,0,
+ 10,2,114,80,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 115,22,0,0,0,124,0,115,6,116,0,160,1,161,0,125,
+ 0,116,2,124,0,100,1,131,2,83,0,41,2,122,30,82,
+ 101,112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,
+ 115,46,112,97,116,104,46,105,115,100,105,114,46,105,0,64,
+ 0,0,41,3,114,18,0,0,0,218,6,103,101,116,99,119,
+ 100,114,79,0,0,0,114,71,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,11,95,112,97,116,
+ 104,95,105,115,100,105,114,164,0,0,0,115,6,0,0,0,
+ 4,2,8,1,10,1,114,83,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 67,0,0,0,115,62,0,0,0,124,0,115,4,100,1,83,
+ 0,116,0,160,1,124,0,161,1,100,2,25,0,160,2,100,
+ 3,100,4,161,2,125,1,116,3,124,1,131,1,100,5,107,
+ 4,111,30,124,1,160,4,100,6,161,1,112,30,124,1,160,
+ 5,100,4,161,1,83,0,41,7,250,30,82,101,112,108,97,
+ 99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,
+ 116,104,46,105,115,97,98,115,46,70,114,0,0,0,0,114,
+ 2,0,0,0,114,1,0,0,0,114,3,0,0,0,122,2,
+ 92,92,41,6,114,18,0,0,0,114,56,0,0,0,218,7,
+ 114,101,112,108,97,99,101,114,4,0,0,0,114,26,0,0,
+ 0,114,58,0,0,0,41,2,114,65,0,0,0,114,64,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,218,11,95,112,97,116,104,95,105,115,97,98,115,172,0,
+ 0,0,115,8,0,0,0,4,2,4,1,22,1,32,1,114,
+ 86,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,3,0,0,0,67,0,0,0,115,10,0,
+ 0,0,124,0,160,0,116,1,161,1,83,0,41,1,114,84,
+ 0,0,0,41,2,114,26,0,0,0,114,50,0,0,0,114,
+ 71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,86,0,0,0,180,0,0,0,114,81,0,0,
+ 0,233,182,1,0,0,99,3,0,0,0,0,0,0,0,0,
+ 0,0,0,6,0,0,0,11,0,0,0,67,0,0,0,115,
+ 170,0,0,0,100,1,160,0,124,0,116,1,124,0,131,1,
+ 161,2,125,3,116,2,160,3,124,3,116,2,106,4,116,2,
+ 106,5,66,0,116,2,106,6,66,0,124,2,100,2,64,0,
+ 161,3,125,4,122,36,116,7,160,8,124,4,100,3,161,2,
+ 143,13,125,5,124,5,160,9,124,1,161,1,1,0,87,0,
+ 100,4,4,0,4,0,131,3,1,0,110,8,49,0,115,47,
+ 119,1,1,0,1,0,1,0,89,0,1,0,116,2,160,10,
+ 124,3,124,0,161,2,1,0,87,0,100,4,83,0,4,0,
+ 116,11,121,84,1,0,1,0,1,0,122,7,116,2,160,12,
+ 124,3,161,1,1,0,87,0,130,0,4,0,116,11,121,83,
+ 1,0,1,0,1,0,89,0,130,0,119,0,119,0,41,5,
+ 122,162,66,101,115,116,45,101,102,102,111,114,116,32,102,117,
+ 110,99,116,105,111,110,32,116,111,32,119,114,105,116,101,32,
+ 100,97,116,97,32,116,111,32,97,32,112,97,116,104,32,97,
+ 116,111,109,105,99,97,108,108,121,46,10,32,32,32,32,66,
+ 101,32,112,114,101,112,97,114,101,100,32,116,111,32,104,97,
+ 110,100,108,101,32,97,32,70,105,108,101,69,120,105,115,116,
+ 115,69,114,114,111,114,32,105,102,32,99,111,110,99,117,114,
+ 114,101,110,116,32,119,114,105,116,105,110,103,32,111,102,32,
+ 116,104,101,10,32,32,32,32,116,101,109,112,111,114,97,114,
+ 121,32,102,105,108,101,32,105,115,32,97,116,116,101,109,112,
+ 116,101,100,46,250,5,123,125,46,123,125,114,87,0,0,0,
+ 90,2,119,98,78,41,13,218,6,102,111,114,109,97,116,218,
+ 2,105,100,114,18,0,0,0,90,4,111,112,101,110,90,6,
+ 79,95,69,88,67,76,90,7,79,95,67,82,69,65,84,90,
+ 8,79,95,87,82,79,78,76,89,218,3,95,105,111,218,6,
+ 70,105,108,101,73,79,218,5,119,114,105,116,101,114,85,0,
+ 0,0,114,76,0,0,0,90,6,117,110,108,105,110,107,41,
+ 6,114,65,0,0,0,114,41,0,0,0,114,78,0,0,0,
+ 90,8,112,97,116,104,95,116,109,112,90,2,102,100,218,4,
+ 102,105,108,101,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,13,95,119,114,105,116,101,95,97,116,111,109,
+ 105,99,185,0,0,0,115,36,0,0,0,16,5,6,1,22,
+ 1,4,255,2,2,14,3,12,1,28,255,18,2,12,1,2,
+ 1,12,1,2,3,12,254,2,1,2,1,2,254,2,253,114,
+ 95,0,0,0,105,111,13,0,0,114,44,0,0,0,114,32,
+ 0,0,0,115,2,0,0,0,13,10,90,11,95,95,112,121,
+ 99,97,99,104,101,95,95,122,4,111,112,116,45,122,3,46,
+ 112,121,122,4,46,112,121,119,122,4,46,112,121,99,41,1,
+ 218,12,111,112,116,105,109,105,122,97,116,105,111,110,99,2,
+ 0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,5,
+ 0,0,0,67,0,0,0,115,80,1,0,0,124,1,100,1,
+ 117,1,114,26,116,0,160,1,100,2,116,2,161,2,1,0,
+ 124,2,100,1,117,1,114,20,100,3,125,3,116,3,124,3,
+ 131,1,130,1,124,1,114,24,100,4,110,1,100,5,125,2,
+ 116,4,160,5,124,0,161,1,125,0,116,6,124,0,131,1,
+ 92,2,125,4,125,5,124,5,160,7,100,6,161,1,92,3,
+ 125,6,125,7,125,8,116,8,106,9,106,10,125,9,124,9,
+ 100,1,117,0,114,57,116,11,100,7,131,1,130,1,100,4,
+ 160,12,124,6,114,63,124,6,110,1,124,8,124,7,124,9,
+ 103,3,161,1,125,10,124,2,100,1,117,0,114,86,116,8,
+ 106,13,106,14,100,8,107,2,114,82,100,4,125,2,110,4,
+ 116,8,106,13,106,14,125,2,116,15,124,2,131,1,125,2,
+ 124,2,100,4,107,3,114,112,124,2,160,16,161,0,115,105,
+ 116,17,100,9,160,18,124,2,161,1,131,1,130,1,100,10,
+ 160,18,124,10,116,19,124,2,161,3,125,10,124,10,116,20,
+ 100,8,25,0,23,0,125,11,116,8,106,21,100,1,117,1,
+ 114,162,116,22,124,4,131,1,115,134,116,23,116,4,160,24,
+ 161,0,124,4,131,2,125,4,124,4,100,5,25,0,100,11,
+ 107,2,114,152,124,4,100,8,25,0,116,25,118,1,114,152,
+ 124,4,100,12,100,1,133,2,25,0,125,4,116,23,116,8,
+ 106,21,124,4,160,26,116,25,161,1,124,11,131,3,83,0,
+ 116,23,124,4,116,27,124,11,131,3,83,0,41,13,97,254,
+ 2,0,0,71,105,118,101,110,32,116,104,101,32,112,97,116,
+ 104,32,116,111,32,97,32,46,112,121,32,102,105,108,101,44,
+ 32,114,101,116,117,114,110,32,116,104,101,32,112,97,116,104,
+ 32,116,111,32,105,116,115,32,46,112,121,99,32,102,105,108,
+ 101,46,10,10,32,32,32,32,84,104,101,32,46,112,121,32,
+ 102,105,108,101,32,100,111,101,115,32,110,111,116,32,110,101,
+ 101,100,32,116,111,32,101,120,105,115,116,59,32,116,104,105,
+ 115,32,115,105,109,112,108,121,32,114,101,116,117,114,110,115,
+ 32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,
+ 10,32,32,32,32,46,112,121,99,32,102,105,108,101,32,99,
+ 97,108,99,117,108,97,116,101,100,32,97,115,32,105,102,32,
+ 116,104,101,32,46,112,121,32,102,105,108,101,32,119,101,114,
+ 101,32,105,109,112,111,114,116,101,100,46,10,10,32,32,32,
+ 32,84,104,101,32,39,111,112,116,105,109,105,122,97,116,105,
+ 111,110,39,32,112,97,114,97,109,101,116,101,114,32,99,111,
+ 110,116,114,111,108,115,32,116,104,101,32,112,114,101,115,117,
+ 109,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110,
+ 32,108,101,118,101,108,32,111,102,10,32,32,32,32,116,104,
+ 101,32,98,121,116,101,99,111,100,101,32,102,105,108,101,46,
+ 32,73,102,32,39,111,112,116,105,109,105,122,97,116,105,111,
+ 110,39,32,105,115,32,110,111,116,32,78,111,110,101,44,32,
+ 116,104,101,32,115,116,114,105,110,103,32,114,101,112,114,101,
+ 115,101,110,116,97,116,105,111,110,10,32,32,32,32,111,102,
+ 32,116,104,101,32,97,114,103,117,109,101,110,116,32,105,115,
+ 32,116,97,107,101,110,32,97,110,100,32,118,101,114,105,102,
+ 105,101,100,32,116,111,32,98,101,32,97,108,112,104,97,110,
+ 117,109,101,114,105,99,32,40,101,108,115,101,32,86,97,108,
+ 117,101,69,114,114,111,114,10,32,32,32,32,105,115,32,114,
+ 97,105,115,101,100,41,46,10,10,32,32,32,32,84,104,101,
+ 32,100,101,98,117,103,95,111,118,101,114,114,105,100,101,32,
+ 112,97,114,97,109,101,116,101,114,32,105,115,32,100,101,112,
+ 114,101,99,97,116,101,100,46,32,73,102,32,100,101,98,117,
+ 103,95,111,118,101,114,114,105,100,101,32,105,115,32,110,111,
+ 116,32,78,111,110,101,44,10,32,32,32,32,97,32,84,114,
+ 117,101,32,118,97,108,117,101,32,105,115,32,116,104,101,32,
+ 115,97,109,101,32,97,115,32,115,101,116,116,105,110,103,32,
+ 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,116,
+ 111,32,116,104,101,32,101,109,112,116,121,32,115,116,114,105,
+ 110,103,10,32,32,32,32,119,104,105,108,101,32,97,32,70,
+ 97,108,115,101,32,118,97,108,117,101,32,105,115,32,101,113,
+ 117,105,118,97,108,101,110,116,32,116,111,32,115,101,116,116,
+ 105,110,103,32,39,111,112,116,105,109,105,122,97,116,105,111,
+ 110,39,32,116,111,32,39,49,39,46,10,10,32,32,32,32,
+ 73,102,32,115,121,115,46,105,109,112,108,101,109,101,110,116,
+ 97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32,
+ 105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,116,
+ 73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,
+ 32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,32,
+ 32,78,122,70,116,104,101,32,100,101,98,117,103,95,111,118,
+ 101,114,114,105,100,101,32,112,97,114,97,109,101,116,101,114,
+ 32,105,115,32,100,101,112,114,101,99,97,116,101,100,59,32,
+ 117,115,101,32,39,111,112,116,105,109,105,122,97,116,105,111,
+ 110,39,32,105,110,115,116,101,97,100,122,50,100,101,98,117,
+ 103,95,111,118,101,114,114,105,100,101,32,111,114,32,111,112,
+ 116,105,109,105,122,97,116,105,111,110,32,109,117,115,116,32,
+ 98,101,32,115,101,116,32,116,111,32,78,111,110,101,114,10,
+ 0,0,0,114,3,0,0,0,218,1,46,250,36,115,121,115,
+ 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
+ 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
+ 101,114,0,0,0,0,122,24,123,33,114,125,32,105,115,32,
+ 110,111,116,32,97,108,112,104,97,110,117,109,101,114,105,99,
+ 122,7,123,125,46,123,125,123,125,114,11,0,0,0,114,44,
+ 0,0,0,41,28,218,9,95,119,97,114,110,105,110,103,115,
+ 218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,
+ 105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,101,
+ 69,114,114,111,114,114,18,0,0,0,218,6,102,115,112,97,
+ 116,104,114,74,0,0,0,218,10,114,112,97,114,116,105,116,
+ 105,111,110,114,15,0,0,0,218,14,105,109,112,108,101,109,
+ 101,110,116,97,116,105,111,110,218,9,99,97,99,104,101,95,
+ 116,97,103,218,19,78,111,116,73,109,112,108,101,109,101,110,
+ 116,101,100,69,114,114,111,114,114,62,0,0,0,114,16,0,
+ 0,0,218,8,111,112,116,105,109,105,122,101,218,3,115,116,
+ 114,218,7,105,115,97,108,110,117,109,218,10,86,97,108,117,
+ 101,69,114,114,111,114,114,89,0,0,0,218,4,95,79,80,
+ 84,218,17,66,89,84,69,67,79,68,69,95,83,85,70,70,
+ 73,88,69,83,218,14,112,121,99,97,99,104,101,95,112,114,
+ 101,102,105,120,114,86,0,0,0,114,67,0,0,0,114,82,
+ 0,0,0,114,50,0,0,0,218,6,108,115,116,114,105,112,
+ 218,8,95,80,89,67,65,67,72,69,41,12,114,65,0,0,
+ 0,90,14,100,101,98,117,103,95,111,118,101,114,114,105,100,
+ 101,114,96,0,0,0,218,7,109,101,115,115,97,103,101,218,
+ 4,104,101,97,100,114,66,0,0,0,90,4,98,97,115,101,
+ 114,6,0,0,0,218,4,114,101,115,116,90,3,116,97,103,
+ 90,15,97,108,109,111,115,116,95,102,105,108,101,110,97,109,
+ 101,218,8,102,105,108,101,110,97,109,101,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,17,99,97,99,104,
+ 101,95,102,114,111,109,95,115,111,117,114,99,101,124,1,0,
+ 0,115,72,0,0,0,8,18,6,1,2,1,4,255,8,2,
+ 4,1,8,1,12,1,10,1,12,1,16,1,8,1,8,1,
+ 8,1,24,1,8,1,12,1,6,1,8,2,8,1,8,1,
+ 8,1,14,1,14,1,12,1,10,1,8,9,14,1,24,5,
+ 12,1,2,4,4,1,8,1,2,1,4,253,12,5,114,121,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 10,0,0,0,5,0,0,0,67,0,0,0,115,40,1,0,
+ 0,116,0,106,1,106,2,100,1,117,0,114,10,116,3,100,
+ 2,131,1,130,1,116,4,160,5,124,0,161,1,125,0,116,
+ 6,124,0,131,1,92,2,125,1,125,2,100,3,125,3,116,
+ 0,106,7,100,1,117,1,114,51,116,0,106,7,160,8,116,
+ 9,161,1,125,4,124,1,160,10,124,4,116,11,23,0,161,
+ 1,114,51,124,1,116,12,124,4,131,1,100,1,133,2,25,
+ 0,125,1,100,4,125,3,124,3,115,72,116,6,124,1,131,
+ 1,92,2,125,1,125,5,124,5,116,13,107,3,114,72,116,
+ 14,116,13,155,0,100,5,124,0,155,2,157,3,131,1,130,
+ 1,124,2,160,15,100,6,161,1,125,6,124,6,100,7,118,
+ 1,114,88,116,14,100,8,124,2,155,2,157,2,131,1,130,
+ 1,124,6,100,9,107,2,114,132,124,2,160,16,100,6,100,
+ 10,161,2,100,11,25,0,125,7,124,7,160,10,116,17,161,
+ 1,115,112,116,14,100,12,116,17,155,2,157,2,131,1,130,
+ 1,124,7,116,12,116,17,131,1,100,1,133,2,25,0,125,
+ 8,124,8,160,18,161,0,115,132,116,14,100,13,124,7,155,
+ 2,100,14,157,3,131,1,130,1,124,2,160,19,100,6,161,
+ 1,100,15,25,0,125,9,116,20,124,1,124,9,116,21,100,
+ 15,25,0,23,0,131,2,83,0,41,16,97,110,1,0,0,
71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,116,
- 111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,101,
- 116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,111,
- 32,105,116,115,32,46,112,121,99,32,102,105,108,101,46,10,
- 10,32,32,32,32,84,104,101,32,46,112,121,32,102,105,108,
- 101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,32,
- 116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,115,
- 105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,104,
- 101,32,112,97,116,104,32,116,111,32,116,104,101,10,32,32,
- 32,32,46,112,121,99,32,102,105,108,101,32,99,97,108,99,
- 117,108,97,116,101,100,32,97,115,32,105,102,32,116,104,101,
- 32,46,112,121,32,102,105,108,101,32,119,101,114,101,32,105,
- 109,112,111,114,116,101,100,46,10,10,32,32,32,32,84,104,
- 101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,
- 32,112,97,114,97,109,101,116,101,114,32,99,111,110,116,114,
- 111,108,115,32,116,104,101,32,112,114,101,115,117,109,101,100,
- 32,111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,
- 118,101,108,32,111,102,10,32,32,32,32,116,104,101,32,98,
- 121,116,101,99,111,100,101,32,102,105,108,101,46,32,73,102,
- 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
- 105,115,32,110,111,116,32,78,111,110,101,44,32,116,104,101,
- 32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,110,
- 116,97,116,105,111,110,10,32,32,32,32,111,102,32,116,104,
- 101,32,97,114,103,117,109,101,110,116,32,105,115,32,116,97,
- 107,101,110,32,97,110,100,32,118,101,114,105,102,105,101,100,
- 32,116,111,32,98,101,32,97,108,112,104,97,110,117,109,101,
- 114,105,99,32,40,101,108,115,101,32,86,97,108,117,101,69,
- 114,114,111,114,10,32,32,32,32,105,115,32,114,97,105,115,
- 101,100,41,46,10,10,32,32,32,32,84,104,101,32,100,101,
- 98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,114,
- 97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,46,32,73,102,32,100,101,98,117,103,95,111,
- 118,101,114,114,105,100,101,32,105,115,32,110,111,116,32,78,
- 111,110,101,44,10,32,32,32,32,97,32,84,114,117,101,32,
- 118,97,108,117,101,32,105,115,32,116,104,101,32,115,97,109,
- 101,32,97,115,32,115,101,116,116,105,110,103,32,39,111,112,
- 116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,116,
- 104,101,32,101,109,112,116,121,32,115,116,114,105,110,103,10,
- 32,32,32,32,119,104,105,108,101,32,97,32,70,97,108,115,
- 101,32,118,97,108,117,101,32,105,115,32,101,113,117,105,118,
- 97,108,101,110,116,32,116,111,32,115,101,116,116,105,110,103,
- 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
- 116,111,32,39,49,39,46,10,10,32,32,32,32,73,102,32,
+ 111,32,97,32,46,112,121,99,46,32,102,105,108,101,44,32,
+ 114,101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,
+ 116,111,32,105,116,115,32,46,112,121,32,102,105,108,101,46,
+ 10,10,32,32,32,32,84,104,101,32,46,112,121,99,32,102,
+ 105,108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,
+ 100,32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,
+ 32,115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,
+ 116,104,101,32,112,97,116,104,32,116,111,10,32,32,32,32,
+ 116,104,101,32,46,112,121,32,102,105,108,101,32,99,97,108,
+ 99,117,108,97,116,101,100,32,116,111,32,99,111,114,114,101,
+ 115,112,111,110,100,32,116,111,32,116,104,101,32,46,112,121,
+ 99,32,102,105,108,101,46,32,32,73,102,32,112,97,116,104,
+ 32,100,111,101,115,10,32,32,32,32,110,111,116,32,99,111,
+ 110,102,111,114,109,32,116,111,32,80,69,80,32,51,49,52,
+ 55,47,52,56,56,32,102,111,114,109,97,116,44,32,86,97,
+ 108,117,101,69,114,114,111,114,32,119,105,108,108,32,98,101,
+ 32,114,97,105,115,101,100,46,32,73,102,10,32,32,32,32,
115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,105,
111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,32,
78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,112,
108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,115,
- 32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,122,
- 70,116,104,101,32,100,101,98,117,103,95,111,118,101,114,114,
- 105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,115,
- 32,100,101,112,114,101,99,97,116,101,100,59,32,117,115,101,
- 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,
- 105,110,115,116,101,97,100,122,50,100,101,98,117,103,95,111,
- 118,101,114,114,105,100,101,32,111,114,32,111,112,116,105,109,
- 105,122,97,116,105,111,110,32,109,117,115,116,32,98,101,32,
- 115,101,116,32,116,111,32,78,111,110,101,114,10,0,0,0,
- 114,3,0,0,0,218,1,46,250,36,115,121,115,46,105,109,
- 112,108,101,109,101,110,116,97,116,105,111,110,46,99,97,99,
- 104,101,95,116,97,103,32,105,115,32,78,111,110,101,114,0,
- 0,0,0,122,24,123,33,114,125,32,105,115,32,110,111,116,
- 32,97,108,112,104,97,110,117,109,101,114,105,99,122,7,123,
- 125,46,123,125,123,125,114,11,0,0,0,114,44,0,0,0,
- 41,28,218,9,95,119,97,114,110,105,110,103,115,218,4,119,
- 97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110,
- 87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,114,
- 111,114,114,18,0,0,0,218,6,102,115,112,97,116,104,114,
- 74,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,
- 114,15,0,0,0,218,14,105,109,112,108,101,109,101,110,116,
- 97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,
- 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
- 69,114,114,111,114,114,62,0,0,0,114,16,0,0,0,218,
- 8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,7,
- 105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,114,
- 114,111,114,114,89,0,0,0,218,4,95,79,80,84,218,17,
- 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
- 83,218,14,112,121,99,97,99,104,101,95,112,114,101,102,105,
- 120,114,86,0,0,0,114,67,0,0,0,114,82,0,0,0,
- 114,50,0,0,0,218,6,108,115,116,114,105,112,218,8,95,
- 80,89,67,65,67,72,69,41,12,114,65,0,0,0,90,14,
- 100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,96,
- 0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,101,
- 97,100,114,66,0,0,0,90,4,98,97,115,101,114,6,0,
- 0,0,218,4,114,101,115,116,90,3,116,97,103,90,15,97,
- 108,109,111,115,116,95,102,105,108,101,110,97,109,101,218,8,
- 102,105,108,101,110,97,109,101,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,218,17,99,97,99,104,101,95,102,
- 114,111,109,95,115,111,117,114,99,101,124,1,0,0,115,72,
- 0,0,0,8,18,6,1,2,1,4,255,8,2,4,1,8,
- 1,12,1,10,1,12,1,16,1,8,1,8,1,8,1,24,
- 1,8,1,12,1,6,1,8,2,8,1,8,1,8,1,14,
- 1,14,1,12,1,10,1,8,9,14,1,24,5,12,1,2,
- 4,4,1,8,1,2,1,4,253,12,5,114,121,0,0,0,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,10,0,0,
- 0,5,0,0,0,67,0,0,0,115,40,1,0,0,116,0,
- 106,1,106,2,100,1,117,0,114,10,116,3,100,2,131,1,
- 130,1,116,4,160,5,124,0,161,1,125,0,116,6,124,0,
- 131,1,92,2,125,1,125,2,100,3,125,3,116,0,106,7,
- 100,1,117,1,114,51,116,0,106,7,160,8,116,9,161,1,
- 125,4,124,1,160,10,124,4,116,11,23,0,161,1,114,51,
- 124,1,116,12,124,4,131,1,100,1,133,2,25,0,125,1,
- 100,4,125,3,124,3,115,72,116,6,124,1,131,1,92,2,
- 125,1,125,5,124,5,116,13,107,3,114,72,116,14,116,13,
- 155,0,100,5,124,0,155,2,157,3,131,1,130,1,124,2,
- 160,15,100,6,161,1,125,6,124,6,100,7,118,1,114,88,
- 116,14,100,8,124,2,155,2,157,2,131,1,130,1,124,6,
- 100,9,107,2,114,132,124,2,160,16,100,6,100,10,161,2,
- 100,11,25,0,125,7,124,7,160,10,116,17,161,1,115,112,
- 116,14,100,12,116,17,155,2,157,2,131,1,130,1,124,7,
- 116,12,116,17,131,1,100,1,133,2,25,0,125,8,124,8,
- 160,18,161,0,115,132,116,14,100,13,124,7,155,2,100,14,
- 157,3,131,1,130,1,124,2,160,19,100,6,161,1,100,15,
- 25,0,125,9,116,20,124,1,124,9,116,21,100,15,25,0,
- 23,0,131,2,83,0,41,16,97,110,1,0,0,71,105,118,
- 101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,
- 32,46,112,121,99,46,32,102,105,108,101,44,32,114,101,116,
- 117,114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,
- 105,116,115,32,46,112,121,32,102,105,108,101,46,10,10,32,
- 32,32,32,84,104,101,32,46,112,121,99,32,102,105,108,101,
- 32,100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,
- 111,32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,
- 109,112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,
- 32,112,97,116,104,32,116,111,10,32,32,32,32,116,104,101,
- 32,46,112,121,32,102,105,108,101,32,99,97,108,99,117,108,
- 97,116,101,100,32,116,111,32,99,111,114,114,101,115,112,111,
- 110,100,32,116,111,32,116,104,101,32,46,112,121,99,32,102,
- 105,108,101,46,32,32,73,102,32,112,97,116,104,32,100,111,
- 101,115,10,32,32,32,32,110,111,116,32,99,111,110,102,111,
- 114,109,32,116,111,32,80,69,80,32,51,49,52,55,47,52,
- 56,56,32,102,111,114,109,97,116,44,32,86,97,108,117,101,
- 69,114,114,111,114,32,119,105,108,108,32,98,101,32,114,97,
- 105,115,101,100,46,32,73,102,10,32,32,32,32,115,121,115,
- 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
- 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
- 101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,
- 101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,
- 105,115,101,100,46,10,10,32,32,32,32,78,114,98,0,0,
- 0,70,84,122,31,32,110,111,116,32,98,111,116,116,111,109,
- 45,108,101,118,101,108,32,100,105,114,101,99,116,111,114,121,
- 32,105,110,32,114,97,0,0,0,62,2,0,0,0,114,44,
- 0,0,0,233,3,0,0,0,122,29,101,120,112,101,99,116,
- 101,100,32,111,110,108,121,32,50,32,111,114,32,51,32,100,
- 111,116,115,32,105,110,32,114,122,0,0,0,114,44,0,0,
- 0,233,254,255,255,255,122,53,111,112,116,105,109,105,122,97,
- 116,105,111,110,32,112,111,114,116,105,111,110,32,111,102,32,
- 102,105,108,101,110,97,109,101,32,100,111,101,115,32,110,111,
- 116,32,115,116,97,114,116,32,119,105,116,104,32,122,19,111,
- 112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,
- 108,32,122,29,32,105,115,32,110,111,116,32,97,110,32,97,
- 108,112,104,97,110,117,109,101,114,105,99,32,118,97,108,117,
- 101,114,0,0,0,0,41,22,114,15,0,0,0,114,105,0,
- 0,0,114,106,0,0,0,114,107,0,0,0,114,18,0,0,
- 0,114,103,0,0,0,114,74,0,0,0,114,114,0,0,0,
- 114,49,0,0,0,114,50,0,0,0,114,26,0,0,0,114,
- 59,0,0,0,114,4,0,0,0,114,116,0,0,0,114,111,
- 0,0,0,218,5,99,111,117,110,116,218,6,114,115,112,108,
- 105,116,114,112,0,0,0,114,110,0,0,0,218,9,112,97,
- 114,116,105,116,105,111,110,114,67,0,0,0,218,15,83,79,
- 85,82,67,69,95,83,85,70,70,73,88,69,83,41,10,114,
- 65,0,0,0,114,118,0,0,0,90,16,112,121,99,97,99,
- 104,101,95,102,105,108,101,110,97,109,101,90,23,102,111,117,
- 110,100,95,105,110,95,112,121,99,97,99,104,101,95,112,114,
- 101,102,105,120,90,13,115,116,114,105,112,112,101,100,95,112,
- 97,116,104,90,7,112,121,99,97,99,104,101,90,9,100,111,
- 116,95,99,111,117,110,116,114,96,0,0,0,90,9,111,112,
- 116,95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,
- 108,101,110,97,109,101,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,218,17,115,111,117,114,99,101,95,102,114,
- 111,109,95,99,97,99,104,101,195,1,0,0,115,60,0,0,
- 0,12,9,8,1,10,1,12,1,4,1,10,1,12,1,14,
- 1,16,1,4,1,4,1,12,1,8,1,8,1,2,1,8,
- 255,10,2,8,1,14,1,8,1,16,1,10,1,4,1,2,
- 1,8,255,16,2,8,1,16,1,14,2,18,1,114,128,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,9,0,0,0,67,0,0,0,115,124,0,0,0,
- 116,0,124,0,131,1,100,1,107,2,114,8,100,2,83,0,
- 124,0,160,1,100,3,161,1,92,3,125,1,125,2,125,3,
- 124,1,114,28,124,3,160,2,161,0,100,4,100,5,133,2,
- 25,0,100,6,107,3,114,30,124,0,83,0,122,6,116,3,
- 124,0,131,1,125,4,87,0,110,17,4,0,116,4,116,5,
- 102,2,121,53,1,0,1,0,1,0,124,0,100,2,100,5,
- 133,2,25,0,125,4,89,0,110,1,119,0,116,6,124,4,
- 131,1,114,60,124,4,83,0,124,0,83,0,41,7,122,188,
- 67,111,110,118,101,114,116,32,97,32,98,121,116,101,99,111,
- 100,101,32,102,105,108,101,32,112,97,116,104,32,116,111,32,
- 97,32,115,111,117,114,99,101,32,112,97,116,104,32,40,105,
- 102,32,112,111,115,115,105,98,108,101,41,46,10,10,32,32,
- 32,32,84,104,105,115,32,102,117,110,99,116,105,111,110,32,
- 101,120,105,115,116,115,32,112,117,114,101,108,121,32,102,111,
- 114,32,98,97,99,107,119,97,114,100,115,45,99,111,109,112,
- 97,116,105,98,105,108,105,116,121,32,102,111,114,10,32,32,
- 32,32,80,121,73,109,112,111,114,116,95,69,120,101,99,67,
- 111,100,101,77,111,100,117,108,101,87,105,116,104,70,105,108,
- 101,110,97,109,101,115,40,41,32,105,110,32,116,104,101,32,
- 67,32,65,80,73,46,10,10,32,32,32,32,114,0,0,0,
- 0,78,114,97,0,0,0,233,253,255,255,255,233,255,255,255,
- 255,90,2,112,121,41,7,114,4,0,0,0,114,104,0,0,
- 0,218,5,108,111,119,101,114,114,128,0,0,0,114,107,0,
- 0,0,114,111,0,0,0,114,80,0,0,0,41,5,218,13,
- 98,121,116,101,99,111,100,101,95,112,97,116,104,114,119,0,
- 0,0,218,1,95,90,9,101,120,116,101,110,115,105,111,110,
- 218,11,115,111,117,114,99,101,95,112,97,116,104,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,218,15,95,103,
- 101,116,95,115,111,117,114,99,101,102,105,108,101,235,1,0,
- 0,115,22,0,0,0,12,7,4,1,16,1,24,1,4,1,
- 2,1,12,1,16,1,16,1,2,255,16,2,114,135,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
- 0,0,8,0,0,0,67,0,0,0,115,68,0,0,0,124,
- 0,160,0,116,1,116,2,131,1,161,1,114,23,122,5,116,
- 3,124,0,131,1,87,0,83,0,4,0,116,4,121,22,1,
- 0,1,0,1,0,89,0,100,0,83,0,119,0,124,0,160,
- 0,116,1,116,5,131,1,161,1,114,32,124,0,83,0,100,
- 0,83,0,114,69,0,0,0,41,6,114,58,0,0,0,218,
- 5,116,117,112,108,101,114,127,0,0,0,114,121,0,0,0,
- 114,107,0,0,0,114,113,0,0,0,41,1,114,120,0,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,11,95,103,101,116,95,99,97,99,104,101,100,254,1,0,
- 0,115,18,0,0,0,14,1,2,1,10,1,12,1,6,1,
- 2,255,14,2,4,1,4,2,114,137,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,
- 0,0,67,0,0,0,115,50,0,0,0,122,7,116,0,124,
- 0,131,1,106,1,125,1,87,0,110,11,4,0,116,2,121,
- 18,1,0,1,0,1,0,100,1,125,1,89,0,110,1,119,
- 0,124,1,100,2,79,0,125,1,124,1,83,0,41,4,122,
- 51,67,97,108,99,117,108,97,116,101,32,116,104,101,32,109,
- 111,100,101,32,112,101,114,109,105,115,115,105,111,110,115,32,
- 102,111,114,32,97,32,98,121,116,101,99,111,100,101,32,102,
- 105,108,101,46,114,87,0,0,0,233,128,0,0,0,78,41,
- 3,114,75,0,0,0,114,77,0,0,0,114,76,0,0,0,
- 41,2,114,65,0,0,0,114,78,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,218,10,95,99,97,
- 108,99,95,109,111,100,101,10,2,0,0,115,14,0,0,0,
- 2,2,14,1,12,1,8,1,2,255,8,4,4,1,114,139,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,4,0,0,0,3,0,0,0,115,52,0,0,
- 0,100,6,135,0,102,1,100,2,100,3,132,9,125,1,116,
- 0,100,1,117,1,114,15,116,0,106,1,125,2,110,4,100,
- 4,100,5,132,0,125,2,124,2,124,1,136,0,131,2,1,
- 0,124,1,83,0,41,7,122,252,68,101,99,111,114,97,116,
- 111,114,32,116,111,32,118,101,114,105,102,121,32,116,104,97,
- 116,32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,
- 110,103,32,114,101,113,117,101,115,116,101,100,32,109,97,116,
- 99,104,101,115,32,116,104,101,32,111,110,101,32,116,104,101,
- 10,32,32,32,32,108,111,97,100,101,114,32,99,97,110,32,
- 104,97,110,100,108,101,46,10,10,32,32,32,32,84,104,101,
- 32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,
- 40,115,101,108,102,41,32,109,117,115,116,32,100,101,102,105,
- 110,101,32,95,110,97,109,101,32,119,104,105,99,104,32,116,
- 104,101,32,115,101,99,111,110,100,32,97,114,103,117,109,101,
- 110,116,32,105,115,10,32,32,32,32,99,111,109,112,97,114,
- 101,100,32,97,103,97,105,110,115,116,46,32,73,102,32,116,
- 104,101,32,99,111,109,112,97,114,105,115,111,110,32,102,97,
- 105,108,115,32,116,104,101,110,32,73,109,112,111,114,116,69,
- 114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,
- 10,32,32,32,32,78,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,4,0,0,0,31,0,0,0,115,
- 72,0,0,0,124,1,100,0,117,0,114,8,124,0,106,0,
- 125,1,110,16,124,0,106,0,124,1,107,3,114,24,116,1,
- 100,1,124,0,106,0,124,1,102,2,22,0,124,1,100,2,
- 141,2,130,1,136,0,124,0,124,1,103,2,124,2,162,1,
- 82,0,105,0,124,3,164,1,142,1,83,0,41,3,78,122,
- 30,108,111,97,100,101,114,32,102,111,114,32,37,115,32,99,
- 97,110,110,111,116,32,104,97,110,100,108,101,32,37,115,169,
- 1,218,4,110,97,109,101,41,2,114,141,0,0,0,218,11,
- 73,109,112,111,114,116,69,114,114,111,114,41,4,218,4,115,
- 101,108,102,114,141,0,0,0,218,4,97,114,103,115,218,6,
- 107,119,97,114,103,115,169,1,218,6,109,101,116,104,111,100,
- 114,7,0,0,0,114,8,0,0,0,218,19,95,99,104,101,
- 99,107,95,110,97,109,101,95,119,114,97,112,112,101,114,30,
- 2,0,0,115,18,0,0,0,8,1,8,1,10,1,4,1,
- 8,1,2,255,2,1,6,255,24,2,122,40,95,99,104,101,
- 99,107,95,110,97,109,101,46,60,108,111,99,97,108,115,62,
- 46,95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,
- 112,112,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,7,0,0,0,83,0,0,0,115,56,0,
- 0,0,100,1,68,0,93,16,125,2,116,0,124,1,124,2,
- 131,2,114,18,116,1,124,0,124,2,116,2,124,1,124,2,
- 131,2,131,3,1,0,113,2,124,0,106,3,160,4,124,1,
- 106,3,161,1,1,0,100,0,83,0,41,2,78,41,4,218,
- 10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110,
- 97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109,
- 101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7,
- 104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114,
- 218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99,
- 116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,110,
- 101,119,90,3,111,108,100,114,85,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,218,5,95,119,114,
- 97,112,43,2,0,0,115,10,0,0,0,8,1,10,1,18,
- 1,2,128,18,1,122,26,95,99,104,101,99,107,95,110,97,
- 109,101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,
- 112,114,69,0,0,0,41,2,218,10,95,98,111,111,116,115,
- 116,114,97,112,114,158,0,0,0,41,3,114,147,0,0,0,
- 114,148,0,0,0,114,158,0,0,0,114,7,0,0,0,114,
- 146,0,0,0,114,8,0,0,0,218,11,95,99,104,101,99,
- 107,95,110,97,109,101,22,2,0,0,115,12,0,0,0,14,
- 8,8,10,8,1,8,2,10,6,4,1,114,160,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
- 0,6,0,0,0,67,0,0,0,115,72,0,0,0,116,0,
- 160,1,100,1,116,2,161,2,1,0,124,0,160,3,124,1,
- 161,1,92,2,125,2,125,3,124,2,100,2,117,0,114,34,
- 116,4,124,3,131,1,114,34,100,3,125,4,116,0,160,1,
- 124,4,160,5,124,3,100,4,25,0,161,1,116,6,161,2,
- 1,0,124,2,83,0,41,5,122,155,84,114,121,32,116,111,
- 32,102,105,110,100,32,97,32,108,111,97,100,101,114,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,32,98,121,32,100,101,108,101,103,
- 97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,
- 102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,
- 10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,
- 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
- 105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,
- 101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,
- 10,32,32,32,32,122,90,102,105,110,100,95,109,111,100,117,
- 108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
- 101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
- 114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
- 104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
- 110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
- 100,78,122,44,78,111,116,32,105,109,112,111,114,116,105,110,
- 103,32,100,105,114,101,99,116,111,114,121,32,123,125,58,32,
- 109,105,115,115,105,110,103,32,95,95,105,110,105,116,95,95,
- 114,0,0,0,0,41,7,114,99,0,0,0,114,100,0,0,
- 0,114,101,0,0,0,218,11,102,105,110,100,95,108,111,97,
- 100,101,114,114,4,0,0,0,114,89,0,0,0,218,13,73,
- 109,112,111,114,116,87,97,114,110,105,110,103,41,5,114,143,
- 0,0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,
- 111,97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,
- 3,109,115,103,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,
- 101,95,115,104,105,109,53,2,0,0,115,16,0,0,0,6,
- 7,2,2,4,254,14,6,16,1,4,1,22,1,4,1,114,
- 167,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
- 0,6,0,0,0,4,0,0,0,67,0,0,0,115,166,0,
- 0,0,124,0,100,1,100,2,133,2,25,0,125,3,124,3,
- 116,0,107,3,114,32,100,3,124,1,155,2,100,4,124,3,
- 155,2,157,4,125,4,116,1,160,2,100,5,124,4,161,2,
- 1,0,116,3,124,4,102,1,105,0,124,2,164,1,142,1,
- 130,1,116,4,124,0,131,1,100,6,107,0,114,53,100,7,
- 124,1,155,2,157,2,125,4,116,1,160,2,100,5,124,4,
- 161,2,1,0,116,5,124,4,131,1,130,1,116,6,124,0,
- 100,2,100,8,133,2,25,0,131,1,125,5,124,5,100,9,
- 64,0,114,81,100,10,124,5,155,2,100,11,124,1,155,2,
- 157,4,125,4,116,3,124,4,102,1,105,0,124,2,164,1,
- 142,1,130,1,124,5,83,0,41,12,97,84,2,0,0,80,
- 101,114,102,111,114,109,32,98,97,115,105,99,32,118,97,108,
- 105,100,105,116,121,32,99,104,101,99,107,105,110,103,32,111,
- 102,32,97,32,112,121,99,32,104,101,97,100,101,114,32,97,
- 110,100,32,114,101,116,117,114,110,32,116,104,101,32,102,108,
- 97,103,115,32,102,105,101,108,100,44,10,32,32,32,32,119,
- 104,105,99,104,32,100,101,116,101,114,109,105,110,101,115,32,
- 104,111,119,32,116,104,101,32,112,121,99,32,115,104,111,117,
- 108,100,32,98,101,32,102,117,114,116,104,101,114,32,118,97,
- 108,105,100,97,116,101,100,32,97,103,97,105,110,115,116,32,
- 116,104,101,32,115,111,117,114,99,101,46,10,10,32,32,32,
- 32,42,100,97,116,97,42,32,105,115,32,116,104,101,32,99,
- 111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,112,
- 121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,116,
- 104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,101,
- 115,32,97,114,101,10,32,32,32,32,114,101,113,117,105,114,
- 101,100,44,32,116,104,111,117,103,104,46,41,10,10,32,32,
- 32,32,42,110,97,109,101,42,32,105,115,32,116,104,101,32,
- 110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,
- 108,101,32,98,101,105,110,103,32,105,109,112,111,114,116,101,
- 100,46,32,73,116,32,105,115,32,117,115,101,100,32,102,111,
- 114,32,108,111,103,103,105,110,103,46,10,10,32,32,32,32,
- 42,101,120,99,95,100,101,116,97,105,108,115,42,32,105,115,
- 32,97,32,100,105,99,116,105,111,110,97,114,121,32,112,97,
- 115,115,101,100,32,116,111,32,73,109,112,111,114,116,69,114,
- 114,111,114,32,105,102,32,105,116,32,114,97,105,115,101,100,
- 32,102,111,114,10,32,32,32,32,105,109,112,114,111,118,101,
- 100,32,100,101,98,117,103,103,105,110,103,46,10,10,32,32,
- 32,32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,
- 32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,
- 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,115,
- 32,105,110,99,111,114,114,101,99,116,32,111,114,32,119,104,
- 101,110,32,116,104,101,32,102,108,97,103,115,10,32,32,32,
- 32,102,105,101,108,100,32,105,115,32,105,110,118,97,108,105,
- 100,46,32,69,79,70,69,114,114,111,114,32,105,115,32,114,
- 97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,100,
- 97,116,97,32,105,115,32,102,111,117,110,100,32,116,111,32,
- 98,101,32,116,114,117,110,99,97,116,101,100,46,10,10,32,
- 32,32,32,78,114,31,0,0,0,122,20,98,97,100,32,109,
- 97,103,105,99,32,110,117,109,98,101,114,32,105,110,32,122,
- 2,58,32,250,2,123,125,233,16,0,0,0,122,40,114,101,
- 97,99,104,101,100,32,69,79,70,32,119,104,105,108,101,32,
- 114,101,97,100,105,110,103,32,112,121,99,32,104,101,97,100,
- 101,114,32,111,102,32,233,8,0,0,0,233,252,255,255,255,
- 122,14,105,110,118,97,108,105,100,32,102,108,97,103,115,32,
- 122,4,32,105,110,32,41,7,218,12,77,65,71,73,67,95,
- 78,85,77,66,69,82,114,159,0,0,0,218,16,95,118,101,
- 114,98,111,115,101,95,109,101,115,115,97,103,101,114,142,0,
- 0,0,114,4,0,0,0,218,8,69,79,70,69,114,114,111,
- 114,114,42,0,0,0,41,6,114,41,0,0,0,114,141,0,
- 0,0,218,11,101,120,99,95,100,101,116,97,105,108,115,90,
- 5,109,97,103,105,99,114,117,0,0,0,114,16,0,0,0,
+ 32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,114,
+ 98,0,0,0,70,84,122,31,32,110,111,116,32,98,111,116,
+ 116,111,109,45,108,101,118,101,108,32,100,105,114,101,99,116,
+ 111,114,121,32,105,110,32,114,97,0,0,0,62,2,0,0,
+ 0,114,44,0,0,0,233,3,0,0,0,122,29,101,120,112,
+ 101,99,116,101,100,32,111,110,108,121,32,50,32,111,114,32,
+ 51,32,100,111,116,115,32,105,110,32,114,122,0,0,0,114,
+ 44,0,0,0,233,254,255,255,255,122,53,111,112,116,105,109,
+ 105,122,97,116,105,111,110,32,112,111,114,116,105,111,110,32,
+ 111,102,32,102,105,108,101,110,97,109,101,32,100,111,101,115,
+ 32,110,111,116,32,115,116,97,114,116,32,119,105,116,104,32,
+ 122,19,111,112,116,105,109,105,122,97,116,105,111,110,32,108,
+ 101,118,101,108,32,122,29,32,105,115,32,110,111,116,32,97,
+ 110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,118,
+ 97,108,117,101,114,0,0,0,0,41,22,114,15,0,0,0,
+ 114,105,0,0,0,114,106,0,0,0,114,107,0,0,0,114,
+ 18,0,0,0,114,103,0,0,0,114,74,0,0,0,114,114,
+ 0,0,0,114,49,0,0,0,114,50,0,0,0,114,26,0,
+ 0,0,114,59,0,0,0,114,4,0,0,0,114,116,0,0,
+ 0,114,111,0,0,0,218,5,99,111,117,110,116,218,6,114,
+ 115,112,108,105,116,114,112,0,0,0,114,110,0,0,0,218,
+ 9,112,97,114,116,105,116,105,111,110,114,67,0,0,0,218,
+ 15,83,79,85,82,67,69,95,83,85,70,70,73,88,69,83,
+ 41,10,114,65,0,0,0,114,118,0,0,0,90,16,112,121,
+ 99,97,99,104,101,95,102,105,108,101,110,97,109,101,90,23,
+ 102,111,117,110,100,95,105,110,95,112,121,99,97,99,104,101,
+ 95,112,114,101,102,105,120,90,13,115,116,114,105,112,112,101,
+ 100,95,112,97,116,104,90,7,112,121,99,97,99,104,101,90,
+ 9,100,111,116,95,99,111,117,110,116,114,96,0,0,0,90,
+ 9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,101,
+ 95,102,105,108,101,110,97,109,101,114,7,0,0,0,114,7,
+ 0,0,0,114,8,0,0,0,218,17,115,111,117,114,99,101,
+ 95,102,114,111,109,95,99,97,99,104,101,195,1,0,0,115,
+ 60,0,0,0,12,9,8,1,10,1,12,1,4,1,10,1,
+ 12,1,14,1,16,1,4,1,4,1,12,1,8,1,8,1,
+ 2,1,8,255,10,2,8,1,14,1,8,1,16,1,10,1,
+ 4,1,2,1,8,255,16,2,8,1,16,1,14,2,18,1,
+ 114,128,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,5,0,0,0,9,0,0,0,67,0,0,0,115,124,
+ 0,0,0,116,0,124,0,131,1,100,1,107,2,114,8,100,
+ 2,83,0,124,0,160,1,100,3,161,1,92,3,125,1,125,
+ 2,125,3,124,1,114,28,124,3,160,2,161,0,100,4,100,
+ 5,133,2,25,0,100,6,107,3,114,30,124,0,83,0,122,
+ 6,116,3,124,0,131,1,125,4,87,0,110,17,4,0,116,
+ 4,116,5,102,2,121,53,1,0,1,0,1,0,124,0,100,
+ 2,100,5,133,2,25,0,125,4,89,0,110,1,119,0,116,
+ 6,124,4,131,1,114,60,124,4,83,0,124,0,83,0,41,
+ 7,122,188,67,111,110,118,101,114,116,32,97,32,98,121,116,
+ 101,99,111,100,101,32,102,105,108,101,32,112,97,116,104,32,
+ 116,111,32,97,32,115,111,117,114,99,101,32,112,97,116,104,
+ 32,40,105,102,32,112,111,115,115,105,98,108,101,41,46,10,
+ 10,32,32,32,32,84,104,105,115,32,102,117,110,99,116,105,
+ 111,110,32,101,120,105,115,116,115,32,112,117,114,101,108,121,
+ 32,102,111,114,32,98,97,99,107,119,97,114,100,115,45,99,
+ 111,109,112,97,116,105,98,105,108,105,116,121,32,102,111,114,
+ 10,32,32,32,32,80,121,73,109,112,111,114,116,95,69,120,
+ 101,99,67,111,100,101,77,111,100,117,108,101,87,105,116,104,
+ 70,105,108,101,110,97,109,101,115,40,41,32,105,110,32,116,
+ 104,101,32,67,32,65,80,73,46,10,10,32,32,32,32,114,
+ 0,0,0,0,78,114,97,0,0,0,233,253,255,255,255,233,
+ 255,255,255,255,90,2,112,121,41,7,114,4,0,0,0,114,
+ 104,0,0,0,218,5,108,111,119,101,114,114,128,0,0,0,
+ 114,107,0,0,0,114,111,0,0,0,114,80,0,0,0,41,
+ 5,218,13,98,121,116,101,99,111,100,101,95,112,97,116,104,
+ 114,119,0,0,0,218,1,95,90,9,101,120,116,101,110,115,
+ 105,111,110,218,11,115,111,117,114,99,101,95,112,97,116,104,
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
- 13,95,99,108,97,115,115,105,102,121,95,112,121,99,73,2,
- 0,0,115,28,0,0,0,12,16,8,1,16,1,12,1,16,
- 1,12,1,10,1,12,1,8,1,16,1,8,2,16,1,16,
- 1,4,1,114,176,0,0,0,99,5,0,0,0,0,0,0,
- 0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,
- 0,115,124,0,0,0,116,0,124,0,100,1,100,2,133,2,
- 25,0,131,1,124,1,100,3,64,0,107,3,114,31,100,4,
- 124,3,155,2,157,2,125,5,116,1,160,2,100,5,124,5,
- 161,2,1,0,116,3,124,5,102,1,105,0,124,4,164,1,
- 142,1,130,1,124,2,100,6,117,1,114,58,116,0,124,0,
- 100,2,100,7,133,2,25,0,131,1,124,2,100,3,64,0,
- 107,3,114,60,116,3,100,4,124,3,155,2,157,2,102,1,
- 105,0,124,4,164,1,142,1,130,1,100,6,83,0,100,6,
- 83,0,41,8,97,7,2,0,0,86,97,108,105,100,97,116,
- 101,32,97,32,112,121,99,32,97,103,97,105,110,115,116,32,
- 116,104,101,32,115,111,117,114,99,101,32,108,97,115,116,45,
- 109,111,100,105,102,105,101,100,32,116,105,109,101,46,10,10,
- 32,32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,
- 101,32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,
- 101,32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,
- 121,32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,
- 121,116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,
- 117,105,114,101,100,46,41,10,10,32,32,32,32,42,115,111,
- 117,114,99,101,95,109,116,105,109,101,42,32,105,115,32,116,
- 104,101,32,108,97,115,116,32,109,111,100,105,102,105,101,100,
- 32,116,105,109,101,115,116,97,109,112,32,111,102,32,116,104,
- 101,32,115,111,117,114,99,101,32,102,105,108,101,46,10,10,
- 32,32,32,32,42,115,111,117,114,99,101,95,115,105,122,101,
- 42,32,105,115,32,78,111,110,101,32,111,114,32,116,104,101,
- 32,115,105,122,101,32,111,102,32,116,104,101,32,115,111,117,
- 114,99,101,32,102,105,108,101,32,105,110,32,98,121,116,101,
- 115,46,10,10,32,32,32,32,42,110,97,109,101,42,32,105,
- 115,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,
- 101,32,109,111,100,117,108,101,32,98,101,105,110,103,32,105,
- 109,112,111,114,116,101,100,46,32,73,116,32,105,115,32,117,
- 115,101,100,32,102,111,114,32,108,111,103,103,105,110,103,46,
- 10,10,32,32,32,32,42,101,120,99,95,100,101,116,97,105,
- 108,115,42,32,105,115,32,97,32,100,105,99,116,105,111,110,
- 97,114,121,32,112,97,115,115,101,100,32,116,111,32,73,109,
- 112,111,114,116,69,114,114,111,114,32,105,102,32,105,116,32,
- 114,97,105,115,101,100,32,102,111,114,10,32,32,32,32,105,
- 109,112,114,111,118,101,100,32,100,101,98,117,103,103,105,110,
- 103,46,10,10,32,32,32,32,65,110,32,73,109,112,111,114,
+ 15,95,103,101,116,95,115,111,117,114,99,101,102,105,108,101,
+ 235,1,0,0,115,22,0,0,0,12,7,4,1,16,1,24,
+ 1,4,1,2,1,12,1,16,1,16,1,2,255,16,2,114,
+ 135,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,8,0,0,0,67,0,0,0,115,68,0,
+ 0,0,124,0,160,0,116,1,116,2,131,1,161,1,114,23,
+ 122,5,116,3,124,0,131,1,87,0,83,0,4,0,116,4,
+ 121,22,1,0,1,0,1,0,89,0,100,0,83,0,119,0,
+ 124,0,160,0,116,1,116,5,131,1,161,1,114,32,124,0,
+ 83,0,100,0,83,0,114,69,0,0,0,41,6,114,58,0,
+ 0,0,218,5,116,117,112,108,101,114,127,0,0,0,114,121,
+ 0,0,0,114,107,0,0,0,114,113,0,0,0,41,1,114,
+ 120,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,
+ 254,1,0,0,115,18,0,0,0,14,1,2,1,10,1,12,
+ 1,6,1,2,255,14,2,4,1,4,2,114,137,0,0,0,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,8,0,0,0,67,0,0,0,115,50,0,0,0,122,7,
+ 116,0,124,0,131,1,106,1,125,1,87,0,110,11,4,0,
+ 116,2,121,18,1,0,1,0,1,0,100,1,125,1,89,0,
+ 110,1,119,0,124,1,100,2,79,0,125,1,124,1,83,0,
+ 41,3,122,51,67,97,108,99,117,108,97,116,101,32,116,104,
+ 101,32,109,111,100,101,32,112,101,114,109,105,115,115,105,111,
+ 110,115,32,102,111,114,32,97,32,98,121,116,101,99,111,100,
+ 101,32,102,105,108,101,46,114,87,0,0,0,233,128,0,0,
+ 0,41,3,114,75,0,0,0,114,77,0,0,0,114,76,0,
+ 0,0,41,2,114,65,0,0,0,114,78,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,95,
+ 99,97,108,99,95,109,111,100,101,10,2,0,0,115,14,0,
+ 0,0,2,2,14,1,12,1,8,1,2,255,8,4,4,1,
+ 114,139,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,4,0,0,0,3,0,0,0,115,52,
+ 0,0,0,100,6,135,0,102,1,100,2,100,3,132,9,125,
+ 1,116,0,100,1,117,1,114,15,116,0,106,1,125,2,110,
+ 4,100,4,100,5,132,0,125,2,124,2,124,1,136,0,131,
+ 2,1,0,124,1,83,0,41,7,122,252,68,101,99,111,114,
+ 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,
+ 104,97,116,32,116,104,101,32,109,111,100,117,108,101,32,98,
+ 101,105,110,103,32,114,101,113,117,101,115,116,101,100,32,109,
+ 97,116,99,104,101,115,32,116,104,101,32,111,110,101,32,116,
+ 104,101,10,32,32,32,32,108,111,97,100,101,114,32,99,97,
+ 110,32,104,97,110,100,108,101,46,10,10,32,32,32,32,84,
+ 104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110,
+ 116,32,40,115,101,108,102,41,32,109,117,115,116,32,100,101,
+ 102,105,110,101,32,95,110,97,109,101,32,119,104,105,99,104,
+ 32,116,104,101,32,115,101,99,111,110,100,32,97,114,103,117,
+ 109,101,110,116,32,105,115,10,32,32,32,32,99,111,109,112,
+ 97,114,101,100,32,97,103,97,105,110,115,116,46,32,73,102,
+ 32,116,104,101,32,99,111,109,112,97,114,105,115,111,110,32,
+ 102,97,105,108,115,32,116,104,101,110,32,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,116,104,101,32,98,121,116,101,99,111,100,101,
- 32,105,115,32,115,116,97,108,101,46,10,10,32,32,32,32,
- 114,170,0,0,0,233,12,0,0,0,114,30,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,114,168,0,0,0,78,114,169,0,
- 0,0,41,4,114,42,0,0,0,114,159,0,0,0,114,173,
- 0,0,0,114,142,0,0,0,41,6,114,41,0,0,0,218,
- 12,115,111,117,114,99,101,95,109,116,105,109,101,218,11,115,
- 111,117,114,99,101,95,115,105,122,101,114,141,0,0,0,114,
- 175,0,0,0,114,117,0,0,0,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,218,23,95,118,97,108,105,100,
- 97,116,101,95,116,105,109,101,115,116,97,109,112,95,112,121,
- 99,106,2,0,0,115,18,0,0,0,24,19,10,1,12,1,
- 16,1,8,1,22,1,2,255,22,2,8,254,114,180,0,0,
- 0,99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,124,
- 0,100,1,100,2,133,2,25,0,124,1,107,3,114,19,116,
- 0,100,3,124,2,155,2,157,2,102,1,105,0,124,3,164,
- 1,142,1,130,1,100,4,83,0,41,5,97,243,1,0,0,
- 86,97,108,105,100,97,116,101,32,97,32,104,97,115,104,45,
- 98,97,115,101,100,32,112,121,99,32,98,121,32,99,104,101,
- 99,107,105,110,103,32,116,104,101,32,114,101,97,108,32,115,
- 111,117,114,99,101,32,104,97,115,104,32,97,103,97,105,110,
- 115,116,32,116,104,101,32,111,110,101,32,105,110,10,32,32,
- 32,32,116,104,101,32,112,121,99,32,104,101,97,100,101,114,
- 46,10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,
- 32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,
- 32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,
- 79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,
- 54,32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,
- 114,101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,
- 42,115,111,117,114,99,101,95,104,97,115,104,42,32,105,115,
- 32,116,104,101,32,105,109,112,111,114,116,108,105,98,46,117,
- 116,105,108,46,115,111,117,114,99,101,95,104,97,115,104,40,
- 41,32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,
- 102,105,108,101,46,10,10,32,32,32,32,42,110,97,109,101,
- 42,32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,
- 32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,
- 103,32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,
- 115,32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,
- 110,103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,
- 116,97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,
- 105,111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,
- 32,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,
- 105,116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,
- 32,32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,
- 103,105,110,103,46,10,10,32,32,32,32,65,110,32,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,116,104,101,32,98,121,116,101,99,
- 111,100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,
- 32,32,32,114,170,0,0,0,114,169,0,0,0,122,46,104,
- 97,115,104,32,105,110,32,98,121,116,101,99,111,100,101,32,
- 100,111,101,115,110,39,116,32,109,97,116,99,104,32,104,97,
- 115,104,32,111,102,32,115,111,117,114,99,101,32,78,41,1,
- 114,142,0,0,0,41,4,114,41,0,0,0,218,11,115,111,
- 117,114,99,101,95,104,97,115,104,114,141,0,0,0,114,175,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,18,95,118,97,108,105,100,97,116,101,95,104,97,
- 115,104,95,112,121,99,134,2,0,0,115,14,0,0,0,16,
- 17,2,1,8,1,4,255,2,2,6,254,4,255,114,182,0,
- 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,5,0,0,0,67,0,0,0,115,76,0,0,0,
- 116,0,160,1,124,0,161,1,125,4,116,2,124,4,116,3,
- 131,2,114,28,116,4,160,5,100,1,124,2,161,2,1,0,
- 124,3,100,2,117,1,114,26,116,6,160,7,124,4,124,3,
- 161,2,1,0,124,4,83,0,116,8,100,3,160,9,124,2,
- 161,1,124,1,124,2,100,4,141,3,130,1,41,5,122,35,
- 67,111,109,112,105,108,101,32,98,121,116,101,99,111,100,101,
- 32,97,115,32,102,111,117,110,100,32,105,110,32,97,32,112,
- 121,99,46,122,21,99,111,100,101,32,111,98,106,101,99,116,
- 32,102,114,111,109,32,123,33,114,125,78,122,23,78,111,110,
- 45,99,111,100,101,32,111,98,106,101,99,116,32,105,110,32,
- 123,33,114,125,169,2,114,141,0,0,0,114,65,0,0,0,
- 41,10,218,7,109,97,114,115,104,97,108,90,5,108,111,97,
- 100,115,218,10,105,115,105,110,115,116,97,110,99,101,218,10,
- 95,99,111,100,101,95,116,121,112,101,114,159,0,0,0,114,
- 173,0,0,0,218,4,95,105,109,112,90,16,95,102,105,120,
- 95,99,111,95,102,105,108,101,110,97,109,101,114,142,0,0,
- 0,114,89,0,0,0,41,5,114,41,0,0,0,114,141,0,
- 0,0,114,132,0,0,0,114,134,0,0,0,218,4,99,111,
- 100,101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,
- 99,111,100,101,158,2,0,0,115,18,0,0,0,10,2,10,
- 1,12,1,8,1,12,1,4,1,10,2,4,1,6,255,114,
- 189,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,5,0,0,0,67,0,0,0,115,70,0,
- 0,0,116,0,116,1,131,1,125,3,124,3,160,2,116,3,
- 100,1,131,1,161,1,1,0,124,3,160,2,116,3,124,1,
- 131,1,161,1,1,0,124,3,160,2,116,3,124,2,131,1,
- 161,1,1,0,124,3,160,2,116,4,160,5,124,0,161,1,
- 161,1,1,0,124,3,83,0,41,3,122,43,80,114,111,100,
- 117,99,101,32,116,104,101,32,100,97,116,97,32,102,111,114,
- 32,97,32,116,105,109,101,115,116,97,109,112,45,98,97,115,
- 101,100,32,112,121,99,46,114,0,0,0,0,78,41,6,218,
- 9,98,121,116,101,97,114,114,97,121,114,172,0,0,0,218,
- 6,101,120,116,101,110,100,114,36,0,0,0,114,184,0,0,
- 0,218,5,100,117,109,112,115,41,4,114,188,0,0,0,218,
- 5,109,116,105,109,101,114,179,0,0,0,114,41,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
- 22,95,99,111,100,101,95,116,111,95,116,105,109,101,115,116,
- 97,109,112,95,112,121,99,171,2,0,0,115,12,0,0,0,
- 8,2,14,1,14,1,14,1,16,1,4,1,114,194,0,0,
- 0,84,99,3,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,5,0,0,0,67,0,0,0,115,80,0,0,0,
- 116,0,116,1,131,1,125,3,100,1,124,2,100,1,62,0,
- 66,0,125,4,124,3,160,2,116,3,124,4,131,1,161,1,
- 1,0,116,4,124,1,131,1,100,2,107,2,115,25,74,0,
- 130,1,124,3,160,2,124,1,161,1,1,0,124,3,160,2,
- 116,5,160,6,124,0,161,1,161,1,1,0,124,3,83,0,
- 41,4,122,38,80,114,111,100,117,99,101,32,116,104,101,32,
- 100,97,116,97,32,102,111,114,32,97,32,104,97,115,104,45,
- 98,97,115,101,100,32,112,121,99,46,114,3,0,0,0,114,
- 170,0,0,0,78,41,7,114,190,0,0,0,114,172,0,0,
+ 46,10,10,32,32,32,32,78,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,4,0,0,0,31,0,0,
+ 0,115,72,0,0,0,124,1,100,0,117,0,114,8,124,0,
+ 106,0,125,1,110,16,124,0,106,0,124,1,107,3,114,24,
+ 116,1,100,1,124,0,106,0,124,1,102,2,22,0,124,1,
+ 100,2,141,2,130,1,136,0,124,0,124,1,103,2,124,2,
+ 162,1,82,0,105,0,124,3,164,1,142,1,83,0,41,3,
+ 78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,
+ 32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,
+ 115,169,1,218,4,110,97,109,101,41,2,114,141,0,0,0,
+ 218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,
+ 4,115,101,108,102,114,141,0,0,0,218,4,97,114,103,115,
+ 218,6,107,119,97,114,103,115,169,1,218,6,109,101,116,104,
+ 111,100,114,7,0,0,0,114,8,0,0,0,218,19,95,99,
+ 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,
+ 114,30,2,0,0,115,18,0,0,0,8,1,8,1,10,1,
+ 4,1,8,1,2,255,2,1,6,255,24,2,122,40,95,99,
+ 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
+ 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
+ 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,
+ 56,0,0,0,100,1,68,0,93,16,125,2,116,0,124,1,
+ 124,2,131,2,114,18,116,1,124,0,124,2,116,2,124,1,
+ 124,2,131,2,131,3,1,0,113,2,124,0,106,3,160,4,
+ 124,1,106,3,161,1,1,0,100,0,83,0,41,2,78,41,
+ 4,218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,
+ 95,110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,
+ 97,109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,
+ 218,7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,
+ 116,114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,
+ 105,99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,
+ 3,110,101,119,90,3,111,108,100,114,85,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,218,5,95,
+ 119,114,97,112,43,2,0,0,115,10,0,0,0,8,1,10,
+ 1,18,1,2,128,18,1,122,26,95,99,104,101,99,107,95,
+ 110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,119,
+ 114,97,112,114,69,0,0,0,41,2,218,10,95,98,111,111,
+ 116,115,116,114,97,112,114,158,0,0,0,41,3,114,147,0,
+ 0,0,114,148,0,0,0,114,158,0,0,0,114,7,0,0,
+ 0,114,146,0,0,0,114,8,0,0,0,218,11,95,99,104,
+ 101,99,107,95,110,97,109,101,22,2,0,0,115,12,0,0,
+ 0,14,8,8,10,8,1,8,2,10,6,4,1,114,160,0,
+ 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
+ 0,0,0,6,0,0,0,67,0,0,0,115,72,0,0,0,
+ 116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3,
+ 124,1,161,1,92,2,125,2,125,3,124,2,100,2,117,0,
+ 114,34,116,4,124,3,131,1,114,34,100,3,125,4,116,0,
+ 160,1,124,4,160,5,124,3,100,4,25,0,161,1,116,6,
+ 161,2,1,0,124,2,83,0,41,5,122,155,84,114,121,32,
+ 116,111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,
+ 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,32,98,121,32,100,101,108,
+ 101,103,97,116,105,110,103,32,116,111,10,32,32,32,32,115,
+ 101,108,102,46,102,105,110,100,95,108,111,97,100,101,114,40,
+ 41,46,10,10,32,32,32,32,84,104,105,115,32,109,101,116,
+ 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+ 100,32,105,110,32,102,97,118,111,114,32,111,102,32,102,105,
+ 110,100,101,114,46,102,105,110,100,95,115,112,101,99,40,41,
+ 46,10,10,32,32,32,32,122,90,102,105,110,100,95,109,111,
+ 100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,
+ 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
+ 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
+ 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,
+ 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,
+ 101,97,100,78,122,44,78,111,116,32,105,109,112,111,114,116,
+ 105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,125,
+ 58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,116,
+ 95,95,114,0,0,0,0,41,7,114,99,0,0,0,114,100,
+ 0,0,0,114,101,0,0,0,218,11,102,105,110,100,95,108,
+ 111,97,100,101,114,114,4,0,0,0,114,89,0,0,0,218,
+ 13,73,109,112,111,114,116,87,97,114,110,105,110,103,41,5,
+ 114,143,0,0,0,218,8,102,117,108,108,110,97,109,101,218,
+ 6,108,111,97,100,101,114,218,8,112,111,114,116,105,111,110,
+ 115,218,3,109,115,103,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,218,17,95,102,105,110,100,95,109,111,100,
+ 117,108,101,95,115,104,105,109,53,2,0,0,115,16,0,0,
+ 0,6,7,2,2,4,254,14,6,16,1,4,1,22,1,4,
+ 1,114,167,0,0,0,99,3,0,0,0,0,0,0,0,0,
+ 0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,
+ 166,0,0,0,124,0,100,1,100,2,133,2,25,0,125,3,
+ 124,3,116,0,107,3,114,32,100,3,124,1,155,2,100,4,
+ 124,3,155,2,157,4,125,4,116,1,160,2,100,5,124,4,
+ 161,2,1,0,116,3,124,4,102,1,105,0,124,2,164,1,
+ 142,1,130,1,116,4,124,0,131,1,100,6,107,0,114,53,
+ 100,7,124,1,155,2,157,2,125,4,116,1,160,2,100,5,
+ 124,4,161,2,1,0,116,5,124,4,131,1,130,1,116,6,
+ 124,0,100,2,100,8,133,2,25,0,131,1,125,5,124,5,
+ 100,9,64,0,114,81,100,10,124,5,155,2,100,11,124,1,
+ 155,2,157,4,125,4,116,3,124,4,102,1,105,0,124,2,
+ 164,1,142,1,130,1,124,5,83,0,41,12,97,84,2,0,
+ 0,80,101,114,102,111,114,109,32,98,97,115,105,99,32,118,
+ 97,108,105,100,105,116,121,32,99,104,101,99,107,105,110,103,
+ 32,111,102,32,97,32,112,121,99,32,104,101,97,100,101,114,
+ 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,
+ 102,108,97,103,115,32,102,105,101,108,100,44,10,32,32,32,
+ 32,119,104,105,99,104,32,100,101,116,101,114,109,105,110,101,
+ 115,32,104,111,119,32,116,104,101,32,112,121,99,32,115,104,
+ 111,117,108,100,32,98,101,32,102,117,114,116,104,101,114,32,
+ 118,97,108,105,100,97,116,101,100,32,97,103,97,105,110,115,
+ 116,32,116,104,101,32,115,111,117,114,99,101,46,10,10,32,
+ 32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101,
+ 32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101,
+ 32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121,
+ 32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121,
+ 116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117,
+ 105,114,101,100,44,32,116,104,111,117,103,104,46,41,10,10,
+ 32,32,32,32,42,110,97,109,101,42,32,105,115,32,116,104,
+ 101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,111,
+ 100,117,108,101,32,98,101,105,110,103,32,105,109,112,111,114,
+ 116,101,100,46,32,73,116,32,105,115,32,117,115,101,100,32,
+ 102,111,114,32,108,111,103,103,105,110,103,46,10,10,32,32,
+ 32,32,42,101,120,99,95,100,101,116,97,105,108,115,42,32,
+ 105,115,32,97,32,100,105,99,116,105,111,110,97,114,121,32,
+ 112,97,115,115,101,100,32,116,111,32,73,109,112,111,114,116,
+ 69,114,114,111,114,32,105,102,32,105,116,32,114,97,105,115,
+ 101,100,32,102,111,114,10,32,32,32,32,105,109,112,114,111,
+ 118,101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,
+ 32,32,32,32,73,109,112,111,114,116,69,114,114,111,114,32,
+ 105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116,
+ 104,101,32,109,97,103,105,99,32,110,117,109,98,101,114,32,
+ 105,115,32,105,110,99,111,114,114,101,99,116,32,111,114,32,
+ 119,104,101,110,32,116,104,101,32,102,108,97,103,115,10,32,
+ 32,32,32,102,105,101,108,100,32,105,115,32,105,110,118,97,
+ 108,105,100,46,32,69,79,70,69,114,114,111,114,32,105,115,
+ 32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,
+ 32,100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,
+ 111,32,98,101,32,116,114,117,110,99,97,116,101,100,46,10,
+ 10,32,32,32,32,78,114,31,0,0,0,122,20,98,97,100,
+ 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110,
+ 32,122,2,58,32,250,2,123,125,233,16,0,0,0,122,40,
+ 114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,108,
+ 101,32,114,101,97,100,105,110,103,32,112,121,99,32,104,101,
+ 97,100,101,114,32,111,102,32,233,8,0,0,0,233,252,255,
+ 255,255,122,14,105,110,118,97,108,105,100,32,102,108,97,103,
+ 115,32,122,4,32,105,110,32,41,7,218,12,77,65,71,73,
+ 67,95,78,85,77,66,69,82,114,159,0,0,0,218,16,95,
+ 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,
+ 142,0,0,0,114,4,0,0,0,218,8,69,79,70,69,114,
+ 114,111,114,114,42,0,0,0,41,6,114,41,0,0,0,114,
+ 141,0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,
+ 115,90,5,109,97,103,105,99,114,117,0,0,0,114,16,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,
+ 73,2,0,0,115,28,0,0,0,12,16,8,1,16,1,12,
+ 1,16,1,12,1,10,1,12,1,8,1,16,1,8,2,16,
+ 1,16,1,4,1,114,176,0,0,0,99,5,0,0,0,0,
+ 0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,
+ 0,0,0,115,124,0,0,0,116,0,124,0,100,1,100,2,
+ 133,2,25,0,131,1,124,1,100,3,64,0,107,3,114,31,
+ 100,4,124,3,155,2,157,2,125,5,116,1,160,2,100,5,
+ 124,5,161,2,1,0,116,3,124,5,102,1,105,0,124,4,
+ 164,1,142,1,130,1,124,2,100,6,117,1,114,58,116,0,
+ 124,0,100,2,100,7,133,2,25,0,131,1,124,2,100,3,
+ 64,0,107,3,114,60,116,3,100,4,124,3,155,2,157,2,
+ 102,1,105,0,124,4,164,1,142,1,130,1,100,6,83,0,
+ 100,6,83,0,41,8,97,7,2,0,0,86,97,108,105,100,
+ 97,116,101,32,97,32,112,121,99,32,97,103,97,105,110,115,
+ 116,32,116,104,101,32,115,111,117,114,99,101,32,108,97,115,
+ 116,45,109,111,100,105,102,105,101,100,32,116,105,109,101,46,
+ 10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,
+ 116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,
+ 116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,
+ 110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,
+ 32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,
+ 101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,42,
+ 115,111,117,114,99,101,95,109,116,105,109,101,42,32,105,115,
+ 32,116,104,101,32,108,97,115,116,32,109,111,100,105,102,105,
+ 101,100,32,116,105,109,101,115,116,97,109,112,32,111,102,32,
+ 116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,46,
+ 10,10,32,32,32,32,42,115,111,117,114,99,101,95,115,105,
+ 122,101,42,32,105,115,32,78,111,110,101,32,111,114,32,116,
+ 104,101,32,115,105,122,101,32,111,102,32,116,104,101,32,115,
+ 111,117,114,99,101,32,102,105,108,101,32,105,110,32,98,121,
+ 116,101,115,46,10,10,32,32,32,32,42,110,97,109,101,42,
+ 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,
+ 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
+ 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,
+ 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,
+ 103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,
+ 97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,
+ 111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,
+ 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,
+ 116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,
+ 32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,
+ 105,110,103,46,10,10,32,32,32,32,65,110,32,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,116,104,101,32,98,121,116,101,99,111,
+ 100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,32,
+ 32,32,114,170,0,0,0,233,12,0,0,0,114,30,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,114,168,0,0,0,78,114,
+ 169,0,0,0,41,4,114,42,0,0,0,114,159,0,0,0,
+ 114,173,0,0,0,114,142,0,0,0,41,6,114,41,0,0,
+ 0,218,12,115,111,117,114,99,101,95,109,116,105,109,101,218,
+ 11,115,111,117,114,99,101,95,115,105,122,101,114,141,0,0,
+ 0,114,175,0,0,0,114,117,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,23,95,118,97,108,
+ 105,100,97,116,101,95,116,105,109,101,115,116,97,109,112,95,
+ 112,121,99,106,2,0,0,115,18,0,0,0,24,19,10,1,
+ 12,1,16,1,8,1,22,1,2,255,22,2,8,254,114,180,
+ 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,
+ 4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,
+ 0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,
+ 19,116,0,100,3,124,2,155,2,157,2,102,1,105,0,124,
+ 3,164,1,142,1,130,1,100,4,83,0,41,5,97,243,1,
+ 0,0,86,97,108,105,100,97,116,101,32,97,32,104,97,115,
+ 104,45,98,97,115,101,100,32,112,121,99,32,98,121,32,99,
+ 104,101,99,107,105,110,103,32,116,104,101,32,114,101,97,108,
+ 32,115,111,117,114,99,101,32,104,97,115,104,32,97,103,97,
+ 105,110,115,116,32,116,104,101,32,111,110,101,32,105,110,10,
+ 32,32,32,32,116,104,101,32,112,121,99,32,104,101,97,100,
+ 101,114,46,10,10,32,32,32,32,42,100,97,116,97,42,32,
+ 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,
+ 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,
+ 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,
+ 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,
+ 32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,
+ 32,32,42,115,111,117,114,99,101,95,104,97,115,104,42,32,
+ 105,115,32,116,104,101,32,105,109,112,111,114,116,108,105,98,
+ 46,117,116,105,108,46,115,111,117,114,99,101,95,104,97,115,
+ 104,40,41,32,111,102,32,116,104,101,32,115,111,117,114,99,
+ 101,32,102,105,108,101,46,10,10,32,32,32,32,42,110,97,
+ 109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,
+ 111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,
+ 105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,
+ 32,105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,
+ 103,105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,
+ 100,101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,
+ 99,116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,
+ 116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,
+ 102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,
+ 32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,
+ 117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,
+ 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,116,104,101,32,98,121,116,
+ 101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,
+ 10,32,32,32,32,114,170,0,0,0,114,169,0,0,0,122,
+ 46,104,97,115,104,32,105,110,32,98,121,116,101,99,111,100,
+ 101,32,100,111,101,115,110,39,116,32,109,97,116,99,104,32,
+ 104,97,115,104,32,111,102,32,115,111,117,114,99,101,32,78,
+ 41,1,114,142,0,0,0,41,4,114,41,0,0,0,218,11,
+ 115,111,117,114,99,101,95,104,97,115,104,114,141,0,0,0,
+ 114,175,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95,
+ 104,97,115,104,95,112,121,99,134,2,0,0,115,14,0,0,
+ 0,16,17,2,1,8,1,4,255,2,2,6,254,4,255,114,
+ 182,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,
+ 0,5,0,0,0,5,0,0,0,67,0,0,0,115,76,0,
+ 0,0,116,0,160,1,124,0,161,1,125,4,116,2,124,4,
+ 116,3,131,2,114,28,116,4,160,5,100,1,124,2,161,2,
+ 1,0,124,3,100,2,117,1,114,26,116,6,160,7,124,4,
+ 124,3,161,2,1,0,124,4,83,0,116,8,100,3,160,9,
+ 124,2,161,1,124,1,124,2,100,4,141,3,130,1,41,5,
+ 122,35,67,111,109,112,105,108,101,32,98,121,116,101,99,111,
+ 100,101,32,97,115,32,102,111,117,110,100,32,105,110,32,97,
+ 32,112,121,99,46,122,21,99,111,100,101,32,111,98,106,101,
+ 99,116,32,102,114,111,109,32,123,33,114,125,78,122,23,78,
+ 111,110,45,99,111,100,101,32,111,98,106,101,99,116,32,105,
+ 110,32,123,33,114,125,169,2,114,141,0,0,0,114,65,0,
+ 0,0,41,10,218,7,109,97,114,115,104,97,108,90,5,108,
+ 111,97,100,115,218,10,105,115,105,110,115,116,97,110,99,101,
+ 218,10,95,99,111,100,101,95,116,121,112,101,114,159,0,0,
+ 0,114,173,0,0,0,218,4,95,105,109,112,90,16,95,102,
+ 105,120,95,99,111,95,102,105,108,101,110,97,109,101,114,142,
+ 0,0,0,114,89,0,0,0,41,5,114,41,0,0,0,114,
+ 141,0,0,0,114,132,0,0,0,114,134,0,0,0,218,4,
+ 99,111,100,101,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,
+ 116,101,99,111,100,101,158,2,0,0,115,18,0,0,0,10,
+ 2,10,1,12,1,8,1,12,1,4,1,10,2,4,1,6,
+ 255,114,189,0,0,0,99,3,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
+ 70,0,0,0,116,0,116,1,131,1,125,3,124,3,160,2,
+ 116,3,100,1,131,1,161,1,1,0,124,3,160,2,116,3,
+ 124,1,131,1,161,1,1,0,124,3,160,2,116,3,124,2,
+ 131,1,161,1,1,0,124,3,160,2,116,4,160,5,124,0,
+ 161,1,161,1,1,0,124,3,83,0,41,2,122,43,80,114,
+ 111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102,
+ 111,114,32,97,32,116,105,109,101,115,116,97,109,112,45,98,
+ 97,115,101,100,32,112,121,99,46,114,0,0,0,0,41,6,
+ 218,9,98,121,116,101,97,114,114,97,121,114,172,0,0,0,
+ 218,6,101,120,116,101,110,100,114,36,0,0,0,114,184,0,
+ 0,0,218,5,100,117,109,112,115,41,4,114,188,0,0,0,
+ 218,5,109,116,105,109,101,114,179,0,0,0,114,41,0,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 218,22,95,99,111,100,101,95,116,111,95,116,105,109,101,115,
+ 116,97,109,112,95,112,121,99,171,2,0,0,115,12,0,0,
+ 0,8,2,14,1,14,1,14,1,16,1,4,1,114,194,0,
+ 0,0,84,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 5,0,0,0,5,0,0,0,67,0,0,0,115,80,0,0,
+ 0,116,0,116,1,131,1,125,3,100,1,124,2,100,1,62,
+ 0,66,0,125,4,124,3,160,2,116,3,124,4,131,1,161,
+ 1,1,0,116,4,124,1,131,1,100,2,107,2,115,25,74,
+ 0,130,1,124,3,160,2,124,1,161,1,1,0,124,3,160,
+ 2,116,5,160,6,124,0,161,1,161,1,1,0,124,3,83,
+ 0,41,3,122,38,80,114,111,100,117,99,101,32,116,104,101,
+ 32,100,97,116,97,32,102,111,114,32,97,32,104,97,115,104,
+ 45,98,97,115,101,100,32,112,121,99,46,114,3,0,0,0,
+ 114,170,0,0,0,41,7,114,190,0,0,0,114,172,0,0,
0,114,191,0,0,0,114,36,0,0,0,114,4,0,0,0,
114,184,0,0,0,114,192,0,0,0,41,5,114,188,0,0,
0,114,181,0,0,0,90,7,99,104,101,99,107,101,100,114,
@@ -1186,7 +1185,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,
3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,
3,100,5,107,2,111,31,124,4,100,5,107,3,83,0,41,
- 7,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
+ 6,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112,
97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105,
@@ -1196,1428 +1195,1427 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
114,3,0,0,0,114,97,0,0,0,114,0,0,0,0,114,
- 44,0,0,0,218,8,95,95,105,110,105,116,95,95,78,41,
- 4,114,74,0,0,0,114,203,0,0,0,114,125,0,0,0,
- 114,104,0,0,0,41,5,114,143,0,0,0,114,163,0,0,
- 0,114,120,0,0,0,90,13,102,105,108,101,110,97,109,101,
- 95,98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
- 206,0,0,0,98,3,0,0,115,8,0,0,0,18,3,16,
- 1,14,1,16,1,122,24,95,76,111,97,100,101,114,66,97,
- 115,105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 1,0,0,0,67,0,0,0,114,23,0,0,0,169,2,122,
- 42,85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,
- 97,110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,
- 101,32,99,114,101,97,116,105,111,110,46,78,114,7,0,0,
- 0,169,2,114,143,0,0,0,114,210,0,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,218,13,99,114,
- 101,97,116,101,95,109,111,100,117,108,101,106,3,0,0,243,
- 2,0,0,0,4,0,122,27,95,76,111,97,100,101,114,66,
- 97,115,105,99,115,46,99,114,101,97,116,101,95,109,111,100,
- 117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,5,0,0,0,67,0,0,0,115,56,0,0,
- 0,124,0,160,0,124,1,106,1,161,1,125,2,124,2,100,
- 1,117,0,114,18,116,2,100,2,160,3,124,1,106,1,161,
- 1,131,1,130,1,116,4,160,5,116,6,124,2,124,1,106,
- 7,161,3,1,0,100,1,83,0,41,3,122,19,69,120,101,
- 99,117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,
- 78,122,52,99,97,110,110,111,116,32,108,111,97,100,32,109,
- 111,100,117,108,101,32,123,33,114,125,32,119,104,101,110,32,
- 103,101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,
- 110,115,32,78,111,110,101,41,8,218,8,103,101,116,95,99,
- 111,100,101,114,150,0,0,0,114,142,0,0,0,114,89,0,
- 0,0,114,159,0,0,0,218,25,95,99,97,108,108,95,119,
- 105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,
- 101,100,218,4,101,120,101,99,114,156,0,0,0,41,3,114,
- 143,0,0,0,218,6,109,111,100,117,108,101,114,188,0,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,11,101,120,101,99,95,109,111,100,117,108,101,109,3,0,
- 0,115,12,0,0,0,12,2,8,1,4,1,8,1,4,255,
- 20,2,122,25,95,76,111,97,100,101,114,66,97,115,105,99,
- 115,46,101,120,101,99,95,109,111,100,117,108,101,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,12,0,0,0,116,0,160,1,124,
- 0,124,1,161,2,83,0,41,2,122,26,84,104,105,115,32,
- 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,46,78,41,2,114,159,0,0,0,218,17,95,
- 108,111,97,100,95,109,111,100,117,108,101,95,115,104,105,109,
- 169,2,114,143,0,0,0,114,163,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,218,11,108,111,97,
- 100,95,109,111,100,117,108,101,117,3,0,0,115,2,0,0,
- 0,12,3,122,25,95,76,111,97,100,101,114,66,97,115,105,
- 99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
- 8,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
- 114,152,0,0,0,114,206,0,0,0,114,239,0,0,0,114,
- 245,0,0,0,114,248,0,0,0,114,7,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,235,0,
- 0,0,93,3,0,0,115,12,0,0,0,8,0,4,2,8,
- 3,8,8,8,3,12,8,114,235,0,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,74,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0,
- 90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0,
- 90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1,
- 100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9,
- 100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111,
- 97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
- 0,0,116,0,130,1,41,2,122,165,79,112,116,105,111,110,
- 97,108,32,109,101,116,104,111,100,32,116,104,97,116,32,114,
- 101,116,117,114,110,115,32,116,104,101,32,109,111,100,105,102,
- 105,99,97,116,105,111,110,32,116,105,109,101,32,40,97,110,
- 32,105,110,116,41,32,102,111,114,32,116,104,101,10,32,32,
- 32,32,32,32,32,32,115,112,101,99,105,102,105,101,100,32,
- 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,
- 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83,
- 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112,
- 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97,
- 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,78,
- 41,1,114,76,0,0,0,169,2,114,143,0,0,0,114,65,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,10,112,97,116,104,95,109,116,105,109,101,125,3,
- 0,0,115,2,0,0,0,4,6,122,23,83,111,117,114,99,
- 101,76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,
- 109,101,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,14,0,0,0,
- 100,1,124,0,160,0,124,1,161,1,105,1,83,0,41,3,
- 97,158,1,0,0,79,112,116,105,111,110,97,108,32,109,101,
- 116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,97,
- 32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,102,
- 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
- 10,32,32,32,32,32,32,32,32,112,97,116,104,32,40,97,
- 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,
- 80,111,115,115,105,98,108,101,32,107,101,121,115,58,10,32,
- 32,32,32,32,32,32,32,45,32,39,109,116,105,109,101,39,
- 32,40,109,97,110,100,97,116,111,114,121,41,32,105,115,32,
- 116,104,101,32,110,117,109,101,114,105,99,32,116,105,109,101,
- 115,116,97,109,112,32,111,102,32,108,97,115,116,32,115,111,
- 117,114,99,101,10,32,32,32,32,32,32,32,32,32,32,99,
- 111,100,101,32,109,111,100,105,102,105,99,97,116,105,111,110,
- 59,10,32,32,32,32,32,32,32,32,45,32,39,115,105,122,
- 101,39,32,40,111,112,116,105,111,110,97,108,41,32,105,115,
- 32,116,104,101,32,115,105,122,101,32,105,110,32,98,121,116,
- 101,115,32,111,102,32,116,104,101,32,115,111,117,114,99,101,
- 32,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,
- 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,
- 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,
- 116,104,101,32,108,111,97,100,101,114,32,116,111,32,114,101,
- 97,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
- 115,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101,
- 115,32,79,83,69,114,114,111,114,32,119,104,101,110,32,116,
- 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,
- 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,
- 32,32,32,114,193,0,0,0,78,41,1,114,251,0,0,0,
- 114,250,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,218,10,112,97,116,104,95,115,116,97,116,115,
- 133,3,0,0,115,2,0,0,0,14,12,122,23,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,115,
- 116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,4,0,0,0,67,0,0,0,115,12,0,
- 0,0,124,0,160,0,124,2,124,3,161,2,83,0,41,2,
- 122,228,79,112,116,105,111,110,97,108,32,109,101,116,104,111,
- 100,32,119,104,105,99,104,32,119,114,105,116,101,115,32,100,
- 97,116,97,32,40,98,121,116,101,115,41,32,116,111,32,97,
- 32,102,105,108,101,32,112,97,116,104,32,40,97,32,115,116,
- 114,41,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
- 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,
- 101,116,104,111,100,32,97,108,108,111,119,115,32,102,111,114,
- 32,116,104,101,32,119,114,105,116,105,110,103,32,111,102,32,
- 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,
- 10,32,32,32,32,32,32,32,32,84,104,101,32,115,111,117,
- 114,99,101,32,112,97,116,104,32,105,115,32,110,101,101,100,
- 101,100,32,105,110,32,111,114,100,101,114,32,116,111,32,99,
- 111,114,114,101,99,116,108,121,32,116,114,97,110,115,102,101,
- 114,32,112,101,114,109,105,115,115,105,111,110,115,10,32,32,
- 32,32,32,32,32,32,78,41,1,218,8,115,101,116,95,100,
- 97,116,97,41,4,114,143,0,0,0,114,134,0,0,0,90,
- 10,99,97,99,104,101,95,112,97,116,104,114,41,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
- 15,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
- 147,3,0,0,115,2,0,0,0,12,8,122,28,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101,
- 95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,1,0,0,0,67,0,
- 0,0,114,23,0,0,0,41,2,122,150,79,112,116,105,111,
- 110,97,108,32,109,101,116,104,111,100,32,119,104,105,99,104,
- 32,119,114,105,116,101,115,32,100,97,116,97,32,40,98,121,
- 116,101,115,41,32,116,111,32,97,32,102,105,108,101,32,112,
- 97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,
- 32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,105,
- 110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,97,
- 108,108,111,119,115,32,102,111,114,32,116,104,101,32,119,114,
- 105,116,105,110,103,32,111,102,32,98,121,116,101,99,111,100,
- 101,32,102,105,108,101,115,46,10,32,32,32,32,32,32,32,
- 32,78,114,7,0,0,0,41,3,114,143,0,0,0,114,65,
- 0,0,0,114,41,0,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,114,253,0,0,0,157,3,0,0,
- 114,240,0,0,0,122,21,83,111,117,114,99,101,76,111,97,
- 100,101,114,46,115,101,116,95,100,97,116,97,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,5,0,0,0,10,0,0,
- 0,67,0,0,0,115,70,0,0,0,124,0,160,0,124,1,
- 161,1,125,2,122,10,124,0,160,1,124,2,161,1,125,3,
- 87,0,116,4,124,3,131,1,83,0,4,0,116,2,121,34,
- 1,0,125,4,1,0,122,7,116,3,100,1,124,1,100,2,
- 141,2,124,4,130,2,100,3,125,4,126,4,119,1,119,0,
- 41,4,122,52,67,111,110,99,114,101,116,101,32,105,109,112,
- 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,
- 110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,
- 95,115,111,117,114,99,101,46,122,39,115,111,117,114,99,101,
- 32,110,111,116,32,97,118,97,105,108,97,98,108,101,32,116,
- 104,114,111,117,103,104,32,103,101,116,95,100,97,116,97,40,
- 41,114,140,0,0,0,78,41,5,114,203,0,0,0,218,8,
- 103,101,116,95,100,97,116,97,114,76,0,0,0,114,142,0,
- 0,0,114,200,0,0,0,41,5,114,143,0,0,0,114,163,
- 0,0,0,114,65,0,0,0,114,198,0,0,0,218,3,101,
- 120,99,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,218,10,103,101,116,95,115,111,117,114,99,101,164,3,0,
- 0,115,24,0,0,0,10,2,2,1,12,1,8,4,14,253,
- 4,1,2,1,4,255,2,1,2,255,8,128,2,255,122,23,
- 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
- 95,115,111,117,114,99,101,114,130,0,0,0,41,1,218,9,
- 95,111,112,116,105,109,105,122,101,99,3,0,0,0,0,0,
- 0,0,1,0,0,0,4,0,0,0,8,0,0,0,67,0,
- 0,0,115,22,0,0,0,116,0,106,1,116,2,124,1,124,
- 2,100,1,100,2,124,3,100,3,141,6,83,0,41,5,122,
- 130,82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,
- 32,111,98,106,101,99,116,32,99,111,109,112,105,108,101,100,
- 32,102,114,111,109,32,115,111,117,114,99,101,46,10,10,32,
- 32,32,32,32,32,32,32,84,104,101,32,39,100,97,116,97,
- 39,32,97,114,103,117,109,101,110,116,32,99,97,110,32,98,
- 101,32,97,110,121,32,111,98,106,101,99,116,32,116,121,112,
- 101,32,116,104,97,116,32,99,111,109,112,105,108,101,40,41,
- 32,115,117,112,112,111,114,116,115,46,10,32,32,32,32,32,
- 32,32,32,114,243,0,0,0,84,41,2,218,12,100,111,110,
- 116,95,105,110,104,101,114,105,116,114,108,0,0,0,78,41,
- 3,114,159,0,0,0,114,242,0,0,0,218,7,99,111,109,
- 112,105,108,101,41,4,114,143,0,0,0,114,41,0,0,0,
- 114,65,0,0,0,114,2,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,14,115,111,117,114,99,
- 101,95,116,111,95,99,111,100,101,174,3,0,0,115,6,0,
- 0,0,12,5,4,1,6,255,122,27,83,111,117,114,99,101,
- 76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,111,
- 95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,15,0,0,0,9,0,0,0,67,0,0,0,115,2,
- 2,0,0,124,0,160,0,124,1,161,1,125,2,100,1,125,
- 3,100,1,125,4,100,1,125,5,100,2,125,6,100,3,125,
- 7,122,6,116,1,124,2,131,1,125,8,87,0,110,11,4,
- 0,116,2,121,32,1,0,1,0,1,0,100,1,125,8,89,
- 0,110,144,119,0,122,7,124,0,160,3,124,2,161,1,125,
- 9,87,0,110,9,4,0,116,4,121,49,1,0,1,0,1,
- 0,89,0,110,127,119,0,116,5,124,9,100,4,25,0,131,
- 1,125,3,122,7,124,0,160,6,124,8,161,1,125,10,87,
- 0,110,9,4,0,116,4,121,72,1,0,1,0,1,0,89,
- 0,110,104,119,0,124,1,124,8,100,5,156,2,125,11,122,
- 71,116,7,124,10,124,1,124,11,131,3,125,12,116,8,124,
- 10,131,1,100,6,100,1,133,2,25,0,125,13,124,12,100,
- 7,64,0,100,8,107,3,125,6,124,6,114,138,124,12,100,
- 9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,107,
- 3,114,137,124,7,115,119,116,9,106,10,100,11,107,2,114,
- 137,124,0,160,6,124,2,161,1,125,4,116,9,160,11,116,
- 12,124,4,161,2,125,5,116,13,124,10,124,5,124,1,124,
- 11,131,4,1,0,110,10,116,14,124,10,124,3,124,9,100,
- 12,25,0,124,1,124,11,131,5,1,0,87,0,110,11,4,
- 0,116,15,116,16,102,2,121,160,1,0,1,0,1,0,89,
- 0,110,16,119,0,116,17,160,18,100,13,124,8,124,2,161,
- 3,1,0,116,19,124,13,124,1,124,8,124,2,100,14,141,
- 4,83,0,124,4,100,1,117,0,114,185,124,0,160,6,124,
- 2,161,1,125,4,124,0,160,20,124,4,124,2,161,2,125,
- 14,116,17,160,18,100,15,124,2,161,2,1,0,116,21,106,
- 22,115,255,124,8,100,1,117,1,114,255,124,3,100,1,117,
- 1,114,255,124,6,114,226,124,5,100,1,117,0,114,219,116,
- 9,160,11,124,4,161,1,125,5,116,23,124,14,124,5,124,
- 7,131,3,125,10,110,8,116,24,124,14,124,3,116,25,124,
- 4,131,1,131,3,125,10,122,10,124,0,160,26,124,2,124,
- 8,124,10,161,3,1,0,87,0,124,14,83,0,4,0,116,
- 2,121,254,1,0,1,0,1,0,89,0,124,14,83,0,119,
- 0,124,14,83,0,41,16,122,190,67,111,110,99,114,101,116,
- 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
- 32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,
- 32,32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,
- 98,121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,
- 115,32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,
- 98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,
- 84,111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,
- 32,98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,
- 97,116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,
- 32,105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,
- 32,32,32,32,32,32,32,78,70,84,114,193,0,0,0,114,
- 183,0,0,0,114,169,0,0,0,114,3,0,0,0,114,0,
- 0,0,0,114,44,0,0,0,90,5,110,101,118,101,114,90,
- 6,97,108,119,97,121,115,218,4,115,105,122,101,122,13,123,
- 125,32,109,97,116,99,104,101,115,32,123,125,41,3,114,141,
- 0,0,0,114,132,0,0,0,114,134,0,0,0,122,19,99,
- 111,100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,
- 123,125,41,27,114,203,0,0,0,114,121,0,0,0,114,107,
- 0,0,0,114,252,0,0,0,114,76,0,0,0,114,33,0,
- 0,0,114,255,0,0,0,114,176,0,0,0,218,10,109,101,
- 109,111,114,121,118,105,101,119,114,187,0,0,0,90,21,99,
- 104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,95,
- 112,121,99,115,114,181,0,0,0,218,17,95,82,65,87,95,
- 77,65,71,73,67,95,78,85,77,66,69,82,114,182,0,0,
- 0,114,180,0,0,0,114,142,0,0,0,114,174,0,0,0,
- 114,159,0,0,0,114,173,0,0,0,114,189,0,0,0,114,
- 5,1,0,0,114,15,0,0,0,218,19,100,111,110,116,95,
- 119,114,105,116,101,95,98,121,116,101,99,111,100,101,114,195,
- 0,0,0,114,194,0,0,0,114,4,0,0,0,114,254,0,
- 0,0,41,15,114,143,0,0,0,114,163,0,0,0,114,134,
- 0,0,0,114,178,0,0,0,114,198,0,0,0,114,181,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,114,132,0,0,
- 0,218,2,115,116,114,41,0,0,0,114,175,0,0,0,114,
- 16,0,0,0,90,10,98,121,116,101,115,95,100,97,116,97,
- 90,11,99,111,100,101,95,111,98,106,101,99,116,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,0,
- 0,182,3,0,0,115,170,0,0,0,10,7,4,1,4,1,
- 4,1,4,1,4,1,2,1,12,1,12,1,8,1,2,255,
- 2,3,14,1,12,1,4,1,2,255,12,3,2,1,14,1,
- 12,1,4,1,2,255,2,4,2,1,6,254,2,4,12,1,
- 16,1,12,1,4,1,12,1,10,1,2,1,2,255,8,2,
- 2,254,10,3,4,1,2,1,2,1,4,254,8,4,2,1,
- 4,255,2,128,2,3,2,1,2,1,6,1,2,1,2,1,
- 4,251,4,128,16,7,4,1,2,255,8,3,2,1,4,255,
- 6,2,2,1,2,1,6,254,8,3,10,1,12,1,12,1,
- 14,1,6,1,2,255,4,2,8,1,10,1,14,1,6,2,
- 6,1,4,255,2,2,16,1,4,3,12,254,2,1,4,1,
- 2,254,4,2,122,21,83,111,117,114,99,101,76,111,97,100,
- 101,114,46,103,101,116,95,99,111,100,101,78,41,10,114,150,
- 0,0,0,114,149,0,0,0,114,151,0,0,0,114,251,0,
- 0,0,114,252,0,0,0,114,254,0,0,0,114,253,0,0,
- 0,114,1,1,0,0,114,5,1,0,0,114,241,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,249,0,0,0,123,3,0,0,115,16,0,
- 0,0,8,0,8,2,8,8,8,14,8,10,8,7,14,10,
- 12,8,114,249,0,0,0,99,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
- 115,92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,
- 3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,
- 5,100,6,100,7,132,0,90,6,101,7,135,0,102,1,100,
- 8,100,9,132,8,131,1,90,8,101,7,100,10,100,11,132,
- 0,131,1,90,9,100,12,100,13,132,0,90,10,101,7,100,
- 14,100,15,132,0,131,1,90,11,135,0,4,0,90,12,83,
- 0,41,16,218,10,70,105,108,101,76,111,97,100,101,114,122,
- 103,66,97,115,101,32,102,105,108,101,32,108,111,97,100,101,
- 114,32,99,108,97,115,115,32,119,104,105,99,104,32,105,109,
- 112,108,101,109,101,110,116,115,32,116,104,101,32,108,111,97,
- 100,101,114,32,112,114,111,116,111,99,111,108,32,109,101,116,
- 104,111,100,115,32,116,104,97,116,10,32,32,32,32,114,101,
- 113,117,105,114,101,32,102,105,108,101,32,115,121,115,116,101,
- 109,32,117,115,97,103,101,46,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,
- 0,115,16,0,0,0,124,1,124,0,95,0,124,2,124,0,
- 95,1,100,1,83,0,41,2,122,75,67,97,99,104,101,32,
- 116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,32,
- 97,110,100,32,116,104,101,32,112,97,116,104,32,116,111,32,
- 116,104,101,32,102,105,108,101,32,102,111,117,110,100,32,98,
- 121,32,116,104,101,10,32,32,32,32,32,32,32,32,102,105,
- 110,100,101,114,46,78,114,183,0,0,0,41,3,114,143,0,
- 0,0,114,163,0,0,0,114,65,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,0,
- 16,4,0,0,115,4,0,0,0,6,3,10,1,122,19,70,
- 105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
- 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,2,0,0,0,67,0,0,0,243,24,0,0,0,
- 124,0,106,0,124,1,106,0,107,2,111,11,124,0,106,1,
- 124,1,106,1,107,2,83,0,114,69,0,0,0,169,2,218,
- 9,95,95,99,108,97,115,115,95,95,114,156,0,0,0,169,
- 2,114,143,0,0,0,90,5,111,116,104,101,114,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,218,6,95,95,
- 101,113,95,95,22,4,0,0,243,6,0,0,0,12,1,10,
- 1,2,255,122,17,70,105,108,101,76,111,97,100,101,114,46,
- 95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,243,
- 20,0,0,0,116,0,124,0,106,1,131,1,116,0,124,0,
- 106,2,131,1,65,0,83,0,114,69,0,0,0,169,3,218,
- 4,104,97,115,104,114,141,0,0,0,114,65,0,0,0,169,
- 1,114,143,0,0,0,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,218,8,95,95,104,97,115,104,95,95,26,
- 4,0,0,243,2,0,0,0,20,1,122,19,70,105,108,101,
- 76,111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,3,0,0,0,115,16,0,0,0,116,0,116,
- 1,124,0,131,2,160,2,124,1,161,1,83,0,41,2,122,
- 100,76,111,97,100,32,97,32,109,111,100,117,108,101,32,102,
- 114,111,109,32,97,32,102,105,108,101,46,10,10,32,32,32,
- 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
- 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
- 32,85,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,10,32,32,32,
- 32,32,32,32,32,78,41,3,218,5,115,117,112,101,114,114,
- 11,1,0,0,114,248,0,0,0,114,247,0,0,0,169,1,
- 114,14,1,0,0,114,7,0,0,0,114,8,0,0,0,114,
- 248,0,0,0,29,4,0,0,115,2,0,0,0,16,10,122,
- 22,70,105,108,101,76,111,97,100,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,2,0,0,0,1,0,0,0,67,0,0,0,
- 243,6,0,0,0,124,0,106,0,83,0,169,2,122,58,82,
- 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,
- 111,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,
- 101,32,97,115,32,102,111,117,110,100,32,98,121,32,116,104,
- 101,32,102,105,110,100,101,114,46,78,114,71,0,0,0,114,
- 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,203,0,0,0,41,4,0,0,243,2,0,0,
- 0,6,3,122,23,70,105,108,101,76,111,97,100,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,3,0,0,0,8,0,0,
- 0,67,0,0,0,115,128,0,0,0,116,0,124,0,116,1,
- 116,2,102,2,131,2,114,36,116,3,160,4,116,5,124,1,
- 131,1,161,1,143,12,125,2,124,2,160,6,161,0,87,0,
- 2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0,
- 115,29,119,1,1,0,1,0,1,0,89,0,1,0,100,1,
- 83,0,116,3,160,7,124,1,100,2,161,2,143,12,125,2,
- 124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,
- 131,3,1,0,83,0,49,0,115,57,119,1,1,0,1,0,
- 1,0,89,0,1,0,100,1,83,0,41,3,122,39,82,101,
- 116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,114,
- 111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,98,
- 121,116,101,115,46,78,218,1,114,41,8,114,185,0,0,0,
- 114,249,0,0,0,218,19,69,120,116,101,110,115,105,111,110,
- 70,105,108,101,76,111,97,100,101,114,114,91,0,0,0,90,
- 9,111,112,101,110,95,99,111,100,101,114,109,0,0,0,90,
- 4,114,101,97,100,114,92,0,0,0,41,3,114,143,0,0,
- 0,114,65,0,0,0,114,94,0,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,255,0,0,0,46,
- 4,0,0,115,14,0,0,0,14,2,16,1,6,1,36,255,
- 14,3,6,1,36,255,122,19,70,105,108,101,76,111,97,100,
- 101,114,46,103,101,116,95,100,97,116,97,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,20,0,0,0,100,1,100,2,108,0,109,
- 1,125,2,1,0,124,2,124,0,131,1,83,0,41,3,78,
- 114,0,0,0,0,41,1,218,10,70,105,108,101,82,101,97,
- 100,101,114,41,2,218,17,105,109,112,111,114,116,108,105,98,
- 46,114,101,97,100,101,114,115,114,31,1,0,0,41,3,114,
- 143,0,0,0,114,244,0,0,0,114,31,1,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,218,19,103,
- 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,
- 101,114,55,4,0,0,115,4,0,0,0,12,2,8,1,122,
- 30,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,
- 114,101,115,111,117,114,99,101,95,114,101,97,100,101,114,41,
- 13,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
- 114,152,0,0,0,114,236,0,0,0,114,16,1,0,0,114,
- 22,1,0,0,114,160,0,0,0,114,248,0,0,0,114,203,
- 0,0,0,114,255,0,0,0,114,33,1,0,0,90,13,95,
- 95,99,108,97,115,115,99,101,108,108,95,95,114,7,0,0,
- 0,114,7,0,0,0,114,25,1,0,0,114,8,0,0,0,
- 114,11,1,0,0,11,4,0,0,115,24,0,0,0,8,0,
- 4,2,8,3,8,6,8,4,2,3,14,1,2,11,10,1,
- 8,4,2,9,18,1,114,11,1,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,46,0,0,0,101,0,90,1,100,0,90,
- 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
- 5,132,0,90,5,100,6,100,7,156,1,100,8,100,9,132,
- 2,90,6,100,10,83,0,41,11,218,16,83,111,117,114,99,
- 101,70,105,108,101,76,111,97,100,101,114,122,62,67,111,110,
- 99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,
- 116,105,111,110,32,111,102,32,83,111,117,114,99,101,76,111,
- 97,100,101,114,32,117,115,105,110,103,32,116,104,101,32,102,
- 105,108,101,32,115,121,115,116,101,109,46,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
- 67,0,0,0,115,22,0,0,0,116,0,124,1,131,1,125,
- 2,124,2,106,1,124,2,106,2,100,1,156,2,83,0,41,
- 3,122,33,82,101,116,117,114,110,32,116,104,101,32,109,101,
- 116,97,100,97,116,97,32,102,111,114,32,116,104,101,32,112,
- 97,116,104,46,41,2,114,193,0,0,0,114,6,1,0,0,
- 78,41,3,114,75,0,0,0,218,8,115,116,95,109,116,105,
- 109,101,90,7,115,116,95,115,105,122,101,41,3,114,143,0,
- 0,0,114,65,0,0,0,114,10,1,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,252,0,0,0,
- 65,4,0,0,115,4,0,0,0,8,2,14,1,122,27,83,
- 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,
- 112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0,
- 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
- 0,0,0,115,24,0,0,0,116,0,124,1,131,1,125,4,
- 124,0,106,1,124,2,124,3,124,4,100,1,141,3,83,0,
- 41,2,78,169,1,218,5,95,109,111,100,101,41,2,114,139,
- 0,0,0,114,253,0,0,0,41,5,114,143,0,0,0,114,
- 134,0,0,0,114,132,0,0,0,114,41,0,0,0,114,78,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,254,0,0,0,70,4,0,0,115,4,0,0,0,
- 8,2,16,1,122,32,83,111,117,114,99,101,70,105,108,101,
- 76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,
- 116,101,99,111,100,101,114,87,0,0,0,114,36,1,0,0,
- 99,3,0,0,0,0,0,0,0,1,0,0,0,9,0,0,
- 0,11,0,0,0,67,0,0,0,115,254,0,0,0,116,0,
- 124,1,131,1,92,2,125,4,125,5,103,0,125,6,124,4,
- 114,31,116,1,124,4,131,1,115,31,116,0,124,4,131,1,
- 92,2,125,4,125,7,124,6,160,2,124,7,161,1,1,0,
- 124,4,114,31,116,1,124,4,131,1,114,14,116,3,124,6,
- 131,1,68,0,93,49,125,7,116,4,124,4,124,7,131,2,
- 125,4,122,7,116,5,160,6,124,4,161,1,1,0,87,0,
- 113,35,4,0,116,7,121,58,1,0,1,0,1,0,89,0,
- 113,35,4,0,116,8,121,84,1,0,125,8,1,0,122,15,
- 116,9,160,10,100,1,124,4,124,8,161,3,1,0,87,0,
- 89,0,100,2,125,8,126,8,1,0,100,2,83,0,100,2,
- 125,8,126,8,119,1,119,0,122,15,116,11,124,1,124,2,
- 124,3,131,3,1,0,116,9,160,10,100,3,124,1,161,2,
- 1,0,87,0,100,2,83,0,4,0,116,8,121,126,1,0,
- 125,8,1,0,122,14,116,9,160,10,100,1,124,1,124,8,
- 161,3,1,0,87,0,89,0,100,2,125,8,126,8,100,2,
- 83,0,100,2,125,8,126,8,119,1,119,0,41,4,122,27,
- 87,114,105,116,101,32,98,121,116,101,115,32,100,97,116,97,
- 32,116,111,32,97,32,102,105,108,101,46,122,27,99,111,117,
- 108,100,32,110,111,116,32,99,114,101,97,116,101,32,123,33,
- 114,125,58,32,123,33,114,125,78,122,12,99,114,101,97,116,
- 101,100,32,123,33,114,125,41,12,114,74,0,0,0,114,83,
- 0,0,0,114,61,0,0,0,218,8,114,101,118,101,114,115,
- 101,100,114,67,0,0,0,114,18,0,0,0,90,5,109,107,
- 100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69,
- 114,114,111,114,114,76,0,0,0,114,159,0,0,0,114,173,
- 0,0,0,114,95,0,0,0,41,9,114,143,0,0,0,114,
- 65,0,0,0,114,41,0,0,0,114,37,1,0,0,218,6,
- 112,97,114,101,110,116,114,120,0,0,0,114,63,0,0,0,
- 114,68,0,0,0,114,0,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,253,0,0,0,75,4,
- 0,0,115,56,0,0,0,12,2,4,1,12,2,12,1,10,
- 1,12,254,12,4,10,1,2,1,14,1,12,1,4,2,14,
- 1,6,3,4,1,4,255,16,2,8,128,2,251,2,6,12,
- 1,18,1,14,1,8,2,2,1,18,255,8,128,2,254,122,
- 25,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
- 114,46,115,101,116,95,100,97,116,97,78,41,7,114,150,0,
- 0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,
- 0,114,252,0,0,0,114,254,0,0,0,114,253,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,34,1,0,0,61,4,0,0,115,10,0,
- 0,0,8,0,4,2,8,2,8,5,18,5,114,34,1,0,
- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,64,0,0,0,115,32,0,0,0,101,
- 0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,
- 0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,41,
- 7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,108,
- 101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,32,
- 119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,111,
- 117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,109,
- 112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,
- 68,0,0,0,124,0,160,0,124,1,161,1,125,2,124,0,
- 160,1,124,2,161,1,125,3,124,1,124,2,100,1,156,2,
- 125,4,116,2,124,3,124,1,124,4,131,3,1,0,116,3,
- 116,4,124,3,131,1,100,2,100,0,133,2,25,0,124,1,
- 124,2,100,3,141,3,83,0,41,4,78,114,183,0,0,0,
- 114,169,0,0,0,41,2,114,141,0,0,0,114,132,0,0,
- 0,41,5,114,203,0,0,0,114,255,0,0,0,114,176,0,
- 0,0,114,189,0,0,0,114,7,1,0,0,41,5,114,143,
- 0,0,0,114,163,0,0,0,114,65,0,0,0,114,41,0,
- 0,0,114,175,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,114,241,0,0,0,110,4,0,0,115,
- 22,0,0,0,10,1,10,1,2,4,2,1,6,254,12,4,
- 2,1,14,1,2,1,2,1,6,253,122,29,83,111,117,114,
- 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
- 46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
- 0,0,114,23,0,0,0,41,2,122,39,82,101,116,117,114,
- 110,32,78,111,110,101,32,97,115,32,116,104,101,114,101,32,
- 105,115,32,110,111,32,115,111,117,114,99,101,32,99,111,100,
- 101,46,78,114,7,0,0,0,114,247,0,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,1,1,0,
- 0,126,4,0,0,114,24,0,0,0,122,31,83,111,117,114,
- 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
- 46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,150,
- 0,0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,
- 0,0,114,241,0,0,0,114,1,1,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,41,1,0,0,106,4,0,0,115,8,0,0,0,8,0,
- 4,2,8,2,12,16,114,41,1,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,92,0,0,0,101,0,90,1,100,0,90,
- 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
- 5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,100,
- 9,132,0,90,7,100,10,100,11,132,0,90,8,100,12,100,
- 13,132,0,90,9,100,14,100,15,132,0,90,10,100,16,100,
- 17,132,0,90,11,101,12,100,18,100,19,132,0,131,1,90,
- 13,100,20,83,0,41,21,114,30,1,0,0,122,93,76,111,
- 97,100,101,114,32,102,111,114,32,101,120,116,101,110,115,105,
- 111,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,
- 32,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114,
- 32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32,
- 119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105,
- 110,100,101,114,46,10,10,32,32,32,32,99,3,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
- 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124,
- 2,124,0,95,1,100,0,83,0,114,69,0,0,0,114,183,
- 0,0,0,41,3,114,143,0,0,0,114,141,0,0,0,114,
- 65,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,236,0,0,0,139,4,0,0,115,4,0,0,
- 0,6,1,10,1,122,28,69,120,116,101,110,115,105,111,110,
- 70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,
- 116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,2,0,0,0,67,0,0,0,114,12,1,0,
- 0,114,69,0,0,0,114,13,1,0,0,114,15,1,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
- 16,1,0,0,143,4,0,0,114,17,1,0,0,122,26,69,
- 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,
- 101,114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,114,18,1,0,0,114,69,0,0,0,114,19,1,0,
- 0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,114,22,1,0,0,147,4,0,0,114,23,
- 1,0,0,122,28,69,120,116,101,110,115,105,111,110,70,105,
- 108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,
- 95,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,5,0,0,0,67,0,0,0,115,36,0,0,0,116,
- 0,160,1,116,2,106,3,124,1,161,2,125,2,116,0,160,
- 4,100,1,124,1,106,5,124,0,106,6,161,3,1,0,124,
- 2,83,0,41,3,122,38,67,114,101,97,116,101,32,97,110,
- 32,117,110,105,116,105,97,108,105,122,101,100,32,101,120,116,
- 101,110,115,105,111,110,32,109,111,100,117,108,101,122,38,101,
- 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32,
- 123,33,114,125,32,108,111,97,100,101,100,32,102,114,111,109,
- 32,123,33,114,125,78,41,7,114,159,0,0,0,114,242,0,
- 0,0,114,187,0,0,0,90,14,99,114,101,97,116,101,95,
- 100,121,110,97,109,105,99,114,173,0,0,0,114,141,0,0,
- 0,114,65,0,0,0,41,3,114,143,0,0,0,114,210,0,
- 0,0,114,244,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,114,239,0,0,0,150,4,0,0,115,
- 14,0,0,0,4,2,6,1,4,255,6,2,8,1,4,255,
- 4,2,122,33,69,120,116,101,110,115,105,111,110,70,105,108,
- 101,76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,
- 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,5,0,0,0,67,0,0,0,115,36,
- 0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,1,
- 0,116,0,160,4,100,1,124,0,106,5,124,0,106,6,161,
- 3,1,0,100,2,83,0,41,3,122,30,73,110,105,116,105,
- 97,108,105,122,101,32,97,110,32,101,120,116,101,110,115,105,
- 111,110,32,109,111,100,117,108,101,122,40,101,120,116,101,110,
- 115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,125,
- 32,101,120,101,99,117,116,101,100,32,102,114,111,109,32,123,
- 33,114,125,78,41,7,114,159,0,0,0,114,242,0,0,0,
- 114,187,0,0,0,90,12,101,120,101,99,95,100,121,110,97,
- 109,105,99,114,173,0,0,0,114,141,0,0,0,114,65,0,
- 0,0,169,2,114,143,0,0,0,114,244,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,245,0,
- 0,0,158,4,0,0,115,8,0,0,0,14,2,6,1,8,
- 1,8,255,122,31,69,120,116,101,110,115,105,111,110,70,105,
- 108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,111,
- 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,4,0,0,0,3,0,0,0,115,36,0,
- 0,0,116,0,124,0,106,1,131,1,100,1,25,0,137,0,
- 116,2,135,0,102,1,100,2,100,3,132,8,116,3,68,0,
- 131,1,131,1,83,0,41,5,122,49,82,101,116,117,114,110,
- 32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116,
- 101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115,
- 32,97,32,112,97,99,107,97,103,101,46,114,3,0,0,0,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,4,0,0,0,51,0,0,0,115,28,0,0,0,129,0,
- 124,0,93,9,125,1,136,0,100,0,124,1,23,0,107,2,
- 86,0,1,0,113,2,100,1,83,0,41,2,114,236,0,0,
- 0,78,114,7,0,0,0,169,2,114,5,0,0,0,218,6,
- 115,117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,
- 97,109,101,114,7,0,0,0,114,8,0,0,0,114,9,0,
- 0,0,167,4,0,0,115,8,0,0,0,2,128,4,0,2,
- 1,20,255,122,49,69,120,116,101,110,115,105,111,110,70,105,
- 108,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,
- 97,103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,
- 110,101,120,112,114,62,78,41,4,114,74,0,0,0,114,65,
- 0,0,0,218,3,97,110,121,114,232,0,0,0,114,247,0,
- 0,0,114,7,0,0,0,114,45,1,0,0,114,8,0,0,
- 0,114,206,0,0,0,164,4,0,0,115,8,0,0,0,14,
- 2,12,1,2,1,8,255,122,30,69,120,116,101,110,115,105,
- 111,110,70,105,108,101,76,111,97,100,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,2,0,0,0,1,0,0,0,67,0,0,0,
- 114,23,0,0,0,41,2,122,63,82,101,116,117,114,110,32,
- 78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,110,
- 115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,110,
- 111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,101,
- 32,111,98,106,101,99,116,46,78,114,7,0,0,0,114,247,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,241,0,0,0,170,4,0,0,114,24,0,0,0,
- 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
- 111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
- 0,0,0,67,0,0,0,114,23,0,0,0,41,2,122,53,
- 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101,
- 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115,
- 32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32,
- 99,111,100,101,46,78,114,7,0,0,0,114,247,0,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
- 1,1,0,0,174,4,0,0,114,24,0,0,0,122,30,69,
- 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,
- 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,2,0,0,0,1,0,
- 0,0,67,0,0,0,114,26,1,0,0,114,27,1,0,0,
- 114,71,0,0,0,114,247,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,203,0,0,0,178,4,
- 0,0,114,28,1,0,0,122,32,69,120,116,101,110,115,105,
- 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
- 95,102,105,108,101,110,97,109,101,78,41,14,114,150,0,0,
- 0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,0,
- 114,236,0,0,0,114,16,1,0,0,114,22,1,0,0,114,
- 239,0,0,0,114,245,0,0,0,114,206,0,0,0,114,241,
- 0,0,0,114,1,1,0,0,114,160,0,0,0,114,203,0,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,114,30,1,0,0,131,4,0,0,115,
- 24,0,0,0,8,0,4,2,8,6,8,4,8,4,8,3,
- 8,8,8,6,8,6,8,4,2,4,14,1,114,30,1,0,
- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,64,0,0,0,115,104,0,0,0,101,
- 0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,
- 0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,
- 0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,132,
- 0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,132,
- 0,90,10,100,16,100,17,132,0,90,11,100,18,100,19,132,
- 0,90,12,100,20,100,21,132,0,90,13,100,22,100,23,132,
- 0,90,14,100,24,83,0,41,25,218,14,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,97,38,1,0,0,82,101,
- 112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,115,
- 112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,112,
- 97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,104,
- 101,32,109,111,100,117,108,101,32,110,97,109,101,10,32,32,
- 32,32,116,111,32,102,105,110,100,32,105,116,115,32,112,97,
- 114,101,110,116,32,109,111,100,117,108,101,44,32,97,110,100,
- 32,102,114,111,109,32,116,104,101,114,101,32,105,116,32,108,
- 111,111,107,115,32,117,112,32,116,104,101,32,112,97,114,101,
- 110,116,39,115,10,32,32,32,32,95,95,112,97,116,104,95,
- 95,46,32,32,87,104,101,110,32,116,104,105,115,32,99,104,
- 97,110,103,101,115,44,32,116,104,101,32,109,111,100,117,108,
- 101,39,115,32,111,119,110,32,112,97,116,104,32,105,115,32,
- 114,101,99,111,109,112,117,116,101,100,44,10,32,32,32,32,
- 117,115,105,110,103,32,112,97,116,104,95,102,105,110,100,101,
- 114,46,32,32,70,111,114,32,116,111,112,45,108,101,118,101,
- 108,32,109,111,100,117,108,101,115,44,32,116,104,101,32,112,
- 97,114,101,110,116,32,109,111,100,117,108,101,39,115,32,112,
- 97,116,104,10,32,32,32,32,105,115,32,115,121,115,46,112,
- 97,116,104,46,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,3,0,0,0,67,0,0,0,115,36,0,
- 0,0,124,1,124,0,95,0,124,2,124,0,95,1,116,2,
- 124,0,160,3,161,0,131,1,124,0,95,4,124,3,124,0,
- 95,5,100,0,83,0,114,69,0,0,0,41,6,218,5,95,
- 110,97,109,101,218,5,95,112,97,116,104,114,136,0,0,0,
- 218,16,95,103,101,116,95,112,97,114,101,110,116,95,112,97,
- 116,104,218,17,95,108,97,115,116,95,112,97,114,101,110,116,
- 95,112,97,116,104,218,12,95,112,97,116,104,95,102,105,110,
- 100,101,114,169,4,114,143,0,0,0,114,141,0,0,0,114,
- 65,0,0,0,90,11,112,97,116,104,95,102,105,110,100,101,
- 114,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,236,0,0,0,191,4,0,0,115,8,0,0,0,6,1,
- 6,1,14,1,10,1,122,23,95,78,97,109,101,115,112,97,
- 99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
- 3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,106,
- 0,160,1,100,1,161,1,92,3,125,1,125,2,125,3,124,
- 2,100,2,107,2,114,15,100,3,83,0,124,1,100,4,102,
- 2,83,0,41,6,122,62,82,101,116,117,114,110,115,32,97,
- 32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,110,
- 116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,112,
- 97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,45,
- 110,97,109,101,41,114,97,0,0,0,114,10,0,0,0,41,
- 2,114,15,0,0,0,114,65,0,0,0,90,8,95,95,112,
- 97,116,104,95,95,78,41,2,114,48,1,0,0,114,104,0,
- 0,0,41,4,114,143,0,0,0,114,40,1,0,0,218,3,
- 100,111,116,90,2,109,101,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,23,95,102,105,110,100,95,112,97,
- 114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,197,
- 4,0,0,115,8,0,0,0,18,2,8,1,4,2,8,3,
- 122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
- 46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,
- 116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
- 0,115,28,0,0,0,124,0,160,0,161,0,92,2,125,1,
- 125,2,116,1,116,2,106,3,124,1,25,0,124,2,131,2,
- 83,0,114,69,0,0,0,41,4,114,55,1,0,0,114,155,
- 0,0,0,114,15,0,0,0,218,7,109,111,100,117,108,101,
- 115,41,3,114,143,0,0,0,90,18,112,97,114,101,110,116,
- 95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,97,
- 116,104,95,97,116,116,114,95,110,97,109,101,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,50,1,0,0,
- 207,4,0,0,115,4,0,0,0,12,1,16,1,122,31,95,
- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,
- 101,116,95,112,97,114,101,110,116,95,112,97,116,104,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
- 0,0,0,67,0,0,0,115,80,0,0,0,116,0,124,0,
- 160,1,161,0,131,1,125,1,124,1,124,0,106,2,107,3,
- 114,37,124,0,160,3,124,0,106,4,124,1,161,2,125,2,
- 124,2,100,0,117,1,114,34,124,2,106,5,100,0,117,0,
- 114,34,124,2,106,6,114,34,124,2,106,6,124,0,95,7,
- 124,1,124,0,95,2,124,0,106,7,83,0,114,69,0,0,
- 0,41,8,114,136,0,0,0,114,50,1,0,0,114,51,1,
- 0,0,114,52,1,0,0,114,48,1,0,0,114,164,0,0,
- 0,114,202,0,0,0,114,49,1,0,0,41,3,114,143,0,
- 0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114,
- 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,
- 101,211,4,0,0,115,16,0,0,0,12,2,10,1,14,1,
- 18,3,6,1,8,1,6,1,6,1,122,27,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97,
- 108,99,117,108,97,116,101,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 243,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
- 0,114,69,0,0,0,41,2,218,4,105,116,101,114,114,57,
- 1,0,0,114,21,1,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,218,8,95,95,105,116,101,114,95,
- 95,224,4,0,0,243,2,0,0,0,12,1,122,23,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
- 116,101,114,95,95,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,12,
- 0,0,0,124,0,160,0,161,0,124,1,25,0,83,0,114,
- 69,0,0,0,169,1,114,57,1,0,0,41,2,114,143,0,
- 0,0,218,5,105,110,100,101,120,114,7,0,0,0,114,7,
- 0,0,0,114,8,0,0,0,218,11,95,95,103,101,116,105,
- 116,101,109,95,95,227,4,0,0,114,61,1,0,0,122,26,
- 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
- 95,103,101,116,105,116,101,109,95,95,99,3,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
- 0,0,0,115,14,0,0,0,124,2,124,0,106,0,124,1,
- 60,0,100,0,83,0,114,69,0,0,0,41,1,114,49,1,
- 0,0,41,3,114,143,0,0,0,114,63,1,0,0,114,65,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,11,95,95,115,101,116,105,116,101,109,95,95,230,
- 4,0,0,115,2,0,0,0,14,1,122,26,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,
- 105,116,101,109,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,
- 58,1,0,0,114,69,0,0,0,41,2,114,4,0,0,0,
- 114,57,1,0,0,114,21,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,7,95,95,108,101,110,
- 95,95,233,4,0,0,114,61,1,0,0,122,22,95,78,97,
- 109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,
- 110,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,
- 0,100,1,160,0,124,0,106,1,161,1,83,0,41,2,78,
- 122,20,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
- 40,123,33,114,125,41,41,2,114,89,0,0,0,114,49,1,
- 0,0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,8,95,95,114,101,112,114,95,95,
- 236,4,0,0,114,61,1,0,0,122,23,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,
- 95,95,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,12,0,0,0,
- 124,1,124,0,160,0,161,0,118,0,83,0,114,69,0,0,
- 0,114,62,1,0,0,169,2,114,143,0,0,0,218,4,105,
- 116,101,109,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,
- 239,4,0,0,114,61,1,0,0,122,27,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,99,111,110,116,
- 97,105,110,115,95,95,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,124,0,106,0,160,1,124,1,161,1,1,0,
- 100,0,83,0,114,69,0,0,0,41,2,114,49,1,0,0,
- 114,61,0,0,0,114,69,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,61,0,0,0,242,4,
- 0,0,243,2,0,0,0,16,1,122,21,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,97,112,112,101,110,100,
- 78,41,15,114,150,0,0,0,114,149,0,0,0,114,151,0,
- 0,0,114,152,0,0,0,114,236,0,0,0,114,55,1,0,
- 0,114,50,1,0,0,114,57,1,0,0,114,60,1,0,0,
- 114,64,1,0,0,114,65,1,0,0,114,66,1,0,0,114,
- 68,1,0,0,114,71,1,0,0,114,61,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,47,1,0,0,184,4,0,0,115,26,0,0,0,
- 8,0,4,1,8,6,8,6,8,10,8,4,8,13,8,3,
- 8,3,8,3,8,3,8,3,12,3,114,47,1,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,88,0,0,0,101,0,90,
- 1,100,0,90,2,100,1,100,2,132,0,90,3,101,4,100,
- 3,100,4,132,0,131,1,90,5,100,5,100,6,132,0,90,
- 6,100,7,100,8,132,0,90,7,100,9,100,10,132,0,90,
- 8,100,11,100,12,132,0,90,9,100,13,100,14,132,0,90,
- 10,100,15,100,16,132,0,90,11,100,17,100,18,132,0,90,
- 12,100,19,83,0,41,20,218,16,95,78,97,109,101,115,112,
- 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
- 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,
- 0,0,115,18,0,0,0,116,0,124,1,124,2,124,3,131,
- 3,124,0,95,1,100,0,83,0,114,69,0,0,0,41,2,
- 114,47,1,0,0,114,49,1,0,0,114,53,1,0,0,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,236,
- 0,0,0,248,4,0,0,115,2,0,0,0,18,1,122,25,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
- 46,95,95,105,110,105,116,95,95,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,24,0,0,0,116,0,160,1,100,1,116,2,161,
- 2,1,0,100,2,160,3,124,0,106,4,161,1,83,0,41,
- 4,122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,
- 111,114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,
- 32,32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,
- 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
- 46,32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,
- 99,104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,
- 32,106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,
- 32,32,32,32,32,32,122,82,95,78,97,109,101,115,112,97,
- 99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,
- 114,101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,
- 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,
- 121,116,104,111,110,32,51,46,49,50,122,25,60,109,111,100,
- 117,108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,
- 97,99,101,41,62,78,41,5,114,99,0,0,0,114,100,0,
- 0,0,114,101,0,0,0,114,89,0,0,0,114,150,0,0,
- 0,41,1,114,244,0,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,218,11,109,111,100,117,108,101,95,
- 114,101,112,114,251,4,0,0,115,8,0,0,0,6,7,2,
- 1,4,255,12,2,122,28,95,78,97,109,101,115,112,97,99,
- 101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,
- 101,112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,1,0,0,0,67,0,0,0,114,23,0,0,
- 0,41,2,78,84,114,7,0,0,0,114,247,0,0,0,114,
+ 44,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
+ 114,74,0,0,0,114,203,0,0,0,114,125,0,0,0,114,
+ 104,0,0,0,41,5,114,143,0,0,0,114,163,0,0,0,
+ 114,120,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
+ 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,206,
- 0,0,0,6,5,0,0,243,2,0,0,0,4,1,122,27,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,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,2,0,0,0,1,0,0,0,
- 67,0,0,0,114,23,0,0,0,41,2,78,114,10,0,0,
- 0,114,7,0,0,0,114,247,0,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,1,1,0,0,9,
- 5,0,0,114,75,1,0,0,122,27,95,78,97,109,101,115,
- 112,97,99,101,76,111,97,100,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,2,0,0,0,6,0,0,0,67,0,0,0,115,16,
- 0,0,0,116,0,100,1,100,2,100,3,100,4,100,5,141,
- 4,83,0,41,6,78,114,10,0,0,0,122,8,60,115,116,
- 114,105,110,103,62,114,243,0,0,0,84,41,1,114,3,1,
- 0,0,41,1,114,4,1,0,0,114,247,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,
- 0,0,12,5,0,0,114,72,1,0,0,122,25,95,78,97,
- 109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,
- 116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114,
- 23,0,0,0,114,237,0,0,0,114,7,0,0,0,114,238,
- 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,239,0,0,0,15,5,0,0,114,240,0,0,0,
- 122,30,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
- 101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,0,
- 83,0,114,69,0,0,0,114,7,0,0,0,114,42,1,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,245,0,0,0,18,5,0,0,114,75,1,0,0,122,28,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
+ 0,0,0,98,3,0,0,115,8,0,0,0,18,3,16,1,
+ 14,1,16,1,122,24,95,76,111,97,100,101,114,66,97,115,
+ 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+ 0,0,0,67,0,0,0,114,23,0,0,0,169,2,122,42,
+ 85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,
+ 110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,
+ 32,99,114,101,97,116,105,111,110,46,78,114,7,0,0,0,
+ 169,2,114,143,0,0,0,114,210,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,13,99,114,101,
+ 97,116,101,95,109,111,100,117,108,101,106,3,0,0,243,2,
+ 0,0,0,4,0,122,27,95,76,111,97,100,101,114,66,97,
+ 115,105,99,115,46,99,114,101,97,116,101,95,109,111,100,117,
+ 108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,5,0,0,0,67,0,0,0,115,56,0,0,0,
+ 124,0,160,0,124,1,106,1,161,1,125,2,124,2,100,1,
+ 117,0,114,18,116,2,100,2,160,3,124,1,106,1,161,1,
+ 131,1,130,1,116,4,160,5,116,6,124,2,124,1,106,7,
+ 161,3,1,0,100,1,83,0,41,3,122,19,69,120,101,99,
+ 117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,78,
+ 122,52,99,97,110,110,111,116,32,108,111,97,100,32,109,111,
+ 100,117,108,101,32,123,33,114,125,32,119,104,101,110,32,103,
+ 101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,110,
+ 115,32,78,111,110,101,41,8,218,8,103,101,116,95,99,111,
+ 100,101,114,150,0,0,0,114,142,0,0,0,114,89,0,0,
+ 0,114,159,0,0,0,218,25,95,99,97,108,108,95,119,105,
+ 116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,101,
+ 100,218,4,101,120,101,99,114,156,0,0,0,41,3,114,143,
+ 0,0,0,218,6,109,111,100,117,108,101,114,188,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 11,101,120,101,99,95,109,111,100,117,108,101,109,3,0,0,
+ 115,12,0,0,0,12,2,8,1,4,1,8,1,4,255,20,
+ 2,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
46,101,120,101,99,95,109,111,100,117,108,101,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,26,0,0,0,116,0,160,1,100,1,
- 124,0,106,2,161,2,1,0,116,0,160,3,124,0,124,1,
- 161,2,83,0,41,3,122,98,76,111,97,100,32,97,32,110,
- 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46,
- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
+ 0,67,0,0,0,115,12,0,0,0,116,0,160,1,124,0,
+ 124,1,161,2,83,0,41,1,122,26,84,104,105,115,32,109,
101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
- 116,101,100,46,32,32,85,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,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101,
- 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97,
- 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33,
- 114,125,78,41,4,114,159,0,0,0,114,173,0,0,0,114,
- 49,1,0,0,114,246,0,0,0,114,247,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,248,0,
- 0,0,21,5,0,0,115,8,0,0,0,6,7,4,1,4,
- 255,12,3,122,28,95,78,97,109,101,115,112,97,99,101,76,
- 111,97,100,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,2,0,0,0,67,0,0,0,115,22,0,0,0,100,
- 1,100,2,108,0,109,1,125,2,1,0,124,2,124,0,106,
- 2,131,1,83,0,41,3,78,114,0,0,0,0,41,1,218,
- 15,78,97,109,101,115,112,97,99,101,82,101,97,100,101,114,
- 41,3,114,32,1,0,0,114,76,1,0,0,114,49,1,0,
- 0,41,3,114,143,0,0,0,114,244,0,0,0,114,76,1,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,33,1,0,0,33,5,0,0,115,4,0,0,0,12,
- 1,10,1,122,36,95,78,97,109,101,115,112,97,99,101,76,
- 111,97,100,101,114,46,103,101,116,95,114,101,115,111,117,114,
- 99,101,95,114,101,97,100,101,114,78,41,13,114,150,0,0,
- 0,114,149,0,0,0,114,151,0,0,0,114,236,0,0,0,
- 114,233,0,0,0,114,74,1,0,0,114,206,0,0,0,114,
- 1,1,0,0,114,241,0,0,0,114,239,0,0,0,114,245,
- 0,0,0,114,248,0,0,0,114,33,1,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,73,1,0,0,247,4,0,0,115,22,0,0,0,8,
- 0,8,1,2,3,10,1,8,10,8,3,8,3,8,3,8,
- 3,8,3,12,12,114,73,1,0,0,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,118,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,90,3,101,4,100,2,100,3,132,0,131,1,90,5,
- 101,4,100,4,100,5,132,0,131,1,90,6,101,7,100,6,
- 100,7,132,0,131,1,90,8,101,7,100,8,100,9,132,0,
- 131,1,90,9,101,7,100,19,100,11,100,12,132,1,131,1,
- 90,10,101,7,100,20,100,13,100,14,132,1,131,1,90,11,
- 101,7,100,19,100,15,100,16,132,1,131,1,90,12,101,4,
- 100,17,100,18,132,0,131,1,90,13,100,10,83,0,41,21,
- 218,10,80,97,116,104,70,105,110,100,101,114,122,62,77,101,
- 116,97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,
- 111,114,32,115,121,115,46,112,97,116,104,32,97,110,100,32,
- 112,97,99,107,97,103,101,32,95,95,112,97,116,104,95,95,
- 32,97,116,116,114,105,98,117,116,101,115,46,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
- 0,67,0,0,0,115,64,0,0,0,116,0,116,1,106,2,
- 160,3,161,0,131,1,68,0,93,22,92,2,125,0,125,1,
- 124,1,100,1,117,0,114,20,116,1,106,2,124,0,61,0,
- 113,7,116,4,124,1,100,2,131,2,114,29,124,1,160,5,
- 161,0,1,0,113,7,100,1,83,0,41,3,122,125,67,97,
- 108,108,32,116,104,101,32,105,110,118,97,108,105,100,97,116,
- 101,95,99,97,99,104,101,115,40,41,32,109,101,116,104,111,
- 100,32,111,110,32,97,108,108,32,112,97,116,104,32,101,110,
- 116,114,121,32,102,105,110,100,101,114,115,10,32,32,32,32,
- 32,32,32,32,115,116,111,114,101,100,32,105,110,32,115,121,
- 115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,115,32,40,119,104,101,114,101,32,105,109,
- 112,108,101,109,101,110,116,101,100,41,46,78,218,17,105,110,
- 118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,41,
- 6,218,4,108,105,115,116,114,15,0,0,0,218,19,112,97,
- 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
- 101,218,5,105,116,101,109,115,114,153,0,0,0,114,78,1,
- 0,0,41,2,114,141,0,0,0,218,6,102,105,110,100,101,
- 114,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,78,1,0,0,44,5,0,0,115,14,0,0,0,22,4,
- 8,1,10,1,10,1,8,1,2,128,4,252,122,28,80,97,
- 116,104,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,1,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,9,0,0,0,67,
- 0,0,0,115,76,0,0,0,116,0,106,1,100,1,117,1,
- 114,14,116,0,106,1,115,14,116,2,160,3,100,2,116,4,
- 161,2,1,0,116,0,106,1,68,0,93,18,125,1,122,7,
- 124,1,124,0,131,1,87,0,2,0,1,0,83,0,4,0,
- 116,5,121,35,1,0,1,0,1,0,89,0,113,17,119,0,
- 100,1,83,0,41,3,122,46,83,101,97,114,99,104,32,115,
- 121,115,46,112,97,116,104,95,104,111,111,107,115,32,102,111,
- 114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
- 112,97,116,104,39,46,78,122,23,115,121,115,46,112,97,116,
- 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
- 41,6,114,15,0,0,0,218,10,112,97,116,104,95,104,111,
- 111,107,115,114,99,0,0,0,114,100,0,0,0,114,162,0,
- 0,0,114,142,0,0,0,41,2,114,65,0,0,0,90,4,
- 104,111,111,107,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,
- 54,5,0,0,115,18,0,0,0,16,3,12,1,10,1,2,
- 1,14,1,12,1,4,1,2,255,4,3,122,22,80,97,116,
- 104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,111,
- 111,107,115,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,100,0,0,
- 0,124,1,100,1,107,2,114,21,122,6,116,0,160,1,161,
- 0,125,1,87,0,110,10,4,0,116,2,121,20,1,0,1,
- 0,1,0,89,0,100,2,83,0,119,0,122,8,116,3,106,
- 4,124,1,25,0,125,2,87,0,124,2,83,0,4,0,116,
- 5,121,49,1,0,1,0,1,0,124,0,160,6,124,1,161,
- 1,125,2,124,2,116,3,106,4,124,1,60,0,89,0,124,
- 2,83,0,119,0,41,3,122,210,71,101,116,32,116,104,101,
- 32,102,105,110,100,101,114,32,102,111,114,32,116,104,101,32,
- 112,97,116,104,32,101,110,116,114,121,32,102,114,111,109,32,
- 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
- 114,95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,
- 32,32,73,102,32,116,104,101,32,112,97,116,104,32,101,110,
- 116,114,121,32,105,115,32,110,111,116,32,105,110,32,116,104,
- 101,32,99,97,99,104,101,44,32,102,105,110,100,32,116,104,
- 101,32,97,112,112,114,111,112,114,105,97,116,101,32,102,105,
- 110,100,101,114,10,32,32,32,32,32,32,32,32,97,110,100,
- 32,99,97,99,104,101,32,105,116,46,32,73,102,32,110,111,
- 32,102,105,110,100,101,114,32,105,115,32,97,118,97,105,108,
- 97,98,108,101,44,32,115,116,111,114,101,32,78,111,110,101,
- 46,10,10,32,32,32,32,32,32,32,32,114,10,0,0,0,
- 78,41,7,114,18,0,0,0,114,82,0,0,0,218,17,70,
- 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,
- 114,15,0,0,0,114,80,1,0,0,218,8,75,101,121,69,
- 114,114,111,114,114,84,1,0,0,41,3,114,221,0,0,0,
- 114,65,0,0,0,114,82,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,20,95,112,97,116,104,
- 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,67,
- 5,0,0,115,28,0,0,0,8,8,2,1,12,1,12,1,
- 6,3,2,253,2,4,12,1,4,4,12,253,10,1,12,1,
- 4,1,2,253,122,31,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,0,0,
- 0,0,7,0,0,0,4,0,0,0,67,0,0,0,115,138,
- 0,0,0,116,0,124,2,100,1,131,2,114,27,116,1,160,
- 2,124,2,161,1,155,0,100,2,157,2,125,3,116,3,160,
- 4,124,3,116,5,161,2,1,0,124,2,160,6,124,1,161,
- 1,92,2,125,4,125,5,110,21,116,1,160,2,124,2,161,
- 1,155,0,100,3,157,2,125,3,116,3,160,4,124,3,116,
- 5,161,2,1,0,124,2,160,7,124,1,161,1,125,4,103,
- 0,125,5,124,4,100,0,117,1,114,58,116,1,160,8,124,
- 1,124,4,161,2,83,0,116,1,160,9,124,1,100,0,161,
- 2,125,6,124,5,124,6,95,10,124,6,83,0,41,4,78,
- 114,161,0,0,0,122,53,46,102,105,110,100,95,115,112,101,
- 99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,
- 97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,102,
- 105,110,100,95,108,111,97,100,101,114,40,41,122,53,46,102,
- 105,110,100,95,115,112,101,99,40,41,32,110,111,116,32,102,
- 111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97,
- 99,107,32,116,111,32,102,105,110,100,95,109,111,100,117,108,
- 101,40,41,41,11,114,153,0,0,0,114,159,0,0,0,90,
- 12,95,111,98,106,101,99,116,95,110,97,109,101,114,99,0,
- 0,0,114,100,0,0,0,114,162,0,0,0,114,161,0,0,
- 0,114,229,0,0,0,114,224,0,0,0,114,207,0,0,0,
- 114,202,0,0,0,41,7,114,221,0,0,0,114,163,0,0,
- 0,114,82,1,0,0,114,166,0,0,0,114,164,0,0,0,
- 114,165,0,0,0,114,210,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,16,95,108,101,103,97,
- 99,121,95,103,101,116,95,115,112,101,99,89,5,0,0,115,
- 26,0,0,0,10,4,16,1,12,2,16,1,16,2,12,2,
- 10,1,4,1,8,1,12,1,12,1,6,1,4,1,122,27,
- 80,97,116,104,70,105,110,100,101,114,46,95,108,101,103,97,
- 99,121,95,103,101,116,95,115,112,101,99,78,99,4,0,0,
- 0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
- 0,67,0,0,0,115,166,0,0,0,103,0,125,4,124,2,
- 68,0,93,67,125,5,116,0,124,5,116,1,116,2,102,2,
- 131,2,115,14,113,4,124,0,160,3,124,5,161,1,125,6,
- 124,6,100,1,117,1,114,71,116,4,124,6,100,2,131,2,
- 114,35,124,6,160,5,124,1,124,3,161,2,125,7,110,6,
- 124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1,
- 117,0,114,46,113,4,124,7,106,7,100,1,117,1,114,55,
- 124,7,2,0,1,0,83,0,124,7,106,8,125,8,124,8,
- 100,1,117,0,114,66,116,9,100,3,131,1,130,1,124,4,
- 160,10,124,8,161,1,1,0,113,4,116,11,160,12,124,1,
- 100,1,161,2,125,7,124,4,124,7,95,8,124,7,83,0,
- 41,4,122,63,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,78,114,226,0,0,0,122,19,115,112,101,99,32,
- 109,105,115,115,105,110,103,32,108,111,97,100,101,114,41,13,
- 114,185,0,0,0,114,109,0,0,0,218,5,98,121,116,101,
- 115,114,87,1,0,0,114,153,0,0,0,114,226,0,0,0,
- 114,88,1,0,0,114,164,0,0,0,114,202,0,0,0,114,
- 142,0,0,0,114,191,0,0,0,114,159,0,0,0,114,207,
- 0,0,0,41,9,114,221,0,0,0,114,163,0,0,0,114,
- 65,0,0,0,114,225,0,0,0,218,14,110,97,109,101,115,
- 112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121,
- 114,82,1,0,0,114,210,0,0,0,114,165,0,0,0,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,9,
- 95,103,101,116,95,115,112,101,99,110,5,0,0,115,42,0,
- 0,0,4,5,8,1,14,1,2,1,10,1,8,1,10,1,
- 14,1,12,2,8,1,2,1,10,1,8,1,6,1,8,1,
- 8,1,10,5,2,128,12,2,6,1,4,1,122,20,80,97,
- 116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112,
- 101,99,99,4,0,0,0,0,0,0,0,0,0,0,0,6,
- 0,0,0,5,0,0,0,67,0,0,0,115,94,0,0,0,
- 124,2,100,1,117,0,114,7,116,0,106,1,125,2,124,0,
- 160,2,124,1,124,2,124,3,161,3,125,4,124,4,100,1,
- 117,0,114,20,100,1,83,0,124,4,106,3,100,1,117,0,
- 114,45,124,4,106,4,125,5,124,5,114,43,100,1,124,4,
- 95,5,116,6,124,1,124,5,124,0,106,2,131,3,124,4,
- 95,4,124,4,83,0,100,1,83,0,124,4,83,0,41,2,
- 122,141,84,114,121,32,116,111,32,102,105,110,100,32,97,32,
- 115,112,101,99,32,102,111,114,32,39,102,117,108,108,110,97,
- 109,101,39,32,111,110,32,115,121,115,46,112,97,116,104,32,
- 111,114,32,39,112,97,116,104,39,46,10,10,32,32,32,32,
- 32,32,32,32,84,104,101,32,115,101,97,114,99,104,32,105,
- 115,32,98,97,115,101,100,32,111,110,32,115,121,115,46,112,
- 97,116,104,95,104,111,111,107,115,32,97,110,100,32,115,121,
- 115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,46,10,32,32,32,32,32,32,32,32,78,
- 41,7,114,15,0,0,0,114,65,0,0,0,114,91,1,0,
- 0,114,164,0,0,0,114,202,0,0,0,114,205,0,0,0,
- 114,47,1,0,0,41,6,114,221,0,0,0,114,163,0,0,
- 0,114,65,0,0,0,114,225,0,0,0,114,210,0,0,0,
- 114,90,1,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,226,0,0,0,142,5,0,0,115,26,0,
- 0,0,8,6,6,1,14,1,8,1,4,1,10,1,6,1,
- 4,1,6,3,16,1,4,1,4,2,4,2,122,20,80,97,
- 116,104,70,105,110,100,101,114,46,102,105,110,100,95,115,112,
- 101,99,99,3,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,
- 116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3,
- 124,1,124,2,161,2,125,3,124,3,100,2,117,0,114,18,
- 100,2,83,0,124,3,106,4,83,0,41,3,122,170,102,105,
- 110,100,32,116,104,101,32,109,111,100,117,108,101,32,111,110,
- 32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,97,
- 116,104,39,32,98,97,115,101,100,32,111,110,32,115,121,115,
- 46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,10,
- 32,32,32,32,32,32,32,32,115,121,115,46,112,97,116,104,
- 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,46,
- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
- 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
- 116,101,100,46,32,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,10,
- 32,32,32,32,32,32,32,32,122,101,80,97,116,104,70,105,
- 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
- 40,41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
- 32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,
- 114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,
- 110,32,51,46,49,50,59,32,117,115,101,32,102,105,110,100,
- 95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,78,
- 114,227,0,0,0,114,228,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,229,0,0,0,166,5,
- 0,0,115,14,0,0,0,6,8,2,2,4,254,12,3,8,
- 1,4,1,6,1,122,22,80,97,116,104,70,105,110,100,101,
- 114,46,102,105,110,100,95,109,111,100,117,108,101,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
- 0,0,79,0,0,0,115,28,0,0,0,100,1,100,2,108,
- 0,109,1,125,2,1,0,124,2,106,2,124,0,105,0,124,
- 1,164,1,142,1,83,0,41,4,97,32,1,0,0,10,32,
- 32,32,32,32,32,32,32,70,105,110,100,32,100,105,115,116,
- 114,105,98,117,116,105,111,110,115,46,10,10,32,32,32,32,
- 32,32,32,32,82,101,116,117,114,110,32,97,110,32,105,116,
- 101,114,97,98,108,101,32,111,102,32,97,108,108,32,68,105,
- 115,116,114,105,98,117,116,105,111,110,32,105,110,115,116,97,
- 110,99,101,115,32,99,97,112,97,98,108,101,32,111,102,10,
- 32,32,32,32,32,32,32,32,108,111,97,100,105,110,103,32,
- 116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114,
- 32,112,97,99,107,97,103,101,115,32,109,97,116,99,104,105,
- 110,103,32,96,96,99,111,110,116,101,120,116,46,110,97,109,
- 101,96,96,10,32,32,32,32,32,32,32,32,40,111,114,32,
- 97,108,108,32,110,97,109,101,115,32,105,102,32,96,96,78,
- 111,110,101,96,96,32,105,110,100,105,99,97,116,101,100,41,
- 32,97,108,111,110,103,32,116,104,101,32,112,97,116,104,115,
- 32,105,110,32,116,104,101,32,108,105,115,116,10,32,32,32,
- 32,32,32,32,32,111,102,32,100,105,114,101,99,116,111,114,
- 105,101,115,32,96,96,99,111,110,116,101,120,116,46,112,97,
- 116,104,96,96,46,10,32,32,32,32,32,32,32,32,114,0,
- 0,0,0,41,1,218,18,77,101,116,97,100,97,116,97,80,
- 97,116,104,70,105,110,100,101,114,78,41,3,90,18,105,109,
- 112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,97,
- 114,92,1,0,0,218,18,102,105,110,100,95,100,105,115,116,
- 114,105,98,117,116,105,111,110,115,41,3,114,144,0,0,0,
- 114,145,0,0,0,114,92,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,93,1,0,0,182,5,
- 0,0,115,4,0,0,0,12,10,16,1,122,29,80,97,116,
- 104,70,105,110,100,101,114,46,102,105,110,100,95,100,105,115,
- 116,114,105,98,117,116,105,111,110,115,114,69,0,0,0,114,
- 230,0,0,0,41,14,114,150,0,0,0,114,149,0,0,0,
- 114,151,0,0,0,114,152,0,0,0,114,233,0,0,0,114,
- 78,1,0,0,114,84,1,0,0,114,234,0,0,0,114,87,
- 1,0,0,114,88,1,0,0,114,91,1,0,0,114,226,0,
- 0,0,114,229,0,0,0,114,93,1,0,0,114,7,0,0,
+ 116,101,100,46,41,2,114,159,0,0,0,218,17,95,108,111,
+ 97,100,95,109,111,100,117,108,101,95,115,104,105,109,169,2,
+ 114,143,0,0,0,114,163,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,218,11,108,111,97,100,95,
+ 109,111,100,117,108,101,117,3,0,0,115,2,0,0,0,12,
+ 3,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
+ 46,108,111,97,100,95,109,111,100,117,108,101,78,41,8,114,
+ 150,0,0,0,114,149,0,0,0,114,151,0,0,0,114,152,
+ 0,0,0,114,206,0,0,0,114,239,0,0,0,114,245,0,
+ 0,0,114,248,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,235,0,0,0,
+ 93,3,0,0,115,12,0,0,0,8,0,4,2,8,3,8,
+ 8,8,3,12,8,114,235,0,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,74,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4,
+ 100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6,
+ 100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13,
+ 100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17,
+ 83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100,
+ 101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
+ 116,0,130,1,41,1,122,165,79,112,116,105,111,110,97,108,
+ 32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,116,
+ 117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,99,
+ 97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,105,
+ 110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,32,
+ 32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,97,
+ 116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,
+ 32,32,32,32,32,82,97,105,115,101,115,32,79,83,69,114,
+ 114,111,114,32,119,104,101,110,32,116,104,101,32,112,97,116,
+ 104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,
+ 108,101,100,46,10,32,32,32,32,32,32,32,32,41,1,114,
+ 76,0,0,0,169,2,114,143,0,0,0,114,65,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 10,112,97,116,104,95,109,116,105,109,101,125,3,0,0,115,
+ 2,0,0,0,4,6,122,23,83,111,117,114,99,101,76,111,
+ 97,100,101,114,46,112,97,116,104,95,109,116,105,109,101,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,14,0,0,0,100,1,124,
+ 0,160,0,124,1,161,1,105,1,83,0,41,2,97,158,1,
+ 0,0,79,112,116,105,111,110,97,108,32,109,101,116,104,111,
+ 100,32,114,101,116,117,114,110,105,110,103,32,97,32,109,101,
+ 116,97,100,97,116,97,32,100,105,99,116,32,102,111,114,32,
+ 116,104,101,32,115,112,101,99,105,102,105,101,100,10,32,32,
+ 32,32,32,32,32,32,112,97,116,104,32,40,97,32,115,116,
+ 114,41,46,10,10,32,32,32,32,32,32,32,32,80,111,115,
+ 115,105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,
+ 32,32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,
+ 97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,
+ 32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,
+ 109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,
+ 101,10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,
+ 32,109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,
+ 32,32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,
+ 40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,
+ 101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,
+ 111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,
+ 100,101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
+ 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,
+ 101,116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,
+ 32,108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,
+ 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,
+ 32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,
+ 83,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,
+ 112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,
+ 97,110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,
+ 114,193,0,0,0,41,1,114,251,0,0,0,114,250,0,0,
0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,77,1,0,0,40,5,0,0,115,36,0,0,0,8,0,
- 4,2,2,2,10,1,2,9,10,1,2,12,10,1,2,21,
- 10,1,2,20,12,1,2,31,12,1,2,23,12,1,2,15,
- 14,1,114,77,1,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,90,0,0,0,101,0,90,1,100,0,90,2,100,1,90,
- 3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,
- 5,101,6,90,7,100,6,100,7,132,0,90,8,100,8,100,
- 9,132,0,90,9,100,19,100,11,100,12,132,1,90,10,100,
- 13,100,14,132,0,90,11,101,12,100,15,100,16,132,0,131,
- 1,90,13,100,17,100,18,132,0,90,14,100,10,83,0,41,
- 20,218,10,70,105,108,101,70,105,110,100,101,114,122,172,70,
- 105,108,101,45,98,97,115,101,100,32,102,105,110,100,101,114,
- 46,10,10,32,32,32,32,73,110,116,101,114,97,99,116,105,
- 111,110,115,32,119,105,116,104,32,116,104,101,32,102,105,108,
- 101,32,115,121,115,116,101,109,32,97,114,101,32,99,97,99,
- 104,101,100,32,102,111,114,32,112,101,114,102,111,114,109,97,
- 110,99,101,44,32,98,101,105,110,103,10,32,32,32,32,114,
- 101,102,114,101,115,104,101,100,32,119,104,101,110,32,116,104,
- 101,32,100,105,114,101,99,116,111,114,121,32,116,104,101,32,
- 102,105,110,100,101,114,32,105,115,32,104,97,110,100,108,105,
- 110,103,32,104,97,115,32,98,101,101,110,32,109,111,100,105,
- 102,105,101,100,46,10,10,32,32,32,32,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,
- 7,0,0,0,115,112,0,0,0,103,0,125,3,124,2,68,
- 0,93,16,92,2,137,0,125,4,124,3,160,0,135,0,102,
- 1,100,1,100,2,132,8,124,4,68,0,131,1,161,1,1,
- 0,113,4,124,3,124,0,95,1,124,1,112,27,100,3,124,
- 0,95,2,116,3,124,0,106,2,131,1,115,43,116,4,116,
- 5,160,6,161,0,124,0,106,2,131,2,124,0,95,2,100,
- 4,124,0,95,7,116,8,131,0,124,0,95,9,116,8,131,
- 0,124,0,95,10,100,5,83,0,41,6,122,154,73,110,105,
- 116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,
- 32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,
- 111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,
- 101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,
- 32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,
- 116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,
- 101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,
- 115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,
- 100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,
- 103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,0,
- 115,24,0,0,0,129,0,124,0,93,7,125,1,124,1,136,
- 0,102,2,86,0,1,0,113,2,100,0,83,0,114,69,0,
- 0,0,114,7,0,0,0,114,43,1,0,0,169,1,114,164,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,
- 0,0,211,5,0,0,115,4,0,0,0,2,128,22,0,122,
- 38,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,114,97,0,0,0,114,130,0,0,
- 0,78,41,11,114,191,0,0,0,218,8,95,108,111,97,100,
- 101,114,115,114,65,0,0,0,114,86,0,0,0,114,67,0,
- 0,0,114,18,0,0,0,114,82,0,0,0,218,11,95,112,
- 97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,11,
- 95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,101,
- 108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,
- 41,5,114,143,0,0,0,114,65,0,0,0,218,14,108,111,
- 97,100,101,114,95,100,101,116,97,105,108,115,90,7,108,111,
- 97,100,101,114,115,114,212,0,0,0,114,7,0,0,0,114,
- 95,1,0,0,114,8,0,0,0,114,236,0,0,0,205,5,
- 0,0,115,20,0,0,0,4,4,12,1,26,1,6,1,10,
- 2,10,1,18,1,6,1,8,1,12,1,122,19,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
+ 218,10,112,97,116,104,95,115,116,97,116,115,133,3,0,0,
+ 115,2,0,0,0,14,12,122,23,83,111,117,114,99,101,76,
+ 111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,
+ 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,4,0,0,0,67,0,0,0,115,12,0,0,0,124,0,
+ 160,0,124,2,124,3,161,2,83,0,41,1,122,228,79,112,
+ 116,105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,
+ 105,99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,
+ 40,98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,
+ 101,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,
+ 10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,
+ 110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,
+ 100,32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,
+ 32,119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,
+ 99,111,100,101,32,102,105,108,101,115,46,10,10,32,32,32,
+ 32,32,32,32,32,84,104,101,32,115,111,117,114,99,101,32,
+ 112,97,116,104,32,105,115,32,110,101,101,100,101,100,32,105,
+ 110,32,111,114,100,101,114,32,116,111,32,99,111,114,114,101,
+ 99,116,108,121,32,116,114,97,110,115,102,101,114,32,112,101,
+ 114,109,105,115,115,105,111,110,115,10,32,32,32,32,32,32,
+ 32,32,41,1,218,8,115,101,116,95,100,97,116,97,41,4,
+ 114,143,0,0,0,114,134,0,0,0,90,10,99,97,99,104,
+ 101,95,112,97,116,104,114,41,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,15,95,99,97,99,
+ 104,101,95,98,121,116,101,99,111,100,101,147,3,0,0,115,
+ 2,0,0,0,12,8,122,28,83,111,117,114,99,101,76,111,
+ 97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,
+ 99,111,100,101,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,1,0,0,0,67,0,0,0,114,23,0,
+ 0,0,41,2,122,150,79,112,116,105,111,110,97,108,32,109,
+ 101,116,104,111,100,32,119,104,105,99,104,32,119,114,105,116,
+ 101,115,32,100,97,116,97,32,40,98,121,116,101,115,41,32,
+ 116,111,32,97,32,102,105,108,101,32,112,97,116,104,32,40,
+ 97,32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,
+ 32,73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,
+ 105,115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,
+ 32,102,111,114,32,116,104,101,32,119,114,105,116,105,110,103,
+ 32,111,102,32,98,121,116,101,99,111,100,101,32,102,105,108,
+ 101,115,46,10,32,32,32,32,32,32,32,32,78,114,7,0,
+ 0,0,41,3,114,143,0,0,0,114,65,0,0,0,114,41,
+ 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,253,0,0,0,157,3,0,0,114,240,0,0,0,
+ 122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,115,
+ 101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,10,0,0,0,67,0,0,0,
+ 115,70,0,0,0,124,0,160,0,124,1,161,1,125,2,122,
+ 10,124,0,160,1,124,2,161,1,125,3,87,0,116,4,124,
+ 3,131,1,83,0,4,0,116,2,121,34,1,0,125,4,1,
+ 0,122,7,116,3,100,1,124,1,100,2,141,2,124,4,130,
+ 2,100,3,125,4,126,4,119,1,119,0,41,4,122,52,67,
+ 111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,
+ 116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99,
+ 116,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,46,122,39,115,111,117,114,99,101,32,110,111,116,32,
+ 97,118,97,105,108,97,98,108,101,32,116,104,114,111,117,103,
+ 104,32,103,101,116,95,100,97,116,97,40,41,114,140,0,0,
+ 0,78,41,5,114,203,0,0,0,218,8,103,101,116,95,100,
+ 97,116,97,114,76,0,0,0,114,142,0,0,0,114,200,0,
+ 0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,65,
+ 0,0,0,114,198,0,0,0,218,3,101,120,99,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,10,103,101,
+ 116,95,115,111,117,114,99,101,164,3,0,0,115,24,0,0,
+ 0,10,2,2,1,12,1,8,4,14,253,4,1,2,1,4,
+ 255,2,1,2,255,8,128,2,255,122,23,83,111,117,114,99,
+ 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,114,130,0,0,0,41,1,218,9,95,111,112,116,105,
+ 109,105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,
+ 0,4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,
+ 0,0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,
+ 124,3,100,3,141,6,83,0,41,4,122,130,82,101,116,117,
+ 114,110,32,116,104,101,32,99,111,100,101,32,111,98,106,101,
+ 99,116,32,99,111,109,112,105,108,101,100,32,102,114,111,109,
+ 32,115,111,117,114,99,101,46,10,10,32,32,32,32,32,32,
+ 32,32,84,104,101,32,39,100,97,116,97,39,32,97,114,103,
+ 117,109,101,110,116,32,99,97,110,32,98,101,32,97,110,121,
+ 32,111,98,106,101,99,116,32,116,121,112,101,32,116,104,97,
+ 116,32,99,111,109,112,105,108,101,40,41,32,115,117,112,112,
+ 111,114,116,115,46,10,32,32,32,32,32,32,32,32,114,243,
+ 0,0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,
+ 101,114,105,116,114,108,0,0,0,41,3,114,159,0,0,0,
+ 114,242,0,0,0,218,7,99,111,109,112,105,108,101,41,4,
+ 114,143,0,0,0,114,41,0,0,0,114,65,0,0,0,114,
+ 2,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,
+ 111,100,101,174,3,0,0,115,6,0,0,0,12,5,4,1,
+ 6,255,122,27,83,111,117,114,99,101,76,111,97,100,101,114,
+ 46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,
+ 9,0,0,0,67,0,0,0,115,2,2,0,0,124,0,160,
+ 0,124,1,161,1,125,2,100,1,125,3,100,1,125,4,100,
+ 1,125,5,100,2,125,6,100,3,125,7,122,6,116,1,124,
+ 2,131,1,125,8,87,0,110,11,4,0,116,2,121,32,1,
+ 0,1,0,1,0,100,1,125,8,89,0,110,144,119,0,122,
+ 7,124,0,160,3,124,2,161,1,125,9,87,0,110,9,4,
+ 0,116,4,121,49,1,0,1,0,1,0,89,0,110,127,119,
+ 0,116,5,124,9,100,4,25,0,131,1,125,3,122,7,124,
+ 0,160,6,124,8,161,1,125,10,87,0,110,9,4,0,116,
+ 4,121,72,1,0,1,0,1,0,89,0,110,104,119,0,124,
+ 1,124,8,100,5,156,2,125,11,122,71,116,7,124,10,124,
+ 1,124,11,131,3,125,12,116,8,124,10,131,1,100,6,100,
+ 1,133,2,25,0,125,13,124,12,100,7,64,0,100,8,107,
+ 3,125,6,124,6,114,138,124,12,100,9,64,0,100,8,107,
+ 3,125,7,116,9,106,10,100,10,107,3,114,137,124,7,115,
+ 119,116,9,106,10,100,11,107,2,114,137,124,0,160,6,124,
+ 2,161,1,125,4,116,9,160,11,116,12,124,4,161,2,125,
+ 5,116,13,124,10,124,5,124,1,124,11,131,4,1,0,110,
+ 10,116,14,124,10,124,3,124,9,100,12,25,0,124,1,124,
+ 11,131,5,1,0,87,0,110,11,4,0,116,15,116,16,102,
+ 2,121,160,1,0,1,0,1,0,89,0,110,16,119,0,116,
+ 17,160,18,100,13,124,8,124,2,161,3,1,0,116,19,124,
+ 13,124,1,124,8,124,2,100,14,141,4,83,0,124,4,100,
+ 1,117,0,114,185,124,0,160,6,124,2,161,1,125,4,124,
+ 0,160,20,124,4,124,2,161,2,125,14,116,17,160,18,100,
+ 15,124,2,161,2,1,0,116,21,106,22,115,255,124,8,100,
+ 1,117,1,114,255,124,3,100,1,117,1,114,255,124,6,114,
+ 226,124,5,100,1,117,0,114,219,116,9,160,11,124,4,161,
+ 1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,110,
+ 8,116,24,124,14,124,3,116,25,124,4,131,1,131,3,125,
+ 10,122,10,124,0,160,26,124,2,124,8,124,10,161,3,1,
+ 0,87,0,124,14,83,0,4,0,116,2,121,254,1,0,1,
+ 0,1,0,89,0,124,14,83,0,119,0,124,14,83,0,41,
+ 16,122,190,67,111,110,99,114,101,116,101,32,105,109,112,108,
+ 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
+ 115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,
+ 99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,82,
+ 101,97,100,105,110,103,32,111,102,32,98,121,116,101,99,111,
+ 100,101,32,114,101,113,117,105,114,101,115,32,112,97,116,104,
+ 95,115,116,97,116,115,32,116,111,32,98,101,32,105,109,112,
+ 108,101,109,101,110,116,101,100,46,32,84,111,32,119,114,105,
+ 116,101,10,32,32,32,32,32,32,32,32,98,121,116,101,99,
+ 111,100,101,44,32,115,101,116,95,100,97,116,97,32,109,117,
+ 115,116,32,97,108,115,111,32,98,101,32,105,109,112,108,101,
+ 109,101,110,116,101,100,46,10,10,32,32,32,32,32,32,32,
+ 32,78,70,84,114,193,0,0,0,114,183,0,0,0,114,169,
+ 0,0,0,114,3,0,0,0,114,0,0,0,0,114,44,0,
+ 0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,121,
+ 115,218,4,115,105,122,101,122,13,123,125,32,109,97,116,99,
+ 104,101,115,32,123,125,41,3,114,141,0,0,0,114,132,0,
+ 0,0,114,134,0,0,0,122,19,99,111,100,101,32,111,98,
+ 106,101,99,116,32,102,114,111,109,32,123,125,41,27,114,203,
+ 0,0,0,114,121,0,0,0,114,107,0,0,0,114,252,0,
+ 0,0,114,76,0,0,0,114,33,0,0,0,114,255,0,0,
+ 0,114,176,0,0,0,218,10,109,101,109,111,114,121,118,105,
+ 101,119,114,187,0,0,0,90,21,99,104,101,99,107,95,104,
+ 97,115,104,95,98,97,115,101,100,95,112,121,99,115,114,181,
+ 0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,95,
+ 78,85,77,66,69,82,114,182,0,0,0,114,180,0,0,0,
+ 114,142,0,0,0,114,174,0,0,0,114,159,0,0,0,114,
+ 173,0,0,0,114,189,0,0,0,114,5,1,0,0,114,15,
+ 0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95,
+ 98,121,116,101,99,111,100,101,114,195,0,0,0,114,194,0,
+ 0,0,114,4,0,0,0,114,254,0,0,0,41,15,114,143,
+ 0,0,0,114,163,0,0,0,114,134,0,0,0,114,178,0,
+ 0,0,114,198,0,0,0,114,181,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,114,132,0,0,0,218,2,115,116,114,
+ 41,0,0,0,114,175,0,0,0,114,16,0,0,0,90,10,
+ 98,121,116,101,115,95,100,97,116,97,90,11,99,111,100,101,
+ 95,111,98,106,101,99,116,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,241,0,0,0,182,3,0,0,115,
+ 170,0,0,0,10,7,4,1,4,1,4,1,4,1,4,1,
+ 2,1,12,1,12,1,8,1,2,255,2,3,14,1,12,1,
+ 4,1,2,255,12,3,2,1,14,1,12,1,4,1,2,255,
+ 2,4,2,1,6,254,2,4,12,1,16,1,12,1,4,1,
+ 12,1,10,1,2,1,2,255,8,2,2,254,10,3,4,1,
+ 2,1,2,1,4,254,8,4,2,1,4,255,2,128,2,3,
+ 2,1,2,1,6,1,2,1,2,1,4,251,4,128,16,7,
+ 4,1,2,255,8,3,2,1,4,255,6,2,2,1,2,1,
+ 6,254,8,3,10,1,12,1,12,1,14,1,6,1,2,255,
+ 4,2,8,1,10,1,14,1,6,2,6,1,4,255,2,2,
+ 16,1,4,3,12,254,2,1,4,1,2,254,4,2,122,21,
+ 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
+ 95,99,111,100,101,78,41,10,114,150,0,0,0,114,149,0,
+ 0,0,114,151,0,0,0,114,251,0,0,0,114,252,0,0,
+ 0,114,254,0,0,0,114,253,0,0,0,114,1,1,0,0,
+ 114,5,1,0,0,114,241,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,249,
+ 0,0,0,123,3,0,0,115,16,0,0,0,8,0,8,2,
+ 8,8,8,14,8,10,8,7,14,10,12,8,114,249,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,0,0,0,0,115,92,0,0,0,101,
+ 0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,
+ 0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,
+ 0,90,6,101,7,135,0,102,1,100,8,100,9,132,8,131,
+ 1,90,8,101,7,100,10,100,11,132,0,131,1,90,9,100,
+ 12,100,13,132,0,90,10,101,7,100,14,100,15,132,0,131,
+ 1,90,11,135,0,4,0,90,12,83,0,41,16,218,10,70,
+ 105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,32,
+ 102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,115,
+ 115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,110,
+ 116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,114,
+ 111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,116,
+ 104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,32,
+ 102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,103,
+ 101,46,99,3,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,
+ 124,1,124,0,95,0,124,2,124,0,95,1,100,1,83,0,
+ 41,2,122,75,67,97,99,104,101,32,116,104,101,32,109,111,
+ 100,117,108,101,32,110,97,109,101,32,97,110,100,32,116,104,
+ 101,32,112,97,116,104,32,116,111,32,116,104,101,32,102,105,
+ 108,101,32,102,111,117,110,100,32,98,121,32,116,104,101,10,
+ 32,32,32,32,32,32,32,32,102,105,110,100,101,114,46,78,
+ 114,183,0,0,0,41,3,114,143,0,0,0,114,163,0,0,
+ 0,114,65,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,236,0,0,0,16,4,0,0,115,4,
+ 0,0,0,6,3,10,1,122,19,70,105,108,101,76,111,97,
+ 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+ 0,67,0,0,0,243,24,0,0,0,124,0,106,0,124,1,
+ 106,0,107,2,111,11,124,0,106,1,124,1,106,1,107,2,
+ 83,0,114,69,0,0,0,169,2,218,9,95,95,99,108,97,
+ 115,115,95,95,114,156,0,0,0,169,2,114,143,0,0,0,
+ 90,5,111,116,104,101,114,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,218,6,95,95,101,113,95,95,22,4,
+ 0,0,243,6,0,0,0,12,1,10,1,2,255,122,17,70,
+ 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,
- 124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,97,
- 108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,
- 116,111,114,121,32,109,116,105,109,101,46,114,130,0,0,0,
- 78,41,1,114,97,1,0,0,114,21,1,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,78,1,0,
- 0,221,5,0,0,114,81,0,0,0,122,28,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,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
- 0,115,54,0,0,0,116,0,160,1,100,1,116,2,161,2,
- 1,0,124,0,160,3,124,1,161,1,125,2,124,2,100,2,
- 117,0,114,19,100,2,103,0,102,2,83,0,124,2,106,4,
- 124,2,106,5,112,25,103,0,102,2,83,0,41,3,122,197,
- 84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,111,
- 97,100,101,114,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,44,32,111,
- 114,32,116,104,101,32,110,97,109,101,115,112,97,99,101,10,
- 32,32,32,32,32,32,32,32,112,97,99,107,97,103,101,32,
- 112,111,114,116,105,111,110,115,46,32,82,101,116,117,114,110,
- 115,32,40,108,111,97,100,101,114,44,32,108,105,115,116,45,
- 111,102,45,112,111,114,116,105,111,110,115,41,46,10,10,32,
- 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104,
- 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
- 46,32,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,10,32,32,32,
- 32,32,32,32,32,122,101,70,105,108,101,70,105,110,100,101,
- 114,46,102,105,110,100,95,108,111,97,100,101,114,40,41,32,
- 105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,
- 100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,
- 111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,
- 46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,
- 101,99,40,41,32,105,110,115,116,101,97,100,78,41,6,114,
- 99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,226,
- 0,0,0,114,164,0,0,0,114,202,0,0,0,41,3,114,
- 143,0,0,0,114,163,0,0,0,114,210,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,161,0,
- 0,0,227,5,0,0,115,14,0,0,0,6,7,2,2,4,
- 254,10,3,8,1,8,1,16,1,122,22,70,105,108,101,70,
- 105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,101,
- 114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,0,
- 0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,124,
- 1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,124,
- 6,124,4,100,1,141,4,83,0,41,2,78,114,201,0,0,
- 0,41,1,114,213,0,0,0,41,7,114,143,0,0,0,114,
- 211,0,0,0,114,163,0,0,0,114,65,0,0,0,90,4,
- 115,109,115,108,114,225,0,0,0,114,164,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,91,1,
- 0,0,242,5,0,0,115,8,0,0,0,10,1,8,1,2,
- 1,6,255,122,20,70,105,108,101,70,105,110,100,101,114,46,
- 95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0,
- 0,0,0,0,0,0,0,14,0,0,0,9,0,0,0,67,
- 0,0,0,115,122,1,0,0,100,1,125,3,124,1,160,0,
- 100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,0,
- 106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,5,
- 87,0,110,11,4,0,116,6,121,32,1,0,1,0,1,0,
- 100,4,125,5,89,0,110,1,119,0,124,5,124,0,106,7,
- 107,3,114,45,124,0,160,8,161,0,1,0,124,5,124,0,
- 95,7,116,9,131,0,114,56,124,0,106,10,125,6,124,4,
- 160,11,161,0,125,7,110,5,124,0,106,12,125,6,124,4,
- 125,7,124,7,124,6,118,0,114,108,116,13,124,0,106,2,
- 124,4,131,2,125,8,124,0,106,14,68,0,93,29,92,2,
- 125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,8,
- 124,11,131,2,125,12,116,15,124,12,131,1,114,103,124,0,
- 160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,5,
- 2,0,1,0,83,0,113,74,116,17,124,8,131,1,125,3,
- 124,0,106,14,68,0,93,55,92,2,125,9,125,10,122,10,
- 116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,12,
- 87,0,110,11,4,0,116,18,121,136,1,0,1,0,1,0,
- 89,0,1,0,100,6,83,0,119,0,116,19,106,20,100,7,
- 124,12,100,3,100,8,141,3,1,0,124,7,124,9,23,0,
- 124,6,118,0,114,166,116,15,124,12,131,1,114,166,124,0,
- 160,16,124,10,124,1,124,12,100,6,124,2,161,5,2,0,
- 1,0,83,0,113,111,124,3,114,187,116,19,160,20,100,9,
- 124,8,161,2,1,0,116,19,160,21,124,1,100,6,161,2,
- 125,13,124,8,103,1,124,13,95,22,124,13,83,0,100,6,
- 83,0,41,10,122,111,84,114,121,32,116,111,32,102,105,110,
- 100,32,97,32,115,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,116,104,101,32,109,97,116,99,104,105,110,103,
- 32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,105,
- 102,32,110,111,116,32,102,111,117,110,100,46,10,32,32,32,
- 32,32,32,32,32,70,114,97,0,0,0,114,44,0,0,0,
- 114,130,0,0,0,114,236,0,0,0,78,122,9,116,114,121,
- 105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,
- 105,116,121,122,25,112,111,115,115,105,98,108,101,32,110,97,
- 109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,23,
- 114,104,0,0,0,114,75,0,0,0,114,65,0,0,0,114,
- 18,0,0,0,114,82,0,0,0,114,35,1,0,0,114,76,
- 0,0,0,114,97,1,0,0,218,11,95,102,105,108,108,95,
- 99,97,99,104,101,114,21,0,0,0,114,100,1,0,0,114,
- 131,0,0,0,114,99,1,0,0,114,67,0,0,0,114,96,
- 1,0,0,114,80,0,0,0,114,91,1,0,0,114,83,0,
- 0,0,114,111,0,0,0,114,159,0,0,0,114,173,0,0,
- 0,114,207,0,0,0,114,202,0,0,0,41,14,114,143,0,
- 0,0,114,163,0,0,0,114,225,0,0,0,90,12,105,115,
- 95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,108,
- 95,109,111,100,117,108,101,114,193,0,0,0,90,5,99,97,
- 99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,108,
- 101,90,9,98,97,115,101,95,112,97,116,104,114,44,1,0,
- 0,114,211,0,0,0,90,13,105,110,105,116,95,102,105,108,
- 101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,104,
- 114,210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,226,0,0,0,247,5,0,0,115,86,0,
- 0,0,4,5,14,1,2,1,24,1,12,1,8,1,2,255,
- 10,2,8,1,6,1,6,2,6,1,10,1,6,2,4,1,
- 8,2,12,1,14,1,8,1,10,1,8,1,24,1,2,255,
- 8,5,14,2,2,1,20,1,12,1,8,1,2,255,16,2,
- 12,1,8,1,10,1,4,1,8,255,2,128,4,2,12,1,
- 12,1,8,1,4,1,4,1,122,20,70,105,108,101,70,105,
- 110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,
- 0,0,0,67,0,0,0,115,192,0,0,0,124,0,106,0,
- 125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,3,
- 161,0,161,1,125,2,87,0,110,14,4,0,116,4,116,5,
- 116,6,102,3,121,28,1,0,1,0,1,0,103,0,125,2,
- 89,0,110,1,119,0,116,7,106,8,160,9,100,1,161,1,
- 115,41,116,10,124,2,131,1,124,0,95,11,110,37,116,10,
- 131,0,125,3,124,2,68,0,93,28,125,4,124,4,160,12,
- 100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,67,
- 100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,8,
- 110,2,124,5,125,8,124,3,160,15,124,8,161,1,1,0,
- 113,46,124,3,124,0,95,11,116,7,106,8,160,9,116,16,
- 161,1,114,94,100,4,100,5,132,0,124,2,68,0,131,1,
- 124,0,95,17,100,6,83,0,100,6,83,0,41,7,122,68,
- 70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,111,
- 102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,117,
- 108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,115,
- 32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,116,
- 111,114,121,46,114,14,0,0,0,114,97,0,0,0,114,88,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,0,
- 0,104,0,124,0,93,6,125,1,124,1,160,0,161,0,146,
- 2,113,2,83,0,114,7,0,0,0,41,1,114,131,0,0,
- 0,41,2,114,5,0,0,0,90,2,102,110,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,13,0,0,0,
- 71,6,0,0,115,2,0,0,0,20,0,122,41,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,115,101,
- 116,99,111,109,112,62,78,41,18,114,65,0,0,0,114,18,
- 0,0,0,90,7,108,105,115,116,100,105,114,114,82,0,0,
- 0,114,85,1,0,0,218,15,80,101,114,109,105,115,115,105,
- 111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,
- 101,99,116,111,114,121,69,114,114,111,114,114,15,0,0,0,
- 114,25,0,0,0,114,26,0,0,0,114,98,1,0,0,114,
- 99,1,0,0,114,126,0,0,0,114,89,0,0,0,114,131,
- 0,0,0,218,3,97,100,100,114,27,0,0,0,114,100,1,
- 0,0,41,9,114,143,0,0,0,114,65,0,0,0,90,8,
- 99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,95,
- 115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,
- 70,1,0,0,114,141,0,0,0,114,54,1,0,0,114,44,
- 1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,102,1,0,
- 0,42,6,0,0,115,38,0,0,0,6,2,2,1,22,1,
- 18,1,8,3,2,253,12,6,12,1,6,7,8,1,16,1,
- 4,1,18,1,4,2,12,1,6,1,12,1,20,1,4,255,
- 122,22,70,105,108,101,70,105,110,100,101,114,46,95,102,105,
- 108,108,95,99,97,99,104,101,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,7,0,0,
- 0,115,18,0,0,0,135,0,135,1,102,2,100,1,100,2,
- 132,8,125,2,124,2,83,0,41,4,97,20,1,0,0,65,
- 32,99,108,97,115,115,32,109,101,116,104,111,100,32,119,104,
- 105,99,104,32,114,101,116,117,114,110,115,32,97,32,99,108,
- 111,115,117,114,101,32,116,111,32,117,115,101,32,111,110,32,
- 115,121,115,46,112,97,116,104,95,104,111,111,107,10,32,32,
- 32,32,32,32,32,32,119,104,105,99,104,32,119,105,108,108,
- 32,114,101,116,117,114,110,32,97,110,32,105,110,115,116,97,
- 110,99,101,32,117,115,105,110,103,32,116,104,101,32,115,112,
- 101,99,105,102,105,101,100,32,108,111,97,100,101,114,115,32,
- 97,110,100,32,116,104,101,32,112,97,116,104,10,32,32,32,
- 32,32,32,32,32,99,97,108,108,101,100,32,111,110,32,116,
- 104,101,32,99,108,111,115,117,114,101,46,10,10,32,32,32,
- 32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,104,
- 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
- 108,111,115,117,114,101,32,105,115,32,110,111,116,32,97,32,
- 100,105,114,101,99,116,111,114,121,44,32,73,109,112,111,114,
- 116,69,114,114,111,114,32,105,115,10,32,32,32,32,32,32,
- 32,32,114,97,105,115,101,100,46,10,10,32,32,32,32,32,
- 32,32,32,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,4,0,0,0,19,0,0,0,115,36,0,0,
- 0,116,0,124,0,131,1,115,10,116,1,100,1,124,0,100,
- 2,141,2,130,1,136,0,124,0,103,1,136,1,162,1,82,
- 0,142,0,83,0,41,4,122,45,80,97,116,104,32,104,111,
- 111,107,32,102,111,114,32,105,109,112,111,114,116,108,105,98,
- 46,109,97,99,104,105,110,101,114,121,46,70,105,108,101,70,
- 105,110,100,101,114,46,122,30,111,110,108,121,32,100,105,114,
- 101,99,116,111,114,105,101,115,32,97,114,101,32,115,117,112,
- 112,111,114,116,101,100,114,71,0,0,0,78,41,2,114,83,
+ 0,3,0,0,0,67,0,0,0,243,20,0,0,0,116,0,
+ 124,0,106,1,131,1,116,0,124,0,106,2,131,1,65,0,
+ 83,0,114,69,0,0,0,169,3,218,4,104,97,115,104,114,
+ 141,0,0,0,114,65,0,0,0,169,1,114,143,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 8,95,95,104,97,115,104,95,95,26,4,0,0,243,2,0,
+ 0,0,20,1,122,19,70,105,108,101,76,111,97,100,101,114,
+ 46,95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,
+ 0,0,115,16,0,0,0,116,0,116,1,124,0,131,2,160,
+ 2,124,1,161,1,83,0,41,1,122,100,76,111,97,100,32,
+ 97,32,109,111,100,117,108,101,32,102,114,111,109,32,97,32,
+ 102,105,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
+ 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
+ 112,114,101,99,97,116,101,100,46,32,32,85,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,10,32,32,32,32,32,32,32,32,41,
+ 3,218,5,115,117,112,101,114,114,11,1,0,0,114,248,0,
+ 0,0,114,247,0,0,0,169,1,114,14,1,0,0,114,7,
+ 0,0,0,114,8,0,0,0,114,248,0,0,0,29,4,0,
+ 0,115,2,0,0,0,16,10,122,22,70,105,108,101,76,111,
+ 97,100,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,2,0,0,
+ 0,1,0,0,0,67,0,0,0,243,6,0,0,0,124,0,
+ 106,0,83,0,169,1,122,58,82,101,116,117,114,110,32,116,
+ 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,115,
+ 111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,111,
+ 117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,101,
+ 114,46,114,71,0,0,0,114,247,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,203,0,0,0,
+ 41,4,0,0,243,2,0,0,0,6,3,122,23,70,105,108,
+ 101,76,111,97,100,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,3,0,0,0,8,0,0,0,67,0,0,0,115,128,0,
+ 0,0,116,0,124,0,116,1,116,2,102,2,131,2,114,36,
+ 116,3,160,4,116,5,124,1,131,1,161,1,143,12,125,2,
+ 124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,
+ 131,3,1,0,83,0,49,0,115,29,119,1,1,0,1,0,
+ 1,0,89,0,1,0,100,1,83,0,116,3,160,7,124,1,
+ 100,2,161,2,143,12,125,2,124,2,160,6,161,0,87,0,
+ 2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0,
+ 115,57,119,1,1,0,1,0,1,0,89,0,1,0,100,1,
+ 83,0,41,3,122,39,82,101,116,117,114,110,32,116,104,101,
+ 32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32,
+ 97,115,32,114,97,119,32,98,121,116,101,115,46,78,218,1,
+ 114,41,8,114,185,0,0,0,114,249,0,0,0,218,19,69,
+ 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,
+ 101,114,114,91,0,0,0,90,9,111,112,101,110,95,99,111,
+ 100,101,114,109,0,0,0,90,4,114,101,97,100,114,92,0,
+ 0,0,41,3,114,143,0,0,0,114,65,0,0,0,114,94,
+ 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,255,0,0,0,46,4,0,0,115,14,0,0,0,
+ 14,2,16,1,6,1,36,255,14,3,6,1,36,255,122,19,
+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
+ 97,116,97,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,20,0,0,
+ 0,100,1,100,2,108,0,109,1,125,2,1,0,124,2,124,
+ 0,131,1,83,0,41,3,78,114,0,0,0,0,41,1,218,
+ 10,70,105,108,101,82,101,97,100,101,114,41,2,218,17,105,
+ 109,112,111,114,116,108,105,98,46,114,101,97,100,101,114,115,
+ 114,31,1,0,0,41,3,114,143,0,0,0,114,244,0,0,
+ 0,114,31,1,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,218,19,103,101,116,95,114,101,115,111,117,
+ 114,99,101,95,114,101,97,100,101,114,55,4,0,0,115,4,
+ 0,0,0,12,2,8,1,122,30,70,105,108,101,76,111,97,
+ 100,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
+ 95,114,101,97,100,101,114,41,13,114,150,0,0,0,114,149,
+ 0,0,0,114,151,0,0,0,114,152,0,0,0,114,236,0,
+ 0,0,114,16,1,0,0,114,22,1,0,0,114,160,0,0,
+ 0,114,248,0,0,0,114,203,0,0,0,114,255,0,0,0,
+ 114,33,1,0,0,90,13,95,95,99,108,97,115,115,99,101,
+ 108,108,95,95,114,7,0,0,0,114,7,0,0,0,114,25,
+ 1,0,0,114,8,0,0,0,114,11,1,0,0,11,4,0,
+ 0,115,24,0,0,0,8,0,4,2,8,3,8,6,8,4,
+ 2,3,14,1,2,11,10,1,8,4,2,9,18,1,114,11,
+ 1,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,46,0,0,
+ 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,
+ 3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,
+ 7,156,1,100,8,100,9,132,2,90,6,100,10,83,0,41,
+ 11,218,16,83,111,117,114,99,101,70,105,108,101,76,111,97,
+ 100,101,114,122,62,67,111,110,99,114,101,116,101,32,105,109,
+ 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
+ 83,111,117,114,99,101,76,111,97,100,101,114,32,117,115,105,
+ 110,103,32,116,104,101,32,102,105,108,101,32,115,121,115,116,
+ 101,109,46,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,3,0,0,0,67,0,0,0,115,22,0,0,
+ 0,116,0,124,1,131,1,125,2,124,2,106,1,124,2,106,
+ 2,100,1,156,2,83,0,41,2,122,33,82,101,116,117,114,
+ 110,32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,
+ 111,114,32,116,104,101,32,112,97,116,104,46,41,2,114,193,
+ 0,0,0,114,6,1,0,0,41,3,114,75,0,0,0,218,
+ 8,115,116,95,109,116,105,109,101,90,7,115,116,95,115,105,
+ 122,101,41,3,114,143,0,0,0,114,65,0,0,0,114,10,
+ 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,252,0,0,0,65,4,0,0,115,4,0,0,0,
+ 8,2,14,1,122,27,83,111,117,114,99,101,70,105,108,101,
+ 76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,
+ 115,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,116,
+ 0,124,1,131,1,125,4,124,0,106,1,124,2,124,3,124,
+ 4,100,1,141,3,83,0,41,2,78,169,1,218,5,95,109,
+ 111,100,101,41,2,114,139,0,0,0,114,253,0,0,0,41,
+ 5,114,143,0,0,0,114,134,0,0,0,114,132,0,0,0,
+ 114,41,0,0,0,114,78,0,0,0,114,7,0,0,0,114,
+ 7,0,0,0,114,8,0,0,0,114,254,0,0,0,70,4,
+ 0,0,115,4,0,0,0,8,2,16,1,122,32,83,111,117,
+ 114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,99,
+ 97,99,104,101,95,98,121,116,101,99,111,100,101,114,87,0,
+ 0,0,114,36,1,0,0,99,3,0,0,0,0,0,0,0,
+ 1,0,0,0,9,0,0,0,11,0,0,0,67,0,0,0,
+ 115,254,0,0,0,116,0,124,1,131,1,92,2,125,4,125,
+ 5,103,0,125,6,124,4,114,31,116,1,124,4,131,1,115,
+ 31,116,0,124,4,131,1,92,2,125,4,125,7,124,6,160,
+ 2,124,7,161,1,1,0,124,4,114,31,116,1,124,4,131,
+ 1,114,14,116,3,124,6,131,1,68,0,93,49,125,7,116,
+ 4,124,4,124,7,131,2,125,4,122,7,116,5,160,6,124,
+ 4,161,1,1,0,87,0,113,35,4,0,116,7,121,58,1,
+ 0,1,0,1,0,89,0,113,35,4,0,116,8,121,84,1,
+ 0,125,8,1,0,122,15,116,9,160,10,100,1,124,4,124,
+ 8,161,3,1,0,87,0,89,0,100,2,125,8,126,8,1,
+ 0,100,2,83,0,100,2,125,8,126,8,119,1,119,0,122,
+ 15,116,11,124,1,124,2,124,3,131,3,1,0,116,9,160,
+ 10,100,3,124,1,161,2,1,0,87,0,100,2,83,0,4,
+ 0,116,8,121,126,1,0,125,8,1,0,122,14,116,9,160,
+ 10,100,1,124,1,124,8,161,3,1,0,87,0,89,0,100,
+ 2,125,8,126,8,100,2,83,0,100,2,125,8,126,8,119,
+ 1,119,0,41,4,122,27,87,114,105,116,101,32,98,121,116,
+ 101,115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,
+ 101,46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,
+ 101,97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,
+ 122,12,99,114,101,97,116,101,100,32,123,33,114,125,41,12,
+ 114,74,0,0,0,114,83,0,0,0,114,61,0,0,0,218,
+ 8,114,101,118,101,114,115,101,100,114,67,0,0,0,114,18,
+ 0,0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,
+ 69,120,105,115,116,115,69,114,114,111,114,114,76,0,0,0,
+ 114,159,0,0,0,114,173,0,0,0,114,95,0,0,0,41,
+ 9,114,143,0,0,0,114,65,0,0,0,114,41,0,0,0,
+ 114,37,1,0,0,218,6,112,97,114,101,110,116,114,120,0,
+ 0,0,114,63,0,0,0,114,68,0,0,0,114,0,1,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 114,253,0,0,0,75,4,0,0,115,56,0,0,0,12,2,
+ 4,1,12,2,12,1,10,1,12,254,12,4,10,1,2,1,
+ 14,1,12,1,4,2,14,1,6,3,4,1,4,255,16,2,
+ 8,128,2,251,2,6,12,1,18,1,14,1,8,2,2,1,
+ 18,255,8,128,2,254,122,25,83,111,117,114,99,101,70,105,
+ 108,101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,
+ 97,78,41,7,114,150,0,0,0,114,149,0,0,0,114,151,
+ 0,0,0,114,152,0,0,0,114,252,0,0,0,114,254,0,
+ 0,0,114,253,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,34,1,0,0,
+ 61,4,0,0,115,10,0,0,0,8,0,4,2,8,2,8,
+ 5,18,5,114,34,1,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
+ 0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+ 90,5,100,6,83,0,41,7,218,20,83,111,117,114,99,101,
+ 108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45,
+ 76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110,
+ 100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32,
+ 102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
+ 0,0,67,0,0,0,115,68,0,0,0,124,0,160,0,124,
+ 1,161,1,125,2,124,0,160,1,124,2,161,1,125,3,124,
+ 1,124,2,100,1,156,2,125,4,116,2,124,3,124,1,124,
+ 4,131,3,1,0,116,3,116,4,124,3,131,1,100,2,100,
+ 0,133,2,25,0,124,1,124,2,100,3,141,3,83,0,41,
+ 4,78,114,183,0,0,0,114,169,0,0,0,41,2,114,141,
+ 0,0,0,114,132,0,0,0,41,5,114,203,0,0,0,114,
+ 255,0,0,0,114,176,0,0,0,114,189,0,0,0,114,7,
+ 1,0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,
+ 65,0,0,0,114,41,0,0,0,114,175,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,
+ 0,0,110,4,0,0,115,22,0,0,0,10,1,10,1,2,
+ 4,2,1,6,254,12,4,2,1,14,1,2,1,2,1,6,
+ 253,122,29,83,111,117,114,99,101,108,101,115,115,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,1,0,0,0,67,0,0,0,114,23,0,0,0,41,2,
+ 122,39,82,101,116,117,114,110,32,78,111,110,101,32,97,115,
+ 32,116,104,101,114,101,32,105,115,32,110,111,32,115,111,117,
+ 114,99,101,32,99,111,100,101,46,78,114,7,0,0,0,114,
+ 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,1,1,0,0,126,4,0,0,114,24,0,0,
+ 0,122,31,83,111,117,114,99,101,108,101,115,115,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,78,41,6,114,150,0,0,0,114,149,0,0,0,114,
+ 151,0,0,0,114,152,0,0,0,114,241,0,0,0,114,1,
+ 1,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,
+ 0,0,114,8,0,0,0,114,41,1,0,0,106,4,0,0,
+ 115,8,0,0,0,8,0,4,2,8,2,12,16,114,41,1,
+ 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,92,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
+ 132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,
+ 132,0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,
+ 132,0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,
+ 132,0,90,10,100,16,100,17,132,0,90,11,101,12,100,18,
+ 100,19,132,0,131,1,90,13,100,20,83,0,41,21,114,30,
+ 1,0,0,122,93,76,111,97,100,101,114,32,102,111,114,32,
+ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+ 115,46,10,10,32,32,32,32,84,104,101,32,99,111,110,115,
+ 116,114,117,99,116,111,114,32,105,115,32,100,101,115,105,103,
+ 110,101,100,32,116,111,32,119,111,114,107,32,119,105,116,104,
+ 32,70,105,108,101,70,105,110,100,101,114,46,10,10,32,32,
+ 32,32,99,3,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,
+ 124,1,124,0,95,0,124,2,124,0,95,1,100,0,83,0,
+ 114,69,0,0,0,114,183,0,0,0,41,3,114,143,0,0,
+ 0,114,141,0,0,0,114,65,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,236,0,0,0,139,
+ 4,0,0,115,4,0,0,0,6,1,10,1,122,28,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+ 114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
+ 0,0,0,114,12,1,0,0,114,69,0,0,0,114,13,1,
+ 0,0,114,15,1,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,16,1,0,0,143,4,0,0,114,
+ 17,1,0,0,122,26,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+ 0,3,0,0,0,67,0,0,0,114,18,1,0,0,114,69,
+ 0,0,0,114,19,1,0,0,114,21,1,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,22,1,0,
+ 0,147,4,0,0,114,23,1,0,0,122,28,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+ 95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
+ 0,115,36,0,0,0,116,0,160,1,116,2,106,3,124,1,
+ 161,2,125,2,116,0,160,4,100,1,124,1,106,5,124,0,
+ 106,6,161,3,1,0,124,2,83,0,41,2,122,38,67,114,
+ 101,97,116,101,32,97,110,32,117,110,105,116,105,97,108,105,
+ 122,101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,
+ 100,117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,
+ 109,111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,
+ 101,100,32,102,114,111,109,32,123,33,114,125,41,7,114,159,
+ 0,0,0,114,242,0,0,0,114,187,0,0,0,90,14,99,
+ 114,101,97,116,101,95,100,121,110,97,109,105,99,114,173,0,
+ 0,0,114,141,0,0,0,114,65,0,0,0,41,3,114,143,
+ 0,0,0,114,210,0,0,0,114,244,0,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,239,0,0,
+ 0,150,4,0,0,115,14,0,0,0,4,2,6,1,4,255,
+ 6,2,8,1,4,255,4,2,122,33,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,
+ 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
+ 67,0,0,0,115,36,0,0,0,116,0,160,1,116,2,106,
+ 3,124,1,161,2,1,0,116,0,160,4,100,1,124,0,106,
+ 5,124,0,106,6,161,3,1,0,100,2,83,0,41,3,122,
+ 30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101,
+ 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,
+ 40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+ 101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32,
+ 102,114,111,109,32,123,33,114,125,78,41,7,114,159,0,0,
+ 0,114,242,0,0,0,114,187,0,0,0,90,12,101,120,101,
+ 99,95,100,121,110,97,109,105,99,114,173,0,0,0,114,141,
+ 0,0,0,114,65,0,0,0,169,2,114,143,0,0,0,114,
+ 244,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,245,0,0,0,158,4,0,0,115,8,0,0,
+ 0,14,2,6,1,8,1,8,255,122,31,69,120,116,101,110,
+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,101,
+ 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,3,
+ 0,0,0,115,36,0,0,0,116,0,124,0,106,1,131,1,
+ 100,1,25,0,137,0,116,2,135,0,102,1,100,2,100,3,
+ 132,8,116,3,68,0,131,1,131,1,83,0,41,4,122,49,
+ 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,116,
+ 104,101,32,101,120,116,101,110,115,105,111,110,32,109,111,100,
+ 117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,
+ 46,114,3,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,4,0,0,0,51,0,0,0,115,
+ 28,0,0,0,129,0,124,0,93,9,125,1,136,0,100,0,
+ 124,1,23,0,107,2,86,0,1,0,113,2,100,1,83,0,
+ 41,2,114,236,0,0,0,78,114,7,0,0,0,169,2,114,
+ 5,0,0,0,218,6,115,117,102,102,105,120,169,1,90,9,
+ 102,105,108,101,95,110,97,109,101,114,7,0,0,0,114,8,
+ 0,0,0,114,9,0,0,0,167,4,0,0,115,8,0,0,
+ 0,2,128,4,0,2,1,20,255,122,49,69,120,116,101,110,
+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,
+ 115,95,112,97,99,107,97,103,101,46,60,108,111,99,97,108,
+ 115,62,46,60,103,101,110,101,120,112,114,62,41,4,114,74,
+ 0,0,0,114,65,0,0,0,218,3,97,110,121,114,232,0,
+ 0,0,114,247,0,0,0,114,7,0,0,0,114,45,1,0,
+ 0,114,8,0,0,0,114,206,0,0,0,164,4,0,0,115,
+ 8,0,0,0,14,2,12,1,2,1,8,255,122,30,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,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,2,0,0,0,1,0,0,
+ 0,67,0,0,0,114,23,0,0,0,41,2,122,63,82,101,
+ 116,117,114,110,32,78,111,110,101,32,97,115,32,97,110,32,
+ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+ 32,99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,
+ 32,99,111,100,101,32,111,98,106,101,99,116,46,78,114,7,
+ 0,0,0,114,247,0,0,0,114,7,0,0,0,114,7,0,
+ 0,0,114,8,0,0,0,114,241,0,0,0,170,4,0,0,
+ 114,24,0,0,0,122,28,69,120,116,101,110,115,105,111,110,
+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,
+ 111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,114,23,0,0,
+ 0,41,2,122,53,82,101,116,117,114,110,32,78,111,110,101,
+ 32,97,115,32,101,120,116,101,110,115,105,111,110,32,109,111,
+ 100,117,108,101,115,32,104,97,118,101,32,110,111,32,115,111,
+ 117,114,99,101,32,99,111,100,101,46,78,114,7,0,0,0,
+ 114,247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,114,1,1,0,0,174,4,0,0,114,24,0,
+ 0,0,122,30,69,120,116,101,110,115,105,111,110,70,105,108,
+ 101,76,111,97,100,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,2,
+ 0,0,0,1,0,0,0,67,0,0,0,114,26,1,0,0,
+ 114,27,1,0,0,114,71,0,0,0,114,247,0,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,203,
+ 0,0,0,178,4,0,0,114,28,1,0,0,122,32,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+ 114,46,103,101,116,95,102,105,108,101,110,97,109,101,78,41,
+ 14,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,
+ 114,152,0,0,0,114,236,0,0,0,114,16,1,0,0,114,
+ 22,1,0,0,114,239,0,0,0,114,245,0,0,0,114,206,
+ 0,0,0,114,241,0,0,0,114,1,1,0,0,114,160,0,
+ 0,0,114,203,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,30,1,0,0,
+ 131,4,0,0,115,24,0,0,0,8,0,4,2,8,6,8,
+ 4,8,4,8,3,8,8,8,6,8,6,8,4,2,4,14,
+ 1,114,30,1,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,
+ 104,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
+ 100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,
+ 100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9,
+ 100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11,
+ 100,18,100,19,132,0,90,12,100,20,100,21,132,0,90,13,
+ 100,22,100,23,132,0,90,14,100,24,83,0,41,25,218,14,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,97,38,
+ 1,0,0,82,101,112,114,101,115,101,110,116,115,32,97,32,
+ 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103,
+ 101,39,115,32,112,97,116,104,46,32,32,73,116,32,117,115,
+ 101,115,32,116,104,101,32,109,111,100,117,108,101,32,110,97,
+ 109,101,10,32,32,32,32,116,111,32,102,105,110,100,32,105,
+ 116,115,32,112,97,114,101,110,116,32,109,111,100,117,108,101,
+ 44,32,97,110,100,32,102,114,111,109,32,116,104,101,114,101,
+ 32,105,116,32,108,111,111,107,115,32,117,112,32,116,104,101,
+ 32,112,97,114,101,110,116,39,115,10,32,32,32,32,95,95,
+ 112,97,116,104,95,95,46,32,32,87,104,101,110,32,116,104,
+ 105,115,32,99,104,97,110,103,101,115,44,32,116,104,101,32,
+ 109,111,100,117,108,101,39,115,32,111,119,110,32,112,97,116,
+ 104,32,105,115,32,114,101,99,111,109,112,117,116,101,100,44,
+ 10,32,32,32,32,117,115,105,110,103,32,112,97,116,104,95,
+ 102,105,110,100,101,114,46,32,32,70,111,114,32,116,111,112,
+ 45,108,101,118,101,108,32,109,111,100,117,108,101,115,44,32,
+ 116,104,101,32,112,97,114,101,110,116,32,109,111,100,117,108,
+ 101,39,115,32,112,97,116,104,10,32,32,32,32,105,115,32,
+ 115,121,115,46,112,97,116,104,46,99,4,0,0,0,0,0,
+ 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,
+ 0,0,115,36,0,0,0,124,1,124,0,95,0,124,2,124,
+ 0,95,1,116,2,124,0,160,3,161,0,131,1,124,0,95,
+ 4,124,3,124,0,95,5,100,0,83,0,114,69,0,0,0,
+ 41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,104,
+ 114,136,0,0,0,218,16,95,103,101,116,95,112,97,114,101,
+ 110,116,95,112,97,116,104,218,17,95,108,97,115,116,95,112,
+ 97,114,101,110,116,95,112,97,116,104,218,12,95,112,97,116,
+ 104,95,102,105,110,100,101,114,169,4,114,143,0,0,0,114,
+ 141,0,0,0,114,65,0,0,0,90,11,112,97,116,104,95,
+ 102,105,110,100,101,114,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,236,0,0,0,191,4,0,0,115,8,
+ 0,0,0,6,1,6,1,14,1,10,1,122,23,95,78,97,
+ 109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,110,
+ 105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,124,0,106,0,160,1,100,1,161,1,92,3,125,1,
+ 125,2,125,3,124,2,100,2,107,2,114,15,100,3,83,0,
+ 124,1,100,4,102,2,83,0,41,5,122,62,82,101,116,117,
+ 114,110,115,32,97,32,116,117,112,108,101,32,111,102,32,40,
+ 112,97,114,101,110,116,45,109,111,100,117,108,101,45,110,97,
+ 109,101,44,32,112,97,114,101,110,116,45,112,97,116,104,45,
+ 97,116,116,114,45,110,97,109,101,41,114,97,0,0,0,114,
+ 10,0,0,0,41,2,114,15,0,0,0,114,65,0,0,0,
+ 90,8,95,95,112,97,116,104,95,95,41,2,114,48,1,0,
+ 0,114,104,0,0,0,41,4,114,143,0,0,0,114,40,1,
+ 0,0,218,3,100,111,116,90,2,109,101,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,23,95,102,105,110,
+ 100,95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,
+ 109,101,115,197,4,0,0,115,8,0,0,0,18,2,8,1,
+ 4,2,8,3,122,38,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,46,95,102,105,110,100,95,112,97,114,101,110,
+ 116,95,112,97,116,104,95,110,97,109,101,115,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
+ 0,67,0,0,0,115,28,0,0,0,124,0,160,0,161,0,
+ 92,2,125,1,125,2,116,1,116,2,106,3,124,1,25,0,
+ 124,2,131,2,83,0,114,69,0,0,0,41,4,114,55,1,
+ 0,0,114,155,0,0,0,114,15,0,0,0,218,7,109,111,
+ 100,117,108,101,115,41,3,114,143,0,0,0,90,18,112,97,
+ 114,101,110,116,95,109,111,100,117,108,101,95,110,97,109,101,
+ 90,14,112,97,116,104,95,97,116,116,114,95,110,97,109,101,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+ 50,1,0,0,207,4,0,0,115,4,0,0,0,12,1,16,
+ 1,122,31,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,103,101,116,95,112,97,114,101,110,116,95,112,97,
+ 116,104,99,1,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,4,0,0,0,67,0,0,0,115,80,0,0,0,
+ 116,0,124,0,160,1,161,0,131,1,125,1,124,1,124,0,
+ 106,2,107,3,114,37,124,0,160,3,124,0,106,4,124,1,
+ 161,2,125,2,124,2,100,0,117,1,114,34,124,2,106,5,
+ 100,0,117,0,114,34,124,2,106,6,114,34,124,2,106,6,
+ 124,0,95,7,124,1,124,0,95,2,124,0,106,7,83,0,
+ 114,69,0,0,0,41,8,114,136,0,0,0,114,50,1,0,
+ 0,114,51,1,0,0,114,52,1,0,0,114,48,1,0,0,
+ 114,164,0,0,0,114,202,0,0,0,114,49,1,0,0,41,
+ 3,114,143,0,0,0,90,11,112,97,114,101,110,116,95,112,
+ 97,116,104,114,210,0,0,0,114,7,0,0,0,114,7,0,
+ 0,0,114,8,0,0,0,218,12,95,114,101,99,97,108,99,
+ 117,108,97,116,101,211,4,0,0,115,16,0,0,0,12,2,
+ 10,1,14,1,18,3,6,1,8,1,6,1,6,1,122,27,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+ 67,0,0,0,243,12,0,0,0,116,0,124,0,160,1,161,
+ 0,131,1,83,0,114,69,0,0,0,41,2,218,4,105,116,
+ 101,114,114,57,1,0,0,114,21,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,105,
+ 116,101,114,95,95,224,4,0,0,243,2,0,0,0,12,1,
+ 122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
+ 46,95,95,105,116,101,114,95,95,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
+ 0,0,115,12,0,0,0,124,0,160,0,161,0,124,1,25,
+ 0,83,0,114,69,0,0,0,169,1,114,57,1,0,0,41,
+ 2,114,143,0,0,0,218,5,105,110,100,101,120,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,95,
+ 103,101,116,105,116,101,109,95,95,227,4,0,0,114,61,1,
+ 0,0,122,26,95,78,97,109,101,115,112,97,99,101,80,97,
+ 116,104,46,95,95,103,101,116,105,116,101,109,95,95,99,3,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
+ 0,0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,
+ 106,0,124,1,60,0,100,0,83,0,114,69,0,0,0,41,
+ 1,114,49,1,0,0,41,3,114,143,0,0,0,114,63,1,
+ 0,0,114,65,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,218,11,95,95,115,101,116,105,116,101,
+ 109,95,95,230,4,0,0,115,2,0,0,0,14,1,122,26,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 95,115,101,116,105,116,101,109,95,95,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
+ 0,0,0,114,58,1,0,0,114,69,0,0,0,41,2,114,
+ 4,0,0,0,114,57,1,0,0,114,21,1,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,218,7,95,
+ 95,108,101,110,95,95,233,4,0,0,114,61,1,0,0,122,
+ 22,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+ 95,95,108,101,110,95,95,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 243,12,0,0,0,100,1,160,0,124,0,106,1,161,1,83,
+ 0,41,2,78,122,20,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,40,123,33,114,125,41,41,2,114,89,0,0,
+ 0,114,49,1,0,0,114,21,1,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,8,95,95,114,101,
+ 112,114,95,95,236,4,0,0,114,61,1,0,0,122,23,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+ 114,101,112,114,95,95,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,
+ 12,0,0,0,124,1,124,0,160,0,161,0,118,0,83,0,
+ 114,69,0,0,0,114,62,1,0,0,169,2,114,143,0,0,
+ 0,218,4,105,116,101,109,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,218,12,95,95,99,111,110,116,97,105,
+ 110,115,95,95,239,4,0,0,114,61,1,0,0,122,27,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+ 99,111,110,116,97,105,110,115,95,95,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,124,0,106,0,160,1,124,1,
+ 161,1,1,0,100,0,83,0,114,69,0,0,0,41,2,114,
+ 49,1,0,0,114,61,0,0,0,114,69,1,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,61,0,
+ 0,0,242,4,0,0,243,2,0,0,0,16,1,122,21,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,
+ 112,101,110,100,78,41,15,114,150,0,0,0,114,149,0,0,
+ 0,114,151,0,0,0,114,152,0,0,0,114,236,0,0,0,
+ 114,55,1,0,0,114,50,1,0,0,114,57,1,0,0,114,
+ 60,1,0,0,114,64,1,0,0,114,65,1,0,0,114,66,
+ 1,0,0,114,68,1,0,0,114,71,1,0,0,114,61,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,47,1,0,0,184,4,0,0,115,
+ 26,0,0,0,8,0,4,1,8,6,8,6,8,10,8,4,
+ 8,13,8,3,8,3,8,3,8,3,8,3,12,3,114,47,
+ 1,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,88,0,0,
+ 0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,
+ 3,101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,
+ 6,132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,
+ 10,132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,
+ 14,132,0,90,10,100,15,100,16,132,0,90,11,100,17,100,
+ 18,132,0,90,12,100,19,83,0,41,20,218,16,95,78,97,
+ 109,101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,
+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,
+ 0,0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,
+ 2,124,3,131,3,124,0,95,1,100,0,83,0,114,69,0,
+ 0,0,41,2,114,47,1,0,0,114,49,1,0,0,114,53,
+ 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,236,0,0,0,248,4,0,0,115,2,0,0,0,
+ 18,1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,
+ 97,100,101,114,46,95,95,105,110,105,116,95,95,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,24,0,0,0,116,0,160,1,100,
+ 1,116,2,161,2,1,0,100,2,160,3,124,0,106,4,161,
+ 1,83,0,41,3,122,115,82,101,116,117,114,110,32,114,101,
+ 112,114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,
+ 101,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
+ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
+ 97,116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,
+ 116,32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,
+ 32,116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,
+ 10,10,32,32,32,32,32,32,32,32,122,82,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,100,
+ 117,108,101,95,114,101,112,114,40,41,32,105,115,32,100,101,
+ 112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97,
+ 116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32,
+ 105,110,32,80,121,116,104,111,110,32,51,46,49,50,122,25,
+ 60,109,111,100,117,108,101,32,123,33,114,125,32,40,110,97,
+ 109,101,115,112,97,99,101,41,62,41,5,114,99,0,0,0,
+ 114,100,0,0,0,114,101,0,0,0,114,89,0,0,0,114,
+ 150,0,0,0,41,1,114,244,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,218,11,109,111,100,117,
+ 108,101,95,114,101,112,114,251,4,0,0,115,8,0,0,0,
+ 6,7,2,1,4,255,12,2,122,28,95,78,97,109,101,115,
+ 112,97,99,101,76,111,97,100,101,114,46,109,111,100,117,108,
+ 101,95,114,101,112,114,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114,
+ 23,0,0,0,41,2,78,84,114,7,0,0,0,114,247,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,206,0,0,0,6,5,0,0,243,2,0,0,0,4,
+ 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,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,2,0,0,0,1,
+ 0,0,0,67,0,0,0,114,23,0,0,0,41,2,78,114,
+ 10,0,0,0,114,7,0,0,0,114,247,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,1,1,
+ 0,0,9,5,0,0,114,75,1,0,0,122,27,95,78,97,
+ 109,101,115,112,97,99,101,76,111,97,100,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,2,0,0,0,6,0,0,0,67,0,0,
+ 0,115,16,0,0,0,116,0,100,1,100,2,100,3,100,4,
+ 100,5,141,4,83,0,41,6,78,114,10,0,0,0,122,8,
+ 60,115,116,114,105,110,103,62,114,243,0,0,0,84,41,1,
+ 114,3,1,0,0,41,1,114,4,1,0,0,114,247,0,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 114,241,0,0,0,12,5,0,0,114,72,1,0,0,122,25,
+ 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
+ 46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+ 0,0,114,23,0,0,0,114,237,0,0,0,114,7,0,0,
+ 0,114,238,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,239,0,0,0,15,5,0,0,114,240,
+ 0,0,0,122,30,95,78,97,109,101,115,112,97,99,101,76,
+ 111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,
+ 117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+ 0,100,0,83,0,114,69,0,0,0,114,7,0,0,0,114,
+ 42,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,245,0,0,0,18,5,0,0,114,75,1,0,
+ 0,122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,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,26,0,0,0,116,0,160,
+ 1,100,1,124,0,106,2,161,2,1,0,116,0,160,3,124,
+ 0,124,1,161,2,83,0,41,2,122,98,76,111,97,100,32,
+ 97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117,
+ 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
+ 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+ 101,99,97,116,101,100,46,32,32,85,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,10,32,32,32,32,32,32,32,32,122,38,110,
+ 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32,
+ 108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104,
+ 32,123,33,114,125,41,4,114,159,0,0,0,114,173,0,0,
+ 0,114,49,1,0,0,114,246,0,0,0,114,247,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+ 248,0,0,0,21,5,0,0,115,8,0,0,0,6,7,4,
+ 1,4,255,12,3,122,28,95,78,97,109,101,115,112,97,99,
+ 101,76,111,97,100,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,2,0,0,0,67,0,0,0,115,22,0,0,
+ 0,100,1,100,2,108,0,109,1,125,2,1,0,124,2,124,
+ 0,106,2,131,1,83,0,41,3,78,114,0,0,0,0,41,
+ 1,218,15,78,97,109,101,115,112,97,99,101,82,101,97,100,
+ 101,114,41,3,114,32,1,0,0,114,76,1,0,0,114,49,
+ 1,0,0,41,3,114,143,0,0,0,114,244,0,0,0,114,
+ 76,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,33,1,0,0,33,5,0,0,115,4,0,0,
+ 0,12,1,10,1,122,36,95,78,97,109,101,115,112,97,99,
+ 101,76,111,97,100,101,114,46,103,101,116,95,114,101,115,111,
+ 117,114,99,101,95,114,101,97,100,101,114,78,41,13,114,150,
+ 0,0,0,114,149,0,0,0,114,151,0,0,0,114,236,0,
+ 0,0,114,233,0,0,0,114,74,1,0,0,114,206,0,0,
+ 0,114,1,1,0,0,114,241,0,0,0,114,239,0,0,0,
+ 114,245,0,0,0,114,248,0,0,0,114,33,1,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,73,1,0,0,247,4,0,0,115,22,0,0,
+ 0,8,0,8,1,2,3,10,1,8,10,8,3,8,3,8,
+ 3,8,3,8,3,12,12,114,73,1,0,0,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,118,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,101,4,100,2,100,3,132,0,131,1,
+ 90,5,101,4,100,4,100,5,132,0,131,1,90,6,101,7,
+ 100,6,100,7,132,0,131,1,90,8,101,7,100,8,100,9,
+ 132,0,131,1,90,9,101,7,100,19,100,11,100,12,132,1,
+ 131,1,90,10,101,7,100,20,100,13,100,14,132,1,131,1,
+ 90,11,101,7,100,19,100,15,100,16,132,1,131,1,90,12,
+ 101,4,100,17,100,18,132,0,131,1,90,13,100,10,83,0,
+ 41,21,218,10,80,97,116,104,70,105,110,100,101,114,122,62,
+ 77,101,116,97,32,112,97,116,104,32,102,105,110,100,101,114,
+ 32,102,111,114,32,115,121,115,46,112,97,116,104,32,97,110,
+ 100,32,112,97,99,107,97,103,101,32,95,95,112,97,116,104,
+ 95,95,32,97,116,116,114,105,98,117,116,101,115,46,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,67,0,0,0,115,64,0,0,0,116,0,116,1,
+ 106,2,160,3,161,0,131,1,68,0,93,22,92,2,125,0,
+ 125,1,124,1,100,1,117,0,114,20,116,1,106,2,124,0,
+ 61,0,113,7,116,4,124,1,100,2,131,2,114,29,124,1,
+ 160,5,161,0,1,0,113,7,100,1,83,0,41,3,122,125,
+ 67,97,108,108,32,116,104,101,32,105,110,118,97,108,105,100,
+ 97,116,101,95,99,97,99,104,101,115,40,41,32,109,101,116,
+ 104,111,100,32,111,110,32,97,108,108,32,112,97,116,104,32,
+ 101,110,116,114,121,32,102,105,110,100,101,114,115,10,32,32,
+ 32,32,32,32,32,32,115,116,111,114,101,100,32,105,110,32,
+ 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
+ 114,95,99,97,99,104,101,115,32,40,119,104,101,114,101,32,
+ 105,109,112,108,101,109,101,110,116,101,100,41,46,78,218,17,
+ 105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,
+ 115,41,6,218,4,108,105,115,116,114,15,0,0,0,218,19,
+ 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
+ 99,104,101,218,5,105,116,101,109,115,114,153,0,0,0,114,
+ 78,1,0,0,41,2,114,141,0,0,0,218,6,102,105,110,
+ 100,101,114,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,78,1,0,0,44,5,0,0,115,14,0,0,0,
+ 22,4,8,1,10,1,10,1,8,1,2,128,4,252,122,28,
+ 80,97,116,104,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,1,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,9,0,0,
+ 0,67,0,0,0,115,76,0,0,0,116,0,106,1,100,1,
+ 117,1,114,14,116,0,106,1,115,14,116,2,160,3,100,2,
+ 116,4,161,2,1,0,116,0,106,1,68,0,93,18,125,1,
+ 122,7,124,1,124,0,131,1,87,0,2,0,1,0,83,0,
+ 4,0,116,5,121,35,1,0,1,0,1,0,89,0,113,17,
+ 119,0,100,1,83,0,41,3,122,46,83,101,97,114,99,104,
+ 32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,
+ 102,111,114,32,97,32,102,105,110,100,101,114,32,102,111,114,
+ 32,39,112,97,116,104,39,46,78,122,23,115,121,115,46,112,
+ 97,116,104,95,104,111,111,107,115,32,105,115,32,101,109,112,
+ 116,121,41,6,114,15,0,0,0,218,10,112,97,116,104,95,
+ 104,111,111,107,115,114,99,0,0,0,114,100,0,0,0,114,
+ 162,0,0,0,114,142,0,0,0,41,2,114,65,0,0,0,
+ 90,4,104,111,111,107,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,218,11,95,112,97,116,104,95,104,111,111,
+ 107,115,54,5,0,0,115,18,0,0,0,16,3,12,1,10,
+ 1,2,1,14,1,12,1,4,1,2,255,4,3,122,22,80,
+ 97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
+ 104,111,111,107,115,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,100,
+ 0,0,0,124,1,100,1,107,2,114,21,122,6,116,0,160,
+ 1,161,0,125,1,87,0,110,10,4,0,116,2,121,20,1,
+ 0,1,0,1,0,89,0,100,2,83,0,119,0,122,8,116,
+ 3,106,4,124,1,25,0,125,2,87,0,124,2,83,0,4,
+ 0,116,5,121,49,1,0,1,0,1,0,124,0,160,6,124,
+ 1,161,1,125,2,124,2,116,3,106,4,124,1,60,0,89,
+ 0,124,2,83,0,119,0,41,3,122,210,71,101,116,32,116,
+ 104,101,32,102,105,110,100,101,114,32,102,111,114,32,116,104,
+ 101,32,112,97,116,104,32,101,110,116,114,121,32,102,114,111,
+ 109,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
+ 116,101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,
+ 32,32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,
+ 101,110,116,114,121,32,105,115,32,110,111,116,32,105,110,32,
+ 116,104,101,32,99,97,99,104,101,44,32,102,105,110,100,32,
+ 116,104,101,32,97,112,112,114,111,112,114,105,97,116,101,32,
+ 102,105,110,100,101,114,10,32,32,32,32,32,32,32,32,97,
+ 110,100,32,99,97,99,104,101,32,105,116,46,32,73,102,32,
+ 110,111,32,102,105,110,100,101,114,32,105,115,32,97,118,97,
+ 105,108,97,98,108,101,44,32,115,116,111,114,101,32,78,111,
+ 110,101,46,10,10,32,32,32,32,32,32,32,32,114,10,0,
+ 0,0,78,41,7,114,18,0,0,0,114,82,0,0,0,218,
+ 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,
+ 111,114,114,15,0,0,0,114,80,1,0,0,218,8,75,101,
+ 121,69,114,114,111,114,114,84,1,0,0,41,3,114,221,0,
+ 0,0,114,65,0,0,0,114,82,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,20,95,112,97,
+ 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+ 101,67,5,0,0,115,28,0,0,0,8,8,2,1,12,1,
+ 12,1,6,3,2,253,2,4,12,1,4,4,12,253,10,1,
+ 12,1,4,1,2,253,122,31,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,
+ 0,0,0,0,7,0,0,0,4,0,0,0,67,0,0,0,
+ 115,138,0,0,0,116,0,124,2,100,1,131,2,114,27,116,
+ 1,160,2,124,2,161,1,155,0,100,2,157,2,125,3,116,
+ 3,160,4,124,3,116,5,161,2,1,0,124,2,160,6,124,
+ 1,161,1,92,2,125,4,125,5,110,21,116,1,160,2,124,
+ 2,161,1,155,0,100,3,157,2,125,3,116,3,160,4,124,
+ 3,116,5,161,2,1,0,124,2,160,7,124,1,161,1,125,
+ 4,103,0,125,5,124,4,100,0,117,1,114,58,116,1,160,
+ 8,124,1,124,4,161,2,83,0,116,1,160,9,124,1,100,
+ 0,161,2,125,6,124,5,124,6,95,10,124,6,83,0,41,
+ 4,78,114,161,0,0,0,122,53,46,102,105,110,100,95,115,
+ 112,101,99,40,41,32,110,111,116,32,102,111,117,110,100,59,
+ 32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,
+ 32,102,105,110,100,95,108,111,97,100,101,114,40,41,122,53,
+ 46,102,105,110,100,95,115,112,101,99,40,41,32,110,111,116,
+ 32,102,111,117,110,100,59,32,102,97,108,108,105,110,103,32,
+ 98,97,99,107,32,116,111,32,102,105,110,100,95,109,111,100,
+ 117,108,101,40,41,41,11,114,153,0,0,0,114,159,0,0,
+ 0,90,12,95,111,98,106,101,99,116,95,110,97,109,101,114,
+ 99,0,0,0,114,100,0,0,0,114,162,0,0,0,114,161,
+ 0,0,0,114,229,0,0,0,114,224,0,0,0,114,207,0,
+ 0,0,114,202,0,0,0,41,7,114,221,0,0,0,114,163,
+ 0,0,0,114,82,1,0,0,114,166,0,0,0,114,164,0,
+ 0,0,114,165,0,0,0,114,210,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,16,95,108,101,
+ 103,97,99,121,95,103,101,116,95,115,112,101,99,89,5,0,
+ 0,115,26,0,0,0,10,4,16,1,12,2,16,1,16,2,
+ 12,2,10,1,4,1,8,1,12,1,12,1,6,1,4,1,
+ 122,27,80,97,116,104,70,105,110,100,101,114,46,95,108,101,
+ 103,97,99,121,95,103,101,116,95,115,112,101,99,78,99,4,
+ 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,5,
+ 0,0,0,67,0,0,0,115,166,0,0,0,103,0,125,4,
+ 124,2,68,0,93,67,125,5,116,0,124,5,116,1,116,2,
+ 102,2,131,2,115,14,113,4,124,0,160,3,124,5,161,1,
+ 125,6,124,6,100,1,117,1,114,71,116,4,124,6,100,2,
+ 131,2,114,35,124,6,160,5,124,1,124,3,161,2,125,7,
+ 110,6,124,0,160,6,124,1,124,6,161,2,125,7,124,7,
+ 100,1,117,0,114,46,113,4,124,7,106,7,100,1,117,1,
+ 114,55,124,7,2,0,1,0,83,0,124,7,106,8,125,8,
+ 124,8,100,1,117,0,114,66,116,9,100,3,131,1,130,1,
+ 124,4,160,10,124,8,161,1,1,0,113,4,116,11,160,12,
+ 124,1,100,1,161,2,125,7,124,4,124,7,95,8,124,7,
+ 83,0,41,4,122,63,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,78,114,226,0,0,0,122,19,115,112,101,
+ 99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114,
+ 41,13,114,185,0,0,0,114,109,0,0,0,218,5,98,121,
+ 116,101,115,114,87,1,0,0,114,153,0,0,0,114,226,0,
+ 0,0,114,88,1,0,0,114,164,0,0,0,114,202,0,0,
+ 0,114,142,0,0,0,114,191,0,0,0,114,159,0,0,0,
+ 114,207,0,0,0,41,9,114,221,0,0,0,114,163,0,0,
+ 0,114,65,0,0,0,114,225,0,0,0,218,14,110,97,109,
+ 101,115,112,97,99,101,95,112,97,116,104,90,5,101,110,116,
+ 114,121,114,82,1,0,0,114,210,0,0,0,114,165,0,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 218,9,95,103,101,116,95,115,112,101,99,110,5,0,0,115,
+ 42,0,0,0,4,5,8,1,14,1,2,1,10,1,8,1,
+ 10,1,14,1,12,2,8,1,2,1,10,1,8,1,6,1,
+ 8,1,8,1,10,5,2,128,12,2,6,1,4,1,122,20,
+ 80,97,116,104,70,105,110,100,101,114,46,95,103,101,116,95,
+ 115,112,101,99,99,4,0,0,0,0,0,0,0,0,0,0,
+ 0,6,0,0,0,5,0,0,0,67,0,0,0,115,94,0,
+ 0,0,124,2,100,1,117,0,114,7,116,0,106,1,125,2,
+ 124,0,160,2,124,1,124,2,124,3,161,3,125,4,124,4,
+ 100,1,117,0,114,20,100,1,83,0,124,4,106,3,100,1,
+ 117,0,114,45,124,4,106,4,125,5,124,5,114,43,100,1,
+ 124,4,95,5,116,6,124,1,124,5,124,0,106,2,131,3,
+ 124,4,95,4,124,4,83,0,100,1,83,0,124,4,83,0,
+ 41,2,122,141,84,114,121,32,116,111,32,102,105,110,100,32,
+ 97,32,115,112,101,99,32,102,111,114,32,39,102,117,108,108,
+ 110,97,109,101,39,32,111,110,32,115,121,115,46,112,97,116,
+ 104,32,111,114,32,39,112,97,116,104,39,46,10,10,32,32,
+ 32,32,32,32,32,32,84,104,101,32,115,101,97,114,99,104,
+ 32,105,115,32,98,97,115,101,100,32,111,110,32,115,121,115,
+ 46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,32,
+ 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
+ 114,95,99,97,99,104,101,46,10,32,32,32,32,32,32,32,
+ 32,78,41,7,114,15,0,0,0,114,65,0,0,0,114,91,
+ 1,0,0,114,164,0,0,0,114,202,0,0,0,114,205,0,
+ 0,0,114,47,1,0,0,41,6,114,221,0,0,0,114,163,
+ 0,0,0,114,65,0,0,0,114,225,0,0,0,114,210,0,
+ 0,0,114,90,1,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,226,0,0,0,142,5,0,0,115,
+ 26,0,0,0,8,6,6,1,14,1,8,1,4,1,10,1,
+ 6,1,4,1,6,3,16,1,4,1,4,2,4,2,122,20,
+ 80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,
+ 115,112,101,99,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,
+ 0,0,116,0,160,1,100,1,116,2,161,2,1,0,124,0,
+ 160,3,124,1,124,2,161,2,125,3,124,3,100,2,117,0,
+ 114,18,100,2,83,0,124,3,106,4,83,0,41,3,122,170,
+ 102,105,110,100,32,116,104,101,32,109,111,100,117,108,101,32,
+ 111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,
+ 112,97,116,104,39,32,98,97,115,101,100,32,111,110,32,115,
+ 121,115,46,112,97,116,104,95,104,111,111,107,115,32,97,110,
+ 100,10,32,32,32,32,32,32,32,32,115,121,115,46,112,97,
+ 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+ 101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
+ 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
+ 99,97,116,101,100,46,32,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,10,32,32,32,32,32,32,32,32,122,101,80,97,116,104,
+ 70,105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,
+ 108,101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,
+ 101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,
+ 114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,
+ 104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,
+ 110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,
+ 100,78,114,227,0,0,0,114,228,0,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,229,0,0,0,
+ 166,5,0,0,115,14,0,0,0,6,8,2,2,4,254,12,
+ 3,8,1,4,1,6,1,122,22,80,97,116,104,70,105,110,
+ 100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,
+ 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
+ 4,0,0,0,79,0,0,0,115,28,0,0,0,100,1,100,
+ 2,108,0,109,1,125,2,1,0,124,2,106,2,124,0,105,
+ 0,124,1,164,1,142,1,83,0,41,3,97,32,1,0,0,
+ 10,32,32,32,32,32,32,32,32,70,105,110,100,32,100,105,
+ 115,116,114,105,98,117,116,105,111,110,115,46,10,10,32,32,
+ 32,32,32,32,32,32,82,101,116,117,114,110,32,97,110,32,
+ 105,116,101,114,97,98,108,101,32,111,102,32,97,108,108,32,
+ 68,105,115,116,114,105,98,117,116,105,111,110,32,105,110,115,
+ 116,97,110,99,101,115,32,99,97,112,97,98,108,101,32,111,
+ 102,10,32,32,32,32,32,32,32,32,108,111,97,100,105,110,
+ 103,32,116,104,101,32,109,101,116,97,100,97,116,97,32,102,
+ 111,114,32,112,97,99,107,97,103,101,115,32,109,97,116,99,
+ 104,105,110,103,32,96,96,99,111,110,116,101,120,116,46,110,
+ 97,109,101,96,96,10,32,32,32,32,32,32,32,32,40,111,
+ 114,32,97,108,108,32,110,97,109,101,115,32,105,102,32,96,
+ 96,78,111,110,101,96,96,32,105,110,100,105,99,97,116,101,
+ 100,41,32,97,108,111,110,103,32,116,104,101,32,112,97,116,
+ 104,115,32,105,110,32,116,104,101,32,108,105,115,116,10,32,
+ 32,32,32,32,32,32,32,111,102,32,100,105,114,101,99,116,
+ 111,114,105,101,115,32,96,96,99,111,110,116,101,120,116,46,
+ 112,97,116,104,96,96,46,10,32,32,32,32,32,32,32,32,
+ 114,0,0,0,0,41,1,218,18,77,101,116,97,100,97,116,
+ 97,80,97,116,104,70,105,110,100,101,114,41,3,90,18,105,
+ 109,112,111,114,116,108,105,98,46,109,101,116,97,100,97,116,
+ 97,114,92,1,0,0,218,18,102,105,110,100,95,100,105,115,
+ 116,114,105,98,117,116,105,111,110,115,41,3,114,144,0,0,
+ 0,114,145,0,0,0,114,92,1,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,93,1,0,0,182,
+ 5,0,0,115,4,0,0,0,12,10,16,1,122,29,80,97,
+ 116,104,70,105,110,100,101,114,46,102,105,110,100,95,100,105,
+ 115,116,114,105,98,117,116,105,111,110,115,114,69,0,0,0,
+ 114,230,0,0,0,41,14,114,150,0,0,0,114,149,0,0,
+ 0,114,151,0,0,0,114,152,0,0,0,114,233,0,0,0,
+ 114,78,1,0,0,114,84,1,0,0,114,234,0,0,0,114,
+ 87,1,0,0,114,88,1,0,0,114,91,1,0,0,114,226,
+ 0,0,0,114,229,0,0,0,114,93,1,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,77,1,0,0,40,5,0,0,115,36,0,0,0,8,
+ 0,4,2,2,2,10,1,2,9,10,1,2,12,10,1,2,
+ 21,10,1,2,20,12,1,2,31,12,1,2,23,12,1,2,
+ 15,14,1,114,77,1,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,90,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+ 90,5,101,6,90,7,100,6,100,7,132,0,90,8,100,8,
+ 100,9,132,0,90,9,100,19,100,11,100,12,132,1,90,10,
+ 100,13,100,14,132,0,90,11,101,12,100,15,100,16,132,0,
+ 131,1,90,13,100,17,100,18,132,0,90,14,100,10,83,0,
+ 41,20,218,10,70,105,108,101,70,105,110,100,101,114,122,172,
+ 70,105,108,101,45,98,97,115,101,100,32,102,105,110,100,101,
+ 114,46,10,10,32,32,32,32,73,110,116,101,114,97,99,116,
+ 105,111,110,115,32,119,105,116,104,32,116,104,101,32,102,105,
+ 108,101,32,115,121,115,116,101,109,32,97,114,101,32,99,97,
+ 99,104,101,100,32,102,111,114,32,112,101,114,102,111,114,109,
+ 97,110,99,101,44,32,98,101,105,110,103,10,32,32,32,32,
+ 114,101,102,114,101,115,104,101,100,32,119,104,101,110,32,116,
+ 104,101,32,100,105,114,101,99,116,111,114,121,32,116,104,101,
+ 32,102,105,110,100,101,114,32,105,115,32,104,97,110,100,108,
+ 105,110,103,32,104,97,115,32,98,101,101,110,32,109,111,100,
+ 105,102,105,101,100,46,10,10,32,32,32,32,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
+ 0,7,0,0,0,115,112,0,0,0,103,0,125,3,124,2,
+ 68,0,93,16,92,2,137,0,125,4,124,3,160,0,135,0,
+ 102,1,100,1,100,2,132,8,124,4,68,0,131,1,161,1,
+ 1,0,113,4,124,3,124,0,95,1,124,1,112,27,100,3,
+ 124,0,95,2,116,3,124,0,106,2,131,1,115,43,116,4,
+ 116,5,160,6,161,0,124,0,106,2,131,2,124,0,95,2,
+ 100,4,124,0,95,7,116,8,131,0,124,0,95,9,116,8,
+ 131,0,124,0,95,10,100,5,83,0,41,6,122,154,73,110,
+ 105,116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,
+ 101,32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,
+ 32,111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,
+ 108,101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,
+ 32,32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,
+ 110,116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,
+ 100,101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,
+ 32,115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,
+ 97,100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,
+ 111,103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,
+ 0,115,24,0,0,0,129,0,124,0,93,7,125,1,124,1,
+ 136,0,102,2,86,0,1,0,113,2,100,0,83,0,114,69,
+ 0,0,0,114,7,0,0,0,114,43,1,0,0,169,1,114,
+ 164,0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,
+ 0,0,0,211,5,0,0,115,4,0,0,0,2,128,22,0,
+ 122,38,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,114,97,0,0,0,114,130,0,
+ 0,0,78,41,11,114,191,0,0,0,218,8,95,108,111,97,
+ 100,101,114,115,114,65,0,0,0,114,86,0,0,0,114,67,
+ 0,0,0,114,18,0,0,0,114,82,0,0,0,218,11,95,
+ 112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,
+ 11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,
+ 101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,
+ 101,41,5,114,143,0,0,0,114,65,0,0,0,218,14,108,
+ 111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108,
+ 111,97,100,101,114,115,114,212,0,0,0,114,7,0,0,0,
+ 114,95,1,0,0,114,8,0,0,0,114,236,0,0,0,205,
+ 5,0,0,115,20,0,0,0,4,4,12,1,26,1,6,1,
+ 10,2,10,1,18,1,6,1,8,1,12,1,122,19,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,0,0,0,0,1,0,
+ 0,0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,
+ 1,124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,
+ 97,108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,
+ 99,116,111,114,121,32,109,116,105,109,101,46,114,130,0,0,
+ 0,78,41,1,114,97,1,0,0,114,21,1,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,78,1,
+ 0,0,221,5,0,0,114,81,0,0,0,122,28,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,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
+ 0,0,115,54,0,0,0,116,0,160,1,100,1,116,2,161,
+ 2,1,0,124,0,160,3,124,1,161,1,125,2,124,2,100,
+ 2,117,0,114,19,100,2,103,0,102,2,83,0,124,2,106,
+ 4,124,2,106,5,112,25,103,0,102,2,83,0,41,3,122,
+ 197,84,114,121,32,116,111,32,102,105,110,100,32,97,32,108,
+ 111,97,100,101,114,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,44,32,
+ 111,114,32,116,104,101,32,110,97,109,101,115,112,97,99,101,
+ 10,32,32,32,32,32,32,32,32,112,97,99,107,97,103,101,
+ 32,112,111,114,116,105,111,110,115,46,32,82,101,116,117,114,
+ 110,115,32,40,108,111,97,100,101,114,44,32,108,105,115,116,
+ 45,111,102,45,112,111,114,116,105,111,110,115,41,46,10,10,
+ 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
+ 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+ 100,46,32,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,10,32,32,
+ 32,32,32,32,32,32,122,101,70,105,108,101,70,105,110,100,
+ 101,114,46,102,105,110,100,95,108,111,97,100,101,114,40,41,
+ 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,
+ 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,
+ 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,
+ 51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,
+ 112,101,99,40,41,32,105,110,115,116,101,97,100,78,41,6,
+ 114,99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,
+ 226,0,0,0,114,164,0,0,0,114,202,0,0,0,41,3,
+ 114,143,0,0,0,114,163,0,0,0,114,210,0,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,161,
+ 0,0,0,227,5,0,0,115,14,0,0,0,6,7,2,2,
+ 4,254,10,3,8,1,8,1,16,1,122,22,70,105,108,101,
+ 70,105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,
+ 101,114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,
+ 0,0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,
+ 124,1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,
+ 124,6,124,4,100,1,141,4,83,0,41,2,78,114,201,0,
+ 0,0,41,1,114,213,0,0,0,41,7,114,143,0,0,0,
+ 114,211,0,0,0,114,163,0,0,0,114,65,0,0,0,90,
+ 4,115,109,115,108,114,225,0,0,0,114,164,0,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,91,
+ 1,0,0,242,5,0,0,115,8,0,0,0,10,1,8,1,
+ 2,1,6,255,122,20,70,105,108,101,70,105,110,100,101,114,
+ 46,95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,
+ 0,0,0,0,0,0,0,0,14,0,0,0,9,0,0,0,
+ 67,0,0,0,115,122,1,0,0,100,1,125,3,124,1,160,
+ 0,100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,
+ 0,106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,
+ 5,87,0,110,11,4,0,116,6,121,32,1,0,1,0,1,
+ 0,100,4,125,5,89,0,110,1,119,0,124,5,124,0,106,
+ 7,107,3,114,45,124,0,160,8,161,0,1,0,124,5,124,
+ 0,95,7,116,9,131,0,114,56,124,0,106,10,125,6,124,
+ 4,160,11,161,0,125,7,110,5,124,0,106,12,125,6,124,
+ 4,125,7,124,7,124,6,118,0,114,108,116,13,124,0,106,
+ 2,124,4,131,2,125,8,124,0,106,14,68,0,93,29,92,
+ 2,125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,
+ 8,124,11,131,2,125,12,116,15,124,12,131,1,114,103,124,
+ 0,160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,
+ 5,2,0,1,0,83,0,113,74,116,17,124,8,131,1,125,
+ 3,124,0,106,14,68,0,93,55,92,2,125,9,125,10,122,
+ 10,116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,
+ 12,87,0,110,11,4,0,116,18,121,136,1,0,1,0,1,
+ 0,89,0,1,0,100,6,83,0,119,0,116,19,106,20,100,
+ 7,124,12,100,3,100,8,141,3,1,0,124,7,124,9,23,
+ 0,124,6,118,0,114,166,116,15,124,12,131,1,114,166,124,
+ 0,160,16,124,10,124,1,124,12,100,6,124,2,161,5,2,
+ 0,1,0,83,0,113,111,124,3,114,187,116,19,160,20,100,
+ 9,124,8,161,2,1,0,116,19,160,21,124,1,100,6,161,
+ 2,125,13,124,8,103,1,124,13,95,22,124,13,83,0,100,
+ 6,83,0,41,10,122,111,84,114,121,32,116,111,32,102,105,
+ 110,100,32,97,32,115,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,116,104,101,32,109,97,116,99,104,105,110,
+ 103,32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,
+ 105,102,32,110,111,116,32,102,111,117,110,100,46,10,32,32,
+ 32,32,32,32,32,32,70,114,97,0,0,0,114,44,0,0,
+ 0,114,130,0,0,0,114,236,0,0,0,78,122,9,116,114,
+ 121,105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,
+ 115,105,116,121,122,25,112,111,115,115,105,98,108,101,32,110,
+ 97,109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,
+ 23,114,104,0,0,0,114,75,0,0,0,114,65,0,0,0,
+ 114,18,0,0,0,114,82,0,0,0,114,35,1,0,0,114,
+ 76,0,0,0,114,97,1,0,0,218,11,95,102,105,108,108,
+ 95,99,97,99,104,101,114,21,0,0,0,114,100,1,0,0,
+ 114,131,0,0,0,114,99,1,0,0,114,67,0,0,0,114,
+ 96,1,0,0,114,80,0,0,0,114,91,1,0,0,114,83,
+ 0,0,0,114,111,0,0,0,114,159,0,0,0,114,173,0,
+ 0,0,114,207,0,0,0,114,202,0,0,0,41,14,114,143,
+ 0,0,0,114,163,0,0,0,114,225,0,0,0,90,12,105,
+ 115,95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,
+ 108,95,109,111,100,117,108,101,114,193,0,0,0,90,5,99,
+ 97,99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,
+ 108,101,90,9,98,97,115,101,95,112,97,116,104,114,44,1,
+ 0,0,114,211,0,0,0,90,13,105,110,105,116,95,102,105,
+ 108,101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,
+ 104,114,210,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,226,0,0,0,247,5,0,0,115,86,
+ 0,0,0,4,5,14,1,2,1,24,1,12,1,8,1,2,
+ 255,10,2,8,1,6,1,6,2,6,1,10,1,6,2,4,
+ 1,8,2,12,1,14,1,8,1,10,1,8,1,24,1,2,
+ 255,8,5,14,2,2,1,20,1,12,1,8,1,2,255,16,
+ 2,12,1,8,1,10,1,4,1,8,255,2,128,4,2,12,
+ 1,12,1,8,1,4,1,4,1,122,20,70,105,108,101,70,
+ 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
+ 10,0,0,0,67,0,0,0,115,192,0,0,0,124,0,106,
+ 0,125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,
+ 3,161,0,161,1,125,2,87,0,110,14,4,0,116,4,116,
+ 5,116,6,102,3,121,28,1,0,1,0,1,0,103,0,125,
+ 2,89,0,110,1,119,0,116,7,106,8,160,9,100,1,161,
+ 1,115,41,116,10,124,2,131,1,124,0,95,11,110,37,116,
+ 10,131,0,125,3,124,2,68,0,93,28,125,4,124,4,160,
+ 12,100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,
+ 67,100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,
+ 8,110,2,124,5,125,8,124,3,160,15,124,8,161,1,1,
+ 0,113,46,124,3,124,0,95,11,116,7,106,8,160,9,116,
+ 16,161,1,114,94,100,4,100,5,132,0,124,2,68,0,131,
+ 1,124,0,95,17,100,6,83,0,100,6,83,0,41,7,122,
+ 68,70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,
+ 111,102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,
+ 117,108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,
+ 115,32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,
+ 116,111,114,121,46,114,14,0,0,0,114,97,0,0,0,114,
+ 88,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,
+ 0,0,104,0,124,0,93,6,125,1,124,1,160,0,161,0,
+ 146,2,113,2,83,0,114,7,0,0,0,41,1,114,131,0,
+ 0,0,41,2,114,5,0,0,0,90,2,102,110,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,13,0,0,
+ 0,71,6,0,0,115,2,0,0,0,20,0,122,41,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,115,
+ 101,116,99,111,109,112,62,78,41,18,114,65,0,0,0,114,
+ 18,0,0,0,90,7,108,105,115,116,100,105,114,114,82,0,
+ 0,0,114,85,1,0,0,218,15,80,101,114,109,105,115,115,
+ 105,111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,
+ 114,101,99,116,111,114,121,69,114,114,111,114,114,15,0,0,
+ 0,114,25,0,0,0,114,26,0,0,0,114,98,1,0,0,
+ 114,99,1,0,0,114,126,0,0,0,114,89,0,0,0,114,
+ 131,0,0,0,218,3,97,100,100,114,27,0,0,0,114,100,
+ 1,0,0,41,9,114,143,0,0,0,114,65,0,0,0,90,
+ 8,99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,
+ 95,115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,
+ 114,70,1,0,0,114,141,0,0,0,114,54,1,0,0,114,
+ 44,1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,102,1,
+ 0,0,42,6,0,0,115,38,0,0,0,6,2,2,1,22,
+ 1,18,1,8,3,2,253,12,6,12,1,6,7,8,1,16,
+ 1,4,1,18,1,4,2,12,1,6,1,12,1,20,1,4,
+ 255,122,22,70,105,108,101,70,105,110,100,101,114,46,95,102,
+ 105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,3,0,0,0,7,0,
+ 0,0,115,18,0,0,0,135,0,135,1,102,2,100,1,100,
+ 2,132,8,125,2,124,2,83,0,41,3,97,20,1,0,0,
+ 65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,119,
+ 104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,99,
+ 108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,110,
+ 32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,32,
+ 32,32,32,32,32,32,32,119,104,105,99,104,32,119,105,108,
+ 108,32,114,101,116,117,114,110,32,97,110,32,105,110,115,116,
+ 97,110,99,101,32,117,115,105,110,103,32,116,104,101,32,115,
+ 112,101,99,105,102,105,101,100,32,108,111,97,100,101,114,115,
+ 32,97,110,100,32,116,104,101,32,112,97,116,104,10,32,32,
+ 32,32,32,32,32,32,99,97,108,108,101,100,32,111,110,32,
+ 116,104,101,32,99,108,111,115,117,114,101,46,10,10,32,32,
+ 32,32,32,32,32,32,73,102,32,116,104,101,32,112,97,116,
+ 104,32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,
+ 99,108,111,115,117,114,101,32,105,115,32,110,111,116,32,97,
+ 32,100,105,114,101,99,116,111,114,121,44,32,73,109,112,111,
+ 114,116,69,114,114,111,114,32,105,115,10,32,32,32,32,32,
+ 32,32,32,114,97,105,115,101,100,46,10,10,32,32,32,32,
+ 32,32,32,32,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,4,0,0,0,19,0,0,0,115,36,0,
+ 0,0,116,0,124,0,131,1,115,10,116,1,100,1,124,0,
+ 100,2,141,2,130,1,136,0,124,0,103,1,136,1,162,1,
+ 82,0,142,0,83,0,41,3,122,45,80,97,116,104,32,104,
+ 111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,105,
+ 98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,101,
+ 70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,105,
+ 114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,117,
+ 112,112,111,114,116,101,100,114,71,0,0,0,41,2,114,83,
0,0,0,114,142,0,0,0,114,71,0,0,0,169,2,114,
221,0,0,0,114,101,1,0,0,114,7,0,0,0,114,8,
0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,102,
@@ -2626,142 +2624,142 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
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,114,95,70,105,108,101,70,105,
- 110,100,101,114,78,114,7,0,0,0,41,3,114,221,0,0,
- 0,114,101,1,0,0,114,107,1,0,0,114,7,0,0,0,
- 114,106,1,0,0,114,8,0,0,0,218,9,112,97,116,104,
- 95,104,111,111,107,73,6,0,0,115,4,0,0,0,14,10,
- 4,6,122,20,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,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
- 0,114,67,1,0,0,41,2,78,122,16,70,105,108,101,70,
- 105,110,100,101,114,40,123,33,114,125,41,41,2,114,89,0,
- 0,0,114,65,0,0,0,114,21,1,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,68,1,0,0,
- 91,6,0,0,114,61,1,0,0,122,19,70,105,108,101,70,
- 105,110,100,101,114,46,95,95,114,101,112,114,95,95,114,69,
- 0,0,0,41,15,114,150,0,0,0,114,149,0,0,0,114,
- 151,0,0,0,114,152,0,0,0,114,236,0,0,0,114,78,
- 1,0,0,114,167,0,0,0,114,229,0,0,0,114,161,0,
- 0,0,114,91,1,0,0,114,226,0,0,0,114,102,1,0,
- 0,114,234,0,0,0,114,108,1,0,0,114,68,1,0,0,
- 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 8,0,0,0,114,94,1,0,0,196,5,0,0,115,24,0,
- 0,0,8,0,4,2,8,7,8,16,4,4,8,2,8,15,
- 10,5,8,51,2,31,10,1,12,17,114,94,1,0,0,99,
- 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
- 8,0,0,0,67,0,0,0,115,144,0,0,0,124,0,160,
- 0,100,1,161,1,125,4,124,0,160,0,100,2,161,1,125,
- 5,124,4,115,33,124,5,114,18,124,5,106,1,125,4,110,
- 15,124,2,124,3,107,2,114,28,116,2,124,1,124,2,131,
- 2,125,4,110,5,116,3,124,1,124,2,131,2,125,4,124,
- 5,115,42,116,4,124,1,124,2,124,4,100,3,141,3,125,
- 5,122,19,124,5,124,0,100,2,60,0,124,4,124,0,100,
- 1,60,0,124,2,124,0,100,4,60,0,124,3,124,0,100,
- 5,60,0,87,0,100,0,83,0,4,0,116,5,121,71,1,
- 0,1,0,1,0,89,0,100,0,83,0,119,0,41,6,78,
- 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,
- 115,112,101,99,95,95,114,95,1,0,0,90,8,95,95,102,
- 105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,
- 95,41,6,218,3,103,101,116,114,164,0,0,0,114,41,1,
- 0,0,114,34,1,0,0,114,213,0,0,0,218,9,69,120,
- 99,101,112,116,105,111,110,41,6,90,2,110,115,114,141,0,
- 0,0,90,8,112,97,116,104,110,97,109,101,90,9,99,112,
- 97,116,104,110,97,109,101,114,164,0,0,0,114,210,0,0,
- 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,
- 97,6,0,0,115,36,0,0,0,10,2,10,1,4,1,4,
- 1,8,1,8,1,12,1,10,2,4,1,14,1,2,1,8,
- 1,8,1,8,1,14,1,12,1,6,2,2,254,114,113,1,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
- 116,0,116,1,160,2,161,0,102,2,125,0,116,3,116,4,
- 102,2,125,1,116,5,116,6,102,2,125,2,124,0,124,1,
- 124,2,103,3,83,0,41,2,122,95,82,101,116,117,114,110,
- 115,32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,
- 45,98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,
- 97,100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,
- 32,105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,
- 32,40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,
- 101,115,41,46,10,32,32,32,32,78,41,7,114,30,1,0,
- 0,114,187,0,0,0,218,18,101,120,116,101,110,115,105,111,
- 110,95,115,117,102,102,105,120,101,115,114,34,1,0,0,114,
- 127,0,0,0,114,41,1,0,0,114,113,0,0,0,41,3,
- 90,10,101,120,116,101,110,115,105,111,110,115,90,6,115,111,
- 117,114,99,101,90,8,98,121,116,101,99,111,100,101,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,208,0,
- 0,0,120,6,0,0,115,8,0,0,0,12,5,8,1,8,
- 1,10,1,114,208,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,0,
- 0,115,8,0,0,0,124,0,97,0,100,0,83,0,114,69,
- 0,0,0,41,1,114,159,0,0,0,41,1,218,17,95,98,
- 111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,21,
- 95,115,101,116,95,98,111,111,116,115,116,114,97,112,95,109,
- 111,100,117,108,101,131,6,0,0,115,2,0,0,0,8,2,
- 114,116,1,0,0,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,50,
- 0,0,0,116,0,124,0,131,1,1,0,116,1,131,0,125,
- 1,116,2,106,3,160,4,116,5,106,6,124,1,142,0,103,
- 1,161,1,1,0,116,2,106,7,160,8,116,9,161,1,1,
- 0,100,1,83,0,41,2,122,41,73,110,115,116,97,108,108,
- 32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32,
- 105,109,112,111,114,116,32,99,111,109,112,111,110,101,110,116,
- 115,46,78,41,10,114,116,1,0,0,114,208,0,0,0,114,
- 15,0,0,0,114,83,1,0,0,114,191,0,0,0,114,94,
- 1,0,0,114,108,1,0,0,218,9,109,101,116,97,95,112,
- 97,116,104,114,61,0,0,0,114,77,1,0,0,41,2,114,
- 115,1,0,0,90,17,115,117,112,112,111,114,116,101,100,95,
- 108,111,97,100,101,114,115,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,8,95,105,110,115,116,97,108,108,
- 136,6,0,0,115,8,0,0,0,8,2,6,1,20,1,16,
- 1,114,118,1,0,0,41,1,114,87,0,0,0,114,69,0,
- 0,0,41,3,78,78,78,41,2,114,0,0,0,0,114,0,
- 0,0,0,41,1,84,41,85,114,152,0,0,0,114,159,0,
- 0,0,114,187,0,0,0,114,91,0,0,0,114,15,0,0,
- 0,114,99,0,0,0,114,184,0,0,0,114,25,0,0,0,
- 114,231,0,0,0,90,2,110,116,114,18,0,0,0,114,215,
- 0,0,0,90,5,112,111,115,105,120,114,50,0,0,0,218,
- 3,97,108,108,114,59,0,0,0,114,136,0,0,0,114,57,
- 0,0,0,114,62,0,0,0,90,20,95,112,97,116,104,115,
- 101,112,115,95,119,105,116,104,95,99,111,108,111,110,114,28,
- 0,0,0,90,37,95,67,65,83,69,95,73,78,83,69,78,
- 83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
- 95,66,89,84,69,83,95,75,69,89,114,27,0,0,0,114,
- 29,0,0,0,114,21,0,0,0,114,36,0,0,0,114,42,
- 0,0,0,114,45,0,0,0,114,67,0,0,0,114,74,0,
- 0,0,114,75,0,0,0,114,79,0,0,0,114,80,0,0,
- 0,114,83,0,0,0,114,86,0,0,0,114,95,0,0,0,
- 218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,95,
- 114,186,0,0,0,114,34,0,0,0,114,172,0,0,0,114,
- 33,0,0,0,114,39,0,0,0,114,8,1,0,0,114,116,
- 0,0,0,114,112,0,0,0,114,127,0,0,0,114,61,0,
- 0,0,114,114,1,0,0,114,232,0,0,0,114,113,0,0,
- 0,90,23,68,69,66,85,71,95,66,89,84,69,67,79,68,
- 69,95,83,85,70,70,73,88,69,83,90,27,79,80,84,73,
- 77,73,90,69,68,95,66,89,84,69,67,79,68,69,95,83,
- 85,70,70,73,88,69,83,114,121,0,0,0,114,128,0,0,
- 0,114,135,0,0,0,114,137,0,0,0,114,139,0,0,0,
- 114,160,0,0,0,114,167,0,0,0,114,176,0,0,0,114,
- 180,0,0,0,114,182,0,0,0,114,189,0,0,0,114,194,
- 0,0,0,114,195,0,0,0,114,200,0,0,0,218,6,111,
- 98,106,101,99,116,114,209,0,0,0,114,213,0,0,0,114,
- 214,0,0,0,114,235,0,0,0,114,249,0,0,0,114,11,
- 1,0,0,114,34,1,0,0,114,41,1,0,0,114,30,1,
- 0,0,114,47,1,0,0,114,73,1,0,0,114,77,1,0,
- 0,114,94,1,0,0,114,113,1,0,0,114,208,0,0,0,
- 114,116,1,0,0,114,118,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,8,
- 60,109,111,100,117,108,101,62,1,0,0,0,115,180,0,0,
- 0,4,0,4,22,8,3,8,1,8,1,8,1,8,1,10,
- 3,4,1,8,1,10,1,8,2,4,3,10,1,6,2,22,
- 2,8,1,8,1,10,1,14,1,4,4,4,1,2,1,2,
- 1,4,255,8,4,6,16,8,3,8,5,8,5,4,6,10,
- 1,8,30,8,6,8,8,8,10,8,9,8,5,4,7,10,
- 1,8,8,10,5,10,22,0,127,16,30,12,1,4,2,4,
- 1,6,2,4,1,10,1,8,2,6,2,8,2,16,2,8,
- 71,8,40,8,19,8,12,8,12,8,31,8,20,8,33,8,
- 28,10,24,10,13,10,10,8,11,6,14,4,3,2,1,12,
- 255,14,73,14,67,16,30,0,127,14,17,18,50,18,45,18,
- 25,14,53,14,63,14,49,0,127,14,29,0,127,10,30,8,
- 23,8,11,12,5,
+ 110,100,101,114,114,7,0,0,0,41,3,114,221,0,0,0,
+ 114,101,1,0,0,114,107,1,0,0,114,7,0,0,0,114,
+ 106,1,0,0,114,8,0,0,0,218,9,112,97,116,104,95,
+ 104,111,111,107,73,6,0,0,115,4,0,0,0,14,10,4,
+ 6,122,20,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,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 114,67,1,0,0,41,2,78,122,16,70,105,108,101,70,105,
+ 110,100,101,114,40,123,33,114,125,41,41,2,114,89,0,0,
+ 0,114,65,0,0,0,114,21,1,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,68,1,0,0,91,
+ 6,0,0,114,61,1,0,0,122,19,70,105,108,101,70,105,
+ 110,100,101,114,46,95,95,114,101,112,114,95,95,114,69,0,
+ 0,0,41,15,114,150,0,0,0,114,149,0,0,0,114,151,
+ 0,0,0,114,152,0,0,0,114,236,0,0,0,114,78,1,
+ 0,0,114,167,0,0,0,114,229,0,0,0,114,161,0,0,
+ 0,114,91,1,0,0,114,226,0,0,0,114,102,1,0,0,
+ 114,234,0,0,0,114,108,1,0,0,114,68,1,0,0,114,
+ 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,94,1,0,0,196,5,0,0,115,24,0,0,
+ 0,8,0,4,2,8,7,8,16,4,4,8,2,8,15,10,
+ 5,8,51,2,31,10,1,12,17,114,94,1,0,0,99,4,
+ 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,
+ 0,0,0,67,0,0,0,115,144,0,0,0,124,0,160,0,
+ 100,1,161,1,125,4,124,0,160,0,100,2,161,1,125,5,
+ 124,4,115,33,124,5,114,18,124,5,106,1,125,4,110,15,
+ 124,2,124,3,107,2,114,28,116,2,124,1,124,2,131,2,
+ 125,4,110,5,116,3,124,1,124,2,131,2,125,4,124,5,
+ 115,42,116,4,124,1,124,2,124,4,100,3,141,3,125,5,
+ 122,19,124,5,124,0,100,2,60,0,124,4,124,0,100,1,
+ 60,0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,
+ 60,0,87,0,100,0,83,0,4,0,116,5,121,71,1,0,
+ 1,0,1,0,89,0,100,0,83,0,119,0,41,6,78,218,
+ 10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,115,
+ 112,101,99,95,95,114,95,1,0,0,90,8,95,95,102,105,
+ 108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,
+ 41,6,218,3,103,101,116,114,164,0,0,0,114,41,1,0,
+ 0,114,34,1,0,0,114,213,0,0,0,218,9,69,120,99,
+ 101,112,116,105,111,110,41,6,90,2,110,115,114,141,0,0,
+ 0,90,8,112,97,116,104,110,97,109,101,90,9,99,112,97,
+ 116,104,110,97,109,101,114,164,0,0,0,114,210,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,97,
+ 6,0,0,115,36,0,0,0,10,2,10,1,4,1,4,1,
+ 8,1,8,1,12,1,10,2,4,1,14,1,2,1,8,1,
+ 8,1,8,1,14,1,12,1,6,2,2,254,114,113,1,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,
+ 0,116,1,160,2,161,0,102,2,125,0,116,3,116,4,102,
+ 2,125,1,116,5,116,6,102,2,125,2,124,0,124,1,124,
+ 2,103,3,83,0,41,1,122,95,82,101,116,117,114,110,115,
+ 32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,45,
+ 98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,97,
+ 100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,32,
+ 105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,32,
+ 40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,101,
+ 115,41,46,10,32,32,32,32,41,7,114,30,1,0,0,114,
+ 187,0,0,0,218,18,101,120,116,101,110,115,105,111,110,95,
+ 115,117,102,102,105,120,101,115,114,34,1,0,0,114,127,0,
+ 0,0,114,41,1,0,0,114,113,0,0,0,41,3,90,10,
+ 101,120,116,101,110,115,105,111,110,115,90,6,115,111,117,114,
+ 99,101,90,8,98,121,116,101,99,111,100,101,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,208,0,0,0,
+ 120,6,0,0,115,8,0,0,0,12,5,8,1,8,1,10,
+ 1,114,208,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,1,0,0,0,67,0,0,0,115,
+ 8,0,0,0,124,0,97,0,100,0,83,0,114,69,0,0,
+ 0,41,1,114,159,0,0,0,41,1,218,17,95,98,111,111,
+ 116,115,116,114,97,112,95,109,111,100,117,108,101,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,21,95,115,
+ 101,116,95,98,111,111,116,115,116,114,97,112,95,109,111,100,
+ 117,108,101,131,6,0,0,115,2,0,0,0,8,2,114,116,
+ 1,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,67,0,0,0,115,50,0,0,
+ 0,116,0,124,0,131,1,1,0,116,1,131,0,125,1,116,
+ 2,106,3,160,4,116,5,106,6,124,1,142,0,103,1,161,
+ 1,1,0,116,2,106,7,160,8,116,9,161,1,1,0,100,
+ 1,83,0,41,2,122,41,73,110,115,116,97,108,108,32,116,
+ 104,101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,
+ 112,111,114,116,32,99,111,109,112,111,110,101,110,116,115,46,
+ 78,41,10,114,116,1,0,0,114,208,0,0,0,114,15,0,
+ 0,0,114,83,1,0,0,114,191,0,0,0,114,94,1,0,
+ 0,114,108,1,0,0,218,9,109,101,116,97,95,112,97,116,
+ 104,114,61,0,0,0,114,77,1,0,0,41,2,114,115,1,
+ 0,0,90,17,115,117,112,112,111,114,116,101,100,95,108,111,
+ 97,100,101,114,115,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,218,8,95,105,110,115,116,97,108,108,136,6,
+ 0,0,115,8,0,0,0,8,2,6,1,20,1,16,1,114,
+ 118,1,0,0,41,1,114,87,0,0,0,114,69,0,0,0,
+ 41,3,78,78,78,41,2,114,0,0,0,0,114,0,0,0,
+ 0,41,1,84,41,85,114,152,0,0,0,114,159,0,0,0,
+ 114,187,0,0,0,114,91,0,0,0,114,15,0,0,0,114,
+ 99,0,0,0,114,184,0,0,0,114,25,0,0,0,114,231,
+ 0,0,0,90,2,110,116,114,18,0,0,0,114,215,0,0,
+ 0,90,5,112,111,115,105,120,114,50,0,0,0,218,3,97,
+ 108,108,114,59,0,0,0,114,136,0,0,0,114,57,0,0,
+ 0,114,62,0,0,0,90,20,95,112,97,116,104,115,101,112,
+ 115,95,119,105,116,104,95,99,111,108,111,110,114,28,0,0,
+ 0,90,37,95,67,65,83,69,95,73,78,83,69,78,83,73,
+ 84,73,86,69,95,80,76,65,84,70,79,82,77,83,95,66,
+ 89,84,69,83,95,75,69,89,114,27,0,0,0,114,29,0,
+ 0,0,114,21,0,0,0,114,36,0,0,0,114,42,0,0,
+ 0,114,45,0,0,0,114,67,0,0,0,114,74,0,0,0,
+ 114,75,0,0,0,114,79,0,0,0,114,80,0,0,0,114,
+ 83,0,0,0,114,86,0,0,0,114,95,0,0,0,218,4,
+ 116,121,112,101,218,8,95,95,99,111,100,101,95,95,114,186,
+ 0,0,0,114,34,0,0,0,114,172,0,0,0,114,33,0,
+ 0,0,114,39,0,0,0,114,8,1,0,0,114,116,0,0,
+ 0,114,112,0,0,0,114,127,0,0,0,114,61,0,0,0,
+ 114,114,1,0,0,114,232,0,0,0,114,113,0,0,0,90,
+ 23,68,69,66,85,71,95,66,89,84,69,67,79,68,69,95,
+ 83,85,70,70,73,88,69,83,90,27,79,80,84,73,77,73,
+ 90,69,68,95,66,89,84,69,67,79,68,69,95,83,85,70,
+ 70,73,88,69,83,114,121,0,0,0,114,128,0,0,0,114,
+ 135,0,0,0,114,137,0,0,0,114,139,0,0,0,114,160,
+ 0,0,0,114,167,0,0,0,114,176,0,0,0,114,180,0,
+ 0,0,114,182,0,0,0,114,189,0,0,0,114,194,0,0,
+ 0,114,195,0,0,0,114,200,0,0,0,218,6,111,98,106,
+ 101,99,116,114,209,0,0,0,114,213,0,0,0,114,214,0,
+ 0,0,114,235,0,0,0,114,249,0,0,0,114,11,1,0,
+ 0,114,34,1,0,0,114,41,1,0,0,114,30,1,0,0,
+ 114,47,1,0,0,114,73,1,0,0,114,77,1,0,0,114,
+ 94,1,0,0,114,113,1,0,0,114,208,0,0,0,114,116,
+ 1,0,0,114,118,1,0,0,114,7,0,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,8,60,109,
+ 111,100,117,108,101,62,1,0,0,0,115,180,0,0,0,4,
+ 0,4,22,8,3,8,1,8,1,8,1,8,1,10,3,4,
+ 1,8,1,10,1,8,2,4,3,10,1,6,2,22,2,8,
+ 1,8,1,10,1,14,1,4,4,4,1,2,1,2,1,4,
+ 255,8,4,6,16,8,3,8,5,8,5,4,6,10,1,8,
+ 30,8,6,8,8,8,10,8,9,8,5,4,7,10,1,8,
+ 8,10,5,10,22,0,127,16,30,12,1,4,2,4,1,6,
+ 2,4,1,10,1,8,2,6,2,8,2,16,2,8,71,8,
+ 40,8,19,8,12,8,12,8,31,8,20,8,33,8,28,10,
+ 24,10,13,10,10,8,11,6,14,4,3,2,1,12,255,14,
+ 73,14,67,16,30,0,127,14,17,18,50,18,45,18,25,14,
+ 53,14,63,14,49,0,127,14,29,0,127,10,30,8,23,8,
+ 11,12,5,
};
diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h
index 9db4e0d..bb870c3 100644
--- a/Python/importlib_zipimport.h
+++ b/Python/importlib_zipimport.h
@@ -234,7 +234,7 @@ const unsigned char _Py_M__zipimport[] = {
0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
0,0,115,28,0,0,0,116,0,160,1,100,1,116,2,161,
2,1,0,124,0,160,3,124,1,124,2,161,2,100,2,25,
- 0,83,0,41,4,97,203,1,0,0,102,105,110,100,95,109,
+ 0,83,0,41,3,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,
@@ -270,794 +270,794 @@ const unsigned char _Py_M__zipimport[] = {
109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,
51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,
112,101,99,40,41,32,105,110,115,116,101,97,100,114,0,0,
- 0,0,78,41,4,114,35,0,0,0,114,36,0,0,0,114,
- 37,0,0,0,114,44,0,0,0,41,3,114,32,0,0,0,
- 114,41,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,147,0,0,0,115,8,0,0,0,6,
- 11,2,2,4,254,16,3,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,17,
- 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,52,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,46,0,0,0,41,10,
- 114,38,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,39,0,0,0,114,40,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,41,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,43,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,163,
- 0,0,0,115,24,0,0,0,10,5,8,1,16,1,10,7,
- 10,1,18,4,8,1,2,1,6,255,12,2,4,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,2,122,166,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,
+ 0,0,41,4,114,35,0,0,0,114,36,0,0,0,114,37,
+ 0,0,0,114,44,0,0,0,41,3,114,32,0,0,0,114,
+ 41,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,147,0,0,0,115,8,0,0,0,6,11,
+ 2,2,4,254,16,3,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,17,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,52,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,46,0,0,0,41,10,114,
+ 38,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,39,0,0,0,114,40,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,41,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,43,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,163,0,
+ 0,0,115,24,0,0,0,10,5,8,1,16,1,10,7,10,
+ 1,18,4,8,1,2,1,6,255,12,2,4,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,166,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,
+ 105,109,112,111,114,116,101,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,41,0,
+ 0,0,218,4,99,111,100,101,218,9,105,115,112,97,99,107,
+ 97,103,101,114,43,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,190,0,0,0,115,4,0,0,0,16,6,4,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,112,0,
+ 0,0,116,0,114,8,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,29,124,1,116,5,124,0,106,4,116,2,
+ 23,0,131,1,100,1,133,2,25,0,125,2,122,7,124,0,
+ 106,6,124,2,25,0,125,3,87,0,110,13,4,0,116,7,
+ 121,49,1,0,1,0,1,0,116,8,100,2,100,3,124,2,
+ 131,3,130,1,119,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,200,0,0,0,115,22,0,0,0,4,6,12,1,
+ 4,2,16,1,22,1,2,2,14,1,12,1,12,1,2,255,
+ 12,2,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,165,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,32,111,
+ 114,32,114,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,105,116,32,99,111,117,108,100,110,39,116,32,98,101,
32,105,109,112,111,114,116,101,100,46,10,32,32,32,32,32,
- 32,32,32,78,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,
- 41,0,0,0,218,4,99,111,100,101,218,9,105,115,112,97,
- 99,107,97,103,101,114,43,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,190,0,0,0,115,4,0,0,0,16,6,4,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,
- 112,0,0,0,116,0,114,8,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,29,124,1,116,5,124,0,106,4,
- 116,2,23,0,131,1,100,1,133,2,25,0,125,2,122,7,
- 124,0,106,6,124,2,25,0,125,3,87,0,110,13,4,0,
- 116,7,121,49,1,0,1,0,1,0,116,8,100,2,100,3,
- 124,2,131,3,130,1,119,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,200,0,0,0,115,22,0,0,0,4,6,
- 12,1,4,2,16,1,22,1,2,2,14,1,12,1,12,1,
- 2,255,12,2,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,2,122,165,
- 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,
- 32,111,114,32,114,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,105,116,32,99,111,117,108,100,110,39,116,32,
- 98,101,32,105,109,112,111,114,116,101,100,46,10,32,32,32,
- 32,32,32,32,32,78,114,50,0,0,0,114,52,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,221,0,0,
- 0,115,4,0,0,0,16,8,4,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,18,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,32,116,3,160,4,124,3,100,4,161,2,125,4,
- 110,5,124,3,155,0,100,5,157,2,125,4,122,7,124,0,
- 106,5,124,4,25,0,125,5,87,0,110,10,4,0,116,6,
- 121,54,1,0,1,0,1,0,89,0,100,1,83,0,119,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,47,0,0,0,250,11,95,
- 95,105,110,105,116,95,95,46,112,121,250,3,46,112,121,41,
- 10,114,38,0,0,0,114,3,0,0,0,114,39,0,0,0,
- 114,21,0,0,0,114,30,0,0,0,114,28,0,0,0,114,
- 26,0,0,0,114,59,0,0,0,114,29,0,0,0,218,6,
- 100,101,99,111,100,101,41,6,114,32,0,0,0,114,41,0,
- 0,0,114,42,0,0,0,114,13,0,0,0,218,8,102,117,
- 108,108,112,97,116,104,114,61,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,233,0,0,0,115,26,0,0,0,10,
- 7,8,1,18,1,10,2,4,1,14,1,10,2,2,2,14,
- 1,12,1,6,2,2,254,16,3,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,
+ 32,32,32,114,50,0,0,0,114,52,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,221,0,0,0,115,4,
+ 0,0,0,16,8,4,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,
18,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,64,0,0,0,114,65,0,0,
- 0,41,2,114,38,0,0,0,114,3,0,0,0,41,3,114,
- 32,0,0,0,114,41,0,0,0,114,42,0,0,0,114,9,
- 0,0,0,114,9,0,0,0,114,10,0,0,0,114,46,0,
- 0,0,3,1,0,0,115,8,0,0,0,10,6,8,1,18,
- 1,4,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,9,0,0,0,8,0,0,0,
- 67,0,0,0,115,252,0,0,0,100,1,125,2,116,0,160,
- 1,124,2,116,2,161,2,1,0,116,3,124,0,124,1,131,
- 2,92,3,125,3,125,4,125,5,116,4,106,5,160,6,124,
- 1,161,1,125,6,124,6,100,2,117,0,115,31,116,7,124,
- 6,116,8,131,2,115,40,116,8,124,1,131,1,125,6,124,
- 6,116,4,106,5,124,1,60,0,124,0,124,6,95,9,122,
- 42,124,4,114,62,116,10,124,0,124,1,131,2,125,7,116,
- 11,160,12,124,0,106,13,124,7,161,2,125,8,124,8,103,
- 1,124,6,95,14,116,15,124,6,100,3,131,2,115,70,116,
- 16,124,6,95,16,116,11,160,17,124,6,106,18,124,1,124,
- 5,161,3,1,0,116,19,124,3,124,6,106,18,131,2,1,
- 0,87,0,110,8,1,0,1,0,1,0,116,4,106,5,124,
- 1,61,0,130,0,122,7,116,4,106,5,124,1,25,0,125,
- 6,87,0,110,15,4,0,116,20,121,116,1,0,1,0,1,
- 0,116,21,100,4,124,1,155,2,100,5,157,3,131,1,130,
- 1,119,0,116,22,160,23,100,6,124,1,124,5,161,3,1,
- 0,124,6,83,0,41,7,97,64,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,
- 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,105,109,112,111,114,116,101,100,10,32,32,32,32,
- 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,99,111,117,108,100,
- 32,110,111,116,32,98,101,32,105,109,112,111,114,116,101,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,85,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,122,114,122,105,
- 112,105,109,112,111,114,116,46,122,105,112,105,109,112,111,114,
- 116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,40,
- 41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
- 97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,
- 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,
- 32,51,46,49,50,59,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,
- 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,24,114,35,0,0,
- 0,114,36,0,0,0,114,37,0,0,0,114,51,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,39,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,71,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,48,0,0,0,218,16,95,118,101,114,98,111,115,101,95,
- 109,101,115,115,97,103,101,41,9,114,32,0,0,0,114,41,
- 0,0,0,218,3,109,115,103,114,53,0,0,0,114,54,0,
- 0,0,114,43,0,0,0,90,3,109,111,100,114,13,0,0,
- 0,114,69,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,16,1,0,0,115,54,0,0,0,4,9,12,2,16,
- 1,12,1,18,1,8,1,10,1,6,1,2,2,4,1,10,
- 3,14,1,8,1,10,2,6,1,16,1,16,1,6,1,8,
- 1,2,1,2,2,14,1,12,1,16,1,2,255,14,2,4,
- 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,10,124,0,160,0,124,1,
- 161,1,115,9,87,0,100,1,83,0,87,0,110,10,4,0,
- 116,1,121,20,1,0,1,0,1,0,89,0,100,1,83,0,
- 119,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,46,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,84,0,0,0,41,
- 3,114,32,0,0,0,114,41,0,0,0,114,84,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,59,1,0,0,115,18,0,0,0,2,6,10,
- 1,6,1,4,255,12,2,6,1,2,255,12,2,10,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,
+ 2,130,1,116,2,124,0,124,1,131,2,125,3,124,2,114,
+ 32,116,3,160,4,124,3,100,4,161,2,125,4,110,5,124,
+ 3,155,0,100,5,157,2,125,4,122,7,124,0,106,5,124,
+ 4,25,0,125,5,87,0,110,10,4,0,116,6,121,54,1,
+ 0,1,0,1,0,89,0,100,1,83,0,119,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,47,0,0,0,250,11,95,95,105,110,
+ 105,116,95,95,46,112,121,250,3,46,112,121,41,10,114,38,
+ 0,0,0,114,3,0,0,0,114,39,0,0,0,114,21,0,
+ 0,0,114,30,0,0,0,114,28,0,0,0,114,26,0,0,
+ 0,114,59,0,0,0,114,29,0,0,0,218,6,100,101,99,
+ 111,100,101,41,6,114,32,0,0,0,114,41,0,0,0,114,
+ 42,0,0,0,114,13,0,0,0,218,8,102,117,108,108,112,
+ 97,116,104,114,61,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,233,0,0,0,115,26,0,0,0,10,7,8,1,
+ 18,1,10,2,4,1,14,1,10,2,2,2,14,1,12,1,
+ 6,2,2,254,16,3,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,18,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,64,0,0,0,114,65,0,0,0,41,2,
+ 114,38,0,0,0,114,3,0,0,0,41,3,114,32,0,0,
+ 0,114,41,0,0,0,114,42,0,0,0,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,114,46,0,0,0,3,
+ 1,0,0,115,8,0,0,0,10,6,8,1,18,1,4,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,9,0,0,0,8,0,0,0,67,0,0,
+ 0,115,252,0,0,0,100,1,125,2,116,0,160,1,124,2,
+ 116,2,161,2,1,0,116,3,124,0,124,1,131,2,92,3,
+ 125,3,125,4,125,5,116,4,106,5,160,6,124,1,161,1,
+ 125,6,124,6,100,2,117,0,115,31,116,7,124,6,116,8,
+ 131,2,115,40,116,8,124,1,131,1,125,6,124,6,116,4,
+ 106,5,124,1,60,0,124,0,124,6,95,9,122,42,124,4,
+ 114,62,116,10,124,0,124,1,131,2,125,7,116,11,160,12,
+ 124,0,106,13,124,7,161,2,125,8,124,8,103,1,124,6,
+ 95,14,116,15,124,6,100,3,131,2,115,70,116,16,124,6,
+ 95,16,116,11,160,17,124,6,106,18,124,1,124,5,161,3,
+ 1,0,116,19,124,3,124,6,106,18,131,2,1,0,87,0,
+ 110,8,1,0,1,0,1,0,116,4,106,5,124,1,61,0,
+ 130,0,122,7,116,4,106,5,124,1,25,0,125,6,87,0,
+ 110,15,4,0,116,20,121,116,1,0,1,0,1,0,116,21,
+ 100,4,124,1,155,2,100,5,157,3,131,1,130,1,119,0,
+ 116,22,160,23,100,6,124,1,124,5,161,3,1,0,124,6,
+ 83,0,41,7,97,64,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,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,
+ 105,109,112,111,114,116,101,100,10,32,32,32,32,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,99,111,117,108,100,32,110,111,
+ 116,32,98,101,32,105,109,112,111,114,116,101,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,85,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,122,114,122,105,112,105,109,
+ 112,111,114,116,46,122,105,112,105,109,112,111,114,116,101,114,
+ 46,108,111,97,100,95,109,111,100,117,108,101,40,41,32,105,
+ 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,
+ 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,
+ 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,
+ 49,50,59,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,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,24,114,35,0,0,0,114,36,
+ 0,0,0,114,37,0,0,0,114,51,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,
+ 39,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,71,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,48,0,
+ 0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,115,
+ 115,97,103,101,41,9,114,32,0,0,0,114,41,0,0,0,
+ 218,3,109,115,103,114,53,0,0,0,114,54,0,0,0,114,
+ 43,0,0,0,90,3,109,111,100,114,13,0,0,0,114,69,
+ 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,16,
+ 1,0,0,115,54,0,0,0,4,9,12,2,16,1,12,1,
+ 18,1,8,1,10,1,6,1,2,2,4,1,10,3,14,1,
+ 8,1,10,2,6,1,16,1,16,1,6,1,8,1,2,1,
+ 2,2,14,1,12,1,16,1,2,255,14,2,4,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,10,124,0,160,0,124,1,161,1,115,
+ 9,87,0,100,1,83,0,87,0,110,10,4,0,116,1,121,
+ 20,1,0,1,0,1,0,89,0,100,1,83,0,119,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,46,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,84,0,0,0,41,3,114,32,
+ 0,0,0,114,41,0,0,0,114,84,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,59,1,0,0,115,18,0,0,0,2,6,10,1,6,1,
+ 4,255,12,2,6,1,2,255,12,2,10,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,8,0,
+ 0,0,67,0,0,0,115,72,0,0,0,122,15,116,0,124,
+ 0,106,1,131,1,124,0,95,2,124,0,106,2,116,3,124,
+ 0,106,1,60,0,87,0,100,1,83,0,4,0,116,4,121,
+ 35,1,0,1,0,1,0,116,3,160,5,124,0,106,1,100,
+ 1,161,2,1,0,105,0,124,0,95,2,89,0,100,1,83,
+ 0,119,0,41,2,122,41,82,101,108,111,97,100,32,116,104,
+ 101,32,102,105,108,101,32,100,97,116,97,32,111,102,32,116,
+ 104,101,32,97,114,99,104,105,118,101,32,112,97,116,104,46,
+ 78,41,6,114,27,0,0,0,114,29,0,0,0,114,28,0,
+ 0,0,114,25,0,0,0,114,3,0,0,0,218,3,112,111,
+ 112,169,1,114,32,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,17,105,110,118,97,108,105,100,
+ 97,116,101,95,99,97,99,104,101,115,74,1,0,0,115,14,
+ 0,0,0,2,2,12,1,18,1,12,1,14,1,12,1,2,
+ 254,122,29,122,105,112,105,109,112,111,114,116,101,114,46,105,
+ 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,8,0,0,0,67,0,0,0,115,72,0,0,0,122,15,
- 116,0,124,0,106,1,131,1,124,0,95,2,124,0,106,2,
- 116,3,124,0,106,1,60,0,87,0,100,1,83,0,4,0,
- 116,4,121,35,1,0,1,0,1,0,116,3,160,5,124,0,
- 106,1,100,1,161,2,1,0,100,1,124,0,95,2,89,0,
- 100,1,83,0,119,0,41,2,122,41,82,101,108,111,97,100,
- 32,116,104,101,32,102,105,108,101,32,100,97,116,97,32,111,
- 102,32,116,104,101,32,97,114,99,104,105,118,101,32,112,97,
- 116,104,46,78,41,6,114,27,0,0,0,114,29,0,0,0,
- 114,28,0,0,0,114,25,0,0,0,114,3,0,0,0,218,
- 3,112,111,112,169,1,114,32,0,0,0,114,9,0,0,0,
- 114,9,0,0,0,114,10,0,0,0,218,17,105,110,118,97,
- 108,105,100,97,116,101,95,99,97,99,104,101,115,74,1,0,
- 0,115,14,0,0,0,2,2,12,1,18,1,12,1,14,1,
- 12,1,2,254,122,29,122,105,112,105,109,112,111,114,116,101,
- 114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
- 104,101,115,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,114,87,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,84,1,0,0,115,2,0,0,0,24,
- 1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,95,
- 95,114,101,112,114,95,95,169,1,78,41,17,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,44,0,0,0,114,45,
- 0,0,0,114,49,0,0,0,114,55,0,0,0,114,62,0,
- 0,0,114,63,0,0,0,114,70,0,0,0,114,46,0,0,
- 0,114,83,0,0,0,114,85,0,0,0,114,88,0,0,0,
- 114,89,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,46,0,
- 0,0,115,30,0,0,0,8,0,4,1,8,17,10,46,10,
- 37,10,16,8,27,8,10,8,21,8,12,8,26,8,13,8,
- 43,8,15,12,10,122,12,95,95,105,110,105,116,95,95,46,
- 112,121,99,84,114,66,0,0,0,70,41,3,122,4,46,112,
- 121,99,84,70,41,3,114,67,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,41,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,39,0,0,0,102,1,0,
- 0,115,2,0,0,0,20,1,114,39,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,114,90,0,
- 0,0,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,40,0,0,0,106,1,0,0,115,4,0,0,0,
- 8,4,10,2,114,40,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,56,0,0,0,116,0,124,0,124,1,131,2,125,
- 2,116,1,68,0,93,18,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,
- 25,124,5,2,0,1,0,83,0,113,7,100,0,83,0,114,
- 90,0,0,0,41,3,114,39,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,41,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,54,0,0,0,114,69,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,114,87,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,84,1,0,0,115,2,0,0,0,24,1,122,20,
+ 122,105,112,105,109,112,111,114,116,101,114,46,95,95,114,101,
+ 112,114,95,95,169,1,78,41,17,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,44,0,0,0,114,45,0,0,0,
+ 114,49,0,0,0,114,55,0,0,0,114,62,0,0,0,114,
+ 63,0,0,0,114,70,0,0,0,114,46,0,0,0,114,83,
+ 0,0,0,114,85,0,0,0,114,88,0,0,0,114,89,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,46,0,0,0,115,
+ 30,0,0,0,8,0,4,1,8,17,10,46,10,37,10,16,
+ 8,27,8,10,8,21,8,12,8,26,8,13,8,43,8,15,
+ 12,10,122,12,95,95,105,110,105,116,95,95,46,112,121,99,
+ 84,114,66,0,0,0,70,41,3,122,4,46,112,121,99,84,
+ 70,41,3,114,67,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,41,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,114,39,0,0,0,102,1,0,0,115,2,
+ 0,0,0,20,1,114,39,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,114,90,0,0,0,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,
+ 40,0,0,0,106,1,0,0,115,4,0,0,0,8,4,10,
+ 2,114,40,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,
+ 56,0,0,0,116,0,124,0,124,1,131,2,125,2,116,1,
+ 68,0,93,18,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,25,124,5,
+ 2,0,1,0,83,0,113,7,100,0,83,0,114,90,0,0,
+ 0,41,3,114,39,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,41,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,54,0,0,0,114,69,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,114,38,0,
+ 0,0,115,1,0,0,115,14,0,0,0,10,1,14,1,8,
+ 1,10,1,8,1,2,255,4,2,114,38,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,220,4,0,0,122,7,116,0,
+ 160,1,124,0,161,1,125,1,87,0,110,16,4,0,116,2,
+ 121,23,1,0,1,0,1,0,116,3,100,1,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,119,0,124,1,144,2,
+ 143,65,1,0,122,18,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,16,4,0,116,2,121,62,
+ 1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,
+ 124,0,100,2,141,2,130,1,119,0,116,8,124,3,131,1,
+ 116,5,107,3,114,78,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,114,201,122,12,124,1,160,4,100,6,
+ 100,3,161,2,1,0,124,1,160,6,161,0,125,4,87,0,
+ 110,16,4,0,116,2,121,114,1,0,1,0,1,0,116,3,
+ 100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
+ 119,0,116,10,124,4,116,11,24,0,116,5,24,0,100,6,
+ 131,2,125,5,122,11,124,1,160,4,124,5,161,1,1,0,
+ 124,1,160,7,161,0,125,6,87,0,110,16,4,0,116,2,
+ 121,151,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,119,0,124,6,160,12,
+ 116,9,161,1,125,7,124,7,100,6,107,0,114,170,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,114,193,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,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,114,243,
+ 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,1,114,9,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,7,124,1,160,4,124,2,161,1,
+ 1,0,87,0,110,17,4,0,116,2,144,1,121,37,1,0,
+ 1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
+ 100,2,141,2,130,1,119,0,9,0,124,1,160,7,100,16,
+ 161,1,125,3,116,8,124,3,131,1,100,5,107,0,144,1,
+ 114,55,116,14,100,17,131,1,130,1,124,3,100,0,100,5,
+ 133,2,25,0,100,18,107,3,144,1,114,66,144,2,113,85,
+ 116,8,124,3,131,1,100,16,107,3,144,1,114,77,116,14,
+ 100,17,131,1,130,1,116,15,124,3,100,19,100,20,133,2,
+ 25,0,131,1,125,13,116,15,124,3,100,20,100,9,133,2,
+ 25,0,131,1,125,14,116,15,124,3,100,9,100,21,133,2,
+ 25,0,131,1,125,15,116,15,124,3,100,21,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,22,133,2,
+ 25,0,131,1,125,18,116,13,124,3,100,22,100,23,133,2,
+ 25,0,131,1,125,4,116,15,124,3,100,23,100,24,133,2,
+ 25,0,131,1,125,19,116,15,124,3,100,24,100,25,133,2,
+ 25,0,131,1,125,20,116,15,124,3,100,25,100,26,133,2,
+ 25,0,131,1,125,21,116,13,124,3,100,27,100,16,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,1,114,185,116,3,100,28,
+ 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,22,
+ 124,10,55,0,125,22,122,7,124,1,160,7,124,19,161,1,
+ 125,23,87,0,110,17,4,0,116,2,144,1,121,213,1,0,
+ 1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
+ 100,2,141,2,130,1,119,0,116,8,124,23,131,1,124,19,
+ 107,3,144,1,114,230,116,3,100,4,124,0,155,2,157,2,
+ 124,0,100,2,141,2,130,1,122,25,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,1,114,254,116,3,100,4,124,0,155,2,157,2,
+ 124,0,100,2,141,2,130,1,87,0,110,17,4,0,116,2,
+ 144,2,121,16,1,0,1,0,1,0,116,3,100,4,124,0,
+ 155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,13,
+ 100,29,64,0,144,2,114,27,124,23,160,16,161,0,125,23,
+ 110,26,122,7,124,23,160,16,100,30,161,1,125,23,87,0,
+ 110,18,4,0,116,17,144,2,121,52,1,0,1,0,1,0,
+ 124,23,160,16,100,31,161,1,160,18,116,19,161,1,125,23,
+ 89,0,110,1,119,0,124,23,160,20,100,32,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,33,55,0,
+ 125,12,144,1,113,39,87,0,100,0,4,0,4,0,131,3,
+ 1,0,110,9,49,0,144,2,115,96,119,1,1,0,1,0,
+ 1,0,89,0,1,0,116,24,160,25,100,34,124,12,124,0,
+ 161,3,1,0,124,11,83,0,41,35,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,93,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,84,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,
+ 58,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,68,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,48,
+ 0,0,0,114,81,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,47,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,146,1,0,0,115,238,0,
+ 0,0,2,1,14,1,12,1,18,1,2,255,8,3,2,1,
+ 14,1,8,1,14,1,12,1,18,1,2,255,12,2,18,1,
+ 16,1,2,3,12,1,12,1,12,1,10,1,2,1,6,255,
+ 2,255,8,3,2,1,2,255,2,1,4,255,2,2,10,1,
+ 12,1,12,1,10,1,2,1,6,255,2,255,10,3,8,1,
+ 10,1,2,1,6,255,16,2,12,1,10,1,2,1,6,255,
+ 16,2,16,2,16,1,8,1,18,1,8,1,18,1,8,1,
+ 8,1,10,1,18,1,4,2,4,2,2,1,14,1,14,1,
+ 18,1,2,255,2,2,10,1,14,1,8,1,18,2,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,1,2,2,14,1,14,1,18,1,2,255,14,2,18,1,
+ 2,4,28,1,18,1,4,255,14,2,18,1,2,255,10,3,
+ 10,2,2,3,14,1,14,1,20,1,2,255,12,3,12,1,
+ 20,1,8,1,8,1,4,202,2,6,30,196,14,109,4,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,106,0,0,0,116,0,114,11,116,1,160,2,100,1,
+ 161,1,1,0,116,3,100,2,131,1,130,1,100,3,97,0,
+ 122,29,122,8,100,4,100,5,108,4,109,5,125,0,1,0,
+ 87,0,110,16,4,0,116,6,121,38,1,0,1,0,1,0,
+ 116,1,160,2,100,1,161,1,1,0,116,3,100,2,131,1,
+ 130,1,119,0,87,0,100,6,97,0,110,3,100,6,97,0,
+ 119,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,48,
+ 0,0,0,114,81,0,0,0,114,3,0,0,0,90,4,122,
+ 108,105,98,114,147,0,0,0,218,9,69,120,99,101,112,116,
+ 105,111,110,114,146,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,48,2,0,
+ 0,115,28,0,0,0,4,2,10,3,8,1,4,2,4,1,
+ 16,1,12,1,10,1,8,1,2,254,2,255,12,5,10,2,
+ 4,1,114,150,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,120,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,
+ 18,116,0,100,2,131,1,130,1,116,1,160,2,124,0,161,
+ 1,143,129,125,10,122,7,124,10,160,3,124,6,161,1,1,
+ 0,87,0,110,16,4,0,116,4,121,47,1,0,1,0,1,
+ 0,116,0,100,3,124,0,155,2,157,2,124,0,100,4,141,
+ 2,130,1,119,0,124,10,160,5,100,5,161,1,125,11,116,
+ 6,124,11,131,1,100,5,107,3,114,63,116,7,100,6,131,
+ 1,130,1,124,11,100,0,100,7,133,2,25,0,100,8,107,
+ 3,114,80,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,7,124,10,160,3,124,
+ 6,161,1,1,0,87,0,110,16,4,0,116,4,121,129,1,
+ 0,1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,
+ 0,100,4,141,2,130,1,119,0,124,10,160,5,124,4,161,
+ 1,125,15,116,6,124,15,131,1,124,4,107,3,114,145,116,
+ 4,100,12,131,1,130,1,87,0,100,0,4,0,4,0,131,
+ 3,1,0,110,8,49,0,115,155,119,1,1,0,1,0,1,
+ 0,89,0,1,0,124,3,100,1,107,2,114,166,124,15,83,
+ 0,122,5,116,9,131,0,125,16,87,0,110,11,4,0,116,
+ 10,121,182,1,0,1,0,1,0,116,0,100,13,131,1,130,
+ 1,119,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,98,0,0,0,114,12,
+ 0,0,0,114,110,0,0,0,114,104,0,0,0,114,99,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,109,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,145,0,0,0,105,
+ 241,255,255,255,41,11,114,3,0,0,0,114,116,0,0,0,
+ 114,117,0,0,0,114,118,0,0,0,114,22,0,0,0,114,
+ 120,0,0,0,114,58,0,0,0,114,125,0,0,0,114,1,
+ 0,0,0,114,150,0,0,0,114,149,0,0,0,41,17,114,
+ 29,0,0,0,114,61,0,0,0,90,8,100,97,116,97,112,
+ 97,116,104,114,136,0,0,0,114,140,0,0,0,114,131,0,
+ 0,0,114,143,0,0,0,114,137,0,0,0,114,138,0,0,
+ 0,114,139,0,0,0,114,129,0,0,0,114,130,0,0,0,
+ 114,141,0,0,0,114,142,0,0,0,114,133,0,0,0,90,
+ 8,114,97,119,95,100,97,116,97,114,147,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,114,59,0,
+ 0,0,69,2,0,0,115,72,0,0,0,20,1,8,1,8,
+ 1,12,2,2,2,14,1,12,1,18,1,2,255,10,2,12,
+ 1,8,1,16,2,18,2,16,2,16,1,12,1,8,1,2,
+ 1,14,1,12,1,18,1,2,255,10,2,12,1,8,1,2,
+ 255,28,233,8,26,4,2,2,3,10,1,12,1,8,1,2,
+ 255,10,2,114,59,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,115,2,0,0,115,2,0,
+ 0,0,16,2,114,153,0,0,0,99,5,0,0,0,0,0,
+ 0,0,0,0,0,0,14,0,0,0,6,0,0,0,67,0,
+ 0,0,115,254,0,0,0,124,3,124,2,100,1,156,2,125,
+ 5,116,0,160,1,124,4,124,3,124,5,161,3,125,6,124,
+ 6,100,2,64,0,100,3,107,3,125,7,124,7,114,63,124,
+ 6,100,4,64,0,100,3,107,3,125,8,116,2,106,3,100,
+ 5,107,3,114,62,124,8,115,38,116,2,106,3,100,6,107,
+ 2,114,62,116,4,124,0,124,2,131,2,125,9,124,9,100,
+ 0,117,1,114,62,116,2,160,5,116,0,106,6,124,9,161,
+ 2,125,10,116,0,160,7,124,4,124,10,124,3,124,5,161,
+ 4,1,0,110,40,116,8,124,0,124,2,131,2,92,2,125,
+ 11,125,12,124,11,114,103,116,9,116,10,124,4,100,7,100,
+ 8,133,2,25,0,131,1,124,11,131,2,114,93,116,10,124,
+ 4,100,8,100,9,133,2,25,0,131,1,124,12,107,3,114,
+ 103,116,11,160,12,100,10,124,3,155,2,157,2,161,1,1,
+ 0,100,0,83,0,116,13,160,14,124,4,100,9,100,0,133,
+ 2,25,0,161,1,125,13,116,15,124,13,116,16,131,2,115,
+ 125,116,17,100,11,124,1,155,2,100,12,157,3,131,1,130,
+ 1,124,13,83,0,41,13,78,41,2,114,47,0,0,0,114,
+ 13,0,0,0,114,5,0,0,0,114,0,0,0,0,114,93,
+ 0,0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,
+ 121,115,114,105,0,0,0,114,100,0,0,0,114,101,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,18,114,21,0,0,0,90,13,95,99,108,97,115,
+ 115,105,102,121,95,112,121,99,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,153,0,0,0,114,2,
+ 0,0,0,114,48,0,0,0,114,81,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,60,0,0,0,114,69,0,0,0,114,41,0,0,0,114,
+ 132,0,0,0,90,11,101,120,99,95,100,101,116,97,105,108,
+ 115,114,135,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,156,
+ 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,53,
+ 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,123,2,0,0,115,72,0,0,0,2,2,2,1,
+ 6,254,14,5,12,2,4,1,12,1,10,1,2,1,2,255,
+ 8,1,2,255,10,2,8,1,4,1,4,1,2,1,4,254,
+ 4,5,8,1,4,255,2,128,8,4,6,255,4,3,22,3,
+ 18,1,2,255,4,2,8,1,4,255,4,2,18,2,10,1,
+ 16,1,4,1,114,161,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,168,2,0,0,115,6,0,0,0,12,1,12,1,4,
+ 1,114,165,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,
+ 79,0,0,0,84,41,1,90,12,100,111,110,116,95,105,110,
+ 104,101,114,105,116,41,2,114,165,0,0,0,218,7,99,111,
+ 109,112,105,108,101,41,2,114,60,0,0,0,114,164,0,0,
0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 114,38,0,0,0,115,1,0,0,115,14,0,0,0,10,1,
- 14,1,8,1,10,1,8,1,2,255,4,2,114,38,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,220,4,0,0,122,
- 7,116,0,160,1,124,0,161,1,125,1,87,0,110,16,4,
- 0,116,2,121,23,1,0,1,0,1,0,116,3,100,1,124,
- 0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,
- 1,144,2,143,65,1,0,122,18,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,16,4,0,116,
- 2,121,62,1,0,1,0,1,0,116,3,100,4,124,0,155,
- 2,157,2,124,0,100,2,141,2,130,1,119,0,116,8,124,
- 3,131,1,116,5,107,3,114,78,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,114,201,122,12,124,1,160,
- 4,100,6,100,3,161,2,1,0,124,1,160,6,161,0,125,
- 4,87,0,110,16,4,0,116,2,121,114,1,0,1,0,1,
- 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,
- 2,130,1,119,0,116,10,124,4,116,11,24,0,116,5,24,
- 0,100,6,131,2,125,5,122,11,124,1,160,4,124,5,161,
- 1,1,0,124,1,160,7,161,0,125,6,87,0,110,16,4,
- 0,116,2,121,151,1,0,1,0,1,0,116,3,100,4,124,
- 0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124,
- 6,160,12,116,9,161,1,125,7,124,7,100,6,107,0,114,
- 170,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,114,193,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,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,114,243,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,1,114,9,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,7,124,1,160,4,124,
- 2,161,1,1,0,87,0,110,17,4,0,116,2,144,1,121,
- 37,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,
- 2,124,0,100,2,141,2,130,1,119,0,9,0,124,1,160,
- 7,100,16,161,1,125,3,116,8,124,3,131,1,100,5,107,
- 0,144,1,114,55,116,14,100,17,131,1,130,1,124,3,100,
- 0,100,5,133,2,25,0,100,18,107,3,144,1,114,66,144,
- 2,113,85,116,8,124,3,131,1,100,16,107,3,144,1,114,
- 77,116,14,100,17,131,1,130,1,116,15,124,3,100,19,100,
- 20,133,2,25,0,131,1,125,13,116,15,124,3,100,20,100,
- 9,133,2,25,0,131,1,125,14,116,15,124,3,100,9,100,
- 21,133,2,25,0,131,1,125,15,116,15,124,3,100,21,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,
- 22,133,2,25,0,131,1,125,18,116,13,124,3,100,22,100,
- 23,133,2,25,0,131,1,125,4,116,15,124,3,100,23,100,
- 24,133,2,25,0,131,1,125,19,116,15,124,3,100,24,100,
- 25,133,2,25,0,131,1,125,20,116,15,124,3,100,25,100,
- 26,133,2,25,0,131,1,125,21,116,13,124,3,100,27,100,
- 16,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,1,114,185,116,
- 3,100,28,124,0,155,2,157,2,124,0,100,2,141,2,130,
- 1,124,22,124,10,55,0,125,22,122,7,124,1,160,7,124,
- 19,161,1,125,23,87,0,110,17,4,0,116,2,144,1,121,
- 213,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157,
- 2,124,0,100,2,141,2,130,1,119,0,116,8,124,23,131,
- 1,124,19,107,3,144,1,114,230,116,3,100,4,124,0,155,
- 2,157,2,124,0,100,2,141,2,130,1,122,25,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,1,114,254,116,3,100,4,124,0,155,
- 2,157,2,124,0,100,2,141,2,130,1,87,0,110,17,4,
- 0,116,2,144,2,121,16,1,0,1,0,1,0,116,3,100,
- 4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,119,
- 0,124,13,100,29,64,0,144,2,114,27,124,23,160,16,161,
- 0,125,23,110,26,122,7,124,23,160,16,100,30,161,1,125,
- 23,87,0,110,18,4,0,116,17,144,2,121,52,1,0,1,
- 0,1,0,124,23,160,16,100,31,161,1,160,18,116,19,161,
- 1,125,23,89,0,110,1,119,0,124,23,160,20,100,32,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,
- 33,55,0,125,12,144,1,113,39,87,0,100,0,4,0,4,
- 0,131,3,1,0,110,9,49,0,144,2,115,96,119,1,1,
- 0,1,0,1,0,89,0,1,0,116,24,160,25,100,34,124,
- 12,124,0,161,3,1,0,124,11,83,0,41,35,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,93,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,84,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,58,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,68,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,48,0,0,0,114,81,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,47,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,146,1,0,0,
- 115,238,0,0,0,2,1,14,1,12,1,18,1,2,255,8,
- 3,2,1,14,1,8,1,14,1,12,1,18,1,2,255,12,
- 2,18,1,16,1,2,3,12,1,12,1,12,1,10,1,2,
- 1,6,255,2,255,8,3,2,1,2,255,2,1,4,255,2,
- 2,10,1,12,1,12,1,10,1,2,1,6,255,2,255,10,
- 3,8,1,10,1,2,1,6,255,16,2,12,1,10,1,2,
- 1,6,255,16,2,16,2,16,1,8,1,18,1,8,1,18,
- 1,8,1,8,1,10,1,18,1,4,2,4,2,2,1,14,
- 1,14,1,18,1,2,255,2,2,10,1,14,1,8,1,18,
- 2,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,1,2,2,14,1,14,1,18,1,2,255,14,
- 2,18,1,2,4,28,1,18,1,4,255,14,2,18,1,2,
- 255,10,3,10,2,2,3,14,1,14,1,20,1,2,255,12,
- 3,12,1,20,1,8,1,8,1,4,202,2,6,30,196,14,
- 109,4,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,106,0,0,0,116,0,114,11,116,1,160,
- 2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100,
- 3,97,0,122,29,122,8,100,4,100,5,108,4,109,5,125,
- 0,1,0,87,0,110,16,4,0,116,6,121,38,1,0,1,
- 0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100,
- 2,131,1,130,1,119,0,87,0,100,6,97,0,110,3,100,
- 6,97,0,119,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,48,0,0,0,114,81,0,0,0,114,3,0,0,0,
- 90,4,122,108,105,98,114,147,0,0,0,218,9,69,120,99,
- 101,112,116,105,111,110,114,146,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,
- 48,2,0,0,115,28,0,0,0,4,2,10,3,8,1,4,
- 2,4,1,16,1,12,1,10,1,8,1,2,254,2,255,12,
- 5,10,2,4,1,114,150,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,120,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,18,116,0,100,2,131,1,130,1,116,1,160,2,
- 124,0,161,1,143,129,125,10,122,7,124,10,160,3,124,6,
- 161,1,1,0,87,0,110,16,4,0,116,4,121,47,1,0,
- 1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,0,
- 100,4,141,2,130,1,119,0,124,10,160,5,100,5,161,1,
- 125,11,116,6,124,11,131,1,100,5,107,3,114,63,116,7,
- 100,6,131,1,130,1,124,11,100,0,100,7,133,2,25,0,
- 100,8,107,3,114,80,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,7,124,10,
- 160,3,124,6,161,1,1,0,87,0,110,16,4,0,116,4,
- 121,129,1,0,1,0,1,0,116,0,100,3,124,0,155,2,
- 157,2,124,0,100,4,141,2,130,1,119,0,124,10,160,5,
- 124,4,161,1,125,15,116,6,124,15,131,1,124,4,107,3,
- 114,145,116,4,100,12,131,1,130,1,87,0,100,0,4,0,
- 4,0,131,3,1,0,110,8,49,0,115,155,119,1,1,0,
- 1,0,1,0,89,0,1,0,124,3,100,1,107,2,114,166,
- 124,15,83,0,122,5,116,9,131,0,125,16,87,0,110,11,
- 4,0,116,10,121,182,1,0,1,0,1,0,116,0,100,13,
- 131,1,130,1,119,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,98,0,0,
- 0,114,12,0,0,0,114,110,0,0,0,114,104,0,0,0,
- 114,99,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,109,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,145,0,
- 0,0,105,241,255,255,255,41,11,114,3,0,0,0,114,116,
- 0,0,0,114,117,0,0,0,114,118,0,0,0,114,22,0,
- 0,0,114,120,0,0,0,114,58,0,0,0,114,125,0,0,
- 0,114,1,0,0,0,114,150,0,0,0,114,149,0,0,0,
- 41,17,114,29,0,0,0,114,61,0,0,0,90,8,100,97,
- 116,97,112,97,116,104,114,136,0,0,0,114,140,0,0,0,
- 114,131,0,0,0,114,143,0,0,0,114,137,0,0,0,114,
- 138,0,0,0,114,139,0,0,0,114,129,0,0,0,114,130,
- 0,0,0,114,141,0,0,0,114,142,0,0,0,114,133,0,
- 0,0,90,8,114,97,119,95,100,97,116,97,114,147,0,0,
- 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 114,59,0,0,0,69,2,0,0,115,72,0,0,0,20,1,
- 8,1,8,1,12,2,2,2,14,1,12,1,18,1,2,255,
- 10,2,12,1,8,1,16,2,18,2,16,2,16,1,12,1,
- 8,1,2,1,14,1,12,1,18,1,2,255,10,2,12,1,
- 8,1,2,255,28,233,8,26,4,2,2,3,10,1,12,1,
- 8,1,2,255,10,2,114,59,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,115,2,0,0,
- 115,2,0,0,0,16,2,114,153,0,0,0,99,5,0,0,
- 0,0,0,0,0,0,0,0,0,14,0,0,0,6,0,0,
- 0,67,0,0,0,115,254,0,0,0,124,3,124,2,100,1,
- 156,2,125,5,116,0,160,1,124,4,124,3,124,5,161,3,
- 125,6,124,6,100,2,64,0,100,3,107,3,125,7,124,7,
- 114,63,124,6,100,4,64,0,100,3,107,3,125,8,116,2,
- 106,3,100,5,107,3,114,62,124,8,115,38,116,2,106,3,
- 100,6,107,2,114,62,116,4,124,0,124,2,131,2,125,9,
- 124,9,100,0,117,1,114,62,116,2,160,5,116,0,106,6,
- 124,9,161,2,125,10,116,0,160,7,124,4,124,10,124,3,
- 124,5,161,4,1,0,110,40,116,8,124,0,124,2,131,2,
- 92,2,125,11,125,12,124,11,114,103,116,9,116,10,124,4,
- 100,7,100,8,133,2,25,0,131,1,124,11,131,2,114,93,
- 116,10,124,4,100,8,100,9,133,2,25,0,131,1,124,12,
- 107,3,114,103,116,11,160,12,100,10,124,3,155,2,157,2,
- 161,1,1,0,100,0,83,0,116,13,160,14,124,4,100,9,
- 100,0,133,2,25,0,161,1,125,13,116,15,124,13,116,16,
- 131,2,115,125,116,17,100,11,124,1,155,2,100,12,157,3,
- 131,1,130,1,124,13,83,0,41,13,78,41,2,114,47,0,
- 0,0,114,13,0,0,0,114,5,0,0,0,114,0,0,0,
- 0,114,93,0,0,0,90,5,110,101,118,101,114,90,6,97,
- 108,119,97,121,115,114,105,0,0,0,114,100,0,0,0,114,
- 101,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,18,114,21,0,0,0,90,13,95,99,
- 108,97,115,115,105,102,121,95,112,121,99,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,153,0,0,
- 0,114,2,0,0,0,114,48,0,0,0,114,81,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,60,0,0,0,114,69,0,0,0,114,41,0,
- 0,0,114,132,0,0,0,90,11,101,120,99,95,100,101,116,
- 97,105,108,115,114,135,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,156,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,53,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,123,2,0,0,115,72,0,0,0,2,
- 2,2,1,6,254,14,5,12,2,4,1,12,1,10,1,2,
- 1,2,255,8,1,2,255,10,2,8,1,4,1,4,1,2,
- 1,4,254,4,5,8,1,4,255,2,128,8,4,6,255,4,
- 3,22,3,18,1,2,255,4,2,8,1,4,255,4,2,18,
- 2,10,1,16,1,4,1,114,161,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,168,2,0,0,115,6,0,0,0,12,1,
- 12,1,4,1,114,165,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,79,0,0,0,84,41,1,90,12,100,111,110,116,
- 95,105,110,104,101,114,105,116,41,2,114,165,0,0,0,218,
- 7,99,111,109,112,105,108,101,41,2,114,60,0,0,0,114,
- 164,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,175,2,0,0,115,4,0,0,0,8,1,16,
- 1,114,167,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,93,
- 0,0,0,114,14,0,0,0,41,2,114,137,0,0,0,90,
- 6,109,107,116,105,109,101,41,2,218,1,100,114,144,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,
- 181,2,0,0,115,18,0,0,0,4,1,10,1,10,1,6,
- 1,6,1,10,1,10,1,6,1,6,249,114,175,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,41,
- 124,1,100,1,100,0,133,2,25,0,100,2,118,0,115,11,
- 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,54,1,0,
- 1,0,1,0,89,0,100,6,83,0,119,0,41,7,78,114,
- 14,0,0,0,169,2,218,1,99,218,1,111,114,169,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,175,
- 0,0,0,114,26,0,0,0,218,10,73,110,100,101,120,69,
- 114,114,111,114,114,160,0,0,0,41,6,114,32,0,0,0,
- 114,13,0,0,0,114,61,0,0,0,114,137,0,0,0,114,
- 138,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,157,0,0,0,194,2,0,0,115,
- 22,0,0,0,2,1,20,2,12,1,10,1,8,3,8,1,
- 8,1,16,1,18,1,6,1,2,255,114,157,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,10,74,0,130,
- 1,124,1,100,0,100,1,133,2,25,0,125,1,122,7,124,
- 0,106,0,124,1,25,0,125,2,87,0,110,10,4,0,116,
- 1,121,33,1,0,1,0,1,0,89,0,100,0,83,0,119,
- 0,116,2,124,0,106,3,124,2,131,2,83,0,41,3,78,
- 114,14,0,0,0,114,176,0,0,0,41,4,114,28,0,0,
- 0,114,26,0,0,0,114,59,0,0,0,114,29,0,0,0,
- 41,3,114,32,0,0,0,114,13,0,0,0,114,61,0,0,
- 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 114,155,0,0,0,213,2,0,0,115,16,0,0,0,20,2,
- 12,1,2,2,14,1,12,1,6,1,2,255,12,3,114,155,
+ 218,15,95,99,111,109,112,105,108,101,95,115,111,117,114,99,
+ 101,175,2,0,0,115,4,0,0,0,8,1,16,1,114,167,
0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 14,0,0,0,11,0,0,0,67,0,0,0,115,14,1,0,
- 0,116,0,124,0,124,1,131,2,125,2,100,0,125,3,116,
- 1,68,0,93,102,92,3,125,4,125,5,125,6,124,2,124,
- 4,23,0,125,7,116,2,106,3,100,1,124,0,106,4,116,
- 5,124,7,100,2,100,3,141,5,1,0,122,7,124,0,106,
- 6,124,7,25,0,125,8,87,0,110,9,4,0,116,7,121,
- 45,1,0,1,0,1,0,89,0,113,9,119,0,124,8,100,
- 4,25,0,125,9,116,8,124,0,106,4,124,8,131,2,125,
- 10,100,0,125,11,124,5,114,91,122,10,116,9,124,0,124,
- 9,124,7,124,1,124,10,131,5,125,11,87,0,110,25,4,
- 0,116,10,121,90,1,0,125,12,1,0,122,8,124,12,125,
- 3,87,0,89,0,100,0,125,12,126,12,110,10,100,0,125,
- 12,126,12,119,1,119,0,116,11,124,9,124,10,131,2,125,
- 11,124,11,100,0,117,0,114,101,113,9,124,8,100,4,25,
- 0,125,9,124,11,124,6,124,9,102,3,2,0,1,0,83,
- 0,124,3,114,126,100,5,124,3,155,0,157,2,125,13,116,
- 12,124,13,124,1,100,6,141,2,124,3,130,2,116,12,100,
- 7,124,1,155,2,157,2,124,1,100,6,141,2,130,1,41,
- 8,78,122,13,116,114,121,105,110,103,32,123,125,123,125,123,
- 125,114,93,0,0,0,41,1,90,9,118,101,114,98,111,115,
- 105,116,121,114,0,0,0,0,122,20,109,111,100,117,108,101,
- 32,108,111,97,100,32,102,97,105,108,101,100,58,32,114,65,
- 0,0,0,114,64,0,0,0,41,13,114,39,0,0,0,114,
- 95,0,0,0,114,48,0,0,0,114,81,0,0,0,114,29,
- 0,0,0,114,20,0,0,0,114,28,0,0,0,114,26,0,
- 0,0,114,59,0,0,0,114,161,0,0,0,114,80,0,0,
- 0,114,167,0,0,0,114,3,0,0,0,41,14,114,32,0,
- 0,0,114,41,0,0,0,114,13,0,0,0,90,12,105,109,
- 112,111,114,116,95,101,114,114,111,114,114,96,0,0,0,114,
- 97,0,0,0,114,54,0,0,0,114,69,0,0,0,114,61,
- 0,0,0,114,43,0,0,0,114,132,0,0,0,114,53,0,
- 0,0,90,3,101,120,99,114,82,0,0,0,114,9,0,0,
- 0,114,9,0,0,0,114,10,0,0,0,114,51,0,0,0,
- 228,2,0,0,115,58,0,0,0,10,1,4,1,14,1,8,
- 1,22,1,2,1,14,1,12,1,4,1,2,255,8,3,12,
- 1,4,1,4,1,2,1,20,1,14,1,16,1,8,128,2,
- 255,10,3,8,1,2,3,8,1,14,1,4,2,10,1,14,
- 1,18,2,114,51,0,0,0,41,46,114,91,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,48,0,
- 0,0,114,154,0,0,0,114,116,0,0,0,114,158,0,0,
- 0,114,72,0,0,0,114,137,0,0,0,114,35,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,80,0,0,0,114,3,0,0,0,114,25,
- 0,0,0,218,4,116,121,112,101,114,75,0,0,0,114,119,
- 0,0,0,114,121,0,0,0,114,123,0,0,0,90,13,95,
- 76,111,97,100,101,114,66,97,115,105,99,115,114,4,0,0,
- 0,114,95,0,0,0,114,39,0,0,0,114,40,0,0,0,
- 114,38,0,0,0,114,27,0,0,0,114,128,0,0,0,114,
- 148,0,0,0,114,150,0,0,0,114,59,0,0,0,114,153,
- 0,0,0,114,161,0,0,0,218,8,95,95,99,111,100,101,
- 95,95,114,159,0,0,0,114,165,0,0,0,114,167,0,0,
- 0,114,175,0,0,0,114,157,0,0,0,114,155,0,0,0,
- 114,51,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,90,0,0,0,4,0,8,16,
- 16,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,
- 8,2,6,3,14,1,16,3,4,4,8,2,4,2,4,1,
- 4,1,18,2,0,127,0,127,12,50,12,1,2,1,2,1,
- 4,252,8,9,8,4,8,9,8,31,2,126,2,254,4,29,
- 8,5,8,21,8,46,8,8,10,40,8,5,8,7,8,6,
- 8,13,8,19,12,15,
+ 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,93,0,0,0,
+ 114,14,0,0,0,41,2,114,137,0,0,0,90,6,109,107,
+ 116,105,109,101,41,2,218,1,100,114,144,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,181,2,0,
+ 0,115,18,0,0,0,4,1,10,1,10,1,6,1,6,1,
+ 10,1,10,1,6,1,6,249,114,175,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,41,124,1,100,
+ 1,100,0,133,2,25,0,100,2,118,0,115,11,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,54,1,0,1,0,1,
+ 0,89,0,100,6,83,0,119,0,41,7,78,114,14,0,0,
+ 0,169,2,218,1,99,218,1,111,114,169,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,175,0,0,0,
+ 114,26,0,0,0,218,10,73,110,100,101,120,69,114,114,111,
+ 114,114,160,0,0,0,41,6,114,32,0,0,0,114,13,0,
+ 0,0,114,61,0,0,0,114,137,0,0,0,114,138,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,157,0,0,0,194,2,0,0,115,22,0,0,
+ 0,2,1,20,2,12,1,10,1,8,3,8,1,8,1,16,
+ 1,18,1,6,1,2,255,114,157,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,10,74,0,130,1,124,1,
+ 100,0,100,1,133,2,25,0,125,1,122,7,124,0,106,0,
+ 124,1,25,0,125,2,87,0,110,10,4,0,116,1,121,33,
+ 1,0,1,0,1,0,89,0,100,0,83,0,119,0,116,2,
+ 124,0,106,3,124,2,131,2,83,0,41,3,78,114,14,0,
+ 0,0,114,176,0,0,0,41,4,114,28,0,0,0,114,26,
+ 0,0,0,114,59,0,0,0,114,29,0,0,0,41,3,114,
+ 32,0,0,0,114,13,0,0,0,114,61,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,114,155,0,
+ 0,0,213,2,0,0,115,16,0,0,0,20,2,12,1,2,
+ 2,14,1,12,1,6,1,2,255,12,3,114,155,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,14,0,0,
+ 0,11,0,0,0,67,0,0,0,115,14,1,0,0,116,0,
+ 124,0,124,1,131,2,125,2,100,0,125,3,116,1,68,0,
+ 93,102,92,3,125,4,125,5,125,6,124,2,124,4,23,0,
+ 125,7,116,2,106,3,100,1,124,0,106,4,116,5,124,7,
+ 100,2,100,3,141,5,1,0,122,7,124,0,106,6,124,7,
+ 25,0,125,8,87,0,110,9,4,0,116,7,121,45,1,0,
+ 1,0,1,0,89,0,113,9,119,0,124,8,100,4,25,0,
+ 125,9,116,8,124,0,106,4,124,8,131,2,125,10,100,0,
+ 125,11,124,5,114,91,122,10,116,9,124,0,124,9,124,7,
+ 124,1,124,10,131,5,125,11,87,0,110,25,4,0,116,10,
+ 121,90,1,0,125,12,1,0,122,8,124,12,125,3,87,0,
+ 89,0,100,0,125,12,126,12,110,10,100,0,125,12,126,12,
+ 119,1,119,0,116,11,124,9,124,10,131,2,125,11,124,11,
+ 100,0,117,0,114,101,113,9,124,8,100,4,25,0,125,9,
+ 124,11,124,6,124,9,102,3,2,0,1,0,83,0,124,3,
+ 114,126,100,5,124,3,155,0,157,2,125,13,116,12,124,13,
+ 124,1,100,6,141,2,124,3,130,2,116,12,100,7,124,1,
+ 155,2,157,2,124,1,100,6,141,2,130,1,41,8,78,122,
+ 13,116,114,121,105,110,103,32,123,125,123,125,123,125,114,93,
+ 0,0,0,41,1,90,9,118,101,114,98,111,115,105,116,121,
+ 114,0,0,0,0,122,20,109,111,100,117,108,101,32,108,111,
+ 97,100,32,102,97,105,108,101,100,58,32,114,65,0,0,0,
+ 114,64,0,0,0,41,13,114,39,0,0,0,114,95,0,0,
+ 0,114,48,0,0,0,114,81,0,0,0,114,29,0,0,0,
+ 114,20,0,0,0,114,28,0,0,0,114,26,0,0,0,114,
+ 59,0,0,0,114,161,0,0,0,114,80,0,0,0,114,167,
+ 0,0,0,114,3,0,0,0,41,14,114,32,0,0,0,114,
+ 41,0,0,0,114,13,0,0,0,90,12,105,109,112,111,114,
+ 116,95,101,114,114,111,114,114,96,0,0,0,114,97,0,0,
+ 0,114,54,0,0,0,114,69,0,0,0,114,61,0,0,0,
+ 114,43,0,0,0,114,132,0,0,0,114,53,0,0,0,90,
+ 3,101,120,99,114,82,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,51,0,0,0,228,2,0,
+ 0,115,58,0,0,0,10,1,4,1,14,1,8,1,22,1,
+ 2,1,14,1,12,1,4,1,2,255,8,3,12,1,4,1,
+ 4,1,2,1,20,1,14,1,16,1,8,128,2,255,10,3,
+ 8,1,2,3,8,1,14,1,4,2,10,1,14,1,18,2,
+ 114,51,0,0,0,41,46,114,91,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,48,0,0,0,114,
+ 154,0,0,0,114,116,0,0,0,114,158,0,0,0,114,72,
+ 0,0,0,114,137,0,0,0,114,35,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,80,0,0,0,114,3,0,0,0,114,25,0,0,0,
+ 218,4,116,121,112,101,114,75,0,0,0,114,119,0,0,0,
+ 114,121,0,0,0,114,123,0,0,0,90,13,95,76,111,97,
+ 100,101,114,66,97,115,105,99,115,114,4,0,0,0,114,95,
+ 0,0,0,114,39,0,0,0,114,40,0,0,0,114,38,0,
+ 0,0,114,27,0,0,0,114,128,0,0,0,114,148,0,0,
+ 0,114,150,0,0,0,114,59,0,0,0,114,153,0,0,0,
+ 114,161,0,0,0,218,8,95,95,99,111,100,101,95,95,114,
+ 159,0,0,0,114,165,0,0,0,114,167,0,0,0,114,175,
+ 0,0,0,114,157,0,0,0,114,155,0,0,0,114,51,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,90,0,0,0,4,0,8,16,16,1,8,
+ 1,8,1,8,1,8,1,8,1,8,1,8,1,8,2,6,
+ 3,14,1,16,3,4,4,8,2,4,2,4,1,4,1,18,
+ 2,0,127,0,127,12,50,12,1,2,1,2,1,4,252,8,
+ 9,8,4,8,9,8,31,2,126,2,254,4,29,8,5,8,
+ 21,8,46,8,8,10,40,8,5,8,7,8,6,8,13,8,
+ 19,12,15,
};
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index f00e3eb..8d9f640 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -13,7 +13,8 @@
#include "pycore_ast.h" // PyAST_mod2obj
#include "pycore_compile.h" // _PyAST_Compile()
#include "pycore_interp.h" // PyInterpreterState.importlib
-#include "pycore_object.h" // _PyDebug_PrintTotalRefs()
+#include "pycore_object.h" // _PyDebug_PrintTotalRefs(),
+ // _PyType_GetQualName()
#include "pycore_parser.h" // _PyParser_ASTFromString()
#include "pycore_pyerrors.h" // _PyErr_Fetch, _Py_Offer_Suggestions
#include "pycore_pylifecycle.h" // _Py_UnhandledKeyboardInterrupt
@@ -961,36 +962,37 @@ print_exception(PyObject *f, PyObject *value)
/* Don't do anything else */
}
else {
- PyObject* moduleName;
- const char *className;
+ PyObject* modulename;
+
_Py_IDENTIFIER(__module__);
assert(PyExceptionClass_Check(type));
- className = PyExceptionClass_Name(type);
- if (className != NULL) {
- const char *dot = strrchr(className, '.');
- if (dot != NULL)
- className = dot+1;
- }
- moduleName = _PyObject_GetAttrId(type, &PyId___module__);
- if (moduleName == NULL || !PyUnicode_Check(moduleName))
+ modulename = _PyObject_GetAttrId(type, &PyId___module__);
+ if (modulename == NULL || !PyUnicode_Check(modulename))
{
- Py_XDECREF(moduleName);
+ Py_XDECREF(modulename);
+ PyErr_Clear();
err = PyFile_WriteString("<unknown>", f);
}
else {
- if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins))
+ if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins))
{
- err = PyFile_WriteObject(moduleName, f, Py_PRINT_RAW);
+ err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW);
err += PyFile_WriteString(".", f);
}
- Py_DECREF(moduleName);
+ Py_DECREF(modulename);
}
if (err == 0) {
- if (className == NULL)
- err = PyFile_WriteString("<unknown>", f);
- else
- err = PyFile_WriteString(className, f);
+ PyObject* qualname = _PyType_GetQualName((PyTypeObject *)type);
+ if (qualname == NULL || !PyUnicode_Check(qualname)) {
+ Py_XDECREF(qualname);
+ PyErr_Clear();
+ err = PyFile_WriteString("<unknown>", f);
+ }
+ else {
+ err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW);
+ Py_DECREF(qualname);
+ }
}
}
if (err == 0 && (value != Py_None)) {
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index ec7d737..35b9810 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -32,18 +32,17 @@
#define THREAD_STACK_SIZE 0 /* use default stack size */
#endif
-/* The default stack size for new threads on OSX and BSD is small enough that
+/* The default stack size for new threads on BSD is small enough that
* we'll get hard crashes instead of 'maximum recursion depth exceeded'
* exceptions.
*
- * The default stack sizes below are the empirically determined minimal stack
+ * The default stack size below is the empirically determined minimal stack
* sizes where a simple recursive function doesn't cause a hard crash.
+ *
+ * For macOS the value of THREAD_STACK_SIZE is determined in configure.ac
+ * as it also depends on the other configure options like chosen sanitizer
+ * runtimes.
*/
-#if defined(__APPLE__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
-#undef THREAD_STACK_SIZE
-/* Note: This matches the value of -Wl,-stack_size in configure.ac */
-#define THREAD_STACK_SIZE 0x1000000
-#endif
#if defined(__FreeBSD__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0
#undef THREAD_STACK_SIZE
#define THREAD_STACK_SIZE 0x400000
@@ -93,12 +92,17 @@
* mutexes and condition variables:
*/
#if (defined(_POSIX_SEMAPHORES) && !defined(HAVE_BROKEN_POSIX_SEMAPHORES) && \
- defined(HAVE_SEM_TIMEDWAIT))
+ (defined(HAVE_SEM_TIMEDWAIT) || defined(HAVE_SEM_CLOCKWAIT)))
# define USE_SEMAPHORES
#else
# undef USE_SEMAPHORES
#endif
+#if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
+// monotonic is supported statically. It doesn't mean it works on runtime.
+#define CONDATTR_MONOTONIC
+#endif
+
/* On platforms that don't use standard POSIX threads pthread_sigmask()
* isn't present. DEC threads uses sigprocmask() instead as do most
@@ -124,16 +128,23 @@ do { \
ts.tv_nsec = tv.tv_usec * 1000; \
} while(0)
+#if defined(CONDATTR_MONOTONIC) || defined(HAVE_SEM_CLOCKWAIT)
+static void
+monotonic_abs_timeout(long long us, struct timespec *abs)
+{
+ clock_gettime(CLOCK_MONOTONIC, abs);
+ abs->tv_sec += us / 1000000;
+ abs->tv_nsec += (us % 1000000) * 1000;
+ abs->tv_sec += abs->tv_nsec / 1000000000;
+ abs->tv_nsec %= 1000000000;
+}
+#endif
+
/*
* pthread_cond support
*/
-#if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
-// monotonic is supported statically. It doesn't mean it works on runtime.
-#define CONDATTR_MONOTONIC
-#endif
-
// NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported.
static pthread_condattr_t *condattr_monotonic = NULL;
@@ -155,16 +166,13 @@ _PyThread_cond_init(PyCOND_T *cond)
return pthread_cond_init(cond, condattr_monotonic);
}
+
void
_PyThread_cond_after(long long us, struct timespec *abs)
{
#ifdef CONDATTR_MONOTONIC
if (condattr_monotonic) {
- clock_gettime(CLOCK_MONOTONIC, abs);
- abs->tv_sec += us / 1000000;
- abs->tv_nsec += (us % 1000000) * 1000;
- abs->tv_sec += abs->tv_nsec / 1000000000;
- abs->tv_nsec %= 1000000000;
+ monotonic_abs_timeout(us, abs);
return;
}
#endif
@@ -435,7 +443,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
sem_t *thelock = (sem_t *)lock;
int status, error = 0;
struct timespec ts;
+#ifndef HAVE_SEM_CLOCKWAIT
_PyTime_t deadline = 0;
+#endif
(void) error; /* silence unused-but-set-variable warning */
dprintf(("PyThread_acquire_lock_timed(%p, %lld, %d) called\n",
@@ -446,6 +456,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
}
if (microseconds > 0) {
+#ifdef HAVE_SEM_CLOCKWAIT
+ monotonic_abs_timeout(microseconds, &ts);
+#else
MICROSECONDS_TO_TIMESPEC(microseconds, ts);
if (!intr_flag) {
@@ -454,11 +467,17 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
_PyTime_t timeout = _PyTime_FromNanoseconds(microseconds * 1000);
deadline = _PyTime_GetMonotonicClock() + timeout;
}
+#endif
}
while (1) {
if (microseconds > 0) {
+#ifdef HAVE_SEM_CLOCKWAIT
+ status = fix_status(sem_clockwait(thelock, CLOCK_MONOTONIC,
+ &ts));
+#else
status = fix_status(sem_timedwait(thelock, &ts));
+#endif
}
else if (microseconds == 0) {
status = fix_status(sem_trywait(thelock));
@@ -473,6 +492,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
break;
}
+ // sem_clockwait() uses an absolute timeout, there is no need
+ // to recompute the relative timeout.
+#ifndef HAVE_SEM_CLOCKWAIT
if (microseconds > 0) {
/* wait interrupted by a signal (EINTR): recompute the timeout */
_PyTime_t dt = deadline - _PyTime_GetMonotonicClock();
@@ -494,13 +516,19 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
microseconds = 0;
}
}
+#endif
}
/* Don't check the status if we're stopping because of an interrupt. */
if (!(intr_flag && status == EINTR)) {
if (microseconds > 0) {
- if (status != ETIMEDOUT)
+ if (status != ETIMEDOUT) {
+#ifdef HAVE_SEM_CLOCKWAIT
+ CHECK_STATUS("sem_clockwait");
+#else
CHECK_STATUS("sem_timedwait");
+#endif
+ }
}
else if (microseconds == 0) {
if (status != EAGAIN)
diff --git a/Python/traceback.c b/Python/traceback.c
index 9b23f45..284c181 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -234,7 +234,7 @@ _PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)
assert(tb_next == NULL || PyTraceBack_Check(tb_next));
assert(frame != NULL);
- return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti*2,
+ return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti*sizeof(_Py_CODEUNIT),
PyFrame_GetLineNumber(frame));
}
diff --git a/Tools/c-analyzer/c_common/tables.py b/Tools/c-analyzer/c_common/tables.py
index 85b5019..130be6b 100644
--- a/Tools/c-analyzer/c_common/tables.py
+++ b/Tools/c-analyzer/c_common/tables.py
@@ -236,12 +236,12 @@ def build_table(specs, *, sep=' ', defaultwidth=None):
_COLSPEC_RE = re.compile(textwrap.dedent(r'''
^
(?:
- [[]
+ \[
(
(?: [^\s\]] [^\]]* )?
[^\s\]]
) # <label>
- []]
+ ]
)?
( \w+ ) # <field>
(?:
diff --git a/Tools/scripts/pep384_macrocheck.py b/Tools/scripts/pep384_macrocheck.py
index 142d248..ab9dd7c 100644
--- a/Tools/scripts/pep384_macrocheck.py
+++ b/Tools/scripts/pep384_macrocheck.py
@@ -1,9 +1,9 @@
"""
pep384_macrocheck.py
-This programm tries to locate errors in the relevant Python header
+This program tries to locate errors in the relevant Python header
files where macros access type fields when they are reachable from
-the limided API.
+the limited API.
The idea is to search macros with the string "->tp_" in it.
When the macro name does not begin with an underscore,
diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py
index 9b46c8c..7bdfd0b 100755
--- a/Tools/ssl/multissltests.py
+++ b/Tools/ssl/multissltests.py
@@ -48,7 +48,7 @@
OPENSSL_RECENT_VERSIONS = [
"1.1.1l",
- "3.0.0-beta1"
+ "3.0.0"
]
LIBRESSL_OLD_VERSIONS = [
@@ -412,6 +412,10 @@ def _post_install_300(self):
["make", "-j1", "install_ssldirs", "install_fips"],
cwd=self.build_dir
)
+ if not os.path.isdir(self.lib_dir):
+ # 3.0.0-beta2 uses lib64 on 64 bit platforms
+ lib64 = self.lib_dir + "64"
+ os.symlink(lib64, self.lib_dir)
@property
def short_version(self):
diff --git a/aclocal.m4 b/aclocal.m4
index 987bfdf..2f1bd37 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -275,3 +275,347 @@
AC_SUBST([OPENSSL_LDFLAGS])
])
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 11 (pkg-config-0.29.1)
+
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+ [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+ [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+ [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+ [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+ [auto],[PKG_CHECK_MODULES([$1],[$2],
+ [m4_n([def_action_if_found]) $3],
+ [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
diff --git a/configure b/configure
index 1baa145..02d882e 100755
--- a/configure
+++ b/configure
@@ -630,7 +630,6 @@
OPENSSL_LDFLAGS
OPENSSL_LIBS
OPENSSL_INCLUDES
-PKG_CONFIG
ENSUREPIP
SRCDIRS
THREADHEADERS
@@ -662,6 +661,9 @@
TCLTK_LIBS
TCLTK_INCLUDES
LIBFFI_INCLUDEDIR
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
TZPATH
SHLIBS
CFLAGSFORSHARED
@@ -827,11 +829,11 @@
with_assertions
enable_optimizations
with_lto
-with_hash_algorithm
-with_tzpath
with_address_sanitizer
with_memory_sanitizer
with_undefined_behavior_sanitizer
+with_hash_algorithm
+with_tzpath
with_libs
with_system_expat
with_system_ffi
@@ -873,7 +875,10 @@
LIBS
CPPFLAGS
CPP
-PROFILE_TASK'
+PROFILE_TASK
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR'
# Initialize some variables set by options.
@@ -1547,12 +1552,6 @@
--with-assertions build with C assertions enabled (default is no)
--with-lto enable Link-Time-Optimization in any build (default
is no)
- --with-hash-algorithm=[fnv|siphash24]
- select hash algorithm for use in Python/pyhash.c
- (default is SipHash24)
- --with-tzpath=<list of absolute paths separated by pathsep>
- Select the default time zone search path for zoneinfo.TZPATH
-
--with-address-sanitizer
enable AddressSanitizer memory error detector,
'asan' (default is no)
@@ -1561,6 +1560,12 @@
--with-undefined-behavior-sanitizer
enable UndefinedBehaviorSanitizer undefined
behaviour detector, 'ubsan' (default is no)
+ --with-hash-algorithm=[fnv|siphash24]
+ select hash algorithm for use in Python/pyhash.c
+ (default is SipHash24)
+ --with-tzpath=<list of absolute paths separated by pathsep>
+ Select the default time zone search path for zoneinfo.TZPATH
+
--with-libs='lib1 ...' link against additional libs (default is no)
--with-system-expat build pyexpat module using an installed expat
library, see Doc/library/pyexpat.rst (default is no)
@@ -1637,6 +1642,11 @@
CPP C preprocessor
PROFILE_TASK
Python args for PGO generation task
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -9566,6 +9576,65 @@
;;
esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5
+$as_echo_n "checking for --with-address-sanitizer... " >&6; }
+
+# Check whether --with-address_sanitizer was given.
+if test "${with_address_sanitizer+set}" = set; then :
+ withval=$with_address_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=address $LDFLAGS"
+# ASan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5
+$as_echo_n "checking for --with-memory-sanitizer... " >&6; }
+
+# Check whether --with-memory_sanitizer was given.
+if test "${with_memory_sanitizer+set}" = set; then :
+ withval=$with_memory_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
+# MSan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5
+$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; }
+
+# Check whether --with-undefined_behavior_sanitizer was given.
+if test "${with_undefined_behavior_sanitizer+set}" = set; then :
+ withval=$with_undefined_behavior_sanitizer;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
+$as_echo "$withval" >&6; }
+BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
+LDFLAGS="-fsanitize=undefined $LDFLAGS"
+with_ubsan="yes"
+
+else
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+with_ubsan="no"
+
+fi
+
+
# Set info about shared libraries.
@@ -9776,9 +9845,20 @@
# Issue #18075: the default maximum stack size (8MBytes) is too
# small for the default recursion limit. Increase the stack size
# to ensure that tests don't crash
- # Note: This matches the value of THREAD_STACK_SIZE in
- # thread_pthread.h
- LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
+ stack_size="1000000" # 16 MB
+ if test "$with_ubsan" == "yes"
+ then
+ # Undefined behavior sanitizer requires an even deeper stack
+ stack_size="4000000" # 64 MB
+ fi
+
+ LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED"
+
+
+cat >>confdefs.h <<_ACEOF
+#define THREAD_STACK_SIZE 0x$stack_size
+_ACEOF
+
if test "$enable_framework"
then
@@ -10374,61 +10454,6 @@
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5
-$as_echo_n "checking for --with-address-sanitizer... " >&6; }
-
-# Check whether --with-address_sanitizer was given.
-if test "${with_address_sanitizer+set}" = set; then :
- withval=$with_address_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=address $LDFLAGS"
-# ASan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5
-$as_echo_n "checking for --with-memory-sanitizer... " >&6; }
-
-# Check whether --with-memory_sanitizer was given.
-if test "${with_memory_sanitizer+set}" = set; then :
- withval=$with_memory_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
-# MSan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5
-$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; }
-
-# Check whether --with-undefined_behavior_sanitizer was given.
-if test "${with_undefined_behavior_sanitizer+set}" = set; then :
- withval=$with_undefined_behavior_sanitizer;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
-BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
-LDFLAGS="-fsanitize=undefined $LDFLAGS"
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5
$as_echo_n "checking for t_open in -lnsl... " >&6; }
@@ -10527,7 +10552,126 @@
fi
-PKG_PROG_PKG_CONFIG
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
# Check for use of the system expat library
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5
@@ -11723,7 +11867,7 @@
posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
setgid sethostname \
setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
diff --git a/configure.ac b/configure.ac
index 3e6c07c..41a3679 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2562,6 +2562,47 @@
;;
esac
+AC_MSG_CHECKING(for --with-address-sanitizer)
+AC_ARG_WITH(address_sanitizer,
+ AS_HELP_STRING([--with-address-sanitizer],
+ [enable AddressSanitizer memory error detector, 'asan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=address $LDFLAGS"
+# ASan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+],
+[AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for --with-memory-sanitizer)
+AC_ARG_WITH(memory_sanitizer,
+ AS_HELP_STRING([--with-memory-sanitizer],
+ [enable MemorySanitizer allocation error detector, 'msan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
+LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
+# MSan works by controlling memory allocation, our own malloc interferes.
+with_pymalloc="no"
+],
+[AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer)
+AC_ARG_WITH(undefined_behavior_sanitizer,
+ AS_HELP_STRING([--with-undefined-behavior-sanitizer],
+ [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]),
+[
+AC_MSG_RESULT($withval)
+BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
+LDFLAGS="-fsanitize=undefined $LDFLAGS"
+with_ubsan="yes"
+],
+[
+AC_MSG_RESULT(no)
+with_ubsan="no"
+])
+
# Set info about shared libraries.
AC_SUBST(SHLIB_SUFFIX)
AC_SUBST(LDSHARED)
@@ -2765,9 +2806,18 @@
# Issue #18075: the default maximum stack size (8MBytes) is too
# small for the default recursion limit. Increase the stack size
# to ensure that tests don't crash
- # Note: This matches the value of THREAD_STACK_SIZE in
- # thread_pthread.h
- LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED"
+ stack_size="1000000" # 16 MB
+ if test "$with_ubsan" == "yes"
+ then
+ # Undefined behavior sanitizer requires an even deeper stack
+ stack_size="4000000" # 64 MB
+ fi
+
+ LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED"
+
+ AC_DEFINE_UNQUOTED(THREAD_STACK_SIZE,
+ 0x$stack_size,
+ [Custom thread stack size depending on chosen sanitizer runtimes.])
if test "$enable_framework"
then
@@ -3011,43 +3061,6 @@
AC_MSG_RESULT("$TZPATH")])
AC_SUBST(TZPATH)
-AC_MSG_CHECKING(for --with-address-sanitizer)
-AC_ARG_WITH(address_sanitizer,
- AS_HELP_STRING([--with-address-sanitizer],
- [enable AddressSanitizer memory error detector, 'asan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=address $LDFLAGS"
-# ASan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-],
-[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for --with-memory-sanitizer)
-AC_ARG_WITH(memory_sanitizer,
- AS_HELP_STRING([--with-memory-sanitizer],
- [enable MemorySanitizer allocation error detector, 'msan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS"
-LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS"
-# MSan works by controlling memory allocation, our own malloc interferes.
-with_pymalloc="no"
-],
-[AC_MSG_RESULT(no)])
-
-AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer)
-AC_ARG_WITH(undefined_behavior_sanitizer,
- AS_HELP_STRING([--with-undefined-behavior-sanitizer],
- [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]),
-[
-AC_MSG_RESULT($withval)
-BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
-LDFLAGS="-fsanitize=undefined $LDFLAGS"
-],
-[AC_MSG_RESULT(no)])
-
# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
@@ -3694,7 +3707,7 @@
posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
setgid sethostname \
setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 63438d8..0559274 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -902,6 +902,9 @@
/* Define to 1 if you have the `sched_setscheduler' function. */
#undef HAVE_SCHED_SETSCHEDULER
+/* Define to 1 if you have the `sem_clockwait' function. */
+#undef HAVE_SEM_CLOCKWAIT
+
/* Define to 1 if you have the `sem_getvalue' function. */
#undef HAVE_SEM_GETVALUE
@@ -1509,6 +1512,9 @@
(which you can't on SCO ODT 3.0). */
#undef SYS_SELECT_WITH_SYS_TIME
+/* Custom thread stack size depending on chosen sanitizer runtimes. */
+#undef THREAD_STACK_SIZE
+
/* Library needed by timemodule.c: librt may be needed for clock_gettime() */
#undef TIMEMODULE_LIB
diff --git a/setup.py b/setup.py
index 3d250e7..a6fcc12 100644
--- a/setup.py
+++ b/setup.py
@@ -1765,7 +1765,9 @@ def detect_expat_elementtree(self):
('XML_POOR_ENTROPY', '1'),
]
extra_compile_args = []
- expat_lib = []
+ # bpo-44394: libexpat uses isnan() of math.h and needs linkage
+ # against the libm
+ expat_lib = ['m']
expat_sources = ['expat/xmlparse.c',
'expat/xmlrole.c',
'expat/xmltok.c']