From webhook-mailer at python.org Tue Dec 1 02:58:50 2020 From: webhook-mailer at python.org (JulienPalard) Date: Tue, 01 Dec 2020 07:58:50 -0000 Subject: [Python-checkins] [3.9] [doc] Fix smtplib and xml.dom.minidom mark-up (GH-22769) (GH-23380) Message-ID: https://github.com/python/cpython/commit/7e80c0f40e0458fd1b2c879c031594388fc6dea6 commit: 7e80c0f40e0458fd1b2c879c031594388fc6dea6 branch: 3.9 author: Julien Palard committer: JulienPalard date: 2020-12-01T08:58:36+01:00 summary: [3.9] [doc] Fix smtplib and xml.dom.minidom mark-up (GH-22769) (GH-23380) files: M Doc/library/smtplib.rst M Doc/library/xml.dom.minidom.rst diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst index a88e358eae5fd..c1a20fee6cf02 100644 --- a/Doc/library/smtplib.rst +++ b/Doc/library/smtplib.rst @@ -115,7 +115,7 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions). If the *timeout* parameter is set to be zero, it will raise a :class:`ValueError` to prevent the creation of a non-blocking socket -.. class:: LMTP(host='', port=LMTP_PORT, local_hostname=None, +.. class:: LMTP(host='', port=LMTP_PORT, local_hostname=None, \ source_address=None[, timeout]) The LMTP protocol, which is very similar to ESMTP, is heavily based on the diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index 2c78cd939243a..bf72c46561b7c 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -132,7 +132,7 @@ module documentation. This section lists the differences between the API and ... # Work with dom. -.. method:: Node.writexml(writer, indent="", addindent="", newl="", +.. method:: Node.writexml(writer, indent="", addindent="", newl="", \ encoding=None, standalone=None) Write XML to the writer object. The writer receives texts but not bytes as input, @@ -174,7 +174,7 @@ module documentation. This section lists the differences between the API and The :meth:`toxml` method now preserves the attribute order specified by the user. -.. method:: Node.toprettyxml(indent="\\t", newl="\\n", encoding=None, +.. method:: Node.toprettyxml(indent="\\t", newl="\\n", encoding=None, \ standalone=None) Return a pretty-printed version of the document. *indent* specifies the From webhook-mailer at python.org Tue Dec 1 03:20:58 2020 From: webhook-mailer at python.org (vstinner) Date: Tue, 01 Dec 2020 08:20:58 -0000 Subject: [Python-checkins] bpo-31904: Fix fifo test cases for VxWorks (GH-20254) Message-ID: https://github.com/python/cpython/commit/b2d0c66e881301ed8908da3cb41bbf253c449b0c commit: b2d0c66e881301ed8908da3cb41bbf253c449b0c branch: master author: pxinwr committer: vstinner date: 2020-12-01T09:20:50+01:00 summary: bpo-31904: Fix fifo test cases for VxWorks (GH-20254) files: A Misc/NEWS.d/next/Tests/2020-05-20-14-28-48.bpo-31904.yJik6k.rst M Lib/test/test_posix.py M Lib/test/test_stat.py diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index a522717751ac1..18afbef082bff 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -642,12 +642,17 @@ def test_stat(self): @unittest.skipUnless(hasattr(posix, 'mkfifo'), "don't have mkfifo()") def test_mkfifo(self): - os_helper.unlink(os_helper.TESTFN) + if sys.platform == "vxworks": + fifo_path = os.path.join("/fifos/", os_helper.TESTFN) + else: + fifo_path = os_helper.TESTFN + os_helper.unlink(fifo_path) + self.addCleanup(os_helper.unlink, fifo_path) try: - posix.mkfifo(os_helper.TESTFN, stat.S_IRUSR | stat.S_IWUSR) + posix.mkfifo(fifo_path, stat.S_IRUSR | stat.S_IWUSR) except PermissionError as e: self.skipTest('posix.mkfifo(): %s' % e) - self.assertTrue(stat.S_ISFIFO(posix.stat(os_helper.TESTFN).st_mode)) + self.assertTrue(stat.S_ISFIFO(posix.stat(fifo_path).st_mode)) @unittest.skipUnless(hasattr(posix, 'mknod') and hasattr(stat, 'S_IFIFO'), "don't have mknod()/S_IFIFO") @@ -1929,7 +1934,7 @@ def test_posix_spawnp(self): class TestPosixWeaklinking(unittest.TestCase): # These test cases verify that weak linking support on macOS works # as expected. These cases only test new behaviour introduced by weak linking, - # regular behaviour is tested by the normal test cases. + # regular behaviour is tested by the normal test cases. # # See the section on Weak Linking in Mac/README.txt for more information. def setUp(self): diff --git a/Lib/test/test_stat.py b/Lib/test/test_stat.py index 83d09e17f93c5..2e1e2c349c8d0 100644 --- a/Lib/test/test_stat.py +++ b/Lib/test/test_stat.py @@ -2,6 +2,7 @@ import os import socket import sys +from test.support import os_helper from test.support import socket_helper from test.support.import_helper import import_fresh_module from test.support.os_helper import TESTFN @@ -173,11 +174,16 @@ def test_link(self): @unittest.skipUnless(hasattr(os, 'mkfifo'), 'os.mkfifo not available') def test_fifo(self): + if sys.platform == "vxworks": + fifo_path = os.path.join("/fifos/", TESTFN) + else: + fifo_path = TESTFN + self.addCleanup(os_helper.unlink, fifo_path) try: - os.mkfifo(TESTFN, 0o700) + os.mkfifo(fifo_path, 0o700) except PermissionError as e: self.skipTest('os.mkfifo(): %s' % e) - st_mode, modestr = self.get_mode() + st_mode, modestr = self.get_mode(fifo_path) self.assertEqual(modestr, 'prwx------') self.assertS_IS("FIFO", st_mode) diff --git a/Misc/NEWS.d/next/Tests/2020-05-20-14-28-48.bpo-31904.yJik6k.rst b/Misc/NEWS.d/next/Tests/2020-05-20-14-28-48.bpo-31904.yJik6k.rst new file mode 100644 index 0000000000000..40caa88d689a2 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-05-20-14-28-48.bpo-31904.yJik6k.rst @@ -0,0 +1 @@ +Fix fifo test cases for VxWorks RTOS. From webhook-mailer at python.org Tue Dec 1 03:57:03 2020 From: webhook-mailer at python.org (vstinner) Date: Tue, 01 Dec 2020 08:57:03 -0000 Subject: [Python-checkins] bpo-42519: Replace PyMem_MALLOC() with PyMem_Malloc() (GH-23586) Message-ID: https://github.com/python/cpython/commit/00d7abd7ef588fc4ff0571c8579ab4aba8ada1c0 commit: 00d7abd7ef588fc4ff0571c8579ab4aba8ada1c0 branch: master author: Victor Stinner committer: vstinner date: 2020-12-01T09:56:42+01:00 summary: bpo-42519: Replace PyMem_MALLOC() with PyMem_Malloc() (GH-23586) No longer use deprecated aliases to functions: * Replace PyMem_MALLOC() with PyMem_Malloc() * Replace PyMem_REALLOC() with PyMem_Realloc() * Replace PyMem_FREE() with PyMem_Free() * Replace PyMem_Del() with PyMem_Free() * Replace PyMem_DEL() with PyMem_Free() Modify also the PyMem_DEL() macro to use directly PyMem_Free(). files: M Include/objimpl.h M Include/pymem.h M Modules/_localemodule.c M Modules/_pickle.c M Modules/_sre.c M Modules/_ssl.c M Modules/_struct.c M Modules/_testcapimodule.c M Modules/_threadmodule.c M Modules/_tkinter.c M Modules/arraymodule.c M Modules/cjkcodecs/multibytecodec.c M Modules/posixmodule.c M Modules/selectmodule.c M Objects/capsule.c M Objects/codeobject.c M Objects/dictobject.c M Objects/listobject.c M Objects/moduleobject.c M Objects/odictobject.c M Objects/setobject.c M Objects/stringlib/join.h M Objects/structseq.c M Objects/typeobject.c M Objects/unicodeobject.c M PC/winreg.c M Parser/string_parser.c M Parser/tokenizer.c M Python/bltinmodule.c M Python/getargs.c M Python/marshal.c M Python/pystrtod.c M Python/traceback.c diff --git a/Include/objimpl.h b/Include/objimpl.h index af537175bfed8..464b1bf93ba2c 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -102,7 +102,7 @@ PyAPI_FUNC(void *) PyObject_Realloc(void *ptr, size_t new_size); PyAPI_FUNC(void) PyObject_Free(void *ptr); -/* Macros */ +// Deprecated aliases only kept for backward compatibility. #define PyObject_MALLOC PyObject_Malloc #define PyObject_REALLOC PyObject_Realloc #define PyObject_FREE PyObject_Free @@ -138,8 +138,8 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t); #define PyObject_NewVar(type, typeobj, n) \ ( (type *) _PyObject_NewVar((typeobj), (n)) ) -// Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly -// PyObject_MALLOC() with _PyObject_VAR_SIZE(). +// Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called +// directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). #define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n) diff --git a/Include/pymem.h b/Include/pymem.h index 607feb9484f24..5b9dd4219948a 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -53,18 +53,6 @@ PyAPI_FUNC(void *) PyMem_Malloc(size_t size); PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size); PyAPI_FUNC(void) PyMem_Free(void *ptr); -/* Macros. */ - -/* PyMem_MALLOC(0) means malloc(1). Some systems would return NULL - for malloc(0), which would be treated as an error. Some platforms - would return a pointer with no memory behind it, which would break - pymalloc. To solve these problems, allocate an extra byte. */ -/* Returns NULL to indicate error if a negative size or size larger than - Py_ssize_t can represent is supplied. Helps prevents security holes. */ -#define PyMem_MALLOC(n) PyMem_Malloc(n) -#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) -#define PyMem_FREE(p) PyMem_Free(p) - /* * Type-oriented memory interface * ============================== @@ -78,9 +66,6 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); #define PyMem_New(type, n) \ ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ ( (type *) PyMem_Malloc((n) * sizeof(type)) ) ) -#define PyMem_NEW(type, n) \ - ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ - ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) /* * The value of (p) is always clobbered by this macro regardless of success. @@ -91,15 +76,16 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); #define PyMem_Resize(p, type, n) \ ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ (type *) PyMem_Realloc((p), (n) * sizeof(type)) ) -#define PyMem_RESIZE(p, type, n) \ - ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ - (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) -/* PyMem{Del,DEL} are left over from ancient days, and shouldn't be used - * anymore. They're just confusing aliases for PyMem_{Free,FREE} now. - */ -#define PyMem_Del PyMem_Free -#define PyMem_DEL PyMem_FREE + +// Deprecated aliases only kept for backward compatibility. +#define PyMem_MALLOC(n) PyMem_Malloc(n) +#define PyMem_NEW(type, n) PyMem_New(type, n) +#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) +#define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n) +#define PyMem_FREE(p) PyMem_Free(p) +#define PyMem_Del(p) PyMem_Free(p) +#define PyMem_DEL(p) PyMem_Free(p) #ifndef Py_LIMITED_API diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c index 869e3f80f3f9e..564f5598edcc6 100644 --- a/Modules/_localemodule.c +++ b/Modules/_localemodule.c @@ -370,8 +370,8 @@ _locale_strcoll_impl(PyObject *module, PyObject *os1, PyObject *os2) result = PyLong_FromLong(wcscoll(ws1, ws2)); done: /* Deallocate everything. */ - if (ws1) PyMem_FREE(ws1); - if (ws2) PyMem_FREE(ws2); + if (ws1) PyMem_Free(ws1); + if (ws2) PyMem_Free(ws2); return result; } #endif diff --git a/Modules/_pickle.c b/Modules/_pickle.c index ed8afefe4c74c..7ecaeea18c611 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -442,7 +442,7 @@ Pdata_dealloc(Pdata *self) while (--i >= 0) { Py_DECREF(self->data[i]); } - PyMem_FREE(self->data); + PyMem_Free(self->data); PyObject_Del(self); } @@ -465,7 +465,7 @@ Pdata_New(void) self->mark_set = 0; self->fence = 0; self->allocated = 8; - self->data = PyMem_MALLOC(self->allocated * sizeof(PyObject *)); + self->data = PyMem_Malloc(self->allocated * sizeof(PyObject *)); if (self->data) return (PyObject *)self; Py_DECREF(self); @@ -726,7 +726,7 @@ static PyTypeObject Unpickler_Type; static PyMemoTable * PyMemoTable_New(void) { - PyMemoTable *memo = PyMem_MALLOC(sizeof(PyMemoTable)); + PyMemoTable *memo = PyMem_Malloc(sizeof(PyMemoTable)); if (memo == NULL) { PyErr_NoMemory(); return NULL; @@ -735,9 +735,9 @@ PyMemoTable_New(void) memo->mt_used = 0; memo->mt_allocated = MT_MINSIZE; memo->mt_mask = MT_MINSIZE - 1; - memo->mt_table = PyMem_MALLOC(MT_MINSIZE * sizeof(PyMemoEntry)); + memo->mt_table = PyMem_Malloc(MT_MINSIZE * sizeof(PyMemoEntry)); if (memo->mt_table == NULL) { - PyMem_FREE(memo); + PyMem_Free(memo); PyErr_NoMemory(); return NULL; } @@ -758,10 +758,10 @@ PyMemoTable_Copy(PyMemoTable *self) new->mt_mask = self->mt_mask; /* The table we get from _New() is probably smaller than we wanted. Free it and allocate one that's the right size. */ - PyMem_FREE(new->mt_table); + PyMem_Free(new->mt_table); new->mt_table = PyMem_NEW(PyMemoEntry, self->mt_allocated); if (new->mt_table == NULL) { - PyMem_FREE(new); + PyMem_Free(new); PyErr_NoMemory(); return NULL; } @@ -800,8 +800,8 @@ PyMemoTable_Del(PyMemoTable *self) return; PyMemoTable_Clear(self); - PyMem_FREE(self->mt_table); - PyMem_FREE(self); + PyMem_Free(self->mt_table); + PyMem_Free(self); } /* Since entries cannot be deleted from this hashtable, _PyMemoTable_Lookup() @@ -880,7 +880,7 @@ _PyMemoTable_ResizeTable(PyMemoTable *self, size_t min_size) } /* Deallocate the old table. */ - PyMem_FREE(oldtable); + PyMem_Free(oldtable); return 0; } @@ -1582,7 +1582,7 @@ _Unpickler_MemoCleanup(UnpicklerObject *self) while (--i >= 0) { Py_XDECREF(memo[i]); } - PyMem_FREE(memo); + PyMem_Free(memo); } static UnpicklerObject * @@ -7544,7 +7544,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored for (size_t i = new_memo_size - 1; i != SIZE_MAX; i--) { Py_XDECREF(new_memo[i]); } - PyMem_FREE(new_memo); + PyMem_Free(new_memo); } return -1; } diff --git a/Modules/_sre.c b/Modules/_sre.c index 0a5ca60097af3..c67f38d75b809 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -197,7 +197,7 @@ static void data_stack_dealloc(SRE_STATE* state) { if (state->data_stack) { - PyMem_FREE(state->data_stack); + PyMem_Free(state->data_stack); state->data_stack = NULL; } state->data_stack_size = state->data_stack_base = 0; @@ -213,7 +213,7 @@ data_stack_grow(SRE_STATE* state, Py_ssize_t size) void* stack; cursize = minsize+minsize/4+1024; TRACE(("allocate/grow stack %zd\n", cursize)); - stack = PyMem_REALLOC(state->data_stack, cursize); + stack = PyMem_Realloc(state->data_stack, cursize); if (!stack) { data_stack_dealloc(state); return SRE_ERROR_MEMORY; @@ -472,7 +472,7 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string, /* We add an explicit cast here because MSVC has a bug when compiling C code where it believes that `const void**` cannot be safely casted to `void*`, see bpo-39943 for details. */ - PyMem_Del((void*) state->mark); + PyMem_Free((void*) state->mark); state->mark = NULL; if (state->buffer.buf) PyBuffer_Release(&state->buffer); @@ -487,7 +487,7 @@ state_fini(SRE_STATE* state) Py_XDECREF(state->string); data_stack_dealloc(state); /* See above PyMem_Del for why we explicitly cast here. */ - PyMem_Del((void*) state->mark); + PyMem_Free((void*) state->mark); state->mark = NULL; } diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 6f799ee661852..87fe3a16078fa 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -3306,10 +3306,10 @@ context_dealloc(PySSLContext *self) context_clear(self); SSL_CTX_free(self->ctx); #if HAVE_NPN - PyMem_FREE(self->npn_protocols); + PyMem_Free(self->npn_protocols); #endif #if HAVE_ALPN - PyMem_FREE(self->alpn_protocols); + PyMem_Free(self->alpn_protocols); #endif Py_TYPE(self)->tp_free(self); Py_DECREF(tp); @@ -3510,7 +3510,7 @@ _ssl__SSLContext__set_alpn_protocols_impl(PySSLContext *self, return NULL; } - PyMem_FREE(self->alpn_protocols); + PyMem_Free(self->alpn_protocols); self->alpn_protocols = PyMem_Malloc(protos->len); if (!self->alpn_protocols) return PyErr_NoMemory(); diff --git a/Modules/_struct.c b/Modules/_struct.c index eeccc17965468..c95c76f8ae039 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -1373,14 +1373,14 @@ prepare_s(PyStructObject *self) self->s_size = size; self->s_len = len; - codes = PyMem_MALLOC((ncodes + 1) * sizeof(formatcode)); + codes = PyMem_Malloc((ncodes + 1) * sizeof(formatcode)); if (codes == NULL) { PyErr_NoMemory(); return -1; } /* Free any s_codes value left over from a previous initialization. */ if (self->s_codes != NULL) - PyMem_FREE(self->s_codes); + PyMem_Free(self->s_codes); self->s_codes = codes; s = fmt; @@ -1502,7 +1502,7 @@ s_dealloc(PyStructObject *s) if (s->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *)s); if (s->s_codes != NULL) { - PyMem_FREE(s->s_codes); + PyMem_Free(s->s_codes); } Py_XDECREF(s->s_format); freefunc free_func = PyType_GetSlot(Py_TYPE(s), Py_tp_free); diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index a1d4c929b0205..916d10a1e413b 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -1988,12 +1988,12 @@ unicode_asucs4(PyObject *self, PyObject *args) buffer[str_len] = 0xffffU; if (!PyUnicode_AsUCS4(unicode, buffer, buf_len, copy_null)) { - PyMem_FREE(buffer); + PyMem_Free(buffer); return NULL; } result = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, buffer, buf_len); - PyMem_FREE(buffer); + PyMem_Free(buffer); return result; } diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index 56ed8a2e2d3f1..dcefa8dbaa91b 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -1056,7 +1056,7 @@ t_bootstrap(void *boot_raw) Py_DECREF(boot->func); Py_DECREF(boot->args); Py_XDECREF(boot->keyw); - PyMem_DEL(boot_raw); + PyMem_Free(boot_raw); tstate->interp->num_threads--; PyThreadState_Clear(tstate); _PyThreadState_DeleteCurrent(tstate); @@ -1107,7 +1107,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) boot->tstate = _PyThreadState_Prealloc(boot->interp); boot->runtime = runtime; if (boot->tstate == NULL) { - PyMem_DEL(boot); + PyMem_Free(boot); return PyErr_NoMemory(); } Py_INCREF(func); @@ -1121,7 +1121,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) Py_DECREF(args); Py_XDECREF(keyw); PyThreadState_Clear(boot->tstate); - PyMem_DEL(boot); + PyMem_Free(boot); return NULL; } return PyLong_FromUnsignedLong(ident); diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index b30141d4497bd..24aeb3da94c70 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -2472,7 +2472,7 @@ PythonCmdDelete(ClientData clientData) ENTER_PYTHON Py_XDECREF(data->self); Py_XDECREF(data->func); - PyMem_DEL(data); + PyMem_Free(data); LEAVE_PYTHON } @@ -2545,7 +2545,7 @@ _tkinter_tkapp_createcommand_impl(TkappObject *self, const char *name, CommandEvent *ev = (CommandEvent*)attemptckalloc(sizeof(CommandEvent)); if (ev == NULL) { PyErr_NoMemory(); - PyMem_DEL(data); + PyMem_Free(data); return NULL; } ev->ev.proc = (Tcl_EventProc*)Tkapp_CommandProc; @@ -2568,7 +2568,7 @@ _tkinter_tkapp_createcommand_impl(TkappObject *self, const char *name, } if (err) { PyErr_SetString(Tkinter_TclError, "can't create Tcl command"); - PyMem_DEL(data); + PyMem_Free(data); return NULL; } @@ -2666,7 +2666,7 @@ DeleteFHCD(int id) *pp = p->next; Py_XDECREF(p->func); Py_XDECREF(p->file); - PyMem_DEL(p); + PyMem_Free(p); } else pp = &p->next; diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 2ba2ff43aa8b8..6583e66611959 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -133,7 +133,7 @@ array_resize(arrayobject *self, Py_ssize_t newsize) } if (newsize == 0) { - PyMem_FREE(self->ob_item); + PyMem_Free(self->ob_item); self->ob_item = NULL; Py_SET_SIZE(self, 0); self->allocated = 0; @@ -652,7 +652,7 @@ array_dealloc(arrayobject *op) if (op->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *) op); if (op->ob_item != NULL) - PyMem_DEL(op->ob_item); + PyMem_Free(op->ob_item); Py_TYPE(op)->tp_free((PyObject *)op); } diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index 86402768b6ee6..37a80a781da6f 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -1191,13 +1191,13 @@ _multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDeco goto errorexit; if (wdata != data) - PyMem_Del(wdata); + PyMem_Free(wdata); Py_XDECREF(buf.excobj); return res; errorexit: if (wdata != NULL && wdata != data) - PyMem_Del(wdata); + PyMem_Free(wdata); Py_XDECREF(buf.excobj); _PyUnicodeWriter_Dealloc(&buf.writer); return NULL; diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index efa96531d49c1..3e6e6585b880c 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -5480,7 +5480,7 @@ free_string_array(EXECV_CHAR **array, Py_ssize_t count) Py_ssize_t i; for (i = 0; i < count; i++) PyMem_Free(array[i]); - PyMem_DEL(array); + PyMem_Free(array); } static int @@ -6510,9 +6510,10 @@ os_spawnve_impl(PyObject *module, int mode, path_t *path, PyObject *argv, res = Py_BuildValue(_Py_PARSE_INTPTR, spawnval); fail_2: - while (--envc >= 0) - PyMem_DEL(envlist[envc]); - PyMem_DEL(envlist); + while (--envc >= 0) { + PyMem_Free(envlist[envc]); + } + PyMem_Free(envlist); fail_1: free_string_array(argvlist, lastarg); fail_0: @@ -7444,7 +7445,7 @@ os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid) list = PyList_New(ngroups); if (list == NULL) { - PyMem_Del(groups); + PyMem_Free(groups); return NULL; } @@ -7456,13 +7457,13 @@ os_getgrouplist_impl(PyObject *module, const char *user, gid_t basegid) #endif if (o == NULL) { Py_DECREF(list); - PyMem_Del(groups); + PyMem_Free(groups); return NULL; } PyList_SET_ITEM(list, i, o); } - PyMem_Del(groups); + PyMem_Free(groups); return list; } @@ -9407,7 +9408,7 @@ iov_setup(struct iovec **iov, Py_buffer **buf, PyObject *seq, Py_ssize_t cnt, in *buf = PyMem_New(Py_buffer, cnt); if (*buf == NULL) { - PyMem_Del(*iov); + PyMem_Free(*iov); PyErr_NoMemory(); return -1; } @@ -9427,11 +9428,11 @@ iov_setup(struct iovec **iov, Py_buffer **buf, PyObject *seq, Py_ssize_t cnt, in return 0; fail: - PyMem_Del(*iov); + PyMem_Free(*iov); for (j = 0; j < i; j++) { PyBuffer_Release(&(*buf)[j]); } - PyMem_Del(*buf); + PyMem_Free(*buf); return -1; } @@ -9439,11 +9440,11 @@ static void iov_cleanup(struct iovec *iov, Py_buffer *buf, int cnt) { int i; - PyMem_Del(iov); + PyMem_Free(iov); for (i = 0; i < cnt; i++) { PyBuffer_Release(&buf[i]); } - PyMem_Del(buf); + PyMem_Free(buf); } #endif @@ -12815,7 +12816,7 @@ os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks) path_error(path); break; } - buffer = PyMem_MALLOC(buffer_size); + buffer = PyMem_Malloc(buffer_size); if (!buffer) { PyErr_NoMemory(); break; @@ -12832,7 +12833,7 @@ os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks) if (length < 0) { if (errno == ERANGE) { - PyMem_FREE(buffer); + PyMem_Free(buffer); buffer = NULL; continue; } @@ -12870,7 +12871,7 @@ os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks) } exit: if (buffer) - PyMem_FREE(buffer); + PyMem_Free(buffer); return result; } #endif /* USE_XATTRS */ diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 693a833caea77..0b9f20d6bbd9d 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -294,9 +294,9 @@ select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist, wfd2obj = PyMem_NEW(pylist, FD_SETSIZE + 1); efd2obj = PyMem_NEW(pylist, FD_SETSIZE + 1); if (rfd2obj == NULL || wfd2obj == NULL || efd2obj == NULL) { - if (rfd2obj) PyMem_DEL(rfd2obj); - if (wfd2obj) PyMem_DEL(wfd2obj); - if (efd2obj) PyMem_DEL(efd2obj); + if (rfd2obj) PyMem_Free(rfd2obj); + if (wfd2obj) PyMem_Free(wfd2obj); + if (efd2obj) PyMem_Free(efd2obj); return PyErr_NoMemory(); } #endif /* SELECT_USES_HEAP */ @@ -381,9 +381,9 @@ select_select_impl(PyObject *module, PyObject *rlist, PyObject *wlist, reap_obj(wfd2obj); reap_obj(efd2obj); #ifdef SELECT_USES_HEAP - PyMem_DEL(rfd2obj); - PyMem_DEL(wfd2obj); - PyMem_DEL(efd2obj); + PyMem_Free(rfd2obj); + PyMem_Free(wfd2obj); + PyMem_Free(efd2obj); #endif /* SELECT_USES_HEAP */ return ret; } @@ -740,7 +740,7 @@ poll_dealloc(pollObject *self) { PyObject* type = (PyObject *)Py_TYPE(self); if (self->ufds != NULL) - PyMem_DEL(self->ufds); + PyMem_Free(self->ufds); Py_XDECREF(self->dict); PyObject_Del(self); Py_DECREF(type); @@ -1106,7 +1106,7 @@ newDevPollObject(PyObject *module) self = PyObject_New(devpollObject, get_select_state(module)->devpoll_Type); if (self == NULL) { close(fd_devpoll); - PyMem_DEL(fds); + PyMem_Free(fds); return NULL; } self->fd_devpoll = fd_devpoll; @@ -1129,7 +1129,7 @@ devpoll_dealloc(devpollObject *self) { PyObject *type = (PyObject *)Py_TYPE(self); (void)devpoll_internal_close(self); - PyMem_DEL(self->fds); + PyMem_Free(self->fds); PyObject_Del(self); Py_DECREF(type); } diff --git a/Objects/capsule.c b/Objects/capsule.c index ed24cc1d6a2eb..a2ff642526cd0 100644 --- a/Objects/capsule.c +++ b/Objects/capsule.c @@ -198,7 +198,7 @@ PyCapsule_Import(const char *name, int no_block) void *return_value = NULL; char *trace; size_t name_length = (strlen(name) + 1) * sizeof(char); - char *name_dup = (char *)PyMem_MALLOC(name_length); + char *name_dup = (char *)PyMem_Malloc(name_length); if (!name_dup) { return PyErr_NoMemory(); @@ -247,7 +247,7 @@ PyCapsule_Import(const char *name, int no_block) EXIT: Py_XDECREF(object); if (name_dup) { - PyMem_FREE(name_dup); + PyMem_Free(name_dup); } return return_value; } diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 7b224cc145e47..0257295f1e996 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -213,7 +213,7 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, PyObject *arg = PyTuple_GET_ITEM(varnames, j); int cmp = PyUnicode_Compare(cell, arg); if (cmp == -1 && PyErr_Occurred()) { - PyMem_FREE(cell2arg); + PyMem_Free(cell2arg); return NULL; } if (cmp == 0) { @@ -224,14 +224,14 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, } } if (!used_cell2arg) { - PyMem_FREE(cell2arg); + PyMem_Free(cell2arg); cell2arg = NULL; } } co = PyObject_New(PyCodeObject, &PyCode_Type); if (co == NULL) { if (cell2arg) - PyMem_FREE(cell2arg); + PyMem_Free(cell2arg); return NULL; } co->co_argcount = argcount; @@ -314,12 +314,12 @@ _PyCode_InitOpcache(PyCodeObject *co) if (opts) { co->co_opcache = (_PyOpcache *)PyMem_Calloc(opts, sizeof(_PyOpcache)); if (co->co_opcache == NULL) { - PyMem_FREE(co->co_opcache_map); + PyMem_Free(co->co_opcache_map); return -1; } } else { - PyMem_FREE(co->co_opcache_map); + PyMem_Free(co->co_opcache_map); co->co_opcache_map = NULL; co->co_opcache = NULL; } @@ -631,10 +631,10 @@ static void code_dealloc(PyCodeObject *co) { if (co->co_opcache != NULL) { - PyMem_FREE(co->co_opcache); + PyMem_Free(co->co_opcache); } if (co->co_opcache_map != NULL) { - PyMem_FREE(co->co_opcache_map); + PyMem_Free(co->co_opcache_map); } co->co_opcache_flag = 0; co->co_opcache_size = 0; @@ -664,7 +664,7 @@ code_dealloc(PyCodeObject *co) Py_XDECREF(co->co_name); Py_XDECREF(co->co_linetable); if (co->co_cell2arg != NULL) - PyMem_FREE(co->co_cell2arg); + PyMem_Free(co->co_cell2arg); if (co->co_zombieframe != NULL) PyObject_GC_Del(co->co_zombieframe); if (co->co_weakreflist != NULL) diff --git a/Objects/dictobject.c b/Objects/dictobject.c index faa8696153cb8..ee1a9d1d7e71e 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -640,7 +640,7 @@ free_keys_object(PyDictKeysObject *keys) } #define new_values(size) PyMem_NEW(PyObject *, size) -#define free_values(values) PyMem_FREE(values) +#define free_values(values) PyMem_Free(values) /* Consumes a reference to the keys object */ static PyObject * diff --git a/Objects/listobject.c b/Objects/listobject.c index aac87ea1b61c9..ca9df599a0bd4 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -341,7 +341,7 @@ list_dealloc(PyListObject *op) while (--i >= 0) { Py_XDECREF(op->ob_item[i]); } - PyMem_FREE(op->ob_item); + PyMem_Free(op->ob_item); } struct _Py_list_state *state = get_list_state(); #ifdef Py_DEBUG @@ -592,7 +592,7 @@ _list_clear(PyListObject *a) while (--i >= 0) { Py_XDECREF(item[i]); } - PyMem_FREE(item); + PyMem_Free(item); } /* Never fails; the return value can be ignored. Note that there is no guarantee that the list is actually empty @@ -668,7 +668,7 @@ list_ass_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v) /* If norig == 0, item might be NULL, in which case we may not memcpy from it. */ if (s) { if (s > sizeof(recycle_on_stack)) { - recycle = (PyObject **)PyMem_MALLOC(s); + recycle = (PyObject **)PyMem_Malloc(s); if (recycle == NULL) { PyErr_NoMemory(); goto Error; @@ -706,7 +706,7 @@ list_ass_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v) result = 0; Error: if (recycle != recycle_on_stack) - PyMem_FREE(recycle); + PyMem_Free(recycle); Py_XDECREF(v_as_SF); return result; #undef b @@ -2230,7 +2230,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) /* Leverage stack space we allocated but won't otherwise use */ keys = &ms.temparray[saved_ob_size+1]; else { - keys = PyMem_MALLOC(sizeof(PyObject *) * saved_ob_size); + keys = PyMem_Malloc(sizeof(PyObject *) * saved_ob_size); if (keys == NULL) { PyErr_NoMemory(); goto keyfunc_fail; @@ -2243,7 +2243,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) for (i=i-1 ; i>=0 ; i--) Py_DECREF(keys[i]); if (saved_ob_size >= MERGESTATE_TEMP_SIZE/2) - PyMem_FREE(keys); + PyMem_Free(keys); goto keyfunc_fail; } } @@ -2414,7 +2414,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) for (i = 0; i < saved_ob_size; i++) Py_DECREF(keys[i]); if (saved_ob_size >= MERGESTATE_TEMP_SIZE/2) - PyMem_FREE(keys); + PyMem_Free(keys); } if (self->allocated != -1 && result != NULL) { @@ -2442,7 +2442,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) while (--i >= 0) { Py_XDECREF(final_ob_item[i]); } - PyMem_FREE(final_ob_item); + PyMem_Free(final_ob_item); } Py_XINCREF(result); return result; @@ -2908,7 +2908,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value) } garbage = (PyObject**) - PyMem_MALLOC(slicelength*sizeof(PyObject*)); + PyMem_Malloc(slicelength*sizeof(PyObject*)); if (!garbage) { PyErr_NoMemory(); return -1; @@ -2949,7 +2949,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value) for (i = 0; i < slicelength; i++) { Py_DECREF(garbage[i]); } - PyMem_FREE(garbage); + PyMem_Free(garbage); return res; } @@ -2990,7 +2990,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value) } garbage = (PyObject**) - PyMem_MALLOC(slicelength*sizeof(PyObject*)); + PyMem_Malloc(slicelength*sizeof(PyObject*)); if (!garbage) { Py_DECREF(seq); PyErr_NoMemory(); @@ -3011,7 +3011,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value) Py_DECREF(garbage[i]); } - PyMem_FREE(garbage); + PyMem_Free(garbage); Py_DECREF(seq); return 0; diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index c3ceb788e8e69..6590387dac531 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -211,7 +211,7 @@ _PyModule_CreateInitialized(struct PyModuleDef* module, int module_api_version) return NULL; if (module->m_size > 0) { - m->md_state = PyMem_MALLOC(module->m_size); + m->md_state = PyMem_Malloc(module->m_size); if (!m->md_state) { PyErr_NoMemory(); Py_DECREF(m); @@ -377,7 +377,7 @@ PyModule_ExecDef(PyObject *module, PyModuleDef *def) if (md->md_state == NULL) { /* Always set a state pointer; this serves as a marker to skip * multiple initialization (importlib.reload() is no-op) */ - md->md_state = PyMem_MALLOC(def->m_size); + md->md_state = PyMem_Malloc(def->m_size); if (!md->md_state) { PyErr_NoMemory(); return -1; @@ -681,7 +681,7 @@ module_dealloc(PyModuleObject *m) Py_XDECREF(m->md_dict); Py_XDECREF(m->md_name); if (m->md_state != NULL) - PyMem_FREE(m->md_state); + PyMem_Free(m->md_state); Py_TYPE(m)->tp_free((PyObject *)m); } diff --git a/Objects/odictobject.c b/Objects/odictobject.c index b4ac560d23581..83b326b2067a8 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -567,14 +567,14 @@ _odict_resize(PyODictObject *od) i = _odict_get_index_raw(od, _odictnode_KEY(node), _odictnode_HASH(node)); if (i < 0) { - PyMem_FREE(fast_nodes); + PyMem_Free(fast_nodes); return -1; } fast_nodes[i] = node; } /* Replace the old fast nodes table. */ - PyMem_FREE(od->od_fast_nodes); + PyMem_Free(od->od_fast_nodes); od->od_fast_nodes = fast_nodes; od->od_fast_nodes_size = size; od->od_resize_sentinel = ((PyDictObject *)od)->ma_keys; @@ -683,7 +683,7 @@ _odict_add_new_node(PyODictObject *od, PyObject *key, Py_hash_t hash) } /* must not be added yet */ - node = (_ODictNode *)PyMem_MALLOC(sizeof(_ODictNode)); + node = (_ODictNode *)PyMem_Malloc(sizeof(_ODictNode)); if (node == NULL) { Py_DECREF(key); PyErr_NoMemory(); @@ -701,7 +701,7 @@ _odict_add_new_node(PyODictObject *od, PyObject *key, Py_hash_t hash) #define _odictnode_DEALLOC(node) \ do { \ Py_DECREF(_odictnode_KEY(node)); \ - PyMem_FREE((void *)node); \ + PyMem_Free((void *)node); \ } while (0) /* Repeated calls on the same node are no-ops. */ @@ -776,7 +776,7 @@ _odict_clear_nodes(PyODictObject *od) { _ODictNode *node, *next; - PyMem_FREE(od->od_fast_nodes); + PyMem_Free(od->od_fast_nodes); od->od_fast_nodes = NULL; od->od_fast_nodes_size = 0; od->od_resize_sentinel = NULL; diff --git a/Objects/setobject.c b/Objects/setobject.c index af8ee03d831d6..79e84511926e1 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -289,7 +289,7 @@ set_table_resize(PySetObject *so, Py_ssize_t minused) } if (is_oldtable_malloced) - PyMem_DEL(oldtable); + PyMem_Free(oldtable); return 0; } @@ -424,7 +424,7 @@ set_clear_internal(PySetObject *so) } if (table_is_malloced) - PyMem_DEL(table); + PyMem_Free(table); return 0; } @@ -484,7 +484,7 @@ set_dealloc(PySetObject *so) } } if (so->table != so->smalltable) - PyMem_DEL(so->table); + PyMem_Free(so->table); Py_TYPE(so)->tp_free(so); Py_TRASHCAN_END } diff --git a/Objects/stringlib/join.h b/Objects/stringlib/join.h index 53bcbdea7ade9..62e4c98de7f25 100644 --- a/Objects/stringlib/join.h +++ b/Objects/stringlib/join.h @@ -155,7 +155,7 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable) for (i = 0; i < nbufs; i++) PyBuffer_Release(&buffers[i]); if (buffers != static_buffers) - PyMem_FREE(buffers); + PyMem_Free(buffers); return res; } diff --git a/Objects/structseq.c b/Objects/structseq.c index bb28e113978b3..5d71fcff3461a 100644 --- a/Objects/structseq.c +++ b/Objects/structseq.c @@ -467,14 +467,14 @@ PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc) type->tp_members = members; if (PyType_Ready(type) < 0) { - PyMem_FREE(members); + PyMem_Free(members); return -1; } Py_INCREF(type); if (initialize_structseq_dict( desc, type->tp_dict, n_members, n_unnamed_members) < 0) { - PyMem_FREE(members); + PyMem_Free(members); Py_DECREF(type); return -1; } @@ -526,7 +526,7 @@ PyStructSequence_NewType(PyStructSequence_Desc *desc) spec.slots = slots; type = (PyTypeObject *)PyType_FromSpecWithBases(&spec, (PyObject *)&PyTuple_Type); - PyMem_FREE(members); + PyMem_Free(members); if (type == NULL) { return NULL; } diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 3a6143a8ad613..fbadd31f1a46c 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -1779,7 +1779,7 @@ pmerge(PyObject *acc, PyObject **to_merge, Py_ssize_t to_merge_size) } out: - PyMem_Del(remain); + PyMem_Free(remain); return res; } @@ -1859,7 +1859,7 @@ mro_implementation(PyTypeObject *type) result = PyList_New(1); if (result == NULL) { - PyMem_Del(to_merge); + PyMem_Free(to_merge); return NULL; } @@ -1869,7 +1869,7 @@ mro_implementation(PyTypeObject *type) Py_CLEAR(result); } - PyMem_Del(to_merge); + PyMem_Free(to_merge); return result; } diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 70688c8c01381..ba6d07a67d2da 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -3298,7 +3298,7 @@ PyUnicode_AsWideCharString(PyObject *unicode, *size = buflen; } else if (wcslen(buffer) != (size_t)buflen) { - PyMem_FREE(buffer); + PyMem_Free(buffer); PyErr_SetString(PyExc_ValueError, "embedded null character"); return NULL; @@ -10211,7 +10211,7 @@ case_operation(PyObject *self, PyErr_SetString(PyExc_OverflowError, "string is too long"); return NULL; } - tmp = PyMem_MALLOC(sizeof(Py_UCS4) * 3 * length); + tmp = PyMem_Malloc(sizeof(Py_UCS4) * 3 * length); if (tmp == NULL) return PyErr_NoMemory(); newlength = perform(kind, data, length, tmp, &maxchar); @@ -10235,7 +10235,7 @@ case_operation(PyObject *self, Py_UNREACHABLE(); } leave: - PyMem_FREE(tmp); + PyMem_Free(tmp); return res; } @@ -11050,11 +11050,11 @@ replace(PyObject *self, PyObject *str1, assert(release1 == (buf1 != PyUnicode_DATA(str1))); assert(release2 == (buf2 != PyUnicode_DATA(str2))); if (srelease) - PyMem_FREE((void *)sbuf); + PyMem_Free((void *)sbuf); if (release1) - PyMem_FREE((void *)buf1); + PyMem_Free((void *)buf1); if (release2) - PyMem_FREE((void *)buf2); + PyMem_Free((void *)buf2); assert(_PyUnicode_CheckConsistency(u, 1)); return u; @@ -11064,11 +11064,11 @@ replace(PyObject *self, PyObject *str1, assert(release1 == (buf1 != PyUnicode_DATA(str1))); assert(release2 == (buf2 != PyUnicode_DATA(str2))); if (srelease) - PyMem_FREE((void *)sbuf); + PyMem_Free((void *)sbuf); if (release1) - PyMem_FREE((void *)buf1); + PyMem_Free((void *)buf1); if (release2) - PyMem_FREE((void *)buf2); + PyMem_Free((void *)buf2); return unicode_result_unchanged(self); error: @@ -11076,11 +11076,11 @@ replace(PyObject *self, PyObject *str1, assert(release1 == (buf1 != PyUnicode_DATA(str1))); assert(release2 == (buf2 != PyUnicode_DATA(str2))); if (srelease) - PyMem_FREE((void *)sbuf); + PyMem_Free((void *)sbuf); if (release1) - PyMem_FREE((void *)buf1); + PyMem_Free((void *)buf1); if (release2) - PyMem_FREE((void *)buf2); + PyMem_Free((void *)buf2); return NULL; } diff --git a/PC/winreg.c b/PC/winreg.c index 78c08693a8ace..fee51ac1bbe0a 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -1818,7 +1818,7 @@ winreg_SetValueEx_impl(PyObject *module, HKEY key, Py_BEGIN_ALLOW_THREADS rc = RegSetValueExW(key, value_name, 0, type, data, len); Py_END_ALLOW_THREADS - PyMem_DEL(data); + PyMem_Free(data); if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegSetValueEx"); diff --git a/Parser/string_parser.c b/Parser/string_parser.c index 8f6433dbcec13..09b8c35106e76 100644 --- a/Parser/string_parser.c +++ b/Parser/string_parser.c @@ -384,7 +384,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end, int lines, cols; if (!fstring_find_expr_location(t, str, &lines, &cols)) { - PyMem_FREE(str); + PyMem_Free(str); return NULL; } diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index f3c1d9b20ade1..96539bd556529 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -51,7 +51,7 @@ static const char* type_comment_prefix = "# type: "; static struct tok_state * tok_new(void) { - struct tok_state *tok = (struct tok_state *)PyMem_MALLOC( + struct tok_state *tok = (struct tok_state *)PyMem_Malloc( sizeof(struct tok_state)); if (tok == NULL) return NULL; @@ -93,7 +93,7 @@ tok_new(void) static char * new_string(const char *s, Py_ssize_t len, struct tok_state *tok) { - char* result = (char *)PyMem_MALLOC(len + 1); + char* result = (char *)PyMem_Malloc(len + 1); if (!result) { tok->done = E_NOMEM; return NULL; @@ -108,7 +108,7 @@ error_ret(struct tok_state *tok) /* XXX */ { tok->decoding_erred = 1; if (tok->fp != NULL && tok->buf != NULL) /* see PyTokenizer_Free */ - PyMem_FREE(tok->buf); + PyMem_Free(tok->buf); tok->buf = tok->cur = tok->inp = NULL; tok->start = NULL; tok->end = NULL; @@ -184,7 +184,7 @@ get_coding_spec(const char *s, char **spec, Py_ssize_t size, struct tok_state *t return 0; q = get_normal_name(r); if (r != q) { - PyMem_FREE(r); + PyMem_Free(r); r = new_string(q, strlen(q), tok); if (!r) return 0; @@ -244,7 +244,7 @@ check_coding_spec(const char* line, Py_ssize_t size, struct tok_state *tok, else { PyErr_Format(PyExc_SyntaxError, "encoding problem: %s", cs); - PyMem_FREE(cs); + PyMem_Free(cs); } } } else { /* then, compare cs with BOM */ @@ -252,7 +252,7 @@ check_coding_spec(const char* line, Py_ssize_t size, struct tok_state *tok, if (!r) PyErr_Format(PyExc_SyntaxError, "encoding problem: %s with BOM", cs); - PyMem_FREE(cs); + PyMem_Free(cs); } return r; } @@ -315,7 +315,7 @@ check_bom(int get_char(struct tok_state *), return 1; } if (tok->encoding != NULL) - PyMem_FREE(tok->encoding); + PyMem_Free(tok->encoding); tok->encoding = new_string("utf-8", 5, tok); if (!tok->encoding) return 0; @@ -620,7 +620,7 @@ translate_newlines(const char *s, int exec_input, struct tok_state *tok) { size_t needed_length = strlen(s) + 2, final_length; char *buf, *current; char c = '\0'; - buf = PyMem_MALLOC(needed_length); + buf = PyMem_Malloc(needed_length); if (buf == NULL) { tok->done = E_NOMEM; return NULL; @@ -651,9 +651,9 @@ translate_newlines(const char *s, int exec_input, struct tok_state *tok) { final_length = current - buf + 1; if (final_length < needed_length && final_length) { /* should never fail */ - char* result = PyMem_REALLOC(buf, final_length); + char* result = PyMem_Realloc(buf, final_length); if (result == NULL) { - PyMem_FREE(buf); + PyMem_Free(buf); } buf = result; } @@ -757,7 +757,7 @@ PyTokenizer_FromUTF8(const char *str, int exec_input) tok->read_coding_spec = 1; tok->enc = NULL; tok->str = translated; - tok->encoding = (char *)PyMem_MALLOC(6); + tok->encoding = (char *)PyMem_Malloc(6); if (!tok->encoding) { PyTokenizer_Free(tok); return NULL; @@ -778,7 +778,7 @@ PyTokenizer_FromFile(FILE *fp, const char* enc, struct tok_state *tok = tok_new(); if (tok == NULL) return NULL; - if ((tok->buf = (char *)PyMem_MALLOC(BUFSIZ)) == NULL) { + if ((tok->buf = (char *)PyMem_Malloc(BUFSIZ)) == NULL) { PyTokenizer_Free(tok); return NULL; } @@ -790,7 +790,7 @@ PyTokenizer_FromFile(FILE *fp, const char* enc, if (enc != NULL) { /* Must copy encoding declaration since it gets copied into the parse tree. */ - tok->encoding = PyMem_MALLOC(strlen(enc)+1); + tok->encoding = PyMem_Malloc(strlen(enc)+1); if (!tok->encoding) { PyTokenizer_Free(tok); return NULL; @@ -808,15 +808,15 @@ void PyTokenizer_Free(struct tok_state *tok) { if (tok->encoding != NULL) - PyMem_FREE(tok->encoding); + PyMem_Free(tok->encoding); Py_XDECREF(tok->decoding_readline); Py_XDECREF(tok->decoding_buffer); Py_XDECREF(tok->filename); if (tok->fp != NULL && tok->buf != NULL) - PyMem_FREE(tok->buf); + PyMem_Free(tok->buf); if (tok->input) - PyMem_FREE(tok->input); - PyMem_FREE(tok); + PyMem_Free(tok->input); + PyMem_Free(tok); } /* Get next char, updating state; error code goes into tok->done */ @@ -852,7 +852,7 @@ tok_nextc(struct tok_state *tok) char *newtok = PyOS_Readline(stdin, stdout, tok->prompt); if (newtok != NULL) { char *translated = translate_newlines(newtok, 0, tok); - PyMem_FREE(newtok); + PyMem_Free(newtok); if (translated == NULL) return EOF; newtok = translated; @@ -862,14 +862,14 @@ tok_nextc(struct tok_state *tok) Py_ssize_t buflen; const char* buf; PyObject *u = translate_into_utf8(newtok, tok->encoding); - PyMem_FREE(newtok); + PyMem_Free(newtok); if (!u) { tok->done = E_DECODE; return EOF; } buflen = PyBytes_GET_SIZE(u); buf = PyBytes_AS_STRING(u); - newtok = PyMem_MALLOC(buflen+1); + newtok = PyMem_Malloc(buflen+1); if (newtok == NULL) { Py_DECREF(u); tok->done = E_NOMEM; @@ -883,7 +883,7 @@ tok_nextc(struct tok_state *tok) if (newtok == NULL) tok->done = E_INTR; else if (*newtok == '\0') { - PyMem_FREE(newtok); + PyMem_Free(newtok); tok->done = E_EOF; } else if (tok->start != NULL) { @@ -892,12 +892,12 @@ tok_nextc(struct tok_state *tok) size_t newlen = oldlen + strlen(newtok); Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf; char *buf = tok->buf; - buf = (char *)PyMem_REALLOC(buf, newlen+1); + buf = (char *)PyMem_Realloc(buf, newlen+1); tok->lineno++; if (buf == NULL) { - PyMem_FREE(tok->buf); + PyMem_Free(tok->buf); tok->buf = NULL; - PyMem_FREE(newtok); + PyMem_Free(newtok); tok->done = E_NOMEM; return EOF; } @@ -906,7 +906,7 @@ tok_nextc(struct tok_state *tok) tok->multi_line_start = tok->buf + cur_multi_line_start; tok->line_start = tok->cur; strcpy(tok->buf + oldlen, newtok); - PyMem_FREE(newtok); + PyMem_Free(newtok); tok->inp = tok->buf + newlen; tok->end = tok->inp + 1; tok->start = tok->buf + start; @@ -914,7 +914,7 @@ tok_nextc(struct tok_state *tok) else { tok->lineno++; if (tok->buf != NULL) - PyMem_FREE(tok->buf); + PyMem_Free(tok->buf); tok->buf = newtok; tok->cur = tok->buf; tok->line_start = tok->buf; @@ -929,7 +929,7 @@ tok_nextc(struct tok_state *tok) if (tok->start == NULL) { if (tok->buf == NULL) { tok->buf = (char *) - PyMem_MALLOC(BUFSIZ); + PyMem_Malloc(BUFSIZ); if (tok->buf == NULL) { tok->done = E_NOMEM; return EOF; @@ -966,7 +966,7 @@ tok_nextc(struct tok_state *tok) Py_ssize_t curvalid = tok->inp - tok->buf; Py_ssize_t newsize = curvalid + BUFSIZ; char *newbuf = tok->buf; - newbuf = (char *)PyMem_REALLOC(newbuf, + newbuf = (char *)PyMem_Realloc(newbuf, newsize); if (newbuf == NULL) { tok->done = E_NOMEM; @@ -1851,7 +1851,7 @@ PyTokenizer_Get(struct tok_state *tok, const char **p_start, const char **p_end) encoding in the first or second line of the file (in which case the encoding should be assumed to be UTF-8). - The char* returned is malloc'ed via PyMem_MALLOC() and thus must be freed + The char* returned is malloc'ed via PyMem_Malloc() and thus must be freed by the caller. */ char * @@ -1894,7 +1894,7 @@ PyTokenizer_FindEncodingFilename(int fd, PyObject *filename) } fclose(fp); if (tok->encoding) { - encoding = (char *)PyMem_MALLOC(strlen(tok->encoding) + 1); + encoding = (char *)PyMem_Malloc(strlen(tok->encoding) + 1); if (encoding) strcpy(encoding, tok->encoding); } diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 1ce55b6ec5a1c..a73b8cb320e97 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -2089,7 +2089,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt) Py_DECREF(stdin_encoding); Py_DECREF(stdin_errors); Py_XDECREF(po); - PyMem_FREE(s); + PyMem_Free(s); if (result != NULL) { if (PySys_Audit("builtins.input/result", "O", result) < 0) { diff --git a/Python/getargs.c b/Python/getargs.c index c85ff6d4777d2..8839492e5ef41 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -202,7 +202,7 @@ static int cleanup_ptr(PyObject *self, void *ptr) { if (ptr) { - PyMem_FREE(ptr); + PyMem_Free(ptr); } return 0; } @@ -246,7 +246,7 @@ cleanreturn(int retval, freelist_t *freelist) } } if (freelist->entries_malloced) - PyMem_FREE(freelist->entries); + PyMem_Free(freelist->entries); return retval; } diff --git a/Python/marshal.c b/Python/marshal.c index d292987ce05f4..fa4ec9eb605f0 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -638,7 +638,7 @@ r_string(Py_ssize_t n, RFILE *p) return res; } if (p->buf == NULL) { - p->buf = PyMem_MALLOC(n); + p->buf = PyMem_Malloc(n); if (p->buf == NULL) { PyErr_NoMemory(); return NULL; @@ -646,7 +646,7 @@ r_string(Py_ssize_t n, RFILE *p) p->buf_size = n; } else if (p->buf_size < n) { - char *tmp = PyMem_REALLOC(p->buf, n); + char *tmp = PyMem_Realloc(p->buf, n); if (tmp == NULL) { PyErr_NoMemory(); return NULL; @@ -1453,7 +1453,7 @@ PyMarshal_ReadShortFromFile(FILE *fp) rf.buf = NULL; res = r_short(&rf); if (rf.buf != NULL) - PyMem_FREE(rf.buf); + PyMem_Free(rf.buf); return res; } @@ -1468,7 +1468,7 @@ PyMarshal_ReadLongFromFile(FILE *fp) rf.buf = NULL; res = r_long(&rf); if (rf.buf != NULL) - PyMem_FREE(rf.buf); + PyMem_Free(rf.buf); return res; } @@ -1501,11 +1501,11 @@ PyMarshal_ReadLastObjectFromFile(FILE *fp) off_t filesize; filesize = getfilesize(fp); if (filesize > 0 && filesize <= REASONABLE_FILE_LIMIT) { - char* pBuf = (char *)PyMem_MALLOC(filesize); + char* pBuf = (char *)PyMem_Malloc(filesize); if (pBuf != NULL) { size_t n = fread(pBuf, 1, (size_t)filesize, fp); PyObject* v = PyMarshal_ReadObjectFromString(pBuf, n); - PyMem_FREE(pBuf); + PyMem_Free(pBuf); return v; } @@ -1534,7 +1534,7 @@ PyMarshal_ReadObjectFromFile(FILE *fp) result = r_object(&rf); Py_DECREF(rf.refs); if (rf.buf != NULL) - PyMem_FREE(rf.buf); + PyMem_Free(rf.buf); return result; } @@ -1555,7 +1555,7 @@ PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len) result = r_object(&rf); Py_DECREF(rf.refs); if (rf.buf != NULL) - PyMem_FREE(rf.buf); + PyMem_Free(rf.buf); return result; } @@ -1684,7 +1684,7 @@ marshal_load(PyObject *module, PyObject *file) result = read_object(&rf); Py_DECREF(rf.refs); if (rf.buf != NULL) - PyMem_FREE(rf.buf); + PyMem_Free(rf.buf); } else result = NULL; } diff --git a/Python/pystrtod.c b/Python/pystrtod.c index 1c8202c776188..9145d4eba121e 100644 --- a/Python/pystrtod.c +++ b/Python/pystrtod.c @@ -255,7 +255,7 @@ _PyOS_ascii_strtod(const char *nptr, char **endptr) char *copy, *c; /* Create a copy of the input, with the '.' converted to the locale-specific decimal point */ - copy = (char *)PyMem_MALLOC(end - digits_pos + + copy = (char *)PyMem_Malloc(end - digits_pos + 1 + decimal_point_len); if (copy == NULL) { *endptr = (char *)nptr; @@ -286,7 +286,7 @@ _PyOS_ascii_strtod(const char *nptr, char **endptr) (fail_pos - copy); } - PyMem_FREE(copy); + PyMem_Free(copy); } else { diff --git a/Python/traceback.c b/Python/traceback.c index 99b63af11f8be..708678facf7c3 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -419,12 +419,12 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent) if (lseek(fd, 0, SEEK_SET) == (off_t)-1) { Py_DECREF(io); Py_DECREF(binary); - PyMem_FREE(found_encoding); + PyMem_Free(found_encoding); return 0; } fob = _PyObject_CallMethodId(io, &PyId_TextIOWrapper, "Os", binary, encoding); Py_DECREF(io); - PyMem_FREE(found_encoding); + PyMem_Free(found_encoding); if (fob == NULL) { PyErr_Clear(); From webhook-mailer at python.org Tue Dec 1 04:37:48 2020 From: webhook-mailer at python.org (vstinner) Date: Tue, 01 Dec 2020 09:37:48 -0000 Subject: [Python-checkins] bpo-42519: Replace PyObject_MALLOC() with PyObject_Malloc() (GH-23587) Message-ID: https://github.com/python/cpython/commit/32bd68c839adb7b42af12366ab0892303115d1d1 commit: 32bd68c839adb7b42af12366ab0892303115d1d1 branch: master author: Victor Stinner committer: vstinner date: 2020-12-01T10:37:39+01:00 summary: bpo-42519: Replace PyObject_MALLOC() with PyObject_Malloc() (GH-23587) No longer use deprecated aliases to functions: * Replace PyObject_MALLOC() with PyObject_Malloc() * Replace PyObject_REALLOC() with PyObject_Realloc() * Replace PyObject_FREE() with PyObject_Free() * Replace PyObject_Del() with PyObject_Free() * Replace PyObject_DEL() with PyObject_Free() files: M Include/objimpl.h M Include/pymem.h M Modules/_blake2/blake2b_impl.c M Modules/_blake2/blake2s_impl.c M Modules/_ctypes/callproc.c M Modules/_curses_panel.c M Modules/_cursesmodule.c M Modules/_decimal/_decimal.c M Modules/_functoolsmodule.c M Modules/_hashopenssl.c M Modules/_multiprocessing/semaphore.c M Modules/_pickle.c M Modules/_sha3/sha3module.c M Modules/_sre.c M Modules/_ssl.c M Modules/_testbuffer.c M Modules/_testcapimodule.c M Modules/_threadmodule.c M Modules/_tkinter.c M Modules/cjkcodecs/multibytecodec.c M Modules/gcmodule.c M Modules/md5module.c M Modules/ossaudiodev.c M Modules/overlapped.c M Modules/selectmodule.c M Modules/sha1module.c M Modules/sha256module.c M Modules/sha512module.c M Modules/sre_lib.h M Modules/unicodedata.c M Modules/xxmodule.c M Modules/zlibmodule.c M Objects/bytesobject.c M Objects/capsule.c M Objects/codeobject.c M Objects/complexobject.c M Objects/dictobject.c M Objects/floatobject.c M Objects/longobject.c M Objects/object.c M Objects/odictobject.c M Objects/rangeobject.c M Objects/stringlib/unicode_format.h M Objects/typeobject.c M Objects/unicodeobject.c M PC/_msi.c M PC/winreg.c M Python/symtable.c diff --git a/Include/objimpl.h b/Include/objimpl.h index 464b1bf93ba2c..1408d051ba7ef 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -38,7 +38,7 @@ Functions and macros for modules that implement new object types. object with room for n items. In addition to the refcount and type pointer fields, this also fills in the ob_size field. - - PyObject_Del(op) releases the memory allocated for an object. It does not + - PyObject_Free(op) releases the memory allocated for an object. It does not run a destructor -- it only frees the memory. PyObject_Free is identical. - PyObject_Init(op, typeobj) and PyObject_InitVar(op, typeobj, n) don't @@ -103,6 +103,8 @@ PyAPI_FUNC(void) PyObject_Free(void *ptr); // Deprecated aliases only kept for backward compatibility. +// PyObject_Del and PyObject_DEL are defined with no parameter to be able to +// use them as function pointers (ex: tp_free = PyObject_Del). #define PyObject_MALLOC PyObject_Malloc #define PyObject_REALLOC PyObject_Realloc #define PyObject_FREE PyObject_Free diff --git a/Include/pymem.h b/Include/pymem.h index 5b9dd4219948a..92cd5369589ed 100644 --- a/Include/pymem.h +++ b/Include/pymem.h @@ -79,13 +79,15 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); // Deprecated aliases only kept for backward compatibility. +// PyMem_Del and PyMem_DEL are defined with no parameter to be able to use +// them as function pointers (ex: dealloc = PyMem_Del). #define PyMem_MALLOC(n) PyMem_Malloc(n) #define PyMem_NEW(type, n) PyMem_New(type, n) #define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) #define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n) #define PyMem_FREE(p) PyMem_Free(p) -#define PyMem_Del(p) PyMem_Free(p) -#define PyMem_DEL(p) PyMem_Free(p) +#define PyMem_Del PyMem_Free +#define PyMem_DEL PyMem_Free #ifndef Py_LIMITED_API diff --git a/Modules/_blake2/blake2b_impl.c b/Modules/_blake2/blake2b_impl.c index 8e1acce56b1d2..5d108ed008a8a 100644 --- a/Modules/_blake2/blake2b_impl.c +++ b/Modules/_blake2/blake2b_impl.c @@ -393,7 +393,7 @@ py_blake2b_dealloc(PyObject *self) } PyTypeObject *type = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(type); } diff --git a/Modules/_blake2/blake2s_impl.c b/Modules/_blake2/blake2s_impl.c index e1de5df37d098..85c2d4edad7ee 100644 --- a/Modules/_blake2/blake2s_impl.c +++ b/Modules/_blake2/blake2s_impl.c @@ -392,7 +392,7 @@ py_blake2s_dealloc(PyObject *self) } PyTypeObject *type = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(type); } diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 9b629877a8a53..40a05a44edd4c 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -475,7 +475,7 @@ static void PyCArg_dealloc(PyCArgObject *self) { Py_XDECREF(self->obj); - PyObject_Del(self); + PyObject_Free(self); } static int diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c index 1a8f0b636821f..7d252244e2405 100644 --- a/Modules/_curses_panel.c +++ b/Modules/_curses_panel.c @@ -282,7 +282,7 @@ PyCursesPanel_Dealloc(PyCursesPanelObject *po) Py_DECREF(po->wo); remove_lop(po); } - PyObject_DEL(po); + PyObject_Free(po); Py_DECREF(tp); } diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index a59858632e76f..1f4789baf7a68 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -689,7 +689,7 @@ PyCursesWindow_Dealloc(PyCursesWindowObject *wo) if (wo->win != stdscr) delwin(wo->win); if (wo->encoding != NULL) PyMem_Free(wo->encoding); - PyObject_DEL(wo); + PyObject_Free(wo); } /* Addch, Addstr, Addnstr */ diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c index ea16c5a6cd9cd..9c85d76c6b5b8 100644 --- a/Modules/_decimal/_decimal.c +++ b/Modules/_decimal/_decimal.c @@ -1765,7 +1765,7 @@ ctxmanager_dealloc(PyDecContextManagerObject *self) { Py_XDECREF(self->local); Py_XDECREF(self->global); - PyObject_Del(self); + PyObject_Free(self); } static PyObject * diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index 9fad21fc33213..ff03c334766b8 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -478,7 +478,7 @@ keyobject_dealloc(keyobject *ko) { Py_DECREF(ko->cmp); Py_XDECREF(ko->object); - PyObject_FREE(ko); + PyObject_Free(ko); } static int @@ -742,7 +742,7 @@ lru_list_elem_dealloc(lru_list_elem *link) { Py_XDECREF(link->key); Py_XDECREF(link->result); - PyObject_Del(link); + PyObject_Free(link); } static PyTypeObject lru_list_elem_type = { diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 7e176cf21d629..d4295d7c3638d 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -341,7 +341,7 @@ EVP_dealloc(EVPobject *self) if (self->lock != NULL) PyThread_free_lock(self->lock); EVP_MD_CTX_free(self->ctx); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -1453,7 +1453,7 @@ _hashlib_hmac_new_impl(PyObject *module, Py_buffer *key, PyObject *msg_obj, error: if (ctx) HMAC_CTX_free(ctx); - if (self) PyObject_Del(self); + if (self) PyObject_Free(self); return NULL; } @@ -1546,7 +1546,7 @@ _hmac_dealloc(HMACobject *self) PyThread_free_lock(self->lock); } HMAC_CTX_free(self->ctx); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/_multiprocessing/semaphore.c b/Modules/_multiprocessing/semaphore.c index 8732750e11be8..9a2d1f85c92fa 100644 --- a/Modules/_multiprocessing/semaphore.c +++ b/Modules/_multiprocessing/semaphore.c @@ -571,7 +571,7 @@ semlock_dealloc(SemLockObject* self) if (self->handle != SEM_FAILED) SEM_CLOSE(self->handle); PyMem_Free(self->name); - PyObject_Del(self); + PyObject_Free(self); } /*[clinic input] diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 7ecaeea18c611..5a8aad9de7679 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -443,7 +443,7 @@ Pdata_dealloc(Pdata *self) Py_DECREF(self->data[i]); } PyMem_Free(self->data); - PyObject_Del(self); + PyObject_Free(self); } static PyTypeObject Pdata_Type = { diff --git a/Modules/_sha3/sha3module.c b/Modules/_sha3/sha3module.c index da6dde6812f26..cae10f99d5b8d 100644 --- a/Modules/_sha3/sha3module.c +++ b/Modules/_sha3/sha3module.c @@ -274,7 +274,7 @@ SHA3_dealloc(SHA3object *self) } PyTypeObject *tp = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/_sre.c b/Modules/_sre.c index c67f38d75b809..57faf7bdaae4e 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -571,7 +571,7 @@ pattern_dealloc(PatternObject* self) Py_XDECREF(self->pattern); Py_XDECREF(self->groupindex); Py_XDECREF(self->indexgroup); - PyObject_DEL(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -1944,7 +1944,7 @@ match_dealloc(MatchObject* self) Py_XDECREF(self->regs); Py_XDECREF(self->string); Py_DECREF(self->pattern); - PyObject_DEL(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -2450,7 +2450,7 @@ scanner_dealloc(ScannerObject* self) state_fini(&self->state); Py_XDECREF(self->pattern); - PyObject_DEL(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 87fe3a16078fa..edb850ee46103 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -2295,7 +2295,7 @@ PySSL_dealloc(PySSLSocket *self) Py_XDECREF(self->ctx); Py_XDECREF(self->server_hostname); Py_XDECREF(self->owner); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c index d8321768bc972..1b4fb09fb8fbc 100644 --- a/Modules/_testbuffer.c +++ b/Modules/_testbuffer.c @@ -236,7 +236,7 @@ ndarray_dealloc(NDArrayObject *self) ndbuf_pop(self); } } - PyObject_Del(self); + PyObject_Free(self); } static int @@ -2734,7 +2734,7 @@ staticarray_init(PyObject *self, PyObject *args, PyObject *kwds) static void staticarray_dealloc(StaticArrayObject *self) { - PyObject_Del(self); + PyObject_Free(self); } /* Return a buffer for a PyBUF_FULL_RO request. Flags are not checked, diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 916d10a1e413b..d2104423c5890 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -6010,7 +6010,7 @@ test_structmembers_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) static void test_structmembers_free(PyObject *ob) { - PyObject_FREE(ob); + PyObject_Free(ob); } static PyTypeObject test_structmembersType = { @@ -6664,7 +6664,7 @@ static void heapctype_dealloc(HeapCTypeObject *self) { PyTypeObject *tp = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -6854,7 +6854,7 @@ heapctypewithdict_dealloc(HeapCTypeWithDictObject* self) PyTypeObject *tp = Py_TYPE(self); Py_XDECREF(self->dict); - PyObject_DEL(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -6925,7 +6925,7 @@ heapctypewithweakref_dealloc(HeapCTypeWithWeakrefObject* self) if (self->weakreflist != NULL) PyObject_ClearWeakRefs((PyObject *) self); Py_XDECREF(self->weakreflist); - PyObject_DEL(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -6968,7 +6968,7 @@ static void heapctypesetattr_dealloc(HeapCTypeSetattrObject *self) { PyTypeObject *tp = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index dcefa8dbaa91b..86d5f544fcf0f 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -34,7 +34,7 @@ lock_dealloc(lockobject *self) PyThread_release_lock(self->lock_lock); PyThread_free_lock(self->lock_lock); } - PyObject_Del(self); + PyObject_Free(self); } /* Helper to acquire an interruptible lock with a timeout. If the lock acquire diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 24aeb3da94c70..46d6a6e0954f5 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -904,7 +904,7 @@ PyTclObject_dealloc(PyTclObject *self) PyObject *tp = (PyObject *) Py_TYPE(self); Tcl_DecrRefCount(self->value); Py_XDECREF(self->string); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -2823,7 +2823,7 @@ Tktt_Dealloc(PyObject *self) Py_XDECREF(func); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } @@ -3096,7 +3096,7 @@ Tkapp_Dealloc(PyObject *self) ENTER_TCL Tcl_DeleteInterp(Tkapp_Interp(self)); LEAVE_TCL - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); DisableEventHook(); } diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index 37a80a781da6f..9208b86b0c905 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -691,7 +691,7 @@ static struct PyMethodDef multibytecodec_methods[] = { static void multibytecodec_dealloc(MultibyteCodecObject *self) { - PyObject_Del(self); + PyObject_Free(self); } static PyTypeObject MultibyteCodec_Type = { diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 45201435f2460..fdbba6a7afc29 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -2290,7 +2290,7 @@ _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems) } PyGC_Head *g = AS_GC(op); - g = (PyGC_Head *)PyObject_REALLOC(g, sizeof(PyGC_Head) + basicsize); + g = (PyGC_Head *)PyObject_Realloc(g, sizeof(PyGC_Head) + basicsize); if (g == NULL) return (PyVarObject *)PyErr_NoMemory(); op = (PyVarObject *) FROM_GC(g); @@ -2309,7 +2309,7 @@ PyObject_GC_Del(void *op) if (gcstate->generations[0].count > 0) { gcstate->generations[0].count--; } - PyObject_FREE(g); + PyObject_Free(g); } int diff --git a/Modules/md5module.c b/Modules/md5module.c index 9bd2bd17e4fbf..1c401e884389f 100644 --- a/Modules/md5module.c +++ b/Modules/md5module.c @@ -342,7 +342,7 @@ static void MD5_dealloc(PyObject *ptr) { PyTypeObject *tp = Py_TYPE(ptr); - PyObject_Del(ptr); + PyObject_Free(ptr); Py_DECREF(tp); } diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c index 2a1ac10814a69..4f2d9cb8b7c9c 100644 --- a/Modules/ossaudiodev.c +++ b/Modules/ossaudiodev.c @@ -154,7 +154,7 @@ oss_dealloc(oss_audio_t *self) /* if already closed, don't reclose it */ if (self->fd != -1) close(self->fd); - PyObject_Del(self); + PyObject_Free(self); } @@ -199,7 +199,7 @@ oss_mixer_dealloc(oss_mixer_t *self) /* if already closed, don't reclose it */ if (self->fd != -1) close(self->fd); - PyObject_Del(self); + PyObject_Free(self); } diff --git a/Modules/overlapped.c b/Modules/overlapped.c index 3829932070a96..38dd98f084849 100644 --- a/Modules/overlapped.c +++ b/Modules/overlapped.c @@ -722,7 +722,7 @@ Overlapped_dealloc(OverlappedObject *self) SetLastError(olderr); PyTypeObject *tp = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 0b9f20d6bbd9d..f80da5895401f 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -742,7 +742,7 @@ poll_dealloc(pollObject *self) if (self->ufds != NULL) PyMem_Free(self->ufds); Py_XDECREF(self->dict); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(type); } @@ -1130,7 +1130,7 @@ devpoll_dealloc(devpollObject *self) PyObject *type = (PyObject *)Py_TYPE(self); (void)devpoll_internal_close(self); PyMem_Free(self->fds); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(type); } diff --git a/Modules/sha1module.c b/Modules/sha1module.c index c22437de256b6..5209857041d90 100644 --- a/Modules/sha1module.c +++ b/Modules/sha1module.c @@ -320,7 +320,7 @@ static void SHA1_dealloc(PyObject *ptr) { PyTypeObject *tp = Py_TYPE(ptr); - PyObject_Del(ptr); + PyObject_Free(ptr); Py_DECREF(tp); } diff --git a/Modules/sha256module.c b/Modules/sha256module.c index edd4d010928f3..6b8bd8f1d27fb 100644 --- a/Modules/sha256module.c +++ b/Modules/sha256module.c @@ -397,7 +397,7 @@ static void SHA_dealloc(PyObject *ptr) { PyTypeObject *tp = Py_TYPE(ptr); - PyObject_Del(ptr); + PyObject_Free(ptr); Py_DECREF(tp); } diff --git a/Modules/sha512module.c b/Modules/sha512module.c index 725098def4d06..3fd9fa4c8d16f 100644 --- a/Modules/sha512module.c +++ b/Modules/sha512module.c @@ -453,7 +453,7 @@ static void SHA512_dealloc(PyObject *ptr) { PyTypeObject *tp = Py_TYPE(ptr); - PyObject_Del(ptr); + PyObject_Free(ptr); Py_DECREF(tp); } diff --git a/Modules/sre_lib.h b/Modules/sre_lib.h index cfe0a4af2c483..322f66fb4da6c 100644 --- a/Modules/sre_lib.h +++ b/Modules/sre_lib.h @@ -986,7 +986,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) ctx->pattern[1], ctx->pattern[2])); /* install new repeat context */ - ctx->u.rep = (SRE_REPEAT*) PyObject_MALLOC(sizeof(*ctx->u.rep)); + ctx->u.rep = (SRE_REPEAT*) PyObject_Malloc(sizeof(*ctx->u.rep)); if (!ctx->u.rep) { PyErr_NoMemory(); RETURN_FAILURE; @@ -1000,7 +1000,7 @@ SRE(match)(SRE_STATE* state, const SRE_CODE* pattern, int toplevel) state->ptr = ctx->ptr; DO_JUMP(JUMP_REPEAT, jump_repeat, ctx->pattern+ctx->pattern[0]); state->repeat = ctx->u.rep->prev; - PyObject_FREE(ctx->u.rep); + PyObject_Free(ctx->u.rep); if (ret) { RETURN_ON_ERROR(ret); diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index fcf801dc9e4ad..4b8c46c779766 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -1418,7 +1418,7 @@ static void ucd_dealloc(PreviousDBVersion *self) { PyTypeObject *tp = Py_TYPE(self); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(tp); } diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index 17b049c4b9a37..edcd62157c02f 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -44,7 +44,7 @@ static void Xxo_dealloc(XxoObject *self) { Py_XDECREF(self->x_attr); - PyObject_Del(self); + PyObject_Free(self); } static PyObject * diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c index def617671f18f..a537087d19d83 100644 --- a/Modules/zlibmodule.c +++ b/Modules/zlibmodule.c @@ -591,7 +591,7 @@ Dealloc(compobject *self) Py_XDECREF(self->unused_data); Py_XDECREF(self->unconsumed_tail); Py_XDECREF(self->zdict); - PyObject_Del(self); + PyObject_Free(self); Py_DECREF(type); } diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c index bb844090b8622..13216b9bb21a5 100644 --- a/Objects/bytesobject.c +++ b/Objects/bytesobject.c @@ -198,7 +198,7 @@ PyBytes_FromString(const char *str) } /* Inline PyObject_NewVar */ - op = (PyBytesObject *)PyObject_MALLOC(PyBytesObject_SIZE + size); + op = (PyBytesObject *)PyObject_Malloc(PyBytesObject_SIZE + size); if (op == NULL) { return PyErr_NoMemory(); } @@ -1475,7 +1475,7 @@ bytes_repeat(PyBytesObject *a, Py_ssize_t n) "repeated bytes are too long"); return NULL; } - op = (PyBytesObject *)PyObject_MALLOC(PyBytesObject_SIZE + nbytes); + op = (PyBytesObject *)PyObject_Malloc(PyBytesObject_SIZE + nbytes); if (op == NULL) { return PyErr_NoMemory(); } @@ -3054,9 +3054,9 @@ _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize) _Py_ForgetReference(v); #endif *pv = (PyObject *) - PyObject_REALLOC(v, PyBytesObject_SIZE + newsize); + PyObject_Realloc(v, PyBytesObject_SIZE + newsize); if (*pv == NULL) { - PyObject_Del(v); + PyObject_Free(v); PyErr_NoMemory(); return -1; } diff --git a/Objects/capsule.c b/Objects/capsule.c index a2ff642526cd0..800a6c4b25c6d 100644 --- a/Objects/capsule.c +++ b/Objects/capsule.c @@ -260,7 +260,7 @@ capsule_dealloc(PyObject *o) if (capsule->destructor) { capsule->destructor(o); } - PyObject_DEL(o); + PyObject_Free(o); } diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 0257295f1e996..0b0b8f98ae4f3 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -669,7 +669,7 @@ code_dealloc(PyCodeObject *co) PyObject_GC_Del(co->co_zombieframe); if (co->co_weakreflist != NULL) PyObject_ClearWeakRefs((PyObject*)co); - PyObject_DEL(co); + PyObject_Free(co); } static PyObject * diff --git a/Objects/complexobject.c b/Objects/complexobject.c index a481d9ad8bbaa..a65ebdfa6cdf9 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -233,7 +233,7 @@ PyObject * PyComplex_FromCComplex(Py_complex cval) { /* Inline PyObject_New */ - PyComplexObject *op = PyObject_MALLOC(sizeof(PyComplexObject)); + PyComplexObject *op = PyObject_Malloc(sizeof(PyComplexObject)); if (op == NULL) { return PyErr_NoMemory(); } diff --git a/Objects/dictobject.c b/Objects/dictobject.c index ee1a9d1d7e71e..7a37313df8a6b 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -269,7 +269,7 @@ _PyDict_ClearFreeList(PyThreadState *tstate) PyObject_GC_Del(op); } while (state->keys_numfree) { - PyObject_FREE(state->keys_free_list[--state->keys_numfree]); + PyObject_Free(state->keys_free_list[--state->keys_numfree]); } } @@ -597,7 +597,7 @@ new_keys_object(Py_ssize_t size) } else { - dk = PyObject_MALLOC(sizeof(PyDictKeysObject) + dk = PyObject_Malloc(sizeof(PyDictKeysObject) + es * size + sizeof(PyDictKeyEntry) * usable); if (dk == NULL) { @@ -636,7 +636,7 @@ free_keys_object(PyDictKeysObject *keys) state->keys_free_list[state->keys_numfree++] = keys; return; } - PyObject_FREE(keys); + PyObject_Free(keys); } #define new_values(size) PyMem_NEW(PyObject *, size) @@ -1303,7 +1303,7 @@ dictresize(PyDictObject *mp, Py_ssize_t newsize) state->keys_free_list[state->keys_numfree++] = oldkeys; } else { - PyObject_FREE(oldkeys); + PyObject_Free(oldkeys); } } diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 1550b2eedc862..34fb57a946afa 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -237,7 +237,7 @@ float_dealloc(PyFloatObject *op) assert(state->numfree != -1); #endif if (state->numfree >= PyFloat_MAXFREELIST) { - PyObject_FREE(op); + PyObject_Free(op); return; } state->numfree++; @@ -2032,7 +2032,7 @@ _PyFloat_ClearFreeList(PyThreadState *tstate) PyFloatObject *f = state->free_list; while (f != NULL) { PyFloatObject *next = (PyFloatObject*) Py_TYPE(f); - PyObject_FREE(f); + PyObject_Free(f); f = next; } state->free_list = NULL; diff --git a/Objects/longobject.c b/Objects/longobject.c index e0d6410fe6818..240e92a41e0ec 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -131,7 +131,7 @@ _PyLong_New(Py_ssize_t size) "too many digits in integer"); return NULL; } - result = PyObject_MALLOC(offsetof(PyLongObject, ob_digit) + + result = PyObject_Malloc(offsetof(PyLongObject, ob_digit) + size*sizeof(digit)); if (!result) { PyErr_NoMemory(); diff --git a/Objects/object.c b/Objects/object.c index 2e8717f506ca0..0a8621b3503b3 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -161,7 +161,7 @@ PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, Py_ssize_t size) PyObject * _PyObject_New(PyTypeObject *tp) { - PyObject *op = (PyObject *) PyObject_MALLOC(_PyObject_SIZE(tp)); + PyObject *op = (PyObject *) PyObject_Malloc(_PyObject_SIZE(tp)); if (op == NULL) { return PyErr_NoMemory(); } @@ -174,7 +174,7 @@ _PyObject_NewVar(PyTypeObject *tp, Py_ssize_t nitems) { PyVarObject *op; const size_t size = _PyObject_VAR_SIZE(tp, nitems); - op = (PyVarObject *) PyObject_MALLOC(size); + op = (PyVarObject *) PyObject_Malloc(size); if (op == NULL) { return (PyVarObject *)PyErr_NoMemory(); } diff --git a/Objects/odictobject.c b/Objects/odictobject.c index 83b326b2067a8..4eb15f999bd1e 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -459,7 +459,7 @@ Potential Optimizations - implement a fuller MutableMapping API in C? - move the MutableMapping implementation to abstract.c? - optimize mutablemapping_update -- use PyObject_MALLOC (small object allocator) for odict nodes? +- use PyObject_Malloc (small object allocator) for odict nodes? - support subclasses better (e.g. in odict_richcompare) */ diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 787d1138009a0..530426c8ac904 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -171,7 +171,7 @@ range_dealloc(rangeobject *r) Py_DECREF(r->stop); Py_DECREF(r->step); Py_DECREF(r->length); - PyObject_Del(r); + PyObject_Free(r); } /* Return number of items in range (lo, hi, step) as a PyLong object, @@ -1021,7 +1021,7 @@ longrangeiter_dealloc(longrangeiterobject *r) Py_XDECREF(r->start); Py_XDECREF(r->step); Py_XDECREF(r->len); - PyObject_Del(r); + PyObject_Free(r); } static PyObject * diff --git a/Objects/stringlib/unicode_format.h b/Objects/stringlib/unicode_format.h index b526ad21b8205..7152ec6ebe712 100644 --- a/Objects/stringlib/unicode_format.h +++ b/Objects/stringlib/unicode_format.h @@ -983,7 +983,7 @@ static void formatteriter_dealloc(formatteriterobject *it) { Py_XDECREF(it->str); - PyObject_FREE(it); + PyObject_Free(it); } /* returns a tuple: @@ -1147,7 +1147,7 @@ static void fieldnameiter_dealloc(fieldnameiterobject *it) { Py_XDECREF(it->str); - PyObject_FREE(it); + PyObject_Free(it); } /* returns a tuple: diff --git a/Objects/typeobject.c b/Objects/typeobject.c index fbadd31f1a46c..83bc877eb7d05 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -1059,7 +1059,7 @@ PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems) obj = _PyObject_GC_Malloc(size); } else { - obj = (PyObject *)PyObject_MALLOC(size); + obj = (PyObject *)PyObject_Malloc(size); } if (obj == NULL) { @@ -2707,7 +2707,7 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds) goto error; /* Silently truncate the docstring if it contains null bytes. */ len = strlen(doc_str); - tp_doc = (char *)PyObject_MALLOC(len + 1); + tp_doc = (char *)PyObject_Malloc(len + 1); if (tp_doc == NULL) { PyErr_NoMemory(); goto error; @@ -3047,7 +3047,7 @@ PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) continue; } size_t len = strlen(slot->pfunc)+1; - char *tp_doc = PyObject_MALLOC(len); + char *tp_doc = PyObject_Malloc(len); if (tp_doc == NULL) { type->tp_doc = NULL; PyErr_NoMemory(); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index ba6d07a67d2da..f6473c02d30fd 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1061,7 +1061,7 @@ resize_compact(PyObject *unicode, Py_ssize_t length) new_size = (struct_size + (length + 1) * char_size); if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) { - PyObject_DEL(_PyUnicode_UTF8(unicode)); + PyObject_Free(_PyUnicode_UTF8(unicode)); _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; } @@ -1072,7 +1072,7 @@ resize_compact(PyObject *unicode, Py_ssize_t length) _Py_ForgetReference(unicode); #endif - new_unicode = (PyObject *)PyObject_REALLOC(unicode, new_size); + new_unicode = (PyObject *)PyObject_Realloc(unicode, new_size); if (new_unicode == NULL) { _Py_NewReference(unicode); PyErr_NoMemory(); @@ -1088,7 +1088,7 @@ resize_compact(PyObject *unicode, Py_ssize_t length) _PyUnicode_WSTR_LENGTH(unicode) = length; } else if (_PyUnicode_HAS_WSTR_MEMORY(unicode)) { - PyObject_DEL(_PyUnicode_WSTR(unicode)); + PyObject_Free(_PyUnicode_WSTR(unicode)); _PyUnicode_WSTR(unicode) = NULL; if (!PyUnicode_IS_ASCII(unicode)) _PyUnicode_WSTR_LENGTH(unicode) = 0; @@ -1131,12 +1131,12 @@ resize_inplace(PyObject *unicode, Py_ssize_t length) if (!share_utf8 && _PyUnicode_HAS_UTF8_MEMORY(unicode)) { - PyObject_DEL(_PyUnicode_UTF8(unicode)); + PyObject_Free(_PyUnicode_UTF8(unicode)); _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; } - data = (PyObject *)PyObject_REALLOC(data, new_size); + data = (PyObject *)PyObject_Realloc(data, new_size); if (data == NULL) { PyErr_NoMemory(); return -1; @@ -1169,7 +1169,7 @@ resize_inplace(PyObject *unicode, Py_ssize_t length) } new_size = sizeof(wchar_t) * (length + 1); wstr = _PyUnicode_WSTR(unicode); - wstr = PyObject_REALLOC(wstr, new_size); + wstr = PyObject_Realloc(wstr, new_size); if (!wstr) { PyErr_NoMemory(); return -1; @@ -1259,7 +1259,7 @@ _PyUnicode_New(Py_ssize_t length) _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; - _PyUnicode_WSTR(unicode) = (Py_UNICODE*) PyObject_MALLOC(new_size); + _PyUnicode_WSTR(unicode) = (Py_UNICODE*) PyObject_Malloc(new_size); if (!_PyUnicode_WSTR(unicode)) { Py_DECREF(unicode); PyErr_NoMemory(); @@ -1456,7 +1456,7 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar) * PyObject_New() so we are able to allocate space for the object and * it's data buffer. */ - obj = (PyObject *) PyObject_MALLOC(struct_size + (size + 1) * char_size); + obj = (PyObject *) PyObject_Malloc(struct_size + (size + 1) * char_size); if (obj == NULL) { return PyErr_NoMemory(); } @@ -1838,7 +1838,7 @@ _PyUnicode_Ready(PyObject *unicode) return -1; if (maxchar < 256) { - _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC(_PyUnicode_WSTR_LENGTH(unicode) + 1); + _PyUnicode_DATA_ANY(unicode) = PyObject_Malloc(_PyUnicode_WSTR_LENGTH(unicode) + 1); if (!_PyUnicode_DATA_ANY(unicode)) { PyErr_NoMemory(); return -1; @@ -1859,7 +1859,7 @@ _PyUnicode_Ready(PyObject *unicode) _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; } - PyObject_FREE(_PyUnicode_WSTR(unicode)); + PyObject_Free(_PyUnicode_WSTR(unicode)); _PyUnicode_WSTR(unicode) = NULL; _PyUnicode_WSTR_LENGTH(unicode) = 0; } @@ -1879,7 +1879,7 @@ _PyUnicode_Ready(PyObject *unicode) _PyUnicode_UTF8_LENGTH(unicode) = 0; #else /* sizeof(wchar_t) == 4 */ - _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC( + _PyUnicode_DATA_ANY(unicode) = PyObject_Malloc( 2 * (_PyUnicode_WSTR_LENGTH(unicode) + 1)); if (!_PyUnicode_DATA_ANY(unicode)) { PyErr_NoMemory(); @@ -1893,7 +1893,7 @@ _PyUnicode_Ready(PyObject *unicode) _PyUnicode_STATE(unicode).kind = PyUnicode_2BYTE_KIND; _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; - PyObject_FREE(_PyUnicode_WSTR(unicode)); + PyObject_Free(_PyUnicode_WSTR(unicode)); _PyUnicode_WSTR(unicode) = NULL; _PyUnicode_WSTR_LENGTH(unicode) = 0; #endif @@ -1908,7 +1908,7 @@ _PyUnicode_Ready(PyObject *unicode) PyErr_NoMemory(); return -1; } - _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC(4 * (length_wo_surrogates + 1)); + _PyUnicode_DATA_ANY(unicode) = PyObject_Malloc(4 * (length_wo_surrogates + 1)); if (!_PyUnicode_DATA_ANY(unicode)) { PyErr_NoMemory(); return -1; @@ -1920,7 +1920,7 @@ _PyUnicode_Ready(PyObject *unicode) /* unicode_convert_wchar_to_ucs4() requires a ready string */ _PyUnicode_STATE(unicode).ready = 1; unicode_convert_wchar_to_ucs4(_PyUnicode_WSTR(unicode), end, unicode); - PyObject_FREE(_PyUnicode_WSTR(unicode)); + PyObject_Free(_PyUnicode_WSTR(unicode)); _PyUnicode_WSTR(unicode) = NULL; _PyUnicode_WSTR_LENGTH(unicode) = 0; #else @@ -1973,13 +1973,13 @@ unicode_dealloc(PyObject *unicode) } if (_PyUnicode_HAS_WSTR_MEMORY(unicode)) { - PyObject_DEL(_PyUnicode_WSTR(unicode)); + PyObject_Free(_PyUnicode_WSTR(unicode)); } if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) { - PyObject_DEL(_PyUnicode_UTF8(unicode)); + PyObject_Free(_PyUnicode_UTF8(unicode)); } if (!PyUnicode_IS_COMPACT(unicode) && _PyUnicode_DATA_ANY(unicode)) { - PyObject_DEL(_PyUnicode_DATA_ANY(unicode)); + PyObject_Free(_PyUnicode_DATA_ANY(unicode)); } Py_TYPE(unicode)->tp_free(unicode); @@ -4199,7 +4199,7 @@ PyUnicode_AsUnicodeAndSize(PyObject *unicode, Py_ssize_t *size) PyErr_NoMemory(); return NULL; } - w = (wchar_t *) PyObject_MALLOC(sizeof(wchar_t) * (wlen + 1)); + w = (wchar_t *) PyObject_Malloc(sizeof(wchar_t) * (wlen + 1)); if (w == NULL) { PyErr_NoMemory(); return NULL; @@ -5627,7 +5627,7 @@ unicode_fill_utf8(PyObject *unicode) PyBytes_AS_STRING(writer.buffer); Py_ssize_t len = end - start; - char *cache = PyObject_MALLOC(len + 1); + char *cache = PyObject_Malloc(len + 1); if (cache == NULL) { _PyBytesWriter_Dealloc(&writer); PyErr_NoMemory(); @@ -8544,7 +8544,7 @@ PyUnicode_BuildEncodingMap(PyObject* string) } /* Create a three-level trie */ - result = PyObject_MALLOC(sizeof(struct encoding_map) + + result = PyObject_Malloc(sizeof(struct encoding_map) + 16*count2 + 128*count3 - 1); if (!result) { return PyErr_NoMemory(); @@ -15567,7 +15567,7 @@ unicode_subtype_new(PyTypeObject *type, PyObject *unicode) PyErr_NoMemory(); goto onError; } - data = PyObject_MALLOC((length + 1) * char_size); + data = PyObject_Malloc((length + 1) * char_size); if (data == NULL) { PyErr_NoMemory(); goto onError; diff --git a/PC/_msi.c b/PC/_msi.c index 504899d0757b7..01516e85ccff3 100644 --- a/PC/_msi.c +++ b/PC/_msi.c @@ -351,7 +351,7 @@ msiobj_dealloc(msiobj* msidb) { MsiCloseHandle(msidb->h); msidb->h = 0; - PyObject_Del(msidb); + PyObject_Free(msidb); } static PyObject* diff --git a/PC/winreg.c b/PC/winreg.c index fee51ac1bbe0a..d62a7be28d3fa 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -145,7 +145,7 @@ PyHKEY_deallocFunc(PyObject *ob) PyHKEYObject *obkey = (PyHKEYObject *)ob; if (obkey->hkey) RegCloseKey((HKEY)obkey->hkey); - PyObject_DEL(ob); + PyObject_Free(ob); } static int @@ -459,7 +459,7 @@ PyObject * PyHKEY_FromHKEY(HKEY h) { /* Inline PyObject_New */ - PyHKEYObject *op = (PyHKEYObject *) PyObject_MALLOC(sizeof(PyHKEYObject)); + PyHKEYObject *op = (PyHKEYObject *) PyObject_Malloc(sizeof(PyHKEYObject)); if (op == NULL) { return PyErr_NoMemory(); } diff --git a/Python/symtable.c b/Python/symtable.c index 0464cd898b27f..cce1b1b5f3226 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -128,7 +128,7 @@ ste_dealloc(PySTEntryObject *ste) Py_XDECREF(ste->ste_varnames); Py_XDECREF(ste->ste_children); Py_XDECREF(ste->ste_directives); - PyObject_Del(ste); + PyObject_Free(ste); } #define OFF(x) offsetof(PySTEntryObject, x) From webhook-mailer at python.org Tue Dec 1 04:45:15 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 09:45:15 -0000 Subject: [Python-checkins] [doc] Fix abc.update_abstractmethods markup (GH-23576) Message-ID: https://github.com/python/cpython/commit/bc662c0bd7def052e9edbf504bb468860c83f371 commit: bc662c0bd7def052e9edbf504bb468860c83f371 branch: master author: Andre Delfino committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T01:45:11-08:00 summary: [doc] Fix abc.update_abstractmethods markup (GH-23576) Add link to ABCMeta while at it. files: M Doc/library/abc.rst diff --git a/Doc/library/abc.rst b/Doc/library/abc.rst index 3a7414d7358e7..1a6ed474ff21d 100644 --- a/Doc/library/abc.rst +++ b/Doc/library/abc.rst @@ -336,6 +336,7 @@ The :mod:`abc` module also provides the following functions: .. versionadded:: 3.4 .. function:: update_abstractmethods(cls) + A function to recalculate an abstract class's abstraction status. This function should be called if a class's abstract methods have been implemented or changed after it was created. Usually, this function should @@ -343,7 +344,7 @@ The :mod:`abc` module also provides the following functions: Returns *cls*, to allow usage as a class decorator. - If *cls* is not an instance of ABCMeta, does nothing. + If *cls* is not an instance of :class:`ABCMeta`, does nothing. .. note:: From webhook-mailer at python.org Tue Dec 1 04:46:15 2020 From: webhook-mailer at python.org (JulienPalard) Date: Tue, 01 Dec 2020 09:46:15 -0000 Subject: [Python-checkins] Fix bz2 examples markup (#23580) Message-ID: https://github.com/python/cpython/commit/80a429eae95c15c2c2a6753376f2697c90c2b6b9 commit: 80a429eae95c15c2c2a6753376f2697c90c2b6b9 branch: master author: Andre Delfino committer: JulienPalard date: 2020-12-01T10:41:12+01:00 summary: Fix bz2 examples markup (#23580) files: M Doc/library/bz2.rst diff --git a/Doc/library/bz2.rst b/Doc/library/bz2.rst index 85cdc16a7d78d..637baf49da1fc 100644 --- a/Doc/library/bz2.rst +++ b/Doc/library/bz2.rst @@ -266,7 +266,6 @@ Below are some examples of typical usage of the :mod:`bz2` module. Using :func:`compress` and :func:`decompress` to demonstrate round-trip compression: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -275,11 +274,9 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> c = bz2.compress(data) >>> len(data) / len(c) # Data compression ratio 1.513595166163142 - >>> d = bz2.decompress(c) >>> data == d # Check equality to original object after round-trip True @@ -287,7 +284,6 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress Using :class:`BZ2Compressor` for incremental compression: >>> import bz2 - >>> def gen_data(chunks=10, chunksize=1000): ... """Yield incremental blocks of chunksize bytes.""" ... for _ in range(chunks): @@ -310,7 +306,6 @@ while ordered, repetitive data usually yields a high compression ratio. Writing and reading a bzip2-compressed file in binary mode: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -319,14 +314,11 @@ Writing and reading a bzip2-compressed file in binary mode: ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> with bz2.open("myfile.bz2", "wb") as f: ... # Write compressed data to file ... unused = f.write(data) - >>> with bz2.open("myfile.bz2", "rb") as f: ... # Decompress data from file ... content = f.read() - >>> content == data # Check equality to original object after round-trip True From webhook-mailer at python.org Tue Dec 1 04:52:57 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 09:52:57 -0000 Subject: [Python-checkins] Fix bz2 examples markup (GH-23580) Message-ID: https://github.com/python/cpython/commit/04232de22951037bed292ad910a3179f0bc26dfb commit: 04232de22951037bed292ad910a3179f0bc26dfb branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T01:51:12-08:00 summary: Fix bz2 examples markup (GH-23580) (cherry picked from commit 80a429eae95c15c2c2a6753376f2697c90c2b6b9) Co-authored-by: Andre Delfino files: M Doc/library/bz2.rst diff --git a/Doc/library/bz2.rst b/Doc/library/bz2.rst index 277de601cb7b6..cb9af5839fd47 100644 --- a/Doc/library/bz2.rst +++ b/Doc/library/bz2.rst @@ -264,7 +264,6 @@ Below are some examples of typical usage of the :mod:`bz2` module. Using :func:`compress` and :func:`decompress` to demonstrate round-trip compression: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -273,11 +272,9 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> c = bz2.compress(data) >>> len(data) / len(c) # Data compression ratio 1.513595166163142 - >>> d = bz2.decompress(c) >>> data == d # Check equality to original object after round-trip True @@ -285,7 +282,6 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress Using :class:`BZ2Compressor` for incremental compression: >>> import bz2 - >>> def gen_data(chunks=10, chunksize=1000): ... """Yield incremental blocks of chunksize bytes.""" ... for _ in range(chunks): @@ -308,7 +304,6 @@ while ordered, repetitive data usually yields a high compression ratio. Writing and reading a bzip2-compressed file in binary mode: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -317,14 +312,11 @@ Writing and reading a bzip2-compressed file in binary mode: ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> with bz2.open("myfile.bz2", "wb") as f: ... # Write compressed data to file ... unused = f.write(data) - >>> with bz2.open("myfile.bz2", "rb") as f: ... # Decompress data from file ... content = f.read() - >>> content == data # Check equality to original object after round-trip True From webhook-mailer at python.org Tue Dec 1 05:04:45 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 10:04:45 -0000 Subject: [Python-checkins] Fix bz2 examples markup (GH-23580) Message-ID: https://github.com/python/cpython/commit/aef482f7cfd78b25ecc9c38805549c5593655ed7 commit: aef482f7cfd78b25ecc9c38805549c5593655ed7 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T02:04:23-08:00 summary: Fix bz2 examples markup (GH-23580) (cherry picked from commit 80a429eae95c15c2c2a6753376f2697c90c2b6b9) Co-authored-by: Andre Delfino files: M Doc/library/bz2.rst diff --git a/Doc/library/bz2.rst b/Doc/library/bz2.rst index 85cdc16a7d78d..637baf49da1fc 100644 --- a/Doc/library/bz2.rst +++ b/Doc/library/bz2.rst @@ -266,7 +266,6 @@ Below are some examples of typical usage of the :mod:`bz2` module. Using :func:`compress` and :func:`decompress` to demonstrate round-trip compression: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -275,11 +274,9 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> c = bz2.compress(data) >>> len(data) / len(c) # Data compression ratio 1.513595166163142 - >>> d = bz2.decompress(c) >>> data == d # Check equality to original object after round-trip True @@ -287,7 +284,6 @@ Using :func:`compress` and :func:`decompress` to demonstrate round-trip compress Using :class:`BZ2Compressor` for incremental compression: >>> import bz2 - >>> def gen_data(chunks=10, chunksize=1000): ... """Yield incremental blocks of chunksize bytes.""" ... for _ in range(chunks): @@ -310,7 +306,6 @@ while ordered, repetitive data usually yields a high compression ratio. Writing and reading a bzip2-compressed file in binary mode: >>> import bz2 - >>> data = b"""\ ... Donec rhoncus quis sapien sit amet molestie. Fusce scelerisque vel augue ... nec ullamcorper. Nam rutrum pretium placerat. Aliquam vel tristique lorem, @@ -319,14 +314,11 @@ Writing and reading a bzip2-compressed file in binary mode: ... Aliquam pharetra lacus non risus vehicula rutrum. Maecenas aliquam leo ... felis. Pellentesque semper nunc sit amet nibh ullamcorper, ac elementum ... dolor luctus. Curabitur lacinia mi ornare consectetur vestibulum.""" - >>> with bz2.open("myfile.bz2", "wb") as f: ... # Write compressed data to file ... unused = f.write(data) - >>> with bz2.open("myfile.bz2", "rb") as f: ... # Decompress data from file ... content = f.read() - >>> content == data # Check equality to original object after round-trip True From webhook-mailer at python.org Tue Dec 1 05:53:51 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 10:53:51 -0000 Subject: [Python-checkins] [3.9] bpo-17852: Doc: Fix the tutorial about closing files (GH-23135) (GH-23527) Message-ID: https://github.com/python/cpython/commit/4a44f53aa85c9400471ab084bc8fd8169065fc41 commit: 4a44f53aa85c9400471ab084bc8fd8169065fc41 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T02:53:42-08:00 summary: [3.9] bpo-17852: Doc: Fix the tutorial about closing files (GH-23135) (GH-23527) Co-authored-by: Inada Naoki (cherry picked from commit c8aaf71dde4888864c0c351e2f935f87652c3d54) Co-authored-by: Volker-Weissmann <39418860+Volker-Weissmann at users.noreply.github.com> files: M Doc/tutorial/inputoutput.rst diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst index 366a532e817af..4e27cff83ce59 100644 --- a/Doc/tutorial/inputoutput.rst +++ b/Doc/tutorial/inputoutput.rst @@ -329,11 +329,16 @@ equivalent :keyword:`try`\ -\ :keyword:`finally` blocks:: If you're not using the :keyword:`with` keyword, then you should call ``f.close()`` to close the file and immediately free up any system -resources used by it. If you don't explicitly close a file, Python's -garbage collector will eventually destroy the object and close the -open file for you, but the file may stay open for a while. Another -risk is that different Python implementations will do this clean-up at -different times. +resources used by it. + +.. warning:: + Calling ``f.write()`` without using the :keyword:`!with` keyword or calling + ``f.close()`` **might** result in the arguments + of ``f.write()`` not being completely written to the disk, even if the + program exits successfully. + +.. + See also https://bugs.python.org/issue17852 After a file object is closed, either by a :keyword:`with` statement or by calling ``f.close()``, attempts to use the file object will From webhook-mailer at python.org Tue Dec 1 09:59:17 2020 From: webhook-mailer at python.org (benjaminp) Date: Tue, 01 Dec 2020 14:59:17 -0000 Subject: [Python-checkins] build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Message-ID: https://github.com/python/cpython/commit/a43fea88577c460eed7cc92a37b5fce787d6aab1 commit: a43fea88577c460eed7cc92a37b5fce787d6aab1 branch: master author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> committer: benjaminp date: 2020-12-01T08:59:12-06:00 summary: build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Bumps [actions/cache](https://github.com/actions/cache) from v2.1.2 to v2.1.3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.2...0781355a23dac32fd3bac414512f4b903437991a) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/build.yml M .github/workflows/coverage.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f543a94af363b..12c591e41362e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -135,7 +135,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v2.1.2 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ed71a012395d4..11748f0e44981 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -32,7 +32,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v2.1.2 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} From webhook-mailer at python.org Tue Dec 1 10:00:21 2020 From: webhook-mailer at python.org (benjaminp) Date: Tue, 01 Dec 2020 15:00:21 -0000 Subject: [Python-checkins] build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23583) Message-ID: https://github.com/python/cpython/commit/8acd0e0d4976e91500149ee189f369f2b83b7537 commit: 8acd0e0d4976e91500149ee189f369f2b83b7537 branch: master author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> committer: benjaminp date: 2020-12-01T09:00:11-06:00 summary: build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23583) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v2.2.0 to v2.2.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2.2.0...726a6dcd0199f578459862705eed35cda05af50b) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/doc.yml diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index f0dbfcd9d3b49..82e9645b5b337 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -38,7 +38,7 @@ jobs: - name: 'Build documentation' run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W --keep-going -j4" doctest html - name: 'Upload' - uses: actions/upload-artifact at v2.2.0 + uses: actions/upload-artifact at v2.2.1 with: name: doc-html path: Doc/build/html From webhook-mailer at python.org Tue Dec 1 10:06:06 2020 From: webhook-mailer at python.org (benjaminp) Date: Tue, 01 Dec 2020 15:06:06 -0000 Subject: [Python-checkins] [3.7] Bumps [actions/cache](https://github.com/actions/cache) from v1 to v2.1.3. (GH-23596) Message-ID: https://github.com/python/cpython/commit/47f075d96b9c205c6731f8599206172c3e209242 commit: 47f075d96b9c205c6731f8599206172c3e209242 branch: 3.7 author: Benjamin Peterson committer: benjaminp date: 2020-12-01T09:05:57-06:00 summary: [3.7] Bumps [actions/cache](https://github.com/actions/cache) from v1 to v2.1.3. (GH-23596) * build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Bumps [actions/cache](https://github.com/actions/cache) from v2.1.2 to v2.1.3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.2...0781355a23dac32fd3bac414512f4b903437991a) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit a43fea88577c460eed7cc92a37b5fce787d6aab1) * [3.7] build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Bumps [actions/cache](https://github.com/actions/cache) from v2.1.2 to v2.1.3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.2...0781355a23dac32fd3bac414512f4b903437991a) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>. (cherry picked from commit a43fea88577c460eed7cc92a37b5fce787d6aab1) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/build.yml M .github/workflows/coverage.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb00d0c0d0fa8..b3d4b7bab9cdd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,7 +84,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v1 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b5668f85dd7ab..bfb077b299474 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -30,7 +30,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v1 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} From webhook-mailer at python.org Tue Dec 1 10:07:59 2020 From: webhook-mailer at python.org (pablogsal) Date: Tue, 01 Dec 2020 15:07:59 -0000 Subject: [Python-checkins] Add GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327) (GH-23590) Message-ID: https://github.com/python/cpython/commit/ae48dd4db53f64f053a6ed6571d083c332d06ff7 commit: ae48dd4db53f64f053a6ed6571d083c332d06ff7 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: pablogsal date: 2020-12-01T15:07:50Z summary: Add GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327) (GH-23590) (cherry picked from commit cce3f0b0c88eba98bc11abe703a444bee7880ff8) Co-authored-by: Pablo Galindo Co-authored-by: Pablo Galindo files: M Modules/_ctypes/callbacks.c diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index 39cace58294d5..19c77f4f57ef5 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -426,15 +426,22 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable, PyErr_Format(PyExc_NotImplementedError, "ffi_prep_closure_loc() is missing"); goto error; #else -#ifdef MACOSX +#if defined(__clang__) || defined(MACOSX) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif +#if defined(__GNUC__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif result = ffi_prep_closure(p->pcl_write, &p->cif, closure_fcn, p); -#ifdef MACOSX +#if defined(__clang__) || defined(MACOSX) #pragma clang diagnostic pop #endif +#if defined(__GNUC__) + #pragma GCC diagnostic pop +#endif #endif } From webhook-mailer at python.org Tue Dec 1 10:18:18 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 15:18:18 -0000 Subject: [Python-checkins] build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23583) Message-ID: https://github.com/python/cpython/commit/eb6059e88124403076b592fe0b08d53b2a82b9be commit: eb6059e88124403076b592fe0b08d53b2a82b9be branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T07:18:09-08:00 summary: build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23583) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v2.2.0 to v2.2.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2.2.0...726a6dcd0199f578459862705eed35cda05af50b) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit 8acd0e0d4976e91500149ee189f369f2b83b7537) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/doc.yml diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index ff041210a3dea..2a04d66887015 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -34,7 +34,7 @@ jobs: - name: 'Build documentation' run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W -j4" doctest suspicious html - name: 'Upload' - uses: actions/upload-artifact at v2.2.0 + uses: actions/upload-artifact at v2.2.1 with: name: doc-html path: Doc/build/html From webhook-mailer at python.org Tue Dec 1 10:22:29 2020 From: webhook-mailer at python.org (vstinner) Date: Tue, 01 Dec 2020 15:22:29 -0000 Subject: [Python-checkins] bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) Message-ID: https://github.com/python/cpython/commit/1867b462de427bcb8dfbcd256028410aea6ae929 commit: 1867b462de427bcb8dfbcd256028410aea6ae929 branch: master author: Victor Stinner committer: vstinner date: 2020-12-01T16:22:25+01:00 summary: bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) files: M Doc/whatsnew/3.8.rst diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index 6a9fa34156946..0b4820f3333e1 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -2113,9 +2113,6 @@ Changes in the C API (Contributed by Antoine Pitrou in :issue:`32388`.) -* The :c:func:`PyCode_New` has a new parameter in the second position (*posonlyargcount*) - to support :pep:`570`, indicating the number of positional-only arguments. - * The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now accept two additional ``int`` arguments *end_lineno* and *end_col_offset*. From webhook-mailer at python.org Tue Dec 1 10:24:24 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 15:24:24 -0000 Subject: [Python-checkins] build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Message-ID: https://github.com/python/cpython/commit/d33f3347defa419ad18864fa3719ad8d668b78a0 commit: d33f3347defa419ad18864fa3719ad8d668b78a0 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T07:24:20-08:00 summary: build(deps): bump actions/cache from v2.1.2 to v2.1.3 (23582) Bumps [actions/cache](https://github.com/actions/cache) from v2.1.2 to v2.1.3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.2...0781355a23dac32fd3bac414512f4b903437991a) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit a43fea88577c460eed7cc92a37b5fce787d6aab1) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/build.yml M .github/workflows/coverage.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index deb0e67bedb90..3d7c9901a8e99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -132,7 +132,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v2.1.2 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index d66c02b51b15e..6092f41325ff2 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -32,7 +32,7 @@ jobs: run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl - uses: actions/cache at v2.1.2 + uses: actions/cache at v2.1.3 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} From webhook-mailer at python.org Tue Dec 1 10:30:14 2020 From: webhook-mailer at python.org (benjaminp) Date: Tue, 01 Dec 2020 15:30:14 -0000 Subject: [Python-checkins] [3.9] build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23597) Message-ID: https://github.com/python/cpython/commit/0955f6863d726985fc9cfad004f242002a0efc80 commit: 0955f6863d726985fc9cfad004f242002a0efc80 branch: 3.9 author: Benjamin Peterson committer: benjaminp date: 2020-12-01T09:30:03-06:00 summary: [3.9] build(deps): bump actions/upload-artifact from v2.2.0 to v2.2.1 (GH-23597) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v2.2.0 to v2.2.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2.2.0...726a6dcd0199f578459862705eed35cda05af50b) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit 8acd0e0d4976e91500149ee189f369f2b83b7537) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> files: M .github/workflows/doc.yml diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 455ad02f7ed3e..02e7c865cd568 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -36,7 +36,7 @@ jobs: - name: 'Build documentation' run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W -j4" doctest suspicious html - name: 'Upload' - uses: actions/upload-artifact at v2.2.0 + uses: actions/upload-artifact at v2.2.1 with: name: doc-html path: Doc/build/html From webhook-mailer at python.org Tue Dec 1 10:34:12 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 15:34:12 -0000 Subject: [Python-checkins] bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) Message-ID: https://github.com/python/cpython/commit/d9d63f13cf5b6b896c245099c42b08f6da083d05 commit: d9d63f13cf5b6b896c245099c42b08f6da083d05 branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T07:34:01-08:00 summary: bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) (cherry picked from commit 1867b462de427bcb8dfbcd256028410aea6ae929) Co-authored-by: Victor Stinner files: M Doc/whatsnew/3.8.rst diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index ce386c0556cc2..1a192800b2f02 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -2115,9 +2115,6 @@ Changes in the C API (Contributed by Antoine Pitrou in :issue:`32388`.) -* The :c:func:`PyCode_New` has a new parameter in the second position (*posonlyargcount*) - to support :pep:`570`, indicating the number of positional-only arguments. - * The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now accept two additional ``int`` arguments *end_lineno* and *end_col_offset*. From webhook-mailer at python.org Tue Dec 1 10:55:04 2020 From: webhook-mailer at python.org (miss-islington) Date: Tue, 01 Dec 2020 15:55:04 -0000 Subject: [Python-checkins] bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) Message-ID: https://github.com/python/cpython/commit/ed4614386f210964840daa1f7cbddbbd575f7a49 commit: ed4614386f210964840daa1f7cbddbbd575f7a49 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-01T07:54:54-08:00 summary: bpo-37221: PyCode_New() didn't change in Python 3.8 (GH-23595) (cherry picked from commit 1867b462de427bcb8dfbcd256028410aea6ae929) Co-authored-by: Victor Stinner files: M Doc/whatsnew/3.8.rst diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst index 6a9fa34156946..0b4820f3333e1 100644 --- a/Doc/whatsnew/3.8.rst +++ b/Doc/whatsnew/3.8.rst @@ -2113,9 +2113,6 @@ Changes in the C API (Contributed by Antoine Pitrou in :issue:`32388`.) -* The :c:func:`PyCode_New` has a new parameter in the second position (*posonlyargcount*) - to support :pep:`570`, indicating the number of positional-only arguments. - * The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now accept two additional ``int`` arguments *end_lineno* and *end_col_offset*. From webhook-mailer at python.org Tue Dec 1 15:35:04 2020 From: webhook-mailer at python.org (vstinner) Date: Tue, 01 Dec 2020 20:35:04 -0000 Subject: [Python-checkins] bpo-31904: Fix test_netrc for VxWorks RTOS (GH-21675) Message-ID: https://github.com/python/cpython/commit/e483d281bd55be0beee3e62d18e0719175bde671 commit: e483d281bd55be0beee3e62d18e0719175bde671 branch: master author: pxinwr committer: vstinner date: 2020-12-01T21:34:42+01:00 summary: bpo-31904: Fix test_netrc for VxWorks RTOS (GH-21675) Fix test_netrc on VxWorks: create temporary directories using temp_cwd(). files: A Misc/NEWS.d/next/Tests/2020-12-01-15-51-19.bpo-31904.iwetj4.rst M Lib/test/test_netrc.py diff --git a/Lib/test/test_netrc.py b/Lib/test/test_netrc.py index 2bd46aa745ff2..90ef5cd363b3f 100644 --- a/Lib/test/test_netrc.py +++ b/Lib/test/test_netrc.py @@ -109,62 +109,56 @@ def test_comment_at_end_of_machine_line_pass_has_hash(self): def test_security(self): # This test is incomplete since we are normally not run as root and # therefore can't test the file ownership being wrong. - d = os_helper.TESTFN - os.mkdir(d) - self.addCleanup(os_helper.rmtree, d) - fn = os.path.join(d, '.netrc') - with open(fn, 'wt') as f: - f.write("""\ - machine foo.domain.com login bar password pass - default login foo password pass - """) - with os_helper.EnvironmentVarGuard() as environ: - environ.set('HOME', d) - os.chmod(fn, 0o600) - nrc = netrc.netrc() - self.assertEqual(nrc.hosts['foo.domain.com'], - ('bar', None, 'pass')) - os.chmod(fn, 0o622) - self.assertRaises(netrc.NetrcParseError, netrc.netrc) + with os_helper.temp_cwd(None) as d: + fn = os.path.join(d, '.netrc') + with open(fn, 'wt') as f: + f.write("""\ + machine foo.domain.com login bar password pass + default login foo password pass + """) + with os_helper.EnvironmentVarGuard() as environ: + environ.set('HOME', d) + os.chmod(fn, 0o600) + nrc = netrc.netrc() + self.assertEqual(nrc.hosts['foo.domain.com'], + ('bar', None, 'pass')) + os.chmod(fn, 0o622) + self.assertRaises(netrc.NetrcParseError, netrc.netrc) def test_file_not_found_in_home(self): - d = os_helper.TESTFN - os.mkdir(d) - self.addCleanup(os_helper.rmtree, d) - with os_helper.EnvironmentVarGuard() as environ: - environ.set('HOME', d) - self.assertRaises(FileNotFoundError, netrc.netrc) + with os_helper.temp_cwd(None) as d: + with os_helper.EnvironmentVarGuard() as environ: + environ.set('HOME', d) + self.assertRaises(FileNotFoundError, netrc.netrc) def test_file_not_found_explicit(self): self.assertRaises(FileNotFoundError, netrc.netrc, file='unlikely_netrc') def test_home_not_set(self): - fake_home = os_helper.TESTFN - os.mkdir(fake_home) - self.addCleanup(os_helper.rmtree, fake_home) - fake_netrc_path = os.path.join(fake_home, '.netrc') - with open(fake_netrc_path, 'w') as f: - f.write('machine foo.domain.com login bar password pass') - os.chmod(fake_netrc_path, 0o600) - - orig_expanduser = os.path.expanduser - called = [] - - def fake_expanduser(s): - called.append(s) - with os_helper.EnvironmentVarGuard() as environ: - environ.set('HOME', fake_home) - environ.set('USERPROFILE', fake_home) - result = orig_expanduser(s) - return result - - with support.swap_attr(os.path, 'expanduser', fake_expanduser): - nrc = netrc.netrc() - login, account, password = nrc.authenticators('foo.domain.com') - self.assertEqual(login, 'bar') - - self.assertTrue(called) + with os_helper.temp_cwd(None) as fake_home: + fake_netrc_path = os.path.join(fake_home, '.netrc') + with open(fake_netrc_path, 'w') as f: + f.write('machine foo.domain.com login bar password pass') + os.chmod(fake_netrc_path, 0o600) + + orig_expanduser = os.path.expanduser + called = [] + + def fake_expanduser(s): + called.append(s) + with os_helper.EnvironmentVarGuard() as environ: + environ.set('HOME', fake_home) + environ.set('USERPROFILE', fake_home) + result = orig_expanduser(s) + return result + + with support.swap_attr(os.path, 'expanduser', fake_expanduser): + nrc = netrc.netrc() + login, account, password = nrc.authenticators('foo.domain.com') + self.assertEqual(login, 'bar') + + self.assertTrue(called) if __name__ == "__main__": diff --git a/Misc/NEWS.d/next/Tests/2020-12-01-15-51-19.bpo-31904.iwetj4.rst b/Misc/NEWS.d/next/Tests/2020-12-01-15-51-19.bpo-31904.iwetj4.rst new file mode 100644 index 0000000000000..49e9892e9ed7c --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-01-15-51-19.bpo-31904.iwetj4.rst @@ -0,0 +1 @@ +Fix test_netrc on VxWorks: create temporary directories using temp_cwd(). From webhook-mailer at python.org Wed Dec 2 00:16:40 2020 From: webhook-mailer at python.org (pablogsal) Date: Wed, 02 Dec 2020 05:16:40 -0000 Subject: [Python-checkins] bpo-40939: Restore some stable API functions incorrectly deleted (GH-23606) Message-ID: https://github.com/python/cpython/commit/46bd5ed94cf3d5e03f45eecf9afea1659980c8bf commit: 46bd5ed94cf3d5e03f45eecf9afea1659980c8bf branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-02T05:16:31Z summary: bpo-40939: Restore some stable API functions incorrectly deleted (GH-23606) files: M Python/pythonrun.c diff --git a/Python/pythonrun.c b/Python/pythonrun.c index bd49c40e9786c..6181a38defcc0 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -1235,14 +1235,6 @@ Py_CompileStringExFlags(const char *str, const char *filename_str, int start, return co; } -/* For use in Py_LIMITED_API */ -#undef Py_CompileString -PyObject * -PyCompileString(const char *str, const char *filename, int start) -{ - return Py_CompileStringFlags(str, filename, start, NULL); -} - const char * _Py_SourceAsString(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags *cf, PyObject **cmd_copy) { @@ -1371,6 +1363,109 @@ PyOS_CheckStack(void) #endif /* USE_STACKCHECK */ +/* Deprecated C API functions still provided for binary compatibility */ + +#undef PyRun_AnyFile +PyAPI_FUNC(int) +PyRun_AnyFile(FILE *fp, const char *name) +{ + return PyRun_AnyFileExFlags(fp, name, 0, NULL); +} + +#undef PyRun_AnyFileEx +PyAPI_FUNC(int) +PyRun_AnyFileEx(FILE *fp, const char *name, int closeit) +{ + return PyRun_AnyFileExFlags(fp, name, closeit, NULL); +} + +#undef PyRun_AnyFileFlags +PyAPI_FUNC(int) +PyRun_AnyFileFlags(FILE *fp, const char *name, PyCompilerFlags *flags) +{ + return PyRun_AnyFileExFlags(fp, name, 0, flags); +} + +#undef PyRun_File +PyAPI_FUNC(PyObject *) +PyRun_File(FILE *fp, const char *p, int s, PyObject *g, PyObject *l) +{ + return PyRun_FileExFlags(fp, p, s, g, l, 0, NULL); +} + +#undef PyRun_FileEx +PyAPI_FUNC(PyObject *) +PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, int c) +{ + return PyRun_FileExFlags(fp, p, s, g, l, c, NULL); +} + +#undef PyRun_FileFlags +PyAPI_FUNC(PyObject *) +PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, + PyCompilerFlags *flags) +{ + return PyRun_FileExFlags(fp, p, s, g, l, 0, flags); +} + +#undef PyRun_SimpleFile +PyAPI_FUNC(int) +PyRun_SimpleFile(FILE *f, const char *p) +{ + return PyRun_SimpleFileExFlags(f, p, 0, NULL); +} + +#undef PyRun_SimpleFileEx +PyAPI_FUNC(int) +PyRun_SimpleFileEx(FILE *f, const char *p, int c) +{ + return PyRun_SimpleFileExFlags(f, p, c, NULL); +} + + +#undef PyRun_String +PyAPI_FUNC(PyObject *) +PyRun_String(const char *str, int s, PyObject *g, PyObject *l) +{ + return PyRun_StringFlags(str, s, g, l, NULL); +} + +#undef PyRun_SimpleString +PyAPI_FUNC(int) +PyRun_SimpleString(const char *s) +{ + return PyRun_SimpleStringFlags(s, NULL); +} + +#undef Py_CompileString +PyAPI_FUNC(PyObject *) +Py_CompileString(const char *str, const char *p, int s) +{ + return Py_CompileStringExFlags(str, p, s, NULL, -1); +} + +#undef Py_CompileStringFlags +PyAPI_FUNC(PyObject *) +Py_CompileStringFlags(const char *str, const char *p, int s, + PyCompilerFlags *flags) +{ + return Py_CompileStringExFlags(str, p, s, flags, -1); +} + +#undef PyRun_InteractiveOne +PyAPI_FUNC(int) +PyRun_InteractiveOne(FILE *f, const char *p) +{ + return PyRun_InteractiveOneFlags(f, p, NULL); +} + +#undef PyRun_InteractiveLoop +PyAPI_FUNC(int) +PyRun_InteractiveLoop(FILE *f, const char *p) +{ + return PyRun_InteractiveLoopFlags(f, p, NULL); +} + #ifdef __cplusplus } #endif From webhook-mailer at python.org Wed Dec 2 01:08:04 2020 From: webhook-mailer at python.org (pablogsal) Date: Wed, 02 Dec 2020 06:08:04 -0000 Subject: [Python-checkins] Correct return type in Modules/_ssl.c::sslmodule_legacy (GH-23609) Message-ID: https://github.com/python/cpython/commit/93a0ef76473683aa3ad215e11df18f7839488c4e commit: 93a0ef76473683aa3ad215e11df18f7839488c4e branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-02T06:07:56Z summary: Correct return type in Modules/_ssl.c::sslmodule_legacy (GH-23609) files: M Modules/_ssl.c diff --git a/Modules/_ssl.c b/Modules/_ssl.c index edb850ee46103..96d2796fcfad4 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -6416,7 +6416,7 @@ sslmodule_legacy(PyObject *module) #ifdef HAVE_OPENSSL_CRYPTO_LOCK /* note that this will start threading if not already started */ if (!_setup_ssl_threads()) { - return NULL; + return 0; } #elif OPENSSL_VERSION_1_1 /* OpenSSL 1.1.0 builtin thread support is enabled */ From webhook-mailer at python.org Wed Dec 2 08:31:09 2020 From: webhook-mailer at python.org (markshannon) Date: Wed, 02 Dec 2020 13:31:09 -0000 Subject: [Python-checkins] bpo-42500: Fix recursion in or after except (GH-23568) Message-ID: https://github.com/python/cpython/commit/4e7a69bdb63a104587759d7784124492dcdd496e commit: 4e7a69bdb63a104587759d7784124492dcdd496e branch: master author: Mark Shannon committer: markshannon date: 2020-12-02T13:30:55Z summary: bpo-42500: Fix recursion in or after except (GH-23568) * Use counter, rather boolean state when handling soft overflows. files: A Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst M Include/cpython/pystate.h M Include/internal/pycore_ceval.h M Lib/test/test_exceptions.py M Lib/test/test_sys.py M Python/ceval.c M Python/errors.c M Python/pystate.c M Python/sysmodule.c diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h index 0e6cc29091236..cfaee890f9715 100644 --- a/Include/cpython/pystate.h +++ b/Include/cpython/pystate.h @@ -54,8 +54,7 @@ struct _ts { /* Borrowed reference to the current frame (it can be NULL) */ PyFrameObject *frame; int recursion_depth; - char overflowed; /* The stack has overflowed. Allow 50 more calls - to handle the runtime error. */ + int recursion_headroom; /* Allow 50 more calls to handle any errors. */ int stackcheck_counter; /* 'tracing' keeps track of the execution depth when tracing/profiling. diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index bbb667ea32d27..38fd681f20c45 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -92,24 +92,8 @@ static inline int _Py_EnterRecursiveCall_inline(const char *where) { #define Py_EnterRecursiveCall(where) _Py_EnterRecursiveCall_inline(where) -/* Compute the "lower-water mark" for a recursion limit. When - * Py_LeaveRecursiveCall() is called with a recursion depth below this mark, - * the overflowed flag is reset to 0. */ -static inline int _Py_RecursionLimitLowerWaterMark(int limit) { - if (limit > 200) { - return (limit - 50); - } - else { - return (3 * (limit >> 2)); - } -} - static inline void _Py_LeaveRecursiveCall(PyThreadState *tstate) { tstate->recursion_depth--; - int limit = tstate->interp->ceval.recursion_limit; - if (tstate->recursion_depth < _Py_RecursionLimitLowerWaterMark(limit)) { - tstate->overflowed = 0; - } } static inline void _Py_LeaveRecursiveCall_inline(void) { diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index 4dbf5fe5d5bc3..1bdd3f2ce5993 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -1046,7 +1046,7 @@ def gen(): # tstate->recursion_depth is equal to (recursion_limit - 1) # and is equal to recursion_limit when _gen_throw() calls # PyErr_NormalizeException(). - recurse(setrecursionlimit(depth + 2) - depth - 1) + recurse(setrecursionlimit(depth + 2) - depth) finally: sys.setrecursionlimit(recursionlimit) print('Done.') @@ -1076,6 +1076,54 @@ def test_recursion_normalizing_infinite_exception(self): b'while normalizing an exception', err) self.assertIn(b'Done.', out) + + def test_recursion_in_except_handler(self): + + def set_relative_recursion_limit(n): + depth = 1 + while True: + try: + sys.setrecursionlimit(depth) + except RecursionError: + depth += 1 + else: + break + sys.setrecursionlimit(depth+n) + + def recurse_in_except(): + try: + 1/0 + except: + recurse_in_except() + + def recurse_after_except(): + try: + 1/0 + except: + pass + recurse_after_except() + + def recurse_in_body_and_except(): + try: + recurse_in_body_and_except() + except: + recurse_in_body_and_except() + + recursionlimit = sys.getrecursionlimit() + try: + set_relative_recursion_limit(10) + for func in (recurse_in_except, recurse_after_except, recurse_in_body_and_except): + with self.subTest(func=func): + try: + func() + except RecursionError: + pass + else: + self.fail("Should have raised a RecursionError") + finally: + sys.setrecursionlimit(recursionlimit) + + @cpython_only def test_recursion_normalizing_with_no_memory(self): # Issue #30697. Test that in the abort that occurs when there is no @@ -1112,7 +1160,7 @@ def raiseMemError(): except MemoryError as e: tb = e.__traceback__ else: - self.fail("Should have raises a MemoryError") + self.fail("Should have raised a MemoryError") return traceback.format_tb(tb) tb1 = raiseMemError() diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 173ef9ebb4c19..3860656c181c2 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -221,7 +221,7 @@ def test_recursionlimit_recovery(self): def f(): f() try: - for depth in (10, 25, 50, 75, 100, 250, 1000): + for depth in (50, 75, 100, 250, 1000): try: sys.setrecursionlimit(depth) except RecursionError: @@ -231,17 +231,17 @@ def f(): # Issue #5392: test stack overflow after hitting recursion # limit twice - self.assertRaises(RecursionError, f) - self.assertRaises(RecursionError, f) + with self.assertRaises(RecursionError): + f() + with self.assertRaises(RecursionError): + f() finally: sys.setrecursionlimit(oldlimit) @test.support.cpython_only def test_setrecursionlimit_recursion_depth(self): # Issue #25274: Setting a low recursion limit must be blocked if the - # current recursion depth is already higher than the "lower-water - # mark". Otherwise, it may not be possible anymore to - # reset the overflowed flag to 0. + # current recursion depth is already higher than limit. from _testinternalcapi import get_recursion_depth @@ -262,42 +262,10 @@ def set_recursion_limit_at_depth(depth, limit): sys.setrecursionlimit(1000) for limit in (10, 25, 50, 75, 100, 150, 200): - # formula extracted from _Py_RecursionLimitLowerWaterMark() - if limit > 200: - depth = limit - 50 - else: - depth = limit * 3 // 4 - set_recursion_limit_at_depth(depth, limit) + set_recursion_limit_at_depth(limit, limit) finally: sys.setrecursionlimit(oldlimit) - # The error message is specific to CPython - @test.support.cpython_only - def test_recursionlimit_fatalerror(self): - # A fatal error occurs if a second recursion limit is hit when recovering - # from a first one. - code = textwrap.dedent(""" - import sys - - def f(): - try: - f() - except RecursionError: - f() - - sys.setrecursionlimit(%d) - f()""") - with test.support.SuppressCrashReport(): - for i in (50, 1000): - sub = subprocess.Popen([sys.executable, '-c', code % i], - stderr=subprocess.PIPE) - err = sub.communicate()[1] - self.assertTrue(sub.returncode, sub.returncode) - self.assertIn( - b"Fatal Python error: _Py_CheckRecursiveCall: " - b"Cannot recover from stack overflow", - err) - def test_getwindowsversion(self): # Raise SkipTest if sys doesn't have getwindowsversion attribute test.support.get_attribute(sys, "getwindowsversion") diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst b/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst new file mode 100644 index 0000000000000..2462a8e1fabef --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2020-11-30-14-27-29.bpo-42500.excVKU.rst @@ -0,0 +1,2 @@ +Improve handling of exceptions near recursion limit. Converts a number of +Fatal Errors in RecursionErrors. diff --git a/Python/ceval.c b/Python/ceval.c index 693852e15b7c3..9de925780e407 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -857,20 +857,22 @@ _Py_CheckRecursiveCall(PyThreadState *tstate, const char *where) return -1; } #endif - if (tstate->overflowed) { + if (tstate->recursion_headroom) { if (tstate->recursion_depth > recursion_limit + 50) { /* Overflowing while handling an overflow. Give up. */ Py_FatalError("Cannot recover from stack overflow."); } - return 0; } - if (tstate->recursion_depth > recursion_limit) { - --tstate->recursion_depth; - tstate->overflowed = 1; - _PyErr_Format(tstate, PyExc_RecursionError, - "maximum recursion depth exceeded%s", - where); - return -1; + else { + if (tstate->recursion_depth > recursion_limit) { + tstate->recursion_headroom++; + _PyErr_Format(tstate, PyExc_RecursionError, + "maximum recursion depth exceeded%s", + where); + tstate->recursion_headroom--; + --tstate->recursion_depth; + return -1; + } } return 0; } diff --git a/Python/errors.c b/Python/errors.c index f80ae21fdde7c..8242ac69785d4 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -290,12 +290,14 @@ _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc, PyObject **val, PyObject **tb) { int recursion_depth = 0; + tstate->recursion_headroom++; PyObject *type, *value, *initial_tb; restart: type = *exc; if (type == NULL) { /* There was no exception, so nothing to do. */ + tstate->recursion_headroom--; return; } @@ -347,6 +349,7 @@ _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc, } *exc = type; *val = value; + tstate->recursion_headroom--; return; error: diff --git a/Python/pystate.c b/Python/pystate.c index 600cc5e03a1cf..8da583f8e06bc 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -605,7 +605,7 @@ new_threadstate(PyInterpreterState *interp, int init) tstate->frame = NULL; tstate->recursion_depth = 0; - tstate->overflowed = 0; + tstate->recursion_headroom = 0; tstate->stackcheck_counter = 0; tstate->tracing = 0; tstate->use_tracing = 0; diff --git a/Python/sysmodule.c b/Python/sysmodule.c index f05b33a9aacf1..b80d37df42c80 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1181,7 +1181,6 @@ static PyObject * sys_setrecursionlimit_impl(PyObject *module, int new_limit) /*[clinic end generated code: output=35e1c64754800ace input=b0f7a23393924af3]*/ { - int mark; PyThreadState *tstate = _PyThreadState_GET(); if (new_limit < 1) { @@ -1199,8 +1198,7 @@ sys_setrecursionlimit_impl(PyObject *module, int new_limit) Reject too low new limit if the current recursion depth is higher than the new low-water mark. Otherwise it may not be possible anymore to reset the overflowed flag to 0. */ - mark = _Py_RecursionLimitLowerWaterMark(new_limit); - if (tstate->recursion_depth >= mark) { + if (tstate->recursion_depth >= new_limit) { _PyErr_Format(tstate, PyExc_RecursionError, "cannot set the recursion limit to %i at " "the recursion depth %i: the limit is too low", From webhook-mailer at python.org Wed Dec 2 08:31:45 2020 From: webhook-mailer at python.org (markshannon) Date: Wed, 02 Dec 2020 13:31:45 -0000 Subject: [Python-checkins] bpo-42246: Make sure that line number is correct after a return, as required by PEP 626 (GH-23495) Message-ID: https://github.com/python/cpython/commit/5977a7989d49c3e095c7659a58267d87a17b12b1 commit: 5977a7989d49c3e095c7659a58267d87a17b12b1 branch: master author: Mark Shannon committer: markshannon date: 2020-12-02T13:31:40Z summary: bpo-42246: Make sure that line number is correct after a return, as required by PEP 626 (GH-23495) Make sure that line number is correct after a return, as defined by PEP 626. files: A Misc/NEWS.d/next/Core and Builtins/2020-11-24-14-01-43.bpo-42246.c9k9hj.rst M Lib/test/test_compile.py M Lib/test/test_dis.py M Python/compile.c M Python/importlib.h M Python/importlib_external.h M Python/importlib_zipimport.h diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 190e1a6661030..1e61f41c25b78 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -156,7 +156,7 @@ def test_leading_newlines(self): s256 = "".join(["\n"] * 256 + ["spam"]) co = compile(s256, 'fn', 'exec') self.assertEqual(co.co_firstlineno, 1) - self.assertEqual(list(co.co_lines()), [(0, 4, 257), (4, 8, None)]) + self.assertEqual(list(co.co_lines()), [(0, 8, 257)]) def test_literals_with_leading_zeroes(self): for arg in ["077787", "0xj", "0x.", "0e", "090000000000000", @@ -775,6 +775,39 @@ def or_false(x): self.assertIn('LOAD_', opcodes[0].opname) self.assertEqual('RETURN_VALUE', opcodes[1].opname) + def test_lineno_after_implicit_return(self): + TRUE = True + # Don't use constant True or False, as compiler will remove test + def if1(x): + x() + if TRUE: + pass + def if2(x): + x() + if TRUE: + pass + else: + pass + def if3(x): + x() + if TRUE: + pass + else: + return None + def if4(x): + x() + if not TRUE: + pass + funcs = [ if1, if2, if3, if4] + lastlines = [ 3, 3, 3, 2] + frame = None + def save_caller_frame(): + nonlocal frame + frame = sys._getframe(1) + for func, lastline in zip(funcs, lastlines, strict=True): + with self.subTest(func=func): + func(save_caller_frame) + self.assertEqual(frame.f_lineno-frame.f_code.co_firstlineno, lastline) def test_big_dict_literal(self): # The compiler has a flushing point in "compiler_dict" that calls compiles diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index 9cd11d3118b60..d0743d62e3d79 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -131,12 +131,14 @@ def bug708901(): 12 STORE_FAST 0 (res) %3d 14 JUMP_ABSOLUTE 10 - >> 16 LOAD_CONST 0 (None) + +%3d >> 16 LOAD_CONST 0 (None) 18 RETURN_VALUE """ % (bug708901.__code__.co_firstlineno + 1, bug708901.__code__.co_firstlineno + 2, bug708901.__code__.co_firstlineno + 1, - bug708901.__code__.co_firstlineno + 3) + bug708901.__code__.co_firstlineno + 3, + bug708901.__code__.co_firstlineno + 1) def bug1333982(x=[]): @@ -295,13 +297,15 @@ def bug1333982(x=[]): 52 STORE_FAST 0 (e) 54 DELETE_FAST 0 (e) 56 RERAISE - >> 58 RERAISE + +%3d >> 58 RERAISE """ % (TRACEBACK_CODE.co_firstlineno + 1, TRACEBACK_CODE.co_firstlineno + 2, TRACEBACK_CODE.co_firstlineno + 5, TRACEBACK_CODE.co_firstlineno + 3, TRACEBACK_CODE.co_firstlineno + 4, - TRACEBACK_CODE.co_firstlineno + 5) + TRACEBACK_CODE.co_firstlineno + 5, + TRACEBACK_CODE.co_firstlineno + 3) def _fstring(a, b, c, d): return f'{a} {b:4} {c!r} {d!r:4}' diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-11-24-14-01-43.bpo-42246.c9k9hj.rst b/Misc/NEWS.d/next/Core and Builtins/2020-11-24-14-01-43.bpo-42246.c9k9hj.rst new file mode 100644 index 0000000000000..ff200475e6368 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2020-11-24-14-01-43.bpo-42246.c9k9hj.rst @@ -0,0 +1,2 @@ +PEP 626: After a return, the f_lineno attribute of a frame is always the +last line executed. diff --git a/Python/compile.c b/Python/compile.c index 57aa43476becd..c67e8e885e4e6 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -812,6 +812,28 @@ compiler_use_next_block(struct compiler *c, basicblock *block) return block; } +static basicblock * +compiler_copy_block(struct compiler *c, basicblock *block) +{ + /* Cannot copy a block if it has a fallthrough, since + * a block can only have one fallthrough predecessor. + */ + assert(block->b_nofallthrough); + basicblock *result = compiler_next_block(c); + if (result == NULL) { + return NULL; + } + for (int i = 0; i < block->b_iused; i++) { + int n = compiler_next_instr(result); + if (n < 0) { + return NULL; + } + result->b_instr[n] = block->b_instr[i]; + } + result->b_exit = block->b_exit; + return result; +} + /* Returns the offset of the next instruction in the current block's b_instr array. Resizes the b_instr as necessary. Returns -1 on failure. @@ -2732,12 +2754,13 @@ compiler_if(struct compiler *c, stmt_ty s) static int compiler_for(struct compiler *c, stmt_ty s) { - basicblock *start, *cleanup, *end; + basicblock *start, *body, *cleanup, *end; start = compiler_new_block(c); + body = compiler_new_block(c); cleanup = compiler_new_block(c); end = compiler_new_block(c); - if (start == NULL || end == NULL || cleanup == NULL) { + if (start == NULL || body == NULL || end == NULL || cleanup == NULL) { return 0; } if (!compiler_push_fblock(c, FOR_LOOP, start, end, NULL)) { @@ -2747,6 +2770,7 @@ compiler_for(struct compiler *c, stmt_ty s) ADDOP(c, GET_ITER); compiler_use_next_block(c, start); ADDOP_JUMP(c, FOR_ITER, cleanup); + compiler_use_next_block(c, body); VISIT(c, expr, s->v.For.target); VISIT_SEQ(c, stmt, s->v.For.body); ADDOP_JUMP(c, JUMP_ABSOLUTE, start); @@ -5929,9 +5953,16 @@ dump_basicblock(const basicblock *b) } #endif + +static int +normalize_basic_block(basicblock *bb); + static int optimize_cfg(struct assembler *a, PyObject *consts); +static int +ensure_exits_have_lineno(struct compiler *c); + static PyCodeObject * assemble(struct compiler *c, int addNone) { @@ -5952,6 +5983,16 @@ assemble(struct compiler *c, int addNone) ADDOP(c, RETURN_VALUE); } + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (normalize_basic_block(b)) { + goto error; + } + } + + if (ensure_exits_have_lineno(c)) { + goto error; + } + nblocks = 0; entryblock = NULL; for (b = c->u->u_blocks; b != NULL; b = b->b_list) { @@ -5966,6 +6007,7 @@ assemble(struct compiler *c, int addNone) else c->u->u_firstlineno = 1; } + if (!assemble_init(&a, nblocks, c->u->u_firstlineno)) goto error; a.a_entry = entryblock; @@ -6338,7 +6380,6 @@ clean_basic_block(basicblock *bb) { bb->b_iused = dest; } - static int normalize_basic_block(basicblock *bb) { /* Mark blocks as exit and/or nofallthrough. @@ -6349,7 +6390,8 @@ normalize_basic_block(basicblock *bb) { case RAISE_VARARGS: case RERAISE: bb->b_exit = 1; - /* fall through */ + bb->b_nofallthrough = 1; + break; case JUMP_ABSOLUTE: case JUMP_FORWARD: bb->b_nofallthrough = 1; @@ -6358,16 +6400,21 @@ normalize_basic_block(basicblock *bb) { case POP_JUMP_IF_TRUE: case JUMP_IF_FALSE_OR_POP: case JUMP_IF_TRUE_OR_POP: + case FOR_ITER: if (i != bb->b_iused-1) { PyErr_SetString(PyExc_SystemError, "malformed control flow graph."); return -1; } + /* Skip over empty basic blocks. */ + while (bb->b_instr[i].i_target->b_iused == 0) { + bb->b_instr[i].i_target = bb->b_instr[i].i_target->b_next; + } + } } return 0; } - static int mark_reachable(struct assembler *a) { basicblock **stack, **sp; @@ -6398,8 +6445,27 @@ mark_reachable(struct assembler *a) { return 0; } +/* If an instruction has no line number, but it's predecessor in the BB does, + * then copy the line number. This reduces the size of the line number table, + * but has no impact on the generated line number events. + */ +static void +minimize_lineno_table(struct assembler *a) { + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + int prev_lineno = -1; + for (int i = 0; i < b->b_iused; i++) { + if (b->b_instr[i].i_lineno < 0) { + b->b_instr[i].i_lineno = prev_lineno; + } + else { + prev_lineno = b->b_instr[i].i_lineno; + } + } + + } +} -/* Perform basic peephole optimizations on a control flow graph. +/* Perform optimizations on a control flow graph. The consts object should still be in list form to allow new constants to be appended. @@ -6411,11 +6477,6 @@ mark_reachable(struct assembler *a) { static int optimize_cfg(struct assembler *a, PyObject *consts) { - for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { - if (normalize_basic_block(b)) { - return -1; - } - } for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { if (optimize_basic_block(b, consts)) { return -1; @@ -6432,9 +6493,63 @@ optimize_cfg(struct assembler *a, PyObject *consts) b->b_iused = 0; } } + minimize_lineno_table(a); + return 0; +} + +static inline int +is_exit_without_lineno(basicblock *b) { + return b->b_exit && b->b_instr[0].i_lineno < 0; +} + +/* PEP 626 mandates that the f_lineno of a frame is correct + * after a frame terminates. It would be prohibitively expensive + * to continuously update the f_lineno field at runtime, + * so we make sure that all exiting instruction (raises and returns) + * have a valid line number, allowing us to compute f_lineno lazily. + * We can do this by duplicating the exit blocks without line number + * so that none have more than one predecessor. We can then safely + * copy the line number from the sole predecessor block. + */ +static int +ensure_exits_have_lineno(struct compiler *c) +{ + /* Copy all exit blocks without line number that are targets of a jump. + */ + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (b->b_iused > 0 && is_jump(&b->b_instr[b->b_iused-1])) { + switch (b->b_instr[b->b_iused-1].i_opcode) { + /* Note: Only actual jumps, not exception handlers */ + case SETUP_ASYNC_WITH: + case SETUP_WITH: + case SETUP_FINALLY: + continue; + } + basicblock *target = b->b_instr[b->b_iused-1].i_target; + if (is_exit_without_lineno(target)) { + basicblock *new_target = compiler_copy_block(c, target); + if (new_target == NULL) { + return -1; + } + new_target->b_instr[0].i_lineno = b->b_instr[b->b_iused-1].i_lineno; + b->b_instr[b->b_iused-1].i_target = new_target; + } + } + } + /* Any remaining reachable exit blocks without line number can only be reached by + * fall through, and thus can only have a single predecessor */ + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (!b->b_nofallthrough && b->b_next && b->b_iused > 0) { + if (is_exit_without_lineno(b->b_next)) { + assert(b->b_next->b_iused > 0); + b->b_next->b_instr[0].i_lineno = b->b_instr[b->b_iused-1].i_lineno; + } + } + } return 0; } + /* Retained for API compatibility. * Optimization is now done in optimize_cfg */ diff --git a/Python/importlib.h b/Python/importlib.h index c76ee3c559292..c5ff9ece081ee 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -71,217 +71,216 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 108,97,99,101,169,0,114,10,0,0,0,250,29,60,102,114, 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,218,5,95,119,114,97, - 112,34,0,0,0,115,12,0,0,0,8,2,10,1,20,1, - 14,1,4,128,255,128,114,12,0,0,0,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,12,0,0,0,116,0,116,1,131,1,124, - 0,131,1,83,0,169,1,78,41,2,218,4,116,121,112,101, - 218,3,115,121,115,169,1,218,4,110,97,109,101,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,11,95,110, - 101,119,95,109,111,100,117,108,101,42,0,0,0,115,4,0, - 0,0,12,1,255,128,114,18,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 64,0,0,0,115,12,0,0,0,101,0,90,1,100,0,90, - 2,100,1,83,0,41,2,218,14,95,68,101,97,100,108,111, - 99,107,69,114,114,111,114,78,41,3,114,1,0,0,0,114, - 0,0,0,0,114,2,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,19,0, - 0,0,55,0,0,0,115,6,0,0,0,8,0,4,1,255, - 128,114,19,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, - 56,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,83,0,41,13,218,11, - 95,77,111,100,117,108,101,76,111,99,107,122,169,65,32,114, - 101,99,117,114,115,105,118,101,32,108,111,99,107,32,105,109, - 112,108,101,109,101,110,116,97,116,105,111,110,32,119,104,105, - 99,104,32,105,115,32,97,98,108,101,32,116,111,32,100,101, - 116,101,99,116,32,100,101,97,100,108,111,99,107,115,10,32, - 32,32,32,40,101,46,103,46,32,116,104,114,101,97,100,32, - 49,32,116,114,121,105,110,103,32,116,111,32,116,97,107,101, - 32,108,111,99,107,115,32,65,32,116,104,101,110,32,66,44, - 32,97,110,100,32,116,104,114,101,97,100,32,50,32,116,114, - 121,105,110,103,32,116,111,10,32,32,32,32,116,97,107,101, - 32,108,111,99,107,115,32,66,32,116,104,101,110,32,65,41, - 46,10,32,32,32,32,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, - 48,0,0,0,116,0,160,1,161,0,124,0,95,2,116,0, - 160,1,161,0,124,0,95,3,124,1,124,0,95,4,100,0, - 124,0,95,5,100,1,124,0,95,6,100,1,124,0,95,7, - 100,0,83,0,169,2,78,233,0,0,0,0,41,8,218,7, - 95,116,104,114,101,97,100,90,13,97,108,108,111,99,97,116, - 101,95,108,111,99,107,218,4,108,111,99,107,218,6,119,97, - 107,101,117,112,114,17,0,0,0,218,5,111,119,110,101,114, - 218,5,99,111,117,110,116,218,7,119,97,105,116,101,114,115, - 169,2,218,4,115,101,108,102,114,17,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,8,95,95, - 105,110,105,116,95,95,65,0,0,0,115,16,0,0,0,10, - 1,10,1,6,1,6,1,6,1,6,1,4,128,255,128,122, - 20,95,77,111,100,117,108,101,76,111,99,107,46,95,95,105, - 110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,84, - 0,0,0,116,0,160,1,161,0,125,1,124,0,106,2,125, - 2,116,3,131,0,125,3,116,4,160,5,124,2,161,1,125, - 4,124,4,100,0,117,0,114,42,100,1,83,0,124,4,106, - 2,125,2,124,2,124,1,107,2,114,60,100,2,83,0,124, - 2,124,3,118,0,114,72,100,1,83,0,124,3,160,6,124, - 2,161,1,1,0,113,20,41,3,78,70,84,41,7,114,23, - 0,0,0,218,9,103,101,116,95,105,100,101,110,116,114,26, - 0,0,0,218,3,115,101,116,218,12,95,98,108,111,99,107, - 105,110,103,95,111,110,218,3,103,101,116,218,3,97,100,100, - 41,5,114,30,0,0,0,90,2,109,101,218,3,116,105,100, - 90,4,115,101,101,110,114,24,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,12,104,97,115,95, - 100,101,97,100,108,111,99,107,73,0,0,0,115,26,0,0, - 0,8,2,6,1,6,1,10,2,8,1,4,1,6,1,8, - 1,4,1,8,1,4,6,12,1,255,128,122,24,95,77,111, - 100,117,108,101,76,111,99,107,46,104,97,115,95,100,101,97, - 100,108,111,99,107,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,196, - 0,0,0,116,0,160,1,161,0,125,1,124,0,116,2,124, - 1,60,0,122,170,124,0,106,3,143,126,1,0,124,0,106, - 4,100,1,107,2,115,46,124,0,106,5,124,1,107,2,114, - 90,124,1,124,0,95,5,124,0,4,0,106,4,100,2,55, - 0,2,0,95,4,87,0,100,3,4,0,4,0,131,3,1, - 0,87,0,116,2,124,1,61,0,100,4,83,0,124,0,160, - 6,161,0,114,110,116,7,100,5,124,0,22,0,131,1,130, - 1,124,0,106,8,160,9,100,6,161,1,114,136,124,0,4, - 0,106,10,100,2,55,0,2,0,95,10,87,0,100,3,4, - 0,4,0,131,3,1,0,110,16,49,0,115,156,48,0,1, - 0,1,0,1,0,89,0,1,0,124,0,106,8,160,9,161, - 0,1,0,124,0,106,8,160,11,161,0,1,0,113,18,116, - 2,124,1,61,0,48,0,41,7,122,185,10,32,32,32,32, - 32,32,32,32,65,99,113,117,105,114,101,32,116,104,101,32, - 109,111,100,117,108,101,32,108,111,99,107,46,32,32,73,102, - 32,97,32,112,111,116,101,110,116,105,97,108,32,100,101,97, - 100,108,111,99,107,32,105,115,32,100,101,116,101,99,116,101, - 100,44,10,32,32,32,32,32,32,32,32,97,32,95,68,101, - 97,100,108,111,99,107,69,114,114,111,114,32,105,115,32,114, - 97,105,115,101,100,46,10,32,32,32,32,32,32,32,32,79, - 116,104,101,114,119,105,115,101,44,32,116,104,101,32,108,111, - 99,107,32,105,115,32,97,108,119,97,121,115,32,97,99,113, - 117,105,114,101,100,32,97,110,100,32,84,114,117,101,32,105, - 115,32,114,101,116,117,114,110,101,100,46,10,32,32,32,32, - 32,32,32,32,114,22,0,0,0,233,1,0,0,0,78,84, - 122,23,100,101,97,100,108,111,99,107,32,100,101,116,101,99, - 116,101,100,32,98,121,32,37,114,70,41,12,114,23,0,0, - 0,114,32,0,0,0,114,34,0,0,0,114,24,0,0,0, - 114,27,0,0,0,114,26,0,0,0,114,38,0,0,0,114, - 19,0,0,0,114,25,0,0,0,218,7,97,99,113,117,105, - 114,101,114,28,0,0,0,218,7,114,101,108,101,97,115,101, - 169,2,114,30,0,0,0,114,37,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,40,0,0,0, - 94,0,0,0,115,36,0,0,0,8,6,8,1,2,1,8, - 2,20,1,6,1,14,1,14,1,6,9,4,247,8,1,12, - 1,12,1,44,1,10,2,12,1,8,2,255,128,122,19,95, - 77,111,100,117,108,101,76,111,99,107,46,97,99,113,117,105, - 114,101,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,144,0,0,0, - 116,0,160,1,161,0,125,1,124,0,106,2,143,110,1,0, - 124,0,106,3,124,1,107,3,114,34,116,4,100,1,131,1, - 130,1,124,0,106,5,100,2,107,4,115,48,74,0,130,1, - 124,0,4,0,106,5,100,3,56,0,2,0,95,5,124,0, - 106,5,100,2,107,2,114,108,100,0,124,0,95,3,124,0, - 106,6,114,108,124,0,4,0,106,6,100,3,56,0,2,0, - 95,6,124,0,106,7,160,8,161,0,1,0,87,0,100,0, - 4,0,4,0,131,3,1,0,100,0,83,0,49,0,115,130, - 48,0,1,0,1,0,1,0,89,0,1,0,100,0,83,0, - 41,4,78,250,31,99,97,110,110,111,116,32,114,101,108,101, - 97,115,101,32,117,110,45,97,99,113,117,105,114,101,100,32, - 108,111,99,107,114,22,0,0,0,114,39,0,0,0,41,9, - 114,23,0,0,0,114,32,0,0,0,114,24,0,0,0,114, - 26,0,0,0,218,12,82,117,110,116,105,109,101,69,114,114, - 111,114,114,27,0,0,0,114,28,0,0,0,114,25,0,0, - 0,114,41,0,0,0,114,42,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,41,0,0,0,119, - 0,0,0,115,30,0,0,0,8,1,8,1,10,1,8,1, - 14,1,14,1,10,1,6,1,6,1,14,1,22,1,4,128, - 16,0,4,128,255,128,122,19,95,77,111,100,117,108,101,76, - 111,99,107,46,114,101,108,101,97,115,101,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,18,0,0,0,100,1,160,0,124,0,106, - 1,116,2,124,0,131,1,161,2,83,0,41,2,78,122,23, - 95,77,111,100,117,108,101,76,111,99,107,40,123,33,114,125, - 41,32,97,116,32,123,125,169,3,218,6,102,111,114,109,97, - 116,114,17,0,0,0,218,2,105,100,169,1,114,30,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,8,95,95,114,101,112,114,95,95,132,0,0,0,115,4, - 0,0,0,18,1,255,128,122,20,95,77,111,100,117,108,101, - 76,111,99,107,46,95,95,114,101,112,114,95,95,78,41,9, - 114,1,0,0,0,114,0,0,0,0,114,2,0,0,0,114, - 3,0,0,0,114,31,0,0,0,114,38,0,0,0,114,40, - 0,0,0,114,41,0,0,0,114,49,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,20,0,0,0,59,0,0,0,115,16,0,0,0,8, - 0,4,1,8,5,8,8,8,21,8,25,12,13,255,128,114, - 20,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,48,0, + 112,34,0,0,0,115,10,0,0,0,8,2,10,1,20,1, + 18,1,255,128,114,12,0,0,0,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,12,0,0,0,116,0,116,1,131,1,124,0,131, + 1,83,0,169,1,78,41,2,218,4,116,121,112,101,218,3, + 115,121,115,169,1,218,4,110,97,109,101,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,11,95,110,101,119, + 95,109,111,100,117,108,101,42,0,0,0,115,4,0,0,0, + 12,1,255,128,114,18,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0, + 0,0,115,12,0,0,0,101,0,90,1,100,0,90,2,100, + 1,83,0,41,2,218,14,95,68,101,97,100,108,111,99,107, + 69,114,114,111,114,78,41,3,114,1,0,0,0,114,0,0, + 0,0,114,2,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,19,0,0,0, + 55,0,0,0,115,6,0,0,0,8,0,4,1,255,128,114, + 19,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,56,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, - 83,0,41,11,218,16,95,68,117,109,109,121,77,111,100,117, - 108,101,76,111,99,107,122,86,65,32,115,105,109,112,108,101, - 32,95,77,111,100,117,108,101,76,111,99,107,32,101,113,117, - 105,118,97,108,101,110,116,32,102,111,114,32,80,121,116,104, - 111,110,32,98,117,105,108,100,115,32,119,105,116,104,111,117, - 116,10,32,32,32,32,109,117,108,116,105,45,116,104,114,101, - 97,100,105,110,103,32,115,117,112,112,111,114,116,46,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,16,0,0,0,124,1,124,0, - 95,0,100,1,124,0,95,1,100,0,83,0,114,21,0,0, - 0,41,2,114,17,0,0,0,114,27,0,0,0,114,29,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,31,0,0,0,140,0,0,0,115,8,0,0,0,6, - 1,6,1,4,128,255,128,122,25,95,68,117,109,109,121,77, - 111,100,117,108,101,76,111,99,107,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,3,0,0,0,67,0,0,0,115,18,0,0,0, - 124,0,4,0,106,0,100,1,55,0,2,0,95,0,100,2, - 83,0,41,3,78,114,39,0,0,0,84,41,1,114,27,0, + 100,11,132,0,90,8,100,12,83,0,41,13,218,11,95,77, + 111,100,117,108,101,76,111,99,107,122,169,65,32,114,101,99, + 117,114,115,105,118,101,32,108,111,99,107,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,119,104,105,99,104, + 32,105,115,32,97,98,108,101,32,116,111,32,100,101,116,101, + 99,116,32,100,101,97,100,108,111,99,107,115,10,32,32,32, + 32,40,101,46,103,46,32,116,104,114,101,97,100,32,49,32, + 116,114,121,105,110,103,32,116,111,32,116,97,107,101,32,108, + 111,99,107,115,32,65,32,116,104,101,110,32,66,44,32,97, + 110,100,32,116,104,114,101,97,100,32,50,32,116,114,121,105, + 110,103,32,116,111,10,32,32,32,32,116,97,107,101,32,108, + 111,99,107,115,32,66,32,116,104,101,110,32,65,41,46,10, + 32,32,32,32,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,48,0, + 0,0,116,0,160,1,161,0,124,0,95,2,116,0,160,1, + 161,0,124,0,95,3,124,1,124,0,95,4,100,0,124,0, + 95,5,100,1,124,0,95,6,100,1,124,0,95,7,100,0, + 83,0,169,2,78,233,0,0,0,0,41,8,218,7,95,116, + 104,114,101,97,100,90,13,97,108,108,111,99,97,116,101,95, + 108,111,99,107,218,4,108,111,99,107,218,6,119,97,107,101, + 117,112,114,17,0,0,0,218,5,111,119,110,101,114,218,5, + 99,111,117,110,116,218,7,119,97,105,116,101,114,115,169,2, + 218,4,115,101,108,102,114,17,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,8,95,95,105,110, + 105,116,95,95,65,0,0,0,115,14,0,0,0,10,1,10, + 1,6,1,6,1,6,1,10,1,255,128,122,20,95,77,111, + 100,117,108,101,76,111,99,107,46,95,95,105,110,105,116,95, + 95,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,67,0,0,0,115,84,0,0,0,116, + 0,160,1,161,0,125,1,124,0,106,2,125,2,116,3,131, + 0,125,3,116,4,160,5,124,2,161,1,125,4,124,4,100, + 0,117,0,114,42,100,1,83,0,124,4,106,2,125,2,124, + 2,124,1,107,2,114,60,100,2,83,0,124,2,124,3,118, + 0,114,72,100,1,83,0,124,3,160,6,124,2,161,1,1, + 0,113,20,41,3,78,70,84,41,7,114,23,0,0,0,218, + 9,103,101,116,95,105,100,101,110,116,114,26,0,0,0,218, + 3,115,101,116,218,12,95,98,108,111,99,107,105,110,103,95, + 111,110,218,3,103,101,116,218,3,97,100,100,41,5,114,30, + 0,0,0,90,2,109,101,218,3,116,105,100,90,4,115,101, + 101,110,114,24,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,12,104,97,115,95,100,101,97,100, + 108,111,99,107,73,0,0,0,115,26,0,0,0,8,2,6, + 1,6,1,10,2,8,1,4,1,6,1,8,1,4,1,8, + 1,4,6,12,1,255,128,122,24,95,77,111,100,117,108,101, + 76,111,99,107,46,104,97,115,95,100,101,97,100,108,111,99, + 107,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,196,0,0,0,116, + 0,160,1,161,0,125,1,124,0,116,2,124,1,60,0,122, + 170,124,0,106,3,143,126,1,0,124,0,106,4,100,1,107, + 2,115,46,124,0,106,5,124,1,107,2,114,90,124,1,124, + 0,95,5,124,0,4,0,106,4,100,2,55,0,2,0,95, + 4,87,0,100,3,4,0,4,0,131,3,1,0,87,0,116, + 2,124,1,61,0,100,4,83,0,124,0,160,6,161,0,114, + 110,116,7,100,5,124,0,22,0,131,1,130,1,124,0,106, + 8,160,9,100,6,161,1,114,136,124,0,4,0,106,10,100, + 2,55,0,2,0,95,10,87,0,100,3,4,0,4,0,131, + 3,1,0,110,16,49,0,115,156,48,0,1,0,1,0,1, + 0,89,0,1,0,124,0,106,8,160,9,161,0,1,0,124, + 0,106,8,160,11,161,0,1,0,113,18,116,2,124,1,61, + 0,48,0,41,7,122,185,10,32,32,32,32,32,32,32,32, + 65,99,113,117,105,114,101,32,116,104,101,32,109,111,100,117, + 108,101,32,108,111,99,107,46,32,32,73,102,32,97,32,112, + 111,116,101,110,116,105,97,108,32,100,101,97,100,108,111,99, + 107,32,105,115,32,100,101,116,101,99,116,101,100,44,10,32, + 32,32,32,32,32,32,32,97,32,95,68,101,97,100,108,111, + 99,107,69,114,114,111,114,32,105,115,32,114,97,105,115,101, + 100,46,10,32,32,32,32,32,32,32,32,79,116,104,101,114, + 119,105,115,101,44,32,116,104,101,32,108,111,99,107,32,105, + 115,32,97,108,119,97,121,115,32,97,99,113,117,105,114,101, + 100,32,97,110,100,32,84,114,117,101,32,105,115,32,114,101, + 116,117,114,110,101,100,46,10,32,32,32,32,32,32,32,32, + 114,22,0,0,0,233,1,0,0,0,78,84,122,23,100,101, + 97,100,108,111,99,107,32,100,101,116,101,99,116,101,100,32, + 98,121,32,37,114,70,41,12,114,23,0,0,0,114,32,0, + 0,0,114,34,0,0,0,114,24,0,0,0,114,27,0,0, + 0,114,26,0,0,0,114,38,0,0,0,114,19,0,0,0, + 114,25,0,0,0,218,7,97,99,113,117,105,114,101,114,28, + 0,0,0,218,7,114,101,108,101,97,115,101,169,2,114,30, + 0,0,0,114,37,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,40,0,0,0,94,0,0,0, + 115,36,0,0,0,8,6,8,1,2,1,8,2,20,1,6, + 1,14,1,14,1,6,9,4,247,8,1,12,1,12,1,44, + 1,10,2,12,1,8,2,255,128,122,19,95,77,111,100,117, + 108,101,76,111,99,107,46,97,99,113,117,105,114,101,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,144,0,0,0,116,0,160,1, + 161,0,125,1,124,0,106,2,143,110,1,0,124,0,106,3, + 124,1,107,3,114,34,116,4,100,1,131,1,130,1,124,0, + 106,5,100,2,107,4,115,48,74,0,130,1,124,0,4,0, + 106,5,100,3,56,0,2,0,95,5,124,0,106,5,100,2, + 107,2,114,108,100,0,124,0,95,3,124,0,106,6,114,108, + 124,0,4,0,106,6,100,3,56,0,2,0,95,6,124,0, + 106,7,160,8,161,0,1,0,87,0,100,0,4,0,4,0, + 131,3,1,0,100,0,83,0,49,0,115,130,48,0,1,0, + 1,0,1,0,89,0,1,0,100,0,83,0,41,4,78,250, + 31,99,97,110,110,111,116,32,114,101,108,101,97,115,101,32, + 117,110,45,97,99,113,117,105,114,101,100,32,108,111,99,107, + 114,22,0,0,0,114,39,0,0,0,41,9,114,23,0,0, + 0,114,32,0,0,0,114,24,0,0,0,114,26,0,0,0, + 218,12,82,117,110,116,105,109,101,69,114,114,111,114,114,27, + 0,0,0,114,28,0,0,0,114,25,0,0,0,114,41,0, + 0,0,114,42,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,41,0,0,0,119,0,0,0,115, + 24,0,0,0,8,1,8,1,10,1,8,1,14,1,14,1, + 10,1,6,1,6,1,14,1,46,1,255,128,122,19,95,77, + 111,100,117,108,101,76,111,99,107,46,114,101,108,101,97,115, + 101,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,18,0,0,0,100, + 1,160,0,124,0,106,1,116,2,124,0,131,1,161,2,83, + 0,41,2,78,122,23,95,77,111,100,117,108,101,76,111,99, + 107,40,123,33,114,125,41,32,97,116,32,123,125,169,3,218, + 6,102,111,114,109,97,116,114,17,0,0,0,218,2,105,100, + 169,1,114,30,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,8,95,95,114,101,112,114,95,95, + 132,0,0,0,115,4,0,0,0,18,1,255,128,122,20,95, + 77,111,100,117,108,101,76,111,99,107,46,95,95,114,101,112, + 114,95,95,78,41,9,114,1,0,0,0,114,0,0,0,0, + 114,2,0,0,0,114,3,0,0,0,114,31,0,0,0,114, + 38,0,0,0,114,40,0,0,0,114,41,0,0,0,114,49, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,20,0,0,0,59,0,0,0, + 115,16,0,0,0,8,0,4,1,8,5,8,8,8,21,8, + 25,12,13,255,128,114,20,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,48,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,83,0,41,11,218,16,95,68,117,109, + 109,121,77,111,100,117,108,101,76,111,99,107,122,86,65,32, + 115,105,109,112,108,101,32,95,77,111,100,117,108,101,76,111, + 99,107,32,101,113,117,105,118,97,108,101,110,116,32,102,111, + 114,32,80,121,116,104,111,110,32,98,117,105,108,100,115,32, + 119,105,116,104,111,117,116,10,32,32,32,32,109,117,108,116, + 105,45,116,104,114,101,97,100,105,110,103,32,115,117,112,112, + 111,114,116,46,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,16,0, + 0,0,124,1,124,0,95,0,100,1,124,0,95,1,100,0, + 83,0,114,21,0,0,0,41,2,114,17,0,0,0,114,27, + 0,0,0,114,29,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,31,0,0,0,140,0,0,0, + 115,6,0,0,0,6,1,10,1,255,128,122,25,95,68,117, + 109,109,121,77,111,100,117,108,101,76,111,99,107,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,3,0,0,0,67,0,0,0,115, + 18,0,0,0,124,0,4,0,106,0,100,1,55,0,2,0, + 95,0,100,2,83,0,41,3,78,114,39,0,0,0,84,41, + 1,114,27,0,0,0,114,48,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,40,0,0,0,144, + 0,0,0,115,6,0,0,0,14,1,4,1,255,128,122,24, + 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107, + 46,97,99,113,117,105,114,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,36,0,0,0,124,0,106,0,100,1,107,2,114,18, + 116,1,100,2,131,1,130,1,124,0,4,0,106,0,100,3, + 56,0,2,0,95,0,100,0,83,0,41,4,78,114,22,0, + 0,0,114,43,0,0,0,114,39,0,0,0,41,2,114,27, + 0,0,0,114,44,0,0,0,114,48,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,41,0,0, + 0,148,0,0,0,115,8,0,0,0,10,1,8,1,18,1, + 255,128,122,24,95,68,117,109,109,121,77,111,100,117,108,101, + 76,111,99,107,46,114,101,108,101,97,115,101,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,18,0,0,0,100,1,160,0,124,0, + 106,1,116,2,124,0,131,1,161,2,83,0,41,2,78,122, + 28,95,68,117,109,109,121,77,111,100,117,108,101,76,111,99, + 107,40,123,33,114,125,41,32,97,116,32,123,125,114,45,0, 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,40,0,0,0,144,0,0,0,115, - 6,0,0,0,14,1,4,1,255,128,122,24,95,68,117,109, - 109,121,77,111,100,117,108,101,76,111,99,107,46,97,99,113, - 117,105,114,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,36,0, - 0,0,124,0,106,0,100,1,107,2,114,18,116,1,100,2, - 131,1,130,1,124,0,4,0,106,0,100,3,56,0,2,0, - 95,0,100,0,83,0,41,4,78,114,22,0,0,0,114,43, - 0,0,0,114,39,0,0,0,41,2,114,27,0,0,0,114, - 44,0,0,0,114,48,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,41,0,0,0,148,0,0, - 0,115,10,0,0,0,10,1,8,1,14,1,4,128,255,128, - 122,24,95,68,117,109,109,121,77,111,100,117,108,101,76,111, - 99,107,46,114,101,108,101,97,115,101,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,18,0,0,0,100,1,160,0,124,0,106,1, - 116,2,124,0,131,1,161,2,83,0,41,2,78,122,28,95, - 68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,40, - 123,33,114,125,41,32,97,116,32,123,125,114,45,0,0,0, - 114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,49,0,0,0,153,0,0,0,115,4,0, - 0,0,18,1,255,128,122,25,95,68,117,109,109,121,77,111, - 100,117,108,101,76,111,99,107,46,95,95,114,101,112,114,95, - 95,78,41,8,114,1,0,0,0,114,0,0,0,0,114,2, - 0,0,0,114,3,0,0,0,114,31,0,0,0,114,40,0, - 0,0,114,41,0,0,0,114,49,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,50,0,0,0,136,0,0,0,115,14,0,0,0,8,0, - 4,1,8,3,8,4,8,4,12,5,255,128,114,50,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,36,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,83,0,41,8,218,18,95,77,111,100,117,108,101,76,111, - 99,107,77,97,110,97,103,101,114,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,16,0,0,0,124,1,124,0,95,0,100,0,124, - 0,95,1,100,0,83,0,114,13,0,0,0,41,2,218,5, - 95,110,97,109,101,218,5,95,108,111,99,107,114,29,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,31,0,0,0,159,0,0,0,115,8,0,0,0,6,1, - 6,1,4,128,255,128,122,27,95,77,111,100,117,108,101,76, + 0,114,11,0,0,0,114,49,0,0,0,153,0,0,0,115, + 4,0,0,0,18,1,255,128,122,25,95,68,117,109,109,121, + 77,111,100,117,108,101,76,111,99,107,46,95,95,114,101,112, + 114,95,95,78,41,8,114,1,0,0,0,114,0,0,0,0, + 114,2,0,0,0,114,3,0,0,0,114,31,0,0,0,114, + 40,0,0,0,114,41,0,0,0,114,49,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,50,0,0,0,136,0,0,0,115,14,0,0,0, + 8,0,4,1,8,3,8,4,8,4,12,5,255,128,114,50, + 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,36,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,83,0,41,8,218,18,95,77,111,100,117,108,101, + 76,111,99,107,77,97,110,97,103,101,114,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,16,0,0,0,124,1,124,0,95,0,100, + 0,124,0,95,1,100,0,83,0,114,13,0,0,0,41,2, + 218,5,95,110,97,109,101,218,5,95,108,111,99,107,114,29, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,31,0,0,0,159,0,0,0,115,6,0,0,0, + 6,1,10,1,255,128,122,27,95,77,111,100,117,108,101,76, 111,99,107,77,97,110,97,103,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,26,0,0, @@ -291,462 +290,461 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 108,111,99,107,114,52,0,0,0,114,53,0,0,0,114,40, 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0, 0,0,114,11,0,0,0,218,9,95,95,101,110,116,101,114, - 95,95,163,0,0,0,115,8,0,0,0,12,1,10,1,4, - 128,255,128,122,28,95,77,111,100,117,108,101,76,111,99,107, - 77,97,110,97,103,101,114,46,95,95,101,110,116,101,114,95, - 95,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,2,0,0,0,79,0,0,0,115,14,0,0,0,124, - 0,106,0,160,1,161,0,1,0,100,0,83,0,114,13,0, - 0,0,41,2,114,53,0,0,0,114,41,0,0,0,41,3, - 114,30,0,0,0,218,4,97,114,103,115,90,6,107,119,97, - 114,103,115,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,8,95,95,101,120,105,116,95,95,167,0,0,0, - 115,6,0,0,0,10,1,4,128,255,128,122,27,95,77,111, - 100,117,108,101,76,111,99,107,77,97,110,97,103,101,114,46, - 95,95,101,120,105,116,95,95,78,41,6,114,1,0,0,0, - 114,0,0,0,0,114,2,0,0,0,114,31,0,0,0,114, - 55,0,0,0,114,57,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,51,0, - 0,0,157,0,0,0,115,10,0,0,0,8,0,8,2,8, - 4,12,4,255,128,114,51,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,67, - 0,0,0,115,134,0,0,0,116,0,160,1,161,0,1,0, - 122,114,122,14,116,2,124,0,25,0,131,0,125,1,87,0, - 110,22,4,0,116,3,121,46,1,0,1,0,1,0,100,1, - 125,1,89,0,110,2,48,0,124,1,100,1,117,0,114,110, - 116,4,100,1,117,0,114,74,116,5,124,0,131,1,125,1, - 110,8,116,6,124,0,131,1,125,1,124,0,102,1,100,2, - 100,3,132,1,125,2,116,7,160,8,124,1,124,2,161,2, - 116,2,124,0,60,0,87,0,116,0,160,9,161,0,1,0, - 124,1,83,0,116,0,160,9,161,0,1,0,48,0,41,4, - 122,139,71,101,116,32,111,114,32,99,114,101,97,116,101,32, - 116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,32, - 102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,117, - 108,101,32,110,97,109,101,46,10,10,32,32,32,32,65,99, - 113,117,105,114,101,47,114,101,108,101,97,115,101,32,105,110, - 116,101,114,110,97,108,108,121,32,116,104,101,32,103,108,111, - 98,97,108,32,105,109,112,111,114,116,32,108,111,99,107,32, - 116,111,32,112,114,111,116,101,99,116,10,32,32,32,32,95, - 109,111,100,117,108,101,95,108,111,99,107,115,46,78,99,2, + 95,95,163,0,0,0,115,6,0,0,0,12,1,14,1,255, + 128,122,28,95,77,111,100,117,108,101,76,111,99,107,77,97, + 110,97,103,101,114,46,95,95,101,110,116,101,114,95,95,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 2,0,0,0,79,0,0,0,115,14,0,0,0,124,0,106, + 0,160,1,161,0,1,0,100,0,83,0,114,13,0,0,0, + 41,2,114,53,0,0,0,114,41,0,0,0,41,3,114,30, + 0,0,0,218,4,97,114,103,115,90,6,107,119,97,114,103, + 115,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 218,8,95,95,101,120,105,116,95,95,167,0,0,0,115,4, + 0,0,0,14,1,255,128,122,27,95,77,111,100,117,108,101, + 76,111,99,107,77,97,110,97,103,101,114,46,95,95,101,120, + 105,116,95,95,78,41,6,114,1,0,0,0,114,0,0,0, + 0,114,2,0,0,0,114,31,0,0,0,114,55,0,0,0, + 114,57,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,51,0,0,0,157,0, + 0,0,115,10,0,0,0,8,0,8,2,8,4,12,4,255, + 128,114,51,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,115, + 134,0,0,0,116,0,160,1,161,0,1,0,122,114,122,14, + 116,2,124,0,25,0,131,0,125,1,87,0,110,22,4,0, + 116,3,121,46,1,0,1,0,1,0,100,1,125,1,89,0, + 110,2,48,0,124,1,100,1,117,0,114,110,116,4,100,1, + 117,0,114,74,116,5,124,0,131,1,125,1,110,8,116,6, + 124,0,131,1,125,1,124,0,102,1,100,2,100,3,132,1, + 125,2,116,7,160,8,124,1,124,2,161,2,116,2,124,0, + 60,0,87,0,116,0,160,9,161,0,1,0,124,1,83,0, + 116,0,160,9,161,0,1,0,48,0,41,4,122,139,71,101, + 116,32,111,114,32,99,114,101,97,116,101,32,116,104,101,32, + 109,111,100,117,108,101,32,108,111,99,107,32,102,111,114,32, + 97,32,103,105,118,101,110,32,109,111,100,117,108,101,32,110, + 97,109,101,46,10,10,32,32,32,32,65,99,113,117,105,114, + 101,47,114,101,108,101,97,115,101,32,105,110,116,101,114,110, + 97,108,108,121,32,116,104,101,32,103,108,111,98,97,108,32, + 105,109,112,111,114,116,32,108,111,99,107,32,116,111,32,112, + 114,111,116,101,99,116,10,32,32,32,32,95,109,111,100,117, + 108,101,95,108,111,99,107,115,46,78,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,8,0,0,0,83, + 0,0,0,115,54,0,0,0,116,0,160,1,161,0,1,0, + 122,34,116,2,160,3,124,1,161,1,124,0,117,0,114,30, + 116,2,124,1,61,0,87,0,116,0,160,4,161,0,1,0, + 100,0,83,0,116,0,160,4,161,0,1,0,48,0,114,13, + 0,0,0,41,5,218,4,95,105,109,112,218,12,97,99,113, + 117,105,114,101,95,108,111,99,107,218,13,95,109,111,100,117, + 108,101,95,108,111,99,107,115,114,35,0,0,0,218,12,114, + 101,108,101,97,115,101,95,108,111,99,107,41,2,218,3,114, + 101,102,114,17,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,2,99,98,192,0,0,0,115,12, + 0,0,0,8,1,2,1,14,4,8,1,22,2,255,128,122, + 28,95,103,101,116,95,109,111,100,117,108,101,95,108,111,99, + 107,46,60,108,111,99,97,108,115,62,46,99,98,41,10,114, + 58,0,0,0,114,59,0,0,0,114,60,0,0,0,218,8, + 75,101,121,69,114,114,111,114,114,23,0,0,0,114,50,0, + 0,0,114,20,0,0,0,218,8,95,119,101,97,107,114,101, + 102,114,62,0,0,0,114,61,0,0,0,41,3,114,17,0, + 0,0,114,24,0,0,0,114,63,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,54,0,0,0, + 173,0,0,0,115,32,0,0,0,8,6,2,1,2,1,14, + 1,12,1,10,1,8,2,8,1,10,1,8,2,12,2,18, + 11,8,2,4,2,10,254,255,128,114,54,0,0,0,99,1, 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8, - 0,0,0,83,0,0,0,115,54,0,0,0,116,0,160,1, - 161,0,1,0,122,34,116,2,160,3,124,1,161,1,124,0, - 117,0,114,30,116,2,124,1,61,0,87,0,116,0,160,4, - 161,0,1,0,100,0,83,0,116,0,160,4,161,0,1,0, - 48,0,114,13,0,0,0,41,5,218,4,95,105,109,112,218, - 12,97,99,113,117,105,114,101,95,108,111,99,107,218,13,95, - 109,111,100,117,108,101,95,108,111,99,107,115,114,35,0,0, - 0,218,12,114,101,108,101,97,115,101,95,108,111,99,107,41, - 2,218,3,114,101,102,114,17,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,2,99,98,192,0, - 0,0,115,16,0,0,0,8,1,2,1,14,4,8,1,8, - 2,4,128,10,0,255,128,122,28,95,103,101,116,95,109,111, - 100,117,108,101,95,108,111,99,107,46,60,108,111,99,97,108, - 115,62,46,99,98,41,10,114,58,0,0,0,114,59,0,0, - 0,114,60,0,0,0,218,8,75,101,121,69,114,114,111,114, - 114,23,0,0,0,114,50,0,0,0,114,20,0,0,0,218, - 8,95,119,101,97,107,114,101,102,114,62,0,0,0,114,61, - 0,0,0,41,3,114,17,0,0,0,114,24,0,0,0,114, - 63,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,54,0,0,0,173,0,0,0,115,32,0,0, - 0,8,6,2,1,2,1,14,1,12,1,10,1,8,2,8, - 1,10,1,8,2,12,2,18,11,8,2,4,2,10,254,255, - 128,114,54,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, - 54,0,0,0,116,0,124,0,131,1,125,1,122,12,124,1, - 160,1,161,0,1,0,87,0,110,20,4,0,116,2,121,40, - 1,0,1,0,1,0,89,0,100,1,83,0,48,0,124,1, - 160,3,161,0,1,0,100,1,83,0,41,2,122,189,65,99, - 113,117,105,114,101,115,32,116,104,101,110,32,114,101,108,101, - 97,115,101,115,32,116,104,101,32,109,111,100,117,108,101,32, - 108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,110, - 32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,32, - 32,32,32,84,104,105,115,32,105,115,32,117,115,101,100,32, - 116,111,32,101,110,115,117,114,101,32,97,32,109,111,100,117, - 108,101,32,105,115,32,99,111,109,112,108,101,116,101,108,121, - 32,105,110,105,116,105,97,108,105,122,101,100,44,32,105,110, - 32,116,104,101,10,32,32,32,32,101,118,101,110,116,32,105, - 116,32,105,115,32,98,101,105,110,103,32,105,109,112,111,114, - 116,101,100,32,98,121,32,97,110,111,116,104,101,114,32,116, - 104,114,101,97,100,46,10,32,32,32,32,78,41,4,114,54, - 0,0,0,114,40,0,0,0,114,19,0,0,0,114,41,0, - 0,0,41,2,114,17,0,0,0,114,24,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,19,95, - 108,111,99,107,95,117,110,108,111,99,107,95,109,111,100,117, - 108,101,210,0,0,0,115,20,0,0,0,8,6,2,1,12, - 1,12,1,2,3,4,128,2,0,8,2,4,128,255,128,114, - 66,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,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,101, - 113,117,101,110,99,101,115,10,32,32,32,32,111,102,32,105, - 109,112,111,114,116,108,105,98,32,102,114,97,109,101,115,32, - 116,104,97,116,32,101,110,100,32,119,105,116,104,32,97,32, - 99,97,108,108,32,116,111,32,116,104,105,115,32,102,117,110, - 99,116,105,111,110,10,10,32,32,32,32,85,115,101,32,105, - 116,32,105,110,115,116,101,97,100,32,111,102,32,97,32,110, - 111,114,109,97,108,32,99,97,108,108,32,105,110,32,112,108, - 97,99,101,115,32,119,104,101,114,101,32,105,110,99,108,117, - 100,105,110,103,32,116,104,101,32,105,109,112,111,114,116,108, - 105,98,10,32,32,32,32,102,114,97,109,101,115,32,105,110, - 116,114,111,100,117,99,101,115,32,117,110,119,97,110,116,101, - 100,32,110,111,105,115,101,32,105,110,116,111,32,116,104,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,10,0,0,0,41,3,218,1,102, - 114,56,0,0,0,90,4,107,119,100,115,114,10,0,0,0, - 114,10,0,0,0,114,11,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,227,0,0,0,115,4,0,0,0,14,8, - 255,128,114,68,0,0,0,114,39,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,54,0,0,0,116,0,106,1,106,2,124,1,107, - 5,114,50,124,0,160,3,100,1,161,1,115,30,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,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,15,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,46,0,0,0,218,6,115,116,100,101,114,114, - 41,3,218,7,109,101,115,115,97,103,101,114,69,0,0,0, - 114,56,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,16,95,118,101,114,98,111,115,101,95,109, - 101,115,115,97,103,101,238,0,0,0,115,12,0,0,0,12, - 2,10,1,8,1,20,1,4,128,255,128,114,77,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,115,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,28,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,16,0,0,0,41,4,114,15,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,46,0,0,0,169,2,114,30,0,0,0,218,8, - 102,117,108,108,110,97,109,101,169,1,218,3,102,120,110,114, - 10,0,0,0,114,11,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,248,0,0,0,115,12,0,0,0,10,1,10, - 1,2,1,6,255,10,2,255,128,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,12,0,0,0,41,2,114,84,0,0,0,114,85, - 0,0,0,114,10,0,0,0,114,83,0,0,0,114,11,0, - 0,0,218,17,95,114,101,113,117,105,114,101,115,95,98,117, - 105,108,116,105,110,246,0,0,0,115,8,0,0,0,12,2, - 10,5,4,1,255,128,114,87,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,115,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,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,28,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,16,0,0,0,41, - 4,114,58,0,0,0,218,9,105,115,95,102,114,111,122,101, - 110,114,80,0,0,0,114,46,0,0,0,114,81,0,0,0, - 114,83,0,0,0,114,10,0,0,0,114,11,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,3,1,0,0,115,12,0, - 0,0,10,1,10,1,2,1,6,255,10,2,255,128,122,50, + 0,0,0,67,0,0,0,115,54,0,0,0,116,0,124,0, + 131,1,125,1,122,12,124,1,160,1,161,0,1,0,87,0, + 110,20,4,0,116,2,121,40,1,0,1,0,1,0,89,0, + 100,1,83,0,48,0,124,1,160,3,161,0,1,0,100,1, + 83,0,41,2,122,189,65,99,113,117,105,114,101,115,32,116, + 104,101,110,32,114,101,108,101,97,115,101,115,32,116,104,101, + 32,109,111,100,117,108,101,32,108,111,99,107,32,102,111,114, + 32,97,32,103,105,118,101,110,32,109,111,100,117,108,101,32, + 110,97,109,101,46,10,10,32,32,32,32,84,104,105,115,32, + 105,115,32,117,115,101,100,32,116,111,32,101,110,115,117,114, + 101,32,97,32,109,111,100,117,108,101,32,105,115,32,99,111, + 109,112,108,101,116,101,108,121,32,105,110,105,116,105,97,108, + 105,122,101,100,44,32,105,110,32,116,104,101,10,32,32,32, + 32,101,118,101,110,116,32,105,116,32,105,115,32,98,101,105, + 110,103,32,105,109,112,111,114,116,101,100,32,98,121,32,97, + 110,111,116,104,101,114,32,116,104,114,101,97,100,46,10,32, + 32,32,32,78,41,4,114,54,0,0,0,114,40,0,0,0, + 114,19,0,0,0,114,41,0,0,0,41,2,114,17,0,0, + 0,114,24,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,19,95,108,111,99,107,95,117,110,108, + 111,99,107,95,109,111,100,117,108,101,210,0,0,0,115,14, + 0,0,0,8,6,2,1,12,1,12,1,8,3,12,2,255, + 128,114,66,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,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,101,113,117,101,110,99,101,115,10,32,32,32,32,111,102, + 32,105,109,112,111,114,116,108,105,98,32,102,114,97,109,101, + 115,32,116,104,97,116,32,101,110,100,32,119,105,116,104,32, + 97,32,99,97,108,108,32,116,111,32,116,104,105,115,32,102, + 117,110,99,116,105,111,110,10,10,32,32,32,32,85,115,101, + 32,105,116,32,105,110,115,116,101,97,100,32,111,102,32,97, + 32,110,111,114,109,97,108,32,99,97,108,108,32,105,110,32, + 112,108,97,99,101,115,32,119,104,101,114,101,32,105,110,99, + 108,117,100,105,110,103,32,116,104,101,32,105,109,112,111,114, + 116,108,105,98,10,32,32,32,32,102,114,97,109,101,115,32, + 105,110,116,114,111,100,117,99,101,115,32,117,110,119,97,110, + 116,101,100,32,110,111,105,115,101,32,105,110,116,111,32,116, + 104,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,10,0,0,0,41,3,218, + 1,102,114,56,0,0,0,90,4,107,119,100,115,114,10,0, + 0,0,114,10,0,0,0,114,11,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,227,0,0,0,115,4,0,0,0, + 14,8,255,128,114,68,0,0,0,114,39,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,54,124,0,160,3,100,1,161,1,115,30,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,15,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,46,0,0,0,218,6, + 115,116,100,101,114,114,41,3,218,7,109,101,115,115,97,103, + 101,114,69,0,0,0,114,56,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,16,95,118,101,114, + 98,111,115,101,95,109,101,115,115,97,103,101,238,0,0,0, + 115,12,0,0,0,12,2,10,1,8,1,24,1,4,253,255, + 128,114,77,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,115, + 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,28,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,16,0,0,0,41,4, + 114,15,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,46,0,0,0,169,2,114, + 30,0,0,0,218,8,102,117,108,108,110,97,109,101,169,1, + 218,3,102,120,110,114,10,0,0,0,114,11,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,248,0,0,0,115,12, + 0,0,0,10,1,10,1,2,1,6,255,10,2,255,128,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,12,0,0,0,41,2,114, + 84,0,0,0,114,85,0,0,0,114,10,0,0,0,114,83, + 0,0,0,114,11,0,0,0,218,17,95,114,101,113,117,105, + 114,101,115,95,98,117,105,108,116,105,110,246,0,0,0,115, + 8,0,0,0,12,2,10,5,4,1,255,128,114,87,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,115,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,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,28,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,16,0,0,0,41,4,114,58,0,0,0,218,9,105,115, + 95,102,114,111,122,101,110,114,80,0,0,0,114,46,0,0, + 0,114,81,0,0,0,114,83,0,0,0,114,10,0,0,0, + 114,11,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,3, + 1,0,0,115,12,0,0,0,10,1,10,1,2,1,6,255, + 10,2,255,128,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, - 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,86,0,0,0,41,2,114,84,0,0,0,114, - 90,0,0,0,114,10,0,0,0,114,83,0,0,0,114,11, - 0,0,0,218,16,95,114,101,113,117,105,114,101,115,95,102, - 114,111,122,101,110,1,1,0,0,115,8,0,0,0,12,2, - 10,5,4,1,255,128,114,91,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 67,0,0,0,115,58,0,0,0,116,0,124,1,124,0,131, - 2,125,2,124,1,116,1,106,2,118,0,114,50,116,1,106, - 2,124,1,25,0,125,3,116,3,124,2,124,3,131,2,1, - 0,116,1,106,2,124,1,25,0,83,0,116,4,124,2,131, - 1,83,0,41,2,122,128,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,32,105,110,115,116,101,97,100, - 46,10,10,32,32,32,32,78,41,5,218,16,115,112,101,99, - 95,102,114,111,109,95,108,111,97,100,101,114,114,15,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,4,114,30,0,0,0,114, - 82,0,0,0,218,4,115,112,101,99,218,6,109,111,100,117, - 108,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95, - 115,104,105,109,13,1,0,0,115,14,0,0,0,10,6,10, - 1,10,1,10,1,10,1,8,2,255,128,114,98,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,210,0,0,0,116,0, - 124,0,100,1,100,0,131,3,125,1,116,1,124,1,100,2, - 131,2,114,54,122,12,124,1,160,2,124,0,161,1,87,0, - 83,0,4,0,116,3,121,52,1,0,1,0,1,0,89,0, - 110,2,48,0,122,10,124,0,106,4,125,2,87,0,110,18, - 4,0,116,5,121,82,1,0,1,0,1,0,89,0,110,18, - 48,0,124,2,100,0,117,1,114,100,116,6,124,2,131,1, - 83,0,122,10,124,0,106,7,125,3,87,0,110,22,4,0, - 116,5,121,132,1,0,1,0,1,0,100,3,125,3,89,0, - 110,2,48,0,122,10,124,0,106,8,125,4,87,0,110,52, - 4,0,116,5,121,196,1,0,1,0,1,0,124,1,100,0, - 117,0,114,180,100,4,160,9,124,3,161,1,6,0,89,0, - 83,0,100,5,160,9,124,3,124,1,161,2,6,0,89,0, - 83,0,48,0,100,6,160,9,124,3,124,4,161,2,83,0, - 41,7,78,218,10,95,95,108,111,97,100,101,114,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,10,114, - 6,0,0,0,114,4,0,0,0,114,100,0,0,0,218,9, - 69,120,99,101,112,116,105,111,110,218,8,95,95,115,112,101, - 99,95,95,218,14,65,116,116,114,105,98,117,116,101,69,114, - 114,111,114,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,1,0,0,0, - 218,8,95,95,102,105,108,101,95,95,114,46,0,0,0,41, - 5,114,97,0,0,0,218,6,108,111,97,100,101,114,114,96, - 0,0,0,114,17,0,0,0,218,8,102,105,108,101,110,97, - 109,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,12,95,109,111,100,117,108,101,95,114,101,112,114,29, - 1,0,0,115,48,0,0,0,12,2,10,1,2,4,12,1, - 12,1,6,1,2,1,10,1,12,1,6,1,8,2,8,1, - 2,4,10,1,12,1,10,1,2,1,10,1,12,1,8,1, - 14,1,18,2,12,2,255,128,114,112,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,32,103, - 0,110,2,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, - 17,0,0,0,114,110,0,0,0,114,114,0,0,0,114,115, - 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,30,0,0,0,114,17, - 0,0,0,114,110,0,0,0,114,114,0,0,0,114,115,0, - 0,0,114,116,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,31,0,0,0,102,1,0,0,115, - 18,0,0,0,6,2,6,1,6,1,6,1,14,1,6,3, - 6,1,4,128,255,128,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,52,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,80,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,46,0,0,0,114,17,0,0,0,114,110, - 0,0,0,114,114,0,0,0,218,6,97,112,112,101,110,100, - 114,117,0,0,0,218,9,95,95,99,108,97,115,115,95,95, - 114,1,0,0,0,218,4,106,111,105,110,41,2,114,30,0, - 0,0,114,56,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,49,0,0,0,114,1,0,0,115, - 22,0,0,0,10,1,10,1,4,255,10,2,18,1,10,1, - 8,1,4,1,6,255,22,2,255,128,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,72,124,0,106,1,124,1,106,1,107,2,111, - 76,124,0,106,2,124,1,106,2,107,2,111,76,124,0,106, - 3,124,1,106,3,107,2,111,76,124,2,124,1,106,0,107, - 2,111,76,124,0,106,4,124,1,106,4,107,2,111,76,124, - 0,106,5,124,1,106,5,107,2,87,0,83,0,4,0,116, - 6,121,100,1,0,1,0,1,0,116,7,6,0,89,0,83, - 0,48,0,114,13,0,0,0,41,8,114,117,0,0,0,114, - 17,0,0,0,114,110,0,0,0,114,114,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,107,0,0,0,218,14,78,111,116,73,109, - 112,108,101,109,101,110,116,101,100,41,3,114,30,0,0,0, - 90,5,111,116,104,101,114,90,4,115,109,115,108,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,95, - 101,113,95,95,124,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,10,1,255,128,122,17,77, - 111,100,117,108,101,83,112,101,99,46,95,95,101,113,95,95, + 95,119,114,97,112,112,101,114,78,114,86,0,0,0,41,2, + 114,84,0,0,0,114,90,0,0,0,114,10,0,0,0,114, + 83,0,0,0,114,11,0,0,0,218,16,95,114,101,113,117, + 105,114,101,115,95,102,114,111,122,101,110,1,1,0,0,115, + 8,0,0,0,12,2,10,5,4,1,255,128,114,91,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,67,0,0,0,115,58,0,0,0,116, + 0,124,1,124,0,131,2,125,2,124,1,116,1,106,2,118, + 0,114,50,116,1,106,2,124,1,25,0,125,3,116,3,124, + 2,124,3,131,2,1,0,116,1,106,2,124,1,25,0,83, + 0,116,4,124,2,131,1,83,0,41,2,122,128,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,32,105, + 110,115,116,101,97,100,46,10,10,32,32,32,32,78,41,5, + 218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,100, + 101,114,114,15,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,4, + 114,30,0,0,0,114,82,0,0,0,218,4,115,112,101,99, + 218,6,109,111,100,117,108,101,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,218,17,95,108,111,97,100,95,109, + 111,100,117,108,101,95,115,104,105,109,13,1,0,0,115,14, + 0,0,0,10,6,10,1,10,1,10,1,10,1,8,2,255, + 128,114,98,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, + 210,0,0,0,116,0,124,0,100,1,100,0,131,3,125,1, + 116,1,124,1,100,2,131,2,114,54,122,12,124,1,160,2, + 124,0,161,1,87,0,83,0,4,0,116,3,121,52,1,0, + 1,0,1,0,89,0,110,2,48,0,122,10,124,0,106,4, + 125,2,87,0,110,18,4,0,116,5,121,82,1,0,1,0, + 1,0,89,0,110,18,48,0,124,2,100,0,117,1,114,100, + 116,6,124,2,131,1,83,0,122,10,124,0,106,7,125,3, + 87,0,110,22,4,0,116,5,121,132,1,0,1,0,1,0, + 100,3,125,3,89,0,110,2,48,0,122,10,124,0,106,8, + 125,4,87,0,110,52,4,0,116,5,121,196,1,0,1,0, + 1,0,124,1,100,0,117,0,114,180,100,4,160,9,124,3, + 161,1,6,0,89,0,83,0,100,5,160,9,124,3,124,1, + 161,2,6,0,89,0,83,0,48,0,100,6,160,9,124,3, + 124,4,161,2,83,0,41,7,78,218,10,95,95,108,111,97, + 100,101,114,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,10,114,6,0,0,0,114,4,0,0,0,114, + 100,0,0,0,218,9,69,120,99,101,112,116,105,111,110,218, + 8,95,95,115,112,101,99,95,95,218,14,65,116,116,114,105, + 98,117,116,101,69,114,114,111,114,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,1,0,0,0,218,8,95,95,102,105,108,101,95,95, + 114,46,0,0,0,41,5,114,97,0,0,0,218,6,108,111, + 97,100,101,114,114,96,0,0,0,114,17,0,0,0,218,8, + 102,105,108,101,110,97,109,101,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,218,12,95,109,111,100,117,108,101, + 95,114,101,112,114,29,1,0,0,115,48,0,0,0,12,2, + 10,1,2,4,12,1,12,1,6,1,2,1,10,1,12,1, + 6,1,8,2,8,1,2,4,10,1,12,1,10,1,2,1, + 10,1,12,1,8,1,14,1,18,2,12,2,255,128,114,112, + 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,32,103,0,110,2,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,17,0,0,0,114,110,0,0,0,114, + 114,0,0,0,114,115,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, + 30,0,0,0,114,17,0,0,0,114,110,0,0,0,114,114, + 0,0,0,114,115,0,0,0,114,116,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,31,0,0, + 0,102,1,0,0,115,16,0,0,0,6,2,6,1,6,1, + 6,1,14,1,6,3,10,1,255,128,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,52,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,80,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,46,0,0,0,114,17,0, + 0,0,114,110,0,0,0,114,114,0,0,0,218,6,97,112, + 112,101,110,100,114,117,0,0,0,218,9,95,95,99,108,97, + 115,115,95,95,114,1,0,0,0,218,4,106,111,105,110,41, + 2,114,30,0,0,0,114,56,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,49,0,0,0,114, + 1,0,0,115,22,0,0,0,10,1,10,1,4,255,10,2, + 18,1,10,1,8,1,4,1,6,255,22,2,255,128,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,72,124,0,106,1,124,1,106, + 1,107,2,111,76,124,0,106,2,124,1,106,2,107,2,111, + 76,124,0,106,3,124,1,106,3,107,2,111,76,124,2,124, + 1,106,0,107,2,111,76,124,0,106,4,124,1,106,4,107, + 2,111,76,124,0,106,5,124,1,106,5,107,2,87,0,83, + 0,4,0,116,6,121,100,1,0,1,0,1,0,116,7,6, + 0,89,0,83,0,48,0,114,13,0,0,0,41,8,114,117, + 0,0,0,114,17,0,0,0,114,110,0,0,0,114,114,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,107,0,0,0,218,14,78, + 111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,114, + 30,0,0,0,90,5,111,116,104,101,114,90,4,115,109,115, + 108,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 218,6,95,95,101,113,95,95,124,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,10,1,255, + 128,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,52,124,0,106,1, + 100,0,117,1,114,52,124,0,106,2,114,52,116,3,100,0, + 117,0,114,38,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,13,0,0, + 0,41,6,114,119,0,0,0,114,114,0,0,0,114,118,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,48,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,123,0, + 0,0,136,1,0,0,115,14,0,0,0,10,2,16,1,8, + 1,4,1,14,1,6,1,255,128,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,13,0,0,0,41,1,114,119,0,0,0, + 41,2,114,30,0,0,0,114,123,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,123,0,0,0, + 145,1,0,0,115,4,0,0,0,10,2,255,128,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,26,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,22,0,0,0,41,3,114,117,0,0,0,114, + 17,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110, + 114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,6,112,97,114,101,110,116,149,1,0,0, + 115,8,0,0,0,10,3,16,1,6,2,255,128,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,3,0,0,0,67,0,0,0,115,58,0,0,0,124,0, - 106,0,100,0,117,0,114,52,124,0,106,1,100,0,117,1, - 114,52,124,0,106,2,114,52,116,3,100,0,117,0,114,38, - 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,13,0,0,0,41,6,114, - 119,0,0,0,114,114,0,0,0,114,118,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,48,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,123,0,0,0,136,1, - 0,0,115,14,0,0,0,10,2,16,1,8,1,4,1,14, - 1,6,1,255,128,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,13,0,0,0,41,1,114,119,0,0,0,41,2,114,30, - 0,0,0,114,123,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,123,0,0,0,145,1,0,0, - 115,6,0,0,0,6,2,4,128,255,128,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,26,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,22,0,0,0,41,3,114,117,0,0,0,114,17,0, - 0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,48, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,6,112,97,114,101,110,116,149,1,0,0,115,8, - 0,0,0,10,3,16,1,6,2,255,128,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,13,0,0,0,41,1,114,118,0,0,0,114,48, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,124,0,0,0,157,1,0,0,115,4,0,0,0, - 6,2,255,128,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,13,0,0,0,41,2, - 218,4,98,111,111,108,114,118,0,0,0,41,2,114,30,0, - 0,0,218,5,118,97,108,117,101,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,124,0,0,0,161,1,0, - 0,115,6,0,0,0,10,2,4,128,255,128,41,12,114,1, + 0,1,0,0,0,67,0,0,0,115,6,0,0,0,124,0, + 106,0,83,0,114,13,0,0,0,41,1,114,118,0,0,0, + 114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,124,0,0,0,157,1,0,0,115,4,0, + 0,0,6,2,255,128,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,13,0,0,0, + 41,2,218,4,98,111,111,108,114,118,0,0,0,41,2,114, + 30,0,0,0,218,5,118,97,108,117,101,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,124,0,0,0,161, + 1,0,0,115,4,0,0,0,14,2,255,128,41,12,114,1, 0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,0, 0,0,114,31,0,0,0,114,49,0,0,0,114,126,0,0, 0,218,8,112,114,111,112,101,114,116,121,114,123,0,0,0, @@ -1038,788 +1036,787 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 3,114,51,0,0,0,114,17,0,0,0,114,160,0,0,0, 169,1,114,96,0,0,0,114,10,0,0,0,114,10,0,0, 0,114,11,0,0,0,114,95,0,0,0,196,2,0,0,115, - 8,0,0,0,12,9,38,1,4,128,255,128,114,95,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,22,0,0,0,100,1,124,0,106,0,155,2, - 100,2,116,1,106,2,155,0,100,3,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,8,60,109,111,100,117,108,101,32,122, - 2,32,40,122,2,41,62,78,41,3,114,1,0,0,0,114, - 162,0,0,0,114,139,0,0,0,169,1,114,97,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 100,0,0,0,222,2,0,0,115,4,0,0,0,22,7,255, - 128,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,12,100,0,83,0,116,0,160,1,124,1,161, - 1,114,38,116,2,124,1,124,0,124,0,106,3,100,1,141, - 3,83,0,100,0,83,0,169,2,78,114,138,0,0,0,41, - 4,114,58,0,0,0,90,10,105,115,95,98,117,105,108,116, - 105,110,114,92,0,0,0,114,139,0,0,0,169,4,218,3, - 99,108,115,114,82,0,0,0,218,4,112,97,116,104,218,6, - 116,97,114,103,101,116,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,9,102,105,110,100,95,115,112,101,99, - 231,2,0,0,115,12,0,0,0,8,2,4,1,10,1,16, - 1,4,2,255,128,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,30,0,0,0,124,0, - 160,0,124,1,124,2,161,2,125,3,124,3,100,1,117,1, - 114,26,124,3,106,1,83,0,100,1,83,0,41,2,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,78, - 41,2,114,170,0,0,0,114,110,0,0,0,41,4,114,167, - 0,0,0,114,82,0,0,0,114,168,0,0,0,114,96,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,11,102,105,110,100,95,109,111,100,117,108,101,240,2, - 0,0,115,6,0,0,0,12,9,18,1,255,128,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,34,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,78,0,0,0,114,16,0,0,0,78,41,8,114, - 17,0,0,0,114,15,0,0,0,114,79,0,0,0,114,80, - 0,0,0,114,46,0,0,0,114,68,0,0,0,114,58,0, - 0,0,90,14,99,114,101,97,116,101,95,98,117,105,108,116, - 105,110,114,161,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,150,0,0,0,252,2,0,0,115, - 12,0,0,0,12,3,12,1,4,1,6,255,12,2,255,128, - 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,68,0,0,0,114, - 58,0,0,0,90,12,101,120,101,99,95,98,117,105,108,116, - 105,110,114,164,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,151,0,0,0,4,3,0,0,115, - 6,0,0,0,12,3,4,128,255,128,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, - 115,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,10,0,0,0,169,2,114,167, - 0,0,0,114,82,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,8,103,101,116,95,99,111,100, - 101,9,3,0,0,115,4,0,0,0,4,4,255,128,122,24, + 6,0,0,0,12,9,42,1,255,128,114,95,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,22,0,0,0,100,1,124,0,106,0,155,2,100,2, + 116,1,106,2,155,0,100,3,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,8,60,109,111,100,117,108,101,32,122,2,32, + 40,122,2,41,62,78,41,3,114,1,0,0,0,114,162,0, + 0,0,114,139,0,0,0,169,1,114,97,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,100,0, + 0,0,222,2,0,0,115,4,0,0,0,22,7,255,128,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,12,100,0,83,0,116,0,160,1,124,1,161,1,114, + 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83, + 0,100,0,83,0,169,2,78,114,138,0,0,0,41,4,114, + 58,0,0,0,90,10,105,115,95,98,117,105,108,116,105,110, + 114,92,0,0,0,114,139,0,0,0,169,4,218,3,99,108, + 115,114,82,0,0,0,218,4,112,97,116,104,218,6,116,97, + 114,103,101,116,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,9,102,105,110,100,95,115,112,101,99,231,2, + 0,0,115,12,0,0,0,8,2,4,1,10,1,16,1,4, + 2,255,128,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,30,0,0,0,124,0,160,0, + 124,1,124,2,161,2,125,3,124,3,100,1,117,1,114,26, + 124,3,106,1,83,0,100,1,83,0,41,2,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,78,41,2, + 114,170,0,0,0,114,110,0,0,0,41,4,114,167,0,0, + 0,114,82,0,0,0,114,168,0,0,0,114,96,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 11,102,105,110,100,95,109,111,100,117,108,101,240,2,0,0, + 115,6,0,0,0,12,9,18,1,255,128,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,34,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,78,0,0,0,114,16,0,0,0,78,41,8,114,17,0, + 0,0,114,15,0,0,0,114,79,0,0,0,114,80,0,0, + 0,114,46,0,0,0,114,68,0,0,0,114,58,0,0,0, + 90,14,99,114,101,97,116,101,95,98,117,105,108,116,105,110, + 114,161,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,150,0,0,0,252,2,0,0,115,12,0, + 0,0,12,3,12,1,4,1,6,255,12,2,255,128,122,29, 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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,172,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,10,103,101,116,95,115,111,117,114,99,101,15,3,0,0, - 115,4,0,0,0,4,4,255,128,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,115,4, - 0,0,0,100,1,83,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,10,0,0,0,114,172,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,116,0,0,0,21, - 3,0,0,115,4,0,0,0,4,4,255,128,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,41,2,78,78,41,1,78,41, - 18,114,1,0,0,0,114,0,0,0,0,114,2,0,0,0, - 114,3,0,0,0,114,139,0,0,0,218,12,115,116,97,116, - 105,99,109,101,116,104,111,100,114,100,0,0,0,218,11,99, - 108,97,115,115,109,101,116,104,111,100,114,170,0,0,0,114, - 171,0,0,0,114,150,0,0,0,114,151,0,0,0,114,87, - 0,0,0,114,173,0,0,0,114,174,0,0,0,114,116,0, - 0,0,114,98,0,0,0,114,156,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,162,0,0,0,211,2,0,0,115,48,0,0,0,8,0, - 4,2,4,7,2,2,10,1,2,8,12,1,2,8,12,1, - 2,11,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,255,128,114,162, - 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,16,0,0,0,100,1,160,0,124,0,106, - 1,116,2,106,3,161,2,83,0,41,3,114,163,0,0,0, - 114,154,0,0,0,78,41,4,114,46,0,0,0,114,1,0, - 0,0,114,177,0,0,0,114,139,0,0,0,41,1,218,1, - 109,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,100,0,0,0,41,3,0,0,115,4,0,0,0,16,7, - 255,128,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,26,116,2,124,1,124,0,124,0,106, - 3,100,1,141,3,83,0,100,0,83,0,114,165,0,0,0, - 41,4,114,58,0,0,0,114,89,0,0,0,114,92,0,0, - 0,114,139,0,0,0,114,166,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,170,0,0,0,50, - 3,0,0,115,8,0,0,0,10,2,16,1,4,2,255,128, - 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,3,0,0,0,67, - 0,0,0,115,18,0,0,0,116,0,160,1,124,1,161,1, - 114,14,124,0,83,0,100,1,83,0,41,2,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,78,41,2,114,58, - 0,0,0,114,89,0,0,0,41,3,114,167,0,0,0,114, - 82,0,0,0,114,168,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,171,0,0,0,57,3,0, - 0,115,4,0,0,0,18,7,255,128,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,115, - 4,0,0,0,100,1,83,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,10,0,0,0,114,161,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,150,0,0,0,66,3,0,0,115,4,0,0,0,4,128, - 255,128,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,36, - 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,88, - 0,0,0,41,10,114,106,0,0,0,114,17,0,0,0,114, - 58,0,0,0,114,89,0,0,0,114,80,0,0,0,114,46, - 0,0,0,114,68,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,7,0,0,0,41,3,114,97,0,0,0,114,17,0, - 0,0,218,4,99,111,100,101,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,151,0,0,0,70,3,0,0, - 115,18,0,0,0,8,2,10,1,10,1,2,1,6,255,12, - 2,12,1,4,128,255,128,122,26,70,114,111,122,101,110,73, + 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,68,0,0,0,114,58,0, + 0,0,90,12,101,120,101,99,95,98,117,105,108,116,105,110, + 114,164,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,151,0,0,0,4,3,0,0,115,4,0, + 0,0,16,3,255,128,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,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,98,0,0,0,114,172,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,156,0,0,0,79, - 3,0,0,115,4,0,0,0,10,7,255,128,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,115,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,58,0,0,0,114,179,0,0,0,114,172, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,173,0,0,0,88,3,0,0,115,4,0,0,0, - 10,4,255,128,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114, + 2,0,0,0,1,0,0,0,67,0,0,0,115,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,10,0,0,0,169,2,114,167,0,0,0,114, + 82,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,8,103,101,116,95,99,111,100,101,9,3,0, + 0,115,4,0,0,0,4,4,255,128,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,115,4,0, + 0,0,100,1,83,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,10,0,0,0,114,172,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,10,103,101, + 116,95,115,111,117,114,99,101,15,3,0,0,115,4,0,0, + 0,4,4,255,128,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,115,4,0,0,0,100, + 1,83,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,10,0, + 0,0,114,172,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,116,0,0,0,21,3,0,0,115, + 4,0,0,0,4,4,255,128,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,41,2,78,78,41,1,78,41,18,114,1,0, + 0,0,114,0,0,0,0,114,2,0,0,0,114,3,0,0, + 0,114,139,0,0,0,218,12,115,116,97,116,105,99,109,101, + 116,104,111,100,114,100,0,0,0,218,11,99,108,97,115,115, + 109,101,116,104,111,100,114,170,0,0,0,114,171,0,0,0, + 114,150,0,0,0,114,151,0,0,0,114,87,0,0,0,114, + 173,0,0,0,114,174,0,0,0,114,116,0,0,0,114,98, + 0,0,0,114,156,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,162,0,0, + 0,211,2,0,0,115,48,0,0,0,8,0,4,2,4,7, + 2,2,10,1,2,8,12,1,2,8,12,1,2,11,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,255,128,114,162,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,16,0,0,0,100,1,160,0,124,0,106,1,116,2,106, + 3,161,2,83,0,41,3,114,163,0,0,0,114,154,0,0, + 0,78,41,4,114,46,0,0,0,114,1,0,0,0,114,177, + 0,0,0,114,139,0,0,0,41,1,218,1,109,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,100,0,0, + 0,41,3,0,0,115,4,0,0,0,16,7,255,128,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,26,116,2,124,1,124,0,124,0,106,3,100,1,141, + 3,83,0,100,0,83,0,114,165,0,0,0,41,4,114,58, + 0,0,0,114,89,0,0,0,114,92,0,0,0,114,139,0, + 0,0,114,166,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,170,0,0,0,50,3,0,0,115, + 8,0,0,0,10,2,16,1,4,2,255,128,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,3,0,0,0,67,0,0,0,115, + 18,0,0,0,116,0,160,1,124,1,161,1,114,14,124,0, + 83,0,100,1,83,0,41,2,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,78,41,2,114,58,0,0,0,114, + 89,0,0,0,41,3,114,167,0,0,0,114,82,0,0,0, + 114,168,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,171,0,0,0,57,3,0,0,115,4,0, + 0,0,18,7,255,128,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,115,4,0,0,0, + 100,1,83,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,10,0,0,0,114,161,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,150,0,0, + 0,66,3,0,0,115,4,0,0,0,4,128,255,128,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,36,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,88,0,0,0,41, + 10,114,106,0,0,0,114,17,0,0,0,114,58,0,0,0, + 114,89,0,0,0,114,80,0,0,0,114,46,0,0,0,114, + 68,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,7,0, + 0,0,41,3,114,97,0,0,0,114,17,0,0,0,218,4, + 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,151,0,0,0,70,3,0,0,115,16,0,0, + 0,8,2,10,1,10,1,2,1,6,255,12,2,16,1,255, + 128,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,98,0,0,0, + 114,172,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,156,0,0,0,79,3,0,0,115,4,0, + 0,0,10,7,255,128,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,115,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,58, + 0,0,0,114,179,0,0,0,114,172,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,173,0,0, + 0,88,3,0,0,115,4,0,0,0,10,4,255,128,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, + 115,4,0,0,0,100,1,83,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,10,0,0,0,114,172,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,174,0, + 0,0,94,3,0,0,115,4,0,0,0,4,4,255,128,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,115,10,0,0,0,116,0,160,1,124,1,161,1, + 83,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,58,0,0,0,90,17,105,115, + 95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,114, 172,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,174,0,0,0,94,3,0,0,115,4,0,0, - 0,4,4,255,128,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,115,10,0,0,0,116,0, - 160,1,124,1,161,1,83,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,58,0, - 0,0,90,17,105,115,95,102,114,111,122,101,110,95,112,97, - 99,107,97,103,101,114,172,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,116,0,0,0,100,3, - 0,0,115,4,0,0,0,10,4,255,128,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,41,2,78,78,41,1,78,41,17,114, - 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3, - 0,0,0,114,139,0,0,0,114,175,0,0,0,114,100,0, - 0,0,114,176,0,0,0,114,170,0,0,0,114,171,0,0, - 0,114,150,0,0,0,114,151,0,0,0,114,156,0,0,0, - 114,91,0,0,0,114,173,0,0,0,114,174,0,0,0,114, - 116,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,177,0,0,0,30,3,0, - 0,115,50,0,0,0,8,0,4,2,4,7,2,2,10,1, - 2,8,12,1,2,6,12,1,2,8,10,1,2,3,10,1, - 2,8,10,1,2,8,2,1,12,1,2,4,2,1,12,1, - 2,4,2,1,16,1,255,128,114,177,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, - 115,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,58,0,0,0,114,59,0,0,0,114,48,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,55, - 0,0,0,113,3,0,0,115,6,0,0,0,8,2,4,128, - 255,128,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,115,12,0,0,0,116,0, - 160,1,161,0,1,0,100,1,83,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,58,0, - 0,0,114,61,0,0,0,41,4,114,30,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,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,57,0,0,0,117,3,0,0,115,6,0,0,0,8, - 2,4,128,255,128,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,1,0,0,0,114,0,0,0,0,114, - 2,0,0,0,114,3,0,0,0,114,55,0,0,0,114,57, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,182,0,0,0,109,3,0,0, - 115,10,0,0,0,8,0,4,2,8,2,12,4,255,128,114, - 182,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,36,116,2, - 100,3,131,1,130,1,124,3,100,4,25,0,125,4,124,0, - 114,60,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,129,0,0,0,114,39,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,22,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,80,0,0,0,114,46,0,0,0,41,5,114,17, - 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, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,13, - 95,114,101,115,111,108,118,101,95,110,97,109,101,122,3,0, - 0,115,12,0,0,0,16,2,12,1,8,1,8,1,20,1, - 255,128,114,191,0,0,0,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,34,0,0,0,124,0,160,0,124,1,124,2,161,2,125, - 3,124,3,100,0,117,0,114,24,100,0,83,0,116,1,124, - 1,124,3,131,2,83,0,114,13,0,0,0,41,2,114,171, - 0,0,0,114,92,0,0,0,41,4,218,6,102,105,110,100, - 101,114,114,17,0,0,0,114,168,0,0,0,114,110,0,0, + 0,0,0,114,116,0,0,0,100,3,0,0,115,4,0,0, + 0,10,4,255,128,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, + 41,2,78,78,41,1,78,41,17,114,1,0,0,0,114,0, + 0,0,0,114,2,0,0,0,114,3,0,0,0,114,139,0, + 0,0,114,175,0,0,0,114,100,0,0,0,114,176,0,0, + 0,114,170,0,0,0,114,171,0,0,0,114,150,0,0,0, + 114,151,0,0,0,114,156,0,0,0,114,91,0,0,0,114, + 173,0,0,0,114,174,0,0,0,114,116,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,177,0,0,0,30,3,0,0,115,50,0,0,0, + 8,0,4,2,4,7,2,2,10,1,2,8,12,1,2,6, + 12,1,2,8,10,1,2,3,10,1,2,8,10,1,2,8, + 2,1,12,1,2,4,2,1,12,1,2,4,2,1,16,1, + 255,128,114,177,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,115,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,58,0,0,0,114, + 59,0,0,0,114,48,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,55,0,0,0,113,3,0, + 0,115,4,0,0,0,12,2,255,128,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,115,12,0,0,0,116,0,160,1,161,0,1,0,100,1, + 83,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,58,0,0,0,114,61,0,0,0,41, + 4,114,30,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,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,57,0,0,0,117,3, + 0,0,115,4,0,0,0,12,2,255,128,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,1,0,0,0, + 114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,114, + 55,0,0,0,114,57,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,182,0, + 0,0,109,3,0,0,115,10,0,0,0,8,0,4,2,8, + 2,12,4,255,128,114,182,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,36,116,2,100,3,131,1,130,1,124,3,100,4, + 25,0,125,4,124,0,114,60,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,129, + 0,0,0,114,39,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,22,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,80,0,0,0,114,46,0, + 0,0,41,5,114,17,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,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,13,95,114,101,115,111,108,118,101,95,110, + 97,109,101,122,3,0,0,115,12,0,0,0,16,2,12,1, + 8,1,8,1,20,1,255,128,114,191,0,0,0,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,34,0,0,0,124,0,160,0,124, + 1,124,2,161,2,125,3,124,3,100,0,117,0,114,24,100, + 0,83,0,116,1,124,1,124,3,131,2,83,0,114,13,0, + 0,0,41,2,114,171,0,0,0,114,92,0,0,0,41,4, + 218,6,102,105,110,100,101,114,114,17,0,0,0,114,168,0, + 0,0,114,110,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,17,95,102,105,110,100,95,115,112, + 101,99,95,108,101,103,97,99,121,131,3,0,0,115,10,0, + 0,0,12,3,8,1,4,1,10,1,255,128,114,193,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,28,1,0,0,116, + 0,106,1,125,3,124,3,100,1,117,0,114,22,116,2,100, + 2,131,1,130,1,124,3,115,38,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,226,125,5,116,7,131,0,143,94,1,0,122, + 10,124,5,106,8,125,6,87,0,110,54,4,0,116,9,121, + 128,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,124,89,0,87,0,100, + 1,4,0,4,0,131,3,1,0,113,52,89,0,110,14,48, + 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,16,49,0,115,162,48, + 0,1,0,1,0,1,0,89,0,1,0,124,7,100,1,117, + 1,114,52,124,4,144,1,115,16,124,0,116,0,106,6,118, + 0,144,1,114,16,116,0,106,6,124,0,25,0,125,8,122, + 10,124,8,106,11,125,9,87,0,110,26,4,0,116,9,121, + 244,1,0,1,0,1,0,124,7,6,0,89,0,2,0,1, + 0,83,0,48,0,124,9,100,1,117,0,144,1,114,8,124, + 7,2,0,1,0,83,0,124,9,2,0,1,0,83,0,124, + 7,2,0,1,0,83,0,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,15,0,0,0,218,9,109,101,116, + 97,95,112,97,116,104,114,80,0,0,0,218,9,95,119,97, + 114,110,105,110,103,115,218,4,119,97,114,110,218,13,73,109, + 112,111,114,116,87,97,114,110,105,110,103,114,93,0,0,0, + 114,182,0,0,0,114,170,0,0,0,114,107,0,0,0,114, + 193,0,0,0,114,106,0,0,0,41,10,114,17,0,0,0, + 114,168,0,0,0,114,169,0,0,0,114,194,0,0,0,90, + 9,105,115,95,114,101,108,111,97,100,114,192,0,0,0,114, + 170,0,0,0,114,96,0,0,0,114,97,0,0,0,114,106, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,10,95,102,105,110,100,95,115,112,101,99,140,3, + 0,0,115,56,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,22,1,42,2,8,1,18,2,10,1,2,1,10,1,12, + 1,14,4,10,2,8,1,8,2,8,2,4,2,255,128,114, + 198,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,28,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,44,116,5,100,3,131,1,130,1,124,2, + 100,2,107,4,114,82,116,0,124,1,116,1,131,2,115,70, + 116,2,100,4,131,1,130,1,124,1,115,82,116,6,100,5, + 131,1,130,1,124,0,115,106,124,2,100,2,107,2,114,102, + 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,22,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,46,0,0,0,114,14,0,0,0,218, + 10,86,97,108,117,101,69,114,114,111,114,114,80,0,0,0, + 169,3,114,17,0,0,0,114,189,0,0,0,114,190,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,17,95,102,105,110,100,95,115,112,101,99,95,108,101,103, - 97,99,121,131,3,0,0,115,10,0,0,0,12,3,8,1, - 4,1,10,1,255,128,114,193,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,28,1,0,0,116,0,106,1,125,3,124, - 3,100,1,117,0,114,22,116,2,100,2,131,1,130,1,124, - 3,115,38,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,226,125, - 5,116,7,131,0,143,94,1,0,122,10,124,5,106,8,125, - 6,87,0,110,54,4,0,116,9,121,128,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,124,89,0,87,0,100,1,4,0,4,0,131, - 3,1,0,113,52,89,0,110,14,48,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,16,49,0,115,162,48,0,1,0,1,0,1, - 0,89,0,1,0,124,7,100,1,117,1,114,52,124,4,144, - 1,115,16,124,0,116,0,106,6,118,0,144,1,114,16,116, - 0,106,6,124,0,25,0,125,8,122,10,124,8,106,11,125, - 9,87,0,110,26,4,0,116,9,121,244,1,0,1,0,1, - 0,124,7,6,0,89,0,2,0,1,0,83,0,48,0,124, - 9,100,1,117,0,144,1,114,8,124,7,2,0,1,0,83, - 0,124,9,2,0,1,0,83,0,124,7,2,0,1,0,83, - 0,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,15,0,0,0,218,9,109,101,116,97,95,112,97,116,104, - 114,80,0,0,0,218,9,95,119,97,114,110,105,110,103,115, - 218,4,119,97,114,110,218,13,73,109,112,111,114,116,87,97, - 114,110,105,110,103,114,93,0,0,0,114,182,0,0,0,114, - 170,0,0,0,114,107,0,0,0,114,193,0,0,0,114,106, - 0,0,0,41,10,114,17,0,0,0,114,168,0,0,0,114, - 169,0,0,0,114,194,0,0,0,90,9,105,115,95,114,101, - 108,111,97,100,114,192,0,0,0,114,170,0,0,0,114,96, - 0,0,0,114,97,0,0,0,114,106,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,10,95,102, - 105,110,100,95,115,112,101,99,140,3,0,0,115,56,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,22,1,42,2,8, - 1,18,2,10,1,2,1,10,1,12,1,14,4,10,2,8, - 1,8,2,8,2,4,2,255,128,114,198,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,106,0,0,0,116,0,124,0, - 116,1,131,2,115,28,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,44, - 116,5,100,3,131,1,130,1,124,2,100,2,107,4,114,82, - 116,0,124,1,116,1,131,2,115,70,116,2,100,4,131,1, - 130,1,124,1,115,82,116,6,100,5,131,1,130,1,124,0, - 115,102,124,2,100,2,107,2,114,102,116,5,100,6,131,1, - 130,1,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,22,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,46,0,0,0, - 114,14,0,0,0,218,10,86,97,108,117,101,69,114,114,111, - 114,114,80,0,0,0,169,3,114,17,0,0,0,114,189,0, - 0,0,114,190,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,13,95,115,97,110,105,116,121,95, - 99,104,101,99,107,187,3,0,0,115,26,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,4,128,255,128,114,204,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,20, - 1,0,0,100,0,125,2,124,0,160,0,100,1,161,1,100, - 2,25,0,125,3,124,3,114,128,124,3,116,1,106,2,118, - 1,114,42,116,3,124,1,124,3,131,2,1,0,124,0,116, - 1,106,2,118,0,114,62,116,1,106,2,124,0,25,0,83, - 0,116,1,106,2,124,3,25,0,125,4,122,10,124,4,106, - 4,125,2,87,0,110,44,4,0,116,5,121,126,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,48,0,116,9,124,0,124,2,131,2,125,6,124,6,100, - 0,117,0,114,164,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,144,1,114,16,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,18,116, - 11,124,4,124,8,124,7,131,3,1,0,87,0,124,7,83, - 0,4,0,116,5,144,1,121,14,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,48,0,124,7,83,0,41,8,78,114,129,0,0,0,114, - 22,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,16,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,130,0,0,0,114, - 15,0,0,0,114,93,0,0,0,114,68,0,0,0,114,142, - 0,0,0,114,107,0,0,0,218,8,95,69,82,82,95,77, - 83,71,114,46,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,198,0,0, - 0,114,160,0,0,0,114,5,0,0,0,114,195,0,0,0, - 114,196,0,0,0,114,197,0,0,0,41,9,114,17,0,0, - 0,218,7,105,109,112,111,114,116,95,114,168,0,0,0,114, - 131,0,0,0,90,13,112,97,114,101,110,116,95,109,111,100, - 117,108,101,114,158,0,0,0,114,96,0,0,0,114,97,0, - 0,0,90,5,99,104,105,108,100,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,23,95,102,105,110,100,95, - 97,110,100,95,108,111,97,100,95,117,110,108,111,99,107,101, - 100,206,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,16,1,10,1,8,1,18,1,8,2,6,1,10,2, - 14,1,2,1,14,1,4,4,14,253,16,1,14,1,4,1, - 2,255,4,1,255,128,114,209,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, - 62,1,0,116,1,106,2,160,3,124,0,116,4,161,2,125, - 2,124,2,116,4,117,0,114,56,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,16,49, - 0,115,76,48,0,1,0,1,0,1,0,89,0,1,0,124, - 2,100,1,117,0,114,116,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,16,0,0,0,41,9,114,51,0,0,0,114,15,0, - 0,0,114,93,0,0,0,114,35,0,0,0,218,14,95,78, - 69,69,68,83,95,76,79,65,68,73,78,71,114,209,0,0, - 0,114,46,0,0,0,114,207,0,0,0,114,66,0,0,0, - 41,4,114,17,0,0,0,114,208,0,0,0,114,97,0,0, - 0,114,76,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,14,95,102,105,110,100,95,97,110,100, - 95,108,111,97,100,241,3,0,0,115,24,0,0,0,10,2, - 14,1,8,1,54,1,8,2,4,1,2,1,4,255,12,2, - 8,2,4,1,255,128,114,211,0,0,0,114,22,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,32,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,22,0,0,0,78,41,4,114,204,0,0,0,114,191, - 0,0,0,114,211,0,0,0,218,11,95,103,99,100,95,105, - 109,112,111,114,116,114,203,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,212,0,0,0,1,4, - 0,0,115,10,0,0,0,12,9,8,1,12,1,10,1,255, - 128,114,212,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,216,0,0, - 0,124,1,68,0,93,206,125,4,116,0,124,4,116,1,131, - 2,115,64,124,3,114,34,124,0,106,2,100,1,23,0,125, - 5,110,4,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,106,124,3,115,4,116,5,124, - 0,100,6,131,2,114,4,116,6,124,0,124,0,106,7,124, - 2,100,7,100,8,141,4,1,0,113,4,116,5,124,0,124, - 4,131,2,115,4,100,9,160,8,124,0,106,2,124,4,161, - 2,125,6,122,14,116,9,124,2,124,6,131,2,1,0,87, - 0,113,4,4,0,116,10,121,210,1,0,125,7,1,0,122, - 42,124,7,106,11,124,6,107,2,114,200,116,12,106,13,160, - 14,124,6,116,15,161,2,100,10,117,1,114,200,87,0,89, - 0,100,10,125,7,126,7,113,4,130,0,100,10,125,7,126, - 7,48,0,48,0,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, - 213,0,0,0,114,186,0,0,0,78,41,16,114,199,0,0, - 0,114,200,0,0,0,114,1,0,0,0,114,201,0,0,0, - 114,14,0,0,0,114,4,0,0,0,218,16,95,104,97,110, - 100,108,101,95,102,114,111,109,108,105,115,116,114,216,0,0, - 0,114,46,0,0,0,114,68,0,0,0,114,207,0,0,0, - 114,17,0,0,0,114,15,0,0,0,114,93,0,0,0,114, - 35,0,0,0,114,210,0,0,0,41,8,114,97,0,0,0, - 218,8,102,114,111,109,108,105,115,116,114,208,0,0,0,114, - 214,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,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,217,0, - 0,0,16,4,0,0,115,52,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,8,255,10,2,14,1,2,1,14,1,14,1,10, - 4,16,1,2,255,12,2,2,1,10,128,4,1,255,128,114, - 217,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,82,124,2, - 100,3,117,1,114,78,124,1,124,2,106,1,107,3,114,78, - 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,96,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,142,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, - 146,0,0,0,114,106,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,1,0,0,0,114,142,0,0,0,114,129,0, - 0,0,114,22,0,0,0,41,6,114,35,0,0,0,114,131, - 0,0,0,114,195,0,0,0,114,196,0,0,0,114,197,0, - 0,0,114,130,0,0,0,41,3,218,7,103,108,111,98,97, - 108,115,114,189,0,0,0,114,96,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,17,95,99,97, - 108,99,95,95,95,112,97,99,107,97,103,101,95,95,53,4, - 0,0,115,44,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,255,128,114,223,0,0,0,114,10,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,18,116,0,124,0,131,1,125,5,110,36,124,1,100, - 2,117,1,114,30,124,1,110,2,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,148,124,4,100,1,107,2,114,84,116,0,124, - 0,160,2,100,3,161,1,100,1,25,0,131,1,83,0,124, - 0,115,92,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,170,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,22,0,0,0,78,114,129,0, - 0,0,114,142,0,0,0,41,9,114,212,0,0,0,114,223, - 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,188, - 0,0,0,114,15,0,0,0,114,93,0,0,0,114,1,0, - 0,0,114,4,0,0,0,114,217,0,0,0,41,9,114,17, - 0,0,0,114,222,0,0,0,218,6,108,111,99,97,108,115, - 114,218,0,0,0,114,190,0,0,0,114,97,0,0,0,90, - 8,103,108,111,98,97,108,115,95,114,189,0,0,0,90,7, - 99,117,116,95,111,102,102,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,10,95,95,105,109,112,111,114,116, - 95,95,80,4,0,0,115,32,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,255,128,114,226,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,30, - 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,162,0,0,0,114,170,0,0,0,114,80, - 0,0,0,114,160,0,0,0,41,2,114,17,0,0,0,114, - 96,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,18,95,98,117,105,108,116,105,110,95,102,114, - 111,109,95,110,97,109,101,117,4,0,0,115,10,0,0,0, - 10,1,8,1,12,1,8,1,255,128,114,227,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,164,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,70,92,2,125,3,125,4,116, - 5,124,4,124,2,131,2,114,26,124,3,116,1,106,6,118, - 0,114,60,116,7,125,5,110,16,116,0,160,8,124,3,161, - 1,114,26,116,9,125,5,110,0,116,10,124,4,124,5,131, - 2,125,6,116,11,124,6,124,4,131,2,1,0,113,26,116, - 1,106,3,116,12,25,0,125,7,100,1,68,0,93,46,125, - 8,124,8,116,1,106,3,118,1,114,136,116,13,124,8,131, - 1,125,9,110,10,116,1,106,3,124,8,25,0,125,9,116, - 14,124,7,124,8,124,9,131,3,1,0,113,112,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,23,0,0,0,114,195,0,0,0,114,65,0,0,0, - 78,41,15,114,58,0,0,0,114,15,0,0,0,114,14,0, - 0,0,114,93,0,0,0,218,5,105,116,101,109,115,114,199, - 0,0,0,114,79,0,0,0,114,162,0,0,0,114,89,0, - 0,0,114,177,0,0,0,114,143,0,0,0,114,149,0,0, - 0,114,1,0,0,0,114,227,0,0,0,114,5,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,17,0,0,0,114,97,0, - 0,0,114,110,0,0,0,114,96,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,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,6,95,115,101,116,117,112,124,4, - 0,0,115,38,0,0,0,4,9,4,1,8,3,18,1,10, - 1,10,1,6,1,10,1,6,1,10,3,12,1,10,3,8, - 1,10,1,10,1,10,2,14,1,4,128,255,128,114,231,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,231,0, - 0,0,114,15,0,0,0,114,194,0,0,0,114,120,0,0, - 0,114,162,0,0,0,114,177,0,0,0,41,2,114,229,0, - 0,0,114,230,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,8,95,105,110,115,116,97,108,108, - 159,4,0,0,115,10,0,0,0,10,2,12,2,12,1,4, - 128,255,128,114,232,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,22,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,127,0,0,0,114,232,0,0, - 0,114,15,0,0,0,114,93,0,0,0,114,1,0,0,0, - 41,1,114,233,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,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,167,4,0,0,115,10,0,0,0,8,3,4,1, - 16,1,4,128,255,128,114,234,0,0,0,41,2,78,78,41, - 1,78,41,2,78,114,22,0,0,0,41,4,78,78,114,10, - 0,0,0,114,22,0,0,0,41,53,114,3,0,0,0,114, - 23,0,0,0,114,195,0,0,0,114,65,0,0,0,114,127, - 0,0,0,114,12,0,0,0,114,18,0,0,0,114,60,0, - 0,0,114,34,0,0,0,114,44,0,0,0,114,19,0,0, - 0,114,20,0,0,0,114,50,0,0,0,114,51,0,0,0, - 114,54,0,0,0,114,66,0,0,0,114,68,0,0,0,114, - 77,0,0,0,114,87,0,0,0,114,91,0,0,0,114,98, - 0,0,0,114,112,0,0,0,114,113,0,0,0,114,92,0, - 0,0,114,143,0,0,0,114,149,0,0,0,114,153,0,0, - 0,114,108,0,0,0,114,94,0,0,0,114,159,0,0,0, - 114,160,0,0,0,114,95,0,0,0,114,162,0,0,0,114, - 177,0,0,0,114,182,0,0,0,114,191,0,0,0,114,193, - 0,0,0,114,198,0,0,0,114,204,0,0,0,90,15,95, - 69,82,82,95,77,83,71,95,80,82,69,70,73,88,114,206, - 0,0,0,114,209,0,0,0,218,6,111,98,106,101,99,116, - 114,210,0,0,0,114,211,0,0,0,114,212,0,0,0,114, - 217,0,0,0,114,223,0,0,0,114,226,0,0,0,114,227, - 0,0,0,114,231,0,0,0,114,232,0,0,0,114,234,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,8,60,109,111,100,117,108,101,62, - 1,0,0,0,115,106,0,0,0,4,0,4,25,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,16,14,36,16,101,10,26,14,45,8,72,8,17,8, - 17,8,30,8,37,8,42,14,15,14,75,14,79,8,13,8, - 9,10,9,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,8,8,4, - 128,255,128, + 218,13,95,115,97,110,105,116,121,95,99,104,101,99,107,187, + 3,0,0,115,26,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, + 255,128,114,204,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,20,1,0,0,100,0,125, + 2,124,0,160,0,100,1,161,1,100,2,25,0,125,3,124, + 3,114,128,124,3,116,1,106,2,118,1,114,42,116,3,124, + 1,124,3,131,2,1,0,124,0,116,1,106,2,118,0,114, + 62,116,1,106,2,124,0,25,0,83,0,116,1,106,2,124, + 3,25,0,125,4,122,10,124,4,106,4,125,2,87,0,110, + 44,4,0,116,5,121,126,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,48,0,116,9,124, + 0,124,2,131,2,125,6,124,6,100,0,117,0,114,164,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,144,1,114,16,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,18,116,11,124,4,124,8,124, + 7,131,3,1,0,87,0,124,7,83,0,4,0,116,5,144, + 1,121,14,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,48,0,124,7,83, + 0,41,8,78,114,129,0,0,0,114,22,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,16,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,130,0,0,0,114,15,0,0,0,114,93, + 0,0,0,114,68,0,0,0,114,142,0,0,0,114,107,0, + 0,0,218,8,95,69,82,82,95,77,83,71,114,46,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,198,0,0,0,114,160,0,0,0, + 114,5,0,0,0,114,195,0,0,0,114,196,0,0,0,114, + 197,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112, + 111,114,116,95,114,168,0,0,0,114,131,0,0,0,90,13, + 112,97,114,101,110,116,95,109,111,100,117,108,101,114,158,0, + 0,0,114,96,0,0,0,114,97,0,0,0,90,5,99,104, + 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,23,95,102,105,110,100,95,97,110,100,95,108,111, + 97,100,95,117,110,108,111,99,107,101,100,206,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,16,1,10,1, + 8,1,18,1,8,2,6,1,10,2,14,1,2,1,14,1, + 4,4,14,253,16,1,14,1,4,1,2,255,4,1,255,128, + 114,209,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,62,1,0,116,1,106, + 2,160,3,124,0,116,4,161,2,125,2,124,2,116,4,117, + 0,114,56,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,16,49,0,115,76,48,0,1, + 0,1,0,1,0,89,0,1,0,124,2,100,1,117,0,114, + 116,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,16,0,0,0, + 41,9,114,51,0,0,0,114,15,0,0,0,114,93,0,0, + 0,114,35,0,0,0,218,14,95,78,69,69,68,83,95,76, + 79,65,68,73,78,71,114,209,0,0,0,114,46,0,0,0, + 114,207,0,0,0,114,66,0,0,0,41,4,114,17,0,0, + 0,114,208,0,0,0,114,97,0,0,0,114,76,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 14,95,102,105,110,100,95,97,110,100,95,108,111,97,100,241, + 3,0,0,115,24,0,0,0,10,2,14,1,8,1,54,1, + 8,2,4,1,2,1,4,255,12,2,8,2,4,1,255,128, + 114,211,0,0,0,114,22,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,32,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,22,0,0,0, + 78,41,4,114,204,0,0,0,114,191,0,0,0,114,211,0, + 0,0,218,11,95,103,99,100,95,105,109,112,111,114,116,114, + 203,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,212,0,0,0,1,4,0,0,115,10,0,0, + 0,12,9,8,1,12,1,10,1,255,128,114,212,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,216,0,0,0,124,1,68,0,93, + 204,125,4,116,0,124,4,116,1,131,2,115,64,124,3,114, + 34,124,0,106,2,100,1,23,0,125,5,110,4,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,106,124,3,115,4,116,5,124,0,100,6,131,2,114, + 4,116,6,124,0,124,0,106,7,124,2,100,7,100,8,141, + 4,1,0,113,4,116,5,124,0,124,4,131,2,115,4,100, + 9,160,8,124,0,106,2,124,4,161,2,125,6,122,14,116, + 9,124,2,124,6,131,2,1,0,87,0,113,4,4,0,116, + 10,121,214,1,0,125,7,1,0,122,42,124,7,106,11,124, + 6,107,2,114,200,116,12,106,13,160,14,124,6,116,15,161, + 2,100,10,117,1,114,200,87,0,89,0,100,10,125,7,126, + 7,113,4,130,0,100,10,125,7,126,7,48,0,124,0,83, + 0,48,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,213,0,0,0,114,186, + 0,0,0,78,41,16,114,199,0,0,0,114,200,0,0,0, + 114,1,0,0,0,114,201,0,0,0,114,14,0,0,0,114, + 4,0,0,0,218,16,95,104,97,110,100,108,101,95,102,114, + 111,109,108,105,115,116,114,216,0,0,0,114,46,0,0,0, + 114,68,0,0,0,114,207,0,0,0,114,17,0,0,0,114, + 15,0,0,0,114,93,0,0,0,114,35,0,0,0,114,210, + 0,0,0,41,8,114,97,0,0,0,218,8,102,114,111,109, + 108,105,115,116,114,208,0,0,0,114,214,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,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,217,0,0,0,16,4,0,0, + 115,54,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,8,255,10, + 2,14,1,2,1,14,1,14,1,10,4,16,1,2,255,12, + 2,2,1,8,128,4,1,2,248,255,128,114,217,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,82,124,2,100,3,117,1, + 114,78,124,1,124,2,106,1,107,3,114,78,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,96,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,142,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,146,0,0,0, + 114,106,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, + 1,0,0,0,114,142,0,0,0,114,129,0,0,0,114,22, + 0,0,0,41,6,114,35,0,0,0,114,131,0,0,0,114, + 195,0,0,0,114,196,0,0,0,114,197,0,0,0,114,130, + 0,0,0,41,3,218,7,103,108,111,98,97,108,115,114,189, + 0,0,0,114,96,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,218,17,95,99,97,108,99,95,95, + 95,112,97,99,107,97,103,101,95,95,53,4,0,0,115,44, + 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,255,128,114, + 223,0,0,0,114,10,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,18,116, + 0,124,0,131,1,125,5,110,36,124,1,100,2,117,1,114, + 30,124,1,110,2,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, + 148,124,4,100,1,107,2,114,84,116,0,124,0,160,2,100, + 3,161,1,100,1,25,0,131,1,83,0,124,0,115,92,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,170,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,22,0,0,0,78,114,129,0,0,0,114,142, + 0,0,0,41,9,114,212,0,0,0,114,223,0,0,0,218, + 9,112,97,114,116,105,116,105,111,110,114,188,0,0,0,114, + 15,0,0,0,114,93,0,0,0,114,1,0,0,0,114,4, + 0,0,0,114,217,0,0,0,41,9,114,17,0,0,0,114, + 222,0,0,0,218,6,108,111,99,97,108,115,114,218,0,0, + 0,114,190,0,0,0,114,97,0,0,0,90,8,103,108,111, + 98,97,108,115,95,114,189,0,0,0,90,7,99,117,116,95, + 111,102,102,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,10,95,95,105,109,112,111,114,116,95,95,80,4, + 0,0,115,32,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,255,128,114,226,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,30,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,162,0,0,0,114,170,0,0,0,114,80,0,0,0,114, + 160,0,0,0,41,2,114,17,0,0,0,114,96,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 18,95,98,117,105,108,116,105,110,95,102,114,111,109,95,110, + 97,109,101,117,4,0,0,115,10,0,0,0,10,1,8,1, + 12,1,8,1,255,128,114,227,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,164,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,70,92,2,125,3,125,4,116,5,124,4,124, + 2,131,2,114,26,124,3,116,1,106,6,118,0,114,60,116, + 7,125,5,110,16,116,0,160,8,124,3,161,1,114,26,116, + 9,125,5,110,0,116,10,124,4,124,5,131,2,125,6,116, + 11,124,6,124,4,131,2,1,0,113,26,116,1,106,3,116, + 12,25,0,125,7,100,1,68,0,93,46,125,8,124,8,116, + 1,106,3,118,1,114,136,116,13,124,8,131,1,125,9,110, + 10,116,1,106,3,124,8,25,0,125,9,116,14,124,7,124, + 8,124,9,131,3,1,0,113,112,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,23,0, + 0,0,114,195,0,0,0,114,65,0,0,0,78,41,15,114, + 58,0,0,0,114,15,0,0,0,114,14,0,0,0,114,93, + 0,0,0,218,5,105,116,101,109,115,114,199,0,0,0,114, + 79,0,0,0,114,162,0,0,0,114,89,0,0,0,114,177, + 0,0,0,114,143,0,0,0,114,149,0,0,0,114,1,0, + 0,0,114,227,0,0,0,114,5,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,17,0,0,0,114,97,0,0,0,114,110, + 0,0,0,114,96,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,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,6,95,115,101,116,117,112,124,4,0,0,115,38, + 0,0,0,4,9,4,1,8,3,18,1,10,1,10,1,6, + 1,10,1,6,1,10,3,12,1,10,3,8,1,10,1,10, + 1,10,2,14,1,4,251,255,128,114,231,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,231,0,0,0,114,15, + 0,0,0,114,194,0,0,0,114,120,0,0,0,114,162,0, + 0,0,114,177,0,0,0,41,2,114,229,0,0,0,114,230, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,8,95,105,110,115,116,97,108,108,159,4,0,0, + 115,8,0,0,0,10,2,12,2,16,1,255,128,114,232,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,22,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,127,0,0,0,114,232,0,0,0,114,15,0,0,0, + 114,93,0,0,0,114,1,0,0,0,41,1,114,233,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,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,167,4,0, + 0,115,8,0,0,0,8,3,4,1,20,1,255,128,114,234, + 0,0,0,41,2,78,78,41,1,78,41,2,78,114,22,0, + 0,0,41,4,78,78,114,10,0,0,0,114,22,0,0,0, + 41,53,114,3,0,0,0,114,23,0,0,0,114,195,0,0, + 0,114,65,0,0,0,114,127,0,0,0,114,12,0,0,0, + 114,18,0,0,0,114,60,0,0,0,114,34,0,0,0,114, + 44,0,0,0,114,19,0,0,0,114,20,0,0,0,114,50, + 0,0,0,114,51,0,0,0,114,54,0,0,0,114,66,0, + 0,0,114,68,0,0,0,114,77,0,0,0,114,87,0,0, + 0,114,91,0,0,0,114,98,0,0,0,114,112,0,0,0, + 114,113,0,0,0,114,92,0,0,0,114,143,0,0,0,114, + 149,0,0,0,114,153,0,0,0,114,108,0,0,0,114,94, + 0,0,0,114,159,0,0,0,114,160,0,0,0,114,95,0, + 0,0,114,162,0,0,0,114,177,0,0,0,114,182,0,0, + 0,114,191,0,0,0,114,193,0,0,0,114,198,0,0,0, + 114,204,0,0,0,90,15,95,69,82,82,95,77,83,71,95, + 80,82,69,70,73,88,114,206,0,0,0,114,209,0,0,0, + 218,6,111,98,106,101,99,116,114,210,0,0,0,114,211,0, + 0,0,114,212,0,0,0,114,217,0,0,0,114,223,0,0, + 0,114,226,0,0,0,114,227,0,0,0,114,231,0,0,0, + 114,232,0,0,0,114,234,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8, + 60,109,111,100,117,108,101,62,1,0,0,0,115,104,0,0, + 0,4,0,4,25,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,16,14,36,16,101,10, + 26,14,45,8,72,8,17,8,17,8,30,8,37,8,42,14, + 15,14,75,14,79,8,13,8,9,10,9,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,255,128, }; diff --git a/Python/importlib_external.h b/Python/importlib_external.h index de4db360b0606..c459bcf2e90c4 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -79,1900 +79,1899 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 169,0,114,7,0,0,0,250,38,60,102,114,111,122,101,110, 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, 115,116,114,97,112,95,101,120,116,101,114,110,97,108,62,218, - 9,60,103,101,110,101,120,112,114,62,46,0,0,0,115,6, - 0,0,0,22,0,4,128,255,128,114,9,0,0,0,218,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,22,0,0,0,104,0, - 124,0,93,14,125,1,100,0,124,1,155,0,157,2,146,2, - 113,4,83,0,41,1,250,1,58,114,7,0,0,0,41,2, - 114,5,0,0,0,218,1,115,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,9,60,115,101,116,99,111,109, - 112,62,49,0,0,0,115,4,0,0,0,22,0,255,128,114, - 13,0,0,0,41,1,218,3,119,105,110,41,2,90,6,99, - 121,103,119,105,110,90,6,100,97,114,119,105,110,99,0,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,3,0,0,0,115,62,0,0,0,116,0,106,1,160, - 2,116,3,161,1,114,50,116,0,106,1,160,2,116,4,161, - 1,114,30,100,1,137,0,110,4,100,2,137,0,135,0,102, - 1,100,3,100,4,132,8,125,0,124,0,83,0,100,5,100, - 4,132,0,125,0,124,0,83,0,41,6,78,90,12,80,89, - 84,72,79,78,67,65,83,69,79,75,115,12,0,0,0,80, - 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,18,136,0,116,3,106,4,118,0,83,0,41,2,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,66,0,0,0,115,4,0,0,0,20,2,255,128, - 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, - 115,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,70,0,0,0,115,4,0,0,0,4,2,255,128,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,59,0,0,0,115,18,0,0,0,12, - 1,12,1,6,1,4,2,12,2,4,7,8,253,4,3,255, - 128,114,26,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,78,0,0,0,115,4,0,0,0,20,2,255,128,114, - 33,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,116,0,124,0,131,1,100,1,107,2,115,16,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,28,0,0,0,114,29,0,0,0,78,169,3,114,4, - 0,0,0,114,30,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,83,0,0,0,115, - 6,0,0,0,16,2,12,1,255,128,114,38,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,116,0,124, - 0,131,1,100,1,107,2,115,16,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,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,29,0,0,0,78,114,34,0,0,0,114,36,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, - 88,0,0,0,115,6,0,0,0,16,2,12,1,255,128,114, - 40,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,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,106,111,105,110,40,41,46,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,115,26,0,0,0,103,0,124,0,93,18,125,1,124, - 1,114,4,124,1,160,0,116,1,161,1,145,2,113,4,83, - 0,114,7,0,0,0,41,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,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,218,10,60, - 108,105,115,116,99,111,109,112,62,96,0,0,0,115,8,0, - 0,0,6,0,6,1,14,255,255,128,122,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,2,218,8,112, - 97,116,104,95,115,101,112,218,4,106,111,105,110,41,1,218, - 10,112,97,116,104,95,112,97,114,116,115,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,94,0,0,0,115,8,0,0,0,10, - 2,2,1,8,255,255,128,114,48,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0, - 0,67,0,0,0,115,94,0,0,0,116,0,116,1,131,1, - 100,1,107,2,114,36,124,0,160,2,116,3,161,1,92,3, - 125,1,125,2,125,3,124,1,124,3,102,2,83,0,116,4, - 124,0,131,1,68,0,93,40,125,4,124,4,116,1,118,0, - 114,44,124,0,106,5,124,4,100,1,100,2,141,2,92,2, - 125,1,125,3,124,1,124,3,102,2,2,0,1,0,83,0, - 100,3,124,0,102,2,83,0,41,5,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,114,3,0,0, - 0,41,1,90,8,109,97,120,115,112,108,105,116,114,10,0, - 0,0,78,41,6,114,4,0,0,0,114,42,0,0,0,218, - 10,114,112,97,114,116,105,116,105,111,110,114,45,0,0,0, - 218,8,114,101,118,101,114,115,101,100,218,6,114,115,112,108, - 105,116,41,5,218,4,112,97,116,104,90,5,102,114,111,110, - 116,218,1,95,218,4,116,97,105,108,114,32,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,115,112,108,105,116,100,0,0,0,115, - 18,0,0,0,12,2,16,1,8,1,12,1,8,1,18,1, - 12,1,8,1,255,128,114,55,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,169,1,114,52,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,112,0,0,0,115,4,0,0,0,10,7, - 255,128,114,57,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,12,116,0,124,0,131,1,125,2,87, - 0,110,20,4,0,116,1,121,32,1,0,1,0,1,0,89, - 0,100,1,83,0,48,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,57,0,0,0,218,7,79,83,69,114,114,111, - 114,218,7,115,116,95,109,111,100,101,41,3,114,52,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,122,0,0,0,115,12,0,0,0,2,2, - 12,1,12,1,8,1,14,1,255,128,114,61,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,61,0,0,0,114,56,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,131,0,0,0,115,4,0, - 0,0,10,2,255,128,114,62,0,0,0,99,1,0,0,0, + 9,60,103,101,110,101,120,112,114,62,46,0,0,0,115,4, + 0,0,0,26,0,255,128,114,9,0,0,0,218,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,22,0,0,0,104,0,124,0, + 93,14,125,1,100,0,124,1,155,0,157,2,146,2,113,4, + 83,0,41,1,250,1,58,114,7,0,0,0,41,2,114,5, + 0,0,0,218,1,115,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,9,60,115,101,116,99,111,109,112,62, + 49,0,0,0,115,4,0,0,0,22,0,255,128,114,13,0, + 0,0,41,1,218,3,119,105,110,41,2,90,6,99,121,103, + 119,105,110,90,6,100,97,114,119,105,110,99,0,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,12,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,61,0,0,0,114,56,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,136,0,0,0, - 115,8,0,0,0,4,2,8,1,10,1,255,128,114,64,0, + 3,0,0,0,115,62,0,0,0,116,0,106,1,160,2,116, + 3,161,1,114,50,116,0,106,1,160,2,116,4,161,1,114, + 30,100,1,137,0,110,4,100,2,137,0,135,0,102,1,100, + 3,100,4,132,8,125,0,124,0,83,0,100,5,100,4,132, + 0,125,0,124,0,83,0,41,6,78,90,12,80,89,84,72, + 79,78,67,65,83,69,79,75,115,12,0,0,0,80,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, + 18,136,0,116,3,106,4,118,0,83,0,41,2,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,66,0,0,0,115,4,0,0,0,20,2,255,128,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,115,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, + 70,0,0,0,115,4,0,0,0,4,2,255,128,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,59,0,0,0,115,18,0,0,0,12,1,12, + 1,6,1,4,2,12,2,4,7,8,253,4,3,255,128,114, + 26,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, + 78,0,0,0,115,4,0,0,0,20,2,255,128,114,33,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,26,0,0,0, - 124,0,160,0,116,1,161,1,112,24,124,0,100,1,100,2, - 133,2,25,0,116,2,118,0,83,0,41,4,122,142,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,10,10,32,32, - 32,32,67,111,110,115,105,100,101,114,115,32,97,32,87,105, - 110,100,111,119,115,32,100,114,105,118,101,45,114,101,108,97, - 116,105,118,101,32,112,97,116,104,32,40,110,111,32,100,114, - 105,118,101,44,32,98,117,116,32,115,116,97,114,116,115,32, - 119,105,116,104,32,115,108,97,115,104,41,32,116,111,10,32, - 32,32,32,115,116,105,108,108,32,98,101,32,34,97,98,115, - 111,108,117,116,101,34,46,10,32,32,32,32,114,3,0,0, - 0,233,3,0,0,0,78,41,3,114,23,0,0,0,114,42, - 0,0,0,218,20,95,112,97,116,104,115,101,112,115,95,119, - 105,116,104,95,99,111,108,111,110,114,56,0,0,0,114,7, + 0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,0, + 116,0,124,0,131,1,100,1,107,2,115,16,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, + 28,0,0,0,114,29,0,0,0,78,169,3,114,4,0,0, + 0,114,30,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,83,0,0,0,115,6,0, + 0,0,16,2,12,1,255,128,114,38,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,116,0,124,0,131, + 1,100,1,107,2,115,16,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,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, + 29,0,0,0,78,114,34,0,0,0,114,36,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,88,0, + 0,0,115,6,0,0,0,16,2,12,1,255,128,114,40,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,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, + 106,111,105,110,40,41,46,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, + 115,26,0,0,0,103,0,124,0,93,18,125,1,124,1,114, + 4,124,1,160,0,116,1,161,1,145,2,113,4,83,0,114, + 7,0,0,0,41,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,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,218,10,60,108,105, + 115,116,99,111,109,112,62,96,0,0,0,115,8,0,0,0, + 6,0,6,1,14,255,255,128,122,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,2,218,8,112,97,116, + 104,95,115,101,112,218,4,106,111,105,110,41,1,218,10,112, + 97,116,104,95,112,97,114,116,115,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,94,0,0,0,115,8,0,0,0,10,2,2, + 1,8,255,255,128,114,48,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67, + 0,0,0,115,94,0,0,0,116,0,116,1,131,1,100,1, + 107,2,114,36,124,0,160,2,116,3,161,1,92,3,125,1, + 125,2,125,3,124,1,124,3,102,2,83,0,116,4,124,0, + 131,1,68,0,93,40,125,4,124,4,116,1,118,0,114,44, + 124,0,106,5,124,4,100,1,100,2,141,2,92,2,125,1, + 125,3,124,1,124,3,102,2,2,0,1,0,83,0,100,3, + 124,0,102,2,83,0,41,5,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,114,3,0,0,0,41, + 1,90,8,109,97,120,115,112,108,105,116,114,10,0,0,0, + 78,41,6,114,4,0,0,0,114,42,0,0,0,218,10,114, + 112,97,114,116,105,116,105,111,110,114,45,0,0,0,218,8, + 114,101,118,101,114,115,101,100,218,6,114,115,112,108,105,116, + 41,5,218,4,112,97,116,104,90,5,102,114,111,110,116,218, + 1,95,218,4,116,97,105,108,114,32,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,115,112,108,105,116,100,0,0,0,115,18,0, + 0,0,12,2,16,1,8,1,12,1,8,1,18,1,12,1, + 8,1,255,128,114,55,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,169,1,114,52,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,112,0,0,0,115,4,0,0,0,10,7,255,128, + 114,57,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,12,116,0,124,0,131,1,125,2,87,0,110, + 20,4,0,116,1,121,32,1,0,1,0,1,0,89,0,100, + 1,83,0,48,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,57,0,0,0,218,7,79,83,69,114,114,111,114,218, + 7,115,116,95,109,111,100,101,41,3,114,52,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,122,0,0,0,115,12,0,0,0,2,2,12,1, + 12,1,8,1,14,1,255,128,114,61,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,61,0,0,0,114,56,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,131,0,0,0,115,4,0,0,0, + 10,2,255,128,114,62,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,12,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,61,0,0,0,114,56,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,143,0,0,0,115,4, - 0,0,0,26,6,255,128,114,67,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, - 72,116,7,160,8,124,4,100,3,161,2,143,26,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,16,49,0,115,94,48,0,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,168,1, - 0,1,0,1,0,122,14,116,2,160,12,124,3,161,1,1, - 0,87,0,130,0,4,0,116,11,121,166,1,0,1,0,1, - 0,89,0,130,0,48,0,48,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,68,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,218,7,114,101,112,108,97,99, - 101,114,58,0,0,0,90,6,117,110,108,105,110,107,41,6, - 114,52,0,0,0,114,37,0,0,0,114,60,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,152,0,0,0,115,38,0,0,0,16,5,6,1,22,1, - 4,255,2,2,14,3,40,1,14,1,4,128,12,1,2,1, - 12,1,2,3,12,254,2,1,2,1,2,255,2,1,255,128, - 114,77,0,0,0,105,104,13,0,0,114,39,0,0,0,114, - 29,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,88,1,0,0,124,1,100, - 1,117,1,114,52,116,0,160,1,100,2,116,2,161,2,1, - 0,124,2,100,1,117,1,114,40,100,3,125,3,116,3,124, - 3,131,1,130,1,124,1,114,48,100,4,110,2,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,114,116,11,100,7,131,1,130,1,100, - 4,160,12,124,6,114,126,124,6,110,2,124,8,124,7,124, - 9,103,3,161,1,125,10,124,2,100,1,117,0,114,172,116, - 8,106,13,106,14,100,8,107,2,114,164,100,4,125,2,110, - 8,116,8,106,13,106,14,125,2,116,15,124,2,131,1,125, - 2,124,2,100,4,107,3,114,224,124,2,160,16,161,0,115, - 210,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,144,1,114,76,116,22,124,4,131,1,144,1,115,16,116, - 23,116,4,160,24,161,0,124,4,131,2,125,4,124,4,100, - 5,25,0,100,11,107,2,144,1,114,56,124,4,100,8,25, - 0,116,25,118,1,144,1,114,56,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, + 112,97,116,104,95,105,115,100,105,114,136,0,0,0,115,8, + 0,0,0,4,2,8,1,10,1,255,128,114,64,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,26,0,0,0,124,0, + 160,0,116,1,161,1,112,24,124,0,100,1,100,2,133,2, + 25,0,116,2,118,0,83,0,41,4,122,142,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,10,10,32,32,32,32, + 67,111,110,115,105,100,101,114,115,32,97,32,87,105,110,100, + 111,119,115,32,100,114,105,118,101,45,114,101,108,97,116,105, + 118,101,32,112,97,116,104,32,40,110,111,32,100,114,105,118, + 101,44,32,98,117,116,32,115,116,97,114,116,115,32,119,105, + 116,104,32,115,108,97,115,104,41,32,116,111,10,32,32,32, + 32,115,116,105,108,108,32,98,101,32,34,97,98,115,111,108, + 117,116,101,34,46,10,32,32,32,32,114,3,0,0,0,233, + 3,0,0,0,78,41,3,114,23,0,0,0,114,42,0,0, + 0,218,20,95,112,97,116,104,115,101,112,115,95,119,105,116, + 104,95,99,111,108,111,110,114,56,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,143,0,0,0,115,4,0,0, + 0,26,6,255,128,114,67,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,72,116, + 7,160,8,124,4,100,3,161,2,143,26,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,16,49,0,115,94,48,0,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,168,1,0,1, + 0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,87, + 0,130,0,4,0,116,11,121,166,1,0,1,0,1,0,89, + 0,130,0,48,0,48,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,68,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,218,7,114,101,112,108,97,99,101,114, + 58,0,0,0,90,6,117,110,108,105,110,107,41,6,114,52, + 0,0,0,114,37,0,0,0,114,60,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,152, + 0,0,0,115,36,0,0,0,16,5,6,1,22,1,4,255, + 2,2,14,3,40,1,18,1,12,1,2,1,12,1,2,3, + 12,254,2,1,2,1,2,255,2,1,255,128,114,77,0,0, + 0,105,104,13,0,0,114,39,0,0,0,114,29,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,88,1,0,0,124,1,100,1,117,1,114, + 52,116,0,160,1,100,2,116,2,161,2,1,0,124,2,100, + 1,117,1,114,40,100,3,125,3,116,3,124,3,131,1,130, + 1,124,1,114,48,100,4,110,2,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,114,116,11,100,7,131,1,130,1,100,4,160,12,124, + 6,114,126,124,6,110,2,124,8,124,7,124,9,103,3,161, + 1,125,10,124,2,100,1,117,0,114,172,116,8,106,13,106, + 14,100,8,107,2,114,164,100,4,125,2,110,8,116,8,106, + 13,106,14,125,2,116,15,124,2,131,1,125,2,124,2,100, + 4,107,3,114,224,124,2,160,16,161,0,115,210,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,144,1,114, + 76,116,22,124,4,131,1,144,1,115,16,116,23,116,4,160, + 24,161,0,124,4,131,2,125,4,124,4,100,5,25,0,100, + 11,107,2,144,1,114,56,124,4,100,8,25,0,116,25,118, + 1,144,1,114,56,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, - 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,39,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,55,0,0,0, - 114,49,0,0,0,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,46,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,70,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,67,0,0,0,114,48,0,0,0, - 114,63,0,0,0,114,42,0,0,0,218,6,108,115,116,114, - 105,112,218,8,95,80,89,67,65,67,72,69,41,12,114,52, - 0,0,0,90,14,100,101,98,117,103,95,111,118,101,114,114, - 105,100,101,114,78,0,0,0,218,7,109,101,115,115,97,103, - 101,218,4,104,101,97,100,114,54,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,84, - 1,0,0,115,74,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,12,1,10,9,14,1, - 28,5,12,1,2,4,4,1,8,1,2,1,4,253,12,5, - 255,128,114,102,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,44,1,0,0,116,0,106,1,106,2,100,1,117,0,114, - 20,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,102,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,102,124,1,116,12,124,4,131,1,100, - 1,133,2,25,0,125,1,100,4,125,3,124,3,115,144,116, - 6,124,1,131,1,92,2,125,1,125,5,124,5,116,13,107, - 3,114,144,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,176,116,14,100,8,124,2,155,2,157, - 2,131,1,130,1,124,6,100,9,107,2,144,1,114,12,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,226,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,144,1,115, - 12,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, + 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,114,80,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, - 79,0,0,0,62,2,0,0,0,114,39,0,0,0,114,65, - 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,65,0,0,0,114,39,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,86,0,0,0,114,87,0, - 0,0,114,88,0,0,0,114,18,0,0,0,114,85,0,0, - 0,114,55,0,0,0,114,95,0,0,0,114,41,0,0,0, - 114,42,0,0,0,114,23,0,0,0,114,45,0,0,0,114, - 4,0,0,0,114,97,0,0,0,114,92,0,0,0,218,5, - 99,111,117,110,116,114,51,0,0,0,114,93,0,0,0,114, - 91,0,0,0,218,9,112,97,114,116,105,116,105,111,110,114, - 48,0,0,0,218,15,83,79,85,82,67,69,95,83,85,70, - 70,73,88,69,83,41,10,114,52,0,0,0,114,99,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, - 78,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, - 155,1,0,0,115,62,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,10, - 1,16,1,10,1,4,1,2,1,8,255,16,2,10,1,16, - 1,14,2,18,1,255,128,114,107,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,16,100,2,83,0,124,0,160,1,100,3, - 161,1,92,3,125,1,125,2,125,3,124,1,114,56,124,3, - 160,2,161,0,100,4,100,5,133,2,25,0,100,6,107,3, - 114,60,124,0,83,0,122,12,116,3,124,0,131,1,125,4, - 87,0,110,34,4,0,116,4,116,5,102,2,121,106,1,0, - 1,0,1,0,124,0,100,2,100,5,133,2,25,0,125,4, - 89,0,110,2,48,0,116,6,124,4,131,1,114,120,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,79,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,49,0,0,0,218,5,108,111,119, - 101,114,114,107,0,0,0,114,88,0,0,0,114,92,0,0, - 0,114,62,0,0,0,41,5,218,13,98,121,116,101,99,111, - 100,101,95,112,97,116,104,114,100,0,0,0,114,53,0,0, - 0,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,195,1,0,0,115,22,0, - 0,0,12,7,4,1,16,1,24,1,4,1,2,1,12,1, - 16,1,18,1,16,1,255,128,114,113,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,46,122,10,116,3,124,0,131, - 1,87,0,83,0,4,0,116,4,121,44,1,0,1,0,1, - 0,89,0,100,0,83,0,48,0,124,0,160,0,116,1,116, - 5,131,1,161,1,114,64,124,0,83,0,100,0,83,0,169, - 1,78,41,6,218,8,101,110,100,115,119,105,116,104,218,5, - 116,117,112,108,101,114,106,0,0,0,114,102,0,0,0,114, - 88,0,0,0,114,94,0,0,0,41,1,114,101,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,214,1,0,0, - 115,22,0,0,0,14,1,2,1,10,1,12,1,2,1,4, - 128,2,0,14,1,4,1,4,2,255,128,114,117,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,14, - 116,0,124,0,131,1,106,1,125,1,87,0,110,22,4,0, - 116,2,121,36,1,0,1,0,1,0,100,1,125,1,89,0, - 110,2,48,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,68,0,0,0,233,128,0,0, - 0,78,41,3,114,57,0,0,0,114,59,0,0,0,114,58, - 0,0,0,41,2,114,52,0,0,0,114,60,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,226,1,0,0,115,14, - 0,0,0,2,2,14,1,12,1,10,1,8,3,4,1,255, - 128,114,119,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,30,116,0,106,1,125,2, - 110,8,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,16,124, - 0,106,0,125,1,110,32,124,0,106,0,124,1,107,3,114, - 48,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,121,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,121,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,246,1,0,0,115,20,0,0,0,8,1,8,1,10, - 1,4,1,8,1,2,255,2,1,6,255,24,2,255,128,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,32,125,2,116, - 0,124,1,124,2,131,2,114,4,116,1,124,0,124,2,116, - 2,124,1,124,2,131,2,131,3,1,0,113,4,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,75,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,3,2,0,0,115,12,0,0,0, - 8,1,10,1,20,1,14,1,4,128,255,128,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,41,1,78,41,2,218,10,95, - 98,111,111,116,115,116,114,97,112,114,138,0,0,0,41,3, - 114,127,0,0,0,114,128,0,0,0,114,138,0,0,0,114, - 7,0,0,0,114,126,0,0,0,114,8,0,0,0,218,11, - 95,99,104,101,99,107,95,110,97,109,101,238,1,0,0,115, - 14,0,0,0,14,8,8,10,8,1,8,2,10,6,4,1, - 255,128,114,140,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,60,0,0,0,124,0,160,0,124,1,161,1,92,2,125, - 2,125,3,124,2,100,1,117,0,114,56,116,1,124,3,131, - 1,114,56,100,2,125,4,116,2,160,3,124,4,160,4,124, - 3,100,3,25,0,161,1,116,5,161,2,1,0,124,2,83, - 0,41,4,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, - 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,6,218,11,102,105,110,100,95,108,111,97, - 100,101,114,114,4,0,0,0,114,81,0,0,0,114,82,0, - 0,0,114,70,0,0,0,218,13,73,109,112,111,114,116,87, - 97,114,110,105,110,103,41,5,114,123,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, - 13,2,0,0,115,12,0,0,0,14,10,16,1,4,1,22, - 1,4,1,255,128,114,147,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,64,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,106,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,162,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, + 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,39,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,55,0,0,0,114,49,0,0, + 0,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,46,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,70,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,67,0,0,0,114,48,0,0,0,114,63,0,0, + 0,114,42,0,0,0,218,6,108,115,116,114,105,112,218,8, + 95,80,89,67,65,67,72,69,41,12,114,52,0,0,0,90, + 14,100,101,98,117,103,95,111,118,101,114,114,105,100,101,114, + 78,0,0,0,218,7,109,101,115,115,97,103,101,218,4,104, + 101,97,100,114,54,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,84,1,0,0,115, + 74,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,12,1,10,9,14,1,28,5,12,1, + 2,4,4,1,8,1,2,1,4,253,12,5,255,128,114,102, + 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,44,1,0, + 0,116,0,106,1,106,2,100,1,117,0,114,20,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,102,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,102,124,1,116,12,124,4,131,1,100,1,133,2,25, + 0,125,1,100,4,125,3,124,3,115,144,116,6,124,1,131, + 1,92,2,125,1,125,5,124,5,116,13,107,3,114,144,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,176,116,14,100,8,124,2,155,2,157,2,131,1,130, + 1,124,6,100,9,107,2,144,1,114,12,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,226,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,144,1,115,12,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,80,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,79,0,0,0, + 62,2,0,0,0,114,39,0,0,0,114,65,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,65, + 0,0,0,114,39,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,86,0,0,0,114,87,0,0,0,114,88, + 0,0,0,114,18,0,0,0,114,85,0,0,0,114,55,0, + 0,0,114,95,0,0,0,114,41,0,0,0,114,42,0,0, + 0,114,23,0,0,0,114,45,0,0,0,114,4,0,0,0, + 114,97,0,0,0,114,92,0,0,0,218,5,99,111,117,110, + 116,114,51,0,0,0,114,93,0,0,0,114,91,0,0,0, + 218,9,112,97,114,116,105,116,105,111,110,114,48,0,0,0, + 218,15,83,79,85,82,67,69,95,83,85,70,70,73,88,69, + 83,41,10,114,52,0,0,0,114,99,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,78,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,155,1,0,0, + 115,62,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,10,1,16,1,10, + 1,4,1,2,1,8,255,16,2,10,1,16,1,14,2,18, + 1,255,128,114,107,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,16,100,2,83,0,124,0,160,1,100,3,161,1,92,3, + 125,1,125,2,125,3,124,1,114,56,124,3,160,2,161,0, + 100,4,100,5,133,2,25,0,100,6,107,3,114,60,124,0, + 83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,34, + 4,0,116,4,116,5,102,2,121,106,1,0,1,0,1,0, + 124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,2, + 48,0,116,6,124,4,131,1,114,120,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,79,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,49,0,0,0,218,5,108,111,119,101,114,114,107, + 0,0,0,114,88,0,0,0,114,92,0,0,0,114,62,0, + 0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,112, + 97,116,104,114,100,0,0,0,114,53,0,0,0,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,195,1,0,0,115,22,0,0,0,12,7, + 4,1,16,1,24,1,4,1,2,1,12,1,16,1,18,1, + 16,1,255,128,114,113,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,46,122,10,116,3,124,0,131,1,87,0,83, + 0,4,0,116,4,121,44,1,0,1,0,1,0,89,0,100, + 0,83,0,48,0,124,0,160,0,116,1,116,5,131,1,161, + 1,114,64,124,0,83,0,100,0,83,0,169,1,78,41,6, + 218,8,101,110,100,115,119,105,116,104,218,5,116,117,112,108, + 101,114,106,0,0,0,114,102,0,0,0,114,88,0,0,0, + 114,94,0,0,0,41,1,114,101,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,214,1,0,0,115,18,0,0, + 0,14,1,2,1,10,1,12,1,8,1,14,1,4,1,4, + 2,255,128,114,117,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,14,116,0,124,0,131,1,106,1, + 125,1,87,0,110,22,4,0,116,2,121,36,1,0,1,0, + 1,0,100,1,125,1,89,0,110,2,48,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, + 68,0,0,0,233,128,0,0,0,78,41,3,114,57,0,0, + 0,114,59,0,0,0,114,58,0,0,0,41,2,114,52,0, + 0,0,114,60,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,226,1,0,0,115,14,0,0,0,2,2,14,1,12, + 1,10,1,8,3,4,1,255,128,114,119,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,30,116,0,106,1,125,2,110,8,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,16,124,0,106,0,125,1,110,32,124, + 0,106,0,124,1,107,3,114,48,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,121,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,121, + 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,246,1,0,0,115,20, + 0,0,0,8,1,8,1,10,1,4,1,8,1,2,255,2, + 1,6,255,24,2,255,128,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,32,125,2,116,0,124,1,124,2,131,2,114, + 4,116,1,124,0,124,2,116,2,124,1,124,2,131,2,131, + 3,1,0,113,4,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,75,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,3, + 2,0,0,115,10,0,0,0,8,1,10,1,20,1,18,1, + 255,128,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,41,1, + 78,41,2,218,10,95,98,111,111,116,115,116,114,97,112,114, + 138,0,0,0,41,3,114,127,0,0,0,114,128,0,0,0, + 114,138,0,0,0,114,7,0,0,0,114,126,0,0,0,114, + 8,0,0,0,218,11,95,99,104,101,99,107,95,110,97,109, + 101,238,1,0,0,115,14,0,0,0,14,8,8,10,8,1, + 8,2,10,6,4,1,255,128,114,140,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,60,0,0,0,124,0,160,0,124, + 1,161,1,92,2,125,2,125,3,124,2,100,1,117,0,114, + 56,116,1,124,3,131,1,114,56,100,2,125,4,116,2,160, + 3,124,4,160,4,124,3,100,3,25,0,161,1,116,5,161, + 2,1,0,124,2,83,0,41,4,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,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,6,218,11,102,105, + 110,100,95,108,111,97,100,101,114,114,4,0,0,0,114,81, + 0,0,0,114,82,0,0,0,114,70,0,0,0,218,13,73, + 109,112,111,114,116,87,97,114,110,105,110,103,41,5,114,123, + 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,13,2,0,0,115,12,0,0,0,14, + 10,16,1,4,1,22,1,4,1,255,128,114,147,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,64,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,106,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,162, + 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,28,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,139,0,0,0,218,16,95,118,101,114,98,111,115, + 101,95,109,101,115,115,97,103,101,114,122,0,0,0,114,4, + 0,0,0,218,8,69,79,70,69,114,114,111,114,114,38,0, + 0,0,41,6,114,37,0,0,0,114,121,0,0,0,218,11, + 101,120,99,95,100,101,116,97,105,108,115,90,5,109,97,103, + 105,99,114,98,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,30,2,0,0,115,30, + 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,255, + 128,114,156,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,62,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,120,116,0,124,0,100,2, + 100,7,133,2,25,0,131,1,124,2,100,3,64,0,107,3, + 114,116,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,150, + 0,0,0,233,12,0,0,0,114,27,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,148,0,0,0,78,114,149,0,0,0, + 41,4,114,38,0,0,0,114,139,0,0,0,114,153,0,0, + 0,114,122,0,0,0,41,6,114,37,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,121,0,0,0,114,155,0, + 0,0,114,98,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,63, + 2,0,0,115,20,0,0,0,24,19,10,1,12,1,16,1, + 8,1,22,1,2,255,22,2,8,254,255,128,114,160,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,38,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,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,28,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,139,0,0, - 0,218,16,95,118,101,114,98,111,115,101,95,109,101,115,115, - 97,103,101,114,122,0,0,0,114,4,0,0,0,218,8,69, - 79,70,69,114,114,111,114,114,38,0,0,0,41,6,114,37, - 0,0,0,114,121,0,0,0,218,11,101,120,99,95,100,101, - 116,97,105,108,115,90,5,109,97,103,105,99,114,98,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,30,2,0,0,115,30,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,255,128,114,156,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,120,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,62,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,116,116,0,124,0,100,2,100,7,133,2,25,0, - 131,1,124,2,100,3,64,0,107,3,114,116,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,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,150,0,0,0,233,12,0,0,0,114,27, - 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,148,0,0,0, - 78,114,149,0,0,0,41,4,114,38,0,0,0,114,139,0, - 0,0,114,153,0,0,0,114,122,0,0,0,41,6,114,37, - 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,121, - 0,0,0,114,155,0,0,0,114,98,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,63,2,0,0,115,20,0,0,0,24,19, - 10,1,12,1,16,1,8,1,22,1,2,255,22,2,4,128, - 255,128,114,160,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,38,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,150,0,0,0,114,149, - 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,122,0,0,0,41,4,114,37,0, - 0,0,218,11,115,111,117,114,99,101,95,104,97,115,104,114, - 121,0,0,0,114,155,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,91,2,0,0, - 115,16,0,0,0,16,17,2,1,8,1,4,255,2,2,6, - 254,4,128,255,128,114,162,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,56,116,4,160,5, - 100,1,124,2,161,2,1,0,124,3,100,2,117,1,114,52, - 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,121, - 0,0,0,114,52,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,139,0,0,0,114,153,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,122,0,0,0,114,70,0,0,0,41,5, - 114,37,0,0,0,114,121,0,0,0,114,111,0,0,0,114, - 112,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,115,2,0,0, - 115,20,0,0,0,10,2,10,1,12,1,8,1,12,1,4, - 1,10,2,4,1,6,255,255,128,114,169,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,152,0,0,0,218,6,101,120,116,101,110, - 100,114,33,0,0,0,114,164,0,0,0,218,5,100,117,109, - 112,115,41,4,114,168,0,0,0,218,5,109,116,105,109,101, - 114,159,0,0,0,114,37,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,128,2,0,0,115,14,0,0,0,8,2,14,1,14,1, - 14,1,16,1,4,1,255,128,114,174,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,50,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,150,0,0,0, - 78,41,7,114,170,0,0,0,114,152,0,0,0,114,171,0, - 0,0,114,33,0,0,0,114,4,0,0,0,114,164,0,0, - 0,114,172,0,0,0,41,5,114,168,0,0,0,114,161,0, - 0,0,90,7,99,104,101,99,107,101,100,114,37,0,0,0, - 114,16,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,17,95,99,111,100,101,95,116,111,95,104, - 97,115,104,95,112,121,99,138,2,0,0,115,16,0,0,0, - 8,2,12,1,14,1,16,1,10,1,16,1,4,1,255,128, - 114,175,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,6,0,0,0,67,0,0,0,115,62, - 0,0,0,100,1,100,2,108,0,125,1,116,1,160,2,124, - 0,161,1,106,3,125,2,124,1,160,4,124,2,161,1,125, - 3,116,1,160,5,100,2,100,3,161,2,125,4,124,4,160, - 6,124,0,160,6,124,3,100,1,25,0,161,1,161,1,83, - 0,41,4,122,121,68,101,99,111,100,101,32,98,121,116,101, - 115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,115, - 111,117,114,99,101,32,99,111,100,101,32,97,110,100,32,114, - 101,116,117,114,110,32,116,104,101,32,115,116,114,105,110,103, - 46,10,10,32,32,32,32,85,110,105,118,101,114,115,97,108, - 32,110,101,119,108,105,110,101,32,115,117,112,112,111,114,116, - 32,105,115,32,117,115,101,100,32,105,110,32,116,104,101,32, - 100,101,99,111,100,105,110,103,46,10,32,32,32,32,114,0, - 0,0,0,78,84,41,7,218,8,116,111,107,101,110,105,122, - 101,114,72,0,0,0,90,7,66,121,116,101,115,73,79,90, - 8,114,101,97,100,108,105,110,101,90,15,100,101,116,101,99, - 116,95,101,110,99,111,100,105,110,103,90,25,73,110,99,114, - 101,109,101,110,116,97,108,78,101,119,108,105,110,101,68,101, - 99,111,100,101,114,218,6,100,101,99,111,100,101,41,5,218, - 12,115,111,117,114,99,101,95,98,121,116,101,115,114,176,0, - 0,0,90,21,115,111,117,114,99,101,95,98,121,116,101,115, - 95,114,101,97,100,108,105,110,101,218,8,101,110,99,111,100, - 105,110,103,90,15,110,101,119,108,105,110,101,95,100,101,99, - 111,100,101,114,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,13,100,101,99,111,100,101,95,115,111,117,114, - 99,101,149,2,0,0,115,12,0,0,0,8,5,12,1,10, - 1,12,1,20,1,255,128,114,180,0,0,0,169,2,114,144, - 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,99, - 2,0,0,0,0,0,0,0,2,0,0,0,9,0,0,0, - 8,0,0,0,67,0,0,0,115,8,1,0,0,124,1,100, - 1,117,0,114,56,100,2,125,1,116,0,124,2,100,3,131, - 2,114,66,122,14,124,2,160,1,124,0,161,1,125,1,87, - 0,110,28,4,0,116,2,121,54,1,0,1,0,1,0,89, - 0,110,12,48,0,116,3,160,4,124,1,161,1,125,1,116, - 5,106,6,124,0,124,2,124,1,100,4,141,3,125,4,100, - 5,124,4,95,7,124,2,100,1,117,0,114,148,116,8,131, - 0,68,0,93,40,92,2,125,5,125,6,124,1,160,9,116, - 10,124,6,131,1,161,1,114,102,124,5,124,0,124,1,131, - 2,125,2,124,2,124,4,95,11,1,0,113,148,100,1,83, - 0,124,3,116,12,117,0,114,212,116,0,124,2,100,6,131, - 2,114,218,122,14,124,2,160,13,124,0,161,1,125,7,87, - 0,110,18,4,0,116,2,121,198,1,0,1,0,1,0,89, - 0,110,20,48,0,124,7,114,218,103,0,124,4,95,14,110, - 6,124,3,124,4,95,14,124,4,106,14,103,0,107,2,144, - 1,114,4,124,1,144,1,114,4,116,15,124,1,131,1,100, - 7,25,0,125,8,124,4,106,14,160,16,124,8,161,1,1, - 0,124,4,83,0,41,8,97,61,1,0,0,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,97,32,102,105,108,101, - 32,108,111,99,97,116,105,111,110,46,10,10,32,32,32,32, - 84,111,32,105,110,100,105,99,97,116,101,32,116,104,97,116, - 32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,97, - 32,112,97,99,107,97,103,101,44,32,115,101,116,10,32,32, - 32,32,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,32,116,111,32, - 97,32,108,105,115,116,32,111,102,32,100,105,114,101,99,116, - 111,114,121,32,112,97,116,104,115,46,32,32,65,110,10,32, - 32,32,32,101,109,112,116,121,32,108,105,115,116,32,105,115, - 32,115,117,102,102,105,99,105,101,110,116,44,32,116,104,111, - 117,103,104,32,105,116,115,32,110,111,116,32,111,116,104,101, - 114,119,105,115,101,32,117,115,101,102,117,108,32,116,111,32, - 116,104,101,10,32,32,32,32,105,109,112,111,114,116,32,115, - 121,115,116,101,109,46,10,10,32,32,32,32,84,104,101,32, - 108,111,97,100,101,114,32,109,117,115,116,32,116,97,107,101, - 32,97,32,115,112,101,99,32,97,115,32,105,116,115,32,111, - 110,108,121,32,95,95,105,110,105,116,95,95,40,41,32,97, - 114,103,46,10,10,32,32,32,32,78,122,9,60,117,110,107, - 110,111,119,110,62,218,12,103,101,116,95,102,105,108,101,110, - 97,109,101,169,1,218,6,111,114,105,103,105,110,84,218,10, - 105,115,95,112,97,99,107,97,103,101,114,0,0,0,0,41, - 17,114,133,0,0,0,114,183,0,0,0,114,122,0,0,0, - 114,18,0,0,0,114,85,0,0,0,114,139,0,0,0,218, - 10,77,111,100,117,108,101,83,112,101,99,90,13,95,115,101, - 116,95,102,105,108,101,97,116,116,114,218,27,95,103,101,116, - 95,115,117,112,112,111,114,116,101,100,95,102,105,108,101,95, - 108,111,97,100,101,114,115,114,115,0,0,0,114,116,0,0, - 0,114,144,0,0,0,218,9,95,80,79,80,85,76,65,84, - 69,114,186,0,0,0,114,182,0,0,0,114,55,0,0,0, - 218,6,97,112,112,101,110,100,41,9,114,121,0,0,0,90, - 8,108,111,99,97,116,105,111,110,114,144,0,0,0,114,182, - 0,0,0,218,4,115,112,101,99,218,12,108,111,97,100,101, - 114,95,99,108,97,115,115,218,8,115,117,102,102,105,120,101, - 115,114,186,0,0,0,90,7,100,105,114,110,97,109,101,114, - 7,0,0,0,114,7,0,0,0,114,8,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,166,2,0,0,115,64,0,0,0, - 8,12,4,4,10,1,2,2,14,1,12,1,6,1,10,2, - 16,8,6,1,8,3,14,1,14,1,10,1,6,1,4,1, - 4,2,8,3,10,2,2,1,14,1,12,1,6,1,4,2, - 8,1,6,2,12,1,6,1,12,1,12,1,4,2,255,128, - 114,194,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,88, - 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 2,90,4,100,3,90,5,101,6,111,30,100,4,101,7,118, - 0,90,8,101,9,100,5,100,6,132,0,131,1,90,10,101, - 11,100,7,100,8,132,0,131,1,90,12,101,11,100,14,100, - 10,100,11,132,1,131,1,90,13,101,11,100,15,100,12,100, - 13,132,1,131,1,90,14,100,9,83,0,41,16,218,21,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,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,109,111,100,117,108, - 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116, - 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115, - 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80, - 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101, - 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77, - 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101, - 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104, - 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115, - 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117, - 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68, - 101,98,117,103,122,6,95,100,46,112,121,100,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,50,0,0,0,122,16,116,0,160,1, - 116,0,106,2,124,0,161,2,87,0,83,0,4,0,116,3, - 121,48,1,0,1,0,1,0,116,0,160,1,116,0,106,4, - 124,0,161,2,6,0,89,0,83,0,48,0,114,114,0,0, - 0,41,5,218,6,119,105,110,114,101,103,90,7,79,112,101, - 110,75,101,121,90,17,72,75,69,89,95,67,85,82,82,69, - 78,84,95,85,83,69,82,114,58,0,0,0,90,18,72,75, - 69,89,95,76,79,67,65,76,95,77,65,67,72,73,78,69, - 114,19,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,14,95,111,112,101,110,95,114,101,103,105, - 115,116,114,121,246,2,0,0,115,10,0,0,0,2,2,16, - 1,12,1,20,1,255,128,122,36,87,105,110,100,111,119,115, - 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,95, - 111,112,101,110,95,114,101,103,105,115,116,114,121,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,130,0,0,0,124,0,106,0,114, - 14,124,0,106,1,125,2,110,6,124,0,106,2,125,2,124, - 2,106,3,124,1,100,1,116,4,106,5,100,0,100,2,133, - 2,25,0,22,0,100,3,141,2,125,3,122,60,124,0,160, - 6,124,3,161,1,143,28,125,4,116,7,160,8,124,4,100, - 4,161,2,125,5,87,0,100,0,4,0,4,0,131,3,1, - 0,110,16,49,0,115,94,48,0,1,0,1,0,1,0,89, - 0,1,0,87,0,124,5,83,0,4,0,116,9,121,128,1, - 0,1,0,1,0,89,0,100,0,83,0,48,0,41,5,78, - 122,5,37,100,46,37,100,114,39,0,0,0,41,2,114,143, - 0,0,0,90,11,115,121,115,95,118,101,114,115,105,111,110, - 114,10,0,0,0,41,10,218,11,68,69,66,85,71,95,66, - 85,73,76,68,218,18,82,69,71,73,83,84,82,89,95,75, - 69,89,95,68,69,66,85,71,218,12,82,69,71,73,83,84, - 82,89,95,75,69,89,114,70,0,0,0,114,15,0,0,0, - 218,12,118,101,114,115,105,111,110,95,105,110,102,111,114,197, - 0,0,0,114,196,0,0,0,90,10,81,117,101,114,121,86, - 97,108,117,101,114,58,0,0,0,41,6,218,3,99,108,115, - 114,143,0,0,0,90,12,114,101,103,105,115,116,114,121,95, - 107,101,121,114,20,0,0,0,90,4,104,107,101,121,218,8, - 102,105,108,101,112,97,116,104,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,16,95,115,101,97,114,99,104, - 95,114,101,103,105,115,116,114,121,253,2,0,0,115,26,0, - 0,0,6,2,8,1,6,2,6,1,16,1,6,255,2,2, - 12,1,44,1,4,3,12,254,8,1,255,128,122,38,87,105, - 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110, - 100,101,114,46,95,115,101,97,114,99,104,95,114,101,103,105, - 115,116,114,121,78,99,4,0,0,0,0,0,0,0,0,0, - 0,0,8,0,0,0,8,0,0,0,67,0,0,0,115,118, - 0,0,0,124,0,160,0,124,1,161,1,125,4,124,4,100, - 0,117,0,114,22,100,0,83,0,122,12,116,1,124,4,131, - 1,1,0,87,0,110,20,4,0,116,2,121,54,1,0,1, - 0,1,0,89,0,100,0,83,0,48,0,116,3,131,0,68, - 0,93,50,92,2,125,5,125,6,124,4,160,4,116,5,124, - 6,131,1,161,1,114,62,116,6,106,7,124,1,124,5,124, - 1,124,4,131,2,124,4,100,1,141,3,125,7,124,7,2, - 0,1,0,83,0,100,0,83,0,41,2,78,114,184,0,0, - 0,41,8,114,204,0,0,0,114,57,0,0,0,114,58,0, - 0,0,114,188,0,0,0,114,115,0,0,0,114,116,0,0, - 0,114,139,0,0,0,218,16,115,112,101,99,95,102,114,111, - 109,95,108,111,97,100,101,114,41,8,114,202,0,0,0,114, - 143,0,0,0,114,52,0,0,0,218,6,116,97,114,103,101, - 116,114,203,0,0,0,114,144,0,0,0,114,193,0,0,0, - 114,191,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,9,102,105,110,100,95,115,112,101,99,12, - 3,0,0,115,32,0,0,0,10,2,8,1,4,1,2,1, - 12,1,12,1,8,1,14,1,14,1,6,1,8,1,2,1, - 6,254,8,3,4,128,255,128,122,31,87,105,110,100,111,119, - 115,82,101,103,105,115,116,114,121,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,30,0,0,0,124,0,160,0,124,1,124,2,161, - 2,125,3,124,3,100,1,117,1,114,26,124,3,106,1,83, - 0,100,1,83,0,41,2,122,108,70,105,110,100,32,109,111, - 100,117,108,101,32,110,97,109,101,100,32,105,110,32,116,104, - 101,32,114,101,103,105,115,116,114,121,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,169,2,114,207,0,0,0,114,144,0, - 0,0,169,4,114,202,0,0,0,114,143,0,0,0,114,52, - 0,0,0,114,191,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,11,102,105,110,100,95,109,111, - 100,117,108,101,28,3,0,0,115,10,0,0,0,12,7,8, - 1,6,1,4,2,255,128,122,33,87,105,110,100,111,119,115, - 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,102, - 105,110,100,95,109,111,100,117,108,101,41,2,78,78,41,1, - 78,41,15,114,130,0,0,0,114,129,0,0,0,114,131,0, - 0,0,114,132,0,0,0,114,200,0,0,0,114,199,0,0, - 0,218,11,95,77,83,95,87,73,78,68,79,87,83,218,18, - 69,88,84,69,78,83,73,79,78,95,83,85,70,70,73,88, - 69,83,114,198,0,0,0,218,12,115,116,97,116,105,99,109, - 101,116,104,111,100,114,197,0,0,0,218,11,99,108,97,115, - 115,109,101,116,104,111,100,114,204,0,0,0,114,207,0,0, - 0,114,210,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,195,0,0,0,234, - 2,0,0,115,32,0,0,0,8,0,4,2,2,3,2,255, - 2,4,2,255,12,3,2,2,10,1,2,6,10,1,2,14, - 12,1,2,15,16,1,255,128,114,195,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,48,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,83,0,41,11,218,13,95, - 76,111,97,100,101,114,66,97,115,105,99,115,122,83,66,97, - 115,101,32,99,108,97,115,115,32,111,102,32,99,111,109,109, - 111,110,32,99,111,100,101,32,110,101,101,100,101,100,32,98, - 121,32,98,111,116,104,32,83,111,117,114,99,101,76,111,97, - 100,101,114,32,97,110,100,10,32,32,32,32,83,111,117,114, - 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, - 46,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,64,0,0,0,116, - 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125, - 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,62,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, - 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, - 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104, - 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32, - 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32, - 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,79,0,0,0,114,0,0,0,0,114, - 39,0,0,0,218,8,95,95,105,110,105,116,95,95,78,41, - 4,114,55,0,0,0,114,183,0,0,0,114,51,0,0,0, - 114,49,0,0,0,41,5,114,123,0,0,0,114,143,0,0, - 0,114,101,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, - 186,0,0,0,47,3,0,0,115,10,0,0,0,18,3,16, - 1,14,1,16,1,255,128,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,115,4,0,0,0,100, - 1,83,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,123,0,0,0,114,191, + 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,150,0,0,0,114,149,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,122,0,0,0,41,4,114,37,0,0,0,218,11,115,111, + 117,114,99,101,95,104,97,115,104,114,121,0,0,0,114,155, 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,55,3,0,0,115,4,0,0,0,4,128,255,128,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,36,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,130,0,0,0, - 114,122,0,0,0,114,70,0,0,0,114,139,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,136,0,0,0,41,3,114,123,0,0,0,218,6,109,111, - 100,117,108,101,114,168,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,58,3,0,0,115,16,0,0,0,12,2, - 8,1,6,1,4,1,6,255,16,2,4,128,255,128,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,111,100,117, - 108,101,32,105,115,32,100,101,112,114,101,99,97,116,101,100, - 46,78,41,2,114,139,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,123, - 0,0,0,114,143,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,66,3,0,0,115,4,0,0,0,12,2,255, - 128,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, - 130,0,0,0,114,129,0,0,0,114,131,0,0,0,114,132, - 0,0,0,114,186,0,0,0,114,219,0,0,0,114,224,0, - 0,0,114,227,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,215,0,0,0, - 42,3,0,0,115,14,0,0,0,8,0,4,2,8,3,8, - 8,8,3,12,8,255,128,114,215,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,58,0,0,0,169,2,114,123,0,0,0,114,52, - 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,73,3, - 0,0,115,4,0,0,0,4,6,255,128,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,173,0,0,0,78,41,1,114,230,0, - 0,0,114,229,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,81,3,0,0,115,4,0,0,0,14,12,255,128,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,123,0,0,0,114,112, - 0,0,0,90,10,99,97,99,104,101,95,112,97,116,104,114, + 0,0,218,18,95,118,97,108,105,100,97,116,101,95,104,97, + 115,104,95,112,121,99,91,2,0,0,115,16,0,0,0,16, + 17,2,1,8,1,4,255,2,2,6,254,4,255,255,128,114, + 162,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,56,116,4,160,5,100,1,124,2,161,2, + 1,0,124,3,100,2,117,1,114,52,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,121,0,0,0,114,52,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,139,0,0, + 0,114,153,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,122, + 0,0,0,114,70,0,0,0,41,5,114,37,0,0,0,114, + 121,0,0,0,114,111,0,0,0,114,112,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,115,2,0,0,115,20,0,0,0,10, + 2,10,1,12,1,8,1,12,1,4,1,10,2,4,1,6, + 255,255,128,114,169,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,152, + 0,0,0,218,6,101,120,116,101,110,100,114,33,0,0,0, + 114,164,0,0,0,218,5,100,117,109,112,115,41,4,114,168, + 0,0,0,218,5,109,116,105,109,101,114,159,0,0,0,114, 37,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,95,3,0,0,115,4,0,0,0,12,8,255, - 128,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,115,4,0,0,0,100,1,83, - 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,123,0,0,0,114,52,0,0,0,114,37,0, + 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,128,2,0,0,115, + 14,0,0,0,8,2,14,1,14,1,14,1,16,1,4,1, + 255,128,114,174,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,50,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,150,0,0,0,78,41,7,114,170,0, + 0,0,114,152,0,0,0,114,171,0,0,0,114,33,0,0, + 0,114,4,0,0,0,114,164,0,0,0,114,172,0,0,0, + 41,5,114,168,0,0,0,114,161,0,0,0,90,7,99,104, + 101,99,107,101,100,114,37,0,0,0,114,16,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,17, + 95,99,111,100,101,95,116,111,95,104,97,115,104,95,112,121, + 99,138,2,0,0,115,16,0,0,0,8,2,12,1,14,1, + 16,1,10,1,16,1,4,1,255,128,114,175,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 6,0,0,0,67,0,0,0,115,62,0,0,0,100,1,100, + 2,108,0,125,1,116,1,160,2,124,0,161,1,106,3,125, + 2,124,1,160,4,124,2,161,1,125,3,116,1,160,5,100, + 2,100,3,161,2,125,4,124,4,160,6,124,0,160,6,124, + 3,100,1,25,0,161,1,161,1,83,0,41,4,122,121,68, + 101,99,111,100,101,32,98,121,116,101,115,32,114,101,112,114, + 101,115,101,110,116,105,110,103,32,115,111,117,114,99,101,32, + 99,111,100,101,32,97,110,100,32,114,101,116,117,114,110,32, + 116,104,101,32,115,116,114,105,110,103,46,10,10,32,32,32, + 32,85,110,105,118,101,114,115,97,108,32,110,101,119,108,105, + 110,101,32,115,117,112,112,111,114,116,32,105,115,32,117,115, + 101,100,32,105,110,32,116,104,101,32,100,101,99,111,100,105, + 110,103,46,10,32,32,32,32,114,0,0,0,0,78,84,41, + 7,218,8,116,111,107,101,110,105,122,101,114,72,0,0,0, + 90,7,66,121,116,101,115,73,79,90,8,114,101,97,100,108, + 105,110,101,90,15,100,101,116,101,99,116,95,101,110,99,111, + 100,105,110,103,90,25,73,110,99,114,101,109,101,110,116,97, + 108,78,101,119,108,105,110,101,68,101,99,111,100,101,114,218, + 6,100,101,99,111,100,101,41,5,218,12,115,111,117,114,99, + 101,95,98,121,116,101,115,114,176,0,0,0,90,21,115,111, + 117,114,99,101,95,98,121,116,101,115,95,114,101,97,100,108, + 105,110,101,218,8,101,110,99,111,100,105,110,103,90,15,110, + 101,119,108,105,110,101,95,100,101,99,111,100,101,114,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,13,100, + 101,99,111,100,101,95,115,111,117,114,99,101,149,2,0,0, + 115,12,0,0,0,8,5,12,1,10,1,12,1,20,1,255, + 128,114,180,0,0,0,169,2,114,144,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,99,2,0,0,0,0,0, + 0,0,2,0,0,0,9,0,0,0,8,0,0,0,67,0, + 0,0,115,8,1,0,0,124,1,100,1,117,0,114,56,100, + 2,125,1,116,0,124,2,100,3,131,2,114,66,122,14,124, + 2,160,1,124,0,161,1,125,1,87,0,110,28,4,0,116, + 2,121,54,1,0,1,0,1,0,89,0,110,12,48,0,116, + 3,160,4,124,1,161,1,125,1,116,5,106,6,124,0,124, + 2,124,1,100,4,141,3,125,4,100,5,124,4,95,7,124, + 2,100,1,117,0,114,148,116,8,131,0,68,0,93,40,92, + 2,125,5,125,6,124,1,160,9,116,10,124,6,131,1,161, + 1,114,102,124,5,124,0,124,1,131,2,125,2,124,2,124, + 4,95,11,1,0,113,148,100,1,83,0,124,3,116,12,117, + 0,114,212,116,0,124,2,100,6,131,2,114,218,122,14,124, + 2,160,13,124,0,161,1,125,7,87,0,110,18,4,0,116, + 2,121,198,1,0,1,0,1,0,89,0,110,20,48,0,124, + 7,114,218,103,0,124,4,95,14,110,6,124,3,124,4,95, + 14,124,4,106,14,103,0,107,2,144,1,114,4,124,1,144, + 1,114,4,116,15,124,1,131,1,100,7,25,0,125,8,124, + 4,106,14,160,16,124,8,161,1,1,0,124,4,83,0,41, + 8,97,61,1,0,0,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,97,32,102,105,108,101,32,108,111,99,97,116, + 105,111,110,46,10,10,32,32,32,32,84,111,32,105,110,100, + 105,99,97,116,101,32,116,104,97,116,32,116,104,101,32,109, + 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, + 103,101,44,32,115,101,116,10,32,32,32,32,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,32,116,111,32,97,32,108,105,115,116, + 32,111,102,32,100,105,114,101,99,116,111,114,121,32,112,97, + 116,104,115,46,32,32,65,110,10,32,32,32,32,101,109,112, + 116,121,32,108,105,115,116,32,105,115,32,115,117,102,102,105, + 99,105,101,110,116,44,32,116,104,111,117,103,104,32,105,116, + 115,32,110,111,116,32,111,116,104,101,114,119,105,115,101,32, + 117,115,101,102,117,108,32,116,111,32,116,104,101,10,32,32, + 32,32,105,109,112,111,114,116,32,115,121,115,116,101,109,46, + 10,10,32,32,32,32,84,104,101,32,108,111,97,100,101,114, + 32,109,117,115,116,32,116,97,107,101,32,97,32,115,112,101, + 99,32,97,115,32,105,116,115,32,111,110,108,121,32,95,95, + 105,110,105,116,95,95,40,41,32,97,114,103,46,10,10,32, + 32,32,32,78,122,9,60,117,110,107,110,111,119,110,62,218, + 12,103,101,116,95,102,105,108,101,110,97,109,101,169,1,218, + 6,111,114,105,103,105,110,84,218,10,105,115,95,112,97,99, + 107,97,103,101,114,0,0,0,0,41,17,114,133,0,0,0, + 114,183,0,0,0,114,122,0,0,0,114,18,0,0,0,114, + 85,0,0,0,114,139,0,0,0,218,10,77,111,100,117,108, + 101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,101, + 97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,111, + 114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,114, + 115,114,115,0,0,0,114,116,0,0,0,114,144,0,0,0, + 218,9,95,80,79,80,85,76,65,84,69,114,186,0,0,0, + 114,182,0,0,0,114,55,0,0,0,218,6,97,112,112,101, + 110,100,41,9,114,121,0,0,0,90,8,108,111,99,97,116, + 105,111,110,114,144,0,0,0,114,182,0,0,0,218,4,115, + 112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,115, + 115,218,8,115,117,102,102,105,120,101,115,114,186,0,0,0, + 90,7,100,105,114,110,97,109,101,114,7,0,0,0,114,7, + 0,0,0,114,8,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,166,2,0,0,115,64,0,0,0,8,12,4,4,10,1, + 2,2,14,1,12,1,6,1,10,2,16,8,6,1,8,3, + 14,1,14,1,10,1,6,1,4,1,4,2,8,3,10,2, + 2,1,14,1,12,1,6,1,4,2,8,1,6,2,12,1, + 6,1,12,1,12,1,4,2,255,128,114,194,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,88,0,0,0,101,0,90, + 1,100,0,90,2,100,1,90,3,100,2,90,4,100,3,90, + 5,101,6,111,30,100,4,101,7,118,0,90,8,101,9,100, + 5,100,6,132,0,131,1,90,10,101,11,100,7,100,8,132, + 0,131,1,90,12,101,11,100,14,100,10,100,11,132,1,131, + 1,90,13,101,11,100,15,100,12,100,13,132,1,131,1,90, + 14,100,9,83,0,41,16,218,21,87,105,110,100,111,119,115, + 82,101,103,105,115,116,114,121,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,109,111,100,117,108,101,115,32,100,101,99, + 108,97,114,101,100,32,105,110,32,116,104,101,32,87,105,110, + 100,111,119,115,32,114,101,103,105,115,116,114,121,46,122,59, + 83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,92, + 80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,95, + 118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,115, + 92,123,102,117,108,108,110,97,109,101,125,122,65,83,111,102, + 116,119,97,114,101,92,80,121,116,104,111,110,92,80,121,116, + 104,111,110,67,111,114,101,92,123,115,121,115,95,118,101,114, + 115,105,111,110,125,92,77,111,100,117,108,101,115,92,123,102, + 117,108,108,110,97,109,101,125,92,68,101,98,117,103,122,6, + 95,100,46,112,121,100,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, + 50,0,0,0,122,16,116,0,160,1,116,0,106,2,124,0, + 161,2,87,0,83,0,4,0,116,3,121,48,1,0,1,0, + 1,0,116,0,160,1,116,0,106,4,124,0,161,2,6,0, + 89,0,83,0,48,0,114,114,0,0,0,41,5,218,6,119, + 105,110,114,101,103,90,7,79,112,101,110,75,101,121,90,17, + 72,75,69,89,95,67,85,82,82,69,78,84,95,85,83,69, + 82,114,58,0,0,0,90,18,72,75,69,89,95,76,79,67, + 65,76,95,77,65,67,72,73,78,69,114,19,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,14, + 95,111,112,101,110,95,114,101,103,105,115,116,114,121,246,2, + 0,0,115,10,0,0,0,2,2,16,1,12,1,20,1,255, + 128,122,36,87,105,110,100,111,119,115,82,101,103,105,115,116, + 114,121,70,105,110,100,101,114,46,95,111,112,101,110,95,114, + 101,103,105,115,116,114,121,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,130,0,0,0,124,0,106,0,114,14,124,0,106,1,125, + 2,110,6,124,0,106,2,125,2,124,2,106,3,124,1,100, + 1,116,4,106,5,100,0,100,2,133,2,25,0,22,0,100, + 3,141,2,125,3,122,60,124,0,160,6,124,3,161,1,143, + 28,125,4,116,7,160,8,124,4,100,4,161,2,125,5,87, + 0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,115, + 94,48,0,1,0,1,0,1,0,89,0,1,0,87,0,124, + 5,83,0,4,0,116,9,121,128,1,0,1,0,1,0,89, + 0,100,0,83,0,48,0,41,5,78,122,5,37,100,46,37, + 100,114,39,0,0,0,41,2,114,143,0,0,0,90,11,115, + 121,115,95,118,101,114,115,105,111,110,114,10,0,0,0,41, + 10,218,11,68,69,66,85,71,95,66,85,73,76,68,218,18, + 82,69,71,73,83,84,82,89,95,75,69,89,95,68,69,66, + 85,71,218,12,82,69,71,73,83,84,82,89,95,75,69,89, + 114,70,0,0,0,114,15,0,0,0,218,12,118,101,114,115, + 105,111,110,95,105,110,102,111,114,197,0,0,0,114,196,0, + 0,0,90,10,81,117,101,114,121,86,97,108,117,101,114,58, + 0,0,0,41,6,218,3,99,108,115,114,143,0,0,0,90, + 12,114,101,103,105,115,116,114,121,95,107,101,121,114,20,0, + 0,0,90,4,104,107,101,121,218,8,102,105,108,101,112,97, + 116,104,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,16,95,115,101,97,114,99,104,95,114,101,103,105,115, + 116,114,121,253,2,0,0,115,26,0,0,0,6,2,8,1, + 6,2,6,1,16,1,6,255,2,2,12,1,44,1,4,3, + 12,254,8,1,255,128,122,38,87,105,110,100,111,119,115,82, + 101,103,105,115,116,114,121,70,105,110,100,101,114,46,95,115, + 101,97,114,99,104,95,114,101,103,105,115,116,114,121,78,99, + 4,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0, + 8,0,0,0,67,0,0,0,115,118,0,0,0,124,0,160, + 0,124,1,161,1,125,4,124,4,100,0,117,0,114,22,100, + 0,83,0,122,12,116,1,124,4,131,1,1,0,87,0,110, + 20,4,0,116,2,121,54,1,0,1,0,1,0,89,0,100, + 0,83,0,48,0,116,3,131,0,68,0,93,50,92,2,125, + 5,125,6,124,4,160,4,116,5,124,6,131,1,161,1,114, + 62,116,6,106,7,124,1,124,5,124,1,124,4,131,2,124, + 4,100,1,141,3,125,7,124,7,2,0,1,0,83,0,100, + 0,83,0,41,2,78,114,184,0,0,0,41,8,114,204,0, + 0,0,114,57,0,0,0,114,58,0,0,0,114,188,0,0, + 0,114,115,0,0,0,114,116,0,0,0,114,139,0,0,0, + 218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,100, + 101,114,41,8,114,202,0,0,0,114,143,0,0,0,114,52, + 0,0,0,218,6,116,97,114,103,101,116,114,203,0,0,0, + 114,144,0,0,0,114,193,0,0,0,114,191,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,9, + 102,105,110,100,95,115,112,101,99,12,3,0,0,115,32,0, + 0,0,10,2,8,1,4,1,2,1,12,1,12,1,8,1, + 14,1,14,1,6,1,8,1,2,1,6,254,8,3,4,251, + 255,128,122,31,87,105,110,100,111,119,115,82,101,103,105,115, + 116,114,121,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,30,0,0, + 0,124,0,160,0,124,1,124,2,161,2,125,3,124,3,100, + 1,117,1,114,26,124,3,106,1,83,0,100,1,83,0,41, + 2,122,108,70,105,110,100,32,109,111,100,117,108,101,32,110, + 97,109,101,100,32,105,110,32,116,104,101,32,114,101,103,105, + 115,116,114,121,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, + 169,2,114,207,0,0,0,114,144,0,0,0,169,4,114,202, + 0,0,0,114,143,0,0,0,114,52,0,0,0,114,191,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,232,0,0,0,105,3,0,0,115,4,0,0,0,4, - 128,255,128,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,20,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,68,1,0, - 125,4,1,0,122,14,116,3,100,1,124,1,100,2,141,2, - 124,4,130,2,100,3,125,4,126,4,48,0,48,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, - 120,0,0,0,78,41,5,114,183,0,0,0,218,8,103,101, - 116,95,100,97,116,97,114,58,0,0,0,114,122,0,0,0, - 114,180,0,0,0,41,5,114,123,0,0,0,114,143,0,0, - 0,114,52,0,0,0,114,178,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,112,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,10,128,255,128,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,109,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,222,0,0,0,84,41,2,218,12,100,111,110,116,95, - 105,110,104,101,114,105,116,114,89,0,0,0,78,41,3,114, - 139,0,0,0,114,221,0,0,0,218,7,99,111,109,112,105, - 108,101,41,4,114,123,0,0,0,114,37,0,0,0,114,52, - 0,0,0,114,237,0,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,122,3,0,0,115,8,0,0,0, - 12,5,4,1,6,255,255,128,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,28, - 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,12,116,1,124,2,131,1,125,8,87,0,110,24,4, - 0,116,2,121,66,1,0,1,0,1,0,100,1,125,8,89, - 0,144,1,110,42,48,0,122,14,124,0,160,3,124,2,161, - 1,125,9,87,0,110,20,4,0,116,4,121,102,1,0,1, - 0,1,0,89,0,144,1,110,6,48,0,116,5,124,9,100, - 4,25,0,131,1,125,3,122,14,124,0,160,6,124,8,161, - 1,125,10,87,0,110,18,4,0,116,4,121,148,1,0,1, - 0,1,0,89,0,110,216,48,0,124,1,124,8,100,5,156, - 2,125,11,122,148,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,144, - 1,114,30,124,12,100,9,64,0,100,8,107,3,125,7,116, - 9,106,10,100,10,107,3,144,1,114,50,124,7,115,248,116, - 9,106,10,100,11,107,2,144,1,114,50,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, - 20,116,14,124,10,124,3,124,9,100,12,25,0,124,1,124, - 11,131,5,1,0,87,0,110,24,4,0,116,15,116,16,102, - 2,144,1,121,76,1,0,1,0,1,0,89,0,110,32,48, - 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,144,1,114,128,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,144, - 2,115,24,124,8,100,1,117,1,144,2,114,24,124,3,100, - 1,117,1,144,2,114,24,124,6,144,1,114,220,124,5,100, - 1,117,0,144,1,114,206,116,9,160,11,124,4,161,1,125, - 5,116,23,124,14,124,5,124,7,131,3,125,10,110,16,116, - 24,124,14,124,3,116,25,124,4,131,1,131,3,125,10,122, - 20,124,0,160,26,124,2,124,8,124,10,161,3,1,0,87, - 0,124,14,83,0,4,0,116,2,144,2,121,22,1,0,1, - 0,1,0,89,0,124,14,83,0,48,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,173,0,0,0,114,163,0,0,0,114,149, - 0,0,0,114,3,0,0,0,114,0,0,0,0,114,39,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,121,0,0,0,114,111,0, - 0,0,114,112,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,183, - 0,0,0,114,102,0,0,0,114,88,0,0,0,114,231,0, - 0,0,114,58,0,0,0,114,30,0,0,0,114,234,0,0, - 0,114,156,0,0,0,218,10,109,101,109,111,114,121,118,105, - 101,119,114,167,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,161, - 0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,95, - 78,85,77,66,69,82,114,162,0,0,0,114,160,0,0,0, - 114,122,0,0,0,114,154,0,0,0,114,139,0,0,0,114, - 153,0,0,0,114,169,0,0,0,114,240,0,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,175,0,0,0,114,174,0, - 0,0,114,4,0,0,0,114,233,0,0,0,41,15,114,123, - 0,0,0,114,143,0,0,0,114,112,0,0,0,114,158,0, - 0,0,114,178,0,0,0,114,161,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,111,0,0,0,218,2,115,116,114, - 37,0,0,0,114,155,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,220,0,0,0,130,3,0,0,115, - 160,0,0,0,10,7,4,1,4,1,4,1,4,1,4,1, - 2,1,12,1,12,1,12,1,2,2,14,1,12,1,8,1, - 12,2,2,1,14,1,12,1,6,1,2,3,2,1,6,254, - 2,4,12,1,16,1,12,1,6,1,12,1,12,1,2,1, - 2,255,8,2,4,254,10,3,4,1,2,1,2,1,4,254, - 8,4,2,1,6,255,2,3,2,1,2,1,6,1,2,1, - 2,1,8,251,18,7,6,1,8,2,2,1,4,255,6,2, - 2,1,2,1,6,254,10,3,10,1,12,1,12,1,18,1, - 6,1,4,255,6,2,10,1,10,1,14,1,6,2,6,1, - 4,255,2,2,16,1,4,3,14,254,2,1,4,1,2,255, - 4,1,255,128,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,130, - 0,0,0,114,129,0,0,0,114,131,0,0,0,114,230,0, - 0,0,114,231,0,0,0,114,233,0,0,0,114,232,0,0, - 0,114,236,0,0,0,114,240,0,0,0,114,220,0,0,0, + 0,218,11,102,105,110,100,95,109,111,100,117,108,101,28,3, + 0,0,115,10,0,0,0,12,7,8,1,6,1,4,2,255, + 128,122,33,87,105,110,100,111,119,115,82,101,103,105,115,116, + 114,121,70,105,110,100,101,114,46,102,105,110,100,95,109,111, + 100,117,108,101,41,2,78,78,41,1,78,41,15,114,130,0, + 0,0,114,129,0,0,0,114,131,0,0,0,114,132,0,0, + 0,114,200,0,0,0,114,199,0,0,0,218,11,95,77,83, + 95,87,73,78,68,79,87,83,218,18,69,88,84,69,78,83, + 73,79,78,95,83,85,70,70,73,88,69,83,114,198,0,0, + 0,218,12,115,116,97,116,105,99,109,101,116,104,111,100,114, + 197,0,0,0,218,11,99,108,97,115,115,109,101,116,104,111, + 100,114,204,0,0,0,114,207,0,0,0,114,210,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,228,0,0,0,71,3,0,0,115,18,0, - 0,0,8,0,8,2,8,8,8,14,8,10,8,7,14,10, - 12,8,255,128,114,228,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,163,0,0,0,41,3,114, - 123,0,0,0,114,143,0,0,0,114,52,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,216,0, - 0,0,220,3,0,0,115,8,0,0,0,6,3,6,1,4, - 128,255,128,122,19,70,105,108,101,76,111,97,100,101,114,46, + 8,0,0,0,114,195,0,0,0,234,2,0,0,115,32,0, + 0,0,8,0,4,2,2,3,2,255,2,4,2,255,12,3, + 2,2,10,1,2,6,10,1,2,14,12,1,2,15,16,1, + 255,128,114,195,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,48,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,83,0,41,11,218,13,95,76,111,97,100,101,114, + 66,97,115,105,99,115,122,83,66,97,115,101,32,99,108,97, + 115,115,32,111,102,32,99,111,109,109,111,110,32,99,111,100, + 101,32,110,101,101,100,101,100,32,98,121,32,98,111,116,104, + 32,83,111,117,114,99,101,76,111,97,100,101,114,32,97,110, + 100,10,32,32,32,32,83,111,117,114,99,101,108,101,115,115, + 70,105,108,101,76,111,97,100,101,114,46,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,64,0,0,0,116,0,124,0,160,1,124, + 1,161,1,131,1,100,1,25,0,125,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, + 62,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,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,110,103,32,105,102,10, + 32,32,32,32,32,32,32,32,116,104,101,32,112,97,116,104, + 32,114,101,116,117,114,110,101,100,32,98,121,32,103,101,116, + 95,102,105,108,101,110,97,109,101,32,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, + 79,0,0,0,114,0,0,0,0,114,39,0,0,0,218,8, + 95,95,105,110,105,116,95,95,78,41,4,114,55,0,0,0, + 114,183,0,0,0,114,51,0,0,0,114,49,0,0,0,41, + 5,114,123,0,0,0,114,143,0,0,0,114,101,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,186,0,0,0,47,3, + 0,0,115,10,0,0,0,18,3,16,1,14,1,16,1,255, + 128,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,115,4,0,0,0,100,1,83,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,123,0,0,0,114,191,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,55,3,0,0,115, + 4,0,0,0,4,128,255,128,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,36,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,130,0,0,0,114,122,0,0,0,114, + 70,0,0,0,114,139,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,136,0,0,0,41, + 3,114,123,0,0,0,218,6,109,111,100,117,108,101,114,168, + 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,58, + 3,0,0,115,14,0,0,0,12,2,8,1,6,1,4,1, + 6,255,20,2,255,128,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,111,100,117,108,101,32,105,115,32,100,101, + 112,114,101,99,97,116,101,100,46,78,41,2,114,139,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,123,0,0,0,114,143,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,66,3,0,0, + 115,4,0,0,0,12,2,255,128,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,130,0,0,0,114,129,0,0, + 0,114,131,0,0,0,114,132,0,0,0,114,186,0,0,0, + 114,219,0,0,0,114,224,0,0,0,114,227,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,215,0,0,0,42,3,0,0,115,14,0,0, + 0,8,0,4,2,8,3,8,8,8,3,12,8,255,128,114, + 215,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,58,0,0,0,169, + 2,114,123,0,0,0,114,52,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,73,3,0,0,115,4,0,0,0,4, + 6,255,128,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,173,0, + 0,0,78,41,1,114,230,0,0,0,114,229,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,81,3,0,0,115,4, + 0,0,0,14,12,255,128,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,123,0,0,0,114,112,0,0,0,90,10,99,97,99, + 104,101,95,112,97,116,104,114,37,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,95,3,0,0, + 115,4,0,0,0,12,8,255,128,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, + 115,4,0,0,0,100,1,83,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,123,0,0,0, + 114,52,0,0,0,114,37,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,232,0,0,0,105,3, + 0,0,115,4,0,0,0,4,128,255,128,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,20,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,68,1,0,125,4,1,0,122,14,116,3, + 100,1,124,1,100,2,141,2,124,4,130,2,100,3,125,4, + 126,4,48,0,48,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,120,0,0,0,78,41,5,114, + 183,0,0,0,218,8,103,101,116,95,100,97,116,97,114,58, + 0,0,0,114,122,0,0,0,114,180,0,0,0,41,5,114, + 123,0,0,0,114,143,0,0,0,114,52,0,0,0,114,178, + 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,112,3,0,0,115,26,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,255,128,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, + 109,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,222,0,0,0, + 84,41,2,218,12,100,111,110,116,95,105,110,104,101,114,105, + 116,114,89,0,0,0,78,41,3,114,139,0,0,0,114,221, + 0,0,0,218,7,99,111,109,112,105,108,101,41,4,114,123, + 0,0,0,114,37,0,0,0,114,52,0,0,0,114,237,0, + 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,122,3,0,0,115,8,0,0,0,12,5,4,1,6,255, + 255,128,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,28,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,12,116,1,124, + 2,131,1,125,8,87,0,110,24,4,0,116,2,121,66,1, + 0,1,0,1,0,100,1,125,8,89,0,144,1,110,42,48, + 0,122,14,124,0,160,3,124,2,161,1,125,9,87,0,110, + 20,4,0,116,4,121,102,1,0,1,0,1,0,89,0,144, + 1,110,6,48,0,116,5,124,9,100,4,25,0,131,1,125, + 3,122,14,124,0,160,6,124,8,161,1,125,10,87,0,110, + 18,4,0,116,4,121,148,1,0,1,0,1,0,89,0,110, + 216,48,0,124,1,124,8,100,5,156,2,125,11,122,148,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,144,1,114,30,124,12,100, + 9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,107, + 3,144,1,114,50,124,7,115,248,116,9,106,10,100,11,107, + 2,144,1,114,50,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,20,116,14,124,10,124, + 3,124,9,100,12,25,0,124,1,124,11,131,5,1,0,87, + 0,110,24,4,0,116,15,116,16,102,2,144,1,121,76,1, + 0,1,0,1,0,89,0,110,32,48,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,144, + 1,114,128,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,144,2,115,24,124,8,100, + 1,117,1,144,2,114,24,124,3,100,1,117,1,144,2,114, + 24,124,6,144,1,114,220,124,5,100,1,117,0,144,1,114, + 206,116,9,160,11,124,4,161,1,125,5,116,23,124,14,124, + 5,124,7,131,3,125,10,110,16,116,24,124,14,124,3,116, + 25,124,4,131,1,131,3,125,10,122,20,124,0,160,26,124, + 2,124,8,124,10,161,3,1,0,87,0,124,14,83,0,4, + 0,116,2,144,2,121,22,1,0,1,0,1,0,89,0,124, + 14,83,0,48,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,173, + 0,0,0,114,163,0,0,0,114,149,0,0,0,114,3,0, + 0,0,114,0,0,0,0,114,39,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,121,0,0,0,114,111,0,0,0,114,112,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,183,0,0,0,114,102,0, + 0,0,114,88,0,0,0,114,231,0,0,0,114,58,0,0, + 0,114,30,0,0,0,114,234,0,0,0,114,156,0,0,0, + 218,10,109,101,109,111,114,121,118,105,101,119,114,167,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,161,0,0,0,218,17,95, + 82,65,87,95,77,65,71,73,67,95,78,85,77,66,69,82, + 114,162,0,0,0,114,160,0,0,0,114,122,0,0,0,114, + 154,0,0,0,114,139,0,0,0,114,153,0,0,0,114,169, + 0,0,0,114,240,0,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,175,0,0,0,114,174,0,0,0,114,4,0,0, + 0,114,233,0,0,0,41,15,114,123,0,0,0,114,143,0, + 0,0,114,112,0,0,0,114,158,0,0,0,114,178,0,0, + 0,114,161,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,111,0,0,0,218,2,115,116,114,37,0,0,0,114,155, + 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,220,0,0,0,130,3,0,0,115,160,0,0,0,10,7, + 4,1,4,1,4,1,4,1,4,1,2,1,12,1,12,1, + 12,1,2,2,14,1,12,1,8,1,12,2,2,1,14,1, + 12,1,6,1,2,3,2,1,6,254,2,4,12,1,16,1, + 12,1,6,1,12,1,12,1,2,1,2,255,8,2,4,254, + 10,3,4,1,2,1,2,1,4,254,8,4,2,1,6,255, + 2,3,2,1,2,1,6,1,2,1,2,1,8,251,18,7, + 6,1,8,2,2,1,4,255,6,2,2,1,2,1,6,254, + 10,3,10,1,12,1,12,1,18,1,6,1,4,255,6,2, + 10,1,10,1,14,1,6,2,6,1,4,255,2,2,16,1, + 4,3,14,254,2,1,4,1,2,255,4,1,255,128,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,130,0,0,0,114,129,0, + 0,0,114,131,0,0,0,114,230,0,0,0,114,231,0,0, + 0,114,233,0,0,0,114,232,0,0,0,114,236,0,0,0, + 114,240,0,0,0,114,220,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,228, + 0,0,0,71,3,0,0,115,18,0,0,0,8,0,8,2, + 8,8,8,14,8,10,8,7,14,10,12,8,255,128,114,228, + 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,163,0,0,0,41,3,114,123,0,0,0,114,143, + 0,0,0,114,52,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,216,0,0,0,220,3,0,0, + 115,6,0,0,0,6,3,10,1,255,128,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,115,24,0,0,0,124,0, + 106,0,124,1,106,0,107,2,111,22,124,0,106,1,124,1, + 106,1,107,2,83,0,114,114,0,0,0,169,2,218,9,95, + 95,99,108,97,115,115,95,95,114,136,0,0,0,169,2,114, + 123,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,226,3,0,0,115,8,0,0,0,12,1,10,1,2, + 255,255,128,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,115, + 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,114,0,0,0,169,3,218, + 4,104,97,115,104,114,121,0,0,0,114,52,0,0,0,169, + 1,114,123,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,230, + 3,0,0,115,4,0,0,0,20,1,255,128,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,246,0,0,0,114,227,0,0,0,114,226,0,0,0, + 169,1,114,248,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,227,0,0,0,233,3,0,0,115,4,0,0,0,16, + 10,255,128,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,115,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,56, + 0,0,0,114,226,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,183,0,0,0,245,3,0,0, + 115,4,0,0,0,6,3,255,128,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,72,116,3, + 160,4,116,5,124,1,131,1,161,1,143,24,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,58,48,0,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,24,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,114, + 48,0,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,165,0,0,0,114,228,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,72,0,0,0,90,9,111,112,101,110,95,99,111,100,101, + 114,90,0,0,0,90,4,114,101,97,100,114,73,0,0,0, + 41,3,114,123,0,0,0,114,52,0,0,0,114,76,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,234,0,0,0,250,3,0,0,115,14,0,0,0,14,2, + 16,1,42,1,14,2,38,1,4,128,255,128,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,90,17,105,109,112, + 111,114,116,108,105,98,46,114,101,97,100,101,114,115,114,4, + 1,0,0,41,3,114,123,0,0,0,114,223,0,0,0,114, + 4,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,3,4,0,0,115,6,0,0, + 0,12,2,8,1,255,128,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,130,0,0,0,114,129, + 0,0,0,114,131,0,0,0,114,132,0,0,0,114,216,0, + 0,0,114,250,0,0,0,114,254,0,0,0,114,140,0,0, + 0,114,227,0,0,0,114,183,0,0,0,114,234,0,0,0, + 114,5,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,0, + 1,0,0,114,8,0,0,0,114,246,0,0,0,215,3,0, + 0,115,26,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,255,128, + 114,246,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,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,173,0,0,0,114,241,0,0,0,78,41,3,114,57,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,123,0,0,0,114,52,0,0, + 0,114,245,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,231,0,0,0,13,4,0,0,115,6, + 0,0,0,8,2,14,1,255,128,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,119,0,0,0,114, + 232,0,0,0,41,5,114,123,0,0,0,114,112,0,0,0, + 114,111,0,0,0,114,37,0,0,0,114,60,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,233, + 0,0,0,18,4,0,0,115,6,0,0,0,8,2,16,1, + 255,128,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,68,0,0,0,114,8,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,248,0,0,0,116,0,124,1, + 131,1,92,2,125,4,125,5,103,0,125,6,124,4,114,52, + 116,1,124,4,131,1,115,52,116,0,124,4,131,1,92,2, + 125,4,125,7,124,6,160,2,124,7,161,1,1,0,113,16, + 116,3,124,6,131,1,68,0,93,96,125,7,116,4,124,4, + 124,7,131,2,125,4,122,14,116,5,160,6,124,4,161,1, + 1,0,87,0,113,60,4,0,116,7,121,106,1,0,1,0, + 1,0,89,0,113,60,4,0,116,8,121,246,1,0,125,8, + 1,0,122,30,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,48,0,122,30,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,240, + 1,0,125,8,1,0,122,28,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,48,0,48,0,100,2, + 83,0,48,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,55,0,0,0,114,64,0,0,0,114,190,0,0,0, + 114,50,0,0,0,114,48,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,58,0,0,0,114,139,0,0, + 0,114,153,0,0,0,114,77,0,0,0,41,9,114,123,0, + 0,0,114,52,0,0,0,114,37,0,0,0,114,9,1,0, + 0,218,6,112,97,114,101,110,116,114,101,0,0,0,114,47, + 0,0,0,114,43,0,0,0,114,235,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,232,0,0, + 0,23,4,0,0,115,58,0,0,0,12,2,4,1,12,2, + 12,1,12,1,12,2,10,1,2,1,14,1,12,1,4,2, + 14,1,6,3,4,1,4,255,16,2,8,128,2,1,12,1, + 18,1,14,1,8,2,2,1,18,255,8,128,2,254,4,255, + 2,248,255,128,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,130,0,0,0,114,129,0,0,0,114,131,0,0, + 0,114,132,0,0,0,114,231,0,0,0,114,233,0,0,0, + 114,232,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,6,1,0,0,9,4, + 0,0,115,12,0,0,0,8,0,4,2,8,2,8,5,18, + 5,255,128,114,6,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,163,0,0,0,114,149,0,0,0,41,2,114,121, + 0,0,0,114,111,0,0,0,41,5,114,183,0,0,0,114, + 234,0,0,0,114,156,0,0,0,114,169,0,0,0,114,242, + 0,0,0,41,5,114,123,0,0,0,114,143,0,0,0,114, + 52,0,0,0,114,37,0,0,0,114,155,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,220,0, + 0,0,58,4,0,0,115,24,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,255,128,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,115,4,0,0,0, + 100,1,83,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,226,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,236,0,0,0,74,4, + 0,0,115,4,0,0,0,4,2,255,128,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, + 130,0,0,0,114,129,0,0,0,114,131,0,0,0,114,132, + 0,0,0,114,220,0,0,0,114,236,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,12,1,0,0,54,4,0,0,115,10,0,0,0,8, + 0,4,2,8,2,12,16,255,128,114,12,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,3,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,114,0,0, + 0,114,163,0,0,0,41,3,114,123,0,0,0,114,121,0, + 0,0,114,52,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,216,0,0,0,87,4,0,0,115, + 6,0,0,0,6,1,10,1,255,128,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,115,24,0,0,0,124,0,106,0,124,1,106,0,107,2, 111,22,124,0,106,1,124,1,106,1,107,2,83,0,114,114, - 0,0,0,169,2,218,9,95,95,99,108,97,115,115,95,95, - 114,136,0,0,0,169,2,114,123,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,226,3,0,0,115,8, - 0,0,0,12,1,10,1,2,255,255,128,122,17,70,105,108, + 0,0,0,114,247,0,0,0,114,249,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,250,0,0, + 0,91,4,0,0,115,8,0,0,0,12,1,10,1,2,255, + 255,128,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,115,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,114,0,0,0,169,3,218,4,104,97,115,104,114,121,0, - 0,0,114,52,0,0,0,169,1,114,123,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,230,3,0,0,115,4,0,0,0, - 20,1,255,128,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,246,0,0,0,114,227, - 0,0,0,114,226,0,0,0,169,1,114,248,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,227,0,0,0,233,3, - 0,0,115,4,0,0,0,16,10,255,128,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,115,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,56,0,0,0,114,226,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 183,0,0,0,245,3,0,0,115,4,0,0,0,6,3,255, - 128,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,72,116,3,160,4,116,5,124,1,131,1, - 161,1,143,24,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,58, - 48,0,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,24,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,114,48,0,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,165,0,0,0,114,228, - 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,72,0,0,0,90,9,111, - 112,101,110,95,99,111,100,101,114,90,0,0,0,90,4,114, - 101,97,100,114,73,0,0,0,41,3,114,123,0,0,0,114, - 52,0,0,0,114,76,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,234,0,0,0,250,3,0, - 0,115,16,0,0,0,14,2,16,1,38,1,4,128,14,2, - 38,1,4,128,255,128,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,90,17,105,109,112,111,114,116,108,105,98, - 46,114,101,97,100,101,114,115,114,4,1,0,0,41,3,114, - 123,0,0,0,114,223,0,0,0,114,4,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,3,4,0,0,115,6,0,0,0,12,2,8,1,255, - 128,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,130,0,0,0,114,129,0,0,0,114,131,0, - 0,0,114,132,0,0,0,114,216,0,0,0,114,250,0,0, - 0,114,254,0,0,0,114,140,0,0,0,114,227,0,0,0, - 114,183,0,0,0,114,234,0,0,0,114,5,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,0,1,0,0,114,8,0, - 0,0,114,246,0,0,0,215,3,0,0,115,26,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,255,128,114,246,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,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,173,0,0,0,114, - 241,0,0,0,78,41,3,114,57,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,123,0,0,0,114,52,0,0,0,114,245,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 231,0,0,0,13,4,0,0,115,6,0,0,0,8,2,14, - 1,255,128,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,119,0,0,0,114,232,0,0,0,41,5, - 114,123,0,0,0,114,112,0,0,0,114,111,0,0,0,114, - 37,0,0,0,114,60,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,233,0,0,0,18,4,0, - 0,115,6,0,0,0,8,2,16,1,255,128,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,68, - 0,0,0,114,8,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,244,0,0,0,116,0,124,1,131,1,92,2,125,4, - 125,5,103,0,125,6,124,4,114,52,116,1,124,4,131,1, - 115,52,116,0,124,4,131,1,92,2,125,4,125,7,124,6, - 160,2,124,7,161,1,1,0,113,16,116,3,124,6,131,1, - 68,0,93,98,125,7,116,4,124,4,124,7,131,2,125,4, - 122,14,116,5,160,6,124,4,161,1,1,0,87,0,113,60, - 4,0,116,7,121,106,1,0,1,0,1,0,89,0,113,60, - 4,0,116,8,121,158,1,0,125,8,1,0,122,30,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,48,0,48,0,122,30,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,242,1,0,125,8, - 1,0,122,28,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,48,0,48,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,55,0,0,0,114,64,0,0, - 0,114,190,0,0,0,114,50,0,0,0,114,48,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,58,0, - 0,0,114,139,0,0,0,114,153,0,0,0,114,77,0,0, - 0,41,9,114,123,0,0,0,114,52,0,0,0,114,37,0, - 0,0,114,9,1,0,0,218,6,112,97,114,101,110,116,114, - 101,0,0,0,114,47,0,0,0,114,43,0,0,0,114,235, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,232,0,0,0,23,4,0,0,115,54,0,0,0, - 12,2,4,1,12,2,12,1,12,1,12,2,10,1,2,1, - 14,1,12,1,4,2,14,1,6,3,4,1,4,255,16,2, - 10,128,2,1,12,1,14,1,4,128,14,1,8,2,2,1, - 8,255,20,128,255,128,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,130,0,0,0,114,129,0,0,0,114,131, - 0,0,0,114,132,0,0,0,114,231,0,0,0,114,233,0, - 0,0,114,232,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,6,1,0,0, - 9,4,0,0,115,12,0,0,0,8,0,4,2,8,2,8, - 5,18,5,255,128,114,6,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,163,0,0,0,114,149,0,0,0,41,2, - 114,121,0,0,0,114,111,0,0,0,41,5,114,183,0,0, - 0,114,234,0,0,0,114,156,0,0,0,114,169,0,0,0, - 114,242,0,0,0,41,5,114,123,0,0,0,114,143,0,0, - 0,114,52,0,0,0,114,37,0,0,0,114,155,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 220,0,0,0,58,4,0,0,115,24,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,255,128,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,115,4,0, - 0,0,100,1,83,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,226,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,0, - 74,4,0,0,115,4,0,0,0,4,2,255,128,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,130,0,0,0,114,129,0,0,0,114,131,0,0,0, - 114,132,0,0,0,114,220,0,0,0,114,236,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,12,1,0,0,54,4,0,0,115,10,0,0, - 0,8,0,4,2,8,2,12,16,255,128,114,12,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,3,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,114, - 0,0,0,114,163,0,0,0,41,3,114,123,0,0,0,114, - 121,0,0,0,114,52,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,216,0,0,0,87,4,0, - 0,115,8,0,0,0,6,1,6,1,4,128,255,128,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,115,24,0,0,0,124,0,106,0,124,1, - 106,0,107,2,111,22,124,0,106,1,124,1,106,1,107,2, - 83,0,114,114,0,0,0,114,247,0,0,0,114,249,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,250,0,0,0,91,4,0,0,115,8,0,0,0,12,1, - 10,1,2,255,255,128,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,115,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,114,0,0,0,114,251,0,0,0,114,253, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,254,0,0,0,95,4,0,0,115,4,0,0,0, - 20,1,255,128,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, + 114,114,0,0,0,114,251,0,0,0,114,253,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,254, + 0,0,0,95,4,0,0,115,4,0,0,0,20,1,255,128, + 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,139,0,0,0,114,221,0,0,0,114, + 167,0,0,0,90,14,99,114,101,97,116,101,95,100,121,110, + 97,109,105,99,114,153,0,0,0,114,121,0,0,0,114,52, + 0,0,0,41,3,114,123,0,0,0,114,191,0,0,0,114, + 223,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,219,0,0,0,98,4,0,0,115,16,0,0, + 0,4,2,6,1,4,255,6,2,8,1,4,255,4,2,255, + 128,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,139,0,0,0,114,221,0,0,0,114, + 167,0,0,0,90,12,101,120,101,99,95,100,121,110,97,109, + 105,99,114,153,0,0,0,114,121,0,0,0,114,52,0,0, + 0,169,2,114,123,0,0,0,114,223,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,224,0,0, + 0,106,4,0,0,115,10,0,0,0,14,2,6,1,8,1, + 8,255,255,128,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,26,0,0,0,124, + 0,93,18,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,216,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,115,4,0,0,115,8,0,0,0,4,0,2,1,20,255, + 255,128,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,55,0,0,0,114,52,0, + 0,0,218,3,97,110,121,114,212,0,0,0,114,226,0,0, + 0,114,7,0,0,0,114,16,1,0,0,114,8,0,0,0, + 114,186,0,0,0,112,4,0,0,115,10,0,0,0,14,2, + 12,1,2,1,8,255,255,128,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,115,4,0,0,0,100,1,83,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,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,139,0,0,0,114,221, - 0,0,0,114,167,0,0,0,90,14,99,114,101,97,116,101, - 95,100,121,110,97,109,105,99,114,153,0,0,0,114,121,0, - 0,0,114,52,0,0,0,41,3,114,123,0,0,0,114,191, - 0,0,0,114,223,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,219,0,0,0,98,4,0,0, - 115,16,0,0,0,4,2,6,1,4,255,6,2,8,1,4, - 255,4,2,255,128,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,139,0,0,0,114,221, - 0,0,0,114,167,0,0,0,90,12,101,120,101,99,95,100, - 121,110,97,109,105,99,114,153,0,0,0,114,121,0,0,0, - 114,52,0,0,0,169,2,114,123,0,0,0,114,223,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,224,0,0,0,106,4,0,0,115,12,0,0,0,14,2, - 6,1,8,1,4,255,4,128,255,128,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,26,0,0,0,124,0,93,18,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,216,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,115,4,0,0,115,10,0,0,0, - 4,0,2,1,16,255,4,128,255,128,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,55,0,0,0,114,52,0,0,0,218,3,97,110,121,114, - 212,0,0,0,114,226,0,0,0,114,7,0,0,0,114,16, - 1,0,0,114,8,0,0,0,114,186,0,0,0,112,4,0, - 0,115,10,0,0,0,14,2,12,1,2,1,8,255,255,128, - 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,115,4,0,0,0,100,1, - 83,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,226,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 220,0,0,0,118,4,0,0,115,4,0,0,0,4,2,255, - 128,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,115,4,0,0,0,100,1,83, - 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,226,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,236,0,0,0,122,4,0,0,115,4,0, - 0,0,4,2,255,128,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,115, - 6,0,0,0,124,0,106,0,83,0,114,1,1,0,0,114, - 56,0,0,0,114,226,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,183,0,0,0,126,4,0, - 0,115,4,0,0,0,6,3,255,128,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, - 130,0,0,0,114,129,0,0,0,114,131,0,0,0,114,132, - 0,0,0,114,216,0,0,0,114,250,0,0,0,114,254,0, - 0,0,114,219,0,0,0,114,224,0,0,0,114,186,0,0, - 0,114,220,0,0,0,114,236,0,0,0,114,140,0,0,0, - 114,183,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,3,1,0,0,79,4, - 0,0,115,26,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,255, - 128,114,3,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,114,0,0,0, - 41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,104, - 114,116,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,123,0,0,0,114, - 121,0,0,0,114,52,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,216,0,0,0,139,4,0,0,115,12, - 0,0,0,6,1,6,1,14,1,6,1,4,128,255,128,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,30, - 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,79, - 0,0,0,114,10,0,0,0,41,2,114,15,0,0,0,114, - 52,0,0,0,90,8,95,95,112,97,116,104,95,95,78,41, - 2,114,19,1,0,0,114,49,0,0,0,41,4,114,123,0, - 0,0,114,11,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,145,4,0,0,115,10,0,0, - 0,18,2,8,1,4,2,8,3,255,128,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,114,0, - 0,0,41,4,114,26,1,0,0,114,135,0,0,0,114,15, - 0,0,0,218,7,109,111,100,117,108,101,115,41,3,114,123, - 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,21,1,0,0,155,4,0,0,115, - 6,0,0,0,12,1,16,1,255,128,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,74,124, - 0,160,3,124,0,106,4,124,1,161,2,125,2,124,2,100, - 0,117,1,114,68,124,2,106,5,100,0,117,0,114,68,124, - 2,106,6,114,68,124,2,106,6,124,0,95,7,124,1,124, - 0,95,2,124,0,106,7,83,0,114,114,0,0,0,41,8, - 114,116,0,0,0,114,21,1,0,0,114,22,1,0,0,114, - 23,1,0,0,114,19,1,0,0,114,144,0,0,0,114,182, - 0,0,0,114,20,1,0,0,41,3,114,123,0,0,0,90, - 11,112,97,114,101,110,116,95,112,97,116,104,114,191,0,0, + 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,226,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,220,0,0,0,118,4,0,0, + 115,4,0,0,0,4,2,255,128,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, + 115,4,0,0,0,100,1,83,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,226,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,236,0,0, + 0,122,4,0,0,115,4,0,0,0,4,2,255,128,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,115,6,0,0,0,124,0,106,0, + 83,0,114,1,1,0,0,114,56,0,0,0,114,226,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,159,4, - 0,0,115,18,0,0,0,12,2,10,1,14,1,18,3,6, - 1,8,1,6,1,6,1,255,128,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,115, - 12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,0, - 114,114,0,0,0,41,2,218,4,105,116,101,114,114,28,1, - 0,0,114,253,0,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, - 172,4,0,0,115,4,0,0,0,12,1,255,128,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,114,0,0,0,169,1,114,28,1,0,0,41,2,114,123, - 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,175,4,0,0,115,4,0,0,0,12, - 1,255,128,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,114,0,0,0, - 41,1,114,20,1,0,0,41,3,114,123,0,0,0,114,32, - 1,0,0,114,52,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,178,4,0,0,115,6,0,0,0,10,1,4, - 128,255,128,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,115,12,0,0,0,116,0,124, - 0,160,1,161,0,131,1,83,0,114,114,0,0,0,41,2, - 114,4,0,0,0,114,28,1,0,0,114,253,0,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,181,4,0,0,115,4,0,0,0, - 12,1,255,128,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, + 114,183,0,0,0,126,4,0,0,115,4,0,0,0,6,3, + 255,128,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,130,0,0,0,114,129,0,0, + 0,114,131,0,0,0,114,132,0,0,0,114,216,0,0,0, + 114,250,0,0,0,114,254,0,0,0,114,219,0,0,0,114, + 224,0,0,0,114,186,0,0,0,114,220,0,0,0,114,236, + 0,0,0,114,140,0,0,0,114,183,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,3,1,0,0,79,4,0,0,115,26,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,255,128,114,3,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,114,0,0,0,41,6,218,5,95,110,97,109, + 101,218,5,95,112,97,116,104,114,116,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,123,0,0,0,114,121,0,0,0,114,52,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,216,0, + 0,0,139,4,0,0,115,10,0,0,0,6,1,6,1,14, + 1,10,1,255,128,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,30,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,79,0,0,0,114,10,0,0,0,41,2, + 114,15,0,0,0,114,52,0,0,0,90,8,95,95,112,97, + 116,104,95,95,78,41,2,114,19,1,0,0,114,49,0,0, + 0,41,4,114,123,0,0,0,114,11,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,145,4, + 0,0,115,10,0,0,0,18,2,8,1,4,2,8,3,255, + 128,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,114,0,0,0,41,4,114,26,1,0,0,114, + 135,0,0,0,114,15,0,0,0,218,7,109,111,100,117,108, + 101,115,41,3,114,123,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,21,1,0, + 0,155,4,0,0,115,6,0,0,0,12,1,16,1,255,128, + 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,74,124,0,160,3,124,0,106,4,124,1,161, + 2,125,2,124,2,100,0,117,1,114,68,124,2,106,5,100, + 0,117,0,114,68,124,2,106,6,114,68,124,2,106,6,124, + 0,95,7,124,1,124,0,95,2,124,0,106,7,83,0,114, + 114,0,0,0,41,8,114,116,0,0,0,114,21,1,0,0, + 114,22,1,0,0,114,23,1,0,0,114,19,1,0,0,114, + 144,0,0,0,114,182,0,0,0,114,20,1,0,0,41,3, + 114,123,0,0,0,90,11,112,97,114,101,110,116,95,112,97, + 116,104,114,191,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,159,4,0,0,115,18,0,0,0,12,2,10, + 1,14,1,18,3,6,1,8,1,6,1,6,1,255,128,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,115,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,70,0,0,0,114,20,1,0,0,114,253,0,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,184,4,0,0,115,4,0, - 0,0,12,1,255,128,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,114,0,0,0,114,31, - 1,0,0,169,2,114,123,0,0,0,218,4,105,116,101,109, + 0,67,0,0,0,115,12,0,0,0,116,0,124,0,160,1, + 161,0,131,1,83,0,114,114,0,0,0,41,2,218,4,105, + 116,101,114,114,28,1,0,0,114,253,0,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,172,4,0,0,115,4,0,0,0,12, + 1,255,128,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,114,0,0,0,169,1,114,28,1, + 0,0,41,2,114,123,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, - 12,95,95,99,111,110,116,97,105,110,115,95,95,187,4,0, - 0,115,4,0,0,0,12,1,255,128,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,114,0,0,0,41,2,114,20,1,0, - 0,114,190,0,0,0,114,37,1,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,190,0,0,0,190, - 4,0,0,115,6,0,0,0,12,1,4,128,255,128,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,130,0,0,0,114,129,0, - 0,0,114,131,0,0,0,114,132,0,0,0,114,216,0,0, - 0,114,26,1,0,0,114,21,1,0,0,114,28,1,0,0, - 114,30,1,0,0,114,33,1,0,0,114,34,1,0,0,114, - 35,1,0,0,114,36,1,0,0,114,39,1,0,0,114,190, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,18,1,0,0,132,4,0,0, - 115,28,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,255, - 128,114,18,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, - 80,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,83,0,41,18,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,114,0,0,0,41,2,114, - 18,1,0,0,114,20,1,0,0,114,24,1,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,216,0, - 0,0,196,4,0,0,115,6,0,0,0,14,1,4,128,255, + 11,95,95,103,101,116,105,116,101,109,95,95,175,4,0,0, + 115,4,0,0,0,12,1,255,128,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,114,0,0,0,41,1,114,20,1,0,0,41,3,114, + 123,0,0,0,114,32,1,0,0,114,52,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,178,4,0,0,115,4, + 0,0,0,14,1,255,128,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,115,12,0,0, + 0,116,0,124,0,160,1,161,0,131,1,83,0,114,114,0, + 0,0,41,2,114,4,0,0,0,114,28,1,0,0,114,253, + 0,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,181,4,0,0,115, + 4,0,0,0,12,1,255,128,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,115,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,70,0,0,0,114,20,1,0,0,114, + 253,0,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,184,4,0, + 0,115,4,0,0,0,12,1,255,128,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,114,0, + 0,0,114,31,1,0,0,169,2,114,123,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,187,4,0,0,115,4,0,0,0,12,1,255,128,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,114,0,0,0,41,2, + 114,20,1,0,0,114,190,0,0,0,114,37,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,190, + 0,0,0,190,4,0,0,115,4,0,0,0,16,1,255,128, + 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,130,0,0,0,114, + 129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,216, + 0,0,0,114,26,1,0,0,114,21,1,0,0,114,28,1, + 0,0,114,30,1,0,0,114,33,1,0,0,114,34,1,0, + 0,114,35,1,0,0,114,36,1,0,0,114,39,1,0,0, + 114,190,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,18,1,0,0,132,4, + 0,0,115,28,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,255,128,114,18,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,80,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,83,0,41,18,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,114,0,0,0,41, + 2,114,18,1,0,0,114,20,1,0,0,114,24,1,0,0, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 216,0,0,0,196,4,0,0,115,4,0,0,0,18,1,255, 128,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,3,0,0, @@ -2027,644 +2026,643 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,115,4,0,0,0,100,0,83,0,114,114,0,0, 0,114,7,0,0,0,114,13,1,0,0,114,7,0,0,0, 114,7,0,0,0,114,8,0,0,0,114,224,0,0,0,220, - 4,0,0,115,6,0,0,0,2,1,2,128,255,128,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,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, - 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,139,0,0,0,114,153,0,0,0,114, - 20,1,0,0,114,225,0,0,0,114,226,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,227,0, - 0,0,223,4,0,0,115,10,0,0,0,6,7,4,1,4, - 255,12,2,255,128,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,78,41,12,114,130,0,0,0,114,129,0,0,0, - 114,131,0,0,0,114,216,0,0,0,114,213,0,0,0,114, - 41,1,0,0,114,186,0,0,0,114,236,0,0,0,114,220, - 0,0,0,114,219,0,0,0,114,224,0,0,0,114,227,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,40,1,0,0,195,4,0,0,115, - 22,0,0,0,8,0,8,1,2,3,10,1,8,8,8,3, - 8,3,8,3,8,3,12,3,255,128,114,40,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,21,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,22,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,44,92, - 2,125,0,125,1,124,1,100,1,117,0,114,40,116,1,106, - 2,124,0,61,0,113,14,116,4,124,1,100,2,131,2,114, - 14,124,1,160,5,161,0,1,0,113,14,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,133,0, - 0,0,114,43,1,0,0,41,2,114,121,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,43,1,0,0,241,4,0,0,115,14, - 0,0,0,22,4,8,1,10,1,10,1,10,1,4,128,255, - 128,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,28,116,0,106,1,115,28,116,2,160, - 3,100,2,116,4,161,2,1,0,116,0,106,1,68,0,93, - 36,125,1,122,14,124,1,124,0,131,1,87,0,2,0,1, - 0,83,0,4,0,116,5,121,70,1,0,1,0,1,0,89, - 0,113,34,48,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,81,0,0,0,114,82,0, - 0,0,114,142,0,0,0,114,122,0,0,0,41,2,114,52, - 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,251,4,0,0,115,18,0,0,0,16,3, - 12,1,10,1,2,1,14,1,12,1,6,1,4,2,255,128, - 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,42,122,12, - 116,0,160,1,161,0,125,1,87,0,110,20,4,0,116,2, - 121,40,1,0,1,0,1,0,89,0,100,2,83,0,48,0, - 122,16,116,3,106,4,124,1,25,0,125,2,87,0,124,2, - 83,0,4,0,116,5,121,98,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,48,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,63,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,45,1,0,0,218, - 8,75,101,121,69,114,114,111,114,114,49,1,0,0,41,3, - 114,202,0,0,0,114,52,0,0,0,114,47,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,8,5,0,0,115,28,0,0,0,8,8,2, - 1,12,1,12,1,8,3,2,1,12,1,4,4,12,253,10, - 1,12,1,4,1,2,255,255,128,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,6,0,0,0,4,0,0,0,67, - 0,0,0,115,82,0,0,0,116,0,124,2,100,1,131,2, - 114,26,124,2,160,1,124,1,161,1,92,2,125,3,125,4, - 110,14,124,2,160,2,124,1,161,1,125,3,103,0,125,4, - 124,3,100,0,117,1,114,60,116,3,160,4,124,1,124,3, - 161,2,83,0,116,3,160,5,124,1,100,0,161,2,125,5, - 124,4,124,5,95,6,124,5,83,0,41,2,78,114,141,0, - 0,0,41,7,114,133,0,0,0,114,141,0,0,0,114,210, - 0,0,0,114,139,0,0,0,114,205,0,0,0,114,187,0, - 0,0,114,182,0,0,0,41,6,114,202,0,0,0,114,143, - 0,0,0,114,47,1,0,0,114,144,0,0,0,114,145,0, - 0,0,114,191,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,30,5,0,0,115,20,0,0, - 0,10,4,16,1,10,2,4,1,8,1,12,1,12,1,6, - 1,4,1,255,128,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,134,125,5,116,0,124, - 5,116,1,116,2,102,2,131,2,115,28,113,8,124,0,160, - 3,124,5,161,1,125,6,124,6,100,1,117,1,114,8,116, - 4,124,6,100,2,131,2,114,70,124,6,160,5,124,1,124, - 3,161,2,125,7,110,12,124,0,160,6,124,1,124,6,161, - 2,125,7,124,7,100,1,117,0,114,92,113,8,124,7,106, - 7,100,1,117,1,114,110,124,7,2,0,1,0,83,0,124, - 7,106,8,125,8,124,8,100,1,117,0,114,132,116,9,100, - 3,131,1,130,1,124,4,160,10,124,8,161,1,1,0,113, - 8,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,207,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,165,0,0,0,114,90,0,0, - 0,218,5,98,121,116,101,115,114,52,1,0,0,114,133,0, - 0,0,114,207,0,0,0,114,53,1,0,0,114,144,0,0, - 0,114,182,0,0,0,114,122,0,0,0,114,171,0,0,0, - 114,139,0,0,0,114,187,0,0,0,41,9,114,202,0,0, - 0,114,143,0,0,0,114,52,0,0,0,114,206,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,47,1,0,0,114,191,0,0, - 0,114,145,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, - 45,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,12,5,12,2,6,1,4, - 1,255,128,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,14,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,40,100,1,83,0,124, - 4,106,3,100,1,117,0,114,90,124,4,106,4,125,5,124, - 5,114,86,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,52, - 0,0,0,114,56,1,0,0,114,144,0,0,0,114,182,0, - 0,0,114,185,0,0,0,114,18,1,0,0,41,6,114,202, - 0,0,0,114,143,0,0,0,114,52,0,0,0,114,206,0, - 0,0,114,191,0,0,0,114,55,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,207,0,0,0, - 77,5,0,0,115,28,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,255,128,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,30,0,0,0,124,0,160,0,124,1,124, - 2,161,2,125,3,124,3,100,1,117,0,114,24,100,1,83, - 0,124,3,106,1,83,0,41,2,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,78,114,208,0,0,0,114,209,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 210,0,0,0,101,5,0,0,115,10,0,0,0,12,8,8, - 1,4,1,6,1,255,128,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,57,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,124,0, - 0,0,114,125,0,0,0,114,57,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,58,1,0,0, - 114,5,0,0,115,6,0,0,0,12,10,16,1,255,128,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,41,1, - 78,41,2,78,78,41,1,78,41,14,114,130,0,0,0,114, - 129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,213, - 0,0,0,114,43,1,0,0,114,49,1,0,0,114,214,0, - 0,0,114,52,1,0,0,114,53,1,0,0,114,56,1,0, - 0,114,207,0,0,0,114,210,0,0,0,114,58,1,0,0, + 4,0,0,115,4,0,0,0,4,1,255,128,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,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,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,139,0,0,0,114,153,0,0,0,114,20,1, + 0,0,114,225,0,0,0,114,226,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,227,0,0,0, + 223,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12, + 2,255,128,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,78,41,12,114,130,0,0,0,114,129,0,0,0,114,131, + 0,0,0,114,216,0,0,0,114,213,0,0,0,114,41,1, + 0,0,114,186,0,0,0,114,236,0,0,0,114,220,0,0, + 0,114,219,0,0,0,114,224,0,0,0,114,227,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,42,1,0,0,237,4,0,0,115,38,0, - 0,0,8,0,4,2,2,2,10,1,2,9,10,1,2,12, - 10,1,2,21,10,1,2,14,12,1,2,31,12,1,2,23, - 12,1,2,12,14,1,255,128,114,42,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,84,0,0,0,103, - 0,125,3,124,2,68,0,93,32,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,8,124,3,124,0,95,1,124, - 1,112,54,100,3,124,0,95,2,100,4,124,0,95,3,116, - 4,131,0,124,0,95,5,116,4,131,0,124,0,95,6,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,22,0,0,0,124, - 0,93,14,125,1,124,1,136,0,102,2,86,0,1,0,113, - 2,100,0,83,0,114,114,0,0,0,114,7,0,0,0,114, - 14,1,0,0,169,1,114,144,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,9,0,0,0,143,5,0,0,115,6, - 0,0,0,18,0,4,128,255,128,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,79,0,0,0,114,109,0,0,0,78,41,7,114,171, - 0,0,0,218,8,95,108,111,97,100,101,114,115,114,52,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,123,0,0,0,114,52,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,193,0,0,0, - 114,7,0,0,0,114,60,1,0,0,114,8,0,0,0,114, - 216,0,0,0,137,5,0,0,115,20,0,0,0,4,4,12, - 1,26,1,6,1,10,2,6,1,8,1,8,1,4,128,255, - 128,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,109,0,0,0,78,41,1,114,62,1,0,0,114,253, + 8,0,0,0,114,40,1,0,0,195,4,0,0,115,22,0, + 0,0,8,0,8,1,2,3,10,1,8,8,8,3,8,3, + 8,3,8,3,12,3,255,128,114,40,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,21,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,22,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,44,92,2,125, + 0,125,1,124,1,100,1,117,0,114,40,116,1,106,2,124, + 0,61,0,113,14,116,4,124,1,100,2,131,2,114,14,124, + 1,160,5,161,0,1,0,113,14,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,133,0,0,0, + 114,43,1,0,0,41,2,114,121,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,43,1,0,0,241,4,0,0,115,14,0,0, + 0,22,4,8,1,10,1,10,1,10,1,4,252,255,128,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,28,116,0,106,1,115,28,116,2,160,3,100, + 2,116,4,161,2,1,0,116,0,106,1,68,0,93,36,125, + 1,122,14,124,1,124,0,131,1,87,0,2,0,1,0,83, + 0,4,0,116,5,121,70,1,0,1,0,1,0,89,0,113, + 34,48,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,81,0,0,0,114,82,0,0,0, + 114,142,0,0,0,114,122,0,0,0,41,2,114,52,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,251,4,0,0,115,18,0,0,0,16,3,12,1, + 10,1,2,1,14,1,12,1,6,1,4,2,255,128,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,42,122,12,116,0, + 160,1,161,0,125,1,87,0,110,20,4,0,116,2,121,40, + 1,0,1,0,1,0,89,0,100,2,83,0,48,0,122,16, + 116,3,106,4,124,1,25,0,125,2,87,0,124,2,83,0, + 4,0,116,5,121,98,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,48,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,63,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,45,1,0,0,218,8,75, + 101,121,69,114,114,111,114,114,49,1,0,0,41,3,114,202, + 0,0,0,114,52,0,0,0,114,47,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,8,5,0,0,115,28,0,0,0,8,8,2,1,12, + 1,12,1,8,3,2,1,12,1,4,4,12,253,10,1,12, + 1,4,1,2,255,255,128,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,6,0,0,0,4,0,0,0,67,0,0, + 0,115,82,0,0,0,116,0,124,2,100,1,131,2,114,26, + 124,2,160,1,124,1,161,1,92,2,125,3,125,4,110,14, + 124,2,160,2,124,1,161,1,125,3,103,0,125,4,124,3, + 100,0,117,1,114,60,116,3,160,4,124,1,124,3,161,2, + 83,0,116,3,160,5,124,1,100,0,161,2,125,5,124,4, + 124,5,95,6,124,5,83,0,41,2,78,114,141,0,0,0, + 41,7,114,133,0,0,0,114,141,0,0,0,114,210,0,0, + 0,114,139,0,0,0,114,205,0,0,0,114,187,0,0,0, + 114,182,0,0,0,41,6,114,202,0,0,0,114,143,0,0, + 0,114,47,1,0,0,114,144,0,0,0,114,145,0,0,0, + 114,191,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,30,5,0,0,115,20,0,0,0,10, + 4,16,1,10,2,4,1,8,1,12,1,12,1,6,1,4, + 1,255,128,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,134,125,5,116,0,124,5,116, + 1,116,2,102,2,131,2,115,28,113,8,124,0,160,3,124, + 5,161,1,125,6,124,6,100,1,117,1,114,8,116,4,124, + 6,100,2,131,2,114,70,124,6,160,5,124,1,124,3,161, + 2,125,7,110,12,124,0,160,6,124,1,124,6,161,2,125, + 7,124,7,100,1,117,0,114,92,113,8,124,7,106,7,100, + 1,117,1,114,110,124,7,2,0,1,0,83,0,124,7,106, + 8,125,8,124,8,100,1,117,0,114,132,116,9,100,3,131, + 1,130,1,124,4,160,10,124,8,161,1,1,0,113,8,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,207,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,165,0,0,0,114,90,0,0,0,218, + 5,98,121,116,101,115,114,52,1,0,0,114,133,0,0,0, + 114,207,0,0,0,114,53,1,0,0,114,144,0,0,0,114, + 182,0,0,0,114,122,0,0,0,114,171,0,0,0,114,139, + 0,0,0,114,187,0,0,0,41,9,114,202,0,0,0,114, + 143,0,0,0,114,52,0,0,0,114,206,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,47,1,0,0,114,191,0,0,0,114, + 145,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,45,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,12,5,12,2,6,1,4,1,255, + 128,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,14,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,40,100,1,83,0,124,4,106, + 3,100,1,117,0,114,90,124,4,106,4,125,5,124,5,114, + 86,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,52,0,0, + 0,114,56,1,0,0,114,144,0,0,0,114,182,0,0,0, + 114,185,0,0,0,114,18,1,0,0,41,6,114,202,0,0, + 0,114,143,0,0,0,114,52,0,0,0,114,206,0,0,0, + 114,191,0,0,0,114,55,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,207,0,0,0,77,5, + 0,0,115,28,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,255,128,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,30,0,0,0,124,0,160,0,124,1,124,2,161, + 2,125,3,124,3,100,1,117,0,114,24,100,1,83,0,124, + 3,106,1,83,0,41,2,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,78,114,208,0,0,0,114,209,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,210,0, + 0,0,101,5,0,0,115,10,0,0,0,12,8,8,1,4, + 1,6,1,255,128,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,57,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,124,0,0,0, + 114,125,0,0,0,114,57,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,58,1,0,0,114,5, + 0,0,115,6,0,0,0,12,10,16,1,255,128,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,41,1,78,41, + 2,78,78,41,1,78,41,14,114,130,0,0,0,114,129,0, + 0,0,114,131,0,0,0,114,132,0,0,0,114,213,0,0, + 0,114,43,1,0,0,114,49,1,0,0,114,214,0,0,0, + 114,52,1,0,0,114,53,1,0,0,114,56,1,0,0,114, + 207,0,0,0,114,210,0,0,0,114,58,1,0,0,114,7, 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,43,1,0,0,151,5,0,0,115,6,0,0,0, - 6,2,4,128,255,128,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,3,0,0,0,67,0,0,0,115,42,0, - 0,0,124,0,160,0,124,1,161,1,125,2,124,2,100,1, - 117,0,114,26,100,1,103,0,102,2,83,0,124,2,106,1, - 124,2,106,2,112,38,103,0,102,2,83,0,41,2,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,78,41,3,114,207,0,0,0,114,144,0, - 0,0,114,182,0,0,0,41,3,114,123,0,0,0,114,143, + 0,0,114,42,1,0,0,237,4,0,0,115,38,0,0,0, + 8,0,4,2,2,2,10,1,2,9,10,1,2,12,10,1, + 2,21,10,1,2,14,12,1,2,31,12,1,2,23,12,1, + 2,12,14,1,255,128,114,42,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,84,0,0,0,103,0,125, + 3,124,2,68,0,93,32,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,8,124,3,124,0,95,1,124,1,112, + 54,100,3,124,0,95,2,100,4,124,0,95,3,116,4,131, + 0,124,0,95,5,116,4,131,0,124,0,95,6,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,22,0,0,0,124,0,93, + 14,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100, + 0,83,0,114,114,0,0,0,114,7,0,0,0,114,14,1, + 0,0,169,1,114,144,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,143,5,0,0,115,4,0,0, + 0,22,0,255,128,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,79,0, + 0,0,114,109,0,0,0,78,41,7,114,171,0,0,0,218, + 8,95,108,111,97,100,101,114,115,114,52,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,123,0,0,0,114,52,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,193,0,0,0,114,7,0,0, + 0,114,60,1,0,0,114,8,0,0,0,114,216,0,0,0, + 137,5,0,0,115,18,0,0,0,4,4,12,1,26,1,6, + 1,10,2,6,1,8,1,12,1,255,128,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,109,0,0,0, + 78,41,1,114,62,1,0,0,114,253,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,43,1,0, + 0,151,5,0,0,115,4,0,0,0,10,2,255,128,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,3,0,0, + 0,67,0,0,0,115,42,0,0,0,124,0,160,0,124,1, + 161,1,125,2,124,2,100,1,117,0,114,26,100,1,103,0, + 102,2,83,0,124,2,106,1,124,2,106,2,112,38,103,0, + 102,2,83,0,41,2,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,78,41,3, + 114,207,0,0,0,114,144,0,0,0,114,182,0,0,0,41, + 3,114,123,0,0,0,114,143,0,0,0,114,191,0,0,0, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 141,0,0,0,157,5,0,0,115,10,0,0,0,10,7,8, + 1,8,1,16,1,255,128,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,181,0,0,0,41, + 1,114,194,0,0,0,41,7,114,123,0,0,0,114,192,0, + 0,0,114,143,0,0,0,114,52,0,0,0,90,4,115,109, + 115,108,114,206,0,0,0,114,144,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,56,1,0,0, + 169,5,0,0,115,10,0,0,0,10,1,8,1,2,1,6, + 255,255,128,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,8,0,0,0,67, + 0,0,0,115,92,1,0,0,100,1,125,3,124,1,160,0, + 100,2,161,1,100,3,25,0,125,4,122,24,116,1,124,0, + 106,2,112,34,116,3,160,4,161,0,131,1,106,5,125,5, + 87,0,110,22,4,0,116,6,121,64,1,0,1,0,1,0, + 100,4,125,5,89,0,110,2,48,0,124,5,124,0,106,7, + 107,3,114,90,124,0,160,8,161,0,1,0,124,5,124,0, + 95,7,116,9,131,0,114,112,124,0,106,10,125,6,124,4, + 160,11,161,0,125,7,110,10,124,0,106,12,125,6,124,4, + 125,7,124,7,124,6,118,0,114,214,116,13,124,0,106,2, + 124,4,131,2,125,8,124,0,106,14,68,0,93,56,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,148,124,0, + 160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,5, + 2,0,1,0,83,0,116,17,124,8,131,1,125,3,124,0, + 106,14,68,0,93,80,92,2,125,9,125,10,116,13,124,0, + 106,2,124,4,124,9,23,0,131,2,125,12,116,18,106,19, + 100,6,124,12,100,3,100,7,141,3,1,0,124,7,124,9, + 23,0,124,6,118,0,114,220,116,15,124,12,131,1,114,220, + 124,0,160,16,124,10,124,1,124,12,100,8,124,2,161,5, + 2,0,1,0,83,0,124,3,144,1,114,88,116,18,160,19, + 100,9,124,8,161,2,1,0,116,18,160,20,124,1,100,8, + 161,2,125,13,124,8,103,1,124,13,95,21,124,13,83,0, + 100,8,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,79,0,0,0,114,39,0, + 0,0,114,109,0,0,0,114,216,0,0,0,122,9,116,114, + 121,105,110,103,32,123,125,41,1,90,9,118,101,114,98,111, + 115,105,116,121,78,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,22,114,49,0,0,0,114,57,0,0,0,114,52,0,0, + 0,114,18,0,0,0,114,63,0,0,0,114,7,1,0,0, + 114,58,0,0,0,114,62,1,0,0,218,11,95,102,105,108, + 108,95,99,97,99,104,101,114,21,0,0,0,114,65,1,0, + 0,114,110,0,0,0,114,64,1,0,0,114,48,0,0,0, + 114,61,1,0,0,114,62,0,0,0,114,56,1,0,0,114, + 64,0,0,0,114,139,0,0,0,114,153,0,0,0,114,187, + 0,0,0,114,182,0,0,0,41,14,114,123,0,0,0,114, + 143,0,0,0,114,206,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,173,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,15,1,0,0,114,192, + 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,191,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,207,0,0,0,174,5,0,0,115,74,0,0,0,4, + 5,14,1,2,1,24,1,12,1,10,1,10,1,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,8,4,14,2,16,1,16, + 1,12,1,8,1,10,1,4,1,8,255,6,2,12,1,12, + 1,8,1,4,1,4,1,255,128,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,22,116,1,160,2,124,1,112,22,116,1,160, + 3,161,0,161,1,125,2,87,0,110,28,4,0,116,4,116, + 5,116,6,102,3,121,56,1,0,1,0,1,0,103,0,125, + 2,89,0,110,2,48,0,116,7,106,8,160,9,100,1,161, + 1,115,82,116,10,124,2,131,1,124,0,95,11,110,74,116, + 10,131,0,125,3,124,2,68,0,93,56,125,4,124,4,160, + 12,100,2,161,1,92,3,125,5,125,6,125,7,124,6,114, + 134,100,3,160,13,124,5,124,7,160,14,161,0,161,2,125, + 8,110,4,124,5,125,8,124,3,160,15,124,8,161,1,1, + 0,113,92,124,3,124,0,95,11,116,7,106,8,160,9,116, + 16,161,1,114,188,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,79,0,0,0,114, + 69,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,12,125,1,124,1,160,0,161,0, + 146,2,113,4,83,0,114,7,0,0,0,41,1,114,110,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,251,5,0,0,115,4,0,0,0,20,0,255,128,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,52,0,0, + 0,114,18,0,0,0,90,7,108,105,115,116,100,105,114,114, + 63,0,0,0,114,50,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,22,0,0,0,114,23,0,0,0,114,63,1, + 0,0,114,64,1,0,0,114,105,0,0,0,114,70,0,0, + 0,114,110,0,0,0,218,3,97,100,100,114,24,0,0,0, + 114,65,1,0,0,41,9,114,123,0,0,0,114,52,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,38,1,0,0,114,121,0,0,0,114,25,1,0, + 0,114,15,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, + 67,1,0,0,222,5,0,0,115,38,0,0,0,6,2,2, + 1,22,1,18,1,10,3,12,3,12,1,6,7,8,1,16, + 1,4,1,18,1,4,2,12,1,6,1,12,1,20,1,4, + 255,255,128,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,20,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,56,0,0,0,78,41, + 2,114,64,0,0,0,114,122,0,0,0,114,56,0,0,0, + 169,2,114,202,0,0,0,114,66,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,111,114,95,70,105,108,101,70,105,110,100,101,114, + 7,6,0,0,115,8,0,0,0,8,2,12,1,16,1,255, + 128,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97, + 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62, + 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70, + 105,108,101,70,105,110,100,101,114,78,114,7,0,0,0,41, + 3,114,202,0,0,0,114,66,1,0,0,114,72,1,0,0, + 114,7,0,0,0,114,71,1,0,0,114,8,0,0,0,218, + 9,112,97,116,104,95,104,111,111,107,253,5,0,0,115,6, + 0,0,0,14,10,4,6,255,128,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,115,12,0,0,0,100,1,160, + 0,124,0,106,1,161,1,83,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,70,0,0,0,114,52,0,0,0,114,253,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,36, + 1,0,0,15,6,0,0,115,4,0,0,0,12,1,255,128, + 122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,114, + 101,112,114,95,95,41,1,78,41,15,114,130,0,0,0,114, + 129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,216, + 0,0,0,114,43,1,0,0,114,147,0,0,0,114,210,0, + 0,0,114,141,0,0,0,114,56,1,0,0,114,207,0,0, + 0,114,67,1,0,0,114,214,0,0,0,114,73,1,0,0, + 114,36,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,59,1,0,0,128,5, + 0,0,115,26,0,0,0,8,0,4,2,8,7,8,14,4, + 4,8,2,8,12,10,5,8,48,2,31,10,1,12,17,255, + 128,114,59,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,66,124,5,114,36, + 124,5,106,1,125,4,110,30,124,2,124,3,107,2,114,56, + 116,2,124,1,124,2,131,2,125,4,110,10,116,3,124,1, + 124,2,131,2,125,4,124,5,115,84,116,4,124,1,124,2, + 124,4,100,3,141,3,125,5,122,38,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,142,1,0,1,0,1,0,89,0,100,0, + 83,0,48,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,60,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, + 144,0,0,0,114,12,1,0,0,114,6,1,0,0,114,194, + 0,0,0,218,9,69,120,99,101,112,116,105,111,110,41,6, + 90,2,110,115,114,121,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,144, 0,0,0,114,191,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,141,0,0,0,157,5,0,0, - 115,10,0,0,0,10,7,8,1,8,1,16,1,255,128,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,181,0,0,0,41,1,114,194,0,0,0,41,7, - 114,123,0,0,0,114,192,0,0,0,114,143,0,0,0,114, - 52,0,0,0,90,4,115,109,115,108,114,206,0,0,0,114, - 144,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,56,1,0,0,169,5,0,0,115,10,0,0, - 0,10,1,8,1,2,1,6,255,255,128,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,8,0,0,0,67,0,0,0,115,92,1,0,0, - 100,1,125,3,124,1,160,0,100,2,161,1,100,3,25,0, - 125,4,122,24,116,1,124,0,106,2,112,34,116,3,160,4, - 161,0,131,1,106,5,125,5,87,0,110,22,4,0,116,6, - 121,64,1,0,1,0,1,0,100,4,125,5,89,0,110,2, - 48,0,124,5,124,0,106,7,107,3,114,90,124,0,160,8, - 161,0,1,0,124,5,124,0,95,7,116,9,131,0,114,112, - 124,0,106,10,125,6,124,4,160,11,161,0,125,7,110,10, - 124,0,106,12,125,6,124,4,125,7,124,7,124,6,118,0, - 114,214,116,13,124,0,106,2,124,4,131,2,125,8,124,0, - 106,14,68,0,93,56,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,148,124,0,160,16,124,10,124,1,124,12, - 124,8,103,1,124,2,161,5,2,0,1,0,83,0,116,17, - 124,8,131,1,125,3,124,0,106,14,68,0,93,80,92,2, - 125,9,125,10,116,13,124,0,106,2,124,4,124,9,23,0, - 131,2,125,12,116,18,106,19,100,6,124,12,100,3,100,7, - 141,3,1,0,124,7,124,9,23,0,124,6,118,0,114,220, - 116,15,124,12,131,1,114,220,124,0,160,16,124,10,124,1, - 124,12,100,8,124,2,161,5,2,0,1,0,83,0,124,3, - 144,1,114,88,116,18,160,19,100,9,124,8,161,2,1,0, - 116,18,160,20,124,1,100,8,161,2,125,13,124,8,103,1, - 124,13,95,21,124,13,83,0,100,8,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,79,0,0,0,114,39,0,0,0,114,109,0,0,0,114, - 216,0,0,0,122,9,116,114,121,105,110,103,32,123,125,41, - 1,90,9,118,101,114,98,111,115,105,116,121,78,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,22,114,49,0,0,0,114, - 57,0,0,0,114,52,0,0,0,114,18,0,0,0,114,63, - 0,0,0,114,7,1,0,0,114,58,0,0,0,114,62,1, - 0,0,218,11,95,102,105,108,108,95,99,97,99,104,101,114, - 21,0,0,0,114,65,1,0,0,114,110,0,0,0,114,64, - 1,0,0,114,48,0,0,0,114,61,1,0,0,114,62,0, - 0,0,114,56,1,0,0,114,64,0,0,0,114,139,0,0, - 0,114,153,0,0,0,114,187,0,0,0,114,182,0,0,0, - 41,14,114,123,0,0,0,114,143,0,0,0,114,206,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,173,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,15,1,0,0,114,192,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,191,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,207,0,0,0,174,5, - 0,0,115,74,0,0,0,4,5,14,1,2,1,24,1,12, - 1,10,1,10,1,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,8,4,14,2,16,1,16,1,12,1,8,1,10,1,4, - 1,8,255,6,2,12,1,12,1,8,1,4,1,4,1,255, - 128,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,188,0,0,0,124,0,106,0,125,1,122,22,116,1,160, - 2,124,1,112,22,116,1,160,3,161,0,161,1,125,2,87, - 0,110,28,4,0,116,4,116,5,116,6,102,3,121,56,1, - 0,1,0,1,0,103,0,125,2,89,0,110,2,48,0,116, - 7,106,8,160,9,100,1,161,1,115,82,116,10,124,2,131, - 1,124,0,95,11,110,74,116,10,131,0,125,3,124,2,68, - 0,93,56,125,4,124,4,160,12,100,2,161,1,92,3,125, - 5,125,6,125,7,124,6,114,134,100,3,160,13,124,5,124, - 7,160,14,161,0,161,2,125,8,110,4,124,5,125,8,124, - 3,160,15,124,8,161,1,1,0,113,92,124,3,124,0,95, - 11,116,7,106,8,160,9,116,16,161,1,114,184,100,4,100, - 5,132,0,124,2,68,0,131,1,124,0,95,17,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,79, - 0,0,0,114,69,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,12,125,1,124,1, - 160,0,161,0,146,2,113,4,83,0,114,7,0,0,0,41, - 1,114,110,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,251,5,0,0,115,4,0,0,0,20,0, - 255,128,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,52,0,0,0,114,18,0,0,0,90,7,108,105,115,116, - 100,105,114,114,63,0,0,0,114,50,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,22,0,0,0,114,23,0,0, - 0,114,63,1,0,0,114,64,1,0,0,114,105,0,0,0, - 114,70,0,0,0,114,110,0,0,0,218,3,97,100,100,114, - 24,0,0,0,114,65,1,0,0,41,9,114,123,0,0,0, - 114,52,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,38,1,0,0,114,121,0,0,0, - 114,25,1,0,0,114,15,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,67,1,0,0,222,5,0,0,115,38,0,0, - 0,6,2,2,1,22,1,18,1,10,3,12,3,12,1,6, - 7,8,1,16,1,4,1,18,1,4,2,12,1,6,1,12, - 1,16,1,4,128,255,128,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,20, - 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,56,0, - 0,0,78,41,2,114,64,0,0,0,114,122,0,0,0,114, - 56,0,0,0,169,2,114,202,0,0,0,114,66,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,111,114,95,70,105,108,101,70,105, - 110,100,101,114,7,6,0,0,115,8,0,0,0,8,2,12, - 1,16,1,255,128,122,54,70,105,108,101,70,105,110,100,101, - 114,46,112,97,116,104,95,104,111,111,107,46,60,108,111,99, - 97,108,115,62,46,112,97,116,104,95,104,111,111,107,95,102, - 111,114,95,70,105,108,101,70,105,110,100,101,114,78,114,7, - 0,0,0,41,3,114,202,0,0,0,114,66,1,0,0,114, - 72,1,0,0,114,7,0,0,0,114,71,1,0,0,114,8, - 0,0,0,218,9,112,97,116,104,95,104,111,111,107,253,5, - 0,0,115,6,0,0,0,14,10,4,6,255,128,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,115,12,0,0, - 0,100,1,160,0,124,0,106,1,161,1,83,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,70,0,0,0,114,52,0,0,0,114,253, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,36,1,0,0,15,6,0,0,115,4,0,0,0, - 12,1,255,128,122,19,70,105,108,101,70,105,110,100,101,114, - 46,95,95,114,101,112,114,95,95,41,1,78,41,15,114,130, - 0,0,0,114,129,0,0,0,114,131,0,0,0,114,132,0, - 0,0,114,216,0,0,0,114,43,1,0,0,114,147,0,0, - 0,114,210,0,0,0,114,141,0,0,0,114,56,1,0,0, - 114,207,0,0,0,114,67,1,0,0,114,214,0,0,0,114, - 73,1,0,0,114,36,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,59,1, - 0,0,128,5,0,0,115,26,0,0,0,8,0,4,2,8, - 7,8,14,4,4,8,2,8,12,10,5,8,48,2,31,10, - 1,12,17,255,128,114,59,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,66, - 124,5,114,36,124,5,106,1,125,4,110,30,124,2,124,3, - 107,2,114,56,116,2,124,1,124,2,131,2,125,4,110,10, - 116,3,124,1,124,2,131,2,125,4,124,5,115,84,116,4, - 124,1,124,2,124,4,100,3,141,3,125,5,122,38,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,142,1,0,1,0,1,0, - 89,0,100,0,83,0,48,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,60,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,144,0,0,0,114,12,1,0,0,114,6,1, - 0,0,114,194,0,0,0,218,9,69,120,99,101,112,116,105, - 111,110,41,6,90,2,110,115,114,121,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,144,0,0,0,114,191,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,21,6,0,0,115, - 42,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, - 10,1,4,128,12,1,2,2,4,128,2,0,255,128,114,78, - 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,3,1, - 0,0,114,167,0,0,0,218,18,101,120,116,101,110,115,105, - 111,110,95,115,117,102,102,105,120,101,115,114,6,1,0,0, - 114,106,0,0,0,114,12,1,0,0,114,94,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,188, - 0,0,0,44,6,0,0,115,10,0,0,0,12,5,8,1, - 8,1,10,1,255,128,114,188,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,114,0,0,0,41,1,114,139,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,55,6,0,0,115,6,0,0, - 0,4,2,4,128,255,128,114,81,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,81,1,0, - 0,114,188,0,0,0,114,15,0,0,0,114,48,1,0,0, - 114,171,0,0,0,114,59,1,0,0,114,73,1,0,0,218, - 9,109,101,116,97,95,112,97,116,104,114,190,0,0,0,114, - 42,1,0,0,41,2,114,80,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,60,6,0,0,115,12,0,0,0, - 8,2,6,1,20,1,12,1,4,128,255,128,114,83,1,0, - 0,41,1,114,68,0,0,0,41,1,78,41,3,78,78,78, - 41,2,114,0,0,0,0,114,0,0,0,0,41,1,84,41, - 1,78,41,1,78,41,83,114,132,0,0,0,114,139,0,0, - 0,114,167,0,0,0,114,72,0,0,0,114,15,0,0,0, - 114,81,0,0,0,114,164,0,0,0,114,22,0,0,0,114, - 211,0,0,0,90,2,110,116,114,18,0,0,0,114,196,0, - 0,0,90,5,112,111,115,105,120,114,42,0,0,0,218,3, - 97,108,108,114,45,0,0,0,114,46,0,0,0,114,66,0, - 0,0,114,25,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,24, - 0,0,0,114,26,0,0,0,114,21,0,0,0,114,33,0, - 0,0,114,38,0,0,0,114,40,0,0,0,114,48,0,0, - 0,114,55,0,0,0,114,57,0,0,0,114,61,0,0,0, - 114,62,0,0,0,114,64,0,0,0,114,67,0,0,0,114, - 77,0,0,0,218,4,116,121,112,101,218,8,95,95,99,111, - 100,101,95,95,114,166,0,0,0,114,31,0,0,0,114,152, - 0,0,0,114,30,0,0,0,114,35,0,0,0,114,243,0, - 0,0,114,97,0,0,0,114,93,0,0,0,114,106,0,0, - 0,114,190,0,0,0,114,79,1,0,0,114,212,0,0,0, - 114,94,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,102,0,0,0, - 114,107,0,0,0,114,113,0,0,0,114,117,0,0,0,114, - 119,0,0,0,114,140,0,0,0,114,147,0,0,0,114,156, - 0,0,0,114,160,0,0,0,114,162,0,0,0,114,169,0, - 0,0,114,174,0,0,0,114,175,0,0,0,114,180,0,0, - 0,218,6,111,98,106,101,99,116,114,189,0,0,0,114,194, - 0,0,0,114,195,0,0,0,114,215,0,0,0,114,228,0, - 0,0,114,246,0,0,0,114,6,1,0,0,114,12,1,0, - 0,114,3,1,0,0,114,18,1,0,0,114,40,1,0,0, - 114,42,1,0,0,114,59,1,0,0,114,78,1,0,0,114, - 188,0,0,0,114,81,1,0,0,114,83,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,174,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,10,1,14,1,4,4,4,1,2, - 1,2,1,4,255,8,4,6,16,8,3,8,5,8,5,8, - 6,8,6,8,12,8,10,8,9,8,5,8,7,10,9,10, - 22,0,127,16,23,12,1,4,2,4,1,6,2,6,1,10, - 1,8,2,6,2,8,2,16,2,8,71,8,40,8,19,8, - 12,8,12,8,31,8,17,8,33,8,28,10,24,10,13,10, - 10,8,11,6,14,4,3,2,1,12,255,14,68,14,64,16, - 29,0,127,14,17,18,50,18,45,18,25,14,53,14,63,14, - 42,0,127,14,20,0,127,10,22,8,23,8,11,8,5,4, - 128,255,128, + 0,0,114,8,0,0,0,218,14,95,102,105,120,95,117,112, + 95,109,111,100,117,108,101,21,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, + 8,2,255,128,114,78,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,3,1,0,0,114,167,0,0,0,218,18,101, + 120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,101, + 115,114,6,1,0,0,114,106,0,0,0,114,12,1,0,0, + 114,94,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,188,0,0,0,44,6,0,0,115,10,0, + 0,0,12,5,8,1,8,1,10,1,255,128,114,188,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,114,0,0,0,41,1,114,139, + 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,55,6, + 0,0,115,4,0,0,0,8,2,255,128,114,81,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,81,1,0,0,114,188,0,0,0,114,15,0,0,0,114, + 48,1,0,0,114,171,0,0,0,114,59,1,0,0,114,73, + 1,0,0,218,9,109,101,116,97,95,112,97,116,104,114,190, + 0,0,0,114,42,1,0,0,41,2,114,80,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,60,6,0,0,115, + 10,0,0,0,8,2,6,1,20,1,16,1,255,128,114,83, + 1,0,0,41,1,114,68,0,0,0,41,1,78,41,3,78, + 78,78,41,2,114,0,0,0,0,114,0,0,0,0,41,1, + 84,41,1,78,41,1,78,41,83,114,132,0,0,0,114,139, + 0,0,0,114,167,0,0,0,114,72,0,0,0,114,15,0, + 0,0,114,81,0,0,0,114,164,0,0,0,114,22,0,0, + 0,114,211,0,0,0,90,2,110,116,114,18,0,0,0,114, + 196,0,0,0,90,5,112,111,115,105,120,114,42,0,0,0, + 218,3,97,108,108,114,45,0,0,0,114,46,0,0,0,114, + 66,0,0,0,114,25,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,24,0,0,0,114,26,0,0,0,114,21,0,0,0,114, + 33,0,0,0,114,38,0,0,0,114,40,0,0,0,114,48, + 0,0,0,114,55,0,0,0,114,57,0,0,0,114,61,0, + 0,0,114,62,0,0,0,114,64,0,0,0,114,67,0,0, + 0,114,77,0,0,0,218,4,116,121,112,101,218,8,95,95, + 99,111,100,101,95,95,114,166,0,0,0,114,31,0,0,0, + 114,152,0,0,0,114,30,0,0,0,114,35,0,0,0,114, + 243,0,0,0,114,97,0,0,0,114,93,0,0,0,114,106, + 0,0,0,114,190,0,0,0,114,79,1,0,0,114,212,0, + 0,0,114,94,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,102,0, + 0,0,114,107,0,0,0,114,113,0,0,0,114,117,0,0, + 0,114,119,0,0,0,114,140,0,0,0,114,147,0,0,0, + 114,156,0,0,0,114,160,0,0,0,114,162,0,0,0,114, + 169,0,0,0,114,174,0,0,0,114,175,0,0,0,114,180, + 0,0,0,218,6,111,98,106,101,99,116,114,189,0,0,0, + 114,194,0,0,0,114,195,0,0,0,114,215,0,0,0,114, + 228,0,0,0,114,246,0,0,0,114,6,1,0,0,114,12, + 1,0,0,114,3,1,0,0,114,18,1,0,0,114,40,1, + 0,0,114,42,1,0,0,114,59,1,0,0,114,78,1,0, + 0,114,188,0,0,0,114,81,1,0,0,114,83,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,172,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,10,1,14,1,4,4,4, + 1,2,1,2,1,4,255,8,4,6,16,8,3,8,5,8, + 5,8,6,8,6,8,12,8,10,8,9,8,5,8,7,10, + 9,10,22,0,127,16,23,12,1,4,2,4,1,6,2,6, + 1,10,1,8,2,6,2,8,2,16,2,8,71,8,40,8, + 19,8,12,8,12,8,31,8,17,8,33,8,28,10,24,10, + 13,10,10,8,11,6,14,4,3,2,1,12,255,14,68,14, + 64,16,29,0,127,14,17,18,50,18,45,18,25,14,53,14, + 63,14,42,0,127,14,20,0,127,10,22,8,23,8,11,12, + 5,255,128, }; diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h index 87f787c84a404..79f9741b770fc 100644 --- a/Python/importlib_zipimport.h +++ b/Python/importlib_zipimport.h @@ -117,7 +117,7 @@ const unsigned char _Py_M__zipimport[] = { 97,109,101,32,111,102,32,116,104,101,10,32,32,32,32,122, 105,112,102,105,108,101,32,116,97,114,103,101,116,101,100,46, 10,32,32,32,32,99,2,0,0,0,0,0,0,0,0,0, - 0,0,8,0,0,0,9,0,0,0,67,0,0,0,115,28, + 0,0,8,0,0,0,9,0,0,0,67,0,0,0,115,32, 1,0,0,116,0,124,1,116,1,131,2,115,28,100,1,100, 0,108,2,125,2,124,2,160,3,124,1,161,1,125,1,124, 1,115,44,116,4,100,2,124,1,100,3,141,2,130,1,116, @@ -134,874 +134,874 @@ const unsigned char _Py_M__zipimport[] = { 1,131,1,125,7,124,7,116,15,124,1,60,0,89,0,110, 2,48,0,124,7,124,0,95,18,124,1,124,0,95,19,116, 8,106,20,124,3,100,0,100,0,100,7,133,3,25,0,142, - 0,124,0,95,21,124,0,106,21,144,1,114,24,124,0,4, - 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,41, - 8,78,114,0,0,0,0,122,21,97,114,99,104,105,118,101, - 32,112,97,116,104,32,105,115,32,101,109,112,116,121,169,1, - 218,4,112,97,116,104,122,14,110,111,116,32,97,32,90,105, - 112,32,102,105,108,101,105,0,240,0,0,105,0,128,0,0, - 233,255,255,255,255,41,22,218,10,105,115,105,110,115,116,97, - 110,99,101,218,3,115,116,114,218,2,111,115,90,8,102,115, - 100,101,99,111,100,101,114,3,0,0,0,218,12,97,108,116, - 95,112,97,116,104,95,115,101,112,218,7,114,101,112,108,97, - 99,101,218,8,112,97,116,104,95,115,101,112,218,19,95,98, - 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97, - 108,90,10,95,112,97,116,104,95,115,116,97,116,218,7,79, - 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114, - 111,114,90,11,95,112,97,116,104,95,115,112,108,105,116,218, - 6,97,112,112,101,110,100,90,7,115,116,95,109,111,100,101, - 218,20,95,122,105,112,95,100,105,114,101,99,116,111,114,121, - 95,99,97,99,104,101,218,8,75,101,121,69,114,114,111,114, - 218,15,95,114,101,97,100,95,100,105,114,101,99,116,111,114, - 121,218,6,95,102,105,108,101,115,218,7,97,114,99,104,105, - 118,101,218,10,95,112,97,116,104,95,106,111,105,110,218,6, - 112,114,101,102,105,120,41,8,218,4,115,101,108,102,114,13, - 0,0,0,114,17,0,0,0,114,31,0,0,0,90,2,115, - 116,90,7,100,105,114,110,97,109,101,90,8,98,97,115,101, - 110,97,109,101,218,5,102,105,108,101,115,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,218,8,95,95,105,110, - 105,116,95,95,63,0,0,0,115,60,0,0,0,10,1,8, - 1,10,1,4,1,12,1,4,1,12,1,4,2,2,2,14, - 1,16,1,14,3,8,1,12,1,4,1,16,1,14,3,12, - 2,2,3,12,1,12,1,8,1,14,1,6,1,6,1,22, - 2,8,1,14,1,4,128,255,128,122,20,122,105,112,105,109, - 112,111,114,116,101,114,46,95,95,105,110,105,116,95,95,78, - 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,4,0,0,0,67,0,0,0,115,78,0,0,0,116,0, - 124,0,124,1,131,2,125,3,124,3,100,1,117,1,114,26, - 124,0,103,0,102,2,83,0,116,1,124,0,124,1,131,2, - 125,4,116,2,124,0,124,4,131,2,114,70,100,1,124,0, - 106,3,155,0,116,4,155,0,124,4,155,0,157,3,103,1, - 102,2,83,0,100,1,103,0,102,2,83,0,41,2,97,47, - 2,0,0,102,105,110,100,95,108,111,97,100,101,114,40,102, - 117,108,108,110,97,109,101,44,32,112,97,116,104,61,78,111, - 110,101,41,32,45,62,32,115,101,108,102,44,32,115,116,114, - 32,111,114,32,78,111,110,101,46,10,10,32,32,32,32,32, - 32,32,32,83,101,97,114,99,104,32,102,111,114,32,97,32, - 109,111,100,117,108,101,32,115,112,101,99,105,102,105,101,100, - 32,98,121,32,39,102,117,108,108,110,97,109,101,39,46,32, - 39,102,117,108,108,110,97,109,101,39,32,109,117,115,116,32, - 98,101,32,116,104,101,10,32,32,32,32,32,32,32,32,102, - 117,108,108,121,32,113,117,97,108,105,102,105,101,100,32,40, - 100,111,116,116,101,100,41,32,109,111,100,117,108,101,32,110, - 97,109,101,46,32,73,116,32,114,101,116,117,114,110,115,32, - 116,104,101,32,122,105,112,105,109,112,111,114,116,101,114,10, - 32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101, - 32,105,116,115,101,108,102,32,105,102,32,116,104,101,32,109, - 111,100,117,108,101,32,119,97,115,32,102,111,117,110,100,44, - 32,97,32,115,116,114,105,110,103,32,99,111,110,116,97,105, - 110,105,110,103,32,116,104,101,10,32,32,32,32,32,32,32, - 32,102,117,108,108,32,112,97,116,104,32,110,97,109,101,32, - 105,102,32,105,116,39,115,32,112,111,115,115,105,98,108,121, - 32,97,32,112,111,114,116,105,111,110,32,111,102,32,97,32, - 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103, - 101,44,10,32,32,32,32,32,32,32,32,111,114,32,78,111, - 110,101,32,111,116,104,101,114,119,105,115,101,46,32,84,104, - 101,32,111,112,116,105,111,110,97,108,32,39,112,97,116,104, - 39,32,97,114,103,117,109,101,110,116,32,105,115,32,105,103, - 110,111,114,101,100,32,45,45,32,105,116,39,115,10,32,32, - 32,32,32,32,32,32,116,104,101,114,101,32,102,111,114,32, - 99,111,109,112,97,116,105,98,105,108,105,116,121,32,119,105, - 116,104,32,116,104,101,32,105,109,112,111,114,116,101,114,32, - 112,114,111,116,111,99,111,108,46,10,10,32,32,32,32,32, - 32,32,32,68,101,112,114,101,99,97,116,101,100,32,115,105, - 110,99,101,32,80,121,116,104,111,110,32,51,46,49,48,46, - 32,85,115,101,32,102,105,110,100,95,115,112,101,99,40,41, - 32,105,110,115,116,101,97,100,46,10,32,32,32,32,32,32, - 32,32,78,41,5,218,16,95,103,101,116,95,109,111,100,117, - 108,101,95,105,110,102,111,218,16,95,103,101,116,95,109,111, - 100,117,108,101,95,112,97,116,104,218,7,95,105,115,95,100, - 105,114,114,29,0,0,0,114,20,0,0,0,41,5,114,32, - 0,0,0,218,8,102,117,108,108,110,97,109,101,114,13,0, - 0,0,218,2,109,105,218,7,109,111,100,112,97,116,104,114, + 0,124,0,95,21,124,0,106,21,144,1,114,28,124,0,4, + 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,100, + 0,83,0,41,8,78,114,0,0,0,0,122,21,97,114,99, + 104,105,118,101,32,112,97,116,104,32,105,115,32,101,109,112, + 116,121,169,1,218,4,112,97,116,104,122,14,110,111,116,32, + 97,32,90,105,112,32,102,105,108,101,105,0,240,0,0,105, + 0,128,0,0,233,255,255,255,255,41,22,218,10,105,115,105, + 110,115,116,97,110,99,101,218,3,115,116,114,218,2,111,115, + 90,8,102,115,100,101,99,111,100,101,114,3,0,0,0,218, + 12,97,108,116,95,112,97,116,104,95,115,101,112,218,7,114, + 101,112,108,97,99,101,218,8,112,97,116,104,95,115,101,112, + 218,19,95,98,111,111,116,115,116,114,97,112,95,101,120,116, + 101,114,110,97,108,90,10,95,112,97,116,104,95,115,116,97, + 116,218,7,79,83,69,114,114,111,114,218,10,86,97,108,117, + 101,69,114,114,111,114,90,11,95,112,97,116,104,95,115,112, + 108,105,116,218,6,97,112,112,101,110,100,90,7,115,116,95, + 109,111,100,101,218,20,95,122,105,112,95,100,105,114,101,99, + 116,111,114,121,95,99,97,99,104,101,218,8,75,101,121,69, + 114,114,111,114,218,15,95,114,101,97,100,95,100,105,114,101, + 99,116,111,114,121,218,6,95,102,105,108,101,115,218,7,97, + 114,99,104,105,118,101,218,10,95,112,97,116,104,95,106,111, + 105,110,218,6,112,114,101,102,105,120,41,8,218,4,115,101, + 108,102,114,13,0,0,0,114,17,0,0,0,114,31,0,0, + 0,90,2,115,116,90,7,100,105,114,110,97,109,101,90,8, + 98,97,115,101,110,97,109,101,218,5,102,105,108,101,115,114, + 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,8, + 95,95,105,110,105,116,95,95,63,0,0,0,115,60,0,0, + 0,10,1,8,1,10,1,4,1,12,1,4,1,12,1,4, + 2,2,2,14,1,16,1,14,3,8,1,12,1,4,1,16, + 1,14,3,12,2,2,3,12,1,12,1,8,1,14,1,6, + 1,6,1,22,2,8,1,18,1,4,255,255,128,122,20,122, + 105,112,105,109,112,111,114,116,101,114,46,95,95,105,110,105, + 116,95,95,78,99,3,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,4,0,0,0,67,0,0,0,115,78,0, + 0,0,116,0,124,0,124,1,131,2,125,3,124,3,100,1, + 117,1,114,26,124,0,103,0,102,2,83,0,116,1,124,0, + 124,1,131,2,125,4,116,2,124,0,124,4,131,2,114,70, + 100,1,124,0,106,3,155,0,116,4,155,0,124,4,155,0, + 157,3,103,1,102,2,83,0,100,1,103,0,102,2,83,0, + 41,2,97,47,2,0,0,102,105,110,100,95,108,111,97,100, + 101,114,40,102,117,108,108,110,97,109,101,44,32,112,97,116, + 104,61,78,111,110,101,41,32,45,62,32,115,101,108,102,44, + 32,115,116,114,32,111,114,32,78,111,110,101,46,10,10,32, + 32,32,32,32,32,32,32,83,101,97,114,99,104,32,102,111, + 114,32,97,32,109,111,100,117,108,101,32,115,112,101,99,105, + 102,105,101,100,32,98,121,32,39,102,117,108,108,110,97,109, + 101,39,46,32,39,102,117,108,108,110,97,109,101,39,32,109, + 117,115,116,32,98,101,32,116,104,101,10,32,32,32,32,32, + 32,32,32,102,117,108,108,121,32,113,117,97,108,105,102,105, + 101,100,32,40,100,111,116,116,101,100,41,32,109,111,100,117, + 108,101,32,110,97,109,101,46,32,73,116,32,114,101,116,117, + 114,110,115,32,116,104,101,32,122,105,112,105,109,112,111,114, + 116,101,114,10,32,32,32,32,32,32,32,32,105,110,115,116, + 97,110,99,101,32,105,116,115,101,108,102,32,105,102,32,116, + 104,101,32,109,111,100,117,108,101,32,119,97,115,32,102,111, + 117,110,100,44,32,97,32,115,116,114,105,110,103,32,99,111, + 110,116,97,105,110,105,110,103,32,116,104,101,10,32,32,32, + 32,32,32,32,32,102,117,108,108,32,112,97,116,104,32,110, + 97,109,101,32,105,102,32,105,116,39,115,32,112,111,115,115, + 105,98,108,121,32,97,32,112,111,114,116,105,111,110,32,111, + 102,32,97,32,110,97,109,101,115,112,97,99,101,32,112,97, + 99,107,97,103,101,44,10,32,32,32,32,32,32,32,32,111, + 114,32,78,111,110,101,32,111,116,104,101,114,119,105,115,101, + 46,32,84,104,101,32,111,112,116,105,111,110,97,108,32,39, + 112,97,116,104,39,32,97,114,103,117,109,101,110,116,32,105, + 115,32,105,103,110,111,114,101,100,32,45,45,32,105,116,39, + 115,10,32,32,32,32,32,32,32,32,116,104,101,114,101,32, + 102,111,114,32,99,111,109,112,97,116,105,98,105,108,105,116, + 121,32,119,105,116,104,32,116,104,101,32,105,109,112,111,114, + 116,101,114,32,112,114,111,116,111,99,111,108,46,10,10,32, + 32,32,32,32,32,32,32,68,101,112,114,101,99,97,116,101, + 100,32,115,105,110,99,101,32,80,121,116,104,111,110,32,51, + 46,49,48,46,32,85,115,101,32,102,105,110,100,95,115,112, + 101,99,40,41,32,105,110,115,116,101,97,100,46,10,32,32, + 32,32,32,32,32,32,78,41,5,218,16,95,103,101,116,95, + 109,111,100,117,108,101,95,105,110,102,111,218,16,95,103,101, + 116,95,109,111,100,117,108,101,95,112,97,116,104,218,7,95, + 105,115,95,100,105,114,114,29,0,0,0,114,20,0,0,0, + 41,5,114,32,0,0,0,218,8,102,117,108,108,110,97,109, + 101,114,13,0,0,0,218,2,109,105,218,7,109,111,100,112, + 97,116,104,114,9,0,0,0,114,9,0,0,0,114,10,0, + 0,0,218,11,102,105,110,100,95,108,111,97,100,101,114,109, + 0,0,0,115,16,0,0,0,10,12,8,1,8,2,10,7, + 10,1,24,4,8,2,255,128,122,23,122,105,112,105,109,112, + 111,114,116,101,114,46,102,105,110,100,95,108,111,97,100,101, + 114,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,4,0,0,0,67,0,0,0,115,16,0,0,0,124, + 0,160,0,124,1,124,2,161,2,100,1,25,0,83,0,41, + 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,32,32,32,32, + 32,83,101,97,114,99,104,32,102,111,114,32,97,32,109,111, + 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98, + 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102, + 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101, + 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108, + 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111, + 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109, + 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104, + 101,32,122,105,112,105,109,112,111,114,116,101,114,10,32,32, + 32,32,32,32,32,32,105,110,115,116,97,110,99,101,32,105, + 116,115,101,108,102,32,105,102,32,116,104,101,32,109,111,100, + 117,108,101,32,119,97,115,32,102,111,117,110,100,44,32,111, + 114,32,78,111,110,101,32,105,102,32,105,116,32,119,97,115, + 110,39,116,46,10,32,32,32,32,32,32,32,32,84,104,101, + 32,111,112,116,105,111,110,97,108,32,39,112,97,116,104,39, + 32,97,114,103,117,109,101,110,116,32,105,115,32,105,103,110, + 111,114,101,100,32,45,45,32,105,116,39,115,32,116,104,101, + 114,101,32,102,111,114,32,99,111,109,112,97,116,105,98,105, + 108,105,116,121,10,32,32,32,32,32,32,32,32,119,105,116, + 104,32,116,104,101,32,105,109,112,111,114,116,101,114,32,112, + 114,111,116,111,99,111,108,46,10,10,32,32,32,32,32,32, + 32,32,68,101,112,114,101,99,97,116,101,100,32,115,105,110, + 99,101,32,80,121,116,104,111,110,32,51,46,49,48,46,32, + 85,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32, + 105,110,115,116,101,97,100,46,10,32,32,32,32,32,32,32, + 32,114,0,0,0,0,78,41,1,114,41,0,0,0,41,3, + 114,32,0,0,0,114,38,0,0,0,114,13,0,0,0,114, 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,11, - 102,105,110,100,95,108,111,97,100,101,114,109,0,0,0,115, - 16,0,0,0,10,12,8,1,8,2,10,7,10,1,24,4, - 8,2,255,128,122,23,122,105,112,105,109,112,111,114,116,101, - 114,46,102,105,110,100,95,108,111,97,100,101,114,99,3,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0, - 0,0,67,0,0,0,115,16,0,0,0,124,0,160,0,124, - 1,124,2,161,2,100,1,25,0,83,0,41,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,32,32,32,32,32,83,101,97, - 114,99,104,32,102,111,114,32,97,32,109,111,100,117,108,101, + 102,105,110,100,95,109,111,100,117,108,101,143,0,0,0,115, + 4,0,0,0,16,11,255,128,122,23,122,105,112,105,109,112, + 111,114,116,101,114,46,102,105,110,100,95,109,111,100,117,108, + 101,99,3,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,5,0,0,0,67,0,0,0,115,108,0,0,0,116, + 0,124,0,124,1,131,2,125,3,124,3,100,1,117,1,114, + 34,116,1,106,2,124,1,124,0,124,3,100,2,141,3,83, + 0,116,3,124,0,124,1,131,2,125,4,116,4,124,0,124, + 4,131,2,114,104,124,0,106,5,155,0,116,6,155,0,124, + 4,155,0,157,3,125,5,116,1,106,7,124,1,100,1,100, + 3,100,4,141,3,125,6,124,6,106,8,160,9,124,5,161, + 1,1,0,124,6,83,0,100,1,83,0,41,5,122,107,67, + 114,101,97,116,101,32,97,32,77,111,100,117,108,101,83,112, + 101,99,32,102,111,114,32,116,104,101,32,115,112,101,99,105, + 102,105,101,100,32,109,111,100,117,108,101,46,10,10,32,32, + 32,32,32,32,32,32,82,101,116,117,114,110,115,32,78,111, + 110,101,32,105,102,32,116,104,101,32,109,111,100,117,108,101, + 32,99,97,110,110,111,116,32,98,101,32,102,111,117,110,100, + 46,10,32,32,32,32,32,32,32,32,78,41,1,218,10,105, + 115,95,112,97,99,107,97,103,101,84,41,3,218,4,110,97, + 109,101,90,6,108,111,97,100,101,114,114,43,0,0,0,41, + 10,114,35,0,0,0,218,10,95,98,111,111,116,115,116,114, + 97,112,90,16,115,112,101,99,95,102,114,111,109,95,108,111, + 97,100,101,114,114,36,0,0,0,114,37,0,0,0,114,29, + 0,0,0,114,20,0,0,0,90,10,77,111,100,117,108,101, + 83,112,101,99,90,26,115,117,98,109,111,100,117,108,101,95, + 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115, + 114,24,0,0,0,41,7,114,32,0,0,0,114,38,0,0, + 0,90,6,116,97,114,103,101,116,90,11,109,111,100,117,108, + 101,95,105,110,102,111,114,40,0,0,0,114,13,0,0,0, + 90,4,115,112,101,99,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,9,102,105,110,100,95,115,112,101,99, + 156,0,0,0,115,26,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,255,128,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,163, + 103,101,116,95,99,111,100,101,40,102,117,108,108,110,97,109, + 101,41,32,45,62,32,99,111,100,101,32,111,98,106,101,99, + 116,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, + 114,110,32,116,104,101,32,99,111,100,101,32,111,98,106,101, + 99,116,32,102,111,114,32,116,104,101,32,115,112,101,99,105, + 102,105,101,100,32,109,111,100,117,108,101,46,32,82,97,105, + 115,101,32,90,105,112,73,109,112,111,114,116,69,114,114,111, + 114,10,32,32,32,32,32,32,32,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,99,111,117,108,100,110,39,116, + 32,98,101,32,102,111,117,110,100,46,10,32,32,32,32,32, + 32,32,32,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, + 38,0,0,0,218,4,99,111,100,101,218,9,105,115,112,97, + 99,107,97,103,101,114,40,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,99, + 111,100,101,183,0,0,0,115,6,0,0,0,16,6,4,1, + 255,128,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,16,124,1,160,1,116,0, + 116,2,161,2,125,1,124,1,125,2,124,1,160,3,124,0, + 106,4,116,2,23,0,161,1,114,58,124,1,116,5,124,0, + 106,4,116,2,23,0,131,1,100,1,133,2,25,0,125,2, + 122,14,124,0,106,6,124,2,25,0,125,3,87,0,110,26, + 4,0,116,7,121,98,1,0,1,0,1,0,116,8,100,2, + 100,3,124,2,131,3,130,1,48,0,116,9,124,0,106,4, + 124,3,131,2,83,0,41,4,122,154,103,101,116,95,100,97, + 116,97,40,112,97,116,104,110,97,109,101,41,32,45,62,32, + 115,116,114,105,110,103,32,119,105,116,104,32,102,105,108,101, + 32,100,97,116,97,46,10,10,32,32,32,32,32,32,32,32, + 82,101,116,117,114,110,32,116,104,101,32,100,97,116,97,32, + 97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32, + 39,112,97,116,104,110,97,109,101,39,46,32,82,97,105,115, + 101,32,79,83,69,114,114,111,114,32,105,102,10,32,32,32, + 32,32,32,32,32,116,104,101,32,102,105,108,101,32,119,97, + 115,110,39,116,32,102,111,117,110,100,46,10,32,32,32,32, + 32,32,32,32,78,114,0,0,0,0,218,0,41,10,114,18, + 0,0,0,114,19,0,0,0,114,20,0,0,0,218,10,115, + 116,97,114,116,115,119,105,116,104,114,29,0,0,0,218,3, + 108,101,110,114,28,0,0,0,114,26,0,0,0,114,22,0, + 0,0,218,9,95,103,101,116,95,100,97,116,97,41,4,114, + 32,0,0,0,218,8,112,97,116,104,110,97,109,101,90,3, + 107,101,121,218,9,116,111,99,95,101,110,116,114,121,114,9, + 0,0,0,114,9,0,0,0,114,10,0,0,0,218,8,103, + 101,116,95,100,97,116,97,193,0,0,0,115,22,0,0,0, + 4,6,12,1,4,2,16,1,22,1,2,2,14,1,12,1, + 14,1,12,1,255,128,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,106,103,101,116,95,102,105,108,101,110,97,109,101,40,102, + 117,108,108,110,97,109,101,41,32,45,62,32,102,105,108,101, + 110,97,109,101,32,115,116,114,105,110,103,46,10,10,32,32, + 32,32,32,32,32,32,82,101,116,117,114,110,32,116,104,101, + 32,102,105,108,101,110,97,109,101,32,102,111,114,32,116,104, + 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117, + 108,101,46,10,32,32,32,32,32,32,32,32,78,114,47,0, + 0,0,114,49,0,0,0,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,218,12,103,101,116,95,102,105,108,101, + 110,97,109,101,214,0,0,0,115,6,0,0,0,16,7,4, + 1,255,128,122,24,122,105,112,105,109,112,111,114,116,101,114, + 46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0, + 0,0,67,0,0,0,115,126,0,0,0,116,0,124,0,124, + 1,131,2,125,2,124,2,100,1,117,0,114,36,116,1,100, + 2,124,1,155,2,157,2,124,1,100,3,141,2,130,1,116, + 2,124,0,124,1,131,2,125,3,124,2,114,64,116,3,160, + 4,124,3,100,4,161,2,125,4,110,10,124,3,155,0,100, + 5,157,2,125,4,122,14,124,0,106,5,124,4,25,0,125, + 5,87,0,110,20,4,0,116,6,121,108,1,0,1,0,1, + 0,89,0,100,1,83,0,48,0,116,7,124,0,106,8,124, + 5,131,2,160,9,161,0,83,0,41,6,122,253,103,101,116, + 95,115,111,117,114,99,101,40,102,117,108,108,110,97,109,101, + 41,32,45,62,32,115,111,117,114,99,101,32,115,116,114,105, + 110,103,46,10,10,32,32,32,32,32,32,32,32,82,101,116, + 117,114,110,32,116,104,101,32,115,111,117,114,99,101,32,99, + 111,100,101,32,102,111,114,32,116,104,101,32,115,112,101,99, + 105,102,105,101,100,32,109,111,100,117,108,101,46,32,82,97, + 105,115,101,32,90,105,112,73,109,112,111,114,116,69,114,114, + 111,114,10,32,32,32,32,32,32,32,32,105,102,32,116,104, + 101,32,109,111,100,117,108,101,32,99,111,117,108,100,110,39, + 116,32,98,101,32,102,111,117,110,100,44,32,114,101,116,117, + 114,110,32,78,111,110,101,32,105,102,32,116,104,101,32,97, + 114,99,104,105,118,101,32,100,111,101,115,10,32,32,32,32, + 32,32,32,32,99,111,110,116,97,105,110,32,116,104,101,32, + 109,111,100,117,108,101,44,32,98,117,116,32,104,97,115,32, + 110,111,32,115,111,117,114,99,101,32,102,111,114,32,105,116, + 46,10,32,32,32,32,32,32,32,32,78,250,18,99,97,110, + 39,116,32,102,105,110,100,32,109,111,100,117,108,101,32,169, + 1,114,44,0,0,0,250,11,95,95,105,110,105,116,95,95, + 46,112,121,250,3,46,112,121,41,10,114,35,0,0,0,114, + 3,0,0,0,114,36,0,0,0,114,21,0,0,0,114,30, + 0,0,0,114,28,0,0,0,114,26,0,0,0,114,56,0, + 0,0,114,29,0,0,0,218,6,100,101,99,111,100,101,41, + 6,114,32,0,0,0,114,38,0,0,0,114,39,0,0,0, + 114,13,0,0,0,218,8,102,117,108,108,112,97,116,104,114, + 58,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10, + 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,225, + 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,8,2,16,1, + 255,128,122,22,122,105,112,105,109,112,111,114,116,101,114,46, + 103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,67, + 0,0,0,115,40,0,0,0,116,0,124,0,124,1,131,2, + 125,2,124,2,100,1,117,0,114,36,116,1,100,2,124,1, + 155,2,157,2,124,1,100,3,141,2,130,1,124,2,83,0, + 41,4,122,171,105,115,95,112,97,99,107,97,103,101,40,102, + 117,108,108,110,97,109,101,41,32,45,62,32,98,111,111,108, + 46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,114, + 110,32,84,114,117,101,32,105,102,32,116,104,101,32,109,111, + 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98, + 121,32,102,117,108,108,110,97,109,101,32,105,115,32,97,32, + 112,97,99,107,97,103,101,46,10,32,32,32,32,32,32,32, + 32,82,97,105,115,101,32,90,105,112,73,109,112,111,114,116, + 69,114,114,111,114,32,105,102,32,116,104,101,32,109,111,100, + 117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,32, + 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,78, + 114,61,0,0,0,114,62,0,0,0,41,2,114,35,0,0, + 0,114,3,0,0,0,41,3,114,32,0,0,0,114,38,0, + 0,0,114,39,0,0,0,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,114,43,0,0,0,251,0,0,0,115, + 10,0,0,0,10,6,8,1,18,1,4,1,255,128,122,22, + 122,105,112,105,109,112,111,114,116,101,114,46,105,115,95,112, + 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0, + 0,0,0,8,0,0,0,8,0,0,0,67,0,0,0,115, + 236,0,0,0,116,0,124,0,124,1,131,2,92,3,125,2, + 125,3,125,4,116,1,106,2,160,3,124,1,161,1,125,5, + 124,5,100,1,117,0,115,46,116,4,124,5,116,5,131,2, + 115,64,116,5,124,1,131,1,125,5,124,5,116,1,106,2, + 124,1,60,0,124,0,124,5,95,6,122,84,124,3,114,108, + 116,7,124,0,124,1,131,2,125,6,116,8,160,9,124,0, + 106,10,124,6,161,2,125,7,124,7,103,1,124,5,95,11, + 116,12,124,5,100,2,131,2,115,124,116,13,124,5,95,13, + 116,8,160,14,124,5,106,15,124,1,124,4,161,3,1,0, + 116,16,124,2,124,5,106,15,131,2,1,0,87,0,110,16, + 1,0,1,0,1,0,116,1,106,2,124,1,61,0,130,0, + 122,14,116,1,106,2,124,1,25,0,125,5,87,0,110,30, + 4,0,116,17,121,216,1,0,1,0,1,0,116,18,100,3, + 124,1,155,2,100,4,157,3,131,1,130,1,48,0,116,19, + 160,20,100,5,124,1,124,4,161,3,1,0,124,5,83,0, + 41,6,97,55,1,0,0,108,111,97,100,95,109,111,100,117, + 108,101,40,102,117,108,108,110,97,109,101,41,32,45,62,32, + 109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,32, + 32,76,111,97,100,32,116,104,101,32,109,111,100,117,108,101, 32,115,112,101,99,105,102,105,101,100,32,98,121,32,39,102, 117,108,108,110,97,109,101,39,46,32,39,102,117,108,108,110, 97,109,101,39,32,109,117,115,116,32,98,101,32,116,104,101, 10,32,32,32,32,32,32,32,32,102,117,108,108,121,32,113, 117,97,108,105,102,105,101,100,32,40,100,111,116,116,101,100, 41,32,109,111,100,117,108,101,32,110,97,109,101,46,32,73, - 116,32,114,101,116,117,114,110,115,32,116,104,101,32,122,105, - 112,105,109,112,111,114,116,101,114,10,32,32,32,32,32,32, - 32,32,105,110,115,116,97,110,99,101,32,105,116,115,101,108, - 102,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32, - 119,97,115,32,102,111,117,110,100,44,32,111,114,32,78,111, - 110,101,32,105,102,32,105,116,32,119,97,115,110,39,116,46, - 10,32,32,32,32,32,32,32,32,84,104,101,32,111,112,116, - 105,111,110,97,108,32,39,112,97,116,104,39,32,97,114,103, - 117,109,101,110,116,32,105,115,32,105,103,110,111,114,101,100, - 32,45,45,32,105,116,39,115,32,116,104,101,114,101,32,102, - 111,114,32,99,111,109,112,97,116,105,98,105,108,105,116,121, - 10,32,32,32,32,32,32,32,32,119,105,116,104,32,116,104, - 101,32,105,109,112,111,114,116,101,114,32,112,114,111,116,111, - 99,111,108,46,10,10,32,32,32,32,32,32,32,32,68,101, - 112,114,101,99,97,116,101,100,32,115,105,110,99,101,32,80, - 121,116,104,111,110,32,51,46,49,48,46,32,85,115,101,32, - 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,46,10,32,32,32,32,32,32,32,32,114,0,0, - 0,0,78,41,1,114,41,0,0,0,41,3,114,32,0,0, - 0,114,38,0,0,0,114,13,0,0,0,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,218,11,102,105,110,100, - 95,109,111,100,117,108,101,143,0,0,0,115,4,0,0,0, - 16,11,255,128,122,23,122,105,112,105,109,112,111,114,116,101, - 114,46,102,105,110,100,95,109,111,100,117,108,101,99,3,0, - 0,0,0,0,0,0,0,0,0,0,7,0,0,0,5,0, - 0,0,67,0,0,0,115,108,0,0,0,116,0,124,0,124, - 1,131,2,125,3,124,3,100,1,117,1,114,34,116,1,106, - 2,124,1,124,0,124,3,100,2,141,3,83,0,116,3,124, - 0,124,1,131,2,125,4,116,4,124,0,124,4,131,2,114, - 104,124,0,106,5,155,0,116,6,155,0,124,4,155,0,157, - 3,125,5,116,1,106,7,124,1,100,1,100,3,100,4,141, - 3,125,6,124,6,106,8,160,9,124,5,161,1,1,0,124, - 6,83,0,100,1,83,0,41,5,122,107,67,114,101,97,116, - 101,32,97,32,77,111,100,117,108,101,83,112,101,99,32,102, - 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100, - 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32, - 32,32,82,101,116,117,114,110,115,32,78,111,110,101,32,105, - 102,32,116,104,101,32,109,111,100,117,108,101,32,99,97,110, - 110,111,116,32,98,101,32,102,111,117,110,100,46,10,32,32, - 32,32,32,32,32,32,78,41,1,218,10,105,115,95,112,97, - 99,107,97,103,101,84,41,3,218,4,110,97,109,101,90,6, - 108,111,97,100,101,114,114,43,0,0,0,41,10,114,35,0, - 0,0,218,10,95,98,111,111,116,115,116,114,97,112,90,16, - 115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,114, - 114,36,0,0,0,114,37,0,0,0,114,29,0,0,0,114, - 20,0,0,0,90,10,77,111,100,117,108,101,83,112,101,99, - 90,26,115,117,98,109,111,100,117,108,101,95,115,101,97,114, - 99,104,95,108,111,99,97,116,105,111,110,115,114,24,0,0, - 0,41,7,114,32,0,0,0,114,38,0,0,0,90,6,116, - 97,114,103,101,116,90,11,109,111,100,117,108,101,95,105,110, - 102,111,114,40,0,0,0,114,13,0,0,0,90,4,115,112, - 101,99,114,9,0,0,0,114,9,0,0,0,114,10,0,0, - 0,218,9,102,105,110,100,95,115,112,101,99,156,0,0,0, - 115,26,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,255,128,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,163,103,101,116,95, - 99,111,100,101,40,102,117,108,108,110,97,109,101,41,32,45, - 62,32,99,111,100,101,32,111,98,106,101,99,116,46,10,10, - 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116, - 104,101,32,99,111,100,101,32,111,98,106,101,99,116,32,102, - 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100, - 32,109,111,100,117,108,101,46,32,82,97,105,115,101,32,90, - 105,112,73,109,112,111,114,116,69,114,114,111,114,10,32,32, - 32,32,32,32,32,32,105,102,32,116,104,101,32,109,111,100, - 117,108,101,32,99,111,117,108,100,110,39,116,32,98,101,32, - 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,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,38,0,0,0, - 218,4,99,111,100,101,218,9,105,115,112,97,99,107,97,103, - 101,114,40,0,0,0,114,9,0,0,0,114,9,0,0,0, - 114,10,0,0,0,218,8,103,101,116,95,99,111,100,101,183, - 0,0,0,115,6,0,0,0,16,6,4,1,255,128,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,16,124,1,160,1,116,0,116,2,161,2, - 125,1,124,1,125,2,124,1,160,3,124,0,106,4,116,2, - 23,0,161,1,114,58,124,1,116,5,124,0,106,4,116,2, - 23,0,131,1,100,1,133,2,25,0,125,2,122,14,124,0, - 106,6,124,2,25,0,125,3,87,0,110,26,4,0,116,7, - 121,98,1,0,1,0,1,0,116,8,100,2,100,3,124,2, - 131,3,130,1,48,0,116,9,124,0,106,4,124,3,131,2, - 83,0,41,4,122,154,103,101,116,95,100,97,116,97,40,112, - 97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,105, - 110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,116, - 97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, - 114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,111, - 99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,116, - 104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,83, - 69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,32, - 32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,116, - 32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,32, - 78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,114, - 19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,116, - 115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,114, - 28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,9, - 95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,0, - 218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,218, - 9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,100, - 97,116,97,193,0,0,0,115,22,0,0,0,4,6,12,1, - 4,2,16,1,22,1,2,2,14,1,12,1,14,1,12,1, - 255,128,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,106,103,101, - 116,95,102,105,108,101,110,97,109,101,40,102,117,108,108,110, - 97,109,101,41,32,45,62,32,102,105,108,101,110,97,109,101, - 32,115,116,114,105,110,103,46,10,10,32,32,32,32,32,32, - 32,32,82,101,116,117,114,110,32,116,104,101,32,102,105,108, - 101,110,97,109,101,32,102,111,114,32,116,104,101,32,115,112, - 101,99,105,102,105,101,100,32,109,111,100,117,108,101,46,10, - 32,32,32,32,32,32,32,32,78,114,47,0,0,0,114,49, - 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,218,12,103,101,116,95,102,105,108,101,110,97,109,101, - 214,0,0,0,115,6,0,0,0,16,7,4,1,255,128,122, - 24,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116, - 95,102,105,108,101,110,97,109,101,99,2,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,0, - 0,0,115,126,0,0,0,116,0,124,0,124,1,131,2,125, - 2,124,2,100,1,117,0,114,36,116,1,100,2,124,1,155, - 2,157,2,124,1,100,3,141,2,130,1,116,2,124,0,124, - 1,131,2,125,3,124,2,114,64,116,3,160,4,124,3,100, - 4,161,2,125,4,110,10,124,3,155,0,100,5,157,2,125, - 4,122,14,124,0,106,5,124,4,25,0,125,5,87,0,110, - 20,4,0,116,6,121,108,1,0,1,0,1,0,89,0,100, - 1,83,0,48,0,116,7,124,0,106,8,124,5,131,2,160, - 9,161,0,83,0,41,6,122,253,103,101,116,95,115,111,117, - 114,99,101,40,102,117,108,108,110,97,109,101,41,32,45,62, - 32,115,111,117,114,99,101,32,115,116,114,105,110,103,46,10, - 10,32,32,32,32,32,32,32,32,82,101,116,117,114,110,32, - 116,104,101,32,115,111,117,114,99,101,32,99,111,100,101,32, - 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101, - 100,32,109,111,100,117,108,101,46,32,82,97,105,115,101,32, - 90,105,112,73,109,112,111,114,116,69,114,114,111,114,10,32, - 32,32,32,32,32,32,32,105,102,32,116,104,101,32,109,111, - 100,117,108,101,32,99,111,117,108,100,110,39,116,32,98,101, - 32,102,111,117,110,100,44,32,114,101,116,117,114,110,32,78, - 111,110,101,32,105,102,32,116,104,101,32,97,114,99,104,105, - 118,101,32,100,111,101,115,10,32,32,32,32,32,32,32,32, - 99,111,110,116,97,105,110,32,116,104,101,32,109,111,100,117, - 108,101,44,32,98,117,116,32,104,97,115,32,110,111,32,115, - 111,117,114,99,101,32,102,111,114,32,105,116,46,10,32,32, - 32,32,32,32,32,32,78,250,18,99,97,110,39,116,32,102, - 105,110,100,32,109,111,100,117,108,101,32,169,1,114,44,0, - 0,0,250,11,95,95,105,110,105,116,95,95,46,112,121,250, - 3,46,112,121,41,10,114,35,0,0,0,114,3,0,0,0, - 114,36,0,0,0,114,21,0,0,0,114,30,0,0,0,114, - 28,0,0,0,114,26,0,0,0,114,56,0,0,0,114,29, - 0,0,0,218,6,100,101,99,111,100,101,41,6,114,32,0, - 0,0,114,38,0,0,0,114,39,0,0,0,114,13,0,0, - 0,218,8,102,117,108,108,112,97,116,104,114,58,0,0,0, + 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,119,97,115,110,39,116,32,102,111,117, + 110,100,46,10,10,32,32,32,32,32,32,32,32,68,101,112, + 114,101,99,97,116,101,100,32,115,105,110,99,101,32,80,121, + 116,104,111,110,32,51,46,49,48,46,32,117,115,101,32,101, + 120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,115, + 116,101,97,100,46,10,32,32,32,32,32,32,32,32,78,218, + 12,95,95,98,117,105,108,116,105,110,115,95,95,122,14,76, + 111,97,100,101,100,32,109,111,100,117,108,101,32,122,25,32, + 110,111,116,32,102,111,117,110,100,32,105,110,32,115,121,115, + 46,109,111,100,117,108,101,115,122,30,105,109,112,111,114,116, + 32,123,125,32,35,32,108,111,97,100,101,100,32,102,114,111, + 109,32,90,105,112,32,123,125,41,21,114,48,0,0,0,218, + 3,115,121,115,218,7,109,111,100,117,108,101,115,218,3,103, + 101,116,114,15,0,0,0,218,12,95,109,111,100,117,108,101, + 95,116,121,112,101,218,10,95,95,108,111,97,100,101,114,95, + 95,114,36,0,0,0,114,21,0,0,0,114,30,0,0,0, + 114,29,0,0,0,90,8,95,95,112,97,116,104,95,95,218, + 7,104,97,115,97,116,116,114,114,68,0,0,0,90,14,95, + 102,105,120,95,117,112,95,109,111,100,117,108,101,218,8,95, + 95,100,105,99,116,95,95,218,4,101,120,101,99,114,26,0, + 0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,114, + 45,0,0,0,218,16,95,118,101,114,98,111,115,101,95,109, + 101,115,115,97,103,101,41,8,114,32,0,0,0,114,38,0, + 0,0,114,50,0,0,0,114,51,0,0,0,114,40,0,0, + 0,90,3,109,111,100,114,13,0,0,0,114,66,0,0,0, 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 10,103,101,116,95,115,111,117,114,99,101,225,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,8,2,16,1,255,128,122,22, - 122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95, - 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,4,0,0,0,67,0,0,0,115, - 40,0,0,0,116,0,124,0,124,1,131,2,125,2,124,2, - 100,1,117,0,114,36,116,1,100,2,124,1,155,2,157,2, - 124,1,100,3,141,2,130,1,124,2,83,0,41,4,122,171, - 105,115,95,112,97,99,107,97,103,101,40,102,117,108,108,110, - 97,109,101,41,32,45,62,32,98,111,111,108,46,10,10,32, - 32,32,32,32,32,32,32,82,101,116,117,114,110,32,84,114, - 117,101,32,105,102,32,116,104,101,32,109,111,100,117,108,101, - 32,115,112,101,99,105,102,105,101,100,32,98,121,32,102,117, - 108,108,110,97,109,101,32,105,115,32,97,32,112,97,99,107, - 97,103,101,46,10,32,32,32,32,32,32,32,32,82,97,105, - 115,101,32,90,105,112,73,109,112,111,114,116,69,114,114,111, - 114,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32, - 99,111,117,108,100,110,39,116,32,98,101,32,102,111,117,110, - 100,46,10,32,32,32,32,32,32,32,32,78,114,61,0,0, - 0,114,62,0,0,0,41,2,114,35,0,0,0,114,3,0, - 0,0,41,3,114,32,0,0,0,114,38,0,0,0,114,39, - 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,43,0,0,0,251,0,0,0,115,10,0,0,0, - 10,6,8,1,18,1,4,1,255,128,122,22,122,105,112,105, - 109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,97, - 103,101,99,2,0,0,0,0,0,0,0,0,0,0,0,8, - 0,0,0,8,0,0,0,67,0,0,0,115,236,0,0,0, - 116,0,124,0,124,1,131,2,92,3,125,2,125,3,125,4, - 116,1,106,2,160,3,124,1,161,1,125,5,124,5,100,1, - 117,0,115,46,116,4,124,5,116,5,131,2,115,64,116,5, - 124,1,131,1,125,5,124,5,116,1,106,2,124,1,60,0, - 124,0,124,5,95,6,122,84,124,3,114,108,116,7,124,0, - 124,1,131,2,125,6,116,8,160,9,124,0,106,10,124,6, - 161,2,125,7,124,7,103,1,124,5,95,11,116,12,124,5, - 100,2,131,2,115,124,116,13,124,5,95,13,116,8,160,14, - 124,5,106,15,124,1,124,4,161,3,1,0,116,16,124,2, - 124,5,106,15,131,2,1,0,87,0,110,16,1,0,1,0, - 1,0,116,1,106,2,124,1,61,0,130,0,122,14,116,1, - 106,2,124,1,25,0,125,5,87,0,110,30,4,0,116,17, - 121,216,1,0,1,0,1,0,116,18,100,3,124,1,155,2, - 100,4,157,3,131,1,130,1,48,0,116,19,160,20,100,5, - 124,1,124,4,161,3,1,0,124,5,83,0,41,6,97,55, - 1,0,0,108,111,97,100,95,109,111,100,117,108,101,40,102, - 117,108,108,110,97,109,101,41,32,45,62,32,109,111,100,117, - 108,101,46,10,10,32,32,32,32,32,32,32,32,76,111,97, - 100,32,116,104,101,32,109,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,119,97,115,110,39,116,32,102,111,117,110,100,46,10, - 10,32,32,32,32,32,32,32,32,68,101,112,114,101,99,97, - 116,101,100,32,115,105,110,99,101,32,80,121,116,104,111,110, - 32,51,46,49,48,46,32,117,115,101,32,101,120,101,99,95, - 109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,100, - 46,10,32,32,32,32,32,32,32,32,78,218,12,95,95,98, - 117,105,108,116,105,110,115,95,95,122,14,76,111,97,100,101, - 100,32,109,111,100,117,108,101,32,122,25,32,110,111,116,32, - 102,111,117,110,100,32,105,110,32,115,121,115,46,109,111,100, - 117,108,101,115,122,30,105,109,112,111,114,116,32,123,125,32, - 35,32,108,111,97,100,101,100,32,102,114,111,109,32,90,105, - 112,32,123,125,41,21,114,48,0,0,0,218,3,115,121,115, - 218,7,109,111,100,117,108,101,115,218,3,103,101,116,114,15, - 0,0,0,218,12,95,109,111,100,117,108,101,95,116,121,112, - 101,218,10,95,95,108,111,97,100,101,114,95,95,114,36,0, - 0,0,114,21,0,0,0,114,30,0,0,0,114,29,0,0, - 0,90,8,95,95,112,97,116,104,95,95,218,7,104,97,115, - 97,116,116,114,114,68,0,0,0,90,14,95,102,105,120,95, - 117,112,95,109,111,100,117,108,101,218,8,95,95,100,105,99, - 116,95,95,218,4,101,120,101,99,114,26,0,0,0,218,11, - 73,109,112,111,114,116,69,114,114,111,114,114,45,0,0,0, - 218,16,95,118,101,114,98,111,115,101,95,109,101,115,115,97, - 103,101,41,8,114,32,0,0,0,114,38,0,0,0,114,50, - 0,0,0,114,51,0,0,0,114,40,0,0,0,90,3,109, - 111,100,114,13,0,0,0,114,66,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,218,11,108,111,97, - 100,95,109,111,100,117,108,101,8,1,0,0,115,50,0,0, - 0,16,9,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,18,1,14,1,4, - 1,255,128,122,23,122,105,112,105,109,112,111,114,116,101,114, - 46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0, - 0,67,0,0,0,115,64,0,0,0,122,20,124,0,160,0, - 124,1,161,1,115,18,87,0,100,1,83,0,87,0,110,20, - 4,0,116,1,121,40,1,0,1,0,1,0,89,0,100,1, - 83,0,48,0,100,2,100,3,108,2,109,3,125,2,1,0, - 124,2,124,0,124,1,131,2,83,0,41,4,122,204,82,101, - 116,117,114,110,32,116,104,101,32,82,101,115,111,117,114,99, - 101,82,101,97,100,101,114,32,102,111,114,32,97,32,112,97, - 99,107,97,103,101,32,105,110,32,97,32,122,105,112,32,102, - 105,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102, - 32,39,102,117,108,108,110,97,109,101,39,32,105,115,32,97, - 32,112,97,99,107,97,103,101,32,119,105,116,104,105,110,32, - 116,104,101,32,122,105,112,32,102,105,108,101,44,32,114,101, - 116,117,114,110,32,116,104,101,10,32,32,32,32,32,32,32, - 32,39,82,101,115,111,117,114,99,101,82,101,97,100,101,114, - 39,32,111,98,106,101,99,116,32,102,111,114,32,116,104,101, - 32,112,97,99,107,97,103,101,46,32,32,79,116,104,101,114, - 119,105,115,101,32,114,101,116,117,114,110,32,78,111,110,101, - 46,10,32,32,32,32,32,32,32,32,78,114,0,0,0,0, - 41,1,218,9,90,105,112,82,101,97,100,101,114,41,4,114, - 43,0,0,0,114,3,0,0,0,90,17,105,109,112,111,114, - 116,108,105,98,46,114,101,97,100,101,114,115,114,80,0,0, - 0,41,3,114,32,0,0,0,114,38,0,0,0,114,80,0, - 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0, - 0,218,19,103,101,116,95,114,101,115,111,117,114,99,101,95, - 114,101,97,100,101,114,48,1,0,0,115,16,0,0,0,2, - 6,10,1,10,1,12,1,8,1,12,1,10,1,255,128,122, - 31,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116, - 95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,114, - 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,5,0,0,0,67,0,0,0,115,24,0,0,0,100,1, - 124,0,106,0,155,0,116,1,155,0,124,0,106,2,155,0, - 100,2,157,5,83,0,41,3,78,122,21,60,122,105,112,105, - 109,112,111,114,116,101,114,32,111,98,106,101,99,116,32,34, - 122,2,34,62,41,3,114,29,0,0,0,114,20,0,0,0, - 114,31,0,0,0,41,1,114,32,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,218,8,95,95,114, - 101,112,114,95,95,63,1,0,0,115,4,0,0,0,24,1, - 255,128,122,20,122,105,112,105,109,112,111,114,116,101,114,46, - 95,95,114,101,112,114,95,95,41,1,78,41,1,78,41,1, - 78,41,16,114,6,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,7,95,95,100,111,99,95,95,114,34,0,0,0, - 114,41,0,0,0,114,42,0,0,0,114,46,0,0,0,114, - 52,0,0,0,114,59,0,0,0,114,60,0,0,0,114,67, - 0,0,0,114,43,0,0,0,114,79,0,0,0,114,81,0, - 0,0,114,82,0,0,0,114,9,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,114,4,0,0,0, - 45,0,0,0,115,30,0,0,0,8,0,4,1,8,17,10, - 46,10,34,10,13,8,27,8,10,8,21,8,11,8,26,8, - 13,8,40,12,15,255,128,122,12,95,95,105,110,105,116,95, - 95,46,112,121,99,84,114,63,0,0,0,70,41,3,122,4, - 46,112,121,99,84,70,41,3,114,64,0,0,0,70,70,99, - 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 4,0,0,0,67,0,0,0,115,20,0,0,0,124,0,106, - 0,124,1,160,1,100,1,161,1,100,2,25,0,23,0,83, - 0,41,3,78,218,1,46,233,2,0,0,0,41,2,114,31, - 0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,41, - 2,114,32,0,0,0,114,38,0,0,0,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,114,36,0,0,0,81, - 1,0,0,115,4,0,0,0,20,1,255,128,114,36,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,2,0,0,0,67,0,0,0,115,18,0,0,0,124, - 1,116,0,23,0,125,2,124,2,124,0,106,1,118,0,83, - 0,169,1,78,41,2,114,20,0,0,0,114,28,0,0,0, - 41,3,114,32,0,0,0,114,13,0,0,0,90,7,100,105, - 114,112,97,116,104,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,37,0,0,0,85,1,0,0,115,6,0, - 0,0,8,4,10,2,255,128,114,37,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0, - 0,0,67,0,0,0,115,54,0,0,0,116,0,124,0,124, - 1,131,2,125,2,116,1,68,0,93,34,92,3,125,3,125, - 4,125,5,124,2,124,3,23,0,125,6,124,6,124,0,106, - 2,118,0,114,14,124,5,2,0,1,0,83,0,100,0,83, - 0,114,87,0,0,0,41,3,114,36,0,0,0,218,16,95, - 122,105,112,95,115,101,97,114,99,104,111,114,100,101,114,114, - 28,0,0,0,41,7,114,32,0,0,0,114,38,0,0,0, - 114,13,0,0,0,218,6,115,117,102,102,105,120,218,10,105, - 115,98,121,116,101,99,111,100,101,114,51,0,0,0,114,66, - 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,35,0,0,0,94,1,0,0,115,14,0,0,0, - 10,1,14,1,8,1,10,1,8,1,4,1,255,128,114,35, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 26,0,0,0,9,0,0,0,67,0,0,0,115,230,4,0, - 0,122,14,116,0,160,1,124,0,161,1,125,1,87,0,110, - 32,4,0,116,2,121,46,1,0,1,0,1,0,116,3,100, - 1,124,0,155,2,157,2,124,0,100,2,141,2,130,1,48, - 0,124,1,144,4,143,140,1,0,122,36,124,1,160,4,116, - 5,11,0,100,3,161,2,1,0,124,1,160,6,161,0,125, - 2,124,1,160,7,116,5,161,1,125,3,87,0,110,32,4, - 0,116,2,121,124,1,0,1,0,1,0,116,3,100,4,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,48,0,116, - 8,124,3,131,1,116,5,107,3,114,156,116,3,100,4,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,3,100, - 0,100,5,133,2,25,0,116,9,107,3,144,1,114,154,122, - 24,124,1,160,4,100,6,100,3,161,2,1,0,124,1,160, - 6,161,0,125,4,87,0,110,32,4,0,116,2,121,230,1, - 0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,48,0,116,10,124,4,116,11,24, - 0,116,5,24,0,100,6,131,2,125,5,122,22,124,1,160, - 4,124,5,161,1,1,0,124,1,160,7,161,0,125,6,87, - 0,110,34,4,0,116,2,144,1,121,50,1,0,1,0,1, - 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,48,0,124,6,160,12,116,9,161,1,125,7,124, - 7,100,6,107,0,144,1,114,90,116,3,100,7,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,124,6,124,7,124, - 7,116,5,23,0,133,2,25,0,125,3,116,8,124,3,131, - 1,116,5,107,3,144,1,114,138,116,3,100,8,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,124,4,116,8,124, - 6,131,1,24,0,124,7,23,0,125,2,116,13,124,3,100, - 9,100,10,133,2,25,0,131,1,125,8,116,13,124,3,100, - 10,100,11,133,2,25,0,131,1,125,9,124,2,124,8,107, - 0,144,1,114,214,116,3,100,12,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,124,2,124,9,107,0,144,1,114, - 242,116,3,100,13,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,124,2,124,8,56,0,125,2,124,2,124,9,24, - 0,125,10,124,10,100,6,107,0,144,2,114,30,116,3,100, - 14,124,0,155,2,157,2,124,0,100,2,141,2,130,1,105, - 0,125,11,100,6,125,12,122,14,124,1,160,4,124,2,161, - 1,1,0,87,0,110,34,4,0,116,2,144,2,121,86,1, + 11,108,111,97,100,95,109,111,100,117,108,101,8,1,0,0, + 115,50,0,0,0,16,9,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,18, + 1,14,1,4,1,255,128,122,23,122,105,112,105,109,112,111, + 114,116,101,114,46,108,111,97,100,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,8,0,0,0,67,0,0,0,115,64,0,0,0,122,20, + 124,0,160,0,124,1,161,1,115,18,87,0,100,1,83,0, + 87,0,110,20,4,0,116,1,121,40,1,0,1,0,1,0, + 89,0,100,1,83,0,48,0,100,2,100,3,108,2,109,3, + 125,2,1,0,124,2,124,0,124,1,131,2,83,0,41,4, + 122,204,82,101,116,117,114,110,32,116,104,101,32,82,101,115, + 111,117,114,99,101,82,101,97,100,101,114,32,102,111,114,32, + 97,32,112,97,99,107,97,103,101,32,105,110,32,97,32,122, + 105,112,32,102,105,108,101,46,10,10,32,32,32,32,32,32, + 32,32,73,102,32,39,102,117,108,108,110,97,109,101,39,32, + 105,115,32,97,32,112,97,99,107,97,103,101,32,119,105,116, + 104,105,110,32,116,104,101,32,122,105,112,32,102,105,108,101, + 44,32,114,101,116,117,114,110,32,116,104,101,10,32,32,32, + 32,32,32,32,32,39,82,101,115,111,117,114,99,101,82,101, + 97,100,101,114,39,32,111,98,106,101,99,116,32,102,111,114, + 32,116,104,101,32,112,97,99,107,97,103,101,46,32,32,79, + 116,104,101,114,119,105,115,101,32,114,101,116,117,114,110,32, + 78,111,110,101,46,10,32,32,32,32,32,32,32,32,78,114, + 0,0,0,0,41,1,218,9,90,105,112,82,101,97,100,101, + 114,41,4,114,43,0,0,0,114,3,0,0,0,90,17,105, + 109,112,111,114,116,108,105,98,46,114,101,97,100,101,114,115, + 114,80,0,0,0,41,3,114,32,0,0,0,114,38,0,0, + 0,114,80,0,0,0,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,19,103,101,116,95,114,101,115,111,117, + 114,99,101,95,114,101,97,100,101,114,48,1,0,0,115,16, + 0,0,0,2,6,10,1,10,1,12,1,8,1,12,1,10, + 1,255,128,122,31,122,105,112,105,109,112,111,114,116,101,114, + 46,103,101,116,95,114,101,115,111,117,114,99,101,95,114,101, + 97,100,101,114,99,1,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,5,0,0,0,67,0,0,0,115,24,0, + 0,0,100,1,124,0,106,0,155,0,116,1,155,0,124,0, + 106,2,155,0,100,2,157,5,83,0,41,3,78,122,21,60, + 122,105,112,105,109,112,111,114,116,101,114,32,111,98,106,101, + 99,116,32,34,122,2,34,62,41,3,114,29,0,0,0,114, + 20,0,0,0,114,31,0,0,0,41,1,114,32,0,0,0, + 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, + 8,95,95,114,101,112,114,95,95,63,1,0,0,115,4,0, + 0,0,24,1,255,128,122,20,122,105,112,105,109,112,111,114, + 116,101,114,46,95,95,114,101,112,114,95,95,41,1,78,41, + 1,78,41,1,78,41,16,114,6,0,0,0,114,7,0,0, + 0,114,8,0,0,0,218,7,95,95,100,111,99,95,95,114, + 34,0,0,0,114,41,0,0,0,114,42,0,0,0,114,46, + 0,0,0,114,52,0,0,0,114,59,0,0,0,114,60,0, + 0,0,114,67,0,0,0,114,43,0,0,0,114,79,0,0, + 0,114,81,0,0,0,114,82,0,0,0,114,9,0,0,0, + 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,114, + 4,0,0,0,45,0,0,0,115,30,0,0,0,8,0,4, + 1,8,17,10,46,10,34,10,13,8,27,8,10,8,21,8, + 11,8,26,8,13,8,40,12,15,255,128,122,12,95,95,105, + 110,105,116,95,95,46,112,121,99,84,114,63,0,0,0,70, + 41,3,122,4,46,112,121,99,84,70,41,3,114,64,0,0, + 0,70,70,99,2,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,4,0,0,0,67,0,0,0,115,20,0,0, + 0,124,0,106,0,124,1,160,1,100,1,161,1,100,2,25, + 0,23,0,83,0,41,3,78,218,1,46,233,2,0,0,0, + 41,2,114,31,0,0,0,218,10,114,112,97,114,116,105,116, + 105,111,110,41,2,114,32,0,0,0,114,38,0,0,0,114, + 9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,36, + 0,0,0,81,1,0,0,115,4,0,0,0,20,1,255,128, + 114,36,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,18, + 0,0,0,124,1,116,0,23,0,125,2,124,2,124,0,106, + 1,118,0,83,0,169,1,78,41,2,114,20,0,0,0,114, + 28,0,0,0,41,3,114,32,0,0,0,114,13,0,0,0, + 90,7,100,105,114,112,97,116,104,114,9,0,0,0,114,9, + 0,0,0,114,10,0,0,0,114,37,0,0,0,85,1,0, + 0,115,6,0,0,0,8,4,10,2,255,128,114,37,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,4,0,0,0,67,0,0,0,115,54,0,0,0,116, + 0,124,0,124,1,131,2,125,2,116,1,68,0,93,34,92, + 3,125,3,125,4,125,5,124,2,124,3,23,0,125,6,124, + 6,124,0,106,2,118,0,114,14,124,5,2,0,1,0,83, + 0,100,0,83,0,114,87,0,0,0,41,3,114,36,0,0, + 0,218,16,95,122,105,112,95,115,101,97,114,99,104,111,114, + 100,101,114,114,28,0,0,0,41,7,114,32,0,0,0,114, + 38,0,0,0,114,13,0,0,0,218,6,115,117,102,102,105, + 120,218,10,105,115,98,121,116,101,99,111,100,101,114,51,0, + 0,0,114,66,0,0,0,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,114,35,0,0,0,94,1,0,0,115, + 14,0,0,0,10,1,14,1,8,1,10,1,8,1,4,1, + 255,128,114,35,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,26,0,0,0,9,0,0,0,67,0,0,0, + 115,230,4,0,0,122,14,116,0,160,1,124,0,161,1,125, + 1,87,0,110,32,4,0,116,2,121,46,1,0,1,0,1, + 0,116,3,100,1,124,0,155,2,157,2,124,0,100,2,141, + 2,130,1,48,0,124,1,144,4,143,140,1,0,122,36,124, + 1,160,4,116,5,11,0,100,3,161,2,1,0,124,1,160, + 6,161,0,125,2,124,1,160,7,116,5,161,1,125,3,87, + 0,110,32,4,0,116,2,121,124,1,0,1,0,1,0,116, + 3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,48,0,116,8,124,3,131,1,116,5,107,3,114,156,116, + 3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,124,3,100,0,100,5,133,2,25,0,116,9,107,3,144, + 1,114,154,122,24,124,1,160,4,100,6,100,3,161,2,1, + 0,124,1,160,6,161,0,125,4,87,0,110,32,4,0,116, + 2,121,230,1,0,1,0,1,0,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,48,0,116,10,124, + 4,116,11,24,0,116,5,24,0,100,6,131,2,125,5,122, + 22,124,1,160,4,124,5,161,1,1,0,124,1,160,7,161, + 0,125,6,87,0,110,34,4,0,116,2,144,1,121,50,1, 0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,48,0,124,1,160,7,100,15,161, - 1,125,3,116,8,124,3,131,1,100,5,107,0,144,2,114, - 120,116,14,100,16,131,1,130,1,124,3,100,0,100,5,133, - 2,25,0,100,17,107,3,144,2,114,142,144,4,113,180,116, - 8,124,3,131,1,100,15,107,3,144,2,114,164,116,14,100, - 16,131,1,130,1,116,15,124,3,100,18,100,19,133,2,25, - 0,131,1,125,13,116,15,124,3,100,19,100,9,133,2,25, - 0,131,1,125,14,116,15,124,3,100,9,100,20,133,2,25, - 0,131,1,125,15,116,15,124,3,100,20,100,10,133,2,25, - 0,131,1,125,16,116,13,124,3,100,10,100,11,133,2,25, - 0,131,1,125,17,116,13,124,3,100,11,100,21,133,2,25, - 0,131,1,125,18,116,13,124,3,100,21,100,22,133,2,25, - 0,131,1,125,4,116,15,124,3,100,22,100,23,133,2,25, - 0,131,1,125,19,116,15,124,3,100,23,100,24,133,2,25, - 0,131,1,125,20,116,15,124,3,100,24,100,25,133,2,25, - 0,131,1,125,21,116,13,124,3,100,26,100,15,133,2,25, - 0,131,1,125,22,124,19,124,20,23,0,124,21,23,0,125, - 8,124,22,124,9,107,4,144,3,114,124,116,3,100,27,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,22,124, - 10,55,0,125,22,122,14,124,1,160,7,124,19,161,1,125, - 23,87,0,110,34,4,0,116,2,144,3,121,180,1,0,1, - 0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,48,0,116,8,124,23,131,1,124,19,107, - 3,144,3,114,214,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,122,50,116,8,124,1,160,7,124, - 8,124,19,24,0,161,1,131,1,124,8,124,19,24,0,107, - 3,144,4,114,6,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,87,0,110,34,4,0,116,2,144, - 4,121,42,1,0,1,0,1,0,116,3,100,4,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,48,0,124,13,100, - 28,64,0,144,4,114,64,124,23,160,16,161,0,125,23,110, - 52,122,14,124,23,160,16,100,29,161,1,125,23,87,0,110, - 36,4,0,116,17,144,4,121,114,1,0,1,0,1,0,124, - 23,160,16,100,30,161,1,160,18,116,19,161,1,125,23,89, - 0,110,2,48,0,124,23,160,20,100,31,116,21,161,2,125, - 23,116,22,160,23,124,0,124,23,161,2,125,24,124,24,124, - 14,124,18,124,4,124,22,124,15,124,16,124,17,102,8,125, - 25,124,25,124,11,124,23,60,0,124,12,100,32,55,0,125, - 12,144,2,113,88,87,0,100,0,4,0,4,0,131,3,1, - 0,110,18,49,0,144,4,115,202,48,0,1,0,1,0,1, - 0,89,0,1,0,116,24,160,25,100,33,124,12,124,0,161, - 3,1,0,124,11,83,0,41,34,78,122,21,99,97,110,39, - 116,32,111,112,101,110,32,90,105,112,32,102,105,108,101,58, - 32,114,12,0,0,0,114,85,0,0,0,250,21,99,97,110, - 39,116,32,114,101,97,100,32,90,105,112,32,102,105,108,101, - 58,32,233,4,0,0,0,114,0,0,0,0,122,16,110,111, - 116,32,97,32,90,105,112,32,102,105,108,101,58,32,122,18, - 99,111,114,114,117,112,116,32,90,105,112,32,102,105,108,101, - 58,32,233,12,0,0,0,233,16,0,0,0,233,20,0,0, - 0,122,28,98,97,100,32,99,101,110,116,114,97,108,32,100, - 105,114,101,99,116,111,114,121,32,115,105,122,101,58,32,122, - 30,98,97,100,32,99,101,110,116,114,97,108,32,100,105,114, - 101,99,116,111,114,121,32,111,102,102,115,101,116,58,32,122, - 38,98,97,100,32,99,101,110,116,114,97,108,32,100,105,114, - 101,99,116,111,114,121,32,115,105,122,101,32,111,114,32,111, - 102,102,115,101,116,58,32,233,46,0,0,0,250,27,69,79, - 70,32,114,101,97,100,32,119,104,101,114,101,32,110,111,116, - 32,101,120,112,101,99,116,101,100,115,4,0,0,0,80,75, - 1,2,233,8,0,0,0,233,10,0,0,0,233,14,0,0, - 0,233,24,0,0,0,233,28,0,0,0,233,30,0,0,0, - 233,32,0,0,0,233,34,0,0,0,233,42,0,0,0,122, - 25,98,97,100,32,108,111,99,97,108,32,104,101,97,100,101, - 114,32,111,102,102,115,101,116,58,32,105,0,8,0,0,218, - 5,97,115,99,105,105,90,6,108,97,116,105,110,49,250,1, - 47,114,5,0,0,0,122,33,122,105,112,105,109,112,111,114, - 116,58,32,102,111,117,110,100,32,123,125,32,110,97,109,101, - 115,32,105,110,32,123,33,114,125,41,26,218,3,95,105,111, - 218,9,111,112,101,110,95,99,111,100,101,114,22,0,0,0, - 114,3,0,0,0,218,4,115,101,101,107,218,20,69,78,68, - 95,67,69,78,84,82,65,76,95,68,73,82,95,83,73,90, - 69,90,4,116,101,108,108,218,4,114,101,97,100,114,55,0, - 0,0,218,18,83,84,82,73,78,71,95,69,78,68,95,65, - 82,67,72,73,86,69,218,3,109,97,120,218,15,77,65,88, - 95,67,79,77,77,69,78,84,95,76,69,78,218,5,114,102, - 105,110,100,114,2,0,0,0,218,8,69,79,70,69,114,114, - 111,114,114,1,0,0,0,114,65,0,0,0,218,18,85,110, - 105,99,111,100,101,68,101,99,111,100,101,69,114,114,111,114, - 218,9,116,114,97,110,115,108,97,116,101,218,11,99,112,52, - 51,55,95,116,97,98,108,101,114,19,0,0,0,114,20,0, - 0,0,114,21,0,0,0,114,30,0,0,0,114,45,0,0, - 0,114,78,0,0,0,41,26,114,29,0,0,0,218,2,102, - 112,90,15,104,101,97,100,101,114,95,112,111,115,105,116,105, - 111,110,218,6,98,117,102,102,101,114,218,9,102,105,108,101, - 95,115,105,122,101,90,17,109,97,120,95,99,111,109,109,101, - 110,116,95,115,116,97,114,116,218,4,100,97,116,97,90,3, - 112,111,115,218,11,104,101,97,100,101,114,95,115,105,122,101, - 90,13,104,101,97,100,101,114,95,111,102,102,115,101,116,90, - 10,97,114,99,95,111,102,102,115,101,116,114,33,0,0,0, - 218,5,99,111,117,110,116,218,5,102,108,97,103,115,218,8, - 99,111,109,112,114,101,115,115,218,4,116,105,109,101,218,4, - 100,97,116,101,218,3,99,114,99,218,9,100,97,116,97,95, - 115,105,122,101,218,9,110,97,109,101,95,115,105,122,101,218, - 10,101,120,116,114,97,95,115,105,122,101,90,12,99,111,109, - 109,101,110,116,95,115,105,122,101,218,11,102,105,108,101,95, - 111,102,102,115,101,116,114,44,0,0,0,114,13,0,0,0, - 218,1,116,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,27,0,0,0,125,1,0,0,115,214,0,0,0, - 2,1,14,1,12,1,20,1,8,2,2,1,14,1,8,1, - 14,1,12,1,20,1,12,1,18,1,18,1,2,3,12,1, - 12,1,12,1,10,1,2,1,8,255,8,2,2,1,2,255, - 2,1,4,255,2,2,10,1,12,1,14,1,10,1,2,1, - 8,255,10,2,10,1,10,1,2,1,6,255,16,2,14,1, - 10,1,2,1,6,255,16,2,16,2,16,1,10,1,18,1, - 10,1,18,1,8,1,8,1,10,1,18,1,4,2,4,2, - 2,1,14,1,14,1,20,1,10,2,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,20,1,14,1,18,1, - 2,4,28,1,22,1,14,1,20,1,10,2,10,2,2,3, - 14,1,14,1,22,1,12,2,12,1,20,1,8,1,44,1, - 14,1,4,1,255,128,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,22, - 116,1,160,2,100,1,161,1,1,0,116,3,100,2,131,1, - 130,1,100,3,97,0,122,58,122,16,100,4,100,5,108,4, - 109,5,125,0,1,0,87,0,110,32,4,0,116,6,121,76, - 1,0,1,0,1,0,116,1,160,2,100,1,161,1,1,0, - 116,3,100,2,131,1,130,1,48,0,87,0,100,6,97,0, - 110,6,100,6,97,0,48,0,116,1,160,2,100,7,161,1, - 1,0,124,0,83,0,41,8,78,122,27,122,105,112,105,109, - 112,111,114,116,58,32,122,108,105,98,32,85,78,65,86,65, - 73,76,65,66,76,69,250,41,99,97,110,39,116,32,100,101, - 99,111,109,112,114,101,115,115,32,100,97,116,97,59,32,122, - 108,105,98,32,110,111,116,32,97,118,97,105,108,97,98,108, - 101,84,114,0,0,0,0,169,1,218,10,100,101,99,111,109, - 112,114,101,115,115,70,122,25,122,105,112,105,109,112,111,114, - 116,58,32,122,108,105,98,32,97,118,97,105,108,97,98,108, - 101,41,7,218,15,95,105,109,112,111,114,116,105,110,103,95, - 122,108,105,98,114,45,0,0,0,114,78,0,0,0,114,3, - 0,0,0,90,4,122,108,105,98,114,140,0,0,0,218,9, - 69,120,99,101,112,116,105,111,110,114,139,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,218,20,95, - 103,101,116,95,100,101,99,111,109,112,114,101,115,115,95,102, - 117,110,99,27,2,0,0,115,26,0,0,0,4,2,10,3, - 8,1,4,2,4,1,16,1,12,1,10,1,12,1,12,2, - 10,2,4,1,255,128,114,143,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,17,0,0,0,9,0,0,0, - 67,0,0,0,115,132,1,0,0,124,1,92,8,125,2,125, - 3,125,4,125,5,125,6,125,7,125,8,125,9,124,4,100, - 1,107,0,114,36,116,0,100,2,131,1,130,1,116,1,160, - 2,124,0,161,1,144,1,143,6,125,10,122,14,124,10,160, - 3,124,6,161,1,1,0,87,0,110,32,4,0,116,4,121, - 96,1,0,1,0,1,0,116,0,100,3,124,0,155,2,157, - 2,124,0,100,4,141,2,130,1,48,0,124,10,160,5,100, - 5,161,1,125,11,116,6,124,11,131,1,100,5,107,3,114, - 128,116,7,100,6,131,1,130,1,124,11,100,0,100,7,133, - 2,25,0,100,8,107,3,114,162,116,0,100,9,124,0,155, - 2,157,2,124,0,100,4,141,2,130,1,116,8,124,11,100, - 10,100,11,133,2,25,0,131,1,125,12,116,8,124,11,100, - 11,100,5,133,2,25,0,131,1,125,13,100,5,124,12,23, - 0,124,13,23,0,125,14,124,6,124,14,55,0,125,6,122, - 14,124,10,160,3,124,6,161,1,1,0,87,0,110,34,4, - 0,116,4,144,1,121,6,1,0,1,0,1,0,116,0,100, - 3,124,0,155,2,157,2,124,0,100,4,141,2,130,1,48, - 0,124,10,160,5,124,4,161,1,125,15,116,6,124,15,131, - 1,124,4,107,3,144,1,114,40,116,4,100,12,131,1,130, - 1,87,0,100,0,4,0,4,0,131,3,1,0,110,18,49, - 0,144,1,115,62,48,0,1,0,1,0,1,0,89,0,1, - 0,124,3,100,1,107,2,144,1,114,86,124,15,83,0,122, - 10,116,9,131,0,125,16,87,0,110,24,4,0,116,10,144, - 1,121,120,1,0,1,0,1,0,116,0,100,13,131,1,130, - 1,48,0,124,16,124,15,100,14,131,2,83,0,41,15,78, - 114,0,0,0,0,122,18,110,101,103,97,116,105,118,101,32, - 100,97,116,97,32,115,105,122,101,114,91,0,0,0,114,12, - 0,0,0,114,103,0,0,0,114,97,0,0,0,114,92,0, - 0,0,115,4,0,0,0,80,75,3,4,122,23,98,97,100, - 32,108,111,99,97,108,32,102,105,108,101,32,104,101,97,100, - 101,114,58,32,233,26,0,0,0,114,102,0,0,0,122,26, - 122,105,112,105,109,112,111,114,116,58,32,99,97,110,39,116, - 32,114,101,97,100,32,100,97,116,97,114,138,0,0,0,105, - 241,255,255,255,41,11,114,3,0,0,0,114,109,0,0,0, - 114,110,0,0,0,114,111,0,0,0,114,22,0,0,0,114, - 113,0,0,0,114,55,0,0,0,114,118,0,0,0,114,1, - 0,0,0,114,143,0,0,0,114,142,0,0,0,41,17,114, - 29,0,0,0,114,58,0,0,0,90,8,100,97,116,97,112, - 97,116,104,114,129,0,0,0,114,133,0,0,0,114,124,0, - 0,0,114,136,0,0,0,114,130,0,0,0,114,131,0,0, - 0,114,132,0,0,0,114,122,0,0,0,114,123,0,0,0, - 114,134,0,0,0,114,135,0,0,0,114,126,0,0,0,90, - 8,114,97,119,95,100,97,116,97,114,140,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,114,56,0, - 0,0,48,2,0,0,115,64,0,0,0,20,1,8,1,8, - 1,14,2,2,2,14,1,12,1,20,1,10,1,12,1,8, - 1,16,2,18,2,16,2,16,1,12,1,8,1,2,1,14, - 1,14,1,20,1,10,1,14,1,40,1,10,2,4,2,2, - 3,10,1,14,1,10,1,10,1,255,128,114,56,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,3,0,0,0,67,0,0,0,115,16,0,0,0,116,0, - 124,0,124,1,24,0,131,1,100,1,107,1,83,0,41,2, - 78,114,5,0,0,0,41,1,218,3,97,98,115,41,2,90, - 2,116,49,90,2,116,50,114,9,0,0,0,114,9,0,0, - 0,114,10,0,0,0,218,9,95,101,113,95,109,116,105,109, - 101,94,2,0,0,115,4,0,0,0,16,2,255,128,114,146, - 0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,0, - 14,0,0,0,8,0,0,0,67,0,0,0,115,60,1,0, - 0,124,3,124,2,100,1,156,2,125,5,122,18,116,0,160, - 1,124,4,124,3,124,5,161,3,125,6,87,0,110,20,4, - 0,116,2,121,48,1,0,1,0,1,0,89,0,100,0,83, - 0,48,0,124,6,100,2,64,0,100,3,107,3,125,7,124, - 7,114,182,124,6,100,4,64,0,100,3,107,3,125,8,116, - 3,106,4,100,5,107,3,144,1,114,10,124,8,115,106,116, - 3,106,4,100,6,107,2,144,1,114,10,116,5,124,0,124, - 2,131,2,125,9,124,9,100,0,117,1,144,1,114,10,116, - 3,160,6,116,0,106,7,124,9,161,2,125,10,122,20,116, - 0,160,8,124,4,124,10,124,3,124,5,161,4,1,0,87, - 0,110,104,4,0,116,2,121,180,1,0,1,0,1,0,89, - 0,100,0,83,0,48,0,116,9,124,0,124,2,131,2,92, - 2,125,11,125,12,124,11,144,1,114,10,116,10,116,11,124, - 4,100,7,100,8,133,2,25,0,131,1,124,11,131,2,114, - 246,116,11,124,4,100,8,100,9,133,2,25,0,131,1,124, - 12,107,3,144,1,114,10,116,12,160,13,100,10,124,3,155, - 2,157,2,161,1,1,0,100,0,83,0,116,14,160,15,124, - 4,100,9,100,0,133,2,25,0,161,1,125,13,116,16,124, - 13,116,17,131,2,144,1,115,56,116,18,100,11,124,1,155, - 2,100,12,157,3,131,1,130,1,124,13,83,0,41,13,78, - 41,2,114,44,0,0,0,114,13,0,0,0,114,5,0,0, - 0,114,0,0,0,0,114,85,0,0,0,90,5,110,101,118, - 101,114,90,6,97,108,119,97,121,115,114,98,0,0,0,114, - 93,0,0,0,114,94,0,0,0,122,22,98,121,116,101,99, - 111,100,101,32,105,115,32,115,116,97,108,101,32,102,111,114, - 32,122,16,99,111,109,112,105,108,101,100,32,109,111,100,117, - 108,101,32,122,21,32,105,115,32,110,111,116,32,97,32,99, - 111,100,101,32,111,98,106,101,99,116,41,19,114,21,0,0, - 0,90,13,95,99,108,97,115,115,105,102,121,95,112,121,99, - 114,77,0,0,0,218,4,95,105,109,112,90,21,99,104,101, - 99,107,95,104,97,115,104,95,98,97,115,101,100,95,112,121, - 99,115,218,15,95,103,101,116,95,112,121,99,95,115,111,117, - 114,99,101,218,11,115,111,117,114,99,101,95,104,97,115,104, - 90,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77, - 66,69,82,90,18,95,118,97,108,105,100,97,116,101,95,104, - 97,115,104,95,112,121,99,218,29,95,103,101,116,95,109,116, - 105,109,101,95,97,110,100,95,115,105,122,101,95,111,102,95, - 115,111,117,114,99,101,114,146,0,0,0,114,2,0,0,0, - 114,45,0,0,0,114,78,0,0,0,218,7,109,97,114,115, - 104,97,108,90,5,108,111,97,100,115,114,15,0,0,0,218, - 10,95,99,111,100,101,95,116,121,112,101,218,9,84,121,112, - 101,69,114,114,111,114,41,14,114,32,0,0,0,114,57,0, - 0,0,114,66,0,0,0,114,38,0,0,0,114,125,0,0, - 0,90,11,101,120,99,95,100,101,116,97,105,108,115,114,128, - 0,0,0,90,10,104,97,115,104,95,98,97,115,101,100,90, - 12,99,104,101,99,107,95,115,111,117,114,99,101,90,12,115, - 111,117,114,99,101,95,98,121,116,101,115,114,149,0,0,0, - 90,12,115,111,117,114,99,101,95,109,116,105,109,101,90,11, - 115,111,117,114,99,101,95,115,105,122,101,114,50,0,0,0, + 0,100,2,141,2,130,1,48,0,124,6,160,12,116,9,161, + 1,125,7,124,7,100,6,107,0,144,1,114,90,116,3,100, + 7,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, + 6,124,7,124,7,116,5,23,0,133,2,25,0,125,3,116, + 8,124,3,131,1,116,5,107,3,144,1,114,138,116,3,100, + 8,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, + 4,116,8,124,6,131,1,24,0,124,7,23,0,125,2,116, + 13,124,3,100,9,100,10,133,2,25,0,131,1,125,8,116, + 13,124,3,100,10,100,11,133,2,25,0,131,1,125,9,124, + 2,124,8,107,0,144,1,114,214,116,3,100,12,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,124,2,124,9,107, + 0,144,1,114,242,116,3,100,13,124,0,155,2,157,2,124, + 0,100,2,141,2,130,1,124,2,124,8,56,0,125,2,124, + 2,124,9,24,0,125,10,124,10,100,6,107,0,144,2,114, + 30,116,3,100,14,124,0,155,2,157,2,124,0,100,2,141, + 2,130,1,105,0,125,11,100,6,125,12,122,14,124,1,160, + 4,124,2,161,1,1,0,87,0,110,34,4,0,116,2,144, + 2,121,86,1,0,1,0,1,0,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,48,0,124,1,160, + 7,100,15,161,1,125,3,116,8,124,3,131,1,100,5,107, + 0,144,2,114,120,116,14,100,16,131,1,130,1,124,3,100, + 0,100,5,133,2,25,0,100,17,107,3,144,2,114,142,144, + 4,113,180,116,8,124,3,131,1,100,15,107,3,144,2,114, + 164,116,14,100,16,131,1,130,1,116,15,124,3,100,18,100, + 19,133,2,25,0,131,1,125,13,116,15,124,3,100,19,100, + 9,133,2,25,0,131,1,125,14,116,15,124,3,100,9,100, + 20,133,2,25,0,131,1,125,15,116,15,124,3,100,20,100, + 10,133,2,25,0,131,1,125,16,116,13,124,3,100,10,100, + 11,133,2,25,0,131,1,125,17,116,13,124,3,100,11,100, + 21,133,2,25,0,131,1,125,18,116,13,124,3,100,21,100, + 22,133,2,25,0,131,1,125,4,116,15,124,3,100,22,100, + 23,133,2,25,0,131,1,125,19,116,15,124,3,100,23,100, + 24,133,2,25,0,131,1,125,20,116,15,124,3,100,24,100, + 25,133,2,25,0,131,1,125,21,116,13,124,3,100,26,100, + 15,133,2,25,0,131,1,125,22,124,19,124,20,23,0,124, + 21,23,0,125,8,124,22,124,9,107,4,144,3,114,124,116, + 3,100,27,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,124,22,124,10,55,0,125,22,122,14,124,1,160,7,124, + 19,161,1,125,23,87,0,110,34,4,0,116,2,144,3,121, + 180,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, + 2,124,0,100,2,141,2,130,1,48,0,116,8,124,23,131, + 1,124,19,107,3,144,3,114,214,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,122,50,116,8,124, + 1,160,7,124,8,124,19,24,0,161,1,131,1,124,8,124, + 19,24,0,107,3,144,4,114,6,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,87,0,110,34,4, + 0,116,2,144,4,121,42,1,0,1,0,1,0,116,3,100, + 4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,48, + 0,124,13,100,28,64,0,144,4,114,64,124,23,160,16,161, + 0,125,23,110,52,122,14,124,23,160,16,100,29,161,1,125, + 23,87,0,110,36,4,0,116,17,144,4,121,114,1,0,1, + 0,1,0,124,23,160,16,100,30,161,1,160,18,116,19,161, + 1,125,23,89,0,110,2,48,0,124,23,160,20,100,31,116, + 21,161,2,125,23,116,22,160,23,124,0,124,23,161,2,125, + 24,124,24,124,14,124,18,124,4,124,22,124,15,124,16,124, + 17,102,8,125,25,124,25,124,11,124,23,60,0,124,12,100, + 32,55,0,125,12,144,2,113,88,87,0,100,0,4,0,4, + 0,131,3,1,0,110,18,49,0,144,4,115,202,48,0,1, + 0,1,0,1,0,89,0,1,0,116,24,160,25,100,33,124, + 12,124,0,161,3,1,0,124,11,83,0,41,34,78,122,21, + 99,97,110,39,116,32,111,112,101,110,32,90,105,112,32,102, + 105,108,101,58,32,114,12,0,0,0,114,85,0,0,0,250, + 21,99,97,110,39,116,32,114,101,97,100,32,90,105,112,32, + 102,105,108,101,58,32,233,4,0,0,0,114,0,0,0,0, + 122,16,110,111,116,32,97,32,90,105,112,32,102,105,108,101, + 58,32,122,18,99,111,114,114,117,112,116,32,90,105,112,32, + 102,105,108,101,58,32,233,12,0,0,0,233,16,0,0,0, + 233,20,0,0,0,122,28,98,97,100,32,99,101,110,116,114, + 97,108,32,100,105,114,101,99,116,111,114,121,32,115,105,122, + 101,58,32,122,30,98,97,100,32,99,101,110,116,114,97,108, + 32,100,105,114,101,99,116,111,114,121,32,111,102,102,115,101, + 116,58,32,122,38,98,97,100,32,99,101,110,116,114,97,108, + 32,100,105,114,101,99,116,111,114,121,32,115,105,122,101,32, + 111,114,32,111,102,102,115,101,116,58,32,233,46,0,0,0, + 250,27,69,79,70,32,114,101,97,100,32,119,104,101,114,101, + 32,110,111,116,32,101,120,112,101,99,116,101,100,115,4,0, + 0,0,80,75,1,2,233,8,0,0,0,233,10,0,0,0, + 233,14,0,0,0,233,24,0,0,0,233,28,0,0,0,233, + 30,0,0,0,233,32,0,0,0,233,34,0,0,0,233,42, + 0,0,0,122,25,98,97,100,32,108,111,99,97,108,32,104, + 101,97,100,101,114,32,111,102,102,115,101,116,58,32,105,0, + 8,0,0,218,5,97,115,99,105,105,90,6,108,97,116,105, + 110,49,250,1,47,114,5,0,0,0,122,33,122,105,112,105, + 109,112,111,114,116,58,32,102,111,117,110,100,32,123,125,32, + 110,97,109,101,115,32,105,110,32,123,33,114,125,41,26,218, + 3,95,105,111,218,9,111,112,101,110,95,99,111,100,101,114, + 22,0,0,0,114,3,0,0,0,218,4,115,101,101,107,218, + 20,69,78,68,95,67,69,78,84,82,65,76,95,68,73,82, + 95,83,73,90,69,90,4,116,101,108,108,218,4,114,101,97, + 100,114,55,0,0,0,218,18,83,84,82,73,78,71,95,69, + 78,68,95,65,82,67,72,73,86,69,218,3,109,97,120,218, + 15,77,65,88,95,67,79,77,77,69,78,84,95,76,69,78, + 218,5,114,102,105,110,100,114,2,0,0,0,218,8,69,79, + 70,69,114,114,111,114,114,1,0,0,0,114,65,0,0,0, + 218,18,85,110,105,99,111,100,101,68,101,99,111,100,101,69, + 114,114,111,114,218,9,116,114,97,110,115,108,97,116,101,218, + 11,99,112,52,51,55,95,116,97,98,108,101,114,19,0,0, + 0,114,20,0,0,0,114,21,0,0,0,114,30,0,0,0, + 114,45,0,0,0,114,78,0,0,0,41,26,114,29,0,0, + 0,218,2,102,112,90,15,104,101,97,100,101,114,95,112,111, + 115,105,116,105,111,110,218,6,98,117,102,102,101,114,218,9, + 102,105,108,101,95,115,105,122,101,90,17,109,97,120,95,99, + 111,109,109,101,110,116,95,115,116,97,114,116,218,4,100,97, + 116,97,90,3,112,111,115,218,11,104,101,97,100,101,114,95, + 115,105,122,101,90,13,104,101,97,100,101,114,95,111,102,102, + 115,101,116,90,10,97,114,99,95,111,102,102,115,101,116,114, + 33,0,0,0,218,5,99,111,117,110,116,218,5,102,108,97, + 103,115,218,8,99,111,109,112,114,101,115,115,218,4,116,105, + 109,101,218,4,100,97,116,101,218,3,99,114,99,218,9,100, + 97,116,97,95,115,105,122,101,218,9,110,97,109,101,95,115, + 105,122,101,218,10,101,120,116,114,97,95,115,105,122,101,90, + 12,99,111,109,109,101,110,116,95,115,105,122,101,218,11,102, + 105,108,101,95,111,102,102,115,101,116,114,44,0,0,0,114, + 13,0,0,0,218,1,116,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,114,27,0,0,0,125,1,0,0,115, + 214,0,0,0,2,1,14,1,12,1,20,1,8,2,2,1, + 14,1,8,1,14,1,12,1,20,1,12,1,18,1,18,1, + 2,3,12,1,12,1,12,1,10,1,2,1,8,255,8,2, + 2,1,2,255,2,1,4,255,2,2,10,1,12,1,14,1, + 10,1,2,1,8,255,10,2,10,1,10,1,2,1,6,255, + 16,2,14,1,10,1,2,1,6,255,16,2,16,2,16,1, + 10,1,18,1,10,1,18,1,8,1,8,1,10,1,18,1, + 4,2,4,2,2,1,14,1,14,1,20,1,10,2,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,20,1, + 14,1,18,1,2,4,28,1,22,1,14,1,20,1,10,2, + 10,2,2,3,14,1,14,1,22,1,12,2,12,1,20,1, + 8,1,44,1,14,1,4,1,255,128,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,22,116,1,160,2,100,1,161,1,1,0,116,3, + 100,2,131,1,130,1,100,3,97,0,122,58,122,16,100,4, + 100,5,108,4,109,5,125,0,1,0,87,0,110,32,4,0, + 116,6,121,76,1,0,1,0,1,0,116,1,160,2,100,1, + 161,1,1,0,116,3,100,2,131,1,130,1,48,0,87,0, + 100,6,97,0,110,6,100,6,97,0,48,0,116,1,160,2, + 100,7,161,1,1,0,124,0,83,0,41,8,78,122,27,122, + 105,112,105,109,112,111,114,116,58,32,122,108,105,98,32,85, + 78,65,86,65,73,76,65,66,76,69,250,41,99,97,110,39, + 116,32,100,101,99,111,109,112,114,101,115,115,32,100,97,116, + 97,59,32,122,108,105,98,32,110,111,116,32,97,118,97,105, + 108,97,98,108,101,84,114,0,0,0,0,169,1,218,10,100, + 101,99,111,109,112,114,101,115,115,70,122,25,122,105,112,105, + 109,112,111,114,116,58,32,122,108,105,98,32,97,118,97,105, + 108,97,98,108,101,41,7,218,15,95,105,109,112,111,114,116, + 105,110,103,95,122,108,105,98,114,45,0,0,0,114,78,0, + 0,0,114,3,0,0,0,90,4,122,108,105,98,114,140,0, + 0,0,218,9,69,120,99,101,112,116,105,111,110,114,139,0, + 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,218,20,95,103,101,116,95,100,101,99,111,109,112,114,101, + 115,115,95,102,117,110,99,27,2,0,0,115,26,0,0,0, + 4,2,10,3,8,1,4,2,4,1,16,1,12,1,10,1, + 12,1,12,2,10,2,4,1,255,128,114,143,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0, + 9,0,0,0,67,0,0,0,115,132,1,0,0,124,1,92, + 8,125,2,125,3,125,4,125,5,125,6,125,7,125,8,125, + 9,124,4,100,1,107,0,114,36,116,0,100,2,131,1,130, + 1,116,1,160,2,124,0,161,1,144,1,143,6,125,10,122, + 14,124,10,160,3,124,6,161,1,1,0,87,0,110,32,4, + 0,116,4,121,96,1,0,1,0,1,0,116,0,100,3,124, + 0,155,2,157,2,124,0,100,4,141,2,130,1,48,0,124, + 10,160,5,100,5,161,1,125,11,116,6,124,11,131,1,100, + 5,107,3,114,128,116,7,100,6,131,1,130,1,124,11,100, + 0,100,7,133,2,25,0,100,8,107,3,114,162,116,0,100, + 9,124,0,155,2,157,2,124,0,100,4,141,2,130,1,116, + 8,124,11,100,10,100,11,133,2,25,0,131,1,125,12,116, + 8,124,11,100,11,100,5,133,2,25,0,131,1,125,13,100, + 5,124,12,23,0,124,13,23,0,125,14,124,6,124,14,55, + 0,125,6,122,14,124,10,160,3,124,6,161,1,1,0,87, + 0,110,34,4,0,116,4,144,1,121,6,1,0,1,0,1, + 0,116,0,100,3,124,0,155,2,157,2,124,0,100,4,141, + 2,130,1,48,0,124,10,160,5,124,4,161,1,125,15,116, + 6,124,15,131,1,124,4,107,3,144,1,114,40,116,4,100, + 12,131,1,130,1,87,0,100,0,4,0,4,0,131,3,1, + 0,110,18,49,0,144,1,115,62,48,0,1,0,1,0,1, + 0,89,0,1,0,124,3,100,1,107,2,144,1,114,86,124, + 15,83,0,122,10,116,9,131,0,125,16,87,0,110,24,4, + 0,116,10,144,1,121,120,1,0,1,0,1,0,116,0,100, + 13,131,1,130,1,48,0,124,16,124,15,100,14,131,2,83, + 0,41,15,78,114,0,0,0,0,122,18,110,101,103,97,116, + 105,118,101,32,100,97,116,97,32,115,105,122,101,114,91,0, + 0,0,114,12,0,0,0,114,103,0,0,0,114,97,0,0, + 0,114,92,0,0,0,115,4,0,0,0,80,75,3,4,122, + 23,98,97,100,32,108,111,99,97,108,32,102,105,108,101,32, + 104,101,97,100,101,114,58,32,233,26,0,0,0,114,102,0, + 0,0,122,26,122,105,112,105,109,112,111,114,116,58,32,99, + 97,110,39,116,32,114,101,97,100,32,100,97,116,97,114,138, + 0,0,0,105,241,255,255,255,41,11,114,3,0,0,0,114, + 109,0,0,0,114,110,0,0,0,114,111,0,0,0,114,22, + 0,0,0,114,113,0,0,0,114,55,0,0,0,114,118,0, + 0,0,114,1,0,0,0,114,143,0,0,0,114,142,0,0, + 0,41,17,114,29,0,0,0,114,58,0,0,0,90,8,100, + 97,116,97,112,97,116,104,114,129,0,0,0,114,133,0,0, + 0,114,124,0,0,0,114,136,0,0,0,114,130,0,0,0, + 114,131,0,0,0,114,132,0,0,0,114,122,0,0,0,114, + 123,0,0,0,114,134,0,0,0,114,135,0,0,0,114,126, + 0,0,0,90,8,114,97,119,95,100,97,116,97,114,140,0, + 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,114,56,0,0,0,48,2,0,0,115,64,0,0,0,20, + 1,8,1,8,1,14,2,2,2,14,1,12,1,20,1,10, + 1,12,1,8,1,16,2,18,2,16,2,16,1,12,1,8, + 1,2,1,14,1,14,1,20,1,10,1,14,1,40,1,10, + 2,4,2,2,3,10,1,14,1,10,1,10,1,255,128,114, + 56,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,3,0,0,0,67,0,0,0,115,16,0, + 0,0,116,0,124,0,124,1,24,0,131,1,100,1,107,1, + 83,0,41,2,78,114,5,0,0,0,41,1,218,3,97,98, + 115,41,2,90,2,116,49,90,2,116,50,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,9,95,101,113,95, + 109,116,105,109,101,94,2,0,0,115,4,0,0,0,16,2, + 255,128,114,146,0,0,0,99,5,0,0,0,0,0,0,0, + 0,0,0,0,14,0,0,0,8,0,0,0,67,0,0,0, + 115,60,1,0,0,124,3,124,2,100,1,156,2,125,5,122, + 18,116,0,160,1,124,4,124,3,124,5,161,3,125,6,87, + 0,110,20,4,0,116,2,121,48,1,0,1,0,1,0,89, + 0,100,0,83,0,48,0,124,6,100,2,64,0,100,3,107, + 3,125,7,124,7,114,182,124,6,100,4,64,0,100,3,107, + 3,125,8,116,3,106,4,100,5,107,3,144,1,114,10,124, + 8,115,106,116,3,106,4,100,6,107,2,144,1,114,10,116, + 5,124,0,124,2,131,2,125,9,124,9,100,0,117,1,144, + 1,114,10,116,3,160,6,116,0,106,7,124,9,161,2,125, + 10,122,20,116,0,160,8,124,4,124,10,124,3,124,5,161, + 4,1,0,87,0,110,104,4,0,116,2,121,180,1,0,1, + 0,1,0,89,0,100,0,83,0,48,0,116,9,124,0,124, + 2,131,2,92,2,125,11,125,12,124,11,144,1,114,10,116, + 10,116,11,124,4,100,7,100,8,133,2,25,0,131,1,124, + 11,131,2,114,246,116,11,124,4,100,8,100,9,133,2,25, + 0,131,1,124,12,107,3,144,1,114,10,116,12,160,13,100, + 10,124,3,155,2,157,2,161,1,1,0,100,0,83,0,116, + 14,160,15,124,4,100,9,100,0,133,2,25,0,161,1,125, + 13,116,16,124,13,116,17,131,2,144,1,115,56,116,18,100, + 11,124,1,155,2,100,12,157,3,131,1,130,1,124,13,83, + 0,41,13,78,41,2,114,44,0,0,0,114,13,0,0,0, + 114,5,0,0,0,114,0,0,0,0,114,85,0,0,0,90, + 5,110,101,118,101,114,90,6,97,108,119,97,121,115,114,98, + 0,0,0,114,93,0,0,0,114,94,0,0,0,122,22,98, + 121,116,101,99,111,100,101,32,105,115,32,115,116,97,108,101, + 32,102,111,114,32,122,16,99,111,109,112,105,108,101,100,32, + 109,111,100,117,108,101,32,122,21,32,105,115,32,110,111,116, + 32,97,32,99,111,100,101,32,111,98,106,101,99,116,41,19, + 114,21,0,0,0,90,13,95,99,108,97,115,115,105,102,121, + 95,112,121,99,114,77,0,0,0,218,4,95,105,109,112,90, + 21,99,104,101,99,107,95,104,97,115,104,95,98,97,115,101, + 100,95,112,121,99,115,218,15,95,103,101,116,95,112,121,99, + 95,115,111,117,114,99,101,218,11,115,111,117,114,99,101,95, + 104,97,115,104,90,17,95,82,65,87,95,77,65,71,73,67, + 95,78,85,77,66,69,82,90,18,95,118,97,108,105,100,97, + 116,101,95,104,97,115,104,95,112,121,99,218,29,95,103,101, + 116,95,109,116,105,109,101,95,97,110,100,95,115,105,122,101, + 95,111,102,95,115,111,117,114,99,101,114,146,0,0,0,114, + 2,0,0,0,114,45,0,0,0,114,78,0,0,0,218,7, + 109,97,114,115,104,97,108,90,5,108,111,97,100,115,114,15, + 0,0,0,218,10,95,99,111,100,101,95,116,121,112,101,218, + 9,84,121,112,101,69,114,114,111,114,41,14,114,32,0,0, + 0,114,57,0,0,0,114,66,0,0,0,114,38,0,0,0, + 114,125,0,0,0,90,11,101,120,99,95,100,101,116,97,105, + 108,115,114,128,0,0,0,90,10,104,97,115,104,95,98,97, + 115,101,100,90,12,99,104,101,99,107,95,115,111,117,114,99, + 101,90,12,115,111,117,114,99,101,95,98,121,116,101,115,114, + 149,0,0,0,90,12,115,111,117,114,99,101,95,109,116,105, + 109,101,90,11,115,111,117,114,99,101,95,115,105,122,101,114, + 50,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10, + 0,0,0,218,15,95,117,110,109,97,114,115,104,97,108,95, + 99,111,100,101,104,2,0,0,115,84,0,0,0,2,2,2, + 1,6,254,2,5,18,1,12,1,8,1,12,2,4,1,12, + 1,12,1,2,1,2,255,8,1,4,255,10,2,10,1,4, + 1,4,1,2,1,4,254,2,5,4,1,8,1,8,255,12, + 2,8,1,8,3,6,255,6,3,22,3,18,1,4,255,4, + 2,8,1,4,255,4,2,18,2,12,1,16,1,4,1,255, + 128,114,154,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,115, + 28,0,0,0,124,0,160,0,100,1,100,2,161,2,125,0, + 124,0,160,0,100,3,100,2,161,2,125,0,124,0,83,0, + 41,4,78,115,2,0,0,0,13,10,243,1,0,0,0,10, + 243,1,0,0,0,13,41,1,114,19,0,0,0,41,1,218, + 6,115,111,117,114,99,101,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,218,23,95,110,111,114,109,97,108,105, + 122,101,95,108,105,110,101,95,101,110,100,105,110,103,115,155, + 2,0,0,115,8,0,0,0,12,1,12,1,4,1,255,128, + 114,158,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,24, + 0,0,0,116,0,124,1,131,1,125,1,116,1,124,1,124, + 0,100,1,100,2,100,3,141,4,83,0,41,4,78,114,76, + 0,0,0,84,41,1,90,12,100,111,110,116,95,105,110,104, + 101,114,105,116,41,2,114,158,0,0,0,218,7,99,111,109, + 112,105,108,101,41,2,114,57,0,0,0,114,157,0,0,0, 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 15,95,117,110,109,97,114,115,104,97,108,95,99,111,100,101, - 104,2,0,0,115,84,0,0,0,2,2,2,1,6,254,2, - 5,18,1,12,1,8,1,12,2,4,1,12,1,12,1,2, - 1,2,255,8,1,4,255,10,2,10,1,4,1,4,1,2, - 1,4,254,2,5,4,1,8,1,8,255,12,2,8,1,8, - 3,6,255,6,3,22,3,18,1,4,255,4,2,8,1,4, - 255,4,2,18,2,12,1,16,1,4,1,255,128,114,154,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,0, - 124,0,160,0,100,1,100,2,161,2,125,0,124,0,160,0, - 100,3,100,2,161,2,125,0,124,0,83,0,41,4,78,115, - 2,0,0,0,13,10,243,1,0,0,0,10,243,1,0,0, - 0,13,41,1,114,19,0,0,0,41,1,218,6,115,111,117, - 114,99,101,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,218,23,95,110,111,114,109,97,108,105,122,101,95,108, - 105,110,101,95,101,110,100,105,110,103,115,155,2,0,0,115, - 8,0,0,0,12,1,12,1,4,1,255,128,114,158,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,6,0,0,0,67,0,0,0,115,24,0,0,0,116, - 0,124,1,131,1,125,1,116,1,124,1,124,0,100,1,100, - 2,100,3,141,4,83,0,41,4,78,114,76,0,0,0,84, - 41,1,90,12,100,111,110,116,95,105,110,104,101,114,105,116, - 41,2,114,158,0,0,0,218,7,99,111,109,112,105,108,101, - 41,2,114,57,0,0,0,114,157,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,218,15,95,99,111, - 109,112,105,108,101,95,115,111,117,114,99,101,162,2,0,0, - 115,6,0,0,0,8,1,16,1,255,128,114,160,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,11,0,0,0,67,0,0,0,115,68,0,0,0,116,0, - 160,1,124,0,100,1,63,0,100,2,23,0,124,0,100,3, - 63,0,100,4,64,0,124,0,100,5,64,0,124,1,100,6, - 63,0,124,1,100,3,63,0,100,7,64,0,124,1,100,5, - 64,0,100,8,20,0,100,9,100,9,100,9,102,9,161,1, - 83,0,41,10,78,233,9,0,0,0,105,188,7,0,0,233, - 5,0,0,0,233,15,0,0,0,233,31,0,0,0,233,11, - 0,0,0,233,63,0,0,0,114,85,0,0,0,114,14,0, - 0,0,41,2,114,130,0,0,0,90,6,109,107,116,105,109, - 101,41,2,218,1,100,114,137,0,0,0,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,218,14,95,112,97,114, - 115,101,95,100,111,115,116,105,109,101,168,2,0,0,115,20, - 0,0,0,4,1,10,1,10,1,6,1,6,1,10,1,10, - 1,6,1,6,249,255,128,114,168,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,10,0,0, - 0,67,0,0,0,115,110,0,0,0,122,82,124,1,100,1, - 100,0,133,2,25,0,100,2,118,0,115,22,74,0,130,1, - 124,1,100,0,100,1,133,2,25,0,125,1,124,0,106,0, - 124,1,25,0,125,2,124,2,100,3,25,0,125,3,124,2, - 100,4,25,0,125,4,124,2,100,5,25,0,125,5,116,1, - 124,4,124,3,131,2,124,5,102,2,87,0,83,0,4,0, - 116,2,116,3,116,4,102,3,121,108,1,0,1,0,1,0, - 89,0,100,6,83,0,48,0,41,7,78,114,14,0,0,0, - 169,2,218,1,99,218,1,111,114,162,0,0,0,233,6,0, - 0,0,233,3,0,0,0,41,2,114,0,0,0,0,114,0, - 0,0,0,41,5,114,28,0,0,0,114,168,0,0,0,114, - 26,0,0,0,218,10,73,110,100,101,120,69,114,114,111,114, - 114,153,0,0,0,41,6,114,32,0,0,0,114,13,0,0, - 0,114,58,0,0,0,114,130,0,0,0,114,131,0,0,0, - 90,17,117,110,99,111,109,112,114,101,115,115,101,100,95,115, - 105,122,101,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,150,0,0,0,181,2,0,0,115,22,0,0,0, - 2,1,20,2,12,1,10,1,8,3,8,1,8,1,16,1, - 18,1,8,1,255,128,114,150,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,0, - 67,0,0,0,115,80,0,0,0,124,1,100,1,100,0,133, - 2,25,0,100,2,118,0,115,20,74,0,130,1,124,1,100, - 0,100,1,133,2,25,0,125,1,122,14,124,0,106,0,124, - 1,25,0,125,2,87,0,110,20,4,0,116,1,121,66,1, - 0,1,0,1,0,89,0,100,0,83,0,48,0,116,2,124, - 0,106,3,124,2,131,2,83,0,41,3,78,114,14,0,0, - 0,114,169,0,0,0,41,4,114,28,0,0,0,114,26,0, - 0,0,114,56,0,0,0,114,29,0,0,0,41,3,114,32, - 0,0,0,114,13,0,0,0,114,58,0,0,0,114,9,0, - 0,0,114,9,0,0,0,114,10,0,0,0,114,148,0,0, - 0,200,2,0,0,115,16,0,0,0,20,2,12,1,2,2, - 14,1,12,1,8,1,12,2,255,128,114,148,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0, - 9,0,0,0,67,0,0,0,115,190,0,0,0,116,0,124, - 0,124,1,131,2,125,2,116,1,68,0,93,156,92,3,125, - 3,125,4,125,5,124,2,124,3,23,0,125,6,116,2,106, - 3,100,1,124,0,106,4,116,5,124,6,100,2,100,3,141, - 5,1,0,122,14,124,0,106,6,124,6,25,0,125,7,87, - 0,110,18,4,0,116,7,121,86,1,0,1,0,1,0,89, - 0,113,14,48,0,124,7,100,4,25,0,125,8,116,8,124, - 0,106,4,124,7,131,2,125,9,124,4,114,130,116,9,124, - 0,124,8,124,6,124,1,124,9,131,5,125,10,110,10,116, - 10,124,8,124,9,131,2,125,10,124,10,100,0,117,0,114, - 150,113,14,124,7,100,4,25,0,125,8,124,10,124,5,124, - 8,102,3,2,0,1,0,83,0,116,11,100,5,124,1,155, - 2,157,2,124,1,100,6,141,2,130,1,41,7,78,122,13, - 116,114,121,105,110,103,32,123,125,123,125,123,125,114,85,0, - 0,0,41,1,90,9,118,101,114,98,111,115,105,116,121,114, - 0,0,0,0,114,61,0,0,0,114,62,0,0,0,41,12, - 114,36,0,0,0,114,88,0,0,0,114,45,0,0,0,114, - 78,0,0,0,114,29,0,0,0,114,20,0,0,0,114,28, - 0,0,0,114,26,0,0,0,114,56,0,0,0,114,154,0, - 0,0,114,160,0,0,0,114,3,0,0,0,41,11,114,32, - 0,0,0,114,38,0,0,0,114,13,0,0,0,114,89,0, - 0,0,114,90,0,0,0,114,51,0,0,0,114,66,0,0, - 0,114,58,0,0,0,114,40,0,0,0,114,125,0,0,0, - 114,50,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,48,0,0,0,215,2,0,0,115,38,0, - 0,0,10,1,14,1,8,1,22,1,2,1,14,1,12,1, - 6,1,8,2,12,1,4,1,18,1,10,2,8,1,2,3, - 8,1,14,1,18,2,255,128,114,48,0,0,0,41,45,114, - 83,0,0,0,90,26,95,102,114,111,122,101,110,95,105,109, - 112,111,114,116,108,105,98,95,101,120,116,101,114,110,97,108, - 114,21,0,0,0,114,1,0,0,0,114,2,0,0,0,90, - 17,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108, - 105,98,114,45,0,0,0,114,147,0,0,0,114,109,0,0, - 0,114,151,0,0,0,114,69,0,0,0,114,130,0,0,0, - 90,7,95,95,97,108,108,95,95,114,20,0,0,0,90,15, - 112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,114, - 18,0,0,0,114,77,0,0,0,114,3,0,0,0,114,25, - 0,0,0,218,4,116,121,112,101,114,72,0,0,0,114,112, - 0,0,0,114,114,0,0,0,114,116,0,0,0,90,13,95, - 76,111,97,100,101,114,66,97,115,105,99,115,114,4,0,0, - 0,114,88,0,0,0,114,36,0,0,0,114,37,0,0,0, - 114,35,0,0,0,114,27,0,0,0,114,121,0,0,0,114, - 141,0,0,0,114,143,0,0,0,114,56,0,0,0,114,146, - 0,0,0,114,154,0,0,0,218,8,95,95,99,111,100,101, - 95,95,114,152,0,0,0,114,158,0,0,0,114,160,0,0, - 0,114,168,0,0,0,114,150,0,0,0,114,148,0,0,0, - 114,48,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,218,8,60,109,111,100,117, - 108,101,62,1,0,0,0,115,92,0,0,0,4,0,8,16, - 16,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,30,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,10,10,46,8,5,8,7,8,6,8,13, - 8,19,8,15,4,128,255,128, + 15,95,99,111,109,112,105,108,101,95,115,111,117,114,99,101, + 162,2,0,0,115,6,0,0,0,8,1,16,1,255,128,114, + 160,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,11,0,0,0,67,0,0,0,115,68,0, + 0,0,116,0,160,1,124,0,100,1,63,0,100,2,23,0, + 124,0,100,3,63,0,100,4,64,0,124,0,100,5,64,0, + 124,1,100,6,63,0,124,1,100,3,63,0,100,7,64,0, + 124,1,100,5,64,0,100,8,20,0,100,9,100,9,100,9, + 102,9,161,1,83,0,41,10,78,233,9,0,0,0,105,188, + 7,0,0,233,5,0,0,0,233,15,0,0,0,233,31,0, + 0,0,233,11,0,0,0,233,63,0,0,0,114,85,0,0, + 0,114,14,0,0,0,41,2,114,130,0,0,0,90,6,109, + 107,116,105,109,101,41,2,218,1,100,114,137,0,0,0,114, + 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,14, + 95,112,97,114,115,101,95,100,111,115,116,105,109,101,168,2, + 0,0,115,20,0,0,0,4,1,10,1,10,1,6,1,6, + 1,10,1,10,1,6,1,6,249,255,128,114,168,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,10,0,0,0,67,0,0,0,115,110,0,0,0,122,82, + 124,1,100,1,100,0,133,2,25,0,100,2,118,0,115,22, + 74,0,130,1,124,1,100,0,100,1,133,2,25,0,125,1, + 124,0,106,0,124,1,25,0,125,2,124,2,100,3,25,0, + 125,3,124,2,100,4,25,0,125,4,124,2,100,5,25,0, + 125,5,116,1,124,4,124,3,131,2,124,5,102,2,87,0, + 83,0,4,0,116,2,116,3,116,4,102,3,121,108,1,0, + 1,0,1,0,89,0,100,6,83,0,48,0,41,7,78,114, + 14,0,0,0,169,2,218,1,99,218,1,111,114,162,0,0, + 0,233,6,0,0,0,233,3,0,0,0,41,2,114,0,0, + 0,0,114,0,0,0,0,41,5,114,28,0,0,0,114,168, + 0,0,0,114,26,0,0,0,218,10,73,110,100,101,120,69, + 114,114,111,114,114,153,0,0,0,41,6,114,32,0,0,0, + 114,13,0,0,0,114,58,0,0,0,114,130,0,0,0,114, + 131,0,0,0,90,17,117,110,99,111,109,112,114,101,115,115, + 101,100,95,115,105,122,101,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,114,150,0,0,0,181,2,0,0,115, + 22,0,0,0,2,1,20,2,12,1,10,1,8,3,8,1, + 8,1,16,1,18,1,8,1,255,128,114,150,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 8,0,0,0,67,0,0,0,115,80,0,0,0,124,1,100, + 1,100,0,133,2,25,0,100,2,118,0,115,20,74,0,130, + 1,124,1,100,0,100,1,133,2,25,0,125,1,122,14,124, + 0,106,0,124,1,25,0,125,2,87,0,110,20,4,0,116, + 1,121,66,1,0,1,0,1,0,89,0,100,0,83,0,48, + 0,116,2,124,0,106,3,124,2,131,2,83,0,41,3,78, + 114,14,0,0,0,114,169,0,0,0,41,4,114,28,0,0, + 0,114,26,0,0,0,114,56,0,0,0,114,29,0,0,0, + 41,3,114,32,0,0,0,114,13,0,0,0,114,58,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 114,148,0,0,0,200,2,0,0,115,16,0,0,0,20,2, + 12,1,2,2,14,1,12,1,8,1,12,2,255,128,114,148, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 11,0,0,0,9,0,0,0,67,0,0,0,115,190,0,0, + 0,116,0,124,0,124,1,131,2,125,2,116,1,68,0,93, + 156,92,3,125,3,125,4,125,5,124,2,124,3,23,0,125, + 6,116,2,106,3,100,1,124,0,106,4,116,5,124,6,100, + 2,100,3,141,5,1,0,122,14,124,0,106,6,124,6,25, + 0,125,7,87,0,110,18,4,0,116,7,121,86,1,0,1, + 0,1,0,89,0,113,14,48,0,124,7,100,4,25,0,125, + 8,116,8,124,0,106,4,124,7,131,2,125,9,124,4,114, + 130,116,9,124,0,124,8,124,6,124,1,124,9,131,5,125, + 10,110,10,116,10,124,8,124,9,131,2,125,10,124,10,100, + 0,117,0,114,150,113,14,124,7,100,4,25,0,125,8,124, + 10,124,5,124,8,102,3,2,0,1,0,83,0,116,11,100, + 5,124,1,155,2,157,2,124,1,100,6,141,2,130,1,41, + 7,78,122,13,116,114,121,105,110,103,32,123,125,123,125,123, + 125,114,85,0,0,0,41,1,90,9,118,101,114,98,111,115, + 105,116,121,114,0,0,0,0,114,61,0,0,0,114,62,0, + 0,0,41,12,114,36,0,0,0,114,88,0,0,0,114,45, + 0,0,0,114,78,0,0,0,114,29,0,0,0,114,20,0, + 0,0,114,28,0,0,0,114,26,0,0,0,114,56,0,0, + 0,114,154,0,0,0,114,160,0,0,0,114,3,0,0,0, + 41,11,114,32,0,0,0,114,38,0,0,0,114,13,0,0, + 0,114,89,0,0,0,114,90,0,0,0,114,51,0,0,0, + 114,66,0,0,0,114,58,0,0,0,114,40,0,0,0,114, + 125,0,0,0,114,50,0,0,0,114,9,0,0,0,114,9, + 0,0,0,114,10,0,0,0,114,48,0,0,0,215,2,0, + 0,115,38,0,0,0,10,1,14,1,8,1,22,1,2,1, + 14,1,12,1,6,1,8,2,12,1,4,1,18,1,10,2, + 8,1,2,3,8,1,14,1,18,2,255,128,114,48,0,0, + 0,41,45,114,83,0,0,0,90,26,95,102,114,111,122,101, + 110,95,105,109,112,111,114,116,108,105,98,95,101,120,116,101, + 114,110,97,108,114,21,0,0,0,114,1,0,0,0,114,2, + 0,0,0,90,17,95,102,114,111,122,101,110,95,105,109,112, + 111,114,116,108,105,98,114,45,0,0,0,114,147,0,0,0, + 114,109,0,0,0,114,151,0,0,0,114,69,0,0,0,114, + 130,0,0,0,90,7,95,95,97,108,108,95,95,114,20,0, + 0,0,90,15,112,97,116,104,95,115,101,112,97,114,97,116, + 111,114,115,114,18,0,0,0,114,77,0,0,0,114,3,0, + 0,0,114,25,0,0,0,218,4,116,121,112,101,114,72,0, + 0,0,114,112,0,0,0,114,114,0,0,0,114,116,0,0, + 0,90,13,95,76,111,97,100,101,114,66,97,115,105,99,115, + 114,4,0,0,0,114,88,0,0,0,114,36,0,0,0,114, + 37,0,0,0,114,35,0,0,0,114,27,0,0,0,114,121, + 0,0,0,114,141,0,0,0,114,143,0,0,0,114,56,0, + 0,0,114,146,0,0,0,114,154,0,0,0,218,8,95,95, + 99,111,100,101,95,95,114,152,0,0,0,114,158,0,0,0, + 114,160,0,0,0,114,168,0,0,0,114,150,0,0,0,114, + 148,0,0,0,114,48,0,0,0,114,9,0,0,0,114,9, + 0,0,0,114,9,0,0,0,114,10,0,0,0,218,8,60, + 109,111,100,117,108,101,62,1,0,0,0,115,90,0,0,0, + 4,0,8,16,16,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,30,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,10,10,46,8,5,8,7, + 8,6,8,13,8,19,12,15,255,128, }; From webhook-mailer at python.org Wed Dec 2 12:56:46 2020 From: webhook-mailer at python.org (pablogsal) Date: Wed, 02 Dec 2020 17:56:46 -0000 Subject: [Python-checkins] bpo-42521: Add note about 'Python -d' only working on debug builds (GH-23607) Message-ID: https://github.com/python/cpython/commit/99b594404d364b363c184f48338d6ee81bee26dd commit: 99b594404d364b363c184f48338d6ee81bee26dd branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-02T17:56:17Z summary: bpo-42521: Add note about 'Python -d' only working on debug builds (GH-23607) files: M Python/initconfig.c diff --git a/Python/initconfig.c b/Python/initconfig.c index 4d95ac5d8859b..62087fb4208dd 100644 --- a/Python/initconfig.c +++ b/Python/initconfig.c @@ -38,7 +38,8 @@ Options and arguments (and corresponding environment variables):\n\ and comparing bytes/bytearray with str. (-bb: issue errors)\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\ -c cmd : program passed in as string (terminates option list)\n\ --d : debug output from parser; also PYTHONDEBUG=x\n\ +-d : turn on parser debugging output (for experts only, only works on\n\ + debug builds); also PYTHONDEBUG=x\n\ -E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\ -h : print this help message and exit (also --help)\n\ "; From webhook-mailer at python.org Wed Dec 2 12:57:23 2020 From: webhook-mailer at python.org (pablogsal) Date: Wed, 02 Dec 2020 17:57:23 -0000 Subject: [Python-checkins] bpo-41625: Do not add os.splice on AIX due to compatibility issues (GH-23608) Message-ID: https://github.com/python/cpython/commit/dedc2cd5f02a2e2fc2c995a36a3dccf9d93856bb commit: dedc2cd5f02a2e2fc2c995a36a3dccf9d93856bb branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-02T17:57:18Z summary: bpo-41625: Do not add os.splice on AIX due to compatibility issues (GH-23608) files: M Modules/clinic/posixmodule.c.h M Modules/posixmodule.c diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h index ee4ee8ceac558..4a72ea0dd56f4 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -5674,7 +5674,7 @@ os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py #endif /* defined(HAVE_COPY_FILE_RANGE) */ -#if defined(HAVE_SPLICE) +#if ((defined(HAVE_SPLICE) && !defined(_AIX))) PyDoc_STRVAR(os_splice__doc__, "splice($module, /, src, dst, count, offset_src=None, offset_dst=None,\n" @@ -5772,7 +5772,7 @@ os_splice(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k return return_value; } -#endif /* defined(HAVE_SPLICE) */ +#endif /* ((defined(HAVE_SPLICE) && !defined(_AIX))) */ #if defined(HAVE_MKFIFO) @@ -9163,4 +9163,4 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na #ifndef OS_WAITSTATUS_TO_EXITCODE_METHODDEF #define OS_WAITSTATUS_TO_EXITCODE_METHODDEF #endif /* !defined(OS_WAITSTATUS_TO_EXITCODE_METHODDEF) */ -/*[clinic end generated code: output=8a59e91178897267 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f3ec08afcd6cd8f8 input=a9049054013a1b77]*/ diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 3e6e6585b880c..d9eb62f20e65b 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -10370,7 +10370,7 @@ os_copy_file_range_impl(PyObject *module, int src, int dst, Py_ssize_t count, } #endif /* HAVE_COPY_FILE_RANGE*/ -#ifdef HAVE_SPLICE +#if (defined(HAVE_SPLICE) && !defined(_AIX)) /*[clinic input] os.splice From webhook-mailer at python.org Wed Dec 2 17:01:28 2020 From: webhook-mailer at python.org (miss-islington) Date: Wed, 02 Dec 2020 22:01:28 -0000 Subject: [Python-checkins] bpo-42521: Add note about 'Python -d' only working on debug builds (GH-23607) Message-ID: https://github.com/python/cpython/commit/9b34f34aa929941576a69a6f7de77f1fb0b96ed6 commit: 9b34f34aa929941576a69a6f7de77f1fb0b96ed6 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-02T14:01:23-08:00 summary: bpo-42521: Add note about 'Python -d' only working on debug builds (GH-23607) (cherry picked from commit 99b594404d364b363c184f48338d6ee81bee26dd) Co-authored-by: Pablo Galindo files: M Python/initconfig.c diff --git a/Python/initconfig.c b/Python/initconfig.c index e882a1fba5396..3caed385ef6af 100644 --- a/Python/initconfig.c +++ b/Python/initconfig.c @@ -42,7 +42,8 @@ Options and arguments (and corresponding environment variables):\n\ and comparing bytes/bytearray with str. (-bb: issue errors)\n\ -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\ -c cmd : program passed in as string (terminates option list)\n\ --d : debug output from parser; also PYTHONDEBUG=x\n\ +-d : turn on parser debugging output (for experts only, only works on\n\ + debug builds); also PYTHONDEBUG=x\n\ -E : ignore PYTHON* environment variables (such as PYTHONPATH)\n\ -h : print this help message and exit (also --help)\n\ "; From webhook-mailer at python.org Wed Dec 2 22:20:51 2020 From: webhook-mailer at python.org (ned-deily) Date: Thu, 03 Dec 2020 03:20:51 -0000 Subject: [Python-checkins] bpo-42504: fix for MACOSX_DEPLOYMENT_TARGET=11 (GH-23556) Message-ID: https://github.com/python/cpython/commit/5291639e611dc3f55a34666036f2c3424648ba50 commit: 5291639e611dc3f55a34666036f2c3424648ba50 branch: master author: FX Coudert committer: ned-deily date: 2020-12-02T22:20:18-05:00 summary: bpo-42504: fix for MACOSX_DEPLOYMENT_TARGET=11 (GH-23556) macOS releases numbering has changed as of macOS 11 Big Sur. Previously, major releases were of the form 10.x, 10.x+1, 10.x+2, etc; as of Big Sur, they are now x, x+1, etc, so, for example, 10.15, 10.15.1, ..., 10.15.7, 11, 11.0.1, 11.1, ..., 12, 12.1, etc. Allow Python to build with single-digit deployment target values. Patch provided by FX Coudert. files: A Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst M Lib/distutils/spawn.py M Lib/distutils/tests/test_build_ext.py M Lib/test/test_posix.py M setup.py diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py index 0d1bd0391e6f1..f50edd2da9710 100644 --- a/Lib/distutils/spawn.py +++ b/Lib/distutils/spawn.py @@ -54,8 +54,8 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0): global _cfg_target, _cfg_target_split if _cfg_target is None: from distutils import sysconfig - _cfg_target = sysconfig.get_config_var( - 'MACOSX_DEPLOYMENT_TARGET') or '' + _cfg_target = str(sysconfig.get_config_var( + 'MACOSX_DEPLOYMENT_TARGET') or '') if _cfg_target: _cfg_target_split = [int(x) for x in _cfg_target.split('.')] if _cfg_target: diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 6bb009a86f41e..a3055c1984032 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -456,7 +456,7 @@ def test_deployment_target_higher_ok(self): deptarget = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') if deptarget: # increment the minor version number (i.e. 10.6 -> 10.7) - deptarget = [int(x) for x in deptarget.split('.')] + deptarget = [int(x) for x in str(deptarget).split('.')] deptarget[-1] += 1 deptarget = '.'.join(str(i) for i in deptarget) self._try_compile_deployment_target('<', deptarget) @@ -489,7 +489,7 @@ def _try_compile_deployment_target(self, operator, target): # get the deployment target that the interpreter was built with target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') - target = tuple(map(int, target.split('.')[0:2])) + target = tuple(map(int, str(target).split('.')[0:2])) # format the target value as defined in the Apple # Availability Macros. We can't use the macro names since # at least one value we test with will not exist yet. @@ -498,7 +498,11 @@ def _try_compile_deployment_target(self, operator, target): target = '%02d%01d0' % target else: # for 10.10 and beyond -> "10nn00" - target = '%02d%02d00' % target + if len(target) >= 2: + target = '%02d%02d00' % target + else: + # 11 and later can have no minor version (11 instead of 11.0) + target = '%02d0000' % target deptarget_ext = Extension( 'deptarget', [deptarget_c], diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 18afbef082bff..d4d348cdc02d0 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -1061,7 +1061,7 @@ def test_getgroups(self): if sys.platform == 'darwin': import sysconfig dt = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') or '10.0' - if tuple(int(n) for n in dt.split('.')[0:2]) < (10, 6): + if tuple(int(n) for n in str(dt).split('.')[0:2]) < (10, 6): raise unittest.SkipTest("getgroups(2) is broken prior to 10.6") # 'id -G' and 'os.getgroups()' should return the same diff --git a/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst b/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst new file mode 100644 index 0000000000000..c83bc2b9eeec5 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst @@ -0,0 +1 @@ +Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11 \ No newline at end of file diff --git a/setup.py b/setup.py index b7a7d26c5325b..0c9a425016869 100644 --- a/setup.py +++ b/setup.py @@ -1014,7 +1014,7 @@ def detect_readline_curses(self): os_release = int(os.uname()[2].split('.')[0]) dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') if (dep_target and - (tuple(int(n) for n in dep_target.split('.')[0:2]) + (tuple(int(n) for n in str(dep_target).split('.')[0:2]) < (10, 5) ) ): os_release = 8 if os_release < 9: From webhook-mailer at python.org Wed Dec 2 22:43:16 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 03:43:16 -0000 Subject: [Python-checkins] bpo-42504: fix for MACOSX_DEPLOYMENT_TARGET=11 (GH-23556) Message-ID: https://github.com/python/cpython/commit/09a698b4743c669983d606595a1b2daeff6c3cf8 commit: 09a698b4743c669983d606595a1b2daeff6c3cf8 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-02T19:43:08-08:00 summary: bpo-42504: fix for MACOSX_DEPLOYMENT_TARGET=11 (GH-23556) macOS releases numbering has changed as of macOS 11 Big Sur. Previously, major releases were of the form 10.x, 10.x+1, 10.x+2, etc; as of Big Sur, they are now x, x+1, etc, so, for example, 10.15, 10.15.1, ..., 10.15.7, 11, 11.0.1, 11.1, ..., 12, 12.1, etc. Allow Python to build with single-digit deployment target values. Patch provided by FX Coudert. (cherry picked from commit 5291639e611dc3f55a34666036f2c3424648ba50) Co-authored-by: FX Coudert files: A Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst M Lib/distutils/spawn.py M Lib/distutils/tests/test_build_ext.py M Lib/test/test_posix.py M setup.py diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py index 0d1bd0391e6f1..f50edd2da9710 100644 --- a/Lib/distutils/spawn.py +++ b/Lib/distutils/spawn.py @@ -54,8 +54,8 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0): global _cfg_target, _cfg_target_split if _cfg_target is None: from distutils import sysconfig - _cfg_target = sysconfig.get_config_var( - 'MACOSX_DEPLOYMENT_TARGET') or '' + _cfg_target = str(sysconfig.get_config_var( + 'MACOSX_DEPLOYMENT_TARGET') or '') if _cfg_target: _cfg_target_split = [int(x) for x in _cfg_target.split('.')] if _cfg_target: diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 5a32e039800f0..1b034c9302521 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -455,7 +455,7 @@ def test_deployment_target_higher_ok(self): deptarget = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') if deptarget: # increment the minor version number (i.e. 10.6 -> 10.7) - deptarget = [int(x) for x in deptarget.split('.')] + deptarget = [int(x) for x in str(deptarget).split('.')] deptarget[-1] += 1 deptarget = '.'.join(str(i) for i in deptarget) self._try_compile_deployment_target('<', deptarget) @@ -488,7 +488,7 @@ def _try_compile_deployment_target(self, operator, target): # get the deployment target that the interpreter was built with target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') - target = tuple(map(int, target.split('.')[0:2])) + target = tuple(map(int, str(target).split('.')[0:2])) # format the target value as defined in the Apple # Availability Macros. We can't use the macro names since # at least one value we test with will not exist yet. @@ -497,7 +497,11 @@ def _try_compile_deployment_target(self, operator, target): target = '%02d%01d0' % target else: # for 10.10 and beyond -> "10nn00" - target = '%02d%02d00' % target + if len(target) >= 2: + target = '%02d%02d00' % target + else: + # 11 and later can have no minor version (11 instead of 11.0) + target = '%02d0000' % target deptarget_ext = Extension( 'deptarget', [deptarget_c], diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index f4edb8bd9575f..bfbcbab3b62f9 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -1045,7 +1045,7 @@ def test_getgroups(self): if sys.platform == 'darwin': import sysconfig dt = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') or '10.0' - if tuple(int(n) for n in dt.split('.')[0:2]) < (10, 6): + if tuple(int(n) for n in str(dt).split('.')[0:2]) < (10, 6): raise unittest.SkipTest("getgroups(2) is broken prior to 10.6") # 'id -G' and 'os.getgroups()' should return the same diff --git a/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst b/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst new file mode 100644 index 0000000000000..c83bc2b9eeec5 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst @@ -0,0 +1 @@ +Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11 \ No newline at end of file diff --git a/setup.py b/setup.py index 7432970a10691..bfe621d0b50da 100644 --- a/setup.py +++ b/setup.py @@ -1012,7 +1012,7 @@ def detect_readline_curses(self): os_release = int(os.uname()[2].split('.')[0]) dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') if (dep_target and - (tuple(int(n) for n in dep_target.split('.')[0:2]) + (tuple(int(n) for n in str(dep_target).split('.')[0:2]) < (10, 5) ) ): os_release = 8 if os_release < 9: From webhook-mailer at python.org Wed Dec 2 22:48:22 2020 From: webhook-mailer at python.org (orsenthil) Date: Thu, 03 Dec 2020 03:48:22 -0000 Subject: [Python-checkins] Remove the conditional for setting query. (#23604) Message-ID: https://github.com/python/cpython/commit/3ec9d019013a9e9125d4f8669be177b9154cb45b commit: 3ec9d019013a9e9125d4f8669be177b9154cb45b branch: master author: Senthil Kumaran committer: orsenthil date: 2020-12-02T19:48:14-08:00 summary: Remove the conditional for setting query. (#23604) files: M Lib/http/server.py diff --git a/Lib/http/server.py b/Lib/http/server.py index ee99182109913..c611381177d43 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -1092,8 +1092,7 @@ def run_cgi(self): env['PATH_INFO'] = uqrest env['PATH_TRANSLATED'] = self.translate_path(uqrest) env['SCRIPT_NAME'] = scriptname - if query: - env['QUERY_STRING'] = query + env['QUERY_STRING'] = query env['REMOTE_ADDR'] = self.client_address[0] authorization = self.headers.get("authorization") if authorization: From webhook-mailer at python.org Thu Dec 3 03:48:45 2020 From: webhook-mailer at python.org (serhiy-storchaka) Date: Thu, 03 Dec 2020 08:48:45 -0000 Subject: [Python-checkins] bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) Message-ID: https://github.com/python/cpython/commit/f3c3ea91a76526edff928c95b9c6767e077b7448 commit: f3c3ea91a76526edff928c95b9c6767e077b7448 branch: master author: Serhiy Storchaka committer: serhiy-storchaka date: 2020-12-03T10:48:26+02:00 summary: bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) files: M Lib/tkinter/test/test_ttk/test_style.py diff --git a/Lib/tkinter/test/test_ttk/test_style.py b/Lib/tkinter/test/test_ttk/test_style.py index 54e913311766f..38d70d7a89077 100644 --- a/Lib/tkinter/test/test_ttk/test_style.py +++ b/Lib/tkinter/test/test_ttk/test_style.py @@ -1,4 +1,5 @@ import unittest +import sys import tkinter from tkinter import ttk from test import support @@ -136,6 +137,10 @@ def test_configure_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('configure', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.configure(newname), None) style.configure(newname, **default) @@ -158,6 +163,10 @@ def test_map_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('map', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.map(newname), {}) style.map(newname, **default) From webhook-mailer at python.org Thu Dec 3 04:07:23 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 09:07:23 -0000 Subject: [Python-checkins] bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) Message-ID: https://github.com/python/cpython/commit/12d2306a1db48f71b15ceaecf3d5ce06dbbe06c1 commit: 12d2306a1db48f71b15ceaecf3d5ce06dbbe06c1 branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-03T01:07:13-08:00 summary: bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) (cherry picked from commit f3c3ea91a76526edff928c95b9c6767e077b7448) Co-authored-by: Serhiy Storchaka files: M Lib/tkinter/test/test_ttk/test_style.py diff --git a/Lib/tkinter/test/test_ttk/test_style.py b/Lib/tkinter/test/test_ttk/test_style.py index 54e913311766f..38d70d7a89077 100644 --- a/Lib/tkinter/test/test_ttk/test_style.py +++ b/Lib/tkinter/test/test_ttk/test_style.py @@ -1,4 +1,5 @@ import unittest +import sys import tkinter from tkinter import ttk from test import support @@ -136,6 +137,10 @@ def test_configure_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('configure', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.configure(newname), None) style.configure(newname, **default) @@ -158,6 +163,10 @@ def test_map_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('map', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.map(newname), {}) style.map(newname, **default) From webhook-mailer at python.org Thu Dec 3 04:10:32 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 09:10:32 -0000 Subject: [Python-checkins] bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) Message-ID: https://github.com/python/cpython/commit/ae67db6b314e297a1b67ed15c0bb560b8ce5b856 commit: ae67db6b314e297a1b67ed15c0bb560b8ce5b856 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-03T01:10:23-08:00 summary: bpo-42328: Skip some tests with themes vista and xpnative on Windows 7 (GH-23612) (cherry picked from commit f3c3ea91a76526edff928c95b9c6767e077b7448) Co-authored-by: Serhiy Storchaka files: M Lib/tkinter/test/test_ttk/test_style.py diff --git a/Lib/tkinter/test/test_ttk/test_style.py b/Lib/tkinter/test/test_ttk/test_style.py index 54e913311766f..38d70d7a89077 100644 --- a/Lib/tkinter/test/test_ttk/test_style.py +++ b/Lib/tkinter/test/test_ttk/test_style.py @@ -1,4 +1,5 @@ import unittest +import sys import tkinter from tkinter import ttk from test import support @@ -136,6 +137,10 @@ def test_configure_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('configure', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.configure(newname), None) style.configure(newname, **default) @@ -158,6 +163,10 @@ def test_map_custom_copy(self): with self.subTest(theme=theme, name=name): if support.verbose >= 2: print('map', theme, name, default) + if (theme in ('vista', 'xpnative') + and sys.getwindowsversion()[:2] == (6, 1)): + # Fails on the Windows 7 buildbot + continue newname = f'C.{name}' self.assertEqual(style.map(newname), {}) style.map(newname, **default) From webhook-mailer at python.org Thu Dec 3 05:46:21 2020 From: webhook-mailer at python.org (serhiy-storchaka) Date: Thu, 03 Dec 2020 10:46:21 -0000 Subject: [Python-checkins] bpo-42431: Fix outdated bytes comments (GH-23458) Message-ID: https://github.com/python/cpython/commit/2ad93821a69e6efac3b0efe1d205d6e5ef030791 commit: 2ad93821a69e6efac3b0efe1d205d6e5ef030791 branch: master author: Serhiy Storchaka committer: serhiy-storchaka date: 2020-12-03T12:46:16+02:00 summary: bpo-42431: Fix outdated bytes comments (GH-23458) Also move definitions of internal macros F_LJUST etc to private header. files: A Include/internal/pycore_format.h M Include/bytesobject.h M Include/cpython/bytesobject.h M Makefile.pre.in M Objects/bytearrayobject.c M Objects/bytesobject.c M Objects/clinic/bytearrayobject.c.h M Objects/clinic/bytesobject.c.h M Objects/unicodeobject.c M PCbuild/pythoncore.vcxproj M PCbuild/pythoncore.vcxproj.filters diff --git a/Include/bytesobject.h b/Include/bytesobject.h index 5062d8d123ad3..39c241a2dcf5f 100644 --- a/Include/bytesobject.h +++ b/Include/bytesobject.h @@ -1,5 +1,5 @@ -/* Bytes (String) object interface */ +/* Bytes object interface */ #ifndef Py_BYTESOBJECT_H #define Py_BYTESOBJECT_H @@ -10,23 +10,20 @@ extern "C" { #include /* -Type PyBytesObject represents a character string. An extra zero byte is +Type PyBytesObject represents a byte string. An extra zero byte is reserved at the end to ensure it is zero-terminated, but a size is present so strings with null bytes in them can be represented. This is an immutable object type. -There are functions to create new string objects, to test -an object for string-ness, and to get the -string value. The latter function returns a null pointer +There are functions to create new bytes objects, to test +an object for bytes-ness, and to get the +byte string value. The latter function returns a null pointer if the object is not of the proper type. There is a variant that takes an explicit size as well as a variant that assumes a zero-terminated string. Note that none of the -functions should be applied to nil objects. +functions should be applied to NULL pointer. */ -/* Caching the hash (ob_shash) saves recalculation of a string's hash value. - This significantly speeds up dict lookups. */ - PyAPI_DATA(PyTypeObject) PyBytes_Type; PyAPI_DATA(PyTypeObject) PyBytesIter_Type; @@ -50,26 +47,16 @@ PyAPI_FUNC(PyObject *) PyBytes_DecodeEscape(const char *, Py_ssize_t, const char *, Py_ssize_t, const char *); -/* Provides access to the internal data buffer and size of a string - object or the default encoded version of a Unicode object. Passing - NULL as *len parameter will force the string buffer to be - 0-terminated (passing a string with embedded NULL characters will +/* Provides access to the internal data buffer and size of a bytes object. + Passing NULL as len parameter will force the string buffer to be + 0-terminated (passing a string with embedded NUL characters will cause an exception). */ PyAPI_FUNC(int) PyBytes_AsStringAndSize( - PyObject *obj, /* string or Unicode object */ + PyObject *obj, /* bytes object */ char **s, /* pointer to buffer variable */ - Py_ssize_t *len /* pointer to length variable or NULL - (only possible for 0-terminated - strings) */ + Py_ssize_t *len /* pointer to length variable or NULL */ ); -/* Flags used by string formatting */ -#define F_LJUST (1<<0) -#define F_SIGN (1<<1) -#define F_BLANK (1<<2) -#define F_ALT (1<<3) -#define F_ZERO (1<<4) - #ifndef Py_LIMITED_API # define Py_CPYTHON_BYTESOBJECT_H # include "cpython/bytesobject.h" diff --git a/Include/cpython/bytesobject.h b/Include/cpython/bytesobject.h index f284c5835df09..6b3f55224fc55 100644 --- a/Include/cpython/bytesobject.h +++ b/Include/cpython/bytesobject.h @@ -10,7 +10,7 @@ typedef struct { /* Invariants: * ob_sval contains space for 'ob_size+1' elements. * ob_sval[ob_size] == 0. - * ob_shash is the hash of the string or -1 if not computed yet. + * ob_shash is the hash of the byte string or -1 if not computed yet. */ } PyBytesObject; diff --git a/Include/internal/pycore_format.h b/Include/internal/pycore_format.h new file mode 100644 index 0000000000000..1b8d57539ca50 --- /dev/null +++ b/Include/internal/pycore_format.h @@ -0,0 +1,27 @@ +#ifndef Py_INTERNAL_FORMAT_H +#define Py_INTERNAL_FORMAT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* Format codes + * F_LJUST '-' + * F_SIGN '+' + * F_BLANK ' ' + * F_ALT '#' + * F_ZERO '0' + */ +#define F_LJUST (1<<0) +#define F_SIGN (1<<1) +#define F_BLANK (1<<2) +#define F_ALT (1<<3) +#define F_ZERO (1<<4) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FORMAT_H */ diff --git a/Makefile.pre.in b/Makefile.pre.in index ee801ec46df73..082945f58a777 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1112,6 +1112,7 @@ PYTHON_HEADERS= \ $(srcdir)/Include/internal/pycore_context.h \ $(srcdir)/Include/internal/pycore_dtoa.h \ $(srcdir)/Include/internal/pycore_fileutils.h \ + $(srcdir)/Include/internal/pycore_format.h \ $(srcdir)/Include/internal/pycore_getopt.h \ $(srcdir)/Include/internal/pycore_gil.h \ $(srcdir)/Include/internal/pycore_hamt.h \ diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 805707a4529c6..7cb2b1478cf9c 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -13,10 +13,9 @@ class bytearray "PyByteArrayObject *" "&PyByteArray_Type" [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=5535b77c37a119e0]*/ +/* For PyByteArray_AS_STRING(). */ char _PyByteArray_empty_string[] = ""; -/* end nullbytes support */ - /* Helpers */ static int @@ -266,7 +265,7 @@ PyByteArray_Concat(PyObject *a, PyObject *b) result = (PyByteArrayObject *) \ PyByteArray_FromStringAndSize(NULL, va.len + vb.len); - // result->ob_bytes is NULL if result is an empty string: + // result->ob_bytes is NULL if result is an empty bytearray: // if va.len + vb.len equals zero. if (result != NULL && result->ob_bytes != NULL) { memcpy(result->ob_bytes, va.buf, va.len); @@ -1007,9 +1006,6 @@ bytearray_richcompare(PyObject *self, PyObject *other, int op) Py_buffer self_bytes, other_bytes; int cmp; - /* Bytes can be compared to anything that supports the (binary) - buffer API. Except that a comparison with Unicode is always an - error, even if the comparison is for equality. */ if (!PyObject_CheckBuffer(self) || !PyObject_CheckBuffer(other)) { if (PyUnicode_Check(self) || PyUnicode_Check(other)) { if (_Py_GetConfig()->bytes_warning && (op == Py_EQ || op == Py_NE)) { @@ -1021,6 +1017,7 @@ bytearray_richcompare(PyObject *self, PyObject *other, int op) Py_RETURN_NOTIMPLEMENTED; } + /* Bytearrays can be compared to anything that supports the buffer API. */ if (PyObject_GetBuffer(self, &self_bytes, PyBUF_SIMPLE) != 0) { PyErr_Clear(); Py_RETURN_NOTIMPLEMENTED; @@ -1328,7 +1325,7 @@ bytearray_translate_impl(PyByteArrayObject *self, PyObject *table, if (trans_table[c] != -1) *output++ = (char)trans_table[c]; } - /* Fix the size of the resulting string */ + /* Fix the size of the resulting bytearray */ if (inlen > 0) if (PyByteArray_Resize(result, output - output_start) < 0) { Py_CLEAR(result); @@ -2083,7 +2080,7 @@ bytearray.hex How many bytes between separators. Positive values count from the right, negative values count from the left. -Create a str of hexadecimal numbers from a bytearray object. +Create a string of hexadecimal numbers from a bytearray object. Example: >>> value = bytearray([0xb9, 0x01, 0xef]) @@ -2099,7 +2096,7 @@ Create a str of hexadecimal numbers from a bytearray object. static PyObject * bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep) -/*[clinic end generated code: output=29c4e5ef72c565a0 input=814c15830ac8c4b5]*/ +/*[clinic end generated code: output=29c4e5ef72c565a0 input=808667e49bcccb54]*/ { char* argbuf = PyByteArray_AS_STRING(self); Py_ssize_t arglen = PyByteArray_GET_SIZE(self); @@ -2358,7 +2355,7 @@ PyTypeObject PyByteArray_Type = { PyObject_Del, /* tp_free */ }; -/*********************** Bytes Iterator ****************************/ +/*********************** Bytearray Iterator ****************************/ typedef struct { PyObject_HEAD diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c index 13216b9bb21a5..ccabbdca1d562 100644 --- a/Objects/bytesobject.c +++ b/Objects/bytesobject.c @@ -5,6 +5,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_bytes_methods.h" // _Py_bytes_startswith() +#include "pycore_format.h" // F_LJUST #include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_object.h" // _PyObject_GC_TRACK #include "pycore_pymem.h" // PYMEM_CLEANBYTE @@ -21,11 +22,11 @@ class bytes "PyBytesObject *" "&PyBytes_Type" _Py_IDENTIFIER(__bytes__); -/* PyBytesObject_SIZE gives the basic size of a string; any memory allocation - for a string of length n should request PyBytesObject_SIZE + n bytes. +/* PyBytesObject_SIZE gives the basic size of a bytes object; any memory allocation + for a bytes object of length n should request PyBytesObject_SIZE + n bytes. Using PyBytesObject_SIZE instead of sizeof(PyBytesObject) saves - 3 bytes per string allocation on a typical system. + 3 or 7 bytes per bytes object allocation on a typical system. */ #define PyBytesObject_SIZE (offsetof(PyBytesObject, ob_sval) + 1) @@ -439,19 +440,6 @@ getnextarg(PyObject *args, Py_ssize_t arglen, Py_ssize_t *p_argidx) return NULL; } -/* Format codes - * F_LJUST '-' - * F_SIGN '+' - * F_BLANK ' ' - * F_ALT '#' - * F_ZERO '0' - */ -#define F_LJUST (1<<0) -#define F_SIGN (1<<1) -#define F_BLANK (1<<2) -#define F_ALT (1<<3) -#define F_ZERO (1<<4) - /* Returns a new reference to a PyBytes object, or NULL on failure. */ static char* @@ -1560,7 +1548,7 @@ bytes_richcompare(PyBytesObject *a, PyBytesObject *b, int op) case Py_EQ: case Py_LE: case Py_GE: - /* a string is equal to itself */ + /* a byte string is equal to itself */ Py_RETURN_TRUE; case Py_NE: case Py_LT: @@ -2149,7 +2137,7 @@ bytes_translate_impl(PyBytesObject *self, PyObject *table, Py_INCREF(input_obj); return input_obj; } - /* Fix the size of the resulting string */ + /* Fix the size of the resulting byte string */ if (inlen > 0) _PyBytes_Resize(&result, output - output_start); return result; @@ -2453,7 +2441,7 @@ bytes.hex How many bytes between separators. Positive values count from the right, negative values count from the left. -Create a str of hexadecimal numbers from a bytes object. +Create a string of hexadecimal numbers from a bytes object. Example: >>> value = b'\xb9\x01\xef' @@ -2469,7 +2457,7 @@ Create a str of hexadecimal numbers from a bytes object. static PyObject * bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep) -/*[clinic end generated code: output=1f134da504064139 input=f1238d3455990218]*/ +/*[clinic end generated code: output=1f134da504064139 input=1a21282b1f1ae595]*/ { const char *argbuf = PyBytes_AS_STRING(self); Py_ssize_t arglen = PyBytes_GET_SIZE(self); @@ -2771,7 +2759,7 @@ _PyBytes_FromIterator(PyObject *it, PyObject *x) Py_ssize_t i, size; _PyBytesWriter writer; - /* For iterator version, create a string object and resize as needed */ + /* For iterator version, create a bytes object and resize as needed */ size = PyObject_LengthHint(x, 64); if (size == -1 && PyErr_Occurred()) return NULL; diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h index 3452b24174034..1e3f197561523 100644 --- a/Objects/clinic/bytearrayobject.c.h +++ b/Objects/clinic/bytearrayobject.c.h @@ -990,7 +990,7 @@ PyDoc_STRVAR(bytearray_hex__doc__, "hex($self, /, sep=, bytes_per_sep=1)\n" "--\n" "\n" -"Create a str of hexadecimal numbers from a bytearray object.\n" +"Create a string of hexadecimal numbers from a bytearray object.\n" "\n" " sep\n" " An optional single character or byte to separate hex bytes.\n" @@ -1120,4 +1120,4 @@ bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored)) { return bytearray_sizeof_impl(self); } -/*[clinic end generated code: output=47cd9ad3fdc3ac0c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a82659f581e55629 input=a9049054013a1b77]*/ diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h index 27ac6b106748a..9e365ce1a088b 100644 --- a/Objects/clinic/bytesobject.c.h +++ b/Objects/clinic/bytesobject.c.h @@ -750,7 +750,7 @@ PyDoc_STRVAR(bytes_hex__doc__, "hex($self, /, sep=, bytes_per_sep=1)\n" "--\n" "\n" -"Create a str of hexadecimal numbers from a bytes object.\n" +"Create a string of hexadecimal numbers from a bytes object.\n" "\n" " sep\n" " An optional single character or byte to separate hex bytes.\n" @@ -878,4 +878,4 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=6101b417d6a6a717 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b3f0ec2753246b9c input=a9049054013a1b77]*/ diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index f6473c02d30fd..409355534a2ce 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -42,6 +42,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_bytes_methods.h" // _Py_bytes_lower() +#include "pycore_format.h" // F_LJUST #include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_interp.h" // PyInterpreterState.fs_codec #include "pycore_object.h" // _PyObject_GC_TRACK() diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 18edba855d616..cf78714920b05 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -176,6 +176,7 @@ + diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters index 281bce1c5f498..ba84ab902b687 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters @@ -510,6 +510,9 @@ Include\internal + + Include\internal + Include\internal From webhook-mailer at python.org Thu Dec 3 07:57:06 2020 From: webhook-mailer at python.org (vstinner) Date: Thu, 03 Dec 2020 12:57:06 -0000 Subject: [Python-checkins] bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Message-ID: https://github.com/python/cpython/commit/7e5e13d113798117d5ef25c5ffdbd0eb39420f98 commit: 7e5e13d113798117d5ef25c5ffdbd0eb39420f98 branch: master author: Victor Stinner committer: vstinner date: 2020-12-03T13:56:41+01:00 summary: bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Fix test_asyncio.test_call_later() race condition: don't measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. files: A Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst M Lib/test/test_asyncio/test_events.py diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 7f76011d2b92d..ce615606db7e3 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -294,11 +294,8 @@ def callback(arg): self.loop.stop() self.loop.call_later(0.1, callback, 'hello world') - t0 = time.monotonic() self.loop.run_forever() - t1 = time.monotonic() self.assertEqual(results, ['hello world']) - self.assertTrue(0.08 <= t1-t0 <= 0.8, t1-t0) def test_call_soon(self): results = [] diff --git a/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst new file mode 100644 index 0000000000000..872214284728b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst @@ -0,0 +1,3 @@ +Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio +performance in the ``call_later()`` unit test. The test failed randomly on +the CI. From webhook-mailer at python.org Thu Dec 3 08:01:18 2020 From: webhook-mailer at python.org (vstinner) Date: Thu, 03 Dec 2020 13:01:18 -0000 Subject: [Python-checkins] bpo-42262: Py_NewRef() casts its argument to PyObject* (GH-23626) Message-ID: https://github.com/python/cpython/commit/8b6c4a921af6d5d0a9640211ac93d7886a55a8f3 commit: 8b6c4a921af6d5d0a9640211ac93d7886a55a8f3 branch: master author: Victor Stinner committer: vstinner date: 2020-12-03T14:01:10+01:00 summary: bpo-42262: Py_NewRef() casts its argument to PyObject* (GH-23626) Write also unit tests on Py_NewRef() and Py_XNewRef(). files: M Include/object.h M Modules/_testcapimodule.c diff --git a/Include/object.h b/Include/object.h index f68423a09c4e4..8d0039428e73a 100644 --- a/Include/object.h +++ b/Include/object.h @@ -426,7 +426,6 @@ static inline void _Py_INCREF(PyObject *op) #endif op->ob_refcnt++; } - #define Py_INCREF(op) _Py_INCREF(_PyObject_CAST(op)) static inline void _Py_DECREF( @@ -449,7 +448,6 @@ static inline void _Py_DECREF( _Py_Dealloc(op); } } - #ifdef Py_REF_DEBUG # define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) #else @@ -548,8 +546,8 @@ static inline PyObject* _Py_XNewRef(PyObject *obj) // Py_NewRef() and Py_XNewRef() are exported as functions for the stable ABI. // Names overriden with macros by static inline functions for best // performances. -#define Py_NewRef(obj) _Py_NewRef(obj) -#define Py_XNewRef(obj) _Py_XNewRef(obj) +#define Py_NewRef(obj) _Py_NewRef(_PyObject_CAST(obj)) +#define Py_XNewRef(obj) _Py_XNewRef(_PyObject_CAST(obj)) /* diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index d2104423c5890..4f97927fa2322 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -5614,7 +5614,7 @@ static PyObject *test_buildvalue_issue38913(PyObject *, PyObject *); static PyObject* -test_set_type_size(PyObject* self, PyObject* ignored) +test_set_type_size(PyObject *self, PyObject *Py_UNUSED(ignored)) { PyObject *obj = PyList_New(0); if (obj == NULL) { @@ -5636,6 +5636,35 @@ test_set_type_size(PyObject* self, PyObject* ignored) } +// Test Py_NewRef() and Py_XNewRef() functions +static PyObject* +test_refcount(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *obj = PyList_New(0); + if (obj == NULL) { + return NULL; + } + assert(Py_REFCNT(obj) == 1); + + // Test Py_NewRef() + PyObject *ref = Py_NewRef(obj); + assert(ref == obj); + assert(Py_REFCNT(obj) == 2); + Py_DECREF(ref); + + // Test Py_XNewRef() + PyObject *xref = Py_XNewRef(obj); + assert(xref == obj); + assert(Py_REFCNT(obj) == 2); + Py_DECREF(xref); + + assert(Py_XNewRef(NULL) == NULL); + + Py_DECREF(obj); + Py_RETURN_NONE; +} + + static PyMethodDef TestMethods[] = { {"raise_exception", raise_exception, METH_VARARGS}, {"raise_memoryerror", raise_memoryerror, METH_NOARGS}, @@ -5908,6 +5937,7 @@ static PyMethodDef TestMethods[] = { {"pynumber_tobase", pynumber_tobase, METH_VARARGS}, {"without_gc", without_gc, METH_O}, {"test_set_type_size", test_set_type_size, METH_NOARGS}, + {"test_refcount", test_refcount, METH_NOARGS}, {NULL, NULL} /* sentinel */ }; From webhook-mailer at python.org Thu Dec 3 08:15:37 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 13:15:37 -0000 Subject: [Python-checkins] bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Message-ID: https://github.com/python/cpython/commit/930d5377c5877a631c3c23929e2cb6211bb0e2fb commit: 930d5377c5877a631c3c23929e2cb6211bb0e2fb branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-03T05:15:28-08:00 summary: bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Fix test_asyncio.test_call_later() race condition: don't measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. (cherry picked from commit 7e5e13d113798117d5ef25c5ffdbd0eb39420f98) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst M Lib/test/test_asyncio/test_events.py diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index cec7e94a4f3c4..af18d62072746 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -291,11 +291,8 @@ def callback(arg): self.loop.stop() self.loop.call_later(0.1, callback, 'hello world') - t0 = time.monotonic() self.loop.run_forever() - t1 = time.monotonic() self.assertEqual(results, ['hello world']) - self.assertTrue(0.08 <= t1-t0 <= 0.8, t1-t0) def test_call_soon(self): results = [] diff --git a/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst new file mode 100644 index 0000000000000..872214284728b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst @@ -0,0 +1,3 @@ +Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio +performance in the ``call_later()`` unit test. The test failed randomly on +the CI. From webhook-mailer at python.org Thu Dec 3 08:20:13 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 13:20:13 -0000 Subject: [Python-checkins] bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Message-ID: https://github.com/python/cpython/commit/9f26833cedd33439b11059d423f599982abeb180 commit: 9f26833cedd33439b11059d423f599982abeb180 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-03T05:20:07-08:00 summary: bpo-42553: Fix test_asyncio.test_call_later() (GH-23627) Fix test_asyncio.test_call_later() race condition: don't measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. (cherry picked from commit 7e5e13d113798117d5ef25c5ffdbd0eb39420f98) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst M Lib/test/test_asyncio/test_events.py diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 92b1522e956c4..fa6c49d89da5c 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -293,11 +293,8 @@ def callback(arg): self.loop.stop() self.loop.call_later(0.1, callback, 'hello world') - t0 = time.monotonic() self.loop.run_forever() - t1 = time.monotonic() self.assertEqual(results, ['hello world']) - self.assertTrue(0.08 <= t1-t0 <= 0.8, t1-t0) def test_call_soon(self): results = [] diff --git a/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst new file mode 100644 index 0000000000000..872214284728b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst @@ -0,0 +1,3 @@ +Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio +performance in the ``call_later()`` unit test. The test failed randomly on +the CI. From webhook-mailer at python.org Thu Dec 3 12:22:31 2020 From: webhook-mailer at python.org (zooba) Date: Thu, 03 Dec 2020 17:22:31 -0000 Subject: [Python-checkins] bpo-42523: Fix supported versions in "Using Python on Windows" (GH-23603) Message-ID: https://github.com/python/cpython/commit/db68544122f5a0c7b80f69c0e643049efa6699c6 commit: db68544122f5a0c7b80f69c0e643049efa6699c6 branch: master author: Zackery Spytz committer: zooba date: 2020-12-03T17:22:04Z summary: bpo-42523: Fix supported versions in "Using Python on Windows" (GH-23603) files: M Doc/using/windows.rst diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index 78c1e03f7462c..265c07c7099f3 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -23,8 +23,8 @@ available for application-local distributions. As specified in :pep:`11`, a Python release only supports a Windows platform while Microsoft considers the platform under extended support. This means that -Python |version| supports Windows Vista and newer. If you require Windows XP -support then please install Python 3.4. +Python |version| supports Windows 8.1 and newer. If you require Windows 7 +support, please install Python 3.8. There are a number of different installers available for Windows, each with certain benefits and downsides. From webhook-mailer at python.org Thu Dec 3 12:47:11 2020 From: webhook-mailer at python.org (miss-islington) Date: Thu, 03 Dec 2020 17:47:11 -0000 Subject: [Python-checkins] bpo-42523: Fix supported versions in "Using Python on Windows" (GH-23603) Message-ID: https://github.com/python/cpython/commit/3689c25a1010c2acdb05f1b1b0229f4766b4440a commit: 3689c25a1010c2acdb05f1b1b0229f4766b4440a branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-03T09:46:58-08:00 summary: bpo-42523: Fix supported versions in "Using Python on Windows" (GH-23603) (cherry picked from commit db68544122f5a0c7b80f69c0e643049efa6699c6) Co-authored-by: Zackery Spytz files: M Doc/using/windows.rst diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index 275495bc6d129..d0c342e1dad86 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -23,8 +23,8 @@ available for application-local distributions. As specified in :pep:`11`, a Python release only supports a Windows platform while Microsoft considers the platform under extended support. This means that -Python |version| supports Windows Vista and newer. If you require Windows XP -support then please install Python 3.4. +Python |version| supports Windows 8.1 and newer. If you require Windows 7 +support, please install Python 3.8. There are a number of different installers available for Windows, each with certain benefits and downsides. From webhook-mailer at python.org Fri Dec 4 10:21:03 2020 From: webhook-mailer at python.org (markshannon) Date: Fri, 04 Dec 2020 15:21:03 -0000 Subject: [Python-checkins] bpo-42562: Fix issue when dis failed to parse function that has no line numbers (GH-23632) Message-ID: https://github.com/python/cpython/commit/f24b8101a01fa98b1e3ec042ba896aeb4c24d4bc commit: f24b8101a01fa98b1e3ec042ba896aeb4c24d4bc branch: master author: Yurii Karabas <1998uriyyo at gmail.com> committer: markshannon date: 2020-12-04T15:20:53Z summary: bpo-42562: Fix issue when dis failed to parse function that has no line numbers (GH-23632) Fix issue when dis failed to parse function that has only annotations files: A Misc/NEWS.d/next/Library/2020-12-03-22-42-03.bpo-42562.2hPmhi.rst M Lib/dis.py M Lib/test/test_dis.py diff --git a/Lib/dis.py b/Lib/dis.py index ea50f564c87dc..ccbd65be73255 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -384,7 +384,7 @@ def _disassemble_bytes(code, lasti=-1, varnames=None, names=None, constants=None, cells=None, linestarts=None, *, file=None, line_offset=0): # Omit the line number column entirely if we have no line number info - show_lineno = linestarts is not None + show_lineno = bool(linestarts) if show_lineno: maxlineno = max(linestarts.values()) + line_offset if maxlineno >= 1000: diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index d0743d62e3d79..56d877151838f 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -166,6 +166,20 @@ def bug1333982(x=[]): bug1333982.__code__.co_firstlineno + 2, bug1333982.__code__.co_firstlineno + 1) + +def bug42562(): + pass + + +# Set line number for 'pass' to None +bug42562.__code__ = bug42562.__code__.replace(co_linetable=b'\x04\x80\xff\x80') + + +dis_bug42562 = """\ + 0 LOAD_CONST 0 (None) + 2 RETURN_VALUE +""" + _BIG_LINENO_FORMAT = """\ %3d 0 LOAD_GLOBAL 0 (spam) 2 POP_TOP @@ -520,6 +534,9 @@ def test_bug_1333982(self): self.do_disassembly_test(bug1333982, dis_bug1333982) + def test_bug_42562(self): + self.do_disassembly_test(bug42562, dis_bug42562) + def test_big_linenos(self): def func(count): namespace = {} diff --git a/Misc/NEWS.d/next/Library/2020-12-03-22-42-03.bpo-42562.2hPmhi.rst b/Misc/NEWS.d/next/Library/2020-12-03-22-42-03.bpo-42562.2hPmhi.rst new file mode 100644 index 0000000000000..4999da509c291 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-22-42-03.bpo-42562.2hPmhi.rst @@ -0,0 +1,2 @@ +Fix issue when dis failed to parse function that has no line numbers. Patch +provided by Yurii Karabas. From webhook-mailer at python.org Fri Dec 4 10:22:22 2020 From: webhook-mailer at python.org (markshannon) Date: Fri, 04 Dec 2020 15:22:22 -0000 Subject: [Python-checkins] bpo-42246: Don't forget the entry block when ensuring that all exits have a line number (GH-23636) Message-ID: https://github.com/python/cpython/commit/eaccc12aa986f92ea05f3f0a63cedbff78dd67f1 commit: eaccc12aa986f92ea05f3f0a63cedbff78dd67f1 branch: master author: Mark Shannon committer: markshannon date: 2020-12-04T15:22:12Z summary: bpo-42246: Don't forget the entry block when ensuring that all exits have a line number (GH-23636) Don't forget the entry block when ensuring that all exits have a line number. files: M Lib/test/test_compile.py M Python/compile.c M Python/importlib.h M Python/importlib_external.h diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 1e61f41c25b78..0d11ce940f81a 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -809,6 +809,24 @@ def save_caller_frame(): func(save_caller_frame) self.assertEqual(frame.f_lineno-frame.f_code.co_firstlineno, lastline) + def test_lineno_after_no_code(self): + def no_code1(): + "doc string" + + def no_code2(): + a: int + + for func in (no_code1, no_code2): + with self.subTest(func=func): + code = func.__code__ + lines = list(code.co_lines()) + self.assertEqual(len(lines), 1) + start, end, line = lines[0] + self.assertEqual(start, 0) + self.assertEqual(end, len(code.co_code)) + self.assertEqual(line, code.co_firstlineno) + + def test_big_dict_literal(self): # The compiler has a flushing point in "compiler_dict" that calls compiles # a portion of the dictionary literal when the loop that iterates over the items diff --git a/Python/compile.c b/Python/compile.c index c67e8e885e4e6..ea9d6781b9c15 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -6514,6 +6514,7 @@ is_exit_without_lineno(basicblock *b) { static int ensure_exits_have_lineno(struct compiler *c) { + basicblock *entry = NULL; /* Copy all exit blocks without line number that are targets of a jump. */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { @@ -6535,6 +6536,11 @@ ensure_exits_have_lineno(struct compiler *c) b->b_instr[b->b_iused-1].i_target = new_target; } } + entry = b; + } + assert(entry != NULL); + if (is_exit_without_lineno(entry)) { + entry->b_instr[0].i_lineno = c->u->u_firstlineno; } /* Any remaining reachable exit blocks without line number can only be reached by * fall through, and thus can only have a single predecessor */ diff --git a/Python/importlib.h b/Python/importlib.h index c5ff9ece081ee..179f8df77a0a0 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -1243,7 +1243,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,111, 110,46,78,114,10,0,0,0,114,161,0,0,0,114,10,0, 0,0,114,10,0,0,0,114,11,0,0,0,114,150,0,0, - 0,66,3,0,0,115,4,0,0,0,4,128,255,128,122,28, + 0,66,3,0,0,115,4,0,0,0,4,0,255,128,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, diff --git a/Python/importlib_external.h b/Python/importlib_external.h index c459bcf2e90c4..8f18d208d2ec0 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -1153,7 +1153,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,169,2,114,123,0,0,0,114,191,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,55,3,0,0,115, - 4,0,0,0,4,128,255,128,122,27,95,76,111,97,100,101, + 4,0,0,0,4,0,255,128,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, @@ -1292,7 +1292,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 32,32,32,78,114,7,0,0,0,41,3,114,123,0,0,0, 114,52,0,0,0,114,37,0,0,0,114,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,114,232,0,0,0,105,3, - 0,0,115,4,0,0,0,4,128,255,128,122,21,83,111,117, + 0,0,115,4,0,0,0,4,0,255,128,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, @@ -2019,7 +2019,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,115,4,0,0,0,100,1,83,0,114,217,0,0,0,114, 7,0,0,0,114,218,0,0,0,114,7,0,0,0,114,7, 0,0,0,114,8,0,0,0,114,219,0,0,0,217,4,0, - 0,115,4,0,0,0,4,128,255,128,122,30,95,78,97,109, + 0,115,4,0,0,0,4,0,255,128,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, From webhook-mailer at python.org Fri Dec 4 10:24:05 2020 From: webhook-mailer at python.org (vstinner) Date: Fri, 04 Dec 2020 15:24:05 -0000 Subject: [Python-checkins] bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) Message-ID: https://github.com/python/cpython/commit/066394018a8463643cc63d933493f0afa99d72cc commit: 066394018a8463643cc63d933493f0afa99d72cc branch: master author: Victor Stinner committer: vstinner date: 2020-12-04T16:23:56+01:00 summary: bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) https://bugzilla.redhat.com/show_bug.cgi?id=1866884 is fixed in gdb 10.1 (failed to reproduce on gdb-10.1-1.fc34.aarch64). files: A Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst M Lib/test/test_gdb.py diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 44cb9a0f07b75..22c75bae98721 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -51,11 +51,6 @@ def get_gdb_version(): "embedding. Saw %s.%s:\n%s" % (gdb_major_version, gdb_minor_version, gdb_version)) -if (gdb_major_version, gdb_minor_version) >= (9, 2): - # gdb 9.2 on Fedora Rawhide is not reliable, see: - # * https://bugs.python.org/issue41473 - # * https://bugzilla.redhat.com/show_bug.cgi?id=1866884 - raise unittest.SkipTest("https://bugzilla.redhat.com/show_bug.cgi?id=1866884") if not sysconfig.is_python_build(): raise unittest.SkipTest("test_gdb only works on source builds at the moment.") diff --git a/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst new file mode 100644 index 0000000000000..9e0a375a9b7f2 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst @@ -0,0 +1,3 @@ +Reenable test_gdb on gdb 9.2 and newer: +https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb +10.1. From webhook-mailer at python.org Fri Dec 4 10:41:17 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 15:41:17 -0000 Subject: [Python-checkins] bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) Message-ID: https://github.com/python/cpython/commit/8e8f82dd9459b9f62c21480528d737cffd6146bc commit: 8e8f82dd9459b9f62c21480528d737cffd6146bc branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T07:41:02-08:00 summary: bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) https://bugzilla.redhat.com/show_bug.cgi?id=1866884 is fixed in gdb 10.1 (failed to reproduce on gdb-10.1-1.fc34.aarch64). (cherry picked from commit 066394018a8463643cc63d933493f0afa99d72cc) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst M Lib/test/test_gdb.py diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 01a48af285422..d90ca5a51ae1b 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -51,11 +51,6 @@ def get_gdb_version(): "embedding. Saw %s.%s:\n%s" % (gdb_major_version, gdb_minor_version, gdb_version)) -if (gdb_major_version, gdb_minor_version) >= (9, 2): - # gdb 9.2 on Fedora Rawhide is not reliable, see: - # * https://bugs.python.org/issue41473 - # * https://bugzilla.redhat.com/show_bug.cgi?id=1866884 - raise unittest.SkipTest("https://bugzilla.redhat.com/show_bug.cgi?id=1866884") if not sysconfig.is_python_build(): raise unittest.SkipTest("test_gdb only works on source builds at the moment.") diff --git a/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst new file mode 100644 index 0000000000000..9e0a375a9b7f2 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst @@ -0,0 +1,3 @@ +Reenable test_gdb on gdb 9.2 and newer: +https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb +10.1. From webhook-mailer at python.org Fri Dec 4 10:47:53 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 15:47:53 -0000 Subject: [Python-checkins] bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) Message-ID: https://github.com/python/cpython/commit/c7cf66d2fe1b85cc02153be6422dfc5e34811638 commit: c7cf66d2fe1b85cc02153be6422dfc5e34811638 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T07:47:44-08:00 summary: bpo-41473: Reenable test_gdb on gdb 9.2 and newer (GH-23637) https://bugzilla.redhat.com/show_bug.cgi?id=1866884 is fixed in gdb 10.1 (failed to reproduce on gdb-10.1-1.fc34.aarch64). (cherry picked from commit 066394018a8463643cc63d933493f0afa99d72cc) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst M Lib/test/test_gdb.py diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 44cb9a0f07b75..22c75bae98721 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -51,11 +51,6 @@ def get_gdb_version(): "embedding. Saw %s.%s:\n%s" % (gdb_major_version, gdb_minor_version, gdb_version)) -if (gdb_major_version, gdb_minor_version) >= (9, 2): - # gdb 9.2 on Fedora Rawhide is not reliable, see: - # * https://bugs.python.org/issue41473 - # * https://bugzilla.redhat.com/show_bug.cgi?id=1866884 - raise unittest.SkipTest("https://bugzilla.redhat.com/show_bug.cgi?id=1866884") if not sysconfig.is_python_build(): raise unittest.SkipTest("test_gdb only works on source builds at the moment.") diff --git a/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst new file mode 100644 index 0000000000000..9e0a375a9b7f2 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst @@ -0,0 +1,3 @@ +Reenable test_gdb on gdb 9.2 and newer: +https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb +10.1. From webhook-mailer at python.org Fri Dec 4 11:45:47 2020 From: webhook-mailer at python.org (taleinat) Date: Fri, 04 Dec 2020 16:45:47 -0000 Subject: [Python-checkins] bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) Message-ID: https://github.com/python/cpython/commit/6e1eec71f59c344fb23c7977061dc2c97b77d51b commit: 6e1eec71f59c344fb23c7977061dc2c97b77d51b branch: master author: Irit Katriel committer: taleinat <532281+taleinat at users.noreply.github.com> date: 2020-12-04T18:45:38+02:00 summary: bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) files: A Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst M Lib/inspect.py M Lib/test/inspect_fodder.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index 7412d0e837cf1..073a79d97acd2 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -930,6 +930,7 @@ def __init__(self): self.indecorator = False self.decoratorhasargs = False self.last = 1 + self.body_col0 = None def tokeneater(self, type, token, srowcol, erowcol, line): if not self.started and not self.indecorator: @@ -961,6 +962,8 @@ def tokeneater(self, type, token, srowcol, erowcol, line): elif self.passline: pass elif type == tokenize.INDENT: + if self.body_col0 is None and self.started: + self.body_col0 = erowcol[1] self.indent = self.indent + 1 self.passline = True elif type == tokenize.DEDENT: @@ -970,6 +973,10 @@ def tokeneater(self, type, token, srowcol, erowcol, line): # not e.g. for "if: else:" or "try: finally:" blocks) if self.indent <= 0: raise EndOfBlock + elif type == tokenize.COMMENT: + if self.body_col0 is not None and srowcol[1] >= self.body_col0: + # Include comments if indented at least as much as the block + self.last = srowcol[0] elif self.indent == 0 and type not in (tokenize.COMMENT, tokenize.NL): # any other token on the same indentation level end the previous # block as well, except the pseudo-tokens COMMENT and NL. diff --git a/Lib/test/inspect_fodder.py b/Lib/test/inspect_fodder.py index 96a0257bfdf03..e1287a315901c 100644 --- a/Lib/test/inspect_fodder.py +++ b/Lib/test/inspect_fodder.py @@ -91,3 +91,25 @@ def as_method_of(self, obj): custom_method = Callable().as_method_of(42) del Callable + +# line 95 +class WhichComments: + # line 97 + # before f + def f(self): + # line 100 + # start f + return 1 + # line 103 + # end f + # line 105 + # after f + + # before asyncf - line 108 + async def asyncf(self): + # start asyncf + return 2 + # end asyncf + # after asyncf - line 113 + # end of WhichComments - line 114 + # after WhichComments - line 115 diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 71c4f27d27b98..172e6bf6cd8a6 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -390,6 +390,7 @@ def test_getclasses(self): ('ParrotDroppings', mod.ParrotDroppings), ('StupidGit', mod.StupidGit), ('Tit', mod.MalodorousPervert), + ('WhichComments', mod.WhichComments), ]) tree = inspect.getclasstree([cls[1] for cls in classes]) self.assertEqual(tree, @@ -403,7 +404,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) tree = inspect.getclasstree([cls[1] for cls in classes], True) @@ -415,7 +417,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) @@ -646,6 +649,18 @@ def test_anonymous(self): # as argument to another function. self.assertSourceEqual(mod2.anonymous, 55, 55) +class TestBlockComments(GetSourceBase): + fodderModule = mod + + def test_toplevel_class(self): + self.assertSourceEqual(mod.WhichComments, 96, 114) + + def test_class_method(self): + self.assertSourceEqual(mod.WhichComments.f, 99, 104) + + def test_class_async_method(self): + self.assertSourceEqual(mod.WhichComments.asyncf, 109, 112) + class TestBuggyCases(GetSourceBase): fodderModule = mod2 @@ -4014,8 +4029,8 @@ def test_getsource_reload(self): def test_main(): run_unittest( - TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBuggyCases, - TestInterpreterStack, TestClassesAndFunctions, TestPredicates, + TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBlockComments, + TestBuggyCases, TestInterpreterStack, TestClassesAndFunctions, TestPredicates, TestGetcallargsFunctions, TestGetcallargsMethods, TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState, TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject, diff --git a/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst new file mode 100644 index 0000000000000..febda89338ddc --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst @@ -0,0 +1 @@ +Fix handling of trailing comments by :func:`inspect.getsource`. \ No newline at end of file From webhook-mailer at python.org Fri Dec 4 15:19:41 2020 From: webhook-mailer at python.org (gpshead) Date: Fri, 04 Dec 2020 20:19:41 -0000 Subject: [Python-checkins] bpo-31904: fix test_doctest.py failures for VxWorks (GH-23419) Message-ID: https://github.com/python/cpython/commit/8d4f57dbd10846ffb4881b6509a511be0ab3b913 commit: 8d4f57dbd10846ffb4881b6509a511be0ab3b913 branch: master author: pxinwr committer: gpshead date: 2020-12-04T12:19:32-08:00 summary: bpo-31904: fix test_doctest.py failures for VxWorks (GH-23419) Fix test_doctest.py failures for VxWorks by avoiding exact error message checks. (better for everyone all around) files: A Misc/NEWS.d/next/Tests/2020-11-20-15-07-18.bpo-31904.EBJXjJ.rst M Lib/test/test_doctest.py diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index bff20f9cac9c9..6a5013f5b8afc 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -3039,10 +3039,11 @@ def test_CLI(): r""" ... '-m', 'doctest', 'nosuchfile') >>> rc, out (1, b'') + >>> # The exact error message changes depending on the platform. >>> print(normalize(err)) # doctest: +ELLIPSIS Traceback (most recent call last): ... - FileNotFoundError: [Errno ...] No such file or directory: 'nosuchfile' + FileNotFoundError: [Errno ...] ...nosuchfile... Invalid doctest option: diff --git a/Misc/NEWS.d/next/Tests/2020-11-20-15-07-18.bpo-31904.EBJXjJ.rst b/Misc/NEWS.d/next/Tests/2020-11-20-15-07-18.bpo-31904.EBJXjJ.rst new file mode 100644 index 0000000000000..e5e66ceea4402 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-11-20-15-07-18.bpo-31904.EBJXjJ.rst @@ -0,0 +1 @@ +Fix test_doctest.py failures for VxWorks. From webhook-mailer at python.org Fri Dec 4 15:20:13 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 20:20:13 -0000 Subject: [Python-checkins] bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) Message-ID: https://github.com/python/cpython/commit/81ac030d03bdaedd724603af6f89f9248a5f2700 commit: 81ac030d03bdaedd724603af6f89f9248a5f2700 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T12:20:05-08:00 summary: bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) (cherry picked from commit 6e1eec71f59c344fb23c7977061dc2c97b77d51b) Co-authored-by: Irit Katriel files: A Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst M Lib/inspect.py M Lib/test/inspect_fodder.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index 887a3424057b6..6ca91e401a5ea 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -926,6 +926,7 @@ def __init__(self): self.indecorator = False self.decoratorhasargs = False self.last = 1 + self.body_col0 = None def tokeneater(self, type, token, srowcol, erowcol, line): if not self.started and not self.indecorator: @@ -957,6 +958,8 @@ def tokeneater(self, type, token, srowcol, erowcol, line): elif self.passline: pass elif type == tokenize.INDENT: + if self.body_col0 is None and self.started: + self.body_col0 = erowcol[1] self.indent = self.indent + 1 self.passline = True elif type == tokenize.DEDENT: @@ -966,6 +969,10 @@ def tokeneater(self, type, token, srowcol, erowcol, line): # not e.g. for "if: else:" or "try: finally:" blocks) if self.indent <= 0: raise EndOfBlock + elif type == tokenize.COMMENT: + if self.body_col0 is not None and srowcol[1] >= self.body_col0: + # Include comments if indented at least as much as the block + self.last = srowcol[0] elif self.indent == 0 and type not in (tokenize.COMMENT, tokenize.NL): # any other token on the same indentation level end the previous # block as well, except the pseudo-tokens COMMENT and NL. diff --git a/Lib/test/inspect_fodder.py b/Lib/test/inspect_fodder.py index 96a0257bfdf03..e1287a315901c 100644 --- a/Lib/test/inspect_fodder.py +++ b/Lib/test/inspect_fodder.py @@ -91,3 +91,25 @@ def as_method_of(self, obj): custom_method = Callable().as_method_of(42) del Callable + +# line 95 +class WhichComments: + # line 97 + # before f + def f(self): + # line 100 + # start f + return 1 + # line 103 + # end f + # line 105 + # after f + + # before asyncf - line 108 + async def asyncf(self): + # start asyncf + return 2 + # end asyncf + # after asyncf - line 113 + # end of WhichComments - line 114 + # after WhichComments - line 115 diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index e3e2be52076c6..05485a0bc0575 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -388,6 +388,7 @@ def test_getclasses(self): ('ParrotDroppings', mod.ParrotDroppings), ('StupidGit', mod.StupidGit), ('Tit', mod.MalodorousPervert), + ('WhichComments', mod.WhichComments), ]) tree = inspect.getclasstree([cls[1] for cls in classes]) self.assertEqual(tree, @@ -401,7 +402,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) tree = inspect.getclasstree([cls[1] for cls in classes], True) @@ -413,7 +415,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) @@ -644,6 +647,18 @@ def test_anonymous(self): # as argument to another function. self.assertSourceEqual(mod2.anonymous, 55, 55) +class TestBlockComments(GetSourceBase): + fodderModule = mod + + def test_toplevel_class(self): + self.assertSourceEqual(mod.WhichComments, 96, 114) + + def test_class_method(self): + self.assertSourceEqual(mod.WhichComments.f, 99, 104) + + def test_class_async_method(self): + self.assertSourceEqual(mod.WhichComments.asyncf, 109, 112) + class TestBuggyCases(GetSourceBase): fodderModule = mod2 @@ -4016,8 +4031,8 @@ def test_getsource_reload(self): def test_main(): run_unittest( - TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBuggyCases, - TestInterpreterStack, TestClassesAndFunctions, TestPredicates, + TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBlockComments, + TestBuggyCases, TestInterpreterStack, TestClassesAndFunctions, TestPredicates, TestGetcallargsFunctions, TestGetcallargsMethods, TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState, TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject, diff --git a/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst new file mode 100644 index 0000000000000..febda89338ddc --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst @@ -0,0 +1 @@ +Fix handling of trailing comments by :func:`inspect.getsource`. \ No newline at end of file From webhook-mailer at python.org Fri Dec 4 15:20:13 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 20:20:13 -0000 Subject: [Python-checkins] bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) Message-ID: https://github.com/python/cpython/commit/3b14f18205b17d1634e21bd7bc48152247590d9f commit: 3b14f18205b17d1634e21bd7bc48152247590d9f branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T12:20:09-08:00 summary: bpo-42116: Fix inspect.getsource handling of trailing comments (GH-23630) (cherry picked from commit 6e1eec71f59c344fb23c7977061dc2c97b77d51b) Co-authored-by: Irit Katriel files: A Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst M Lib/inspect.py M Lib/test/inspect_fodder.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index e8ea8c221f828..95144a97b41f2 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -899,6 +899,7 @@ def __init__(self): self.indecorator = False self.decoratorhasargs = False self.last = 1 + self.body_col0 = None def tokeneater(self, type, token, srowcol, erowcol, line): if not self.started and not self.indecorator: @@ -930,6 +931,8 @@ def tokeneater(self, type, token, srowcol, erowcol, line): elif self.passline: pass elif type == tokenize.INDENT: + if self.body_col0 is None and self.started: + self.body_col0 = erowcol[1] self.indent = self.indent + 1 self.passline = True elif type == tokenize.DEDENT: @@ -939,6 +942,10 @@ def tokeneater(self, type, token, srowcol, erowcol, line): # not e.g. for "if: else:" or "try: finally:" blocks) if self.indent <= 0: raise EndOfBlock + elif type == tokenize.COMMENT: + if self.body_col0 is not None and srowcol[1] >= self.body_col0: + # Include comments if indented at least as much as the block + self.last = srowcol[0] elif self.indent == 0 and type not in (tokenize.COMMENT, tokenize.NL): # any other token on the same indentation level end the previous # block as well, except the pseudo-tokens COMMENT and NL. diff --git a/Lib/test/inspect_fodder.py b/Lib/test/inspect_fodder.py index 96a0257bfdf03..e1287a315901c 100644 --- a/Lib/test/inspect_fodder.py +++ b/Lib/test/inspect_fodder.py @@ -91,3 +91,25 @@ def as_method_of(self, obj): custom_method = Callable().as_method_of(42) del Callable + +# line 95 +class WhichComments: + # line 97 + # before f + def f(self): + # line 100 + # start f + return 1 + # line 103 + # end f + # line 105 + # after f + + # before asyncf - line 108 + async def asyncf(self): + # start asyncf + return 2 + # end asyncf + # after asyncf - line 113 + # end of WhichComments - line 114 + # after WhichComments - line 115 diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index ad93f304827fb..39248e7802485 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -392,6 +392,7 @@ def test_getclasses(self): ('ParrotDroppings', mod.ParrotDroppings), ('StupidGit', mod.StupidGit), ('Tit', mod.MalodorousPervert), + ('WhichComments', mod.WhichComments), ]) tree = inspect.getclasstree([cls[1] for cls in classes]) self.assertEqual(tree, @@ -405,7 +406,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) tree = inspect.getclasstree([cls[1] for cls in classes], True) @@ -417,7 +419,8 @@ def test_getclasses(self): [(mod.FesteringGob, (mod.MalodorousPervert, mod.ParrotDroppings)) ] - ] + ], + (mod.WhichComments, (object,),) ] ]) @@ -647,6 +650,18 @@ def test_anonymous(self): # as argument to another function. self.assertSourceEqual(mod2.anonymous, 55, 55) +class TestBlockComments(GetSourceBase): + fodderModule = mod + + def test_toplevel_class(self): + self.assertSourceEqual(mod.WhichComments, 96, 114) + + def test_class_method(self): + self.assertSourceEqual(mod.WhichComments.f, 99, 104) + + def test_class_async_method(self): + self.assertSourceEqual(mod.WhichComments.asyncf, 109, 112) + class TestBuggyCases(GetSourceBase): fodderModule = mod2 @@ -3970,8 +3985,8 @@ def test_getsource_reload(self): def test_main(): run_unittest( - TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBuggyCases, - TestInterpreterStack, TestClassesAndFunctions, TestPredicates, + TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBlockComments, + TestBuggyCases, TestInterpreterStack, TestClassesAndFunctions, TestPredicates, TestGetcallargsFunctions, TestGetcallargsMethods, TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState, TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject, diff --git a/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst new file mode 100644 index 0000000000000..febda89338ddc --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst @@ -0,0 +1 @@ +Fix handling of trailing comments by :func:`inspect.getsource`. \ No newline at end of file From webhook-mailer at python.org Fri Dec 4 15:57:47 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 20:57:47 -0000 Subject: [Python-checkins] [3.9] bpo-42482: remove reference to exc_traceback from TracebackException (GH-23531) (GH-23578) Message-ID: https://github.com/python/cpython/commit/40b92f1cc06f9aaba813ae38266f424e0969b089 commit: 40b92f1cc06f9aaba813ae38266f424e0969b089 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T12:57:31-08:00 summary: [3.9] bpo-42482: remove reference to exc_traceback from TracebackException (GH-23531) (GH-23578) (cherry picked from commit 427613f005f0f412d12f0d775d2b609bae0ae1ad) Co-authored-by: Irit Katriel files: A Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst M Lib/test/test_traceback.py M Lib/traceback.py diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index d564f3040ea18..8549ba2b75ad0 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -1103,6 +1103,18 @@ def test_context(self): self.assertEqual(exc_info[0], exc.exc_type) self.assertEqual(str(exc_info[1]), str(exc)) + def test_no_refs_to_exception_and_traceback_objects(self): + try: + 1/0 + except Exception: + exc_info = sys.exc_info() + + refcnt1 = sys.getrefcount(exc_info[1]) + refcnt2 = sys.getrefcount(exc_info[2]) + exc = traceback.TracebackException(*exc_info) + self.assertEqual(sys.getrefcount(exc_info[1]), refcnt1) + self.assertEqual(sys.getrefcount(exc_info[2]), refcnt2) + def test_comparison_basic(self): try: 1/0 @@ -1152,6 +1164,16 @@ def raise_with_locals(): exc7 = traceback.TracebackException(*exc_info, limit=-2, capture_locals=True) self.assertNotEqual(exc6, exc7) + def test_comparison_equivalent_exceptions_are_equal(self): + excs = [] + for _ in range(2): + try: + 1/0 + except: + excs.append(traceback.TracebackException(*sys.exc_info())) + self.assertEqual(excs[0], excs[1]) + self.assertEqual(list(excs[0].format()), list(excs[1].format())) + def test_unhashable(self): class UnhashableException(Exception): def __eq__(self, other): diff --git a/Lib/traceback.py b/Lib/traceback.py index a19e38718b120..fb34de9489300 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -500,7 +500,6 @@ def __init__(self, exc_type, exc_value, exc_traceback, *, limit=None, _seen=_seen) else: context = None - self.exc_traceback = exc_traceback self.__cause__ = cause self.__context__ = context self.__suppress_context__ = \ @@ -617,7 +616,7 @@ def format(self, *, chain=True): not self.__suppress_context__): yield from self.__context__.format(chain=chain) yield _context_message - if self.exc_traceback is not None: + if self.stack: yield 'Traceback (most recent call last):\n' - yield from self.stack.format() + yield from self.stack.format() yield from self.format_exception_only() diff --git a/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst b/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst new file mode 100644 index 0000000000000..79afa654f352e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst @@ -0,0 +1 @@ +:class:`~traceback.TracebackException` no longer holds a reference to the exception's traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal. \ No newline at end of file From webhook-mailer at python.org Fri Dec 4 16:22:29 2020 From: webhook-mailer at python.org (taleinat) Date: Fri, 04 Dec 2020 21:22:29 -0000 Subject: [Python-checkins] bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) Message-ID: https://github.com/python/cpython/commit/2e0760bb2edb595050aff82f236cd32b44d3dfb3 commit: 2e0760bb2edb595050aff82f236cd32b44d3dfb3 branch: master author: Irit Katriel committer: taleinat <532281+taleinat at users.noreply.github.com> date: 2020-12-04T23:22:03+02:00 summary: bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) This can happen when a file was edited after it was imported. files: A Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst M Lib/inspect.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index 073a79d97acd2..9150ac104dcb7 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -868,7 +868,12 @@ def findsource(object): lnum = object.co_firstlineno - 1 pat = re.compile(r'^(\s*def\s)|(\s*async\s+def\s)|(.*(? 0: - if pat.match(lines[lnum]): break + try: + line = lines[lnum] + except IndexError: + raise OSError('lineno is out of bounds') + if pat.match(line): + break lnum = lnum - 1 return lines, lnum raise OSError('could not find code object') diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 172e6bf6cd8a6..c81d828b57ece 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -712,6 +712,17 @@ def test_findsource_without_filename(self): self.assertRaises(IOError, inspect.findsource, co) self.assertRaises(IOError, inspect.getsource, co) + def test_findsource_with_out_of_bounds_lineno(self): + mod_len = len(inspect.getsource(mod)) + src = '\n' * 2* mod_len + "def f(): pass" + co = compile(src, mod.__file__, "exec") + g, l = {}, {} + eval(co, g, l) + func = l['f'] + self.assertEqual(func.__code__.co_firstlineno, 1+2*mod_len) + with self.assertRaisesRegex(IOError, "lineno is out of bounds"): + inspect.findsource(func) + def test_getsource_on_method(self): self.assertSourceEqual(mod2.ClassWithMethod.method, 118, 119) diff --git a/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst new file mode 100644 index 0000000000000..655781e3d2edd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst @@ -0,0 +1,4 @@ +:func:`inspect.findsource` now raises :exc:`OSError` instead of +:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than the +file length. This can happen, for example, when a file is edited after it was +imported. PR by Irit Katriel. From webhook-mailer at python.org Fri Dec 4 16:45:16 2020 From: webhook-mailer at python.org (miss-islington) Date: Fri, 04 Dec 2020 21:45:16 -0000 Subject: [Python-checkins] bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) Message-ID: https://github.com/python/cpython/commit/a4e7d5f750e06e31a80a83c2af02b1a40cecd0ff commit: a4e7d5f750e06e31a80a83c2af02b1a40cecd0ff branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2020-12-04T13:44:53-08:00 summary: bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) This can happen when a file was edited after it was imported. (cherry picked from commit 2e0760bb2edb595050aff82f236cd32b44d3dfb3) Co-authored-by: Irit Katriel files: A Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst M Lib/inspect.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index 95144a97b41f2..7ffc7d31bd8a6 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -837,7 +837,12 @@ def findsource(object): lnum = object.co_firstlineno - 1 pat = re.compile(r'^(\s*def\s)|(\s*async\s+def\s)|(.*(? 0: - if pat.match(lines[lnum]): break + try: + line = lines[lnum] + except IndexError: + raise OSError('lineno is out of bounds') + if pat.match(line): + break lnum = lnum - 1 return lines, lnum raise OSError('could not find code object') diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 39248e7802485..b81af87e5661b 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -713,6 +713,17 @@ def test_findsource_without_filename(self): self.assertRaises(IOError, inspect.findsource, co) self.assertRaises(IOError, inspect.getsource, co) + def test_findsource_with_out_of_bounds_lineno(self): + mod_len = len(inspect.getsource(mod)) + src = '\n' * 2* mod_len + "def f(): pass" + co = compile(src, mod.__file__, "exec") + g, l = {}, {} + eval(co, g, l) + func = l['f'] + self.assertEqual(func.__code__.co_firstlineno, 1+2*mod_len) + with self.assertRaisesRegex(IOError, "lineno is out of bounds"): + inspect.findsource(func) + def test_getsource_on_method(self): self.assertSourceEqual(mod2.ClassWithMethod.method, 118, 119) diff --git a/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst new file mode 100644 index 0000000000000..655781e3d2edd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst @@ -0,0 +1,4 @@ +:func:`inspect.findsource` now raises :exc:`OSError` instead of +:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than the +file length. This can happen, for example, when a file is edited after it was +imported. PR by Irit Katriel. From webhook-mailer at python.org Fri Dec 4 17:06:08 2020 From: webhook-mailer at python.org (pablogsal) Date: Fri, 04 Dec 2020 22:06:08 -0000 Subject: [Python-checkins] bpo-42545: Check that all symbols in the limited ABI are exported (GH-23616) Message-ID: https://github.com/python/cpython/commit/85f1dedb8d05774e0d3739be0a11cd970b98097f commit: 85f1dedb8d05774e0d3739be0a11cd970b98097f branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-04T22:05:58Z summary: bpo-42545: Check that all symbols in the limited ABI are exported (GH-23616) files: A Doc/data/stable_abi.dat A Tools/scripts/stable_abi.py M .github/workflows/build.yml M .travis.yml M Makefile.pre.in diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 12c591e41362e..71c307b6c62a3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,6 +75,8 @@ jobs: fi - name: Check exported libpython symbols run: make smelly + - name: Check limited ABI symbols + run: make check-limited-abi build_win32: name: 'Windows (x86)' diff --git a/.travis.yml b/.travis.yml index dfdf670bff5f9..547d919974957 100644 --- a/.travis.yml +++ b/.travis.yml @@ -192,6 +192,8 @@ script: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./python Tools/scripts/patchcheck.py --travis $TRAVIS_PULL_REQUEST; fi # Check that all symbols exported by libpython start with "Py" or "_Py" - make smelly + # Check that all symbols in the limited abi are present + - make check-limited-abi # `-r -w` implicitly provided through `make buildbottest`. - | if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat new file mode 100644 index 0000000000000..28cb50b12301b --- /dev/null +++ b/Doc/data/stable_abi.dat @@ -0,0 +1,779 @@ +# File generated by 'make regen-limited-abi' +# This is NOT an authoritative list of stable ABI symbols +PyArg_Parse +PyArg_ParseTuple +PyArg_ParseTupleAndKeywords +PyArg_UnpackTuple +PyArg_VaParse +PyArg_VaParseTupleAndKeywords +PyArg_ValidateKeywordArguments +PyBaseObject_Type +PyBool_FromLong +PyBool_Type +PyByteArrayIter_Type +PyByteArray_AsString +PyByteArray_Concat +PyByteArray_FromObject +PyByteArray_FromStringAndSize +PyByteArray_Resize +PyByteArray_Size +PyByteArray_Type +PyBytesIter_Type +PyBytes_AsString +PyBytes_AsStringAndSize +PyBytes_Concat +PyBytes_ConcatAndDel +PyBytes_DecodeEscape +PyBytes_FromFormat +PyBytes_FromFormatV +PyBytes_FromObject +PyBytes_FromString +PyBytes_FromStringAndSize +PyBytes_Repr +PyBytes_Size +PyBytes_Type +PyCFunction_Call +PyCFunction_GetFlags +PyCFunction_GetFunction +PyCFunction_GetSelf +PyCFunction_NewEx +PyCFunction_Type +PyCMethod_New +PyCallIter_New +PyCallIter_Type +PyCallable_Check +PyCapsule_GetContext +PyCapsule_GetDestructor +PyCapsule_GetName +PyCapsule_GetPointer +PyCapsule_Import +PyCapsule_IsValid +PyCapsule_New +PyCapsule_SetContext +PyCapsule_SetDestructor +PyCapsule_SetName +PyCapsule_SetPointer +PyCapsule_Type +PyClassMethodDescr_Type +PyCodec_BackslashReplaceErrors +PyCodec_Decode +PyCodec_Decoder +PyCodec_Encode +PyCodec_Encoder +PyCodec_IgnoreErrors +PyCodec_IncrementalDecoder +PyCodec_IncrementalEncoder +PyCodec_KnownEncoding +PyCodec_LookupError +PyCodec_NameReplaceErrors +PyCodec_Register +PyCodec_RegisterError +PyCodec_ReplaceErrors +PyCodec_StreamReader +PyCodec_StreamWriter +PyCodec_StrictErrors +PyCodec_Unregister +PyCodec_XMLCharRefReplaceErrors +PyComplex_FromDoubles +PyComplex_ImagAsDouble +PyComplex_RealAsDouble +PyComplex_Type +PyDescr_NewClassMethod +PyDescr_NewGetSet +PyDescr_NewMember +PyDescr_NewMethod +PyDictItems_Type +PyDictIterItem_Type +PyDictIterKey_Type +PyDictIterValue_Type +PyDictKeys_Type +PyDictProxy_New +PyDictProxy_Type +PyDictRevIterItem_Type +PyDictRevIterKey_Type +PyDictRevIterValue_Type +PyDictValues_Type +PyDict_Clear +PyDict_Contains +PyDict_Copy +PyDict_DelItem +PyDict_DelItemString +PyDict_GetItem +PyDict_GetItemString +PyDict_GetItemWithError +PyDict_Items +PyDict_Keys +PyDict_Merge +PyDict_MergeFromSeq2 +PyDict_New +PyDict_Next +PyDict_SetItem +PyDict_SetItemString +PyDict_Size +PyDict_Type +PyDict_Update +PyDict_Values +PyEllipsis_Type +PyEnum_Type +PyErr_BadArgument +PyErr_BadInternalCall +PyErr_CheckSignals +PyErr_Clear +PyErr_Display +PyErr_ExceptionMatches +PyErr_Fetch +PyErr_Format +PyErr_FormatV +PyErr_GetExcInfo +PyErr_GivenExceptionMatches +PyErr_NewException +PyErr_NewExceptionWithDoc +PyErr_NoMemory +PyErr_NormalizeException +PyErr_Occurred +PyErr_Print +PyErr_PrintEx +PyErr_ProgramText +PyErr_ResourceWarning +PyErr_Restore +PyErr_SetExcInfo +PyErr_SetFromErrno +PyErr_SetFromErrnoWithFilename +PyErr_SetFromErrnoWithFilenameObject +PyErr_SetFromErrnoWithFilenameObjects +PyErr_SetImportError +PyErr_SetImportErrorSubclass +PyErr_SetInterrupt +PyErr_SetNone +PyErr_SetObject +PyErr_SetString +PyErr_SyntaxLocation +PyErr_SyntaxLocationEx +PyErr_WarnEx +PyErr_WarnExplicit +PyErr_WarnFormat +PyErr_WriteUnraisable +PyEval_AcquireLock +PyEval_AcquireThread +PyEval_CallFunction +PyEval_CallMethod +PyEval_CallObjectWithKeywords +PyEval_EvalCode +PyEval_EvalCodeEx +PyEval_EvalFrame +PyEval_EvalFrameEx +PyEval_GetBuiltins +PyEval_GetFrame +PyEval_GetFuncDesc +PyEval_GetFuncName +PyEval_GetGlobals +PyEval_GetLocals +PyEval_InitThreads +PyEval_ReleaseLock +PyEval_ReleaseThread +PyEval_RestoreThread +PyEval_SaveThread +PyEval_ThreadsInitialized +PyExc_ArithmeticError +PyExc_AssertionError +PyExc_AttributeError +PyExc_BaseException +PyExc_BlockingIOError +PyExc_BrokenPipeError +PyExc_BufferError +PyExc_BytesWarning +PyExc_ChildProcessError +PyExc_ConnectionAbortedError +PyExc_ConnectionError +PyExc_ConnectionRefusedError +PyExc_ConnectionResetError +PyExc_DeprecationWarning +PyExc_EOFError +PyExc_EnvironmentError +PyExc_Exception +PyExc_FileExistsError +PyExc_FileNotFoundError +PyExc_FloatingPointError +PyExc_FutureWarning +PyExc_GeneratorExit +PyExc_IOError +PyExc_ImportError +PyExc_ImportWarning +PyExc_IndentationError +PyExc_IndexError +PyExc_InterruptedError +PyExc_IsADirectoryError +PyExc_KeyError +PyExc_KeyboardInterrupt +PyExc_LookupError +PyExc_MemoryError +PyExc_ModuleNotFoundError +PyExc_NameError +PyExc_NotADirectoryError +PyExc_NotImplementedError +PyExc_OSError +PyExc_OverflowError +PyExc_PendingDeprecationWarning +PyExc_PermissionError +PyExc_ProcessLookupError +PyExc_RecursionError +PyExc_ReferenceError +PyExc_ResourceWarning +PyExc_RuntimeError +PyExc_RuntimeWarning +PyExc_StopAsyncIteration +PyExc_StopIteration +PyExc_SyntaxError +PyExc_SyntaxWarning +PyExc_SystemError +PyExc_SystemExit +PyExc_TabError +PyExc_TimeoutError +PyExc_TypeError +PyExc_UnboundLocalError +PyExc_UnicodeDecodeError +PyExc_UnicodeEncodeError +PyExc_UnicodeError +PyExc_UnicodeTranslateError +PyExc_UnicodeWarning +PyExc_UserWarning +PyExc_ValueError +PyExc_Warning +PyExc_ZeroDivisionError +PyExceptionClass_Name +PyException_GetCause +PyException_GetContext +PyException_GetTraceback +PyException_SetCause +PyException_SetContext +PyException_SetTraceback +PyFile_FromFd +PyFile_GetLine +PyFile_WriteObject +PyFile_WriteString +PyFilter_Type +PyFloat_AsDouble +PyFloat_FromDouble +PyFloat_FromString +PyFloat_GetInfo +PyFloat_GetMax +PyFloat_GetMin +PyFloat_Type +PyFrame_GetCode +PyFrame_GetLineNumber +PyFrozenSet_New +PyFrozenSet_Type +PyGC_Collect +PyGILState_Ensure +PyGILState_GetThisThreadState +PyGILState_Release +PyGetSetDescr_Type +PyImport_AddModule +PyImport_AddModuleObject +PyImport_AppendInittab +PyImport_ExecCodeModule +PyImport_ExecCodeModuleEx +PyImport_ExecCodeModuleObject +PyImport_ExecCodeModuleWithPathnames +PyImport_GetImporter +PyImport_GetMagicNumber +PyImport_GetMagicTag +PyImport_GetModule +PyImport_GetModuleDict +PyImport_Import +PyImport_ImportFrozenModule +PyImport_ImportFrozenModuleObject +PyImport_ImportModule +PyImport_ImportModuleLevel +PyImport_ImportModuleLevelObject +PyImport_ImportModuleNoBlock +PyImport_ReloadModule +PyIndex_Check +PyInterpreterState_Clear +PyInterpreterState_Delete +PyInterpreterState_Get +PyInterpreterState_GetDict +PyInterpreterState_GetID +PyInterpreterState_New +PyIter_Check +PyIter_Next +PyIter_Send +PyListIter_Type +PyListRevIter_Type +PyList_Append +PyList_AsTuple +PyList_GetItem +PyList_GetSlice +PyList_Insert +PyList_New +PyList_Reverse +PyList_SetItem +PyList_SetSlice +PyList_Size +PyList_Sort +PyList_Type +PyLongRangeIter_Type +PyLong_AsDouble +PyLong_AsLong +PyLong_AsLongAndOverflow +PyLong_AsLongLong +PyLong_AsLongLongAndOverflow +PyLong_AsSize_t +PyLong_AsSsize_t +PyLong_AsUnsignedLong +PyLong_AsUnsignedLongLong +PyLong_AsUnsignedLongLongMask +PyLong_AsUnsignedLongMask +PyLong_AsVoidPtr +PyLong_FromDouble +PyLong_FromLong +PyLong_FromLongLong +PyLong_FromSize_t +PyLong_FromSsize_t +PyLong_FromString +PyLong_FromUnsignedLong +PyLong_FromUnsignedLongLong +PyLong_FromVoidPtr +PyLong_GetInfo +PyLong_Type +PyMap_Type +PyMapping_Check +PyMapping_GetItemString +PyMapping_HasKey +PyMapping_HasKeyString +PyMapping_Items +PyMapping_Keys +PyMapping_Length +PyMapping_SetItemString +PyMapping_Size +PyMapping_Values +PyMarshal_ReadObjectFromString +PyMarshal_WriteLongToFile +PyMarshal_WriteObjectToFile +PyMarshal_WriteObjectToString +PyMem_Free +PyMem_Malloc +PyMem_Realloc +PyMemberDescr_Type +PyMember_GetOne +PyMember_SetOne +PyMemoryView_FromMemory +PyMemoryView_FromObject +PyMemoryView_GetContiguous +PyMemoryView_Type +PyMethodDescr_Type +PyModuleDef_Init +PyModuleDef_Type +PyModule_AddFunctions +PyModule_AddIntConstant +PyModule_AddObject +PyModule_AddObjectRef +PyModule_AddStringConstant +PyModule_AddType +PyModule_Create2 +PyModule_ExecDef +PyModule_FromDefAndSpec2 +PyModule_GetDef +PyModule_GetDict +PyModule_GetFilename +PyModule_GetFilenameObject +PyModule_GetName +PyModule_GetNameObject +PyModule_GetState +PyModule_New +PyModule_NewObject +PyModule_SetDocString +PyModule_Type +PyNumber_Absolute +PyNumber_Add +PyNumber_And +PyNumber_AsSsize_t +PyNumber_Check +PyNumber_Divmod +PyNumber_Float +PyNumber_FloorDivide +PyNumber_InPlaceAdd +PyNumber_InPlaceAnd +PyNumber_InPlaceFloorDivide +PyNumber_InPlaceLshift +PyNumber_InPlaceMatrixMultiply +PyNumber_InPlaceMultiply +PyNumber_InPlaceOr +PyNumber_InPlacePower +PyNumber_InPlaceRemainder +PyNumber_InPlaceRshift +PyNumber_InPlaceSubtract +PyNumber_InPlaceTrueDivide +PyNumber_InPlaceXor +PyNumber_Index +PyNumber_Invert +PyNumber_Long +PyNumber_Lshift +PyNumber_MatrixMultiply +PyNumber_Multiply +PyNumber_Negative +PyNumber_Or +PyNumber_Positive +PyNumber_Power +PyNumber_Remainder +PyNumber_Rshift +PyNumber_Subtract +PyNumber_ToBase +PyNumber_TrueDivide +PyNumber_Xor +PyOS_AfterFork +PyOS_AfterFork_Child +PyOS_AfterFork_Parent +PyOS_BeforeFork +PyOS_FSPath +PyOS_InterruptOccurred +PyOS_double_to_string +PyOS_getsig +PyOS_mystricmp +PyOS_mystrnicmp +PyOS_setsig +PyOS_snprintf +PyOS_string_to_double +PyOS_strtol +PyOS_strtoul +PyOS_vsnprintf +PyObject_ASCII +PyObject_AsFileDescriptor +PyObject_Bytes +PyObject_Call +PyObject_CallFunction +PyObject_CallFunctionObjArgs +PyObject_CallMethod +PyObject_CallMethodObjArgs +PyObject_CallNoArgs +PyObject_CallObject +PyObject_Calloc +PyObject_ClearWeakRefs +PyObject_DelItem +PyObject_DelItemString +PyObject_Dir +PyObject_Format +PyObject_Free +PyObject_GC_Del +PyObject_GC_IsFinalized +PyObject_GC_IsTracked +PyObject_GC_Track +PyObject_GC_UnTrack +PyObject_GenericGetAttr +PyObject_GenericGetDict +PyObject_GenericSetAttr +PyObject_GenericSetDict +PyObject_GetAttr +PyObject_GetAttrString +PyObject_GetItem +PyObject_GetIter +PyObject_HasAttr +PyObject_HasAttrString +PyObject_Hash +PyObject_HashNotImplemented +PyObject_Init +PyObject_InitVar +PyObject_IsInstance +PyObject_IsSubclass +PyObject_IsTrue +PyObject_Length +PyObject_Malloc +PyObject_Not +PyObject_Realloc +PyObject_Repr +PyObject_RichCompare +PyObject_RichCompareBool +PyObject_SelfIter +PyObject_SetAttr +PyObject_SetAttrString +PyObject_SetItem +PyObject_Size +PyObject_Str +PyObject_Type +PyProperty_Type +PyRangeIter_Type +PyRange_Type +PyReversed_Type +PySeqIter_New +PySeqIter_Type +PySequence_Check +PySequence_Concat +PySequence_Contains +PySequence_Count +PySequence_DelItem +PySequence_DelSlice +PySequence_Fast +PySequence_GetItem +PySequence_GetSlice +PySequence_In +PySequence_InPlaceConcat +PySequence_InPlaceRepeat +PySequence_Index +PySequence_Length +PySequence_List +PySequence_Repeat +PySequence_SetItem +PySequence_SetSlice +PySequence_Size +PySequence_Tuple +PySetIter_Type +PySet_Add +PySet_Clear +PySet_Contains +PySet_Discard +PySet_New +PySet_Pop +PySet_Size +PySet_Type +PySlice_AdjustIndices +PySlice_GetIndices +PySlice_GetIndicesEx +PySlice_New +PySlice_Type +PySlice_Unpack +PyState_AddModule +PyState_FindModule +PyState_RemoveModule +PyStructSequence_GetItem +PyStructSequence_New +PyStructSequence_NewType +PyStructSequence_SetItem +PySuper_Type +PySys_AddWarnOption +PySys_AddWarnOptionUnicode +PySys_AddXOption +PySys_FormatStderr +PySys_FormatStdout +PySys_GetObject +PySys_GetXOptions +PySys_HasWarnOptions +PySys_ResetWarnOptions +PySys_SetArgv +PySys_SetArgvEx +PySys_SetObject +PySys_SetPath +PySys_WriteStderr +PySys_WriteStdout +PyThreadState_Clear +PyThreadState_Delete +PyThreadState_Get +PyThreadState_GetDict +PyThreadState_GetFrame +PyThreadState_GetID +PyThreadState_GetInterpreter +PyThreadState_New +PyThreadState_SetAsyncExc +PyThreadState_Swap +PyThread_GetInfo +PyThread_ReInitTLS +PyThread_acquire_lock +PyThread_acquire_lock_timed +PyThread_allocate_lock +PyThread_create_key +PyThread_delete_key +PyThread_delete_key_value +PyThread_exit_thread +PyThread_free_lock +PyThread_get_key_value +PyThread_get_stacksize +PyThread_get_thread_ident +PyThread_get_thread_native_id +PyThread_init_thread +PyThread_release_lock +PyThread_set_key_value +PyThread_set_stacksize +PyThread_start_new_thread +PyThread_tss_alloc +PyThread_tss_create +PyThread_tss_delete +PyThread_tss_free +PyThread_tss_get +PyThread_tss_is_created +PyThread_tss_set +PyTraceBack_Here +PyTraceBack_Print +PyTraceBack_Type +PyTupleIter_Type +PyTuple_GetItem +PyTuple_GetSlice +PyTuple_New +PyTuple_Pack +PyTuple_SetItem +PyTuple_Size +PyTuple_Type +PyType_ClearCache +PyType_FromModuleAndSpec +PyType_FromSpec +PyType_FromSpecWithBases +PyType_GenericAlloc +PyType_GenericNew +PyType_GetFlags +PyType_GetModule +PyType_GetModuleState +PyType_GetSlot +PyType_IsSubtype +PyType_Modified +PyType_Ready +PyType_Type +PyUnicodeDecodeError_Create +PyUnicodeDecodeError_GetEncoding +PyUnicodeDecodeError_GetEnd +PyUnicodeDecodeError_GetObject +PyUnicodeDecodeError_GetReason +PyUnicodeDecodeError_GetStart +PyUnicodeDecodeError_SetEnd +PyUnicodeDecodeError_SetReason +PyUnicodeDecodeError_SetStart +PyUnicodeEncodeError_GetEncoding +PyUnicodeEncodeError_GetEnd +PyUnicodeEncodeError_GetObject +PyUnicodeEncodeError_GetReason +PyUnicodeEncodeError_GetStart +PyUnicodeEncodeError_SetEnd +PyUnicodeEncodeError_SetReason +PyUnicodeEncodeError_SetStart +PyUnicodeIter_Type +PyUnicodeTranslateError_GetEnd +PyUnicodeTranslateError_GetObject +PyUnicodeTranslateError_GetReason +PyUnicodeTranslateError_GetStart +PyUnicodeTranslateError_SetEnd +PyUnicodeTranslateError_SetReason +PyUnicodeTranslateError_SetStart +PyUnicode_Append +PyUnicode_AppendAndDel +PyUnicode_AsASCIIString +PyUnicode_AsCharmapString +PyUnicode_AsDecodedObject +PyUnicode_AsDecodedUnicode +PyUnicode_AsEncodedObject +PyUnicode_AsEncodedString +PyUnicode_AsEncodedUnicode +PyUnicode_AsLatin1String +PyUnicode_AsRawUnicodeEscapeString +PyUnicode_AsUCS4 +PyUnicode_AsUCS4Copy +PyUnicode_AsUTF16String +PyUnicode_AsUTF32String +PyUnicode_AsUTF8AndSize +PyUnicode_AsUTF8String +PyUnicode_AsUnicodeEscapeString +PyUnicode_AsWideChar +PyUnicode_AsWideCharString +PyUnicode_BuildEncodingMap +PyUnicode_Compare +PyUnicode_CompareWithASCIIString +PyUnicode_Concat +PyUnicode_Contains +PyUnicode_Count +PyUnicode_Decode +PyUnicode_DecodeASCII +PyUnicode_DecodeCharmap +PyUnicode_DecodeFSDefault +PyUnicode_DecodeFSDefaultAndSize +PyUnicode_DecodeLatin1 +PyUnicode_DecodeLocale +PyUnicode_DecodeLocaleAndSize +PyUnicode_DecodeRawUnicodeEscape +PyUnicode_DecodeUTF16 +PyUnicode_DecodeUTF16Stateful +PyUnicode_DecodeUTF32 +PyUnicode_DecodeUTF32Stateful +PyUnicode_DecodeUTF7 +PyUnicode_DecodeUTF7Stateful +PyUnicode_DecodeUTF8 +PyUnicode_DecodeUTF8Stateful +PyUnicode_DecodeUnicodeEscape +PyUnicode_EncodeFSDefault +PyUnicode_EncodeLocale +PyUnicode_FSConverter +PyUnicode_FSDecoder +PyUnicode_Find +PyUnicode_FindChar +PyUnicode_Format +PyUnicode_FromEncodedObject +PyUnicode_FromFormat +PyUnicode_FromFormatV +PyUnicode_FromObject +PyUnicode_FromOrdinal +PyUnicode_FromString +PyUnicode_FromStringAndSize +PyUnicode_FromWideChar +PyUnicode_GetDefaultEncoding +PyUnicode_GetLength +PyUnicode_GetSize +PyUnicode_InternFromString +PyUnicode_InternImmortal +PyUnicode_InternInPlace +PyUnicode_IsIdentifier +PyUnicode_Join +PyUnicode_Partition +PyUnicode_RPartition +PyUnicode_RSplit +PyUnicode_ReadChar +PyUnicode_Replace +PyUnicode_Resize +PyUnicode_RichCompare +PyUnicode_Split +PyUnicode_Splitlines +PyUnicode_Substring +PyUnicode_Tailmatch +PyUnicode_Translate +PyUnicode_Type +PyUnicode_WriteChar +PyWeakref_GetObject +PyWeakref_NewProxy +PyWeakref_NewRef +PyWrapperDescr_Type +PyWrapper_New +PyZip_Type +Py_AddPendingCall +Py_AtExit +Py_BuildValue +Py_BytesMain +Py_CompileString +Py_DecRef +Py_DecodeLocale +Py_EncodeLocale +Py_EndInterpreter +Py_EnterRecursiveCall +Py_Exit +Py_FatalError +Py_FileSystemDefaultEncodeErrors +Py_FileSystemDefaultEncoding +Py_Finalize +Py_FinalizeEx +Py_GenericAlias +Py_GenericAliasType +Py_GetBuildInfo +Py_GetCompiler +Py_GetCopyright +Py_GetExecPrefix +Py_GetPath +Py_GetPlatform +Py_GetPrefix +Py_GetProgramFullPath +Py_GetProgramName +Py_GetPythonHome +Py_GetRecursionLimit +Py_GetVersion +Py_HasFileSystemDefaultEncoding +Py_IncRef +Py_Initialize +Py_InitializeEx +Py_IsInitialized +Py_LeaveRecursiveCall +Py_Main +Py_MakePendingCalls +Py_NewInterpreter +Py_NewRef +Py_ReprEnter +Py_ReprLeave +Py_SetPath +Py_SetProgramName +Py_SetPythonHome +Py_SetRecursionLimit +Py_SymtableString +Py_UTF8Mode +Py_VaBuildValue +Py_XNewRef diff --git a/Makefile.pre.in b/Makefile.pre.in index 082945f58a777..f52a0f3cdf0d6 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -744,6 +744,13 @@ regen-importlib: Programs/_freeze_importlib $(UPDATE_FILE) $(srcdir)/Python/importlib_zipimport.h $(srcdir)/Python/importlib_zipimport.h.new +regen-limited-abi: all + @$(MKDIR_P) $(srcdir)/Doc/data/ + $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py generate $(srcdir)/Doc/data/stable_abi.dat.new + $(UPDATE_FILE) $(srcdir)/Doc/data/stable_abi.dat \ + $(srcdir)/Doc/data/stable_abi.dat.new + + ############################################################################ # Regenerate all generated files @@ -1900,6 +1907,9 @@ funny: patchcheck: @DEF_MAKE_RULE@ $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py +check-limited-abi: all + $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py check $(srcdir)/Doc/data/stable_abi.dat + # Dependencies Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py new file mode 100755 index 0000000000000..aa953b2dfde87 --- /dev/null +++ b/Tools/scripts/stable_abi.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python + +import argparse +import glob +import re +import pathlib +import subprocess +import sys +import sysconfig + +EXCLUDED_HEADERS = { + "bytes_methods.h", + "cellobject.h", + "classobject.h", + "code.h", + "compile.h", + "datetime.h", + "dtoa.h", + "frameobject.h", + "funcobject.h", + "genobject.h", + "longintrepr.h", + "parsetok.h", + "pyarena.h", + "pyatomic.h", + "pyctype.h", + "pydebug.h", + "pytime.h", + "symtable.h", + "token.h", + "ucnhash.h", +} + + +def get_exported_symbols(library, dynamic=False): + # Only look at dynamic symbols + args = ["nm", "--no-sort"] + if dynamic: + args.append("--dynamic") + args.append(library) + proc = subprocess.run(args, stdout=subprocess.PIPE, universal_newlines=True) + if proc.returncode: + sys.stdout.write(proc.stdout) + sys.exit(proc.returncode) + + stdout = proc.stdout.rstrip() + if not stdout: + raise Exception("command output is empty") + + for line in stdout.splitlines(): + # Split line '0000000000001b80 D PyTextIOWrapper_Type' + if not line: + continue + + parts = line.split(maxsplit=2) + if len(parts) < 3: + continue + + symbol = parts[-1] + yield symbol + + +def check_library(library, abi_funcs, dynamic=False): + available_symbols = set(get_exported_symbols(library, dynamic)) + missing_symbols = abi_funcs - available_symbols + if missing_symbols: + print( + f"Some symbols from the stable ABI are missing: {', '.join(missing_symbols)}" + ) + return 1 + return 0 + + +def generate_limited_api_symbols(args): + if hasattr(sys, "gettotalrefcount"): + print( + "Stable ABI symbols cannot be generated from a debug build", file=sys.stderr + ) + sys.exit(1) + library = sysconfig.get_config_var("LIBRARY") + ldlibrary = sysconfig.get_config_var("LDLIBRARY") + if ldlibrary != library: + raise Exception("Limited ABI symbols can only be generated from a static build") + available_symbols = { + symbol for symbol in get_exported_symbols(library) if symbol.startswith("Py") + } + + headers = [ + file + for file in pathlib.Path("Include").glob("*.h") + if file.name not in EXCLUDED_HEADERS + ] + stable_data, stable_exported_data, stable_functions = get_limited_api_definitions( + headers + ) + macros = get_limited_api_macros(headers) + + stable_symbols = { + symbol + for symbol in (stable_functions | stable_exported_data | stable_data | macros) + if symbol.startswith("Py") and symbol in available_symbols + } + with open(args.output_file, "w") as output_file: + output_file.write(f"# File generated by 'make regen-limited-abi'\n") + output_file.write( + f"# This is NOT an authoritative list of stable ABI symbols\n" + ) + for symbol in sorted(stable_symbols): + output_file.write(f"{symbol}\n") + sys.exit(0) + + +def get_limited_api_macros(headers): + """Run the preprocesor over all the header files in "Include" setting + "-DPy_LIMITED_API" to the correct value for the running version of the interpreter + and extracting all macro definitions (via adding -dM to the compiler arguments). + """ + + preprocesor_output_with_macros = subprocess.check_output( + sysconfig.get_config_var("CC").split() + + [ + # Prevent the expansion of the exported macros so we can capture them later + "-DSIZEOF_WCHAR_T=4", # The actual value is not important + f"-DPy_LIMITED_API={sys.version_info.major << 24 | sys.version_info.minor << 16}", + "-I.", + "-I./Include", + "-dM", + "-E", + ] + + [str(file) for file in headers], + text=True, + stderr=subprocess.DEVNULL, + ) + + return { + target + for _, target in re.findall( + r"#define (\w+)\s*(?:\(.*?\))?\s+(\w+)", preprocesor_output_with_macros + ) + } + + +def get_limited_api_definitions(headers): + """Run the preprocesor over all the header files in "Include" setting + "-DPy_LIMITED_API" to the correct value for the running version of the interpreter. + + The limited API symbols will be extracted from the output of this command as it includes + the prototypes and definitions of all the exported symbols that are in the limited api. + + This function does *NOT* extract the macros defined on the limited API + """ + preprocesor_output = subprocess.check_output( + sysconfig.get_config_var("CC").split() + + [ + # Prevent the expansion of the exported macros so we can capture them later + "-DPyAPI_FUNC=__PyAPI_FUNC", + "-DPyAPI_DATA=__PyAPI_DATA", + "-DEXPORT_DATA=__EXPORT_DATA", + "-D_Py_NO_RETURN=", + "-DSIZEOF_WCHAR_T=4", # The actual value is not important + f"-DPy_LIMITED_API={sys.version_info.major << 24 | sys.version_info.minor << 16}", + "-I.", + "-I./Include", + "-E", + ] + + [str(file) for file in headers], + text=True, + stderr=subprocess.DEVNULL, + ) + stable_functions = set( + re.findall(r"__PyAPI_FUNC\(.*?\)\s*(.*?)\s*\(", preprocesor_output) + ) + stable_exported_data = set( + re.findall(r"__EXPORT_DATA\((.*?)\)", preprocesor_output) + ) + stable_data = set( + re.findall(r"__PyAPI_DATA\(.*?\)\s*\(?(.*?)\)?\s*;", preprocesor_output) + ) + return stable_data, stable_exported_data, stable_functions + + +def check_symbols(parser_args): + with open(parser_args.stable_abi_file, "r") as filename: + abi_funcs = { + symbol + for symbol in filename.read().splitlines() + if symbol and not symbol.startswith("#") + } + + ret = 0 + # static library + LIBRARY = sysconfig.get_config_var("LIBRARY") + if not LIBRARY: + raise Exception("failed to get LIBRARY variable from sysconfig") + ret = check_library(LIBRARY, abi_funcs) + + # dynamic library + LDLIBRARY = sysconfig.get_config_var("LDLIBRARY") + if not LDLIBRARY: + raise Exception("failed to get LDLIBRARY variable from sysconfig") + if LDLIBRARY != LIBRARY: + ret |= check_library(LDLIBRARY, abi_funcs, dynamic=True) + + sys.exit(ret) + + +def main(): + parser = argparse.ArgumentParser(description="Process some integers.") + subparsers = parser.add_subparsers() + check_parser = subparsers.add_parser( + "check", help="Check the exported symbols against a given ABI file" + ) + check_parser.add_argument( + "stable_abi_file", type=str, help="File with the stable abi functions" + ) + check_parser.set_defaults(func=check_symbols) + generate_parser = subparsers.add_parser( + "generate", + help="Generate symbols from the header files and the exported symbols", + ) + generate_parser.add_argument( + "output_file", type=str, help="File to dump the symbols to" + ) + generate_parser.set_defaults(func=generate_limited_api_symbols) + args = parser.parse_args() + if "func" not in args: + parser.error("Either 'check' or 'generate' must be used") + sys.exit(1) + + args.func(args) + + +if __name__ == "__main__": + main() From webhook-mailer at python.org Fri Dec 4 17:42:07 2020 From: webhook-mailer at python.org (taleinat) Date: Fri, 04 Dec 2020 22:42:07 -0000 Subject: [Python-checkins] bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) Message-ID: https://github.com/python/cpython/commit/d1f07419c7560ed3ba52ba4f667f4eec9b5fe95d commit: d1f07419c7560ed3ba52ba4f667f4eec9b5fe95d branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: taleinat <532281+taleinat at users.noreply.github.com> date: 2020-12-05T00:41:58+02:00 summary: bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) This can happen when a file was edited after it was imported. (cherry picked from commit 2e0760bb2edb595050aff82f236cd32b44d3dfb3) Co-authored-by: Irit Katriel files: A Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst M Lib/inspect.py M Lib/test/test_inspect.py diff --git a/Lib/inspect.py b/Lib/inspect.py index 6ca91e401a5ea..18bed9028ed8a 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -864,7 +864,12 @@ def findsource(object): lnum = object.co_firstlineno - 1 pat = re.compile(r'^(\s*def\s)|(\s*async\s+def\s)|(.*(? 0: - if pat.match(lines[lnum]): break + try: + line = lines[lnum] + except IndexError: + raise OSError('lineno is out of bounds') + if pat.match(line): + break lnum = lnum - 1 return lines, lnum raise OSError('could not find code object') diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 05485a0bc0575..d9e26a3033667 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -710,6 +710,17 @@ def test_findsource_without_filename(self): self.assertRaises(IOError, inspect.findsource, co) self.assertRaises(IOError, inspect.getsource, co) + def test_findsource_with_out_of_bounds_lineno(self): + mod_len = len(inspect.getsource(mod)) + src = '\n' * 2* mod_len + "def f(): pass" + co = compile(src, mod.__file__, "exec") + g, l = {}, {} + eval(co, g, l) + func = l['f'] + self.assertEqual(func.__code__.co_firstlineno, 1+2*mod_len) + with self.assertRaisesRegex(IOError, "lineno is out of bounds"): + inspect.findsource(func) + def test_getsource_on_method(self): self.assertSourceEqual(mod2.ClassWithMethod.method, 118, 119) diff --git a/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst new file mode 100644 index 0000000000000..655781e3d2edd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst @@ -0,0 +1,4 @@ +:func:`inspect.findsource` now raises :exc:`OSError` instead of +:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than the +file length. This can happen, for example, when a file is edited after it was +imported. PR by Irit Katriel. From webhook-mailer at python.org Fri Dec 4 18:19:39 2020 From: webhook-mailer at python.org (pablogsal) Date: Fri, 04 Dec 2020 23:19:39 -0000 Subject: [Python-checkins] bpo-42545: Improve the error message in the stable API script (GH-23648) Message-ID: https://github.com/python/cpython/commit/79c1849b9e5b635bd36b13e1be9dc7cbc2bd6312 commit: 79c1849b9e5b635bd36b13e1be9dc7cbc2bd6312 branch: master author: Pablo Galindo committer: pablogsal date: 2020-12-04T23:19:21Z summary: bpo-42545: Improve the error message in the stable API script (GH-23648) files: M Tools/scripts/stable_abi.py diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py index aa953b2dfde87..b3a46f985e0a2 100755 --- a/Tools/scripts/stable_abi.py +++ b/Tools/scripts/stable_abi.py @@ -60,15 +60,33 @@ def get_exported_symbols(library, dynamic=False): yield symbol -def check_library(library, abi_funcs, dynamic=False): +def check_library(stable_abi_file, library, abi_funcs, dynamic=False): available_symbols = set(get_exported_symbols(library, dynamic)) missing_symbols = abi_funcs - available_symbols if missing_symbols: - print( - f"Some symbols from the stable ABI are missing: {', '.join(missing_symbols)}" + raise Exception( + f"""\ +Some symbols from the limited API are missing: {', '.join(missing_symbols)} + +This error means that there are some missing symbols among the ones exported +in the Python library ("libpythonx.x.a" or "libpythonx.x.so"). This normally +means that some symbol, function implementation or a prototype, belonging to +a symbol in the limited API has been deleted or is missing. + +Check if this was a mistake and if not, update the file containing the limited +API symbols. This file is located at: + +{stable_abi_file} + +You can read more about the limited API and its contracts at: + +https://docs.python.org/3/c-api/stable.html + +And in PEP 384: + +https://www.python.org/dev/peps/pep-0384/ +""" ) - return 1 - return 0 def generate_limited_api_symbols(args): @@ -107,7 +125,6 @@ def generate_limited_api_symbols(args): ) for symbol in sorted(stable_symbols): output_file.write(f"{symbol}\n") - sys.exit(0) def get_limited_api_macros(headers): @@ -187,21 +204,24 @@ def check_symbols(parser_args): if symbol and not symbol.startswith("#") } - ret = 0 - # static library - LIBRARY = sysconfig.get_config_var("LIBRARY") - if not LIBRARY: - raise Exception("failed to get LIBRARY variable from sysconfig") - ret = check_library(LIBRARY, abi_funcs) - - # dynamic library - LDLIBRARY = sysconfig.get_config_var("LDLIBRARY") - if not LDLIBRARY: - raise Exception("failed to get LDLIBRARY variable from sysconfig") - if LDLIBRARY != LIBRARY: - ret |= check_library(LDLIBRARY, abi_funcs, dynamic=True) - - sys.exit(ret) + try: + # static library + LIBRARY = sysconfig.get_config_var("LIBRARY") + if not LIBRARY: + raise Exception("failed to get LIBRARY variable from sysconfig") + check_library(parser_args.stable_abi_file, LIBRARY, abi_funcs) + + # dynamic library + LDLIBRARY = sysconfig.get_config_var("LDLIBRARY") + if not LDLIBRARY: + raise Exception("failed to get LDLIBRARY variable from sysconfig") + if LDLIBRARY != LIBRARY: + check_library( + parser_args.stable_abi_file, LDLIBRARY, abi_funcs, dynamic=True + ) + except Exception as e: + print(e, file=sys.stderr) + sys.exit(1) def main(): From webhook-mailer at python.org Fri Dec 4 18:39:36 2020 From: webhook-mailer at python.org (brettcannon) Date: Fri, 04 Dec 2020 23:39:36 -0000 Subject: [Python-checkins] bpo-26131: Deprecate usage of load_module() (GH-23469) Message-ID: https://github.com/python/cpython/commit/2de5097ba4c50eba90df55696a7b2e74c93834d4 commit: 2de5097ba4c50eba90df55696a7b2e74c93834d4 branch: master author: Brett Cannon committer: brettcannon date: 2020-12-04T15:39:21-08:00 summary: bpo-26131: Deprecate usage of load_module() (GH-23469) Raise an ImportWarning when the import system falls back on load_module(). As for implementations of load_module(), raise a DeprecationWarning. files: A Misc/NEWS.d/next/Core and Builtins/2020-10-22-17-27-08.bpo-26131.B-Veg7.rst A Misc/NEWS.d/next/Library/2020-10-22-17-26-35.bpo-26131.CAsI3O.rst A Misc/NEWS.d/next/Library/2020-11-22-12-30-26.bpo-26131.-HsFPG.rst M Doc/whatsnew/3.10.rst M Lib/importlib/_abc.py M Lib/importlib/_bootstrap.py M Lib/importlib/_bootstrap_external.py M Lib/test/test_importlib/builtin/test_loader.py M Lib/test/test_importlib/extension/test_loader.py M Lib/test/test_importlib/frozen/test_loader.py M Lib/test/test_importlib/import_/test___loader__.py M Lib/test/test_importlib/import_/test___package__.py M Lib/test/test_importlib/import_/test_api.py M Lib/test/test_importlib/import_/test_caching.py M Lib/test/test_importlib/import_/test_fromlist.py M Lib/test/test_importlib/import_/test_meta_path.py M Lib/test/test_importlib/test_abc.py M Lib/test/test_importlib/test_api.py M Lib/test/test_importlib/test_spec.py M Lib/test/test_venv.py M Lib/test/test_zipimport.py M Lib/zipimport.py M Python/importlib.h M Python/importlib_external.h M Python/importlib_zipimport.h diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index a8f1080a504c7..019dd1817d2b6 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -394,7 +394,8 @@ Optimizations with ``gcc`` by up to 30%. See `this article `_ for more details. (Contributed by Victor Stinner and Pablo Galindo in - :issue:`38980`) + :issue:`38980`.) + * Function parameters and their annotations are no longer computed at runtime, but rather at compilation time. They are stored as a tuple of strings at the @@ -421,6 +422,21 @@ Deprecated as appropriate to help identify code which needs updating during this transition. +* The various ``load_module()`` methods of :mod:`importlib` have been + documented as deprecated since Python 3.6, but will now also trigger + a :exc:`DeprecationWarning`. Use + :meth:`~importlib.abc.Loader.exec_module` instead. + (Contributed by Brett Cannon in :issue:`26131`.) + +* :meth:`zimport.zipimporter.load_module` has been deprecated in + preference for :meth:`~zipimport.zipimporter.exec_module`. + (Contributed by Brett Cannon in :issue:`26131`.) + +* The use of :meth:`~importlib.abc.Loader.load_module` by the import + system now triggers an :exc:`ImportWarning` as + :meth:`~importlib.abc.Loader.exec_module` is preferred. + (Contributed by Brett Cannon in :issue:`26131`.) + * ``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python 3.3, when it was made an alias to :class:`str`. It is now deprecated, scheduled for removal in Python 3.12. diff --git a/Lib/importlib/_abc.py b/Lib/importlib/_abc.py index fb5ec727cea6e..7591946a4e76d 100644 --- a/Lib/importlib/_abc.py +++ b/Lib/importlib/_abc.py @@ -35,6 +35,7 @@ def load_module(self, fullname): """ if not hasattr(self, 'exec_module'): raise ImportError + # Warning implemented in _load_module_shim(). return _bootstrap._load_module_shim(self, fullname) def module_repr(self, module): diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 9b7335b7b9c70..e4f893c38c1aa 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -20,6 +20,12 @@ # reference any injected objects! This includes not only global code but also # anything specified at the class level. +def _object_name(obj): + try: + return obj.__qualname__ + except AttributeError: + return type(obj).__qualname__ + # Bootstrap-related code ###################################################### # Modules injected manually by _setup() @@ -272,6 +278,9 @@ def _load_module_shim(self, fullname): This method is deprecated. Use loader.exec_module instead. """ + msg = ("the load_module() method is deprecated and slated for removal in " + "Python 3.12; use exec_module() instead") + _warnings.warn(msg, DeprecationWarning) spec = spec_from_loader(fullname, self) if fullname in sys.modules: module = sys.modules[fullname] @@ -612,9 +621,9 @@ def _exec(spec, module): else: _init_module_attrs(spec, module, override=True) if not hasattr(spec.loader, 'exec_module'): - # (issue19713) Once BuiltinImporter and ExtensionFileLoader - # have exec_module() implemented, we can add a deprecation - # warning here. + msg = (f"{_object_name(spec.loader)}.exec_module() not found; " + "falling back to load_module()") + _warnings.warn(msg, ImportWarning) spec.loader.load_module(name) else: spec.loader.exec_module(module) @@ -627,9 +636,8 @@ def _exec(spec, module): def _load_backward_compatible(spec): - # (issue19713) Once BuiltinImporter and ExtensionFileLoader - # have exec_module() implemented, we can add a deprecation - # warning here. + # It is assumed that all callers have been warned about using load_module() + # appropriately before calling this function. try: spec.loader.load_module(spec.name) except: @@ -668,6 +676,9 @@ def _load_unlocked(spec): if spec.loader is not None: # Not a namespace package. if not hasattr(spec.loader, 'exec_module'): + msg = (f"{_object_name(spec.loader)}.exec_module() not found; " + "falling back to load_module()") + _warnings.warn(msg, ImportWarning) return _load_backward_compatible(spec) module = module_from_spec(spec) @@ -851,6 +862,7 @@ def load_module(cls, fullname): This method is deprecated. Use exec_module() instead. """ + # Warning about deprecation implemented in _load_module_shim(). return _load_module_shim(cls, fullname) @classmethod diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index b8dd128238f03..d9e44df409062 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -832,7 +832,8 @@ def exec_module(self, module): _bootstrap._call_with_frames_removed(exec, code, module.__dict__) def load_module(self, fullname): - """This module is deprecated.""" + """This method is deprecated.""" + # Warning implemented in _load_module_shim(). return _bootstrap._load_module_shim(self, fullname) @@ -1007,7 +1008,7 @@ def load_module(self, fullname): """ # The only reason for this method is for the name check. # Issue #14857: Avoid the zero-argument form of super so the implementation - # of that form can be updated without breaking the frozen module + # of that form can be updated without breaking the frozen module. return super(FileLoader, self).load_module(fullname) @_check_name @@ -1253,6 +1254,7 @@ def load_module(self, fullname): # The import system never calls this method. _bootstrap._verbose_message('namespace module loaded with path {!r}', self._path) + # Warning implemented in _load_module_shim(). return _bootstrap._load_module_shim(self, fullname) diff --git a/Lib/test/test_importlib/builtin/test_loader.py b/Lib/test/test_importlib/builtin/test_loader.py index b1349ec5da467..f6b6d97cd5bce 100644 --- a/Lib/test/test_importlib/builtin/test_loader.py +++ b/Lib/test/test_importlib/builtin/test_loader.py @@ -6,6 +6,7 @@ import sys import types import unittest +import warnings @unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module') class LoaderTests(abc.LoaderTests): @@ -24,7 +25,9 @@ def verify(self, module): self.assertIn(module.__name__, sys.modules) def load_module(self, name): - return self.machinery.BuiltinImporter.load_module(name) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + return self.machinery.BuiltinImporter.load_module(name) def test_module(self): # Common case. diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index abd612fcd9bec..22cf2dac5f868 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -1,3 +1,4 @@ +from warnings import catch_warnings from .. import abc from .. import util @@ -7,6 +8,7 @@ import sys import types import unittest +import warnings import importlib.util import importlib from test.support.script_helper import assert_python_failure @@ -20,14 +22,18 @@ def setUp(self): util.EXTENSIONS.file_path) def load_module(self, fullname): - return self.loader.load_module(fullname) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + return self.loader.load_module(fullname) def test_load_module_API(self): # Test the default argument for load_module(). - self.loader.load_module() - self.loader.load_module(None) - with self.assertRaises(ImportError): - self.load_module('XXX') + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + self.loader.load_module() + self.loader.load_module(None) + with self.assertRaises(ImportError): + self.load_module('XXX') def test_equality(self): other = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name, @@ -94,6 +100,21 @@ def setUp(self): self.loader = self.machinery.ExtensionFileLoader( self.name, self.spec.origin) + def load_module(self): + '''Load the module from the test extension''' + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + return self.loader.load_module(self.name) + + def load_module_by_name(self, fullname): + '''Load a module from the test extension by name''' + origin = self.spec.origin + loader = self.machinery.ExtensionFileLoader(fullname, origin) + spec = importlib.util.spec_from_loader(fullname, loader) + module = importlib.util.module_from_spec(spec) + loader.exec_module(module) + return module + # No extension module as __init__ available for testing. test_package = None @@ -157,19 +178,6 @@ def test_try_registration(self): with self.assertRaises(SystemError): module.call_state_registration_func(2) - def load_module(self): - '''Load the module from the test extension''' - return self.loader.load_module(self.name) - - def load_module_by_name(self, fullname): - '''Load a module from the test extension by name''' - origin = self.spec.origin - loader = self.machinery.ExtensionFileLoader(fullname, origin) - spec = importlib.util.spec_from_loader(fullname, loader) - module = importlib.util.module_from_spec(spec) - loader.exec_module(module) - return module - def test_load_submodule(self): '''Test loading a simulated submodule''' module = self.load_module_by_name('pkg.' + self.name) diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/Lib/test/test_importlib/frozen/test_loader.py index 29ecff1774021..8eaffa798a5b7 100644 --- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -161,19 +161,23 @@ def test_module_repr(self): "") def test_module_repr_indirect(self): - with util.uncache('__hello__'), captured_stdout(): - module = self.machinery.FrozenImporter.load_module('__hello__') - self.assertEqual(repr(module), - "") + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + with util.uncache('__hello__'), captured_stdout(): + module = self.machinery.FrozenImporter.load_module('__hello__') + self.assertEqual(repr(module), + "") # No way to trigger an error in a frozen module. test_state_after_failure = None def test_unloadable(self): - assert self.machinery.FrozenImporter.find_module('_not_real') is None - with self.assertRaises(ImportError) as cm: - self.machinery.FrozenImporter.load_module('_not_real') - self.assertEqual(cm.exception.name, '_not_real') + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + assert self.machinery.FrozenImporter.find_module('_not_real') is None + with self.assertRaises(ImportError) as cm: + self.machinery.FrozenImporter.load_module('_not_real') + self.assertEqual(cm.exception.name, '_not_real') (Frozen_LoaderTests, diff --git a/Lib/test/test_importlib/import_/test___loader__.py b/Lib/test/test_importlib/import_/test___loader__.py index 4b18093cf903f..ecd83c6567e70 100644 --- a/Lib/test/test_importlib/import_/test___loader__.py +++ b/Lib/test/test_importlib/import_/test___loader__.py @@ -2,6 +2,7 @@ import sys import types import unittest +import warnings from .. import util @@ -45,25 +46,29 @@ def load_module(self, fullname): class LoaderAttributeTests: def test___loader___missing(self): - module = types.ModuleType('blah') - try: - del module.__loader__ - except AttributeError: - pass - loader = LoaderMock() - loader.module = module - with util.uncache('blah'), util.import_state(meta_path=[loader]): - module = self.__import__('blah') - self.assertEqual(loader, module.__loader__) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + module = types.ModuleType('blah') + try: + del module.__loader__ + except AttributeError: + pass + loader = LoaderMock() + loader.module = module + with util.uncache('blah'), util.import_state(meta_path=[loader]): + module = self.__import__('blah') + self.assertEqual(loader, module.__loader__) def test___loader___is_None(self): - module = types.ModuleType('blah') - module.__loader__ = None - loader = LoaderMock() - loader.module = module - with util.uncache('blah'), util.import_state(meta_path=[loader]): - returned_module = self.__import__('blah') - self.assertEqual(loader, module.__loader__) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + module = types.ModuleType('blah') + module.__loader__ = None + loader = LoaderMock() + loader.module = module + with util.uncache('blah'), util.import_state(meta_path=[loader]): + returned_module = self.__import__('blah') + self.assertEqual(loader, module.__loader__) (Frozen_Tests, diff --git a/Lib/test/test_importlib/import_/test___package__.py b/Lib/test/test_importlib/import_/test___package__.py index 761b256b38788..4a2b34e5f67f2 100644 --- a/Lib/test/test_importlib/import_/test___package__.py +++ b/Lib/test/test_importlib/import_/test___package__.py @@ -98,6 +98,16 @@ def __init__(self, parent): class Using__package__PEP302(Using__package__): mock_modules = util.mock_modules + def test_using___package__(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_using___package__() + + def test_spec_fallback(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_spec_fallback() + (Frozen_UsingPackagePEP302, Source_UsingPackagePEP302 @@ -155,6 +165,21 @@ def test_submodule(self): class Setting__package__PEP302(Setting__package__, unittest.TestCase): mock_modules = util.mock_modules + def test_top_level(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_top_level() + + def test_package(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_package() + + def test_submodule(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_submodule() + class Setting__package__PEP451(Setting__package__, unittest.TestCase): mock_modules = util.mock_spec diff --git a/Lib/test/test_importlib/import_/test_api.py b/Lib/test/test_importlib/import_/test_api.py index 0cd9de4daff75..35c26977ea315 100644 --- a/Lib/test/test_importlib/import_/test_api.py +++ b/Lib/test/test_importlib/import_/test_api.py @@ -4,6 +4,7 @@ import sys import types import unittest +import warnings PKG_NAME = 'fine' SUBMOD_NAME = 'fine.bogus' @@ -100,6 +101,36 @@ def test_blocked_fromlist(self): class OldAPITests(APITest): bad_finder_loader = BadLoaderFinder + def test_raises_ModuleNotFoundError(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_raises_ModuleNotFoundError() + + def test_name_requires_rparition(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_name_requires_rparition() + + def test_negative_level(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_negative_level() + + def test_nonexistent_fromlist_entry(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_nonexistent_fromlist_entry() + + def test_fromlist_load_error_propagates(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_fromlist_load_error_propagates + + def test_blocked_fromlist(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_blocked_fromlist() + (Frozen_OldAPITests, Source_OldAPITests diff --git a/Lib/test/test_importlib/import_/test_caching.py b/Lib/test/test_importlib/import_/test_caching.py index 8079add5b2147..0f987b22100c9 100644 --- a/Lib/test/test_importlib/import_/test_caching.py +++ b/Lib/test/test_importlib/import_/test_caching.py @@ -3,6 +3,7 @@ import sys from types import MethodType import unittest +import warnings class UseCache: @@ -63,30 +64,36 @@ def load_module(self, fullname): # to when to use the module in sys.modules and when not to. def test_using_cache_after_loader(self): # [from cache on return] - with self.create_mock('module') as mock: - with util.import_state(meta_path=[mock]): - module = self.__import__('module') - self.assertEqual(id(module), id(sys.modules['module'])) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + with self.create_mock('module') as mock: + with util.import_state(meta_path=[mock]): + module = self.__import__('module') + self.assertEqual(id(module), id(sys.modules['module'])) # See test_using_cache_after_loader() for reasoning. def test_using_cache_for_assigning_to_attribute(self): # [from cache to attribute] - with self.create_mock('pkg.__init__', 'pkg.module') as importer: - with util.import_state(meta_path=[importer]): - module = self.__import__('pkg.module') - self.assertTrue(hasattr(module, 'module')) - self.assertEqual(id(module.module), - id(sys.modules['pkg.module'])) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + with self.create_mock('pkg.__init__', 'pkg.module') as importer: + with util.import_state(meta_path=[importer]): + module = self.__import__('pkg.module') + self.assertTrue(hasattr(module, 'module')) + self.assertEqual(id(module.module), + id(sys.modules['pkg.module'])) # See test_using_cache_after_loader() for reasoning. def test_using_cache_for_fromlist(self): # [from cache for fromlist] - with self.create_mock('pkg.__init__', 'pkg.module') as importer: - with util.import_state(meta_path=[importer]): - module = self.__import__('pkg', fromlist=['module']) - self.assertTrue(hasattr(module, 'module')) - self.assertEqual(id(module.module), - id(sys.modules['pkg.module'])) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + with self.create_mock('pkg.__init__', 'pkg.module') as importer: + with util.import_state(meta_path=[importer]): + module = self.__import__('pkg', fromlist=['module']) + self.assertTrue(hasattr(module, 'module')) + self.assertEqual(id(module.module), + id(sys.modules['pkg.module'])) if __name__ == '__main__': diff --git a/Lib/test/test_importlib/import_/test_fromlist.py b/Lib/test/test_importlib/import_/test_fromlist.py index 018c172176190..deb21710a61fa 100644 --- a/Lib/test/test_importlib/import_/test_fromlist.py +++ b/Lib/test/test_importlib/import_/test_fromlist.py @@ -24,7 +24,7 @@ def test_return_from_import(self): def test_return_from_from_import(self): # [from return] - with util.mock_modules('pkg.__init__', 'pkg.module')as importer: + with util.mock_spec('pkg.__init__', 'pkg.module')as importer: with util.import_state(meta_path=[importer]): module = self.__import__('pkg.module', fromlist=['attr']) self.assertEqual(module.__name__, 'pkg.module') @@ -52,14 +52,14 @@ class HandlingFromlist: def test_object(self): # [object case] - with util.mock_modules('module') as importer: + with util.mock_spec('module') as importer: with util.import_state(meta_path=[importer]): module = self.__import__('module', fromlist=['attr']) self.assertEqual(module.__name__, 'module') def test_nonexistent_object(self): # [bad object] - with util.mock_modules('module') as importer: + with util.mock_spec('module') as importer: with util.import_state(meta_path=[importer]): module = self.__import__('module', fromlist=['non_existent']) self.assertEqual(module.__name__, 'module') @@ -67,7 +67,7 @@ def test_nonexistent_object(self): def test_module_from_package(self): # [module] - with util.mock_modules('pkg.__init__', 'pkg.module') as importer: + with util.mock_spec('pkg.__init__', 'pkg.module') as importer: with util.import_state(meta_path=[importer]): module = self.__import__('pkg', fromlist=['module']) self.assertEqual(module.__name__, 'pkg') @@ -75,7 +75,7 @@ def test_module_from_package(self): self.assertEqual(module.module.__name__, 'pkg.module') def test_nonexistent_from_package(self): - with util.mock_modules('pkg.__init__') as importer: + with util.mock_spec('pkg.__init__') as importer: with util.import_state(meta_path=[importer]): module = self.__import__('pkg', fromlist=['non_existent']) self.assertEqual(module.__name__, 'pkg') @@ -87,7 +87,7 @@ def test_module_from_package_triggers_ModuleNotFoundError(self): # ModuleNotFoundError propagate. def module_code(): import i_do_not_exist - with util.mock_modules('pkg.__init__', 'pkg.mod', + with util.mock_spec('pkg.__init__', 'pkg.mod', module_code={'pkg.mod': module_code}) as importer: with util.import_state(meta_path=[importer]): with self.assertRaises(ModuleNotFoundError) as exc: @@ -95,14 +95,14 @@ def module_code(): self.assertEqual('i_do_not_exist', exc.exception.name) def test_empty_string(self): - with util.mock_modules('pkg.__init__', 'pkg.mod') as importer: + with util.mock_spec('pkg.__init__', 'pkg.mod') as importer: with util.import_state(meta_path=[importer]): module = self.__import__('pkg.mod', fromlist=['']) self.assertEqual(module.__name__, 'pkg.mod') def basic_star_test(self, fromlist=['*']): # [using *] - with util.mock_modules('pkg.__init__', 'pkg.module') as mock: + with util.mock_spec('pkg.__init__', 'pkg.module') as mock: with util.import_state(meta_path=[mock]): mock['pkg'].__all__ = ['module'] module = self.__import__('pkg', fromlist=fromlist) @@ -119,7 +119,7 @@ def test_fromlist_as_tuple(self): def test_star_with_others(self): # [using * with others] - context = util.mock_modules('pkg.__init__', 'pkg.module1', 'pkg.module2') + context = util.mock_spec('pkg.__init__', 'pkg.module1', 'pkg.module2') with context as mock: with util.import_state(meta_path=[mock]): mock['pkg'].__all__ = ['module1'] @@ -131,7 +131,7 @@ def test_star_with_others(self): self.assertEqual(module.module2.__name__, 'pkg.module2') def test_nonexistent_in_all(self): - with util.mock_modules('pkg.__init__') as importer: + with util.mock_spec('pkg.__init__') as importer: with util.import_state(meta_path=[importer]): importer['pkg'].__all__ = ['non_existent'] module = self.__import__('pkg', fromlist=['*']) @@ -139,7 +139,7 @@ def test_nonexistent_in_all(self): self.assertFalse(hasattr(module, 'non_existent')) def test_star_in_all(self): - with util.mock_modules('pkg.__init__') as importer: + with util.mock_spec('pkg.__init__') as importer: with util.import_state(meta_path=[importer]): importer['pkg'].__all__ = ['*'] module = self.__import__('pkg', fromlist=['*']) @@ -147,7 +147,7 @@ def test_star_in_all(self): self.assertFalse(hasattr(module, '*')) def test_invalid_type(self): - with util.mock_modules('pkg.__init__') as importer: + with util.mock_spec('pkg.__init__') as importer: with util.import_state(meta_path=[importer]), \ warnings.catch_warnings(): warnings.simplefilter('error', BytesWarning) @@ -157,7 +157,7 @@ def test_invalid_type(self): self.__import__('pkg', fromlist=iter([b'attr'])) def test_invalid_type_in_all(self): - with util.mock_modules('pkg.__init__') as importer: + with util.mock_spec('pkg.__init__') as importer: with util.import_state(meta_path=[importer]), \ warnings.catch_warnings(): warnings.simplefilter('error', BytesWarning) diff --git a/Lib/test/test_importlib/import_/test_meta_path.py b/Lib/test/test_importlib/import_/test_meta_path.py index 5a41e8968a21f..5730119fe9933 100644 --- a/Lib/test/test_importlib/import_/test_meta_path.py +++ b/Lib/test/test_importlib/import_/test_meta_path.py @@ -100,8 +100,20 @@ def test_with_path(self): self.assertEqual(args[0], mod_name) self.assertIs(args[1], path) +class CallSignoreSuppressImportWarning(CallSignature): -class CallSignaturePEP302(CallSignature): + def test_no_path(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_no_path() + + def test_with_path(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + super().test_no_path() + + +class CallSignaturePEP302(CallSignoreSuppressImportWarning): mock_modules = util.mock_modules finder_name = 'find_module' diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py index 605738fae2e37..d8b9fc89f29aa 100644 --- a/Lib/test/test_importlib/test_abc.py +++ b/Lib/test/test_importlib/test_abc.py @@ -458,32 +458,36 @@ def is_package(self, fullname): return SpecLoader() def test_fresh(self): - loader = self.loader() - name = 'blah' - with test_util.uncache(name): - loader.load_module(name) - module = loader.found - self.assertIs(sys.modules[name], module) - self.assertEqual(loader, module.__loader__) - self.assertEqual(loader, module.__spec__.loader) - self.assertEqual(name, module.__name__) - self.assertEqual(name, module.__spec__.name) - self.assertIsNotNone(module.__path__) - self.assertIsNotNone(module.__path__, - module.__spec__.submodule_search_locations) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + loader = self.loader() + name = 'blah' + with test_util.uncache(name): + loader.load_module(name) + module = loader.found + self.assertIs(sys.modules[name], module) + self.assertEqual(loader, module.__loader__) + self.assertEqual(loader, module.__spec__.loader) + self.assertEqual(name, module.__name__) + self.assertEqual(name, module.__spec__.name) + self.assertIsNotNone(module.__path__) + self.assertIsNotNone(module.__path__, + module.__spec__.submodule_search_locations) def test_reload(self): - name = 'blah' - loader = self.loader() - module = types.ModuleType(name) - module.__spec__ = self.util.spec_from_loader(name, loader) - module.__loader__ = loader - with test_util.uncache(name): - sys.modules[name] = module - loader.load_module(name) - found = loader.found - self.assertIs(found, sys.modules[name]) - self.assertIs(module, sys.modules[name]) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + name = 'blah' + loader = self.loader() + module = types.ModuleType(name) + module.__spec__ = self.util.spec_from_loader(name, loader) + module.__loader__ = loader + with test_util.uncache(name): + sys.modules[name] = module + loader.load_module(name) + found = loader.found + self.assertIs(found, sys.modules[name]) + self.assertIs(module, sys.modules[name]) (Frozen_LoaderLoadModuleTests, @@ -837,25 +841,29 @@ def test_load_module(self): # Loading a module should set __name__, __loader__, __package__, # __path__ (for packages), __file__, and __cached__. # The module should also be put into sys.modules. - with test_util.uncache(self.name): - with warnings.catch_warnings(): - warnings.simplefilter('ignore', DeprecationWarning) - module = self.loader.load_module(self.name) - self.verify_module(module) - self.assertEqual(module.__path__, [os.path.dirname(self.path)]) - self.assertIn(self.name, sys.modules) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + with test_util.uncache(self.name): + with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + module = self.loader.load_module(self.name) + self.verify_module(module) + self.assertEqual(module.__path__, [os.path.dirname(self.path)]) + self.assertIn(self.name, sys.modules) def test_package_settings(self): # __package__ needs to be set, while __path__ is set on if the module # is a package. # Testing the values for a package are covered by test_load_module. - self.setUp(is_package=False) - with test_util.uncache(self.name): - with warnings.catch_warnings(): - warnings.simplefilter('ignore', DeprecationWarning) - module = self.loader.load_module(self.name) - self.verify_module(module) - self.assertFalse(hasattr(module, '__path__')) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + self.setUp(is_package=False) + with test_util.uncache(self.name): + with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + module = self.loader.load_module(self.name) + self.verify_module(module) + self.assertFalse(hasattr(module, '__path__')) def test_get_source_encoding(self): # Source is considered encoded in UTF-8 by default unless otherwise diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py index fd60634e09333..3f06a10ba9c5e 100644 --- a/Lib/test/test_importlib/test_api.py +++ b/Lib/test/test_importlib/test_api.py @@ -20,7 +20,7 @@ class ImportModuleTests: def test_module_import(self): # Test importing a top-level module. - with test_util.mock_modules('top_level') as mock: + with test_util.mock_spec('top_level') as mock: with test_util.import_state(meta_path=[mock]): module = self.init.import_module('top_level') self.assertEqual(module.__name__, 'top_level') @@ -30,7 +30,7 @@ def test_absolute_package_import(self): pkg_name = 'pkg' pkg_long_name = '{0}.__init__'.format(pkg_name) name = '{0}.mod'.format(pkg_name) - with test_util.mock_modules(pkg_long_name, name) as mock: + with test_util.mock_spec(pkg_long_name, name) as mock: with test_util.import_state(meta_path=[mock]): module = self.init.import_module(name) self.assertEqual(module.__name__, name) @@ -42,7 +42,7 @@ def test_shallow_relative_package_import(self): module_name = 'mod' absolute_name = '{0}.{1}'.format(pkg_name, module_name) relative_name = '.{0}'.format(module_name) - with test_util.mock_modules(pkg_long_name, absolute_name) as mock: + with test_util.mock_spec(pkg_long_name, absolute_name) as mock: with test_util.import_state(meta_path=[mock]): self.init.import_module(pkg_name) module = self.init.import_module(relative_name, pkg_name) @@ -50,7 +50,7 @@ def test_shallow_relative_package_import(self): def test_deep_relative_package_import(self): modules = ['a.__init__', 'a.b.__init__', 'a.c'] - with test_util.mock_modules(*modules) as mock: + with test_util.mock_spec(*modules) as mock: with test_util.import_state(meta_path=[mock]): self.init.import_module('a') self.init.import_module('a.b') @@ -63,7 +63,7 @@ def test_absolute_import_with_package(self): pkg_name = 'pkg' pkg_long_name = '{0}.__init__'.format(pkg_name) name = '{0}.mod'.format(pkg_name) - with test_util.mock_modules(pkg_long_name, name) as mock: + with test_util.mock_spec(pkg_long_name, name) as mock: with test_util.import_state(meta_path=[mock]): self.init.import_module(pkg_name) module = self.init.import_module(name, pkg_name) @@ -88,7 +88,7 @@ def load_b(): b_load_count += 1 code = {'a': load_a, 'a.b': load_b} modules = ['a.__init__', 'a.b'] - with test_util.mock_modules(*modules, module_code=code) as mock: + with test_util.mock_spec(*modules, module_code=code) as mock: with test_util.import_state(meta_path=[mock]): self.init.import_module('a.b') self.assertEqual(b_load_count, 1) @@ -212,8 +212,8 @@ def code(): module = type(sys)('top_level') module.spam = 3 sys.modules['top_level'] = module - mock = test_util.mock_modules('top_level', - module_code={'top_level': code}) + mock = test_util.mock_spec('top_level', + module_code={'top_level': code}) with mock: with test_util.import_state(meta_path=[mock]): module = self.init.import_module('top_level') diff --git a/Lib/test/test_importlib/test_spec.py b/Lib/test/test_importlib/test_spec.py index eed90f29f9286..b57eb6c0ff397 100644 --- a/Lib/test/test_importlib/test_spec.py +++ b/Lib/test/test_importlib/test_spec.py @@ -303,32 +303,38 @@ def exec_module(self, module): self.assertNotIn(self.spec.name, sys.modules) def test_load_legacy(self): - self.spec.loader = LegacyLoader() - with CleanImport(self.spec.name): - loaded = self.bootstrap._load(self.spec) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + self.spec.loader = LegacyLoader() + with CleanImport(self.spec.name): + loaded = self.bootstrap._load(self.spec) - self.assertEqual(loaded.ham, -1) + self.assertEqual(loaded.ham, -1) def test_load_legacy_attributes(self): - self.spec.loader = LegacyLoader() - with CleanImport(self.spec.name): - loaded = self.bootstrap._load(self.spec) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + self.spec.loader = LegacyLoader() + with CleanImport(self.spec.name): + loaded = self.bootstrap._load(self.spec) - self.assertIs(loaded.__loader__, self.spec.loader) - self.assertEqual(loaded.__package__, self.spec.parent) - self.assertIs(loaded.__spec__, self.spec) + self.assertIs(loaded.__loader__, self.spec.loader) + self.assertEqual(loaded.__package__, self.spec.parent) + self.assertIs(loaded.__spec__, self.spec) def test_load_legacy_attributes_immutable(self): module = object() - class ImmutableLoader(TestLoader): - def load_module(self, name): - sys.modules[name] = module - return module - self.spec.loader = ImmutableLoader() - with CleanImport(self.spec.name): - loaded = self.bootstrap._load(self.spec) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + class ImmutableLoader(TestLoader): + def load_module(self, name): + sys.modules[name] = module + return module + self.spec.loader = ImmutableLoader() + with CleanImport(self.spec.name): + loaded = self.bootstrap._load(self.spec) - self.assertIs(sys.modules[self.spec.name], module) + self.assertIs(sys.modules[self.spec.name], module) # reload() @@ -382,11 +388,13 @@ def test_reload_init_module_attrs(self): self.assertFalse(hasattr(loaded, '__cached__')) def test_reload_legacy(self): - self.spec.loader = LegacyLoader() - with CleanImport(self.spec.name): - loaded = self.bootstrap._load(self.spec) - reloaded = self.bootstrap._exec(self.spec, loaded) - installed = sys.modules[self.spec.name] + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ImportWarning) + self.spec.loader = LegacyLoader() + with CleanImport(self.spec.name): + loaded = self.bootstrap._load(self.spec) + reloaded = self.bootstrap._exec(self.spec, loaded) + installed = sys.modules[self.spec.name] self.assertEqual(loaded.ham, -1) self.assertIs(reloaded, loaded) diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 5bb62cdb37402..098ba17af5975 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -446,7 +446,7 @@ def do_test_with_pip(self, system_site_packages): # pip's cross-version compatibility may trigger deprecation # warnings in current versions of Python. Ensure related # environment settings don't cause venv to fail. - envvars["PYTHONWARNINGS"] = "e" + envvars["PYTHONWARNINGS"] = "ignore" # ensurepip is different enough from a normal pip invocation # that we want to ensure it ignores the normal pip environment # variable settings. We set PIP_NO_INSTALL here specifically @@ -485,7 +485,8 @@ def do_test_with_pip(self, system_site_packages): # Ensure pip is available in the virtual environment envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe) # Ignore DeprecationWarning since pip code is not part of Python - out, err = check_output([envpy, '-W', 'ignore::DeprecationWarning', '-I', + out, err = check_output([envpy, '-W', 'ignore::DeprecationWarning', + '-W', 'ignore::ImportWarning', '-I', '-m', 'pip', '--version']) # We force everything to text, so unittest gives the detailed diff # if we get unexpected results @@ -501,8 +502,12 @@ def do_test_with_pip(self, system_site_packages): # Check the private uninstall command provided for the Windows # installers works (at least in a virtual environment) with EnvironmentVarGuard() as envvars: + # It seems ensurepip._uninstall calls subprocesses which do not + # inherit the interpreter settings. + envvars["PYTHONWARNINGS"] = "ignore" out, err = check_output([envpy, - '-W', 'ignore::DeprecationWarning', '-I', + '-W', 'ignore::DeprecationWarning', + '-W', 'ignore::ImportWarning', '-I', '-m', 'ensurepip._uninstall']) # We force everything to text, so unittest gives the detailed diff # if we get unexpected results diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index be0a198010cec..6dea2b16287ad 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -7,6 +7,7 @@ import time import unittest import unittest.mock +import warnings from test import support from test.support import import_helper @@ -453,15 +454,17 @@ def testZipImporterMethods(self): self.assertTrue(zi.is_package(TESTPACK)) # PEP 302 - find_mod = zi.find_module('spam') - self.assertIsNotNone(find_mod) - self.assertIsInstance(find_mod, zipimport.zipimporter) - self.assertFalse(find_mod.is_package('spam')) - load_mod = find_mod.load_module('spam') - self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__) - - mod = zi.load_module(TESTPACK) - self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + find_mod = zi.find_module('spam') + self.assertIsNotNone(find_mod) + self.assertIsInstance(find_mod, zipimport.zipimporter) + self.assertFalse(find_mod.is_package('spam')) + load_mod = find_mod.load_module('spam') + self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__) + + mod = zi.load_module(TESTPACK) + self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) # PEP 451 spec = zi.find_spec('spam') @@ -522,8 +525,10 @@ def testZipImporterMethodsInSubDirectory(self): self.assertEqual(zi.prefix, packdir) self.assertTrue(zi.is_package(TESTPACK2)) # PEP 302 - mod = zi.load_module(TESTPACK2) - self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + mod = zi.load_module(TESTPACK2) + self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__) # PEP 451 spec = zi.find_spec(TESTPACK2) mod = importlib.util.module_from_spec(spec) @@ -536,13 +541,15 @@ def testZipImporterMethodsInSubDirectory(self): pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 zi2 = zipimport.zipimporter(pkg_path) # PEP 302 - find_mod_dotted = zi2.find_module(TESTMOD) - self.assertIsNotNone(find_mod_dotted) - self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) - self.assertFalse(zi2.is_package(TESTMOD)) - load_mod = find_mod_dotted.load_module(TESTMOD) - self.assertEqual( - find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + find_mod_dotted = zi2.find_module(TESTMOD) + self.assertIsNotNone(find_mod_dotted) + self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) + self.assertFalse(zi2.is_package(TESTMOD)) + load_mod = find_mod_dotted.load_module(TESTMOD) + self.assertEqual( + find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) # PEP 451 spec = zi2.find_spec(TESTMOD) @@ -778,10 +785,12 @@ def _testBogusZipFile(self): z = zipimport.zipimporter(TESTMOD) try: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + self.assertRaises(TypeError, z.load_module, None) self.assertRaises(TypeError, z.find_module, None) self.assertRaises(TypeError, z.find_spec, None) self.assertRaises(TypeError, z.exec_module, None) - self.assertRaises(TypeError, z.load_module, None) self.assertRaises(TypeError, z.is_package, None) self.assertRaises(TypeError, z.get_code, None) self.assertRaises(TypeError, z.get_data, None) @@ -791,7 +800,9 @@ def _testBogusZipFile(self): self.assertIsNone(z.find_module('abc')) self.assertIsNone(z.find_spec('abc')) - self.assertRaises(error, z.load_module, 'abc') + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + self.assertRaises(error, z.load_module, 'abc') self.assertRaises(error, z.get_code, 'abc') self.assertRaises(OSError, z.get_data, 'abc') self.assertRaises(error, z.get_source, 'abc') diff --git a/Lib/zipimport.py b/Lib/zipimport.py index 2e5188a4a0aa5..02e4fd38d0e2a 100644 --- a/Lib/zipimport.py +++ b/Lib/zipimport.py @@ -22,6 +22,7 @@ import marshal # for loads import sys # for modules import time # for mktime +import _warnings # For warn() __all__ = ['ZipImportError', 'zipimporter'] @@ -268,8 +269,11 @@ def load_module(self, fullname): fully qualified (dotted) module name. It returns the imported module, or raises ZipImportError if it wasn't found. - Deprecated since Python 3.10. use exec_module() instead. + Deprecated since Python 3.10. Use exec_module() instead. """ + msg = ("zipimport.zipimporter.load_module() is deprecated and slated for " + "removal in Python 3.12; use exec_module() instead") + _warnings.warn(msg, DeprecationWarning) code, ispackage, modpath = _get_module_code(self, fullname) mod = sys.modules.get(fullname) if mod is None or not isinstance(mod, _module_type): diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-10-22-17-27-08.bpo-26131.B-Veg7.rst b/Misc/NEWS.d/next/Core and Builtins/2020-10-22-17-27-08.bpo-26131.B-Veg7.rst new file mode 100644 index 0000000000000..e9f44c7c3aa9f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2020-10-22-17-27-08.bpo-26131.B-Veg7.rst @@ -0,0 +1,2 @@ +The import system triggers a `ImportWarning` when it falls back to using +`load_module()`. diff --git a/Misc/NEWS.d/next/Library/2020-10-22-17-26-35.bpo-26131.CAsI3O.rst b/Misc/NEWS.d/next/Library/2020-10-22-17-26-35.bpo-26131.CAsI3O.rst new file mode 100644 index 0000000000000..bead284bde4eb --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-10-22-17-26-35.bpo-26131.CAsI3O.rst @@ -0,0 +1,2 @@ +The `load_module()` methods found in importlib now trigger a +DeprecationWarning. diff --git a/Misc/NEWS.d/next/Library/2020-11-22-12-30-26.bpo-26131.-HsFPG.rst b/Misc/NEWS.d/next/Library/2020-11-22-12-30-26.bpo-26131.-HsFPG.rst new file mode 100644 index 0000000000000..33062a3f93bef --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-11-22-12-30-26.bpo-26131.-HsFPG.rst @@ -0,0 +1 @@ +Deprecate zipimport.zipimporter.load_module() in favour of exec_module(). diff --git a/Python/importlib.h b/Python/importlib.h index 179f8df77a0a0..6c77d775e38a7 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -1,506 +1,527 @@ /* Auto-generated by Programs/_freeze_importlib.c */ const unsigned char _Py_M__importlib_bootstrap[] = { 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,206,1,0,0,100,0, - 90,0,100,1,90,1,100,1,90,2,100,1,90,3,100,1, - 97,4,100,2,100,3,132,0,90,5,100,4,100,5,132,0, - 90,6,105,0,90,7,105,0,90,8,71,0,100,6,100,7, - 132,0,100,7,101,9,131,3,90,10,71,0,100,8,100,9, - 132,0,100,9,131,2,90,11,71,0,100,10,100,11,132,0, - 100,11,131,2,90,12,71,0,100,12,100,13,132,0,100,13, - 131,2,90,13,100,14,100,15,132,0,90,14,100,16,100,17, + 0,4,0,0,0,64,0,0,0,115,214,1,0,0,100,0, + 90,0,100,1,100,2,132,0,90,1,100,3,90,2,100,3, + 90,3,100,3,90,4,100,3,97,5,100,4,100,5,132,0, + 90,6,100,6,100,7,132,0,90,7,105,0,90,8,105,0, + 90,9,71,0,100,8,100,9,132,0,100,9,101,10,131,3, + 90,11,71,0,100,10,100,11,132,0,100,11,131,2,90,12, + 71,0,100,12,100,13,132,0,100,13,131,2,90,13,71,0, + 100,14,100,15,132,0,100,15,131,2,90,14,100,16,100,17, 132,0,90,15,100,18,100,19,132,0,90,16,100,20,100,21, - 156,1,100,22,100,23,132,2,90,17,100,24,100,25,132,0, + 132,0,90,17,100,22,100,23,156,1,100,24,100,25,132,2, 90,18,100,26,100,27,132,0,90,19,100,28,100,29,132,0, - 90,20,100,30,100,31,132,0,90,21,71,0,100,32,100,33, - 132,0,100,33,131,2,90,22,100,1,100,1,100,34,156,2, - 100,35,100,36,132,2,90,23,100,94,100,37,100,38,132,1, - 90,24,100,39,100,40,156,1,100,41,100,42,132,2,90,25, - 100,43,100,44,132,0,90,26,100,45,100,46,132,0,90,27, + 90,20,100,30,100,31,132,0,90,21,100,32,100,33,132,0, + 90,22,71,0,100,34,100,35,132,0,100,35,131,2,90,23, + 100,3,100,3,100,36,156,2,100,37,100,38,132,2,90,24, + 100,96,100,39,100,40,132,1,90,25,100,41,100,42,156,1, + 100,43,100,44,132,2,90,26,100,45,100,46,132,0,90,27, 100,47,100,48,132,0,90,28,100,49,100,50,132,0,90,29, 100,51,100,52,132,0,90,30,100,53,100,54,132,0,90,31, - 71,0,100,55,100,56,132,0,100,56,131,2,90,32,71,0, - 100,57,100,58,132,0,100,58,131,2,90,33,71,0,100,59, - 100,60,132,0,100,60,131,2,90,34,100,61,100,62,132,0, - 90,35,100,63,100,64,132,0,90,36,100,95,100,65,100,66, - 132,1,90,37,100,67,100,68,132,0,90,38,100,69,90,39, - 101,39,100,70,23,0,90,40,100,71,100,72,132,0,90,41, - 101,42,131,0,90,43,100,73,100,74,132,0,90,44,100,96, - 100,76,100,77,132,1,90,45,100,39,100,78,156,1,100,79, - 100,80,132,2,90,46,100,81,100,82,132,0,90,47,100,97, - 100,84,100,85,132,1,90,48,100,86,100,87,132,0,90,49, + 100,55,100,56,132,0,90,32,71,0,100,57,100,58,132,0, + 100,58,131,2,90,33,71,0,100,59,100,60,132,0,100,60, + 131,2,90,34,71,0,100,61,100,62,132,0,100,62,131,2, + 90,35,100,63,100,64,132,0,90,36,100,65,100,66,132,0, + 90,37,100,97,100,67,100,68,132,1,90,38,100,69,100,70, + 132,0,90,39,100,71,90,40,101,40,100,72,23,0,90,41, + 100,73,100,74,132,0,90,42,101,43,131,0,90,44,100,75, + 100,76,132,0,90,45,100,98,100,78,100,79,132,1,90,46, + 100,41,100,80,156,1,100,81,100,82,132,2,90,47,100,83, + 100,84,132,0,90,48,100,99,100,86,100,87,132,1,90,49, 100,88,100,89,132,0,90,50,100,90,100,91,132,0,90,51, - 100,92,100,93,132,0,90,52,100,1,83,0,41,98,97,83, - 1,0,0,67,111,114,101,32,105,109,112,108,101,109,101,110, - 116,97,116,105,111,110,32,111,102,32,105,109,112,111,114,116, - 46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,105, - 115,32,78,79,84,32,109,101,97,110,116,32,116,111,32,98, - 101,32,100,105,114,101,99,116,108,121,32,105,109,112,111,114, - 116,101,100,33,32,73,116,32,104,97,115,32,98,101,101,110, - 32,100,101,115,105,103,110,101,100,32,115,117,99,104,10,116, - 104,97,116,32,105,116,32,99,97,110,32,98,101,32,98,111, - 111,116,115,116,114,97,112,112,101,100,32,105,110,116,111,32, - 80,121,116,104,111,110,32,97,115,32,116,104,101,32,105,109, - 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32, - 105,109,112,111,114,116,46,32,65,115,10,115,117,99,104,32, - 105,116,32,114,101,113,117,105,114,101,115,32,116,104,101,32, - 105,110,106,101,99,116,105,111,110,32,111,102,32,115,112,101, - 99,105,102,105,99,32,109,111,100,117,108,101,115,32,97,110, - 100,32,97,116,116,114,105,98,117,116,101,115,32,105,110,32, - 111,114,100,101,114,32,116,111,10,119,111,114,107,46,32,79, - 110,101,32,115,104,111,117,108,100,32,117,115,101,32,105,109, - 112,111,114,116,108,105,98,32,97,115,32,116,104,101,32,112, - 117,98,108,105,99,45,102,97,99,105,110,103,32,118,101,114, - 115,105,111,110,32,111,102,32,116,104,105,115,32,109,111,100, - 117,108,101,46,10,10,78,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,7,0,0,0,67,0,0,0, - 115,56,0,0,0,100,1,68,0,93,32,125,2,116,0,124, - 1,124,2,131,2,114,4,116,1,124,0,124,2,116,2,124, - 1,124,2,131,2,131,3,1,0,113,4,124,0,106,3,160, - 4,124,1,106,3,161,1,1,0,100,2,83,0,41,3,122, - 47,83,105,109,112,108,101,32,115,117,98,115,116,105,116,117, - 116,101,32,102,111,114,32,102,117,110,99,116,111,111,108,115, - 46,117,112,100,97,116,101,95,119,114,97,112,112,101,114,46, - 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,78, - 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,218,7,114,101,112, - 108,97,99,101,169,0,114,10,0,0,0,250,29,60,102,114, - 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, - 98,111,111,116,115,116,114,97,112,62,218,5,95,119,114,97, - 112,34,0,0,0,115,10,0,0,0,8,2,10,1,20,1, - 18,1,255,128,114,12,0,0,0,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,12,0,0,0,116,0,116,1,131,1,124,0,131, - 1,83,0,169,1,78,41,2,218,4,116,121,112,101,218,3, - 115,121,115,169,1,218,4,110,97,109,101,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,11,95,110,101,119, - 95,109,111,100,117,108,101,42,0,0,0,115,4,0,0,0, - 12,1,255,128,114,18,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0, - 0,0,115,12,0,0,0,101,0,90,1,100,0,90,2,100, - 1,83,0,41,2,218,14,95,68,101,97,100,108,111,99,107, - 69,114,114,111,114,78,41,3,114,1,0,0,0,114,0,0, - 0,0,114,2,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,19,0,0,0, - 55,0,0,0,115,6,0,0,0,8,0,4,1,255,128,114, - 19,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,56,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,83,0,41,13,218,11,95,77, - 111,100,117,108,101,76,111,99,107,122,169,65,32,114,101,99, - 117,114,115,105,118,101,32,108,111,99,107,32,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,32,119,104,105,99,104, - 32,105,115,32,97,98,108,101,32,116,111,32,100,101,116,101, - 99,116,32,100,101,97,100,108,111,99,107,115,10,32,32,32, - 32,40,101,46,103,46,32,116,104,114,101,97,100,32,49,32, - 116,114,121,105,110,103,32,116,111,32,116,97,107,101,32,108, - 111,99,107,115,32,65,32,116,104,101,110,32,66,44,32,97, - 110,100,32,116,104,114,101,97,100,32,50,32,116,114,121,105, - 110,103,32,116,111,10,32,32,32,32,116,97,107,101,32,108, - 111,99,107,115,32,66,32,116,104,101,110,32,65,41,46,10, - 32,32,32,32,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,48,0, - 0,0,116,0,160,1,161,0,124,0,95,2,116,0,160,1, - 161,0,124,0,95,3,124,1,124,0,95,4,100,0,124,0, - 95,5,100,1,124,0,95,6,100,1,124,0,95,7,100,0, - 83,0,169,2,78,233,0,0,0,0,41,8,218,7,95,116, - 104,114,101,97,100,90,13,97,108,108,111,99,97,116,101,95, - 108,111,99,107,218,4,108,111,99,107,218,6,119,97,107,101, - 117,112,114,17,0,0,0,218,5,111,119,110,101,114,218,5, - 99,111,117,110,116,218,7,119,97,105,116,101,114,115,169,2, - 218,4,115,101,108,102,114,17,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,8,95,95,105,110, - 105,116,95,95,65,0,0,0,115,14,0,0,0,10,1,10, - 1,6,1,6,1,6,1,10,1,255,128,122,20,95,77,111, - 100,117,108,101,76,111,99,107,46,95,95,105,110,105,116,95, - 95,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,67,0,0,0,115,84,0,0,0,116, - 0,160,1,161,0,125,1,124,0,106,2,125,2,116,3,131, - 0,125,3,116,4,160,5,124,2,161,1,125,4,124,4,100, - 0,117,0,114,42,100,1,83,0,124,4,106,2,125,2,124, - 2,124,1,107,2,114,60,100,2,83,0,124,2,124,3,118, - 0,114,72,100,1,83,0,124,3,160,6,124,2,161,1,1, - 0,113,20,41,3,78,70,84,41,7,114,23,0,0,0,218, - 9,103,101,116,95,105,100,101,110,116,114,26,0,0,0,218, - 3,115,101,116,218,12,95,98,108,111,99,107,105,110,103,95, - 111,110,218,3,103,101,116,218,3,97,100,100,41,5,114,30, - 0,0,0,90,2,109,101,218,3,116,105,100,90,4,115,101, - 101,110,114,24,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,12,104,97,115,95,100,101,97,100, - 108,111,99,107,73,0,0,0,115,26,0,0,0,8,2,6, - 1,6,1,10,2,8,1,4,1,6,1,8,1,4,1,8, - 1,4,6,12,1,255,128,122,24,95,77,111,100,117,108,101, - 76,111,99,107,46,104,97,115,95,100,101,97,100,108,111,99, - 107,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,196,0,0,0,116, - 0,160,1,161,0,125,1,124,0,116,2,124,1,60,0,122, - 170,124,0,106,3,143,126,1,0,124,0,106,4,100,1,107, - 2,115,46,124,0,106,5,124,1,107,2,114,90,124,1,124, - 0,95,5,124,0,4,0,106,4,100,2,55,0,2,0,95, - 4,87,0,100,3,4,0,4,0,131,3,1,0,87,0,116, - 2,124,1,61,0,100,4,83,0,124,0,160,6,161,0,114, - 110,116,7,100,5,124,0,22,0,131,1,130,1,124,0,106, - 8,160,9,100,6,161,1,114,136,124,0,4,0,106,10,100, - 2,55,0,2,0,95,10,87,0,100,3,4,0,4,0,131, - 3,1,0,110,16,49,0,115,156,48,0,1,0,1,0,1, - 0,89,0,1,0,124,0,106,8,160,9,161,0,1,0,124, - 0,106,8,160,11,161,0,1,0,113,18,116,2,124,1,61, - 0,48,0,41,7,122,185,10,32,32,32,32,32,32,32,32, - 65,99,113,117,105,114,101,32,116,104,101,32,109,111,100,117, - 108,101,32,108,111,99,107,46,32,32,73,102,32,97,32,112, - 111,116,101,110,116,105,97,108,32,100,101,97,100,108,111,99, - 107,32,105,115,32,100,101,116,101,99,116,101,100,44,10,32, - 32,32,32,32,32,32,32,97,32,95,68,101,97,100,108,111, - 99,107,69,114,114,111,114,32,105,115,32,114,97,105,115,101, - 100,46,10,32,32,32,32,32,32,32,32,79,116,104,101,114, - 119,105,115,101,44,32,116,104,101,32,108,111,99,107,32,105, - 115,32,97,108,119,97,121,115,32,97,99,113,117,105,114,101, - 100,32,97,110,100,32,84,114,117,101,32,105,115,32,114,101, - 116,117,114,110,101,100,46,10,32,32,32,32,32,32,32,32, - 114,22,0,0,0,233,1,0,0,0,78,84,122,23,100,101, - 97,100,108,111,99,107,32,100,101,116,101,99,116,101,100,32, - 98,121,32,37,114,70,41,12,114,23,0,0,0,114,32,0, - 0,0,114,34,0,0,0,114,24,0,0,0,114,27,0,0, - 0,114,26,0,0,0,114,38,0,0,0,114,19,0,0,0, - 114,25,0,0,0,218,7,97,99,113,117,105,114,101,114,28, - 0,0,0,218,7,114,101,108,101,97,115,101,169,2,114,30, - 0,0,0,114,37,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,40,0,0,0,94,0,0,0, - 115,36,0,0,0,8,6,8,1,2,1,8,2,20,1,6, - 1,14,1,14,1,6,9,4,247,8,1,12,1,12,1,44, - 1,10,2,12,1,8,2,255,128,122,19,95,77,111,100,117, - 108,101,76,111,99,107,46,97,99,113,117,105,114,101,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,144,0,0,0,116,0,160,1, - 161,0,125,1,124,0,106,2,143,110,1,0,124,0,106,3, - 124,1,107,3,114,34,116,4,100,1,131,1,130,1,124,0, - 106,5,100,2,107,4,115,48,74,0,130,1,124,0,4,0, - 106,5,100,3,56,0,2,0,95,5,124,0,106,5,100,2, - 107,2,114,108,100,0,124,0,95,3,124,0,106,6,114,108, - 124,0,4,0,106,6,100,3,56,0,2,0,95,6,124,0, - 106,7,160,8,161,0,1,0,87,0,100,0,4,0,4,0, - 131,3,1,0,100,0,83,0,49,0,115,130,48,0,1,0, - 1,0,1,0,89,0,1,0,100,0,83,0,41,4,78,250, - 31,99,97,110,110,111,116,32,114,101,108,101,97,115,101,32, - 117,110,45,97,99,113,117,105,114,101,100,32,108,111,99,107, - 114,22,0,0,0,114,39,0,0,0,41,9,114,23,0,0, - 0,114,32,0,0,0,114,24,0,0,0,114,26,0,0,0, - 218,12,82,117,110,116,105,109,101,69,114,114,111,114,114,27, - 0,0,0,114,28,0,0,0,114,25,0,0,0,114,41,0, - 0,0,114,42,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,41,0,0,0,119,0,0,0,115, - 24,0,0,0,8,1,8,1,10,1,8,1,14,1,14,1, - 10,1,6,1,6,1,14,1,46,1,255,128,122,19,95,77, - 111,100,117,108,101,76,111,99,107,46,114,101,108,101,97,115, + 100,92,100,93,132,0,90,52,100,94,100,95,132,0,90,53, + 100,3,83,0,41,100,97,83,1,0,0,67,111,114,101,32, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111, + 102,32,105,109,112,111,114,116,46,10,10,84,104,105,115,32, + 109,111,100,117,108,101,32,105,115,32,78,79,84,32,109,101, + 97,110,116,32,116,111,32,98,101,32,100,105,114,101,99,116, + 108,121,32,105,109,112,111,114,116,101,100,33,32,73,116,32, + 104,97,115,32,98,101,101,110,32,100,101,115,105,103,110,101, + 100,32,115,117,99,104,10,116,104,97,116,32,105,116,32,99, + 97,110,32,98,101,32,98,111,111,116,115,116,114,97,112,112, + 101,100,32,105,110,116,111,32,80,121,116,104,111,110,32,97, + 115,32,116,104,101,32,105,109,112,108,101,109,101,110,116,97, + 116,105,111,110,32,111,102,32,105,109,112,111,114,116,46,32, + 65,115,10,115,117,99,104,32,105,116,32,114,101,113,117,105, + 114,101,115,32,116,104,101,32,105,110,106,101,99,116,105,111, + 110,32,111,102,32,115,112,101,99,105,102,105,99,32,109,111, + 100,117,108,101,115,32,97,110,100,32,97,116,116,114,105,98, + 117,116,101,115,32,105,110,32,111,114,100,101,114,32,116,111, + 10,119,111,114,107,46,32,79,110,101,32,115,104,111,117,108, + 100,32,117,115,101,32,105,109,112,111,114,116,108,105,98,32, + 97,115,32,116,104,101,32,112,117,98,108,105,99,45,102,97, + 99,105,110,103,32,118,101,114,115,105,111,110,32,111,102,32, + 116,104,105,115,32,109,111,100,117,108,101,46,10,10,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,38,0,0,0,122,8,124,0, + 106,0,87,0,83,0,4,0,116,1,121,36,1,0,1,0, + 1,0,116,2,124,0,131,1,106,0,6,0,89,0,83,0, + 48,0,169,1,78,41,3,218,12,95,95,113,117,97,108,110, + 97,109,101,95,95,218,14,65,116,116,114,105,98,117,116,101, + 69,114,114,111,114,218,4,116,121,112,101,41,1,218,3,111, + 98,106,169,0,114,5,0,0,0,250,29,60,102,114,111,122, + 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111, + 111,116,115,116,114,97,112,62,218,12,95,111,98,106,101,99, + 116,95,110,97,109,101,23,0,0,0,115,10,0,0,0,2, + 1,8,1,12,1,16,1,255,128,114,7,0,0,0,78,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 7,0,0,0,67,0,0,0,115,56,0,0,0,100,1,68, + 0,93,32,125,2,116,0,124,1,124,2,131,2,114,4,116, + 1,124,0,124,2,116,2,124,1,124,2,131,2,131,3,1, + 0,113,4,124,0,106,3,160,4,124,1,106,3,161,1,1, + 0,100,2,83,0,41,3,122,47,83,105,109,112,108,101,32, + 115,117,98,115,116,105,116,117,116,101,32,102,111,114,32,102, + 117,110,99,116,111,111,108,115,46,117,112,100,97,116,101,95, + 119,114,97,112,112,101,114,46,41,4,218,10,95,95,109,111, + 100,117,108,101,95,95,218,8,95,95,110,97,109,101,95,95, + 114,1,0,0,0,218,7,95,95,100,111,99,95,95,78,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,218,7,114,101,112,108, + 97,99,101,114,5,0,0,0,114,5,0,0,0,114,6,0, + 0,0,218,5,95,119,114,97,112,40,0,0,0,115,10,0, + 0,0,8,2,10,1,20,1,18,1,255,128,114,17,0,0, + 0,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,12,0,0,0,116, + 0,116,1,131,1,124,0,131,1,83,0,114,0,0,0,0, + 41,2,114,3,0,0,0,218,3,115,121,115,169,1,218,4, + 110,97,109,101,114,5,0,0,0,114,5,0,0,0,114,6, + 0,0,0,218,11,95,110,101,119,95,109,111,100,117,108,101, + 48,0,0,0,115,4,0,0,0,12,1,255,128,114,21,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,64,0,0,0,115,12,0,0,0, + 101,0,90,1,100,0,90,2,100,1,83,0,41,2,218,14, + 95,68,101,97,100,108,111,99,107,69,114,114,111,114,78,41, + 3,114,9,0,0,0,114,8,0,0,0,114,1,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,114,22,0,0,0,61,0,0,0,115,6,0, + 0,0,8,0,4,1,255,128,114,22,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,56,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,83,0,41,13,218,11,95,77,111,100,117,108,101,76,111, + 99,107,122,169,65,32,114,101,99,117,114,115,105,118,101,32, + 108,111,99,107,32,105,109,112,108,101,109,101,110,116,97,116, + 105,111,110,32,119,104,105,99,104,32,105,115,32,97,98,108, + 101,32,116,111,32,100,101,116,101,99,116,32,100,101,97,100, + 108,111,99,107,115,10,32,32,32,32,40,101,46,103,46,32, + 116,104,114,101,97,100,32,49,32,116,114,121,105,110,103,32, + 116,111,32,116,97,107,101,32,108,111,99,107,115,32,65,32, + 116,104,101,110,32,66,44,32,97,110,100,32,116,104,114,101, + 97,100,32,50,32,116,114,121,105,110,103,32,116,111,10,32, + 32,32,32,116,97,107,101,32,108,111,99,107,115,32,66,32, + 116,104,101,110,32,65,41,46,10,32,32,32,32,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,48,0,0,0,116,0,160,1,161, + 0,124,0,95,2,116,0,160,1,161,0,124,0,95,3,124, + 1,124,0,95,4,100,0,124,0,95,5,100,1,124,0,95, + 6,100,1,124,0,95,7,100,0,83,0,169,2,78,233,0, + 0,0,0,41,8,218,7,95,116,104,114,101,97,100,90,13, + 97,108,108,111,99,97,116,101,95,108,111,99,107,218,4,108, + 111,99,107,218,6,119,97,107,101,117,112,114,20,0,0,0, + 218,5,111,119,110,101,114,218,5,99,111,117,110,116,218,7, + 119,97,105,116,101,114,115,169,2,218,4,115,101,108,102,114, + 20,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, + 0,0,0,218,8,95,95,105,110,105,116,95,95,71,0,0, + 0,115,14,0,0,0,10,1,10,1,6,1,6,1,6,1, + 10,1,255,128,122,20,95,77,111,100,117,108,101,76,111,99, + 107,46,95,95,105,110,105,116,95,95,99,1,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,67, + 0,0,0,115,84,0,0,0,116,0,160,1,161,0,125,1, + 124,0,106,2,125,2,116,3,131,0,125,3,116,4,160,5, + 124,2,161,1,125,4,124,4,100,0,117,0,114,42,100,1, + 83,0,124,4,106,2,125,2,124,2,124,1,107,2,114,60, + 100,2,83,0,124,2,124,3,118,0,114,72,100,1,83,0, + 124,3,160,6,124,2,161,1,1,0,113,20,41,3,78,70, + 84,41,7,114,26,0,0,0,218,9,103,101,116,95,105,100, + 101,110,116,114,29,0,0,0,218,3,115,101,116,218,12,95, + 98,108,111,99,107,105,110,103,95,111,110,218,3,103,101,116, + 218,3,97,100,100,41,5,114,33,0,0,0,90,2,109,101, + 218,3,116,105,100,90,4,115,101,101,110,114,27,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, + 12,104,97,115,95,100,101,97,100,108,111,99,107,79,0,0, + 0,115,26,0,0,0,8,2,6,1,6,1,10,2,8,1, + 4,1,6,1,8,1,4,1,8,1,4,6,12,1,255,128, + 122,24,95,77,111,100,117,108,101,76,111,99,107,46,104,97, + 115,95,100,101,97,100,108,111,99,107,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,196,0,0,0,116,0,160,1,161,0,125,1, + 124,0,116,2,124,1,60,0,122,170,124,0,106,3,143,126, + 1,0,124,0,106,4,100,1,107,2,115,46,124,0,106,5, + 124,1,107,2,114,90,124,1,124,0,95,5,124,0,4,0, + 106,4,100,2,55,0,2,0,95,4,87,0,100,3,4,0, + 4,0,131,3,1,0,87,0,116,2,124,1,61,0,100,4, + 83,0,124,0,160,6,161,0,114,110,116,7,100,5,124,0, + 22,0,131,1,130,1,124,0,106,8,160,9,100,6,161,1, + 114,136,124,0,4,0,106,10,100,2,55,0,2,0,95,10, + 87,0,100,3,4,0,4,0,131,3,1,0,110,16,49,0, + 115,156,48,0,1,0,1,0,1,0,89,0,1,0,124,0, + 106,8,160,9,161,0,1,0,124,0,106,8,160,11,161,0, + 1,0,113,18,116,2,124,1,61,0,48,0,41,7,122,185, + 10,32,32,32,32,32,32,32,32,65,99,113,117,105,114,101, + 32,116,104,101,32,109,111,100,117,108,101,32,108,111,99,107, + 46,32,32,73,102,32,97,32,112,111,116,101,110,116,105,97, + 108,32,100,101,97,100,108,111,99,107,32,105,115,32,100,101, + 116,101,99,116,101,100,44,10,32,32,32,32,32,32,32,32, + 97,32,95,68,101,97,100,108,111,99,107,69,114,114,111,114, + 32,105,115,32,114,97,105,115,101,100,46,10,32,32,32,32, + 32,32,32,32,79,116,104,101,114,119,105,115,101,44,32,116, + 104,101,32,108,111,99,107,32,105,115,32,97,108,119,97,121, + 115,32,97,99,113,117,105,114,101,100,32,97,110,100,32,84, + 114,117,101,32,105,115,32,114,101,116,117,114,110,101,100,46, + 10,32,32,32,32,32,32,32,32,114,25,0,0,0,233,1, + 0,0,0,78,84,122,23,100,101,97,100,108,111,99,107,32, + 100,101,116,101,99,116,101,100,32,98,121,32,37,114,70,41, + 12,114,26,0,0,0,114,35,0,0,0,114,37,0,0,0, + 114,27,0,0,0,114,30,0,0,0,114,29,0,0,0,114, + 41,0,0,0,114,22,0,0,0,114,28,0,0,0,218,7, + 97,99,113,117,105,114,101,114,31,0,0,0,218,7,114,101, + 108,101,97,115,101,169,2,114,33,0,0,0,114,40,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,43,0,0,0,100,0,0,0,115,36,0,0,0,8,6, + 8,1,2,1,8,2,20,1,6,1,14,1,14,1,6,9, + 4,247,8,1,12,1,12,1,44,1,10,2,12,1,8,2, + 255,128,122,19,95,77,111,100,117,108,101,76,111,99,107,46, + 97,99,113,117,105,114,101,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,144,0,0,0,116,0,160,1,161,0,125,1,124,0,106, + 2,143,110,1,0,124,0,106,3,124,1,107,3,114,34,116, + 4,100,1,131,1,130,1,124,0,106,5,100,2,107,4,115, + 48,74,0,130,1,124,0,4,0,106,5,100,3,56,0,2, + 0,95,5,124,0,106,5,100,2,107,2,114,108,100,0,124, + 0,95,3,124,0,106,6,114,108,124,0,4,0,106,6,100, + 3,56,0,2,0,95,6,124,0,106,7,160,8,161,0,1, + 0,87,0,100,0,4,0,4,0,131,3,1,0,100,0,83, + 0,49,0,115,130,48,0,1,0,1,0,1,0,89,0,1, + 0,100,0,83,0,41,4,78,250,31,99,97,110,110,111,116, + 32,114,101,108,101,97,115,101,32,117,110,45,97,99,113,117, + 105,114,101,100,32,108,111,99,107,114,25,0,0,0,114,42, + 0,0,0,41,9,114,26,0,0,0,114,35,0,0,0,114, + 27,0,0,0,114,29,0,0,0,218,12,82,117,110,116,105, + 109,101,69,114,114,111,114,114,30,0,0,0,114,31,0,0, + 0,114,28,0,0,0,114,44,0,0,0,114,45,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 44,0,0,0,125,0,0,0,115,24,0,0,0,8,1,8, + 1,10,1,8,1,14,1,14,1,10,1,6,1,6,1,14, + 1,46,1,255,128,122,19,95,77,111,100,117,108,101,76,111, + 99,107,46,114,101,108,101,97,115,101,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,18,0,0,0,100,1,160,0,124,0,106,1, + 116,2,124,0,131,1,161,2,83,0,41,2,78,122,23,95, + 77,111,100,117,108,101,76,111,99,107,40,123,33,114,125,41, + 32,97,116,32,123,125,169,3,218,6,102,111,114,109,97,116, + 114,20,0,0,0,218,2,105,100,169,1,114,33,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, + 8,95,95,114,101,112,114,95,95,138,0,0,0,115,4,0, + 0,0,18,1,255,128,122,20,95,77,111,100,117,108,101,76, + 111,99,107,46,95,95,114,101,112,114,95,95,78,41,9,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,41,0,0,0,114,43,0, + 0,0,114,44,0,0,0,114,52,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,23,0,0,0,65,0,0,0,115,16,0,0,0,8,0, + 4,1,8,5,8,8,8,21,8,25,12,13,255,128,114,23, + 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,48,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,83, + 0,41,11,218,16,95,68,117,109,109,121,77,111,100,117,108, + 101,76,111,99,107,122,86,65,32,115,105,109,112,108,101,32, + 95,77,111,100,117,108,101,76,111,99,107,32,101,113,117,105, + 118,97,108,101,110,116,32,102,111,114,32,80,121,116,104,111, + 110,32,98,117,105,108,100,115,32,119,105,116,104,111,117,116, + 10,32,32,32,32,109,117,108,116,105,45,116,104,114,101,97, + 100,105,110,103,32,115,117,112,112,111,114,116,46,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,16,0,0,0,124,1,124,0,95, + 0,100,1,124,0,95,1,100,0,83,0,114,24,0,0,0, + 41,2,114,20,0,0,0,114,30,0,0,0,114,32,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,34,0,0,0,146,0,0,0,115,6,0,0,0,6,1, + 10,1,255,128,122,25,95,68,117,109,109,121,77,111,100,117, + 108,101,76,111,99,107,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, + 3,0,0,0,67,0,0,0,115,18,0,0,0,124,0,4, + 0,106,0,100,1,55,0,2,0,95,0,100,2,83,0,41, + 3,78,114,42,0,0,0,84,41,1,114,30,0,0,0,114, + 51,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, + 0,0,0,114,43,0,0,0,150,0,0,0,115,6,0,0, + 0,14,1,4,1,255,128,122,24,95,68,117,109,109,121,77, + 111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,114, 101,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,18,0,0,0,100, - 1,160,0,124,0,106,1,116,2,124,0,131,1,161,2,83, - 0,41,2,78,122,23,95,77,111,100,117,108,101,76,111,99, - 107,40,123,33,114,125,41,32,97,116,32,123,125,169,3,218, - 6,102,111,114,109,97,116,114,17,0,0,0,218,2,105,100, - 169,1,114,30,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,8,95,95,114,101,112,114,95,95, - 132,0,0,0,115,4,0,0,0,18,1,255,128,122,20,95, - 77,111,100,117,108,101,76,111,99,107,46,95,95,114,101,112, - 114,95,95,78,41,9,114,1,0,0,0,114,0,0,0,0, - 114,2,0,0,0,114,3,0,0,0,114,31,0,0,0,114, - 38,0,0,0,114,40,0,0,0,114,41,0,0,0,114,49, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,20,0,0,0,59,0,0,0, - 115,16,0,0,0,8,0,4,1,8,5,8,8,8,21,8, - 25,12,13,255,128,114,20,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,48,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,83,0,41,11,218,16,95,68,117,109, - 109,121,77,111,100,117,108,101,76,111,99,107,122,86,65,32, - 115,105,109,112,108,101,32,95,77,111,100,117,108,101,76,111, - 99,107,32,101,113,117,105,118,97,108,101,110,116,32,102,111, - 114,32,80,121,116,104,111,110,32,98,117,105,108,100,115,32, - 119,105,116,104,111,117,116,10,32,32,32,32,109,117,108,116, - 105,45,116,104,114,101,97,100,105,110,103,32,115,117,112,112, - 111,114,116,46,99,2,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,67,0,0,0,115,36,0,0,0,124, + 0,106,0,100,1,107,2,114,18,116,1,100,2,131,1,130, + 1,124,0,4,0,106,0,100,3,56,0,2,0,95,0,100, + 0,83,0,41,4,78,114,25,0,0,0,114,46,0,0,0, + 114,42,0,0,0,41,2,114,30,0,0,0,114,47,0,0, + 0,114,51,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,114,44,0,0,0,154,0,0,0,115,8, + 0,0,0,10,1,8,1,18,1,255,128,122,24,95,68,117, + 109,109,121,77,111,100,117,108,101,76,111,99,107,46,114,101, + 108,101,97,115,101,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,18, + 0,0,0,100,1,160,0,124,0,106,1,116,2,124,0,131, + 1,161,2,83,0,41,2,78,122,28,95,68,117,109,109,121, + 77,111,100,117,108,101,76,111,99,107,40,123,33,114,125,41, + 32,97,116,32,123,125,114,48,0,0,0,114,51,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 52,0,0,0,159,0,0,0,115,4,0,0,0,18,1,255, + 128,122,25,95,68,117,109,109,121,77,111,100,117,108,101,76, + 111,99,107,46,95,95,114,101,112,114,95,95,78,41,8,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,43,0,0,0,114,44,0, + 0,0,114,52,0,0,0,114,5,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,6,0,0,0,114,53,0,0,0, + 142,0,0,0,115,14,0,0,0,8,0,4,1,8,3,8, + 4,8,4,12,5,255,128,114,53,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,36,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,83,0,41,8, + 218,18,95,77,111,100,117,108,101,76,111,99,107,77,97,110, + 97,103,101,114,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,16,0, - 0,0,124,1,124,0,95,0,100,1,124,0,95,1,100,0, - 83,0,114,21,0,0,0,41,2,114,17,0,0,0,114,27, - 0,0,0,114,29,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,31,0,0,0,140,0,0,0, - 115,6,0,0,0,6,1,10,1,255,128,122,25,95,68,117, - 109,109,121,77,111,100,117,108,101,76,111,99,107,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,3,0,0,0,67,0,0,0,115, - 18,0,0,0,124,0,4,0,106,0,100,1,55,0,2,0, - 95,0,100,2,83,0,41,3,78,114,39,0,0,0,84,41, - 1,114,27,0,0,0,114,48,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,40,0,0,0,144, - 0,0,0,115,6,0,0,0,14,1,4,1,255,128,122,24, - 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107, - 46,97,99,113,117,105,114,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,36,0,0,0,124,0,106,0,100,1,107,2,114,18, - 116,1,100,2,131,1,130,1,124,0,4,0,106,0,100,3, - 56,0,2,0,95,0,100,0,83,0,41,4,78,114,22,0, - 0,0,114,43,0,0,0,114,39,0,0,0,41,2,114,27, - 0,0,0,114,44,0,0,0,114,48,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,41,0,0, - 0,148,0,0,0,115,8,0,0,0,10,1,8,1,18,1, - 255,128,122,24,95,68,117,109,109,121,77,111,100,117,108,101, - 76,111,99,107,46,114,101,108,101,97,115,101,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,18,0,0,0,100,1,160,0,124,0, - 106,1,116,2,124,0,131,1,161,2,83,0,41,2,78,122, - 28,95,68,117,109,109,121,77,111,100,117,108,101,76,111,99, - 107,40,123,33,114,125,41,32,97,116,32,123,125,114,45,0, - 0,0,114,48,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,49,0,0,0,153,0,0,0,115, - 4,0,0,0,18,1,255,128,122,25,95,68,117,109,109,121, - 77,111,100,117,108,101,76,111,99,107,46,95,95,114,101,112, - 114,95,95,78,41,8,114,1,0,0,0,114,0,0,0,0, - 114,2,0,0,0,114,3,0,0,0,114,31,0,0,0,114, - 40,0,0,0,114,41,0,0,0,114,49,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,50,0,0,0,136,0,0,0,115,14,0,0,0, - 8,0,4,1,8,3,8,4,8,4,12,5,255,128,114,50, - 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,36,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,83,0,41,8,218,18,95,77,111,100,117,108,101, - 76,111,99,107,77,97,110,97,103,101,114,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,16,0,0,0,124,1,124,0,95,0,100, - 0,124,0,95,1,100,0,83,0,114,13,0,0,0,41,2, - 218,5,95,110,97,109,101,218,5,95,108,111,99,107,114,29, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,31,0,0,0,159,0,0,0,115,6,0,0,0, - 6,1,10,1,255,128,122,27,95,77,111,100,117,108,101,76, - 111,99,107,77,97,110,97,103,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,26,0,0, - 0,116,0,124,0,106,1,131,1,124,0,95,2,124,0,106, - 2,160,3,161,0,1,0,100,0,83,0,114,13,0,0,0, - 41,4,218,16,95,103,101,116,95,109,111,100,117,108,101,95, - 108,111,99,107,114,52,0,0,0,114,53,0,0,0,114,40, - 0,0,0,114,48,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,9,95,95,101,110,116,101,114, - 95,95,163,0,0,0,115,6,0,0,0,12,1,14,1,255, - 128,122,28,95,77,111,100,117,108,101,76,111,99,107,77,97, - 110,97,103,101,114,46,95,95,101,110,116,101,114,95,95,99, + 0,0,124,1,124,0,95,0,100,0,124,0,95,1,100,0, + 83,0,114,0,0,0,0,41,2,218,5,95,110,97,109,101, + 218,5,95,108,111,99,107,114,32,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,6,0,0,0,114,34,0,0,0, + 165,0,0,0,115,6,0,0,0,6,1,10,1,255,128,122, + 27,95,77,111,100,117,108,101,76,111,99,107,77,97,110,97, + 103,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,26,0,0,0,116,0,124,0,106,1, + 131,1,124,0,95,2,124,0,106,2,160,3,161,0,1,0, + 100,0,83,0,114,0,0,0,0,41,4,218,16,95,103,101, + 116,95,109,111,100,117,108,101,95,108,111,99,107,114,55,0, + 0,0,114,56,0,0,0,114,43,0,0,0,114,51,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 218,9,95,95,101,110,116,101,114,95,95,169,0,0,0,115, + 6,0,0,0,12,1,14,1,255,128,122,28,95,77,111,100, + 117,108,101,76,111,99,107,77,97,110,97,103,101,114,46,95, + 95,101,110,116,101,114,95,95,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,2,0,0,0,79,0,0, + 0,115,14,0,0,0,124,0,106,0,160,1,161,0,1,0, + 100,0,83,0,114,0,0,0,0,41,2,114,56,0,0,0, + 114,44,0,0,0,41,3,114,33,0,0,0,218,4,97,114, + 103,115,90,6,107,119,97,114,103,115,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,218,8,95,95,101,120,105, + 116,95,95,173,0,0,0,115,4,0,0,0,14,1,255,128, + 122,27,95,77,111,100,117,108,101,76,111,99,107,77,97,110, + 97,103,101,114,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, + 34,0,0,0,114,58,0,0,0,114,60,0,0,0,114,5, + 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, + 0,0,114,54,0,0,0,163,0,0,0,115,10,0,0,0, + 8,0,8,2,8,4,12,4,255,128,114,54,0,0,0,99, 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 2,0,0,0,79,0,0,0,115,14,0,0,0,124,0,106, - 0,160,1,161,0,1,0,100,0,83,0,114,13,0,0,0, - 41,2,114,53,0,0,0,114,41,0,0,0,41,3,114,30, - 0,0,0,218,4,97,114,103,115,90,6,107,119,97,114,103, - 115,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,8,95,95,101,120,105,116,95,95,167,0,0,0,115,4, - 0,0,0,14,1,255,128,122,27,95,77,111,100,117,108,101, - 76,111,99,107,77,97,110,97,103,101,114,46,95,95,101,120, - 105,116,95,95,78,41,6,114,1,0,0,0,114,0,0,0, - 0,114,2,0,0,0,114,31,0,0,0,114,55,0,0,0, - 114,57,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,51,0,0,0,157,0, - 0,0,115,10,0,0,0,8,0,8,2,8,4,12,4,255, - 128,114,51,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,115, - 134,0,0,0,116,0,160,1,161,0,1,0,122,114,122,14, - 116,2,124,0,25,0,131,0,125,1,87,0,110,22,4,0, - 116,3,121,46,1,0,1,0,1,0,100,1,125,1,89,0, - 110,2,48,0,124,1,100,1,117,0,114,110,116,4,100,1, - 117,0,114,74,116,5,124,0,131,1,125,1,110,8,116,6, - 124,0,131,1,125,1,124,0,102,1,100,2,100,3,132,1, - 125,2,116,7,160,8,124,1,124,2,161,2,116,2,124,0, - 60,0,87,0,116,0,160,9,161,0,1,0,124,1,83,0, - 116,0,160,9,161,0,1,0,48,0,41,4,122,139,71,101, - 116,32,111,114,32,99,114,101,97,116,101,32,116,104,101,32, - 109,111,100,117,108,101,32,108,111,99,107,32,102,111,114,32, - 97,32,103,105,118,101,110,32,109,111,100,117,108,101,32,110, - 97,109,101,46,10,10,32,32,32,32,65,99,113,117,105,114, - 101,47,114,101,108,101,97,115,101,32,105,110,116,101,114,110, - 97,108,108,121,32,116,104,101,32,103,108,111,98,97,108,32, - 105,109,112,111,114,116,32,108,111,99,107,32,116,111,32,112, - 114,111,116,101,99,116,10,32,32,32,32,95,109,111,100,117, - 108,101,95,108,111,99,107,115,46,78,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,8,0,0,0,83, - 0,0,0,115,54,0,0,0,116,0,160,1,161,0,1,0, - 122,34,116,2,160,3,124,1,161,1,124,0,117,0,114,30, - 116,2,124,1,61,0,87,0,116,0,160,4,161,0,1,0, - 100,0,83,0,116,0,160,4,161,0,1,0,48,0,114,13, - 0,0,0,41,5,218,4,95,105,109,112,218,12,97,99,113, - 117,105,114,101,95,108,111,99,107,218,13,95,109,111,100,117, - 108,101,95,108,111,99,107,115,114,35,0,0,0,218,12,114, - 101,108,101,97,115,101,95,108,111,99,107,41,2,218,3,114, - 101,102,114,17,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,2,99,98,192,0,0,0,115,12, - 0,0,0,8,1,2,1,14,4,8,1,22,2,255,128,122, - 28,95,103,101,116,95,109,111,100,117,108,101,95,108,111,99, - 107,46,60,108,111,99,97,108,115,62,46,99,98,41,10,114, - 58,0,0,0,114,59,0,0,0,114,60,0,0,0,218,8, - 75,101,121,69,114,114,111,114,114,23,0,0,0,114,50,0, - 0,0,114,20,0,0,0,218,8,95,119,101,97,107,114,101, - 102,114,62,0,0,0,114,61,0,0,0,41,3,114,17,0, - 0,0,114,24,0,0,0,114,63,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,54,0,0,0, - 173,0,0,0,115,32,0,0,0,8,6,2,1,2,1,14, - 1,12,1,10,1,8,2,8,1,10,1,8,2,12,2,18, - 11,8,2,4,2,10,254,255,128,114,54,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,54,0,0,0,116,0,124,0, - 131,1,125,1,122,12,124,1,160,1,161,0,1,0,87,0, - 110,20,4,0,116,2,121,40,1,0,1,0,1,0,89,0, - 100,1,83,0,48,0,124,1,160,3,161,0,1,0,100,1, - 83,0,41,2,122,189,65,99,113,117,105,114,101,115,32,116, - 104,101,110,32,114,101,108,101,97,115,101,115,32,116,104,101, - 32,109,111,100,117,108,101,32,108,111,99,107,32,102,111,114, - 32,97,32,103,105,118,101,110,32,109,111,100,117,108,101,32, - 110,97,109,101,46,10,10,32,32,32,32,84,104,105,115,32, - 105,115,32,117,115,101,100,32,116,111,32,101,110,115,117,114, - 101,32,97,32,109,111,100,117,108,101,32,105,115,32,99,111, - 109,112,108,101,116,101,108,121,32,105,110,105,116,105,97,108, - 105,122,101,100,44,32,105,110,32,116,104,101,10,32,32,32, - 32,101,118,101,110,116,32,105,116,32,105,115,32,98,101,105, - 110,103,32,105,109,112,111,114,116,101,100,32,98,121,32,97, - 110,111,116,104,101,114,32,116,104,114,101,97,100,46,10,32, - 32,32,32,78,41,4,114,54,0,0,0,114,40,0,0,0, - 114,19,0,0,0,114,41,0,0,0,41,2,114,17,0,0, - 0,114,24,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,19,95,108,111,99,107,95,117,110,108, - 111,99,107,95,109,111,100,117,108,101,210,0,0,0,115,14, - 0,0,0,8,6,2,1,12,1,12,1,8,3,12,2,255, - 128,114,66,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,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,101,113,117,101,110,99,101,115,10,32,32,32,32,111,102, - 32,105,109,112,111,114,116,108,105,98,32,102,114,97,109,101, - 115,32,116,104,97,116,32,101,110,100,32,119,105,116,104,32, - 97,32,99,97,108,108,32,116,111,32,116,104,105,115,32,102, - 117,110,99,116,105,111,110,10,10,32,32,32,32,85,115,101, - 32,105,116,32,105,110,115,116,101,97,100,32,111,102,32,97, - 32,110,111,114,109,97,108,32,99,97,108,108,32,105,110,32, - 112,108,97,99,101,115,32,119,104,101,114,101,32,105,110,99, - 108,117,100,105,110,103,32,116,104,101,32,105,109,112,111,114, - 116,108,105,98,10,32,32,32,32,102,114,97,109,101,115,32, - 105,110,116,114,111,100,117,99,101,115,32,117,110,119,97,110, - 116,101,100,32,110,111,105,115,101,32,105,110,116,111,32,116, - 104,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,10,0,0,0,41,3,218, - 1,102,114,56,0,0,0,90,4,107,119,100,115,114,10,0, - 0,0,114,10,0,0,0,114,11,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,227,0,0,0,115,4,0,0,0, - 14,8,255,128,114,68,0,0,0,114,39,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,54,124,0,160,3,100,1,161,1,115,30,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,15,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,46,0,0,0,218,6, - 115,116,100,101,114,114,41,3,218,7,109,101,115,115,97,103, - 101,114,69,0,0,0,114,56,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,16,95,118,101,114, - 98,111,115,101,95,109,101,115,115,97,103,101,238,0,0,0, - 115,12,0,0,0,12,2,10,1,8,1,24,1,4,253,255, - 128,114,77,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,115, - 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,28,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,16,0,0,0,41,4, - 114,15,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,46,0,0,0,169,2,114, - 30,0,0,0,218,8,102,117,108,108,110,97,109,101,169,1, - 218,3,102,120,110,114,10,0,0,0,114,11,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,248,0,0,0,115,12, - 0,0,0,10,1,10,1,2,1,6,255,10,2,255,128,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,12,0,0,0,41,2,114, - 84,0,0,0,114,85,0,0,0,114,10,0,0,0,114,83, - 0,0,0,114,11,0,0,0,218,17,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,246,0,0,0,115, - 8,0,0,0,12,2,10,5,4,1,255,128,114,87,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,115,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,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, + 8,0,0,0,67,0,0,0,115,134,0,0,0,116,0,160, + 1,161,0,1,0,122,114,122,14,116,2,124,0,25,0,131, + 0,125,1,87,0,110,22,4,0,116,3,121,46,1,0,1, + 0,1,0,100,1,125,1,89,0,110,2,48,0,124,1,100, + 1,117,0,114,110,116,4,100,1,117,0,114,74,116,5,124, + 0,131,1,125,1,110,8,116,6,124,0,131,1,125,1,124, + 0,102,1,100,2,100,3,132,1,125,2,116,7,160,8,124, + 1,124,2,161,2,116,2,124,0,60,0,87,0,116,0,160, + 9,161,0,1,0,124,1,83,0,116,0,160,9,161,0,1, + 0,48,0,41,4,122,139,71,101,116,32,111,114,32,99,114, + 101,97,116,101,32,116,104,101,32,109,111,100,117,108,101,32, + 108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,110, + 32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,32, + 32,32,32,65,99,113,117,105,114,101,47,114,101,108,101,97, + 115,101,32,105,110,116,101,114,110,97,108,108,121,32,116,104, + 101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,32, + 108,111,99,107,32,116,111,32,112,114,111,116,101,99,116,10, + 32,32,32,32,95,109,111,100,117,108,101,95,108,111,99,107, + 115,46,78,99,2,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,8,0,0,0,83,0,0,0,115,54,0,0, + 0,116,0,160,1,161,0,1,0,122,34,116,2,160,3,124, + 1,161,1,124,0,117,0,114,30,116,2,124,1,61,0,87, + 0,116,0,160,4,161,0,1,0,100,0,83,0,116,0,160, + 4,161,0,1,0,48,0,114,0,0,0,0,41,5,218,4, + 95,105,109,112,218,12,97,99,113,117,105,114,101,95,108,111, + 99,107,218,13,95,109,111,100,117,108,101,95,108,111,99,107, + 115,114,38,0,0,0,218,12,114,101,108,101,97,115,101,95, + 108,111,99,107,41,2,218,3,114,101,102,114,20,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, + 2,99,98,198,0,0,0,115,12,0,0,0,8,1,2,1, + 14,4,8,1,22,2,255,128,122,28,95,103,101,116,95,109, + 111,100,117,108,101,95,108,111,99,107,46,60,108,111,99,97, + 108,115,62,46,99,98,41,10,114,61,0,0,0,114,62,0, + 0,0,114,63,0,0,0,218,8,75,101,121,69,114,114,111, + 114,114,26,0,0,0,114,53,0,0,0,114,23,0,0,0, + 218,8,95,119,101,97,107,114,101,102,114,65,0,0,0,114, + 64,0,0,0,41,3,114,20,0,0,0,114,27,0,0,0, + 114,66,0,0,0,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,114,57,0,0,0,179,0,0,0,115,32,0, + 0,0,8,6,2,1,2,1,14,1,12,1,10,1,8,2, + 8,1,10,1,8,2,12,2,18,11,8,2,4,2,10,254, + 255,128,114,57,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,54,0,0,0,116,0,124,0,131,1,125,1,122,12,124, + 1,160,1,161,0,1,0,87,0,110,20,4,0,116,2,121, + 40,1,0,1,0,1,0,89,0,100,1,83,0,48,0,124, + 1,160,3,161,0,1,0,100,1,83,0,41,2,122,189,65, + 99,113,117,105,114,101,115,32,116,104,101,110,32,114,101,108, + 101,97,115,101,115,32,116,104,101,32,109,111,100,117,108,101, + 32,108,111,99,107,32,102,111,114,32,97,32,103,105,118,101, + 110,32,109,111,100,117,108,101,32,110,97,109,101,46,10,10, + 32,32,32,32,84,104,105,115,32,105,115,32,117,115,101,100, + 32,116,111,32,101,110,115,117,114,101,32,97,32,109,111,100, + 117,108,101,32,105,115,32,99,111,109,112,108,101,116,101,108, + 121,32,105,110,105,116,105,97,108,105,122,101,100,44,32,105, + 110,32,116,104,101,10,32,32,32,32,101,118,101,110,116,32, + 105,116,32,105,115,32,98,101,105,110,103,32,105,109,112,111, + 114,116,101,100,32,98,121,32,97,110,111,116,104,101,114,32, + 116,104,114,101,97,100,46,10,32,32,32,32,78,41,4,114, + 57,0,0,0,114,43,0,0,0,114,22,0,0,0,114,44, + 0,0,0,41,2,114,20,0,0,0,114,27,0,0,0,114, + 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,19, + 95,108,111,99,107,95,117,110,108,111,99,107,95,109,111,100, + 117,108,101,216,0,0,0,115,14,0,0,0,8,6,2,1, + 12,1,12,1,8,3,12,2,255,128,114,69,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,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,101,113,117,101,110,99, + 101,115,10,32,32,32,32,111,102,32,105,109,112,111,114,116, + 108,105,98,32,102,114,97,109,101,115,32,116,104,97,116,32, + 101,110,100,32,119,105,116,104,32,97,32,99,97,108,108,32, + 116,111,32,116,104,105,115,32,102,117,110,99,116,105,111,110, + 10,10,32,32,32,32,85,115,101,32,105,116,32,105,110,115, + 116,101,97,100,32,111,102,32,97,32,110,111,114,109,97,108, + 32,99,97,108,108,32,105,110,32,112,108,97,99,101,115,32, + 119,104,101,114,101,32,105,110,99,108,117,100,105,110,103,32, + 116,104,101,32,105,109,112,111,114,116,108,105,98,10,32,32, + 32,32,102,114,97,109,101,115,32,105,110,116,114,111,100,117, + 99,101,115,32,117,110,119,97,110,116,101,100,32,110,111,105, + 115,101,32,105,110,116,111,32,116,104,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,59,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,4,0,0,0,14,8,255,128,114,71,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,54,124,0, + 160,3,100,1,161,1,115,30,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,49,0,0,0,218,6,115,116,100,101,114,114,41, + 3,218,7,109,101,115,115,97,103,101,114,72,0,0,0,114, + 59,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,12,0,0,0,12,2, + 10,1,8,1,24,1,4,253,255,128,114,80,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,115,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,116,0,160,1,124,1, - 161,1,115,28,116,2,100,1,160,3,124,1,161,1,124,1, + 0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,1, + 118,1,114,28,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,16,0,0,0,41,4,114,58,0,0,0,218,9,105,115, - 95,102,114,111,122,101,110,114,80,0,0,0,114,46,0,0, - 0,114,81,0,0,0,114,83,0,0,0,114,10,0,0,0, - 114,11,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,3, - 1,0,0,115,12,0,0,0,10,1,10,1,2,1,6,255, - 10,2,255,128,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, + 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,49,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,115,12,0,0,0,10,1,10,1, + 2,1,6,255,10,2,255,128,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,87,0,0,0,114,88,0, + 0,0,114,5,0,0,0,114,86,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,115,8,0,0,0,12,2,10, + 5,4,1,255,128,114,90,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,115,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,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,28,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,61,0,0,0,218,9,105,115,95,102,114,111,122,101,110, + 114,83,0,0,0,114,49,0,0,0,114,84,0,0,0,114, + 86,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,78,114,86,0,0,0,41,2, - 114,84,0,0,0,114,90,0,0,0,114,10,0,0,0,114, - 83,0,0,0,114,11,0,0,0,218,16,95,114,101,113,117, - 105,114,101,115,95,102,114,111,122,101,110,1,1,0,0,115, - 8,0,0,0,12,2,10,5,4,1,255,128,114,91,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,67,0,0,0,115,58,0,0,0,116, - 0,124,1,124,0,131,2,125,2,124,1,116,1,106,2,118, - 0,114,50,116,1,106,2,124,1,25,0,125,3,116,3,124, - 2,124,3,131,2,1,0,116,1,106,2,124,1,25,0,83, - 0,116,4,124,2,131,1,83,0,41,2,122,128,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,32,105, - 110,115,116,101,97,100,46,10,10,32,32,32,32,78,41,5, - 218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,100, - 101,114,114,15,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,4, - 114,30,0,0,0,114,82,0,0,0,218,4,115,112,101,99, - 218,6,109,111,100,117,108,101,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,17,95,108,111,97,100,95,109, - 111,100,117,108,101,95,115,104,105,109,13,1,0,0,115,14, - 0,0,0,10,6,10,1,10,1,10,1,10,1,8,2,255, - 128,114,98,0,0,0,99,1,0,0,0,0,0,0,0,0, + 95,119,114,97,112,112,101,114,9,1,0,0,115,12,0,0, + 0,10,1,10,1,2,1,6,255,10,2,255,128,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,89,0,0,0,41,2,114,87,0,0,0,114,93, + 0,0,0,114,5,0,0,0,114,86,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,115,8,0,0,0,12,2,10, + 5,4,1,255,128,114,94,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,66,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,128,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,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,85,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,18,0,0,0,4, + 6,12,2,10,1,10,1,10,1,10,1,10,1,8,2,255, + 128,114,105,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, 210,0,0,0,116,0,124,0,100,1,100,0,131,3,125,1, 116,1,124,1,100,2,131,2,114,54,122,12,124,1,160,2, @@ -521,1302 +542,1313 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 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,10,114,6,0,0,0,114,4,0,0,0,114, - 100,0,0,0,218,9,69,120,99,101,112,116,105,111,110,218, - 8,95,95,115,112,101,99,95,95,218,14,65,116,116,114,105, - 98,117,116,101,69,114,114,111,114,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,1,0,0,0,218,8,95,95,102,105,108,101,95,95, - 114,46,0,0,0,41,5,114,97,0,0,0,218,6,108,111, - 97,100,101,114,114,96,0,0,0,114,17,0,0,0,218,8, - 102,105,108,101,110,97,109,101,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,12,95,109,111,100,117,108,101, - 95,114,101,112,114,29,1,0,0,115,48,0,0,0,12,2, - 10,1,2,4,12,1,12,1,6,1,2,1,10,1,12,1, - 6,1,8,2,8,1,2,4,10,1,12,1,10,1,2,1, - 10,1,12,1,8,1,14,1,18,2,12,2,255,128,114,112, - 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, + 114,125,62,41,10,114,13,0,0,0,114,11,0,0,0,114, + 107,0,0,0,218,9,69,120,99,101,112,116,105,111,110,218, + 8,95,95,115,112,101,99,95,95,114,2,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,9,0,0,0,218,8,95,95,102, + 105,108,101,95,95,114,49,0,0,0,41,5,114,104,0,0, + 0,218,6,108,111,97,100,101,114,114,103,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,48, + 0,0,0,12,2,10,1,2,4,12,1,12,1,6,1,2, + 1,10,1,12,1,6,1,8,2,8,1,2,4,10,1,12, + 1,10,1,2,1,10,1,12,1,8,1,14,1,18,2,12, + 2,255,128,114,118,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,32,103,0,110,2,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, + 116,0,0,0,114,120,0,0,0,114,121,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,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,32,103,0,110,2,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,17,0,0,0,114,110,0,0,0,114, - 114,0,0,0,114,115,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, - 30,0,0,0,114,17,0,0,0,114,110,0,0,0,114,114, - 0,0,0,114,115,0,0,0,114,116,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,31,0,0, - 0,102,1,0,0,115,16,0,0,0,6,2,6,1,6,1, - 6,1,14,1,6,3,10,1,255,128,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,52,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,80,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,46,0,0,0,114,17,0, - 0,0,114,110,0,0,0,114,114,0,0,0,218,6,97,112, - 112,101,110,100,114,117,0,0,0,218,9,95,95,99,108,97, - 115,115,95,95,114,1,0,0,0,218,4,106,111,105,110,41, - 2,114,30,0,0,0,114,56,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,49,0,0,0,114, - 1,0,0,115,22,0,0,0,10,1,10,1,4,255,10,2, - 18,1,10,1,8,1,4,1,6,255,22,2,255,128,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,72,124,0,106,1,124,1,106, - 1,107,2,111,76,124,0,106,2,124,1,106,2,107,2,111, - 76,124,0,106,3,124,1,106,3,107,2,111,76,124,2,124, - 1,106,0,107,2,111,76,124,0,106,4,124,1,106,4,107, - 2,111,76,124,0,106,5,124,1,106,5,107,2,87,0,83, - 0,4,0,116,6,121,100,1,0,1,0,1,0,116,7,6, - 0,89,0,83,0,48,0,114,13,0,0,0,41,8,114,117, - 0,0,0,114,17,0,0,0,114,110,0,0,0,114,114,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,107,0,0,0,218,14,78, - 111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,114, - 30,0,0,0,90,5,111,116,104,101,114,90,4,115,109,115, - 108,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,6,95,95,101,113,95,95,124,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,10,1,255, - 128,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,52,124,0,106,1, - 100,0,117,1,114,52,124,0,106,2,114,52,116,3,100,0, - 117,0,114,38,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,13,0,0, - 0,41,6,114,119,0,0,0,114,114,0,0,0,114,118,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,48,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,123,0, - 0,0,136,1,0,0,115,14,0,0,0,10,2,16,1,8, - 1,4,1,14,1,6,1,255,128,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,13,0,0,0,41,1,114,119,0,0,0, - 41,2,114,30,0,0,0,114,123,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,123,0,0,0, - 145,1,0,0,115,4,0,0,0,10,2,255,128,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,26,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,22,0,0,0,41,3,114,117,0,0,0,114, - 17,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110, - 114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,6,112,97,114,101,110,116,149,1,0,0, - 115,8,0,0,0,10,3,16,1,6,2,255,128,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,13,0,0,0,41,1,114,118,0,0,0, - 114,48,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,124,0,0,0,157,1,0,0,115,4,0, - 0,0,6,2,255,128,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,13,0,0,0, - 41,2,218,4,98,111,111,108,114,118,0,0,0,41,2,114, - 30,0,0,0,218,5,118,97,108,117,101,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,124,0,0,0,161, - 1,0,0,115,4,0,0,0,14,2,255,128,41,12,114,1, - 0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,0, - 0,0,114,31,0,0,0,114,49,0,0,0,114,126,0,0, - 0,218,8,112,114,111,112,101,114,116,121,114,123,0,0,0, - 218,6,115,101,116,116,101,114,114,131,0,0,0,114,124,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,113,0,0,0,65,1,0,0,115, - 36,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,255,128,114,113,0,0,0,169,2,114, - 114,0,0,0,114,116,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, - 74,116,1,100,2,117,0,114,22,116,2,130,1,116,1,106, - 3,125,4,124,3,100,2,117,0,114,48,124,4,124,0,124, - 1,100,3,141,2,83,0,124,3,114,56,103,0,110,2,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,134,116,0,124,1,100,5,131, - 2,114,130,122,14,124,1,160,4,124,0,161,1,125,3,87, - 0,110,26,4,0,116,5,121,128,1,0,1,0,1,0,100, - 2,125,3,89,0,110,6,48,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,110,0,0,0,41,2,114,110, - 0,0,0,114,117,0,0,0,114,116,0,0,0,70,114,136, - 0,0,0,41,7,114,4,0,0,0,114,127,0,0,0,114, - 128,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,116,0, - 0,0,114,80,0,0,0,114,113,0,0,0,41,6,114,17, - 0,0,0,114,110,0,0,0,114,114,0,0,0,114,116,0, - 0,0,114,137,0,0,0,90,6,115,101,97,114,99,104,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,92, - 0,0,0,166,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,10,1,4,3,16,2, - 255,128,114,92,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,40,1,0,0,122,10,124,0,106,0,125,3,87,0,110, - 18,4,0,116,1,121,28,1,0,1,0,1,0,89,0,110, - 14,48,0,124,3,100,0,117,1,114,42,124,3,83,0,124, - 0,106,2,125,4,124,1,100,0,117,0,114,86,122,10,124, - 0,106,3,125,1,87,0,110,18,4,0,116,1,121,84,1, - 0,1,0,1,0,89,0,110,2,48,0,122,10,124,0,106, - 4,125,5,87,0,110,22,4,0,116,1,121,118,1,0,1, - 0,1,0,100,0,125,5,89,0,110,2,48,0,124,2,100, - 0,117,0,114,174,124,5,100,0,117,0,114,170,122,10,124, - 1,106,5,125,2,87,0,110,26,4,0,116,1,121,168,1, - 0,1,0,1,0,100,0,125,2,89,0,110,6,48,0,124, - 5,125,2,122,10,124,0,106,6,125,6,87,0,110,22,4, - 0,116,1,121,206,1,0,1,0,1,0,100,0,125,6,89, - 0,110,2,48,0,122,14,116,7,124,0,106,8,131,1,125, - 7,87,0,110,22,4,0,116,1,121,244,1,0,1,0,1, - 0,100,0,125,7,89,0,110,2,48,0,116,9,124,4,124, - 1,124,2,100,1,141,3,125,3,124,5,100,0,117,0,144, - 1,114,18,100,2,110,2,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,114,0,0,0,70,84,41,13,114,106,0,0,0, - 114,107,0,0,0,114,1,0,0,0,114,99,0,0,0,114, - 109,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,113,0,0,0,114,118, - 0,0,0,114,123,0,0,0,114,117,0,0,0,41,8,114, - 97,0,0,0,114,110,0,0,0,114,114,0,0,0,114,96, - 0,0,0,114,17,0,0,0,90,8,108,111,99,97,116,105, - 111,110,114,123,0,0,0,114,117,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,17,95,115,112, - 101,99,95,102,114,111,109,95,109,111,100,117,108,101,192,1, - 0,0,115,74,0,0,0,2,2,10,1,12,1,6,1,8, - 2,4,1,6,2,8,1,2,1,10,1,12,1,6,2,2, - 1,10,1,12,1,10,1,8,1,8,1,2,1,10,1,12, - 1,10,1,4,2,2,1,10,1,12,1,10,1,2,1,14, - 1,12,1,10,1,14,2,20,1,6,1,6,1,4,1,255, - 128,114,143,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,214,1,0, - 0,124,2,115,20,116,0,124,1,100,1,100,0,131,3,100, - 0,117,0,114,52,122,12,124,0,106,1,124,1,95,2,87, - 0,110,18,4,0,116,3,121,50,1,0,1,0,1,0,89, - 0,110,2,48,0,124,2,115,72,116,0,124,1,100,2,100, - 0,131,3,100,0,117,0,114,174,124,0,106,4,125,3,124, - 3,100,0,117,0,114,144,124,0,106,5,100,0,117,1,114, - 144,116,6,100,0,117,0,114,108,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,10,124,3,124,1,95,12,87,0,110,18,4,0,116, - 3,121,172,1,0,1,0,1,0,89,0,110,2,48,0,124, - 2,115,194,116,0,124,1,100,3,100,0,131,3,100,0,117, - 0,114,226,122,12,124,0,106,13,124,1,95,14,87,0,110, - 18,4,0,116,3,121,224,1,0,1,0,1,0,89,0,110, - 2,48,0,122,10,124,0,124,1,95,15,87,0,110,18,4, - 0,116,3,121,254,1,0,1,0,1,0,89,0,110,2,48, - 0,124,2,144,1,115,24,116,0,124,1,100,4,100,0,131, - 3,100,0,117,0,144,1,114,70,124,0,106,5,100,0,117, - 1,144,1,114,70,122,12,124,0,106,5,124,1,95,16,87, - 0,110,20,4,0,116,3,144,1,121,68,1,0,1,0,1, - 0,89,0,110,2,48,0,124,0,106,17,144,1,114,210,124, - 2,144,1,115,102,116,0,124,1,100,5,100,0,131,3,100, - 0,117,0,144,1,114,136,122,12,124,0,106,18,124,1,95, - 11,87,0,110,20,4,0,116,3,144,1,121,134,1,0,1, - 0,1,0,89,0,110,2,48,0,124,2,144,1,115,160,116, - 0,124,1,100,6,100,0,131,3,100,0,117,0,144,1,114, - 210,124,0,106,19,100,0,117,1,144,1,114,210,122,14,124, - 0,106,19,124,1,95,20,87,0,124,1,83,0,4,0,116, - 3,144,1,121,208,1,0,1,0,1,0,89,0,124,1,83, - 0,48,0,124,1,83,0,41,7,78,114,1,0,0,0,114, - 99,0,0,0,218,11,95,95,112,97,99,107,97,103,101,95, - 95,114,142,0,0,0,114,109,0,0,0,114,140,0,0,0, - 41,21,114,6,0,0,0,114,17,0,0,0,114,1,0,0, - 0,114,107,0,0,0,114,110,0,0,0,114,117,0,0,0, - 114,127,0,0,0,114,128,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,109,0,0, - 0,114,99,0,0,0,114,131,0,0,0,114,146,0,0,0, - 114,106,0,0,0,114,142,0,0,0,114,124,0,0,0,114, - 114,0,0,0,114,123,0,0,0,114,140,0,0,0,41,5, - 114,96,0,0,0,114,97,0,0,0,114,145,0,0,0,114, - 110,0,0,0,114,147,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,18,95,105,110,105,116,95, - 109,111,100,117,108,101,95,97,116,116,114,115,237,1,0,0, - 115,104,0,0,0,20,4,2,1,12,1,12,1,6,1,20, - 2,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,6,1,20,2,2, - 1,12,1,12,1,6,1,2,2,10,1,12,1,6,1,24, - 2,12,1,2,1,12,1,14,1,6,1,8,2,24,1,2, - 1,12,1,14,1,6,1,24,2,12,1,2,1,10,1,4, - 3,14,254,2,1,4,1,2,255,4,1,255,128,114,149,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,30, - 124,0,106,1,160,2,124,0,161,1,125,1,110,20,116,0, - 124,0,106,1,100,3,131,2,114,50,116,3,100,4,131,1, - 130,1,124,1,100,1,117,0,114,68,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,4,0,0,0,114,110,0,0,0,114,150, - 0,0,0,114,80,0,0,0,114,18,0,0,0,114,17,0, - 0,0,114,149,0,0,0,169,2,114,96,0,0,0,114,97, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,16,109,111,100,117,108,101,95,102,114,111,109,95, - 115,112,101,99,53,2,0,0,115,20,0,0,0,4,3,12, - 1,14,3,12,1,8,1,8,2,10,1,10,1,4,1,255, - 128,114,153,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,14,100,2, - 110,4,124,0,106,0,125,1,124,0,106,1,100,1,117,0, - 114,64,124,0,106,2,100,1,117,0,114,50,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,84,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,101,0,0,0,114,102,0,0,0,114,103,0, - 0,0,114,104,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,17,0, - 0,0,114,114,0,0,0,114,110,0,0,0,114,46,0,0, - 0,114,124,0,0,0,41,2,114,96,0,0,0,114,17,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,108,0,0,0,70,2,0,0,115,18,0,0,0,20, - 3,10,1,10,1,10,1,14,2,6,2,14,1,16,2,255, - 128,114,108,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, - 252,0,0,0,124,0,106,0,125,2,116,1,124,2,131,1, - 143,218,1,0,116,2,106,3,160,4,124,2,161,1,124,1, - 117,1,114,54,100,1,160,5,124,2,161,1,125,3,116,6, - 124,3,124,2,100,2,141,2,130,1,122,132,124,0,106,7, - 100,3,117,0,114,106,124,0,106,8,100,3,117,0,114,90, - 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,52,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,146,124,0,106,7,160,11,124,2, - 161,1,1,0,110,12,124,0,106,7,160,12,124,1,161,1, - 1,0,87,0,116,2,106,3,160,13,124,0,106,0,161,1, - 125,1,124,1,116,2,106,3,124,0,106,0,60,0,110,28, - 116,2,106,3,160,13,124,0,106,0,161,1,125,1,124,1, - 116,2,106,3,124,0,106,0,60,0,48,0,87,0,100,3, - 4,0,4,0,131,3,1,0,124,1,83,0,49,0,115,238, - 48,0,1,0,1,0,1,0,89,0,1,0,124,1,83,0, - 41,8,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,16,0,0,0,78, - 250,14,109,105,115,115,105,110,103,32,108,111,97,100,101,114, - 84,114,144,0,0,0,114,151,0,0,0,41,14,114,17,0, - 0,0,114,51,0,0,0,114,15,0,0,0,114,93,0,0, - 0,114,35,0,0,0,114,46,0,0,0,114,80,0,0,0, - 114,110,0,0,0,114,117,0,0,0,114,149,0,0,0,114, - 4,0,0,0,218,11,108,111,97,100,95,109,111,100,117,108, - 101,114,151,0,0,0,218,3,112,111,112,41,4,114,96,0, - 0,0,114,97,0,0,0,114,17,0,0,0,218,3,109,115, - 103,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,94,0,0,0,87,2,0,0,115,44,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,14,4,14,2,14,4,14,1,14,255, - 26,1,4,1,16,255,4,1,255,128,114,94,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,18,1,0,0,122,18,124, - 0,106,0,160,1,124,0,106,2,161,1,1,0,87,0,110, - 46,1,0,1,0,1,0,124,0,106,2,116,3,106,4,118, - 0,114,64,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,140,122,12,124,0,106,0,124, - 1,95,7,87,0,110,18,4,0,116,8,121,138,1,0,1, - 0,1,0,89,0,110,2,48,0,116,6,124,1,100,2,100, - 0,131,3,100,0,117,0,114,216,122,40,124,1,106,9,124, - 1,95,10,116,11,124,1,100,3,131,2,115,194,124,0,106, - 2,160,12,100,4,161,1,100,5,25,0,124,1,95,10,87, - 0,110,18,4,0,116,8,121,214,1,0,1,0,1,0,89, - 0,110,2,48,0,116,6,124,1,100,6,100,0,131,3,100, - 0,117,0,144,1,114,14,122,12,124,0,124,1,95,13,87, - 0,124,1,83,0,4,0,116,8,144,1,121,12,1,0,1, - 0,1,0,89,0,124,1,83,0,48,0,124,1,83,0,41, - 7,78,114,99,0,0,0,114,146,0,0,0,114,142,0,0, - 0,114,129,0,0,0,114,22,0,0,0,114,106,0,0,0, - 41,14,114,110,0,0,0,114,156,0,0,0,114,17,0,0, - 0,114,15,0,0,0,114,93,0,0,0,114,157,0,0,0, - 114,6,0,0,0,114,99,0,0,0,114,107,0,0,0,114, - 1,0,0,0,114,146,0,0,0,114,4,0,0,0,114,130, - 0,0,0,114,106,0,0,0,114,152,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,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,117,2,0,0,115,62,0,0,0, - 2,4,18,1,6,1,12,1,14,1,12,1,2,1,14,3, - 12,1,16,1,2,1,12,1,12,1,6,1,16,1,2,1, - 8,4,10,1,22,1,12,1,6,1,18,1,2,1,8,1, - 4,3,14,254,2,1,4,1,2,255,4,1,255,128,114,159, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,11,0,0,0,67,0,0,0,115,212,0,0, - 0,124,0,106,0,100,0,117,1,114,30,116,1,124,0,106, - 0,100,1,131,2,115,30,116,2,124,0,131,1,83,0,116, - 3,124,0,131,1,125,1,100,2,124,0,95,4,122,158,124, - 1,116,5,106,6,124,0,106,7,60,0,122,50,124,0,106, - 0,100,0,117,0,114,94,124,0,106,8,100,0,117,0,114, - 106,116,9,100,3,124,0,106,7,100,4,141,2,130,1,124, - 0,106,0,160,10,124,1,161,1,1,0,87,0,110,40,1, - 0,1,0,1,0,122,14,116,5,106,6,124,0,106,7,61, - 0,87,0,130,0,4,0,116,11,121,148,1,0,1,0,1, - 0,89,0,130,0,48,0,116,5,106,6,160,12,124,0,106, - 7,161,1,125,1,124,1,116,5,106,6,124,0,106,7,60, - 0,116,13,100,5,124,0,106,7,124,0,106,0,131,3,1, - 0,87,0,100,6,124,0,95,4,124,1,83,0,100,6,124, - 0,95,4,48,0,41,7,78,114,151,0,0,0,84,114,155, - 0,0,0,114,16,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,14,114, - 110,0,0,0,114,4,0,0,0,114,159,0,0,0,114,153, - 0,0,0,90,13,95,105,110,105,116,105,97,108,105,122,105, - 110,103,114,15,0,0,0,114,93,0,0,0,114,17,0,0, - 0,114,117,0,0,0,114,80,0,0,0,114,151,0,0,0, - 114,64,0,0,0,114,157,0,0,0,114,77,0,0,0,114, - 152,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,14,95,108,111,97,100,95,117,110,108,111,99, - 107,101,100,154,2,0,0,115,54,0,0,0,10,2,12,2, - 8,1,8,2,6,5,2,1,12,1,2,1,10,1,10,1, - 14,1,16,3,6,1,2,1,12,1,2,3,12,254,2,1, - 2,1,2,255,14,6,12,1,18,1,6,2,4,2,8,254, - 255,128,114,160,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,24,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,40,48,0,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,51,0,0,0,114,17,0,0,0,114,160,0,0,0, - 169,1,114,96,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,95,0,0,0,196,2,0,0,115, - 6,0,0,0,12,9,42,1,255,128,114,95,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,22,0,0,0,100,1,124,0,106,0,155,2,100,2, - 116,1,106,2,155,0,100,3,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,8,60,109,111,100,117,108,101,32,122,2,32, - 40,122,2,41,62,78,41,3,114,1,0,0,0,114,162,0, - 0,0,114,139,0,0,0,169,1,114,97,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,100,0, - 0,0,222,2,0,0,115,4,0,0,0,22,7,255,128,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,12,100,0,83,0,116,0,160,1,124,1,161,1,114, - 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83, - 0,100,0,83,0,169,2,78,114,138,0,0,0,41,4,114, - 58,0,0,0,90,10,105,115,95,98,117,105,108,116,105,110, - 114,92,0,0,0,114,139,0,0,0,169,4,218,3,99,108, - 115,114,82,0,0,0,218,4,112,97,116,104,218,6,116,97, - 114,103,101,116,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,9,102,105,110,100,95,115,112,101,99,231,2, - 0,0,115,12,0,0,0,8,2,4,1,10,1,16,1,4, - 2,255,128,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,30,0,0,0,124,0,160,0, - 124,1,124,2,161,2,125,3,124,3,100,1,117,1,114,26, - 124,3,106,1,83,0,100,1,83,0,41,2,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,78,41,2, - 114,170,0,0,0,114,110,0,0,0,41,4,114,167,0,0, - 0,114,82,0,0,0,114,168,0,0,0,114,96,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 11,102,105,110,100,95,109,111,100,117,108,101,240,2,0,0, - 115,6,0,0,0,12,9,18,1,255,128,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,34,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,78,0,0,0,114,16,0,0,0,78,41,8,114,17,0, - 0,0,114,15,0,0,0,114,79,0,0,0,114,80,0,0, - 0,114,46,0,0,0,114,68,0,0,0,114,58,0,0,0, - 90,14,99,114,101,97,116,101,95,98,117,105,108,116,105,110, - 114,161,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,150,0,0,0,252,2,0,0,115,12,0, - 0,0,12,3,12,1,4,1,6,255,12,2,255,128,122,29, + 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,116, + 0,0,0,114,120,0,0,0,114,121,0,0,0,114,122,0, + 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, + 0,114,34,0,0,0,111,1,0,0,115,16,0,0,0,6, + 2,6,1,6,1,6,1,14,1,6,3,10,1,255,128,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,52,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,80, + 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,49,0, + 0,0,114,20,0,0,0,114,116,0,0,0,114,120,0,0, + 0,218,6,97,112,112,101,110,100,114,123,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,59,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 52,0,0,0,123,1,0,0,115,22,0,0,0,10,1,10, + 1,4,255,10,2,18,1,10,1,8,1,4,1,6,255,22, + 2,255,128,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,72,124,0, + 106,1,124,1,106,1,107,2,111,76,124,0,106,2,124,1, + 106,2,107,2,111,76,124,0,106,3,124,1,106,3,107,2, + 111,76,124,2,124,1,106,0,107,2,111,76,124,0,106,4, + 124,1,106,4,107,2,111,76,124,0,106,5,124,1,106,5, + 107,2,87,0,83,0,4,0,116,6,121,100,1,0,1,0, + 1,0,116,7,6,0,89,0,83,0,48,0,114,0,0,0, + 0,41,8,114,123,0,0,0,114,20,0,0,0,114,116,0, + 0,0,114,120,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,133,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,10,1,255,128,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, + 52,124,0,106,1,100,0,117,1,114,52,124,0,106,2,114, + 52,116,3,100,0,117,0,114,38,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,125,0,0,0,114,120,0, + 0,0,114,124,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,51, + 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, + 0,0,114,129,0,0,0,145,1,0,0,115,14,0,0,0, + 10,2,16,1,8,1,4,1,14,1,6,1,255,128,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,125,0,0,0,41,2,114,33,0,0,0,114,129,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,129,0,0,0,154,1,0,0,115,4,0,0,0,10,2, + 255,128,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,26,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, + 123,0,0,0,114,20,0,0,0,218,10,114,112,97,114,116, + 105,116,105,111,110,114,51,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,158,1,0,0,115,8,0,0,0,10,3,16,1,6,2, + 255,128,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,124,0,0,0,114,51,0,0,0,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,114,130,0,0,0,166,1, + 0,0,115,4,0,0,0,6,2,255,128,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,124,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, + 130,0,0,0,170,1,0,0,115,4,0,0,0,14,2,255, + 128,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,52,0,0, + 0,114,132,0,0,0,218,8,112,114,111,112,101,114,116,121, + 114,129,0,0,0,218,6,115,101,116,116,101,114,114,137,0, + 0,0,114,130,0,0,0,114,5,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,6,0,0,0,114,119,0,0,0, + 74,1,0,0,115,36,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,255,128,114,119,0, + 0,0,169,2,114,120,0,0,0,114,122,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,74,116,1,100,2,117,0,114,22,116,2, + 130,1,116,1,106,3,125,4,124,3,100,2,117,0,114,48, + 124,4,124,0,124,1,100,3,141,2,83,0,124,3,114,56, + 103,0,110,2,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,134,116,0, + 124,1,100,5,131,2,114,130,122,14,124,1,160,4,124,0, + 161,1,125,3,87,0,110,26,4,0,116,5,121,128,1,0, + 1,0,1,0,100,2,125,3,89,0,110,6,48,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,116,0,0, + 0,41,2,114,116,0,0,0,114,123,0,0,0,114,122,0, + 0,0,70,114,142,0,0,0,41,7,114,11,0,0,0,114, + 133,0,0,0,114,134,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,122,0,0,0,114,83,0,0,0,114,119,0,0, + 0,41,6,114,20,0,0,0,114,116,0,0,0,114,120,0, + 0,0,114,122,0,0,0,114,143,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,98,0,0,0,175,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,10, + 1,4,3,16,2,255,128,114,98,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,40,1,0,0,122,10,124,0,106,0, + 125,3,87,0,110,18,4,0,116,1,121,28,1,0,1,0, + 1,0,89,0,110,14,48,0,124,3,100,0,117,1,114,42, + 124,3,83,0,124,0,106,2,125,4,124,1,100,0,117,0, + 114,86,122,10,124,0,106,3,125,1,87,0,110,18,4,0, + 116,1,121,84,1,0,1,0,1,0,89,0,110,2,48,0, + 122,10,124,0,106,4,125,5,87,0,110,22,4,0,116,1, + 121,118,1,0,1,0,1,0,100,0,125,5,89,0,110,2, + 48,0,124,2,100,0,117,0,114,174,124,5,100,0,117,0, + 114,170,122,10,124,1,106,5,125,2,87,0,110,26,4,0, + 116,1,121,168,1,0,1,0,1,0,100,0,125,2,89,0, + 110,6,48,0,124,5,125,2,122,10,124,0,106,6,125,6, + 87,0,110,22,4,0,116,1,121,206,1,0,1,0,1,0, + 100,0,125,6,89,0,110,2,48,0,122,14,116,7,124,0, + 106,8,131,1,125,7,87,0,110,22,4,0,116,1,121,244, + 1,0,1,0,1,0,100,0,125,7,89,0,110,2,48,0, + 116,9,124,4,124,1,124,2,100,1,141,3,125,3,124,5, + 100,0,117,0,144,1,114,18,100,2,110,2,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,120,0,0,0,70,84,41,13, + 114,113,0,0,0,114,2,0,0,0,114,9,0,0,0,114, + 106,0,0,0,114,115,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,119, + 0,0,0,114,124,0,0,0,114,129,0,0,0,114,123,0, + 0,0,41,8,114,104,0,0,0,114,116,0,0,0,114,120, + 0,0,0,114,103,0,0,0,114,20,0,0,0,90,8,108, + 111,99,97,116,105,111,110,114,129,0,0,0,114,123,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,201,1,0,0,115,74,0,0,0,2,2,10,1, + 12,1,6,1,8,2,4,1,6,2,8,1,2,1,10,1, + 12,1,6,2,2,1,10,1,12,1,10,1,8,1,8,1, + 2,1,10,1,12,1,10,1,4,2,2,1,10,1,12,1, + 10,1,2,1,14,1,12,1,10,1,14,2,20,1,6,1, + 6,1,4,1,255,128,114,149,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,214,1,0,0,124,2,115,20,116,0,124,1,100,1, + 100,0,131,3,100,0,117,0,114,52,122,12,124,0,106,1, + 124,1,95,2,87,0,110,18,4,0,116,3,121,50,1,0, + 1,0,1,0,89,0,110,2,48,0,124,2,115,72,116,0, + 124,1,100,2,100,0,131,3,100,0,117,0,114,174,124,0, + 106,4,125,3,124,3,100,0,117,0,114,144,124,0,106,5, + 100,0,117,1,114,144,116,6,100,0,117,0,114,108,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,10,124,3,124,1,95,12,87,0, + 110,18,4,0,116,3,121,172,1,0,1,0,1,0,89,0, + 110,2,48,0,124,2,115,194,116,0,124,1,100,3,100,0, + 131,3,100,0,117,0,114,226,122,12,124,0,106,13,124,1, + 95,14,87,0,110,18,4,0,116,3,121,224,1,0,1,0, + 1,0,89,0,110,2,48,0,122,10,124,0,124,1,95,15, + 87,0,110,18,4,0,116,3,121,254,1,0,1,0,1,0, + 89,0,110,2,48,0,124,2,144,1,115,24,116,0,124,1, + 100,4,100,0,131,3,100,0,117,0,144,1,114,70,124,0, + 106,5,100,0,117,1,144,1,114,70,122,12,124,0,106,5, + 124,1,95,16,87,0,110,20,4,0,116,3,144,1,121,68, + 1,0,1,0,1,0,89,0,110,2,48,0,124,0,106,17, + 144,1,114,210,124,2,144,1,115,102,116,0,124,1,100,5, + 100,0,131,3,100,0,117,0,144,1,114,136,122,12,124,0, + 106,18,124,1,95,11,87,0,110,20,4,0,116,3,144,1, + 121,134,1,0,1,0,1,0,89,0,110,2,48,0,124,2, + 144,1,115,160,116,0,124,1,100,6,100,0,131,3,100,0, + 117,0,144,1,114,210,124,0,106,19,100,0,117,1,144,1, + 114,210,122,14,124,0,106,19,124,1,95,20,87,0,124,1, + 83,0,4,0,116,3,144,1,121,208,1,0,1,0,1,0, + 89,0,124,1,83,0,48,0,124,1,83,0,41,7,78,114, + 9,0,0,0,114,106,0,0,0,218,11,95,95,112,97,99, + 107,97,103,101,95,95,114,148,0,0,0,114,115,0,0,0, + 114,146,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,116,0,0,0, + 114,123,0,0,0,114,133,0,0,0,114,134,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,115,0,0,0,114,106,0,0,0,114,137,0,0,0, + 114,152,0,0,0,114,113,0,0,0,114,148,0,0,0,114, + 130,0,0,0,114,120,0,0,0,114,129,0,0,0,114,146, + 0,0,0,41,5,114,103,0,0,0,114,104,0,0,0,114, + 151,0,0,0,114,116,0,0,0,114,153,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,246,1,0,0,115,104,0,0,0,20,4,2,1,12,1, + 12,1,6,1,20,2,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, + 6,1,20,2,2,1,12,1,12,1,6,1,2,2,10,1, + 12,1,6,1,24,2,12,1,2,1,12,1,14,1,6,1, + 8,2,24,1,2,1,12,1,14,1,6,1,24,2,12,1, + 2,1,10,1,4,3,14,254,2,1,4,1,2,255,4,1, + 255,128,114,155,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,30,124,0,106,1,160,2,124,0,161,1,125, + 1,110,20,116,0,124,0,106,1,100,3,131,2,114,50,116, + 3,100,4,131,1,130,1,124,1,100,1,117,0,114,68,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,116, + 0,0,0,114,156,0,0,0,114,83,0,0,0,114,21,0, + 0,0,114,20,0,0,0,114,155,0,0,0,169,2,114,103, + 0,0,0,114,104,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,62,2,0,0,115,20,0, + 0,0,4,3,12,1,14,3,12,1,8,1,8,2,10,1, + 10,1,4,1,255,128,114,159,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,14,100,2,110,4,124,0,106,0,125,1,124,0,106, + 1,100,1,117,0,114,64,124,0,106,2,100,1,117,0,114, + 50,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,84,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,108,0,0,0,114,109,0, + 0,0,114,110,0,0,0,114,111,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,120,0,0,0,114,116,0,0, + 0,114,49,0,0,0,114,130,0,0,0,41,2,114,103,0, + 0,0,114,20,0,0,0,114,5,0,0,0,114,5,0,0, + 0,114,6,0,0,0,114,114,0,0,0,79,2,0,0,115, + 18,0,0,0,20,3,10,1,10,1,10,1,14,2,6,2, + 14,1,16,2,255,128,114,114,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,26,1,0,0,124,0,106,0,125,2,116, + 1,124,2,131,1,143,246,1,0,116,2,106,3,160,4,124, + 2,161,1,124,1,117,1,114,54,100,1,160,5,124,2,161, + 1,125,3,116,6,124,3,124,2,100,2,141,2,130,1,122, + 160,124,0,106,7,100,3,117,0,114,106,124,0,106,8,100, + 3,117,0,114,90,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,80,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,174,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,12,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, + 28,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,48,0,87,0,100, + 3,4,0,4,0,131,3,1,0,124,1,83,0,49,0,144, + 1,115,12,48,0,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,150,0,0,0,114,157,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,54, + 0,0,0,114,18,0,0,0,114,99,0,0,0,114,38,0, + 0,0,114,49,0,0,0,114,83,0,0,0,114,116,0,0, + 0,114,123,0,0,0,114,155,0,0,0,114,11,0,0,0, + 114,7,0,0,0,114,95,0,0,0,114,96,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,157,0,0,0, + 218,3,112,111,112,41,4,114,103,0,0,0,114,104,0,0, + 0,114,20,0,0,0,114,102,0,0,0,114,5,0,0,0, + 114,5,0,0,0,114,6,0,0,0,114,100,0,0,0,96, + 2,0,0,115,48,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,14,2,14,4,14,1,14,255,26,1, + 4,1,18,255,4,1,255,128,114,100,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,18,1,0,0,122,18,124,0,106, + 0,160,1,124,0,106,2,161,1,1,0,87,0,110,46,1, + 0,1,0,1,0,124,0,106,2,116,3,106,4,118,0,114, + 64,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,140,122,12,124,0,106,0,124,1,95, + 7,87,0,110,18,4,0,116,8,121,138,1,0,1,0,1, + 0,89,0,110,2,48,0,116,6,124,1,100,2,100,0,131, + 3,100,0,117,0,114,216,122,40,124,1,106,9,124,1,95, + 10,116,11,124,1,100,3,131,2,115,194,124,0,106,2,160, + 12,100,4,161,1,100,5,25,0,124,1,95,10,87,0,110, + 18,4,0,116,8,121,214,1,0,1,0,1,0,89,0,110, + 2,48,0,116,6,124,1,100,6,100,0,131,3,100,0,117, + 0,144,1,114,14,122,12,124,0,124,1,95,13,87,0,124, + 1,83,0,4,0,116,8,144,1,121,12,1,0,1,0,1, + 0,89,0,124,1,83,0,48,0,124,1,83,0,41,7,78, + 114,106,0,0,0,114,152,0,0,0,114,148,0,0,0,114, + 135,0,0,0,114,25,0,0,0,114,113,0,0,0,41,14, + 114,116,0,0,0,114,164,0,0,0,114,20,0,0,0,114, + 18,0,0,0,114,99,0,0,0,114,165,0,0,0,114,13, + 0,0,0,114,106,0,0,0,114,2,0,0,0,114,9,0, + 0,0,114,152,0,0,0,114,11,0,0,0,114,136,0,0, + 0,114,113,0,0,0,114,158,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,126,2,0,0,115,62,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,6,1,16,1,2,1,8,4, + 10,1,22,1,12,1,6,1,18,1,2,1,8,1,4,3, + 14,254,2,1,4,1,2,255,4,1,255,128,114,166,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,240,0,0,0,124, + 0,106,0,100,0,117,1,114,58,116,1,124,0,106,0,100, + 1,131,2,115,58,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,158,124,2,116,9,106,10,124, + 0,106,11,60,0,122,50,124,0,106,0,100,0,117,0,114, + 122,124,0,106,12,100,0,117,0,114,134,116,13,100,4,124, + 0,106,11,100,5,141,2,130,1,124,0,106,0,160,14,124, + 2,161,1,1,0,87,0,110,40,1,0,1,0,1,0,122, + 14,116,9,106,10,124,0,106,11,61,0,87,0,130,0,4, + 0,116,15,121,176,1,0,1,0,1,0,89,0,130,0,48, + 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,48,0,41, + 8,78,114,157,0,0,0,114,162,0,0,0,84,114,161,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,116, + 0,0,0,114,11,0,0,0,114,7,0,0,0,114,95,0, + 0,0,114,96,0,0,0,114,163,0,0,0,114,166,0,0, + 0,114,159,0,0,0,90,13,95,105,110,105,116,105,97,108, + 105,122,105,110,103,114,18,0,0,0,114,99,0,0,0,114, + 20,0,0,0,114,123,0,0,0,114,83,0,0,0,114,157, + 0,0,0,114,67,0,0,0,114,165,0,0,0,114,80,0, + 0,0,41,3,114,103,0,0,0,114,102,0,0,0,114,104, + 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,162,2,0,0,115,58,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,16,3,6,1,2,1,12,1,2,3,12, + 254,2,1,2,1,2,255,14,6,12,1,18,1,6,2,4, + 2,8,254,255,128,114,167,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,24,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,40,48,0, + 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,54,0,0,0,114,20,0,0,0,114,167, + 0,0,0,169,1,114,103,0,0,0,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,114,101,0,0,0,207,2, + 0,0,115,6,0,0,0,12,9,42,1,255,128,114,101,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,22,0,0,0,100,1,124,0,106,0,155, + 2,100,2,116,1,106,2,155,0,100,3,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,8,60,109,111,100,117,108,101,32, + 122,2,32,40,122,2,41,62,78,41,3,114,9,0,0,0, + 114,169,0,0,0,114,145,0,0,0,169,1,114,104,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,107,0,0,0,233,2,0,0,115,4,0,0,0,22,7, + 255,128,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,12,100,0,83,0,116,0,160,1,124,1, + 161,1,114,38,116,2,124,1,124,0,124,0,106,3,100,1, + 141,3,83,0,100,0,83,0,169,2,78,114,144,0,0,0, + 41,4,114,61,0,0,0,90,10,105,115,95,98,117,105,108, + 116,105,110,114,98,0,0,0,114,145,0,0,0,169,4,218, + 3,99,108,115,114,85,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,242,2,0,0,115,12,0,0,0,8,2,4,1,10,1, + 16,1,4,2,255,128,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,30,0,0,0,124, + 0,160,0,124,1,124,2,161,2,125,3,124,3,100,1,117, + 1,114,26,124,3,106,1,83,0,100,1,83,0,41,2,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, + 78,41,2,114,177,0,0,0,114,116,0,0,0,41,4,114, + 174,0,0,0,114,85,0,0,0,114,175,0,0,0,114,103, + 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,251, + 2,0,0,115,6,0,0,0,12,9,18,1,255,128,122,27, 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,68,0,0,0,114,58,0, - 0,0,90,12,101,120,101,99,95,98,117,105,108,116,105,110, - 114,164,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,151,0,0,0,4,3,0,0,115,4,0, - 0,0,16,3,255,128,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,115,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,10,0,0,0,169,2,114,167,0,0,0,114, - 82,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,8,103,101,116,95,99,111,100,101,9,3,0, - 0,115,4,0,0,0,4,4,255,128,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,115,4,0, - 0,0,100,1,83,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,10,0,0,0,114,172,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,10,103,101, - 116,95,115,111,117,114,99,101,15,3,0,0,115,4,0,0, - 0,4,4,255,128,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,115,4,0,0,0,100, - 1,83,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,10,0, - 0,0,114,172,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,116,0,0,0,21,3,0,0,115, + 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,34,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,81,0,0,0,114,19,0,0,0,78,41,8, + 114,20,0,0,0,114,18,0,0,0,114,82,0,0,0,114, + 83,0,0,0,114,49,0,0,0,114,71,0,0,0,114,61, + 0,0,0,90,14,99,114,101,97,116,101,95,98,117,105,108, + 116,105,110,114,168,0,0,0,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,156,0,0,0,7,3,0,0, + 115,12,0,0,0,12,3,12,1,4,1,6,255,12,2,255, + 128,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,71,0,0,0, + 114,61,0,0,0,90,12,101,120,101,99,95,98,117,105,108, + 116,105,110,114,171,0,0,0,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,157,0,0,0,15,3,0,0, + 115,4,0,0,0,16,3,255,128,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,115, + 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,174,0, + 0,0,114,85,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, + 20,3,0,0,115,4,0,0,0,4,4,255,128,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, + 115,4,0,0,0,100,1,83,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,179,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,26,3,0,0,115, 4,0,0,0,4,4,255,128,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,41,2,78,78,41,1,78,41,18,114,1,0, - 0,0,114,0,0,0,0,114,2,0,0,0,114,3,0,0, - 0,114,139,0,0,0,218,12,115,116,97,116,105,99,109,101, - 116,104,111,100,114,100,0,0,0,218,11,99,108,97,115,115, - 109,101,116,104,111,100,114,170,0,0,0,114,171,0,0,0, - 114,150,0,0,0,114,151,0,0,0,114,87,0,0,0,114, - 173,0,0,0,114,174,0,0,0,114,116,0,0,0,114,98, - 0,0,0,114,156,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,162,0,0, - 0,211,2,0,0,115,48,0,0,0,8,0,4,2,4,7, - 2,2,10,1,2,8,12,1,2,8,12,1,2,11,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,255,128,114,162,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,16,0,0,0,100,1,160,0,124,0,106,1,116,2,106, - 3,161,2,83,0,41,3,114,163,0,0,0,114,154,0,0, - 0,78,41,4,114,46,0,0,0,114,1,0,0,0,114,177, - 0,0,0,114,139,0,0,0,41,1,218,1,109,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,100,0,0, - 0,41,3,0,0,115,4,0,0,0,16,7,255,128,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,26,116,2,124,1,124,0,124,0,106,3,100,1,141, - 3,83,0,100,0,83,0,114,165,0,0,0,41,4,114,58, - 0,0,0,114,89,0,0,0,114,92,0,0,0,114,139,0, - 0,0,114,166,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,170,0,0,0,50,3,0,0,115, - 8,0,0,0,10,2,16,1,4,2,255,128,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,3,0,0,0,67,0,0,0,115, - 18,0,0,0,116,0,160,1,124,1,161,1,114,14,124,0, - 83,0,100,1,83,0,41,2,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,78,41,2,114,58,0,0,0,114, - 89,0,0,0,41,3,114,167,0,0,0,114,82,0,0,0, - 114,168,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,171,0,0,0,57,3,0,0,115,4,0, - 0,0,18,7,255,128,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,115,4,0,0,0, - 100,1,83,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,10,0,0,0,114,161,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,150,0,0, - 0,66,3,0,0,115,4,0,0,0,4,0,255,128,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,36,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,88,0,0,0,41, - 10,114,106,0,0,0,114,17,0,0,0,114,58,0,0,0, - 114,89,0,0,0,114,80,0,0,0,114,46,0,0,0,114, - 68,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,7,0, - 0,0,41,3,114,97,0,0,0,114,17,0,0,0,218,4, - 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,151,0,0,0,70,3,0,0,115,16,0,0, - 0,8,2,10,1,10,1,2,1,6,255,12,2,16,1,255, + 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,115,4,0, + 0,0,100,1,83,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,179,0,0,0,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,114,122,0,0,0,32,3, + 0,0,115,4,0,0,0,4,4,255,128,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,41,2,78,78,41,1,78,41,18, + 114,9,0,0,0,114,8,0,0,0,114,1,0,0,0,114, + 10,0,0,0,114,145,0,0,0,218,12,115,116,97,116,105, + 99,109,101,116,104,111,100,114,107,0,0,0,218,11,99,108, + 97,115,115,109,101,116,104,111,100,114,177,0,0,0,114,178, + 0,0,0,114,156,0,0,0,114,157,0,0,0,114,90,0, + 0,0,114,180,0,0,0,114,181,0,0,0,114,122,0,0, + 0,114,105,0,0,0,114,164,0,0,0,114,5,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 169,0,0,0,222,2,0,0,115,48,0,0,0,8,0,4, + 2,4,7,2,2,10,1,2,8,12,1,2,8,12,1,2, + 11,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,255,128,114,169,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,16,0,0,0,100,1,160,0,124,0,106,1, + 116,2,106,3,161,2,83,0,41,3,114,170,0,0,0,114, + 160,0,0,0,78,41,4,114,49,0,0,0,114,9,0,0, + 0,114,184,0,0,0,114,145,0,0,0,41,1,218,1,109, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 107,0,0,0,52,3,0,0,115,4,0,0,0,16,7,255, 128,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, + 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,26,116,2,124,1,124,0,124,0,106,3, + 100,1,141,3,83,0,100,0,83,0,114,172,0,0,0,41, + 4,114,61,0,0,0,114,92,0,0,0,114,98,0,0,0, + 114,145,0,0,0,114,173,0,0,0,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,114,177,0,0,0,61,3, + 0,0,115,8,0,0,0,10,2,16,1,4,2,255,128,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,3,0,0,0,67,0, + 0,0,115,18,0,0,0,116,0,160,1,124,1,161,1,114, + 14,124,0,83,0,100,1,83,0,41,2,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,78,41,2,114,61,0, + 0,0,114,92,0,0,0,41,3,114,174,0,0,0,114,85, + 0,0,0,114,175,0,0,0,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,178,0,0,0,68,3,0,0, + 115,4,0,0,0,18,7,255,128,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,115,4, + 0,0,0,100,1,83,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,168,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 156,0,0,0,77,3,0,0,115,4,0,0,0,4,0,255, + 128,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,36,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,91,0, + 0,0,41,10,114,113,0,0,0,114,20,0,0,0,114,61, + 0,0,0,114,92,0,0,0,114,83,0,0,0,114,49,0, + 0,0,114,71,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,104,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,157,0,0,0,81,3,0,0,115, + 16,0,0,0,8,2,10,1,10,1,2,1,6,255,12,2, + 16,1,255,128,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,105, + 0,0,0,114,179,0,0,0,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,164,0,0,0,90,3,0,0, + 115,4,0,0,0,10,8,255,128,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,115,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,61,0,0,0,114,186,0,0,0,114,179,0,0,0, + 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, + 180,0,0,0,100,3,0,0,115,4,0,0,0,10,4,255, + 128,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,115,4,0,0,0,100,1,83,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,179,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,181,0,0,0,106,3,0,0,115,4,0,0,0,4,4, + 255,128,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,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,98,0,0,0, - 114,172,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,156,0,0,0,79,3,0,0,115,4,0, - 0,0,10,7,255,128,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,115,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,58, - 0,0,0,114,179,0,0,0,114,172,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,173,0,0, - 0,88,3,0,0,115,4,0,0,0,10,4,255,128,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, - 115,4,0,0,0,100,1,83,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,10,0,0,0,114,172,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,174,0, - 0,0,94,3,0,0,115,4,0,0,0,4,4,255,128,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,115,10,0,0,0,116,0,160,1,124,1,161,1, - 83,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,58,0,0,0,90,17,105,115, - 95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,114, - 172,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,116,0,0,0,100,3,0,0,115,4,0,0, - 0,10,4,255,128,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, - 41,2,78,78,41,1,78,41,17,114,1,0,0,0,114,0, - 0,0,0,114,2,0,0,0,114,3,0,0,0,114,139,0, - 0,0,114,175,0,0,0,114,100,0,0,0,114,176,0,0, - 0,114,170,0,0,0,114,171,0,0,0,114,150,0,0,0, - 114,151,0,0,0,114,156,0,0,0,114,91,0,0,0,114, - 173,0,0,0,114,174,0,0,0,114,116,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,177,0,0,0,30,3,0,0,115,50,0,0,0, - 8,0,4,2,4,7,2,2,10,1,2,8,12,1,2,6, - 12,1,2,8,10,1,2,3,10,1,2,8,10,1,2,8, - 2,1,12,1,2,4,2,1,12,1,2,4,2,1,16,1, - 255,128,114,177,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, + 0,0,67,0,0,0,115,10,0,0,0,116,0,160,1,124, + 1,161,1,83,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,61,0,0,0,90, + 17,105,115,95,102,114,111,122,101,110,95,112,97,99,107,97, + 103,101,114,179,0,0,0,114,5,0,0,0,114,5,0,0, + 0,114,6,0,0,0,114,122,0,0,0,112,3,0,0,115, + 4,0,0,0,10,4,255,128,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,41,2,78,78,41,1,78,41,17,114,9,0,0, + 0,114,8,0,0,0,114,1,0,0,0,114,10,0,0,0, + 114,145,0,0,0,114,182,0,0,0,114,107,0,0,0,114, + 183,0,0,0,114,177,0,0,0,114,178,0,0,0,114,156, + 0,0,0,114,157,0,0,0,114,164,0,0,0,114,94,0, + 0,0,114,180,0,0,0,114,181,0,0,0,114,122,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,114,184,0,0,0,41,3,0,0,115,50, + 0,0,0,8,0,4,2,4,7,2,2,10,1,2,8,12, + 1,2,6,12,1,2,8,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,255,128,114,184,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,115,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,61,0, + 0,0,114,62,0,0,0,114,51,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,6,0,0,0,114,58,0,0,0, + 125,3,0,0,115,4,0,0,0,12,2,255,128,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,115,12,0,0,0,116,0,160,1,161,0,1, + 0,100,1,83,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, - 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,115,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,58,0,0,0,114, - 59,0,0,0,114,48,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,55,0,0,0,113,3,0, - 0,115,4,0,0,0,12,2,255,128,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,115,12,0,0,0,116,0,160,1,161,0,1,0,100,1, - 83,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,58,0,0,0,114,61,0,0,0,41, - 4,114,30,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,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,57,0,0,0,117,3, - 0,0,115,4,0,0,0,12,2,255,128,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,1,0,0,0, - 114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,114, - 55,0,0,0,114,57,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,182,0, - 0,0,109,3,0,0,115,10,0,0,0,8,0,4,2,8, - 2,12,4,255,128,114,182,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,36,116,2,100,3,131,1,130,1,124,3,100,4, - 25,0,125,4,124,0,114,60,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,129, - 0,0,0,114,39,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,22,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,80,0,0,0,114,46,0, - 0,0,41,5,114,17,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,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,13,95,114,101,115,111,108,118,101,95,110, - 97,109,101,122,3,0,0,115,12,0,0,0,16,2,12,1, - 8,1,8,1,20,1,255,128,114,191,0,0,0,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,34,0,0,0,124,0,160,0,124, - 1,124,2,161,2,125,3,124,3,100,0,117,0,114,24,100, - 0,83,0,116,1,124,1,124,3,131,2,83,0,114,13,0, - 0,0,41,2,114,171,0,0,0,114,92,0,0,0,41,4, - 218,6,102,105,110,100,101,114,114,17,0,0,0,114,168,0, - 0,0,114,110,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,17,95,102,105,110,100,95,115,112, - 101,99,95,108,101,103,97,99,121,131,3,0,0,115,10,0, - 0,0,12,3,8,1,4,1,10,1,255,128,114,193,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,28,1,0,0,116, - 0,106,1,125,3,124,3,100,1,117,0,114,22,116,2,100, - 2,131,1,130,1,124,3,115,38,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,226,125,5,116,7,131,0,143,94,1,0,122, - 10,124,5,106,8,125,6,87,0,110,54,4,0,116,9,121, - 128,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,124,89,0,87,0,100, - 1,4,0,4,0,131,3,1,0,113,52,89,0,110,14,48, - 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,16,49,0,115,162,48, - 0,1,0,1,0,1,0,89,0,1,0,124,7,100,1,117, - 1,114,52,124,4,144,1,115,16,124,0,116,0,106,6,118, - 0,144,1,114,16,116,0,106,6,124,0,25,0,125,8,122, - 10,124,8,106,11,125,9,87,0,110,26,4,0,116,9,121, - 244,1,0,1,0,1,0,124,7,6,0,89,0,2,0,1, - 0,83,0,48,0,124,9,100,1,117,0,144,1,114,8,124, - 7,2,0,1,0,83,0,124,9,2,0,1,0,83,0,124, - 7,2,0,1,0,83,0,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,15,0,0,0,218,9,109,101,116, - 97,95,112,97,116,104,114,80,0,0,0,218,9,95,119,97, - 114,110,105,110,103,115,218,4,119,97,114,110,218,13,73,109, - 112,111,114,116,87,97,114,110,105,110,103,114,93,0,0,0, - 114,182,0,0,0,114,170,0,0,0,114,107,0,0,0,114, - 193,0,0,0,114,106,0,0,0,41,10,114,17,0,0,0, - 114,168,0,0,0,114,169,0,0,0,114,194,0,0,0,90, - 9,105,115,95,114,101,108,111,97,100,114,192,0,0,0,114, - 170,0,0,0,114,96,0,0,0,114,97,0,0,0,114,106, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,10,95,102,105,110,100,95,115,112,101,99,140,3, - 0,0,115,56,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,22,1,42,2,8,1,18,2,10,1,2,1,10,1,12, - 1,14,4,10,2,8,1,8,2,8,2,4,2,255,128,114, - 198,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,28,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,44,116,5,100,3,131,1,130,1,124,2, - 100,2,107,4,114,82,116,0,124,1,116,1,131,2,115,70, - 116,2,100,4,131,1,130,1,124,1,115,82,116,6,100,5, - 131,1,130,1,124,0,115,106,124,2,100,2,107,2,114,102, - 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,22,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, + 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,61,0,0,0,114,64,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,60,0,0, + 0,129,3,0,0,115,4,0,0,0,12,2,255,128,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,58,0,0,0,114,60,0,0,0,114,5,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 114,189,0,0,0,121,3,0,0,115,10,0,0,0,8,0, + 4,2,8,2,12,4,255,128,114,189,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,36,116,2,100,3,131,1,130,1,124, + 3,100,4,25,0,125,4,124,0,114,60,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,135,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,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,46,0,0,0,114,14,0,0,0,218, - 10,86,97,108,117,101,69,114,114,111,114,114,80,0,0,0, - 169,3,114,17,0,0,0,114,189,0,0,0,114,190,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,13,95,115,97,110,105,116,121,95,99,104,101,99,107,187, - 3,0,0,115,26,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, - 255,128,114,204,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,20,1,0,0,100,0,125, - 2,124,0,160,0,100,1,161,1,100,2,25,0,125,3,124, - 3,114,128,124,3,116,1,106,2,118,1,114,42,116,3,124, - 1,124,3,131,2,1,0,124,0,116,1,106,2,118,0,114, - 62,116,1,106,2,124,0,25,0,83,0,116,1,106,2,124, - 3,25,0,125,4,122,10,124,4,106,4,125,2,87,0,110, - 44,4,0,116,5,121,126,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,48,0,116,9,124, - 0,124,2,131,2,125,6,124,6,100,0,117,0,114,164,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,144,1,114,16,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,18,116,11,124,4,124,8,124, - 7,131,3,1,0,87,0,124,7,83,0,4,0,116,5,144, - 1,121,14,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,48,0,124,7,83, - 0,41,8,78,114,129,0,0,0,114,22,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,16,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,130,0,0,0,114,15,0,0,0,114,93, - 0,0,0,114,68,0,0,0,114,142,0,0,0,114,107,0, - 0,0,218,8,95,69,82,82,95,77,83,71,114,46,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,198,0,0,0,114,160,0,0,0, - 114,5,0,0,0,114,195,0,0,0,114,196,0,0,0,114, - 197,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112, - 111,114,116,95,114,168,0,0,0,114,131,0,0,0,90,13, - 112,97,114,101,110,116,95,109,111,100,117,108,101,114,158,0, - 0,0,114,96,0,0,0,114,97,0,0,0,90,5,99,104, - 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,23,95,102,105,110,100,95,97,110,100,95,108,111, - 97,100,95,117,110,108,111,99,107,101,100,206,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,16,1,10,1, - 8,1,18,1,8,2,6,1,10,2,14,1,2,1,14,1, - 4,4,14,253,16,1,14,1,4,1,2,255,4,1,255,128, - 114,209,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,62,1,0,116,1,106, - 2,160,3,124,0,116,4,161,2,125,2,124,2,116,4,117, - 0,114,56,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,16,49,0,115,76,48,0,1, - 0,1,0,1,0,89,0,1,0,124,2,100,1,117,0,114, - 116,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,16,0,0,0, - 41,9,114,51,0,0,0,114,15,0,0,0,114,93,0,0, - 0,114,35,0,0,0,218,14,95,78,69,69,68,83,95,76, - 79,65,68,73,78,71,114,209,0,0,0,114,46,0,0,0, - 114,207,0,0,0,114,66,0,0,0,41,4,114,17,0,0, - 0,114,208,0,0,0,114,97,0,0,0,114,76,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 14,95,102,105,110,100,95,97,110,100,95,108,111,97,100,241, - 3,0,0,115,24,0,0,0,10,2,14,1,8,1,54,1, - 8,2,4,1,2,1,4,255,12,2,8,2,4,1,255,128, - 114,211,0,0,0,114,22,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,32,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,22,0,0,0, - 78,41,4,114,204,0,0,0,114,191,0,0,0,114,211,0, - 0,0,218,11,95,103,99,100,95,105,109,112,111,114,116,114, - 203,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,212,0,0,0,1,4,0,0,115,10,0,0, - 0,12,9,8,1,12,1,10,1,255,128,114,212,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,216,0,0,0,124,1,68,0,93, - 204,125,4,116,0,124,4,116,1,131,2,115,64,124,3,114, - 34,124,0,106,2,100,1,23,0,125,5,110,4,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,106,124,3,115,4,116,5,124,0,100,6,131,2,114, - 4,116,6,124,0,124,0,106,7,124,2,100,7,100,8,141, - 4,1,0,113,4,116,5,124,0,124,4,131,2,115,4,100, - 9,160,8,124,0,106,2,124,4,161,2,125,6,122,14,116, - 9,124,2,124,6,131,2,1,0,87,0,113,4,4,0,116, - 10,121,214,1,0,125,7,1,0,122,42,124,7,106,11,124, - 6,107,2,114,200,116,12,106,13,160,14,124,6,116,15,161, - 2,100,10,117,1,114,200,87,0,89,0,100,10,125,7,126, - 7,113,4,130,0,100,10,125,7,126,7,48,0,124,0,83, - 0,48,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,