From cd44e3b514fff98d6f38149fb6ea911653ba6dbd Mon Sep 17 00:00:00 2001 From: Fabio Zadrozny Date: Thu, 17 Oct 2019 17:34:42 -0300 Subject: [PATCH] Support Python 3.8. Fixes #1845 (#1855) --- .travis.yml | 2 +- src/ptvsd/_vendored/pydevd/.travis.yml | 89 +++++++----------- .../pydevd/.travis_install_python_deps.sh | 17 +++- .../pydevd_collect_try_except_info.py | 21 +++-- .../pydevd/_pydevd_bundle/pydevd_constants.py | 2 + .../pydevd/_pydevd_bundle/pydevd_cython.c | 56 ++++++++--- .../pydevd/_pydevd_bundle/pydevd_filtering.py | 5 +- .../pydevd/_pydevd_bundle/pydevd_reload.py | 2 +- .../pydevd_frame_evaluator.c | 52 +++++++--- .../pydevd_modify_bytecode.py | 16 +++- .../pydevd_attach_to_process/attach_amd64.dll | Bin 468480 -> 468480 bytes .../attach_linux_amd64.so | Bin 21672 -> 21680 bytes .../attach_linux_x86.so | Bin 20708 -> 20732 bytes .../pydevd_attach_to_process/attach_x86.dll | Bin 356864 -> 356864 bytes .../pydevd_attach_to_process/attach_x86.dylib | Bin 19216 -> 19216 bytes .../attach_x86_64.dylib | Bin 19408 -> 19408 bytes .../common/py_settrace.hpp | 4 +- .../common/py_settrace_37.hpp | 2 +- .../common/py_version.hpp | 4 +- .../pydevd_attach_to_process/common/python.h | 68 ++++++++++++- src/ptvsd/_vendored/pydevd/pydevd_tracing.py | 2 +- src/ptvsd/_vendored/pydevd/setup_cython.py | 43 +++++++-- .../_vendored/pydevd/tests/test_pyserver.py | 48 +++++----- .../pydevd/tests/test_simpleTipper.py | 17 +++- .../test_collect_try_except_info.py | 17 +++- .../tests_python/test_pydevd_filtering.py | 5 + .../pydevd/tests_python/test_utilities.py | 13 +++ tests/ptvsd/server/test_breakpoints.py | 19 +++- 28 files changed, 355 insertions(+), 149 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98625797..b589ffd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,10 @@ sudo: required cache: pip python: - "2.7" - - "3.4" - "3.5" - "3.6" - "3.7" + - "3.8-dev" stages: - lint diff --git a/src/ptvsd/_vendored/pydevd/.travis.yml b/src/ptvsd/_vendored/pydevd/.travis.yml index 6f44e74b..84610aa8 100644 --- a/src/ptvsd/_vendored/pydevd/.travis.yml +++ b/src/ptvsd/_vendored/pydevd/.travis.yml @@ -30,73 +30,54 @@ matrix: - PYDEVD_USE_CYTHON=NO - PYDEVD_TEST_VM=PYPY - # Python 2.6 (with and without cython) + # Python 2.6 - python: 2.7 env: - PYDEVD_PYTHON_VERSION=2.6 - PYDEVD_USE_CYTHON=NO - PYDEVD_TEST_VM=CPYTHON -# - python: 2.7 -# env: -# - PYDEVD_PYTHON_VERSION=2.6 -# - PYDEVD_USE_CYTHON=YES -# - PYDEVD_TEST_VM=CPYTHON - # Python 2.7 (with and without cython) -# - python: 2.7 -# env: -# - PYDEVD_PYTHON_VERSION=2.7 -# - PYDEVD_USE_CYTHON=NO -# - PYDEVD_TEST_VM=CPYTHON + # Python 2.7 - python: 2.7 env: - PYDEVD_PYTHON_VERSION=2.7 - PYDEVD_USE_CYTHON=YES - PYDEVD_TEST_VM=CPYTHON - # Python 3.5 (with and without cython) -# - python: 2.7 -# env: -# - PYDEVD_PYTHON_VERSION=3.5 -# - PYDEVD_USE_CYTHON=NO -# - PYDEVD_TEST_VM=CPYTHON - - python: 2.7 - env: - - PYDEVD_PYTHON_VERSION=3.5 - - PYDEVD_USE_CYTHON=YES - - PYDEVD_TEST_VM=CPYTHON + # Python 3.5 (no longer tested by default). + # - python: 2.7 + # env: + # - PYDEVD_PYTHON_VERSION=3.5 + # - PYDEVD_USE_CYTHON=YES + # - PYDEVD_TEST_VM=CPYTHON - # Python 3.6 (with and without cython) + # Python 3.6 - python: 2.7 env: - PYDEVD_PYTHON_VERSION=3.6 - PYDEVD_USE_CYTHON=NO - PYDEVD_TEST_VM=CPYTHON -# - python: 2.7 -# env: -# - PYDEVD_PYTHON_VERSION=3.6 -# - PYDEVD_USE_CYTHON=YES -# - PYDEVD_TEST_VM=CPYTHON - # Python 3.7 (with and without cython) -# - python: 2.7 -# env: -# - PYDEVD_PYTHON_VERSION=3.7 -# - PYDEVD_USE_CYTHON=NO -# - PYDEVD_TEST_VM=CPYTHON + # Python 3.7 - python: 2.7 env: - PYDEVD_PYTHON_VERSION=3.7 - PYDEVD_USE_CYTHON=YES - PYDEVD_TEST_VM=CPYTHON + + - python: 3.8-dev + env: + - PYDEVD_PYTHON_VERSION=3.8 + - PYDEVD_USE_CYTHON=YES + - PYDEVD_TEST_VM=CPYTHON before_install: # CPython / Pypy setup - - if [[ "$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY" ]]; then wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh; fi - - if [[ "$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY" ]]; then chmod +x miniconda.sh; fi - - if [[ "$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY" ]]; then ./miniconda.sh -b; fi - - if [[ "$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY" ]]; then export PATH=/home/travis/miniconda2/bin:$PATH; fi - - if [[ "$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY" ]]; then conda update --yes conda; fi + - if [[ ("$PYDEVD_PYTHON_VERSION" != "3.8") && ("$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY") ]]; then wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh; fi + - if [[ ("$PYDEVD_PYTHON_VERSION" != "3.8") && ("$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY") ]]; then chmod +x miniconda.sh; fi + - if [[ ("$PYDEVD_PYTHON_VERSION" != "3.8") && ("$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY") ]]; then ./miniconda.sh -b; fi + - if [[ ("$PYDEVD_PYTHON_VERSION" != "3.8") && ("$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY") ]]; then export PATH=/home/travis/miniconda2/bin:$PATH; fi + - if [[ ("$PYDEVD_PYTHON_VERSION" != "3.8") && ("$PYDEVD_TEST_VM" == "CPYTHON" || "$PYDEVD_TEST_VM" == "PYPY") ]]; then conda update --yes conda; fi # Jython setup - if [ "$PYDEVD_TEST_VM" == "JYTHON" ]; then wget $JYTHON_URL -O jython_installer.jar; java -jar jython_installer.jar -s -d $HOME/jython; export PATH=$HOME/jython:$HOME/jython/bin:$PATH; fi - if [ "$PYDEVD_TEST_VM" == "JYTHON" ]; then jython -c "print('')"; fi @@ -107,20 +88,21 @@ install: - sudo sysctl kernel.yama.ptrace_scope=0 # Both - export PYTHONPATH=. - # CPython setup - - if [ "$PYDEVD_TEST_VM" == "CPYTHON" ]; then conda create --yes -n build_env python=$PYDEVD_PYTHON_VERSION; fi - - if [ "$PYDEVD_TEST_VM" == "CPYTHON" ]; then source activate build_env; fi - - if [ "$PYDEVD_TEST_VM" == "CPYTHON" ]; then chmod +x ./.travis_install_python_deps.sh; fi - - if [ "$PYDEVD_TEST_VM" == "CPYTHON" ]; then ./.travis_install_python_deps.sh; fi - - if [ "$PYDEVD_TEST_VM" == "CPYTHON" ]; then source activate build_env; python build_tools/build.py; fi + # CPython setup (Note that for CPython 3.8 we'll use the system-installed version for now). + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON" && "$PYDEVD_PYTHON_VERSION" != "3.8") ]]; then conda create --yes -n build_env python=$PYDEVD_PYTHON_VERSION; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON" && "$PYDEVD_PYTHON_VERSION" != "3.8") ]]; then source activate build_env; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") ]]; then chmod +x ./.travis_install_python_deps.sh; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") ]]; then ./.travis_install_python_deps.sh; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") ]]; then python build_tools/build.py; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON" && "$PYDEVD_PYTHON_VERSION" != "3.8") ]]; then source activate build_env; python build_tools/build.py; fi # Pypy setup - - if [ "$PYDEVD_TEST_VM" == "PYPY" ]; then conda create --yes -n build_env -c conda-forge pypy3.6; fi - - if [ "$PYDEVD_TEST_VM" == "PYPY" ]; then source activate build_env; fi - - if [ "$PYDEVD_TEST_VM" == "PYPY" ]; then chmod +x ./.travis_install_pypy_deps.sh; fi - - if [ "$PYDEVD_TEST_VM" == "PYPY" ]; then ./.travis_install_pypy_deps.sh; fi + - if [[ "$PYDEVD_TEST_VM" == "PYPY" ]]; then conda create --yes -n build_env -c conda-forge pypy3.6; fi + - if [[ "$PYDEVD_TEST_VM" == "PYPY" ]]; then source activate build_env; fi + - if [[ "$PYDEVD_TEST_VM" == "PYPY" ]]; then chmod +x ./.travis_install_pypy_deps.sh; fi + - if [[ "$PYDEVD_TEST_VM" == "PYPY" ]]; then ./.travis_install_pypy_deps.sh; fi # Jython setup - - if [ "$PYDEVD_TEST_VM" == "JYTHON" ]; then chmod +x ./.travis_install_jython_deps.sh; fi - - if [ "$PYDEVD_TEST_VM" == "JYTHON" ]; then ./.travis_install_jython_deps.sh; fi + - if [[ "$PYDEVD_TEST_VM" == "JYTHON" ]]; then chmod +x ./.travis_install_jython_deps.sh; fi + - if [[ "$PYDEVD_TEST_VM" == "JYTHON" ]]; then ./.travis_install_jython_deps.sh; fi # Run test # On local machine with jython: c:\bin\jython2.7.0\bin\jython.exe -Dpython.path=.;jython_test_deps/ant.jar;jython_test_deps/junit.jar -m pytest @@ -128,7 +110,8 @@ install: script: # pytest-xdist not available for python == 2.6 and timing out without output with 2.7 - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") && ("$PYDEVD_PYTHON_VERSION" == "2.6" || "$PYDEVD_PYTHON_VERSION" == "2.7") ]]; then source activate build_env; python -m pytest; fi - - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") && ("$PYDEVD_PYTHON_VERSION" != "2.6" && "$PYDEVD_PYTHON_VERSION" != "2.7") ]]; then source activate build_env; python -m pytest -n auto; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") && ("$PYDEVD_PYTHON_VERSION" != "2.6" && "$PYDEVD_PYTHON_VERSION" != "2.7" && "$PYDEVD_PYTHON_VERSION" != "3.8") ]]; then source activate build_env; python -m pytest -n auto; fi + - if [[ ("$PYDEVD_TEST_VM" == "CPYTHON") && ("$PYDEVD_PYTHON_VERSION" == "3.8") ]]; then python -m pytest; fi - if [ "$PYDEVD_TEST_VM" == "PYPY" ]; then source activate build_env; pypy3 -m pytest -n auto; fi - if [ "$PYDEVD_TEST_VM" == "JYTHON" ]; then jython -Dpython.path=.:jython_test_deps/ant.jar:jython_test_deps/junit.jar -m pytest; fi diff --git a/src/ptvsd/_vendored/pydevd/.travis_install_python_deps.sh b/src/ptvsd/_vendored/pydevd/.travis_install_python_deps.sh index c86c9692..34f5882a 100644 --- a/src/ptvsd/_vendored/pydevd/.travis_install_python_deps.sh +++ b/src/ptvsd/_vendored/pydevd/.travis_install_python_deps.sh @@ -1,8 +1,10 @@ #!/bin/bash set -ev -source activate build_env -conda install --yes numpy ipython pytest cython psutil +if [ "$PYDEVD_PYTHON_VERSION" != "3.8" ]; then + source activate build_env + conda install --yes numpy ipython pytest cython psutil +fi if [ "$PYDEVD_PYTHON_VERSION" = "2.6" ]; then conda install --yes pyqt=4 @@ -39,5 +41,16 @@ if [ "$PYDEVD_PYTHON_VERSION" = "3.7" ]; then pip install "cherrypy" fi +if [ "$PYDEVD_PYTHON_VERSION" = "3.8" ]; then + pip install "pytest" + pip install "cython" + pip install "psutil" + pip install "numpy" + + # Note: track the latest web framework versions. + pip install "django" + pip install "cherrypy" +fi + pip install untangle pip install scapy==2.4.0 \ No newline at end of file diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_collect_try_except_info.py b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_collect_try_except_info.py index 4d627367..244c289e 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_collect_try_except_info.py +++ b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_collect_try_except_info.py @@ -3,6 +3,7 @@ from opcode import HAVE_ARGUMENT, EXTENDED_ARG, hasconst, opname, hasname, hasjr import dis import sys from collections import namedtuple +from _pydevd_bundle.pydevd_constants import IS_PY38_OR_GREATER try: xrange @@ -143,9 +144,14 @@ def collect_try_except_info(co, use_func_first_line=False): for instruction in iter_in: curr_op_name = instruction.opname - if curr_op_name == 'SETUP_EXCEPT': + if curr_op_name in ('SETUP_EXCEPT', 'SETUP_FINALLY'): + # We need to collect try..finally blocks too to make sure that + # the stack_in_setup we're using to collect info is correct. + # Note: On Py3.8 both except and finally statements use 'SETUP_FINALLY'. try_except_info = TryExceptInfo( - _get_line(op_offset_to_line, instruction.offset, firstlineno, search=True)) + _get_line(op_offset_to_line, instruction.offset, firstlineno, search=True), + is_finally=curr_op_name == 'SETUP_FINALLY' + ) try_except_info.except_bytecode_offset = instruction.argval try_except_info.except_line = _get_line( op_offset_to_line, @@ -155,12 +161,11 @@ def collect_try_except_info(co, use_func_first_line=False): stack_in_setup.append(try_except_info) - elif curr_op_name == 'SETUP_FINALLY': - # We need to collect try..finally blocks too to make sure that - # the stack_in_setup we're using to collect info is correct. - try_except_info = TryExceptInfo( - _get_line(op_offset_to_line, instruction.offset, firstlineno, search=True), is_finally=True) - stack_in_setup.append(try_except_info) + elif curr_op_name == 'POP_EXCEPT': + # On Python 3.8 there's no SETUP_EXCEPT (both except and finally start with SETUP_FINALLY), + # so, we differentiate by a POP_EXCEPT. + if IS_PY38_OR_GREATER: + stack_in_setup[-1].is_finally = False elif curr_op_name == 'RAISE_VARARGS': # We want to know about reraises and returns inside of except blocks (unfortunately diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py index 36ecbe79..3813b315 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +++ b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py @@ -116,6 +116,7 @@ IS_PY3K = False IS_PY34_OR_GREATER = False IS_PY36_OR_GREATER = False IS_PY37_OR_GREATER = False +IS_PY38_OR_GREATER = False IS_PY2 = True IS_PY27 = False IS_PY24 = False @@ -126,6 +127,7 @@ try: IS_PY34_OR_GREATER = sys.version_info >= (3, 4) IS_PY36_OR_GREATER = sys.version_info >= (3, 6) IS_PY37_OR_GREATER = sys.version_info >= (3, 7) + IS_PY38_OR_GREATER = sys.version_info >= (3, 8) elif sys.version_info[0] == 2 and sys.version_info[1] == 7: IS_PY27 = True elif sys.version_info[0] == 2 and sys.version_info[1] == 4: diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c index b7f39e43..e601f955 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +++ b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c @@ -1,4 +1,4 @@ -/* Generated by Cython 0.29.8 */ +/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { @@ -20,8 +20,8 @@ END: Cython Metadata */ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_8" -#define CYTHON_HEX_VERSION 0x001D08F0 +#define CYTHON_ABI "0_29_13" +#define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -323,12 +323,12 @@ END: Cython Metadata */ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX < 0x030800A4 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif @@ -1072,7 +1072,7 @@ static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs); +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif @@ -30594,6 +30594,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalTh #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame; @@ -30714,6 +30717,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -30823,6 +30829,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -30951,6 +30960,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTr #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -31182,6 +31194,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTr #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_ThreadTracer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -31308,6 +31323,9 @@ static PyTypeObject __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer = { #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyMethodDef __pyx_methods[] = { @@ -31965,7 +31983,9 @@ static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 67, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -31975,7 +31995,9 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame; __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame.trace_dispatch = (PyObject *(*)(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch; if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 212, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -31984,7 +32006,9 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 212, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame; if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 962, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -31992,7 +32016,9 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 962, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper = &__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper; if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1115, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -32000,7 +32026,9 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions) < 0) __PYX_ERR(0, 1115, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions = &__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerOnlyUnhandledExceptions; if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1145, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -32008,7 +32036,9 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame) < 0) __PYX_ERR(0, 1145, __pyx_L1_error) __pyx_ptype_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_TopLevelThreadTracerNoBackFrame; if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 1254, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -32262,9 +32292,9 @@ if (!__Pyx_RefNanny) { } #endif /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); @@ -33811,7 +33841,7 @@ static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs) { +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); @@ -33882,12 +33912,12 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, nargs, + args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, nargs, + args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py index f763d5ee..7741b3e7 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +++ b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py @@ -8,6 +8,7 @@ import pydevd_file_utils import json from collections import namedtuple from _pydev_imps._pydev_saved_modules import threading +from pydevd_file_utils import normcase try: xrange # noqa @@ -41,8 +42,8 @@ def _check_matches(patterns, paths): if (not patterns and paths) or (patterns and not paths): return False - pattern = patterns[0] - path = paths[0] + pattern = normcase(patterns[0]) + path = normcase(paths[0]) if not glob.has_magic(pattern): diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py index 5b774520..9ad32a8f 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +++ b/src/ptvsd/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py @@ -154,7 +154,7 @@ def notify_error(*args): #======================================================================================================================= def code_objects_equal(code0, code1): for d in dir(code0): - if d.startswith('_') or 'lineno' in d: + if d.startswith('_') or 'lineno' in d or d == 'replace': continue if getattr(code0, d) != getattr(code1, d): return False diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c b/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c index ff169807..9e9bc436 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +++ b/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c @@ -1,4 +1,4 @@ -/* Generated by Cython 0.29.8 */ +/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { @@ -25,8 +25,8 @@ END: Cython Metadata */ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_29_8" -#define CYTHON_HEX_VERSION 0x001D08F0 +#define CYTHON_ABI "0_29_13" +#define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -328,12 +328,12 @@ END: Cython Metadata */ #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" -#if PY_VERSION_HEX < 0x030800A4 - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else +#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif @@ -615,6 +615,22 @@ static CYTHON_INLINE float __PYX_NAN() { #include "release_mem.h" #include "code.h" #include "pystate.h" +#if PY_VERSION_HEX >= 0x03080000 +#include "internal/pycore_pystate.h" +#endif + +#if PY_VERSION_HEX >= 0x03080000 +#include "internal/pycore_pystate.h" +#endif + +#if PY_VERSION_HEX >= 0x03080000 +#include "internal/pycore_pystate.h" +#endif + +#if PY_VERSION_HEX >= 0x03080000 +#include "internal/pycore_pystate.h" +#endif + #include "ceval.h" #ifdef _OPENMP #include @@ -1025,7 +1041,7 @@ static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs); +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif @@ -8693,6 +8709,9 @@ static PyTypeObject __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_Thr #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyObject *__pyx_tp_new_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { @@ -8881,6 +8900,9 @@ static PyTypeObject __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_Fun #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif + #if PY_VERSION_HEX >= 0x030800b1 + 0, /*tp_vectorcall*/ + #endif }; static PyMethodDef __pyx_methods[] = { @@ -9192,7 +9214,9 @@ static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ if (PyType_Ready(&__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo) < 0) __PYX_ERR(0, 21, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo.tp_dictoffset && __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -9200,7 +9224,9 @@ static int __Pyx_modinit_type_init_code(void) { if (__Pyx_setup_reduce((PyObject*)&__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo) < 0) __PYX_ERR(0, 21, __pyx_L1_error) __pyx_ptype_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo = &__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo; if (PyType_Ready(&__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo) < 0) __PYX_ERR(0, 69, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo.tp_print = 0; + #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo.tp_dictoffset && __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo.tp_getattro = __Pyx_PyObject_GenericGetAttr; } @@ -9430,9 +9456,9 @@ if (!__Pyx_RefNanny) { } #endif /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) + if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); @@ -9938,7 +9964,7 @@ static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs) { +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); @@ -10009,12 +10035,12 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, nargs, + args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, nargs, + args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif diff --git a/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py b/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py index a892b032..90883aac 100644 --- a/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +++ b/src/ptvsd/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py @@ -2,6 +2,7 @@ import dis from opcode import opmap, EXTENDED_ARG, HAVE_ARGUMENT from types import CodeType from _pydev_bundle import pydev_log +from _pydevd_bundle.pydevd_constants import IS_PY38_OR_GREATER MAX_BYTE = 255 RETURN_VALUE_SIZE = 2 @@ -270,8 +271,17 @@ def _insert_code(code_to_modify, code_to_insert, before_line): pydev_log.exception() return False, code_to_modify - new_code = CodeType( + args = [ code_to_modify.co_argcount, # integer + ] + + if IS_PY38_OR_GREATER: + # New argument on Python 3.8 + args.append( + code_to_modify.co_posonlyargcount, # integer + ) + + args.extend(( code_to_modify.co_kwonlyargcount, # integer len(new_vars), # integer code_to_modify.co_stacksize, # integer @@ -286,5 +296,7 @@ def _insert_code(code_to_modify, code_to_insert, before_line): new_lnotab, # bytes code_to_modify.co_freevars, # tuple code_to_modify.co_cellvars # tuple - ) + )) + + new_code = CodeType(*args) return True, new_code diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll index ee992ed3fbe4f4563e6f069ecf58fc906fcb1103..8f35c24572173cf0d23ef3f15c4d037735414f4c 100644 GIT binary patch delta 93613 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 TMx2s2O(+Sqk9aI}T&MpB@_^hM delta 93730 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 z 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 diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_linux_amd64.so b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_linux_amd64.so index d53911574f3360a3fa3c0818cd1b272621919520..7c33c1062bf59e1a71ac204c7862a97006c2a66a 100755 GIT binary patch delta 5261 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 delta 6450 zcmZu$3tUuH8b5bncq0fX10$~)UMlj?P}_3lHCg6kQgiKLnvYG*f)X^>aKeFB!YTB# z-)7~j$FADLk{(nln1;HmW?Lz?SZJt2kXcevT6h2F+&eS(`s4h5XTI~j{@-`bJ?C=n z$F;3e$5yF6SxQ}-Vl@`$Fjlo9A;)pa;FCmQ=Fq51 z3o*8^5C==p3s^NA%IpegB#UN0L;trl#xfNLwivV$09Zc`!0KV&tg%0MoqZhiMM;dk z3i~M7?}WYtc=^KL5yDpK1R<C2#^6epP}_S{sqWihkd-NcS8RR z)|SBY1agq@ehXvwA`#Ayfqaq%e;n+;jQ|GZG{OJn{v++nr!9DN{{8c&mfv4Kf7Xam z^yBTO2D8!NM~Ok>9n*lvA6+uKJ$*U0VgP#&eDFGK zTR*l>X7WDR=|htJ)_|W^^HF3g6-}c*ubkDhhtUhNm%sa{)+* z(?N_);}k10gVR_{p3^|aW^-y{Y#yhVhiP+oh>>XL& z-`P8=JlfftU$MN=h{f(&))>G^Sz{n43t`VaM^xOc^K|Drdjprx@!Lc8sD$p6pnG-%xi~vz^Tse7d8djn{a-sT8>g-|LLO_V6pABm)${%9}E|TfUWHnFs?mz8H4U1 z*ORr}P=2=rJoFpr)BdpuLI&;w#Tw48C!bdVZR8h~ZrY}DOT88X{t6XF#iwQ|F>7tR zU3;c^;vCk+=_E%~>^LDqoM11CFV3@ytm!eVN9RPmTwHr*c(Bgsu&8e-ZIG&TK7? zuma8xie8t`3OWj$R2|MEKAd@49AO2VwSC|u(9jrj@hBZmv=3*27DreCXG9-3O;ih< z@j9G$fA-F6u@*;I0q09aubbEXbRou4@PH1-?!~dSc^6rj0AxuYATr%HAh}?f4&+jg zCm9WhFabz(A0V4)`+$_{ng!+_Dy^c-{Of>a!8N$A%7$bdg z6tgHSHr1(WvBBY0rZ>zI;aC`x}QH1&LAXbB*5Suh`J$NZ zUv;>rzxU$4=$$P$iQ`jXeE_ea-GfYyN*zj#4`quNMVJ6&o1)ZZcY~VUAfDa-@IYLZ zuZZlP*5MBG;lAR<%46K}HgDrU%&PyM$p;RH^8H&=N&C+Ysgxzc6&B(cOWsf*TFQXE4StJ+@G zYbY?>|Kz)We$PGk%@P+XaldguR<(auuDFD_oSXPG-KRYP!k|R~ zj{?asv@*J>mmB z;05*EJ=S+ddmgGUuVl(h8SL;}ye=yKO?+uOGY|tA$Q8%k1J&u;zHn6@53^@ zSi*-pXfB2&e7J(vr4CLVz=sot^3R%}G5m8VVso?axL(1k8?&iBbsSbKGc6(R&=6r+ z$2>Ov?&aL(ExIo)-duK0EJMBcq^TDlQ9ZiJqs$8`{9$HKxZO6f5i(RAVR#H`<=`bNc(;DD5w7 zDf}eNABGH{@$6Rgt90YgBq@aM!fzZc$8RQWz;7~rfZrTCHPkBA)9)DXrGzZ2!T(n( z${IXyKq_NqGoV%@4#uLlQdL%lbe^_nB}o_QaF$itL*HZkA%zdKN->m&-{1X4fI(yYB^ULe#ssZNo6@P`Kjr!L?3}Z8htGKE$CCw??LD5#j7iv@+u6cbLh^o zNzx&z7@LuoiGl{N4z{Dl!i#r&@uJbevOi?GbT$Uqo277NxZ{+X8jg;&N_i%(NAp9W zhBt1;n;!~0ym2_*{1^%-Xql8!m@~X5O)!x1Vx&^E34E!N2@pfr0q{#TJl-W!SfxgA3geW zV6+%@CB88vJP1FW242!tS{NG$oga?)d{;0Z|e5ys@Khy9tz_)|v6-KTv1%Fth zuK`~$S-=4=(!rjFKvPs@Z-duX1kZ!lRsaWJLuhNN#e9RPjqjuB;I$>pMc}m+$;UPJ zk<7u^DhRX*ys9zafbWC%6U^Jp&`)gm-u8>s;2zg* zh`D=GUf(s}L*t{QhTsVoB)njLoS0G%EdmQ}$ diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll index 9e9c1ee587c516b67588568001d97451cd319cae..0341eb35632357562f59a318b8874407ba2c7126 100644 GIT binary patch delta 43666 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 delta 44314 zcmZr&34Baf)SvTaG8xIlOh_alyM%-wB#3=YVoOYfL`p2RG@`8_v6K*E8?V#Shf7gv ztCpgoohYpkgxa^()>d2eYNDcc4fFl)n^^jNpWiRud*?3i-gD1>&YObk-UZjacbF+; z`OH3L>q(bK_&8e?PPAwPB5K8+tuc@^lajN+e(^@eWH_GDWBr+qEEIaO+HoTB4CE6=)OFfVMg&K_`&lvMi{)OLBTDq*Eg~|n&u@tCu(f6T?$_M%efnT-IXlzNR zdA^%QBbV`|n6T858)guHJWn~RUxAKqyEg1RVunVO#>dXYsx!*>WSfiqzr{;CqrZH~ zn#l`CRcW$ycpE=kAE0Tz85#8-%g54f@z<^S6&AihIp^BE-MA)VMHTX~v~=D-9Q}@! z#aBrE%IHyRJm=qnN-nUqcMGRBt<^S=eEPdC;6i|Tn-N@&GstpBo=PP zc4DsBk}6X9lU``*u%k21b_Wi?nptJdujI=NfF>C%e5(@d=I7BfNNl|Du_G@itA|qH z?xzfOs}s2yCy{|k_&G7hVSX+j=zH;s3OrQ5VzBawTOgU#nQHx?nW`|8`-_=cIcIA1 z`b>Ra&9qNx=N>3c2vS1ad_8^+{O_Wg1-{$2dO<6CstZ~%T`WjfoFn$UQ#s)tLIagM z?!kth!DuhzT@@c=5FJ)p8-r?|XpONJ9J~?unxKp{Mo?qLW(=-*W*Yk5wdPgETuJ4f zls(3Hnxc@0uUk9uwhZjMl~Ug$t+fUxT6i!_K55~;BxpaIY)RL7RRau9GRTLm$woQJ zXiYZDNmXU~K7VM+V_H(OAW?^9c2@jM z4QQg$+0?vdJ-nq%KNzF&;ycPrQ*g-bFzhl7r++yT^wla`<7hbr$La7kU(=e0l-|l# zN=$E3zEa2{ zS}F2uMnjc9Jjalql2ogq`7SnOOS;Ivd+u;x4HuL-wK~SP?urRIYVtfjT?8WPyk7io z)!UM)cph40{Sf&^rdVT{UW29cze6;dhuy;rRHm=^U2D#D%l1v<2Nc)ZL6&vnoLCi$ zPzP9UW59|3Z@}dLcC{sdUVltdXEss>CheTYQRy#hYlV-srrD4unt~bBG%tUl zzI}_l2-EioQXy}d>s!bv*NFe}Mk*b>eLZ`t4JD@wAG=QORSgVNfd>?mU$p6VxpTrBxQeq$ z25eh3Y?BJ>uGsu~xeie8?z{18{b%)ta8)-H(8{#A8n#x2byO6Yl@md4MNaE1K>!)&mgEh!bq_OQ3msI_b(>Hx zTLL6F%gnWA3r{V|3|>HFS8j$3rFBX|=tdX?6`?WoObM>PimoZ&)vuy$%C}*SMW3*E zzoc8F>YBnM4oI+=vybx3?T$=xxplIrdw2=;%4#QRtnnMNn+_apjW6c0?In$@S*TeM zUu=snwxseNXfHfymM_}kR|)AD;15{=g=yh?eh1MeRXOBJsF78?NJ(zkzxLukfGN51 zaC{Zy=T>XpF5ai;>xO|+z%S?xN!l&V!dHshN^9$frIc&1CGF)tN@ZkE$mO<;0%*H3 zuu)GkE9)9XQ*6<>Mh}Q)Do3NbH(qr`@QB%(V6esSwWMcVgy`Y(RiM$D0A(wH*935a z64#`irYW>u`LSt38mv5T z+KDbH9h-$kJi6p?K!sbo>C%K@u;3?$<8Zu}#um>Vd0rMd-e@zrrU+(P*zBNr3p&5V z#8$pu84_)&Jr^&29TUa8bJ70jJ0uySm7Oil1ialzV=jdakS6E(&wZHd153cy^o^@6 z35WbpSsT-X#w)jC22fk2Q*1*@RNjgWl1x7<3u5EwsKttcnHouH+M$8R8V#11 zcjV`byaOP^I|M0-?XOdU64fEXINCwgZ8}HMuntWm5(k)9;U1R55gzb^ z05(_FCMLOdQak*t+)oVkn|)k#aKI)sTH~)T$mDZNa^1m7*-En>KGaW1?9r{xy1mtt z)ITaFQShiv)x$4n2lki>qJw#}$opSB&ZBZ=GW= z;A-I$l_7wwtcEEn3>)s%%9K_OOIBeO$_>Cgt6?=%*k?+k-mOf>cRS}hh^vLasf_C# zV_H}Zo2|lvm9Nk*z8cm+go_%AmfnuB+AicFMB8$*w)r`mNu}$~XPrq6bRgfF$}_d3%7L&%awpBV>>x&j1tD3e=V9uiw_P zPrFlXW%~dh*EAJmREDMbh7EJx|1GRnVG_c|do{MM+UP4f28KEB|NoA^D4o*kQmOJr zS|FWJrly6>H2E6omfnijs+#MJ!<+&?c)6OD`0Aa5 z29W>TzhR7!$l50k2X}$xDD;Ucc3Uaq2RD>z)>1wm90QGZa&Q~!U1Z4gCeUNxkZ07r z$bV>xHu%S_K<_mbz3_9Nff$b88Ud7J8lm-WDYiGmf)Z*$rDVh$g^OWYT9PT=0dE)W zrf*;c^iod08ArR68Y7yUe)vLg(p_~KlzQnV<$wnTYF8{SSMufN<>;{!%f3tRkSi(^tB zK3b{y?oMj0?0?tC%lNXn{G}(2ASfk;_bk6l{-QA|@#F&!uR@i4Yw%KC23YqK3 ztHB4Vy~~Yl@{AK}^Iqa9RE(Xde3<(#%~hV~&Y(~wKkp*-RMIA`({uF5$Yh?2DNG5S zoJ9FWIg_W=An&4zg8f7jlx?#EJ!}m(^s5p*k5NU@k$C}HidJq~2h=+Dsm9C?{|mZq;0~Wz7dBQ&T3DAxDOn2xB#lX# zzc7a^%HxI8DM!hZkHJRl^8Re7zk}~jr5#E~TPlqy`p8y52Dh0)rfm*lYrB(|()2_B zgaVa7A#TEFzAkP!G&t;<`_;0@@S-t%4)&udtcXaBxzephKtZsJIoplPMTMWp=0 z!oz2HYBWQurTZh74cINZ7v#Cz${UXOM9ZiiINaMx`{g5GO|4z-Lpzn?HXJb!82EP>skX%8id>=$#_Jm2YWjl``v-l%QjQY?tU`Rcou!q)*ng4>&lb?Ynl;L=B{aI8iw6xEm!BRwD9khJ!{@ET}Qa< z6|Ae$dhIkCqZF;}=FL};Mt+KfQAmmvwQCPw8LI0NL5(Z6__Ir0_-!#kuOHhom`L9vAE1rDUz!68Quh zs$M1fr;l~^=V=JYh~D+lTixw7rTzM0rkq#3vCosrmi5iF$B!RZF0YSqd%69giqD3D zuO6Q%Q#VYk-SD!*kxhb_F5^yIHzkLMglu_-8|#YN$%89|DwvWO|MSS(_mN;pyCI$4SO%+LReAB8ES_7EydG~B4}FhUvr znIGjT(>{xiEG^QQZAq2<3_>I^C7tK%LHKvnfRvMxZ>?D&!gahtIsaMTnv1T(+dJj> zamdipp|@5m%{MoLPcVFQ5-m}-Z*ELk%9YIvX5JeKS?hGYUZ=aO06&a3sIezw8t-#S ztWRu0#In+PA)+nvW7#B+_eG4+2tQZ6XedH-W6&ZDp>+9fOo{wl7*kueY~eFO+!+~y zBgG7eI_H$YIo)U zS`larD?TaEI7#WXt!*{wpSEzWe6Xz+YYbcDuWg}q7N5fbRc2W8u8C*`9PF0a zMm}8$-QLzC5GPyeXc;U-Sz6JU?e9_aW^7P|iLc5DzA;C$W8Zl6`%8qcc_3-VCi}+9 z7h@dO%!?`MseHat`>SrPdZ0ml#p&u-)XLiSjmDgw9Xk*l@eHVDLU%?&BKO%@FYzUdy9@?D9x!WeLHcU4 z4aME|WAl29mM_Wq2%c1?$gXmZ0Tk&6ZWk08^Dyf)`dageuPD**1{fc4?8VB3 zqPE`WPdXe4wwbXR?I!w8xC0Y>XeuvJ!gh77755L&)Yr=xbH$q2Jtft`LzOAJ!X)V* z<&#|j^h?p+T|Y?Fq-ehVzQNsm1XDiA9yy3dDf3EVU@d)H(vVIozn3(pPZY2H-F#2u zj0D;WXGTc5205?dR$GuFe^fMX|0WkIQR1g{JAAc9aTHC&5VJ$ z^1c$~`dmDQn!F$cDrSk-@U{jY4=q7zR8;Id!Fx+tp1f+m`YXMcS*2$?Fje zd-+n~s7j4(Vw8N+npeSNmCZkQZYRPX1^Jbl+!~IF7KgVNau$3HItzL;7N;D*V}Tg^ z#5Or9<_bn;RxZe_u;y{TTdDucRLG#!zeFTmDuXMPI1rL9@pVae0AOG!ac~jICtoDn zTESa)OtuKxaK3NOm0VY3EL{Y@$5-qLsK_`@H7l>K-F zmpPGH$tC6TpG^%xm-=q}yD2R;mmddDGA+$l6f2$3cd;hIrP4oAPE`|Gp;H&Px{Ih+y7ylQ2RxBP6*VXguLSNw&W~RkFw0(F4 z;56PBV{9La)ETke&1X50L0m;`bqN@;MrL5QiTf9U z*r4hTKFW!|(>v}{&}6eivkY zU#-ln4AQkvtI3=_EE~zX z_kr^2`3xvwNaIZDbhjD3rHs2<5;$%b$nJ=o5FsR6wkE}jFa^RskP19?k%Lu!MZ?`_ zmoV+F@{^m{dp2t1nwBjN?rY`NKg${zm*QBT*!t@DLdYUD@5FnjF_o*Qw1XI?>bnE5QuFB z*^ASW@2Xhg5d8Op8lAvdh!D0{@hH*ZIv(XG(5wP+Fe$8g*CE4%7`&<+xF1ThlpFUu zyAAxe+T}@9nmvf1Bg()Baj$?^m5(3vgOhmsK{T~j0w31%y}SSxg15>^*r4MZLEo@s zvy_yF+ri-UD4FUgmPY}`4X6gmS^#25<(bOVM?q1+I{_$B0WD-fatZAwM@_%#m^_$A zOI*EJ$Ud* zZ>p)7pALrm^v=^1gy;4>Z9oOe&8Kmcss#O;ivK76I~@Mvg@2nNobOUKo;oO#t9p3X znI~3J*h!Q3qpZy)F+IPgoUi&DCU@zxCWx)yeKs5^wbbV+^pCRfc~|6l`12X{4sHiN z;~yh-;DdmA*={wn?IkBY=B3IkM`XQ%|Fjo6+kHg)Oy!WH3(Z~XN}J5Z^PQ((tWk=v`XCqKJZO)t66tf zIT;onwuN_x!*_U|4(zHCw&{XT#4UCm!(v>hFZr`V7mBO#iynCwh_hgJ(1p6t3Z~an zqZ(rbbh3eOVQus@g6^=@dTL40?3|vWx~^Fxyps6i*8D0Qrf-&zPg$29Xv}H0DLQL( zwmF@*Ukj1YEee4|=*w)~kViMI)BImr*+W{A zd4K?D3l9d%IjGp+5$t_e8cfI7EmvypyJ8OTkW}gT5xEx_1hPRMFOGLMYhj>vl)&CK zP$<=Biw*P+ea##O99RJhtU+~r=Rk*9<9WHRa1?j)n@D5weymRo@<-n>HK;lHv6VHb zK0RRjYETQG1GB4N=E&P2wuQ82UM0WE3~tl|=ab?_&1*IneP9E~eIYc%*djLyAU)gW zMh$2HyWmDq)zZ$8TmmFZE&z+^HdGafdq=@4`;FQ>fYcCFHbxj2GO%+=uyF%;8R9 zpx!VeO`rhAjI^0Hu+APdn>Mjh4qP+QmK#h0-kXKgq(Q{& z`85e_mC1fGQ3*(BxtZG2uk3=EKBa%yWKRmBB*r{}=UeO>PkJvj_=TKoUxhL#*z8X# z9rNdiO@g`1*!r8SUoA=ljz6zO4H{9mmzHd0xu3~ig7A`SfkgzqgO;JmX$e54=d&lZ zs2h2+4z;NTb!R!XDU#~4k84vlZD%fC)Ro@0_wb@OiN3UN@g^P7ZnmQiP3t&pJn#V< zRfm^f6~}c-jRwk(1uFr@3jr(Rwb4y@ZK?95v~=4ZVcwwU7BQZo%g5l0` zth$FlYj3^daO~~_Qm`gf^33<0dbzMkEFhE@%u8AKdcgf-_HI3DOS9SM^=Jig*3BO> zrW;fIDVfgNfA^;ZA}fmwq$~<%9|h7SYRcXYqIjBW-x-8MBgO(kfYTh-J%qMlA@@Qk zgyu5uP?|@TY*i>l&}DWg6pO6Sy49z}^pIVsPoZ_rO#s@|9F;J|%4ku2of%@nBaC{| zI+h+r7D{28!)Ua*L9^s4*!ghk7Vrif zD;SH16C(-IyH4R-h`wmkPvjM%~B@VXSv#>*Z6)P}xuJdo%u?7^{ za7R-d%F8(Pdw+rrD~ERLbr~g6TFeb0cV~sjOWiY-unX*oYc? zN52UKK{w4Q$u++SAb@il;k15Z=NeHH)9OaAFYzsAYK*yxSkuN--`u_hnYkIkd5bN< z%fj!n;f=AfZ&`6;3iWI`7E^b$C0#?c82<4Ith_NbgA%D1MgCs>2cz{;VLMH3wym2E zOnjanV!flNXTzXj&Lx%W%Y=GDmD+i}D;r{`c#zQGam5=2;kmFqQJ}2G>_!yzsb>(g z9R$TUDAOE24xQ%H?hK-m`z?GC>(hir&fGc%CYDccx&0ckOL0VZhd5s&=R^7C-Eibx z-rqqPSu=`CZ!rU{%IX=2L{4mB3V^Ph}*qyy0E(_QK zTxRm{mq!P$YUeMIQh0rHyxzI6gM98=Sjsn3;k(Za)5t!iC8hENp(GCqe1a@Q{{~?3 zg{6GNK-IQV&ClXg@y^MB$O8;>&*s(3S^~zhB^C3{;+4*5L$TJvJF(W$6r&%lLRn5U zwb3_p-fxcv@0pi1ry2AMo7o)tV>Y|e9OT`cwQNBR`uA^6Fco|u_S9M*Go)p2ThbEV zsQ$}6ExEPh8T>Zb_vvX_H_)H|cuyroGfL~QXlHW7+m^I|-wzd|*!C6_?)}3=k*`H5 zC;T(mgGJ52p<>{rS9M_o=t5#6Thm6r*%tKO z5300HvDgxI)_g7>vBp>M11vO-R_k*x0soX8iX$fET^q`A{~kDy@5;%(JcnIuLs9Kl z^ia8@(rFadfQA3ZM?mRgL59{D!HBkXL76570HKBZ2lB4qCOIM4n$v?fV4d4iY;3nA zG8gXm=T&C}XGUc$cm_efBVD}5ns+hgN}C}gbA7Ct$IIeRJJskxK9X&2OTqqiAx`*C z^ekOix*+~06zko?@qdynxj&C)*V|Hp&u4H50ge@*XG0y11(|=szM9Fpw4)LAJ_Mi? z5v#n53*&EE_f>7XHSa=tTb6?aR=NN@P{9TsSh4LdR zJF7$@2y4@jp(44bX5f1UXWqK{zBu#ZMr9!7narar$u1}2vF>G7NcwB++pbUz;dXsD z8b!v%!zGO^AvRmG@PFCl?$D#N*oy8DrAJw5cS<57^Nc5@$^Nb?vA>F=j6~d_Okeye zg`g_b^IYtmy#!z^OMdQqI=9;_+EDDv6bUet%aVz+w% z0m;m_H|4v}?<4XxLdOhaYkPz9uiH=drfF2CE4B-K4DpA?vu0KZHmc-v+0Y~!9zPBu zfUj-)I@0;y>0s~54B_;p@m5~Il@Jl?7Lg?rq~ShL?NQyOHgid)X`b$wMHsQh7FW`Q z7c!MCPKJXvfR!avvw(xWB~81^+;-X0!1>y2?Vxt0xy@{oW6`sMKVr4}Qb_!te>`_& z@WySh7@Y=IIciaA%ZSQ2-TC2S>yVB}t))4}=g8yV#!mYH==f1cRCBT45s+abo7$I# z1`Nj}|G#3sbz8%dn@}C*Zo%U2vo02@1M6*|g%U$mg9%BE3Vx**0=I!P?pL2Oau*gc z`!TlPLZNjJfXI1%YatRe#gj$DGCasn`1kCYg@S1r3rwM4)3M*4I}Rs~B*A8B{1i({ zfkX3<<)n~8U6`&PeCRnWx*zPCzN~LQIETdKe(;&nSy4X22D z3j13O_>6g^g60>pKB?5wL#(?^?YzH4KK>E=AeGkmzSzn|o&@GEoZ)N8{RjB!!s7eG z)jG_I`$Jr;WZD7rHjQRE11KiqX%zM_z>pnb)jL{P_@7%4D|i{9eZ`P{*|7ms*EP0S z@a0u@W&nA?;)DI=?Yj>%WT?D=0v)hmc7!7uM#|f)X&SY5Z?AE2mRY$Lvz#=FY>?SP zAPs^&JAyxMjQfi*53?h(HY4YsYR$ZE4H7w|D{LPIyEzA6L^0g5bTCpb3r(l!psnhZ zCFSej2Gs>ua;dpW$#`+zbv}xXPp6qQkKIkDPa+}AG=GjDbMQzq$KVf@aOSSnfA;|Q z#{HZ4dxsSdq~>n9FIHP5B8Ew%Gc6X)^Rxb&=Qt5 zoNR%cVF!v2f>7RMwDk@y9HG;cY42km6o>Jz84T-)3>4bEl1jiR*L{Y9gyphc=d zo^0%BN(ht0c8)oI5+W-AJqR+AQZ_zs*-QUJkFsMcJ1wL99CHrSX#>19@c7k!W z_b7O>W-w-blHH#Bu=!ckG-^kXlQw*dyNTv9JPPWol=BSuK8?3=F=zR=MR5&ybtn5R zivs-5R=j-oRn&!Sgd&(+z10J(?ildlG}dMeHH+T|vV(vA5QrAWwXS%qc!P&{!`I-@!?5FHHzuzh-&>s~={r+vggo)O?&h@p6iSV#^YUq7h|z6~=W zd8*E#mE*uZxvcY8YTsfD{85CqU?4fM+b{&rB7t<;U!77!OSn`8U^V&?Ng4~$^*j4( zEcv(kQs5jXDQt{N9L@(gsFxK8)#oxCGpX6*HbcE~qi{ZNvi5I-v#MD3+w?P~+k3o2 z62al<{Vo;J4ZGuAFfp}cGjkCB(z35|2)x5g<7pVZ&2q+5DqQh{<0)9*EfOR(o&7Z) zG89^T0%YidI(Qcj`5-o1eRd`MLzXlFj!hFbVFFEvJcYwi$@C>@Hje-#{s=zpYqvkw z)xv)^0jV&DJSNh}n69Ebb_ip#eAKH_r7Zsj!V|gAJN^EWW*``T{1~n^TR#!vF_1l- z2%db(0&^)m@es)WRn1U+(M=VxEwkXP^KWpd882|y9mD{&hcBQUE#DTc%SEe--bl7E zm%fZht&KH_kIV`ipf2NpiASEVD`N9 zD8L7!MY7SSmRMePcf@n^C&33l=Bbhr_M5_gLH;*8npd(fCsCyLF0{x`L>Rvb>#h~U~U zSiGR4!VZg6e6`8;<(Jq&yopAzzot`N8pd4mVYMz}o$_Jdq_8*hX-2T*g1IM|`BR-B zi0ThQjEHRuuz~-vYzDRW-19N!9z7Uej(oFO=!9h~X$I05sciNPoZv}zV+I@pAA8J9 zm^!eSCKOQnkQW}=ei`PMV3~Az>Og@x$RnXPuCr4G6c@P#dk`nRgNBx;z=Axt3h-P%1Kr&LvdH7bECbk(S=2qmjF6}(k&qJx4-qd*K}pA~ z{aH|8C_6(my&fx_MGJi1a&x}SS}2laVkIJw3rx(W`ZcN&5FCJjJ;FYi4Vw!DIU71M zm_40M(TJEdE~FE%$DS0@Wa`Ss&w=)SYTrGFJV}~az<&FJBJ}YxVhl6b)47P4`mwh2 zsIc~AIAwArs(0k`VE7dI2i}XFo=5F#ZUWv_@zfj3TfyqiNBD9A>oOlP{}pWLd{E1A z_ThZWb{8?%a#6s8prLL7b$SiZiX|_g#xKLL5}Un%xG!{{HG#LF-r{-aQ5{=Y`>V@T!^Un zn=Dc$f6t(IArlEHDqCOiB{9Fu(q!rkI$$yls#p2&xtc7$jO&YJxicC5BlCEleEc>e zJ>Zz^%fCSf$7CblhAZmdhLo~dJ7M7ud!H5uZ1wxUkqc#}x}-%9*qyKF%^FTW{wjB8 zQ*8+2A7@)_)Wq-7^XDpF%YEf`pte+T$b+%n{p=qbjf~7fnj5jqj_{e>0X-E5)Ep_- z%iVNx50EAj&`#=%WivmZrt|~b_5nC&y#440P+x*`7g58u36JrPC-P*VQ3$?95Xg9y zs-vCeEz191DyhCgT$k~RN6%q$Fv}@OtWArc56}Ef|>09o`PA`EX7{J;rMbKvJ`xrSf7@yB)y9*Ya6((2Xq(phL3)&=cxZ2@5aaO zml!Rhi1s@+;thv+EV{r16tW`4xlJY-ruicx_d+lX0bvRr6>&Z-;(VX6QOoGd0VAg4 z<-H5?pKEf1WV;ZEXxq5~COf|4#+Q#x+p3VY0)h&Jd$827!om`x*x(Nf@fKi8uweQF z=lmExk-fzzh4!)Cj6!R5LCj38tybeBAdOUZn~_hzh4mPGlB256Atwh9xn)2<6gnmx zgYwR1AKi_kE1y=@w>Ki6~YI3tx$h$|#n+ zlInMAD>_|-b36BnY3cq21|YLkEq6DlUm_tglYpJc9|%{6-@l>qFAT+`hhlEti0xQO zX`WjvoyP;o1m$%X$ts^!6kKcF8gwcH5SX7MFyEE+Tm?(E2^+tPLIU0KtqF?J@RJbn z7llYb(!rE9+)CzDe9^j}?O27ye#K6#qVaI$I<2Nbz73$29C_z?=NpiRd8c_CuJ8?t z*v{36HEm+CpHM3r$HsmFm0O#w{e(i_sJvZGIRow^yxs^u+@S+=+`W#KA+(S_2-p0| zY)KHBFje+fcQ3D_g8RK7@XudNbBrHag)zqv81Y|2;epG=(;n3k#1wF)_|R8fr?H`H zsGaG)0Yvb&N(3;VK?G~)DVf-YwG^chdD_kKe6{|G4b>uy&>kb46 zF6z$4ty4=kHmsxJgU>G)2wDsB5x5lXD{nbxEzCD)$_hn`_?KHt{IJI+^o}`d>lW2z zzM(t{?CF?jd~pUNs>cZ-qZggGu;J^;%l&Og8MQbGNs@x~)GBaG=>Fq^)r1{dZV5%HE0j62M{HbQ}Q zWvw<+ea{ThUM)R!K=V45y^$h4=81g)XF>pinm1D2kUR;L6suCw^>R38l{{BKs^ByZRZm3SE2sIV5?6ngxw2%&(wa z7dfx0{E#{TNqb0u*v+sNL)d`LNbq-LdALN!D}s<7{~toqV>Ypn7a>cp;;)4iDPspW z(^P86I(`l#s^=xA5fy{$e~qYSY}e;7cSf*3Kc~mYNL~AaBK1$chUGbinYO@x4QHdb zfSez*ja!fhWGGifSvXt<_v3iWHum!t>Qr}cn(#IKp$9vPcDNMA;!M##fVJ969fRkl zf`2>X6e>p2U zzdrArbPcXACOx87Y_0?Z6`RU$e>Y&c+u&1oV{5n3;957&0j@e1kV~TI=>n^{9R&qF z+56jJmxZyfw$nbL1a?sE8eW4{Q`PgVYO200V0`~Cw!a8&p!q90;D78saPhw?A9uc? zj@!=u{)$Gt9MzHv|~8YD2xX1}HV<1|YX>VP z5VD{Jo3)F4+ZJF-)s(ZvR|sP#2hZu?H4^GL9$I)%S;2LuVAMcXAMg^t{URra@yYDm zF4_s~&HI`%eeWI@3J`g$+sdS*p`dz{>a?Hpx!C-H)Ee69T9PgcOh4 z$zOl*&T|Kr^|u{1$V?Vl3?C_-eNhZ&;7@j_7=i8&PGQ8|>?oM+`rQb4HDPhPsbQ2$ zXIOhPyfnEUamt`lnO12?S%atc#bhp9}XREB7IjcY|`W*^b>5P%A0{M4aqz z;gP5z5JE-Ae%(#$YJJpIJvbM6psw6ahCTV5Dc@2XU)BSg!H;bmx5!W$jW3AIHfm&B zvFqPbc!STy?s0H1_*%!s8*^LO`WpB+gh^#r@ui?MW;lm6+e7mko(H;xJ0sleJ>|Gh z)E!RrB5R_r>e8I#w*ce|*w1^Ytzk&Ib2IFWH{@OCy(H5Nc6={Iy51;(49f4zz7h=q z-yz!&!diSs!;B+lW2GMm8=j9~pL~ZX&o}JZckn&uu_oVBT-3pMw9BIXVV7uKp03i- z#mi#r9l={af%SR6Jz7O!V+fYlk}dw8LQE5cEEkEdye`@PsG{5dJ(O5m_T+omv!5{U zeN?~oZ*O9lYpR?RhhguWK>wE_7ve5U*H}aWD|ybcm&OMajcZ>vZXfy8coDn!)4q70 zNYi?;&ifG(T+T-Br-5{aeYc+y+~*(0q$2r1p4*qB3b0MppIL)6O84ZroIemf-$ukY7lHcehlXv72T?jh*2 zu$F=@&7dCM1PL?onU&dTO^cf3t?13;e{n8agytWx&WEY3$xDP;Us{P3%zBuH)Lshp zo+dtN4bOUXhRlxE{2F_Dm;wxbXVs^zEU1h^earBgSFzXdL|BGc8p@qA$|$m9^daY- zV2P{Vsu9(8{925|(e7eyFBt6q(f-=%&H@3#80o`G%BV?lSETM#%cI;w#Du$xN2l2V zlQug6FH}qT{yWzqabTb(F_*9;F2N3gXuI_hYj*@?g{5rf5%}V&BOCR_=`}HVXG%xn#CaaIR9D}Vh5taU%wOWnUmcQrcQ*D13Jqv=5uZ-J zwqLP>4uFYk5B9|mv=tS$>BkU`e99IdBj4I}f5LYrFxv6+d$<$1c0acF7&VS+jmHc= zc`r7W!rS0M#NWj<;9Q|p@MS2HyWfcoPhqu>Q>;1dGJXRg!H94$elkXbOmq5ioQDsa zeVp2xf4w9c{a-YmW+#usyPC&bPEd<3+d$&h#LiF)_4nX?coAM;?b2Q@5Yh>C@F`h) zFF6ZMydl(`AAE{}jU4WN8O;AKn{on9XfXTq1o_lBQQg(f_Mf2UDa*gbaX}&FIHN|> zVcB6Ds)#+sdts%oM~yy3E0)m_V??6LT-@O#HaI{`aY^otfbVtQj&(apalWl_c#Z*v zj0}Xenu$nq5?HhXA$;W|b&k0W1j+h4!*8XUM1a8^EJe@~U+Sv!)tD*w`}&7B*p9&ro7W$5F8118seS zxwrUkB{5puHadzyNmbdDikd&KvlOB)`3BqQz}lTfDPt6yb(ZSty?%ze`GkFXmb~iT zLC7;}t6B(xc*IxuHN-S|lCVn})P*#s`aFdWOln~97 z^R7d~;5YlOrSVSF@O+Z*V(rgSbN!ECZvGFOcn(`lXRFRp_geS2y~fL6gQD8jC?==1kYkr<;o8(z&efgbTC`&z0VKvXeIR(!dE_JW=g()4 zFF?RAW}!dQkY8p_ga8oDiyU zJbpM)Ey0!({pHR^M@|l}$$WmI7|LS3f1(C6$HG3Yeg`kNym&|BubuB`lc>JoD)0WP z+g0GHufN>W$OpjKa=Jqx_Lmtte^-Qggox)c%Px_R@5<_Dd0J;%(qlEUCafhGP?wPTXvOj`QL;%l{UyS%-j(d~ zB}@oY=Ms!o#{4fM`)XkWFC)^`ciQVcZ?X?B!(qF@PF^OzkO$B%kY2WgD2trnm8F5? zNz0nX$-MuX8$OWYOPS#cObRP&bcGrRo`z+Um17W&a)pI^;+G%mRBk0WfGww%e+d-fv!882tY`joLPhi+no?B zVK6&-l{%T!6jz2tgn<$DJj;B3rrk8se&%Nilj`h3DqEBZpf<=uwKz}W=V;b2_iG3Z zPx}AbhO?g6s1g<3ZGWSU`1u)j?RU7;-!uAyS_VFYrc{4xLXF=QRv4k*+lc)L>wc)c z{~ySnG;ak-Son^SU?o}8U@MueXLM|A~^V5zPK4!aZ56;!i}%-(#&g`lQ&`aeUE2Lzwsk_%rFUS^@bydmnUibl^ zGpKAF%@+R+_u(Wf{TpI&7}MQ>jH}Cf-GNE_JDYt6k;NqT#T|H>8WvFrNsB;KB}Bk# zCRb81GQQpK;?jXVyNfEr_H4yJa9K_4&_9$M5&~{6>?Gv{$mu$Hfly)X7K;CKU9vU( z%IonHEcPBn*GgUi$*b08>58WbHRH`D-NS3k*eCbkpVVTd_o%J+*ULpOetjWGEZdOP zqXx7`LssiPjcikZf{TY_&h?c$`^xxXqg<0r$fJm}32~0Px!S2ttG~G%?12OMZGhB+8Oe+Gpe7D^E>LTmo@$f zzm8k$6f=B)`VX+ym8{1DP|Y$n<^jr0XE1t5UbTkQ!yNpNP8gqb+}gv88k~j?VW_3D zu@5P->F|%BTSlR^aEiYsFF+_{&O5?zNKr?i<|JEV?cvXh5jumNb>Jan-g)-$A$3P_ zeY;2C+_~(%NA!{JKOMvzW{qi%P1qfO;1R5YAa~ef>glssZS~jWcH#3xOJ{#ni}Gn~ z&SRQSUUuUX9DD6Ap}P2H@!xv-#S>+GaN8UwjR5 zo4HkidQ#Y?Dlk$dJ5fcw^%3G2>aoCQlv}T23C>U0hw>^)!cgeF*f-OGQDt$ zuV#jU|ASjc58oL4ZV;xv2#E#*FxY``+CJ9Vfzal7wg68(`(hko!FZd4;|nKEyF9PF zzl4>RW8iymlBH1Pyv3_|8#?C|wjAQY@L%|ZaO8@)iB&piFX@+lDSg*$Ni5b;VlL&f zdgEJq>pg^idA@kU^2Dzv;Wt%Y{FafMFytx9%#)4UQ!&Q4p$HTlWiuN~ z2`Cmk+*q1V8TRBTsV+ehjcFqNgyO$0O(hgdvuU_U|75anno8~PvDrUOrB0M*Z_!M8 z!^O+j4R~9biJ9{a_%RzpObI{7*2YRU>cN_}lv=|p8QoH9K{f3wT1ur7m9xw^sTo`r zTb#5{`Zw90+(z;v+GEdZE9uE&SDNq}lB!}(4CN>6)7nXowE9Kj6<@O{oiNQ2`<719 zc%sJkfG$#3iIVKYx=CM4)WTjTLHfNm$|av+D?0&9v z9qFe_dD0L1MFKR3eLe~EkFc93OE0G8-rLp8ecxDaW8U8!_TK>nTfd z(p|m1P?p{&y+r_hnYT@9=-lX=F zKHITGY7w;P*)w74g9)4ipPW<&8nbdlrzl2CvFc9t*rie!1y8JehCu&g*UW5tt?Z9hNKx+k)8awLA~#A={sFh0FH@Ij{l0pMW)Jk( z%f@e%;{Eqlyw)S)MUQCFV-P#LQEKKt{`DR|BSq;vYw;E{3)m#ZQi#3ZCg~j)T3|2P zBGoYHEn@T#cB)89C5yfOE@`er_3fX3BPHqdIid~c^{up!D(v(3NZ{~A0tQTfC$*>B z_Ick)gWPGf{r4l%5N(%A(e~$|XKLjPiXZt85GgOjivjoCeE7uzza|Z*L^l7L6iT1izqlrCBI(ga*6(*|F7oFW zf0st#d(4i1p!H8S{0~r1C-(Or(jk1mwd=Yxw%NAD&m0*s4^#O@aU&nLjj9luL+~;; zu6MrNkr(X9^DqBCofmwTd_&U0c`na0dKo&bxE{&jG_Q(op2I&V1 zSONR;wltOc*c<*W#o?#y*|2}4JFr14_oSoVO_w-lm&I=#6`LWX`LMMt<(|};y?b9; z=G{$sz1>%|=dBU#we3+4BqMp6K5}+|9+)EDhO>JpU8cVFut!pXR=-@p3fUJ=rGb=V z*ZwPw(NeJeo#zmllxlzAkUX{eV$mmr8MWH`G{H_ftrzJZ3s@~y&qdn~AD^bXXwSM{ z6rks_JzB3lNHoL#z*U=zTdiu^TFVe=kLBW=MtZi=|e7mYT6BKz0M&LwdT&Yc#o>#EJE47Uw zUKgy?_6nO~DilXdIR%!L5&n&JI zpH{V5tz9QQAHsfK{Xgw}eSAz;_wN~V(gwj%K~!2nw4PEuXU^-)oS6v?QVk7Fi3;@+ zghr)G8>)tfwyM#h>Zp1&lvdSCs%aB_f+*F{AP7ZigJ6ar+SFU4?sv^gOw{jw?mzc) z|GD{mR`x!7eb;_jd+oK?K4<2PISRqR)&H0^INm3gnLC}=Z4`?0zYwLAT#Mj&yy&5 zmzkmUe&)&YiK!kbaM|xkT=t&Z{qoN4mrZ!pwc*GyC$`>q4!WU_ITYW<(X=N!sTF+$ zi$@e}##3=KeFb$-jyc-4`2s$)i^C;-K>~2xE(siDRt6Zjqd9Y1gx7)Yi$(t1KbNTM zsYd(d=C=42diUk#_VudH8e^B6yWLmQ4@bb`#>VC5EK@zB(+cyGrla}eSD2fc9=~!7 z%EV1a|JQ8rm6z*V=xa8|g2nV=idz%5CV}%$*cMm?mSOLdKgX{)X;?oCsPCOWg(Xr4=ld_uI z13bBY?LZOp3l+gFAz%b{ zW)WZoM(b7PKCQoa=N9hg`Hq)#6AgSYef5+XvsRg75%Pbr${b@lVeDRIeh6#Ev&y`& z-ql}>rJtD#@9X#gmfJpK$miyk_=4iApTkQWGM0UAZfzQ8eD}FI)s&Fma<%zdSiBXT zDk!OBIq#4(m{xLZ_}p$0@AfJei#-n$E4d1+C&9v(Tf8kk$FPEsV-+FVW zX1giRTm<~`2-MWO%KN=BZ@szSeItqCF+A(d58c;|^19J*gZUw@4f5~yszEi)sq~1U zZ7_G}b^ZwQBB1Lwa5T)@Q_8YJ9%I zEW2Ms-rveFDvh`dfwv$q*0*N&VkYs$liG?4AZ;aFq8GR!g!A3({_GyOri4qs1e{V^ z-?RX(d)3TxQ$J9NV_|XFwNH(-&#Q28WT2*47cL(#Xj*H@|NIy7)6C^sgsV-8Y@xbt;1kt8A)H6oA)_I`4pOz`$J*Z0sE0y zng^`Pp`_?iFFPb;dPx&20rB@?34x1^uh9u^d~NASDqU)LzM`3>e1_3*Bl2x1A7^wy z-d%GD`52ndwrIxF^cl>fr=jnE82ztRMiCm^M_``jwE6{rEBb^2NL%X(z>&@m5@35B zKrsMw2@pXwYy@C#Z@tR<=8BMEd4L&9m_ocf*!#W@Q|TRkH>4*)<{9^WZEoW(`3i2d zwwqJ|=i~l?3S{ahM)DNtQD$l&Vb^Ad!^%uNf0Y|tP;IO!7ZtLtldkSq*Hr;!!2$4z9tjT%o zCV_aowa$B)PJcmG6<8aHWa|xUc(|TSVkw)SLHxz$)+MKj9Exs{^DOySfQkPLnh$Q00qMWuH1o>Rc27lc;Tn59slBBVY#t zdfL>1lRNe92fTpbjRE)k-79n~1SlrJ)T?eFE)MdUhu5mXAjmdYZ`vn;Ebk2qmg?S{ zYM?a1dpVd*_8tpnhkCpEvop38L+{>AiVr?xTNLgWdQ-}MmN#P?y@|{_C%|+2K49;i zN|!-{D@6A?QTHA60W ztMZiZ{%2R8Ca6x(Olm(kV3}-&CtftQ_#9P3Z#kn8FS$oGVFXPu5(>NDJ zV;~)-kJ_KW_4psGmWr{P=*ifSMnKG01KlzESy2x*`cm?FYt6Xr|`L5_G+#v*|0 zUFcmO3Z)(MLqPq0>0J^k!3%@DxdEXWq2RRurxT}Btdb?t>3vl1|k8XMxPvC11xHTL*NjT`}MXjC%w ziX4&deF&PU)A#cwKvhz8O$g-H(7Md91g-j&4ajfej+-my4j zq-(gdb$gP>?fLbGx^qqw@f3+wlh{kXraj(QK1b92>oiTk7y`~V0oXkN>_x!G>i~}c zcnxl;pd$gJ0UVn`)|Q5r-J#l{!R#YoG6AcT{S$lRGt_we$x!u>8b2doY&`&f0&uL) z-!;2yEL7n%!X**zQ(uJ@-qlp$yZ#D;@dM50bA&9Urlj29LIF*1mp7l@p->cAr zliflGPc?o?z~clg1<==SxcABvKCdxz8&uLI#8ydQ3JJvH!_?kS0yRH12{pg%{zuh) z3CR)i)d2En8IVK%0qjV?BLwVCedt~pIDX-I$;isT$@Oeq6uK>!pc~b2qXjETrWIuH z$`m7QD?;LEcu*LEr?PA4KuO?R638NfUvP`VH&D*|o;NViq28I44eFYL?k5}zaY zt_cdTK6TK0QYt;?zOQTTWJ&$pBoh+`nb-U>-om@}_XI(%6C^oUZM1h1P&CeQgeHF{ zd2i!(xG$UH&GKhwY+FrEybAZYYdcCy=LEc3!BVQRUP`b^*4zH>hVuy)dmmuOaU7>X zRC!|W8U&5|eZpl?b$PY88sp_{=4STM#7ZPqHdyGLH~f{5&X5Y?36eyui~+>=88m8W zy|03(R>Yl3Tqkkq!)C;t>E~YB32qs2n-SL&;HLPv?(M`~OHS{2*MC#1t2tpi~kKMI?=o7<&X-=*q%h;@ME8*ag~6jT^V-NAk{JCfI^G!nO>y-P^|0~~pbKH7$zB*M3o3>p5< zounHHt!xUR(E%YILNIeUcF*H?36Q3nlE4uXP#|#IJ;_72-q^d4G+qzfQ$Z#n8v!|X zD6O66w*GVN6cLUi+!-9W>kM=iu_`#Qc89WxQ2QKW4dr@+w;_~AeH>4`>$r98T?iK5 zgXbN5Cd8jo=Mo8$O*Ov^2<`)uHR5!=!`v*rJ@HuFit{Fbw|!G_9I{vD)!g1x*cG`` zA0n4Wxla>ui^2CJ$KIM86w*%@du7VeuM>N>kjPOgo3s%*`aNRr8Y(O8iQLVj`Pnyi{v=OuybPDu0D7qCI0d)hVfYL$JK<|N8fW8GC0adkfhcV#~hA}Z99n>H65-1zA z473rn19Sj%2~@8&MgWQhNuX|^WY8$k6wo5jM$m51aZnYAjfM>95s(EG2kHYF0-ET? zzd4{Kpw*!7Kzl*QK<7a*$QK7r}oIG!MKB)C`)m#V|~H$hEZHFE^+!W8uyvFj zgXT7^f>0erGclZ0q;a5s8RHI`Uwba~8-H(y4@-*~mXR@j#IT8D#=pcc(LbAV|{Y0$BtnyoAAahngBd{hQGqD!E{{5Q+ZEju(# z{m?I40y&?4jdfw{qhbE+(J;1k*uFLBx^W|nea-F5!j#yOJBm&U$uAAbdqVQko;&#I zA^DP!eAM1Mn6!|5?wx#puIA1KSG@0zz|>NfTT_OQ#e#~F--h&4(6~eXvIWQ|0Dt=| z!##73;p&4rA7r?tC{H)K-_Q1}U4p@7G_3~8I)EjDG+6e3n$|$>>01oP9b~ydkdMLj z4y4l`z!K+791Gg{kcs>AVH5WZ=vT(%=5~acxILhP4km6qs9`I=Px$vECaxvG)VS%e ziEG^1#68y1#GSa$#O0Yx9L+HCQqfp5G?KU1#J#`A#2IL0`hJ$fud{NS6HMH}HWy@^|Z3VIv6 z!r4y$P$Km!vyA0NizcpnfT+KeFGTsh6narIap8wp?qQ@6!1Y0Q1}P@)l5FCLmjYfI zQmTWxx(qzZgXiW}gSj0SR3L+?1(?@SeuYP8y1zQ|rHQXFMThU*_>DLd7YE)OP#AS? zQ6Qy!bXR}by*m9Z*7cU2O-$S_WXeEeNYF4fU_Z77-B!-eELZX@ls?GBB_qEkkf-|c za6LP4odiC61jdb5d$Z>nwHsyP9tQmZ$}x5|WIJ_eGR?%@=QeT9SD<;M9B9KtG&;$| z6~Bhr1C26TMX)cpBRnSVz!?+wI%vV0Chp1%SVILgeC*x|(Esh4qOMS7Gyp#-fSrZ>qq9s8asmVi+zK=Z9e4rhZzyY!-?S0?qN(lR zIVPW1B+uAvfr;CM>(L+LL-=z|+;a;}-2D9iG-ls7-P5$BUs&$g=a_oXSx|>{FqxGm zu2&As`%@El^Gm;pR0H=b_+hL4GaC7oiCg=HiF*jRPAfoPV|hUKLEwL0j%5R^e@1I3 z^uEB1e#NmZ-Pu?|p#zUT{y#4>!qGCL)UzEHIAQz<(rr9s$jW@X1=1M@O`MJ|IqfPn zaZUD{ICB|Zx{tC1lwCquF3JLZa@VmkQe66pd(URDlT*R}KT%W}aQ9Nwa&+d7qF`Z|X%9JT-!$+g8j>i5HwwW8hdP)8V?1>{{pL!l&fkyX3 z%aXfxr84{^<{ezJABQ`}jP@90vwT%&5iawAFlHgrE+eT7zO5Nf5p+GqhrzGt;AC{C ztPS-EUz|Wxg+dPo830OD7TMhR_a1hM5wn-&o6g}8#ZqbDuYoaaFWV_%D(<V8~D;Nt}I+eR8yd)Y)b{?0|Xk-CqKU^4?H z)AzB_?9xznA+hoK0iSd^v1@|Z3v7fb*=SqJK8w$GBWYtSEM=#fqKu~d*+=V5a2e|l zvF)12@Lz5wDG3wV&-&zbH_;mP*^S*n~p?frvml|@ybcvfYa{0n6x82XcZh8tRe+DF1czIUJoV=YQe)mBHrikhvym)^4+R-H zrEH9$A7;brOSmLdjM4ir+p_u7I7{J*nT=u^=t88q#^l4St8I{V97S}Htwze>myJ4u z{IH{k*+I26q@b8;NJE-yJoPi%zLqsFz*_2K&G?yZ-FEUYf4jj(ioqf!A3<8}gKY*3 zuTDLRWN_^8y66~u9)!?5QXd*!!zB~(xbKH#>16}Aeb@NsxvQnrfNVxk*64eLZQb03 zCP?f;$jr_*W*lMhQ;(Fi_F0Ay>~9sM$?eop2zo(PjM{p~I9OxGQMRQKw-;6wbrh=S zsi2LKa1@i6>dQB39D+xaNBvFKiWQSsIhFhSU|c`SMut5%pN=I>kFjm=MQnkRen#J8 zIEy{HnBjUDFH=clV?Ihcq<+M3Z-Pi8!Tukw_G_>bsefAb1KRxh62BHKMR$e}ZtVXB zJ&ySWJ(ei%??&zHX8!4)_^C*9jbY$FbYVr^)>a1~c|OQT1WCh@(Wh_xRv@K+APrh_ zDYat9=k&WCN5h?uW0}WMz7s70D#||2Mw@c{`Qqc~*KuFI(I0iXJ?sQ^`vjyVgYu2G zg|O49NW?pIeW*M_6;uAM!A0Pc2xQe!NOO%_;3u5cJYWSCaUFS|i@^hPzjy5X8%7&v%>NBTOQC#* zFW=}2ew&A+2)&q!I^pH0KGgBw;6bVkQ#p#DhjIuemSeO-DeqGNiW)tJAFc|@7aQ9M zTup$x)WPH7HmO5LnrpN@iHXd-QCA)50mwujWFR2Tp96&E_#%FcBG|}0tAlW08F=z9um{S=ClC{J(E_7yFqqFm#vQ?QTKav^Mk^KmYHCmo%i$R+%~DJS{HPwd zz=j)cBvVOxpkz8-EDdGnQAu&2q`ZRm*id%#8NX9M!?x)iT#&Qy7?w0U4{6Yfb_oBp zqGf&k!wJe22IPuK&RBPbZQX1}5)P>T0sH9`dQd7uI$o#)}duv?Q5I(gP*a>0)UpJC90=gC$4V@LHWl z;IX35iy(y;@j|CPKB=qI_y8n{AOW2&yvO`^x=U_qKyJ3L>T&1U*4ANnLGl8SqL8Xr z-($L_8rvWaU)uBnlv8saqv7!IuT~*E;zKq*v?P^EG6N;k>7po&6w5fQPsUlztKQ!b4od z~j{}QQlos{L5^owi_GNiyq;=$C)#Ci{DXZ|@5$=iNN)rVZbXzrg>=4;NMlp9yP(^}uMZ8~X zA+?rbq(o_uG*lWXeI$J*t(A^QXQT^KOF344Oztm_kjJ>?59R;JtK`k{_i~l|r`%2H zsbnc{E7{6?WwTPE>{kve_0*c?u1x=P)zmaAvf^Qx?E)|y&l ztR1Y6S^HZ@TE|+)TR*n0v2L*DSx;CmSgWjmS~F~uZ7XbhY=>;8Y#v(^yJ~mX)9sV& z?ri%n_WJt6dJjESAFhwpC+c77+w~ItnjY0>Uzbs z-t~v;hKq^A5fpW_GD?}CyrxW5Rx9~Rp|VZ6sMIKUU5jc_yQ)3Z zr`6Zgnd)qHuDVGrR`;j})W6jRS`#f&i_@OblC^=_o7!A$m9|FPs~vW0C$(EzJ*#Lf zux_!ISua`Z+d9}p+Y7cd+ezC^+ijc8?!r7xu`jiMYTs?&XYZl+)d%P!^mKidzD7T& zpVT8AtsEyEXB`hY+c}e+L!2X=i=5v%w>tMa4?-JPoL8NHIqSKax>~qeyL!6%y9T+2 zyIyv^>UziZp3D7-tI+j}>x%2Diy4aV{X=t)@W=R5{O?ejEI5STLb~vduw3|DC=`AX zt_v+KlI0o8OP0Bob(V$l=W;0~M^Jhw{gn|gTtiV{rb%jw`jR?F{Y1@!4$i7CY9DBq zwQCq?g!OqC=rrpb>wN2%)*aTfZfmu*k?lj ztu$QnN>`+(kU%yPKgSdNq*l-s!F4ss`1kQG^% zyU7W1Z~0kyp!|ZICXbafTNYlYp6BVT4>Q)JFTPkxF%{=&85X_y|g5)zcxr4rj6FdX%n>R z+FRNuSU5%6POO@9S}SX;wUf1*3Yf$toy8otd-W^VNcC$U2KxAmn|97HqQ3C zZH8@$Eywn~?SSnFEbN+%v$wF@>~Z!qyL+7d9s2_NdV8LIkNu$iiv1dlu7%zc3v8@j zsDG~~IVL++I5s*89Dg~ooYS1MoO7J>oT}?48QDB|LpYgE{1kpJpTn=^3;8|#AAGpb zL})HNDhR^+!ct+o@RLv>JZO2;^0-B}JZVX=^tJT2ykL37^19_cw`Gat3(I;-K3wTp z%SCJ}*I|GUh|%I>qD34pz9zmWE)b78cwx`y=`jx~fmp=jsdf-Ec4E`USmOH#=0vDTm3~&>8LQ=oFlNoC};E zJ3n)-bMAqYIqLk)dB%Cc`MdLmlX2beYV2z6igv}iI=duSoa-r9A6K$#h%4Qd<(lnU z>{{+Ba~*S)yUw~QUBA0&L&$+DDSYGa=Nt3Q`Dng9--#D_JKuwUn(xaG;z#mX{2P1; ze-6s6Co~kIgr34P!cbw9kRfCV9}AxftA)M7LBRsmzHE8Vvcd8f_K-f}Kyf7WbyD<- z&80`A0%&K8@{`g^Z42l8z1l)^YVIrAV(Y86cWo=-eD1S1vParm+hgqif(v@u-WPfq zf^BlD{cZbldy##w{g(Y9y&Lw)Df%q^KYFpgS3j!X)bDpRb;yq1j((05#|w@Z9q%|6 zI=*pSaD+LVI4#b8&MD3r&K1sIprdftBd#RZXt>|`u3Xm^*G{+V5LChB;=U>r!0;{j zSYAUoG8`j*m*33)$p6jP7n%u=2o@nu=p&@SYmE_J72XiGV%Mw?eiyC@O)MQ@THRn$ z3t>N<#G&FcQIz7Pf!Nq)NDHLTr7hAy>Adup)Lgd6J>(>Lw7gd?mmSJr#XS+Ly=?W!%--pk(K zJ`5V#ucta9oxJmT=PS-K=dZAZzOEFElPSWOFs?^=osZ}9;VH}bYQC57jj&TFMfW4z z==orTRArVi`U)M$QlIO_TdZS6QFMqs;6_J@ZCh{KZ98KdXdh*N3C29lKFhwso^KD+AJ8AvWA(>$UVl>WrKjj4^$GeM zeV)EVU$48Fa)wDnyMK#Kq<>2$xh2A}ujOZyHmZc(yq`J_{*3(CUiIJB^VS>IE4C?) zMeqitj^mC7&gRZG&L^Bs=QGab&dpAyiecyxRbR_S%Nff@Vu3hWnki*V|B=3wzLMUQ zx5~Pbto*E2K*xWp6X4F~xe*5J)=pz4>Hh0Srgb(J;W+Quf>cG*g8zu3ICTejEj zi|i}yo9*%XX!LxYep#>4TQ~+dmOIB```!gtWWwDb-1Ot0;-BX~6&%t;mRarmMTupAc%+x3#jx+J3R0vR|~{ zu-~?~hef;rulXKAk{_L?oDaEd*ra#5PP&*F6O-Xa<*oP>{w>}vBnyLt_k{l-_>Qv- zv<$U;U|9jb*h>6Kd{CMT568;&Wlnxr7G;;*1>uHSeL#&?yQp?-K?BsM?c?kp*+0RI zZ?S*tc+U9_mRld!4A)Y>t41(L1L*+2@(TZNzJ{M*aU+OvFR(1OtigP3xBLVnJY%^I z1;wi!wAI>wwWC&tZ5jfTR`zxFdU`WGMt=@#f1$oy@8f(Cd%<$&Vdr%xMYJX+!B@G3 zck*NTSNSj@$I@B6Ca%R+{i{40(c%JSgl(oRU7w-P*1yKS^0R(XR~izN3F zX_>SFXOlJ3ap|TsSgw>GM{v+ewPH>OK@0iX4o$SaVcld~ZjW(na_om+%XKoDCMMZu z7k2(R?0p~c3xy6AH_kvWN*kq}(ocw=u1XmQO=c;7DD~k_X4`A@+l~&-sR+|nyEeG; z;Qe;FO5LuXVG7m$Iht;whVmPTm{!PN%K7q-@?k_s=Mla$N(012Z4nb`h=-n0 z+=zePQQYq-OMS6VKH~Tvl|9Nq<&5&Xa$WgbY2=G_WE{C(Rtx-#F>ocqNqya z5CgW6`^p34$!>YN?1hS2!pW>r({N@J^$5iCpE^Et?sA^M60{>?f7zAo`j2akYpd%A z*9F%#?3gAd28uc+G?8MZ4`dZx`oQjTBswx3Ie7aRlWU?=7W1|6gRoI@p{eCKsBBj* zA&_gXCaXUo0E^WWbl#n89cA5XEw?^p8({m^HpzZk@9z8(e%s{p+dT!Z(B0w?bHxkN zD)oKX!v^h`=GFezp0=l8U;M!SyQ7jKp;D7CAP(ne!~J~0Ckf+(H-%R$i*Q~pux!PV zs}$i4BQ``_JXkCd&mw&3Aw46Fb4yv+qu!SmOPi!39E^L(v*lRjUy1}rnWl_I{Nh$k z+8ssqcYb;K$LmaWr_nqr;vWalbLNKx2wVOIn?pO5#JkL9Lga3^`%Qrwsen>ba zOoksh312uC2lNeMp_nD*%RA%@WirCvVSAJ+rLp>`+DFY$-%#IGSE#Gi`?cm;g7&hO zt)b#7zpCHn-$S*__%6atG0pX+D+fO8fa?gFuE!9J!Qo;P{Ns=OOv`r)r+$sI&d1m> z8s~TD8P=)2J6+4tRwC>wh0?1u&KiXSdq*n|dx^6qSd*<2;rMf`t8rv6!)%1xB5j&2 z)0SnMZp*fHt;OhbcAg4;6rz~JXobQr0FV_k#O*dhNe^bG=3^Si_hlgVV$n!^RU5} zVzrj@6}*S9Ar(udIE91i}`S`%K=aQ;uw5^)D0U7KhO%Lr@kuFxvAYAp)q zn9kOCYmzk+XPKoif?^m!wY3H}Q6g+nFobvVOfr;c}_>O!Wp8$8B43o)3XgeK#BAa(F^zCp3d=b9`(S12=rV2ZA zv=A%sLJ~}c%w(RBD-^&$DuhayMwBH6Mv(}E$bu=XwB*9E9DymYxD^+Ln{jd26Ebk< zo-XEyYvE|h#B!XI!X-|Ml%jD~(xf;TM52@oqsS!ZGhLd62rUQ3kt-EQg)k8^506wW zMat1~M;ytMVHne45<3FsP=P(N8rw;X(mBK&a+Ol$IPL?5s~r(JCabAxI_?3@Q7U zN8l7Z2(QR0I9q2M537i?B_J$MvZcT_Cfa5r0xrhAy>K{+1cc<|CW_%AX#V5jAZYei z>pOgNAMWVrNN}XP9kU&)ee)ge;RTe`N*zwoFv(3>r=1cFwmS@PWWAcYpUh{^#6# zzsGv_axZ>1#4Q-X*nJyg3mRSFXv3dv!ZEXE+QPcE$wK$CoGnnRy5y@EF@f`se6=w; zZmvsXOmwygt`??uzrh%r?Dv#i@$8xgzSu%O4erKH#4%kxPGS=*R~u!jQWx`DIIkYd zkKs5H9;gl6Ph?yyI=ec?p_a$_KvZP~Z$f_DzNZVuV5Nkt;QkDB>@$1qRd5;TG$}SRlF%%L(3)N$H3?ba8O?axW;rgD zK14xAaW`O(CMW3t#W@2WXD2o*F2*{0Ab@owJJ#8v$nUGu{SfmjAU-~=suA-QO-{ma z(Ro>LUB(?PqFs;|Lvhr1;!t`a((A^<_{JG}2a`m1Ct5n(#{T?^1M4(PCwEDJkK>It z@{#rlH1=+8U#~&Z_QKED>y3dLFG?DI!Q~&+E5(ss$xwQ&q?dyp>~*iy>o3&n8AE@s zT?6af8;x?#vjS{NFxtpR+BeboNUtrV?T1ej(yC&u=_LS@z)ck>&X*Wh;cVIi+(3mMxUBj|;BjgO*2e)Pi*=y(ZFATi{ilb>7l}f>%?i zog;$l$RI(ABf--c@JNFVB=`aRs7o`vHBj$0c&JOUk&%*1he|$9$&bMdeOhVFz~r#G zzg8VdI1eiBw>E|M6Un<@;k^il^;TQ6T=+vpY~SOfo(k8%@A^r$KjgUiL&fcmnj7PhK-31 zjbtH#vv4XgS<_eWAY8@x)r$BP5TE3jAXz9rJDEBzAGTm@GOSL@)oxQLG(&xo!!B7! zp>8B8ln$#<3I8TJw4e~kgQ+HmMzWAV53DsQTK*N@GkqKP8O0le2_|2~$Xc$ZR~k+? zL058CiV5#t(QWFh=)5hqi9Fcj%NzA1*P61>D<4k>Y)f(2B@0#h93N4lySr!5DfjKx zUbvp(&^iNbOEyQ<_Sk~<+>&6?O-jAZQ zGpNG^e9a54E_}KmSjbICJJ?ah;S_N1rlz=0fqGEP$FONKGZuciW2+*@x0KX#@{hw z*){!km*nd7l(l$v?`XtQ{6hE^^%spY8_|i(iRt$aauo4Pj1|))nkLUh94g}35gtK2 zGr}>%xe<;f#%B)Ys-Y=;E_eHS(${l-%C|Q2JI-(WW>{B6alh|S)*=;u0q*9^;_H05 zl1MB)8IAY&=hZATn=v{D;tJ$cnX8eXkhv9knanJQv3F%I zLOvk#dgMl#y~x*PHsI3#Le{AmYeA-?L9SvdJ7cEEgykV;%e)zRrp#XCGGYy5Q}P(w zO^lb>V&o>7%aN}m>v2I1HpV(-uE*WHFSA$8*hFlAVv1rIdtFr(nN-9vc35`Mfdyo) zN4_I-CMNtRGaeI*LLchjhq1&6Mg(V|`>JsG9L1BMd& zv#PE=KTbnNx>MjajLDEmCx(1t1c#NYv5yymh8(*R$3D+#>ihac?_zxw{9~|s-p6{) zkXDq-;u*<(23NG4RzbZO($U-r@%*~TFN~XUTI{OFBH0_kNT=7_UmqCQr&Zax6B2A6 zZnjg7yx+xO@8b5&8Yb^L_-44(b84VRrQ#8k+`&P!l8*fDjpx@+emR)IS(}wvf2LVm zP5rZ89oVO1B-)8zN$^an*-km~K8wNs&DuuZet0j{>bX78!>xE6mfVL2%}P4*TOQ9Z zM1Hd|gR_35%zBPy?GXBBH54NE-(*=zpMw&V8O?Uek@w$uab`V3-tDm3=$uzP(4z(A zvbbMz?;kWP>B!F;&o4-RtD)UE2DTXm!+6DHpXA;LpBS@8rpGHeOeN7=s7@=KH*??& zM{{Y0J(7FRpczOUfqqZGA89#u3R3aZc*XmuxDZMNYentA z;+vNKUiD-l?$kVQ7c|*-loHUMu6h4xmp@fMA?@Ac6_jceftVZ8k(Rrhc_-44<@ zpxET(U&4ITB4?D;zsiR2)*J-yCd_x@UDEf=Djg_~=B6_KFbHOwaU8y0gHJr|crVIeaH0P?god_4JX3 zr_aFE5sn-kKE1Lxv#+CgRlXwg@Qr{i`w?!`IWVhk&yTPs$K_Na)agTfMakaizk_zU zZ?#^BlQ}M9fyQ74aEoiK5+MV#Vh|b9;FbW3ETzW#G!CCav&CglBIK|EzO!g9_DQ&D z!Tr?eb75?*%c(?2e?5&xzBFXV)37nuZ&jB^P{b#C#mcQ5-U*N874Z&uId2}H11IvF zJRff6t>+)Z@{!y50{DAmp2wQXm{3qhw|Aw}*F6E5^s>Nhuz$Il?SGU}_0;)740 zkFppE-yM!Yv0HL?k`kmF`uLa^f?~mWa2|)ycZ8>BpgADiGsJO_q04g3WnrkQfD%L zkC7`c32(fpq$0k`Hs97wd$AQi-t#NXmxwm>9S4~cFOG2n@qET6QzDU0X2uda;s;|q zjJPz$NyPZ(Abm0%%%A;P!SkFS4Xm}D<-9xaK;eo69t!MoEYR^aaBIv|?g^BZd@;;I z-_2^VtOEaLmEZw?=zJY;*Mi9{_{Iua7%$Ib$yNDG7c5|jK^w+KG0w1?t&k7lF81PKOnnKrt@}qbo%%#|8TrQe<~hAbZ9Z-p$nR(X9(?vsyc29@w&ti4;F_Y zFnzSqmdw~RY@UV-GyyuMukc((%I9^=R?L_V*PVDNa<y?N@5b1}bWX<1xVDs-fb3BDW#lrI8uT*Zq)%>%U^^BEZAJSAMF}6zQiJh!VVQjaWpba~(vLE?3 zl_y|9ROJwU4edcjAN)lR)FI$CF=kV^PT^ur{6P&@#hA0%Sg^eJ1o^SZQ_v%g)YZ16djLL5ZAn6GUFRi_Oc{?%zI^ zkSNh7mjJgt@FE~hUG(qpFyu-hr>Ttql=fN`Dj+_nr(vfS>;{wFU~&o$+8$UTWCq+E zt>iNEh0Ix2JEp=tS2VmS8uEF=T+z_U){ZG_nTV<2Q9j0U?9zf!7$a(oVG$Awgv6KJ z-Ao}d4RW6cht`1^O|64mB5Fq`wLhX;wCxa*2SD&5y{n}^J5Tge(Z7lJyG8%c%wsET`2&{& z*X4LI1X{2a#%ndkI|F4{mqS==5BNAgSMXne94yO0J_kF_!C}L$+9OHH$An}EBtwSe zZXtO$m$U`Wf;COe7Mcz0Gh5}HN0S0hE}*U+hMgDg!iOOjRte+P1~erAdqI-c9=G1yf*Eh*8? zS+!FU!}&u$_@{i5)bE7{5Bu3sGbvuVysx{ozG*Ld-bUEkf>)7qQXEl}3oI{e%TNVFEBkD@f^w*qu3k?>QJw5}(RP)gvjY12B#(E@9Ce zpJg|6>*Lu4ATBeAm-3MKatd*|K|I6ia($K}B<^D?bN${Q46Ca+aaRiQJa~{JE@0h2 z+z;J)KKl)b4;jRZFgs1%nnGM;5RWq@&u8%?aVJ}!=l5PU+}y>9kEak%fCo8Zfc541 zMs-2AZpme){7GKTV4ljsA(y8x=Nim+*y8*zvJV>`;;~5uA)5V&(XxnrP*`5zvGQF~ zcul5lV_eU&#(poXrj}wbr(a~1#eQ!;j3!+jf@2LkX2^Ki9>=xfbL{D2pXDv+*6(6( z75l5!8^rOPcshmH312y>I@-q4T~(Hu$UMbrU4Czd!Q2NfVSlAC?FMr*+u`zAjyr*P zGwTB4a}Y|^d`>))LTm*SvUr8%x?d@~&oHmRfz#ATvYYQ^{Zn?%T}exyFIh<6U`-{J z@OO4yNtpJqp_08tdqxw|793JGAM1cUz2sA+t;-H4O>ba_#+EcM#E-ZJI~F@!`hI0bP9gj<59h~{$+jOYLp&BQ)t<8`DR$MnDEBsfQZOeR~3dU_8D>Qt? zZ&PQms?udmaiL=|fzD|WkHWYYh2Mjl(uSOj@Ri9n^`&cAF@<~jwBB$c14ixD796u} z3t_Q6y_0=cT6oVB0KguFStVA9*o5)DB2L4&NyKK1ZxV4j#?wV?!PqZiJn@NfBFi276Z^Jo8>P3zn#;>grmOw2t(BQ(YGu!Q1Jo1y+WTI55&qxwAh2h{ zZ^8>VxDbcfi`UI6UJ7T~4qx}xC4@G5AnPHf4iBOBGWJ_~Rm@W}-bo{@p?=bgK?g}A zgHE`01iSLj&D)BQC4@$gOVvn5pVTo%5ZXsuq z0MR^kZ~dwimQy2N!7FF*`aUtJ^WyAZ?1jB?yU$on$U zEgQ}Nw&D6z2*QBGWSqd4C60gyUe#a@`#VMpyi(#2o)WlTk~sPQbDzY68Bm1rNxw|2 zmI8lEytEAIgqYF^0e$!pms4O^CvlZ?9J+?9M$`i%@T~%Kz1vXYfs_Q|bt7Aw0-8{8L0mFdEuYiEWpg zL>Hw_)|J$oJ1dtEuT~%S`kTT;QJ)9?xK6Fh+nRZaU9e7|@3Oe$BD$HCB$toy78A0w zp~QESDxcrecm6vt5E%~j-qxnDx7A$AHYQJ}wM50o^_0kdPR(?hMg83z?%`!#?-cbnm`!ms z-^S&@bvcP8T73Ze1&n^@VHlSBpy20neum)hgd8l(M|=)8oP%A#E>(x4k}HIy4PuHY*1Lgf;3 z+RCivsLEb8$Cm5tfeM((7E%8Ylr^;vP7CB#v4CwLtt>}1g%ZFiAl{+fY z#939N5yJsQLuhdI|I*%Q`WZ}XYK`!XX`--??ODzw;h~7rJiEcWrrs7FZ0v@;(s>JP z!8%;a<|b=-!F5q^j=9r{>2CH++D11%vT>b(u0U8H0i~LH4o$=J$0x8A)a9Uw{h2nU z@V5*?BCC@L+17MAA&wBG?Scg=VFED4e(0eeWHZt$+}}eeiR-dZ^|Kh&>(ECI&So9y zWfm2QS?m%J=NQDBnMgbwLu@pN=UGWcnI#E{yV=5w3ilPm>T{gOlS8p$GEo`%(Lm(a%Bv2yum!eyjkC+d|-I!4&`P0Xvz|!q>g>)D9pB{@?GK> zlxc11(f=71y5%UR7Au(3FSE>?3inm$CS4tba}7JD&v@82`{3XbnTopb1WtTwM0 z{?o3>^V1XTPTv0EJCX=#t?%=0JJ$}Idhs{j)-yIZYWhTWFh6hURD6wVu*LD5=ELTP zSE>&0KOJ5nDR5BWyyJO^tcOECFkgq!9vJN*O3OUR0INrTV1>Z{C{Ed4!&CJ=%GX}% ze_WxcV_D9K<#T@!Iu;Y?ghiZy@o5zP7;fHH9^=U(He*~NVhhG2MV!E95nAISWP^*Cd@e#s0lRB14Y?{urO_apUOQ%rFO9?zUpm}6@D|L5 zTl;Xh_0+=6SBJS7Acj}a-r%FIPTFnip~0eV_Gzu#z6=&0uc`1!h2`&Lk=h;2S0Ku# zKGHjy50ZFTZp5w!8{mCtv@JWG35-%%2 zIvggzpbvlIQp_B{x`@lgv2PHM9x^_82yPIV>&-`r6)_3Kn}^`0A-H7--Zccj9qOvj hFxe+GY-wEc>Z;`{=WSZPY1PsvCWa!@f5)>%{sT!R#Y+GH diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp index 12659e20..cfaf2ec0 100644 --- a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +++ b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp @@ -27,8 +27,8 @@ DWORD GetPythonThreadId(PythonVersion version, PyThreadState* curThread) { threadId = (DWORD)((PyThreadState_30_33*)curThread)->thread_id; } else if (PyThreadState_34_36::IsFor(version)) { threadId = (DWORD)((PyThreadState_34_36*)curThread)->thread_id; - } else if (PyThreadState_37::IsFor(version)) { - threadId = (DWORD)((PyThreadState_37*)curThread)->thread_id; + } else if (PyThreadState_37_38::IsFor(version)) { + threadId = (DWORD)((PyThreadState_37_38*)curThread)->thread_id; } return threadId; } diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace_37.hpp b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace_37.hpp index c1118b36..5ecbd146 100644 --- a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace_37.hpp +++ b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace_37.hpp @@ -149,7 +149,7 @@ InternalTraceTrampoline_37(PyObject *self, PyFrameObject *frame, void InternalPySetTrace_37(PyThreadState* curThread, PyObjectHolder* traceFunc, bool isDebug) { - PyThreadState_37* tstate = reinterpret_cast(curThread); + PyThreadState_37_38* tstate = reinterpret_cast(curThread); PyObject *temp = tstate->c_traceobj; // We can't increase _Py_TracingPossible. Everything else should be equal to CPython. diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp index 6e6146f2..ef8b0d86 100644 --- a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +++ b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp @@ -17,7 +17,8 @@ enum PythonVersion { PythonVersion_34 = 0x0304, PythonVersion_35 = 0x0305, PythonVersion_36 = 0x0306, - PythonVersion_37 = 0x0307 + PythonVersion_37 = 0x0307, + PythonVersion_38 = 0x0308 }; @@ -65,6 +66,7 @@ static PythonVersion GetPythonVersion(void *module) { case '5': return PythonVersion_35; case '6': return PythonVersion_36; case '7': return PythonVersion_37; + case '8': return PythonVersion_38; } } } diff --git a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/python.h b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/python.h index b69bd909..38b5105d 100644 --- a/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/python.h +++ b/src/ptvsd/_vendored/pydevd/pydevd_attach_to_process/common/python.h @@ -191,14 +191,74 @@ public: void *co_zombieframe; /* for optimization only (see frameobject.c) */ static bool IsFor(int majorVersion, int minorVersion) { - return majorVersion == 3 && minorVersion >= 7; + return majorVersion == 3 && minorVersion == 7; } static bool IsFor(PythonVersion version) { - return version >= PythonVersion_37; + return version == PythonVersion_37; } }; +typedef struct _PyOpcache _PyOpcache; + +// 3.8 +class PyCodeObject38 : public PyObject { +public: + int co_argcount; /* #arguments, except *args */ + int co_posonlyargcount; /* #positional only arguments */ + int co_kwonlyargcount; /* #keyword only arguments */ + int co_nlocals; /* #local variables */ + int co_stacksize; /* #entries needed for evaluation stack */ + int co_flags; /* CO_..., see below */ + int co_firstlineno; /* first source line number */ + PyObject *co_code; /* instruction opcodes */ + PyObject *co_consts; /* list (constants used) */ + PyObject *co_names; /* list of strings (names used) */ + PyObject *co_varnames; /* tuple of strings (local variable names) */ + PyObject *co_freevars; /* tuple of strings (free variable names) */ + PyObject *co_cellvars; /* tuple of strings (cell variable names) */ + /* The rest aren't used in either hash or comparisons, except for co_name, + used in both. This is done to preserve the name and line number + for tracebacks and debuggers; otherwise, constant de-duplication + would collapse identical functions/lambdas defined on different lines. + */ + SSIZE_T *co_cell2arg; /* Maps cell vars which are arguments. */ + PyObject *co_filename; /* unicode (where it was loaded from) */ + PyObject *co_name; /* unicode (name, for reference) */ + PyObject *co_lnotab; /* string (encoding addr<->lineno mapping) See + Objects/lnotab_notes.txt for details. */ + void *co_zombieframe; /* for optimization only (see frameobject.c) */ + PyObject *co_weakreflist; /* to support weakrefs to code objects */ + /* Scratch space for extra data relating to the code object. + Type is a void* to keep the format private in codeobject.c to force + people to go through the proper APIs. */ + void *co_extra; + + /* Per opcodes just-in-time cache + * + * To reduce cache size, we use indirect mapping from opcode index to + * cache object: + * cache = co_opcache[co_opcache_map[next_instr - first_instr] - 1] + */ + + // co_opcache_map is indexed by (next_instr - first_instr). + // * 0 means there is no cache for this opcode. + // * n > 0 means there is cache in co_opcache[n-1]. + unsigned char *co_opcache_map; + _PyOpcache *co_opcache; + int co_opcache_flag; // used to determine when create a cache. + unsigned char co_opcache_size; // length of co_opcache. + + static bool IsFor(int majorVersion, int minorVersion) { + return majorVersion == 3 && minorVersion == 8; + } + + static bool IsFor(PythonVersion version) { + return version == PythonVersion_38; + } + +}; + // 2.5 - 3.7 class PyFunctionObject : public PyObject { public: @@ -291,7 +351,7 @@ public: } }; -class PyFrameObject37 : public PyFrameObject { +class PyFrameObject37_38 : public PyFrameObject { public: char f_trace_lines; /* Emit per-line trace events? */ char f_trace_opcodes; /* Emit per-opcode trace events? */ @@ -604,7 +664,7 @@ struct _PyErr_StackItem { struct _PyErr_StackItem *previous_item; }; -class PyThreadState_37 : public PyThreadState { +class PyThreadState_37_38 : public PyThreadState { public: PyThreadState * prev; PyThreadState *next; diff --git a/src/ptvsd/_vendored/pydevd/pydevd_tracing.py b/src/ptvsd/_vendored/pydevd/pydevd_tracing.py index 95c4687e..2865a21b 100644 --- a/src/ptvsd/_vendored/pydevd/pydevd_tracing.py +++ b/src/ptvsd/_vendored/pydevd/pydevd_tracing.py @@ -109,7 +109,7 @@ def restore_sys_set_trace_func(): def load_python_helper_lib(): - if not IS_CPYTHON or ctypes is None or sys.version_info[:2] > (3, 7): + if not IS_CPYTHON or ctypes is None or sys.version_info[:2] > (3, 8): return None if IS_WINDOWS: diff --git a/src/ptvsd/_vendored/pydevd/setup_cython.py b/src/ptvsd/_vendored/pydevd/setup_cython.py index eeb18eba..9bb409cb 100644 --- a/src/ptvsd/_vendored/pydevd/setup_cython.py +++ b/src/ptvsd/_vendored/pydevd/setup_cython.py @@ -66,19 +66,42 @@ def build_extension(dir_name, extension_name, target_pydevd_name, force_cython, try: if force_cython: from Cython.Build import cythonize # @UnusedImport - ext_modules = cythonize([ + # Generate the .c files in cythonize (will not compile at this point). + cythonize([ "%s/%s.pyx" % (dir_name, target_pydevd_name,), ]) - else: - # Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py). - from distutils.extension import Extension - ext_modules = [Extension("%s%s.%s" % (dir_name, "_ext" if extended else "", target_pydevd_name,), - [os.path.join(dir_name, "%s.c" % target_pydevd_name), ], - # uncomment to generate pdbs for visual studio. - # extra_compile_args=["-Zi", "/Od"], - # extra_link_args=["-debug"], - )] + # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame. + # i.e.: we change #include "pystate.h" to also #include "internal/pycore_pystate.h" + # if compiling on Python 3.8. + c_files = [os.path.join(dir_name, "%s.c" % target_pydevd_name), ] + for c_file in c_files: + with open(c_file, 'r') as stream: + c_file_contents = stream.read() + + c_file_contents = c_file_contents.replace('#include "pystate.h"', '''#include "pystate.h" +#if PY_VERSION_HEX >= 0x03080000 +#include "internal/pycore_pystate.h" +#endif +''') + c_file_contents = c_file_contents.replace('\r\n', '\n').replace('\r', '\n') + + with open(c_file, 'w') as stream: + stream.write(c_file_contents) + + # Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py). + from distutils.extension import Extension + ext_modules = [Extension("%s%s.%s" % (dir_name, "_ext" if extended else "", target_pydevd_name,), + c_files, + # uncomment to generate pdbs for visual studio. + # extra_compile_args=["-Zi", "/Od"], + # extra_link_args=["-debug"], + )] + + # This is needed in CPython 3.8 to be able to include internal/pycore_pystate.h + # (needed to set PyInterpreterState.eval_frame). + for module in ext_modules: + module.define_macros = [('Py_BUILD_CORE_MODULE', '1')] setup( name='Cythonize', ext_modules=ext_modules diff --git a/src/ptvsd/_vendored/pydevd/tests/test_pyserver.py b/src/ptvsd/_vendored/pydevd/tests/test_pyserver.py index d7d8610b..dfb5e785 100644 --- a/src/ptvsd/_vendored/pydevd/tests/test_pyserver.py +++ b/src/ptvsd/_vendored/pydevd/tests/test_pyserver.py @@ -7,31 +7,33 @@ from _pydev_imps._pydev_saved_modules import thread start_new_thread = thread.start_new_thread - IS_PYTHON_3_ONWARDS = sys.version_info[0] >= 3 IS_JYTHON = sys.platform.find('java') != -1 try: - import __builtin__ #@UnusedImport + import __builtin__ # @UnusedImport BUILTIN_MOD = '__builtin__' except ImportError: BUILTIN_MOD = 'builtins' - if not IS_JYTHON: import pycompletionserver import socket if not IS_PYTHON_3_ONWARDS: from urllib import quote_plus, unquote_plus + def send(s, msg): s.send(msg) + else: - from urllib.parse import quote_plus, unquote_plus #Python 3.0 + from urllib.parse import quote_plus, unquote_plus # Python 3.0 + def send(s, msg): s.send(bytearray(msg, 'utf-8')) import unittest + @pytest.mark.skipif(IS_JYTHON, reason='Not applicable to Jython') class TestCPython(unittest.TestCase): @@ -60,7 +62,7 @@ class TestCPython(unittest.TestCase): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind((pycompletionserver.HOST, 0)) - server.listen(1) #socket to receive messages. + server.listen(1) # socket to receive messages. t = pycompletionserver.CompletionServer(server.getsockname()[1]) t.exit_process_on_kill = False @@ -70,7 +72,6 @@ class TestCPython(unittest.TestCase): return t, s - def read_msg(self): finish = False msg = '' @@ -93,21 +94,22 @@ class TestCPython(unittest.TestCase): self.socket = socket try: - #now that we have the connections all set up, check the code completion messages. + # now that we have the connections all set up, check the code completion messages. msg = quote_plus('math') - send(socket, '@@IMPORTS:%sEND@@' % msg) #math completions + send(socket, '@@IMPORTS:%sEND@@' % msg) # math completions completions = self.read_msg() - #print_ unquote_plus(completions) + # print_ unquote_plus(completions) - #math is a builtin and because of that, it starts with None as a file + # math is a builtin and because of that, it starts with None as a file start = '@@COMPLETIONS(None,(__doc__,' start_2 = '@@COMPLETIONS(None,(__name__,' if ('/math.so,' in completions or - '/math.cpython-33m.so,' in completions or - '/math.cpython-34m.so,' in completions or - 'math.cpython-35m' in completions or + '/math.cpython-33m.so,' in completions or + '/math.cpython-34m.so,' in completions or + 'math.cpython-35m' in completions or 'math.cpython-36m' in completions or - 'math.cpython-37m' in completions + 'math.cpython-37m' in completions or + 'math.cpython-38' in completions ): return self.assertTrue(completions.startswith(start) or completions.startswith(start_2), '%s DOESNT START WITH %s' % (completions, (start, start_2))) @@ -115,16 +117,15 @@ class TestCPython(unittest.TestCase): self.assertTrue('@@COMPLETIONS' in completions) self.assertTrue('END@@' in completions) - - #now, test i + # now, test i msg = quote_plus('%s.list' % BUILTIN_MOD) send(socket, "@@IMPORTS:%s\nEND@@" % msg) found = self.read_msg() self.assertTrue('sort' in found, 'Could not find sort in: %s' % (found,)) - #now, test search + # now, test search msg = quote_plus('inspect.ismodule') - send(socket, '@@SEARCH%sEND@@' % msg) #math completions + send(socket, '@@SEARCH%sEND@@' % msg) # math completions found = self.read_msg() self.assertTrue('inspect.py' in found) for i in range(33, 100): @@ -133,21 +134,21 @@ class TestCPython(unittest.TestCase): else: self.fail('Could not find the ismodule line in %s' % (found,)) - #now, test search + # now, test search msg = quote_plus('inspect.CO_NEWLOCALS') - send(socket, '@@SEARCH%sEND@@' % msg) #math completions + send(socket, '@@SEARCH%sEND@@' % msg) # math completions found = self.read_msg() self.assertTrue('inspect.py' in found) self.assertTrue('CO_NEWLOCALS' in found) - #now, test search + # now, test search msg = quote_plus('inspect.BlockFinder.tokeneater') send(socket, '@@SEARCH%sEND@@' % msg) found = self.read_msg() self.assertTrue('inspect.py' in found) # self.assertTrue('CO_NEWLOCALS' in found) - #reload modules test + # reload modules test # send(socket, '@@RELOAD_MODULES_END@@') # ok = self.read_msg() # self.assertEqual('@@MSG_OK_END@@' , ok) @@ -158,11 +159,9 @@ class TestCPython(unittest.TestCase): sys.stdout.write('succedded...sending kill msg\n') self.send_kill_msg(socket) - # while not hasattr(t, 'ended'): # pass #wait until it receives the message and quits. - socket.close() self.socket.close() except: @@ -171,4 +170,3 @@ class TestCPython(unittest.TestCase): def send_kill_msg(self, socket): socket.send(pycompletionserver.MSG_KILL_SERVER) - diff --git a/src/ptvsd/_vendored/pydevd/tests/test_simpleTipper.py b/src/ptvsd/_vendored/pydevd/tests/test_simpleTipper.py index f3bc587c..b8726c17 100644 --- a/src/ptvsd/_vendored/pydevd/tests/test_simpleTipper.py +++ b/src/ptvsd/_vendored/pydevd/tests/test_simpleTipper.py @@ -142,6 +142,7 @@ class TestCPython(unittest.TestCase): '(o: object, name: str, val: object)', '(source, filename, mode, flags, dont_inherit, optimize)', '(source, filename, mode, flags, dont_inherit)', + '(source, filename, mode, flags, dont_inherit, optimize, _feature_version=-1)' ) # args t = self.assert_in('setattr' , tip) @@ -171,7 +172,11 @@ class TestCPython(unittest.TestCase): self.assert_args('walk', '(tree, visitor, walker, verbose)', tip) self.assert_in('parseFile' , tip) else: - self.assert_args('parse', '(source, filename, mode)', tip) + self.assert_args('parse', [ + '(source, filename, mode)', + '(source, filename, mode, type_comments=False, feature_version=None)' + ], tip + ) self.assert_args('walk', '(node)', tip) self.assert_in('parse' , tip) @@ -182,10 +187,16 @@ class TestCPython(unittest.TestCase): self.fail('Found: %s. Expected: %s' % (t[2], expected)) def assert_args(self, tok, args, tips): + if not isinstance(args, (list, tuple)): + args = (args,) + for a in tips[1]: if tok == a[0]: - self.assertEqual(args, a[2]) - return + for arg in args: + if arg == a[2]: + return + raise AssertionError('%s not in %s', a[2], args) + raise AssertionError('%s not in %s', tok, tips) def assert_in(self, tok, tips): diff --git a/src/ptvsd/_vendored/pydevd/tests_python/test_collect_try_except_info.py b/src/ptvsd/_vendored/pydevd/tests_python/test_collect_try_except_info.py index 8ed413d8..ba6c617b 100644 --- a/src/ptvsd/_vendored/pydevd/tests_python/test_collect_try_except_info.py +++ b/src/ptvsd/_vendored/pydevd/tests_python/test_collect_try_except_info.py @@ -164,11 +164,18 @@ def test_collect_try_except_info(data_regression): if key.startswith('_method'): info = collect_try_except_info(method.__code__, use_func_first_line=True) - if sys.version_info[:2] >= (3, 7): - for try_except_info in info: - # On 3.7 the last bytecode actually has a different start line. - if try_except_info.except_end_line == 8: - try_except_info.except_end_line = 9 + if key == "_method_try_except": + if sys.version_info[:2] == (3, 7): + for try_except_info in info: + # On 3.7 the last bytecode actually has a different start line. + if try_except_info.except_end_line == 8: + try_except_info.except_end_line = 9 + + elif sys.version_info[:2] >= (3, 8): + for try_except_info in info: + # On 3.8 the last bytecode actually has a different start line. + if try_except_info.except_end_line == 7: + try_except_info.except_end_line = 9 method_to_info[key] = [str(x) for x in info] diff --git a/src/ptvsd/_vendored/pydevd/tests_python/test_pydevd_filtering.py b/src/ptvsd/_vendored/pydevd/tests_python/test_pydevd_filtering.py index 2b5ee5f8..b07a83fe 100644 --- a/src/ptvsd/_vendored/pydevd/tests_python/test_pydevd_filtering.py +++ b/src/ptvsd/_vendored/pydevd/tests_python/test_pydevd_filtering.py @@ -1,3 +1,4 @@ +from _pydevd_bundle.pydevd_constants import IS_WINDOWS def test_in_project_roots(tmpdir): @@ -129,6 +130,10 @@ def test_glob_matching(): assert glob_matches_path(build('/a/b/c/d.py'), '/**/*.py', sep, altsep) assert glob_matches_path(build('/a/b/c/d.py'), '**/c/*.py', sep, altsep) + if IS_WINDOWS: + assert glob_matches_path(build('/a/b/c/d.py'), '**/C/*.py', sep, altsep) + assert glob_matches_path(build('/a/b/C/d.py'), '**/c/*.py', sep, altsep) + # Expected not to match. assert not glob_matches_path(build('/a/b/c/d'), '/**/d.py', sep, altsep) assert not glob_matches_path(build('/a/b/c/d.pyx'), '/a/**/c/*.py', sep, altsep) diff --git a/src/ptvsd/_vendored/pydevd/tests_python/test_utilities.py b/src/ptvsd/_vendored/pydevd/tests_python/test_utilities.py index 36ce1519..595a3dc1 100644 --- a/src/ptvsd/_vendored/pydevd/tests_python/test_utilities.py +++ b/src/ptvsd/_vendored/pydevd/tests_python/test_utilities.py @@ -201,6 +201,18 @@ def _check_tracing_other_threads(): except ImportError: import thread as _thread + # This method is called in a subprocess, so, make sure we exit properly even if we somehow + # deadlock somewhere else. + def dump_threads_and_kill_on_timeout(): + time.sleep(10) + from _pydevd_bundle import pydevd_utils + pydevd_utils.dump_threads() + time.sleep(1) + import os + os._exit(77) + + _thread.start_new_thread(dump_threads_and_kill_on_timeout, ()) + def method(): while True: trace_func = sys.gettrace() @@ -215,6 +227,7 @@ def _check_tracing_other_threads(): threads = [] threads.append(threading.Thread(target=method)) + threads[-1].daemon = True threads[-1].start() _thread.start_new_thread(dummy_thread_method, ()) diff --git a/tests/ptvsd/server/test_breakpoints.py b/tests/ptvsd/server/test_breakpoints.py index 29f4a09d..9a6de03c 100644 --- a/tests/ptvsd/server/test_breakpoints.py +++ b/tests/ptvsd/server/test_breakpoints.py @@ -15,7 +15,6 @@ from tests import debug, test_data from tests.debug import runners, targets from tests.patterns import some - bp_root = test_data / "bp" @@ -102,6 +101,7 @@ def test_conditional_breakpoint(pyfile, target, run, condition_kind, condition): def test_crossfile_breakpoint(pyfile, target, run): + @pyfile def script1(): import debug_me # noqa @@ -171,6 +171,7 @@ def test_error_in_condition(pyfile, target, run, error_name): @pytest.mark.parametrize("condition", ["condition", ""]) def test_log_point(pyfile, target, run, condition): + @pyfile def code_to_debug(): import debug_me # noqa @@ -246,6 +247,7 @@ def test_package_launch(run): def test_add_and_remove_breakpoint(pyfile, target, run): + @pyfile def code_to_debug(): import debug_me # noqa @@ -277,6 +279,7 @@ def test_add_and_remove_breakpoint(pyfile, target, run): def test_breakpoint_in_nonexistent_file(pyfile, target, run): + @pyfile def code_to_debug(): import debug_me # noqa @@ -297,6 +300,7 @@ def test_breakpoint_in_nonexistent_file(pyfile, target, run): def test_invalid_breakpoints(pyfile, target, run): + @pyfile def code_to_debug(): import debug_me # noqa @@ -328,7 +332,11 @@ def test_invalid_breakpoints(pyfile, target, run): bps = session.set_breakpoints(code_to_debug, bp_markers) actual_lines = [bp["line"] for bp in bps] - expected_markers = ["bp1-expected", "bp2-expected", "bp3-expected"] + if sys.version_info >= (3, 8): + # See: https://bugs.python.org/issue38508 + expected_markers = ["bp1-expected", "bp2-requested", "bp3-expected"] + else: + expected_markers = ["bp1-expected", "bp2-expected", "bp3-expected"] if sys.version_info < (3,): expected_markers += ["bp4-expected", "bp4-expected"] expected_lines = [ @@ -343,6 +351,12 @@ def test_invalid_breakpoints(pyfile, target, run): # If there's multiple breakpoints on the same line, we only stop once, # so remove duplicates first. expected_lines = sorted(set(expected_lines)) + if sys.version_info >= (3, 8): + # We'll actually hit @bp3-expected and later @bp2-requested + # (there's a line event when the list creation is finished + # at the start of the list creation on 3.8). + # See: https://bugs.python.org/issue38508 + expected_lines[1], expected_lines[2] = expected_lines[2], expected_lines[1] while expected_lines: expected_line = expected_lines.pop(0) @@ -354,6 +368,7 @@ def test_invalid_breakpoints(pyfile, target, run): def test_deep_stacks(pyfile, target, run): + @pyfile def code_to_debug(): import debug_me # noqa