From 5d9762e7cf90444b03b43262be8001ff83401aac Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Mon, 17 Apr 2023 23:14:18 +0900 Subject: [PATCH 01/82] gh-101525: Fix make test if the --enable-bolt enabled (gh-103574) --- Makefile.pre.in | 20 +++++---- configure | 108 ++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 7 ++++ 3 files changed, 128 insertions(+), 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index a58397f21f9bb21..582310807d05bab 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -38,6 +38,7 @@ CC= @CC@ CXX= @CXX@ LINKCC= @LINKCC@ AR= @AR@ +READELF= @READELF@ SOABI= @SOABI@ LDVERSION= @LDVERSION@ LIBPYTHON= @LIBPYTHON@ @@ -670,13 +671,18 @@ profile-opt: profile-run-stamp bolt-opt: @PREBOLT_RULE@ rm -f *.fdata - @LLVM_BOLT@ ./$(BUILDPYTHON) -instrument -instrumentation-file-append-pid -instrumentation-file=$(abspath $(BUILDPYTHON).bolt) -o $(BUILDPYTHON).bolt_inst - ./$(BUILDPYTHON).bolt_inst $(PROFILE_TASK) || true - @MERGE_FDATA@ $(BUILDPYTHON).*.fdata > $(BUILDPYTHON).fdata - @LLVM_BOLT@ ./$(BUILDPYTHON) -o $(BUILDPYTHON).bolt -data=$(BUILDPYTHON).fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=none -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot - rm -f *.fdata - rm -f $(BUILDPYTHON).bolt_inst - mv $(BUILDPYTHON).bolt $(BUILDPYTHON) + @if $(READELF) -p .note.bolt_info $(BUILDPYTHON) | grep BOLT > /dev/null; then\ + echo "skip: $(BUILDPYTHON) is already BOLTed."; \ + else \ + @LLVM_BOLT@ ./$(BUILDPYTHON) -instrument -instrumentation-file-append-pid -instrumentation-file=$(abspath $(BUILDPYTHON).bolt) -o $(BUILDPYTHON).bolt_inst; \ + ./$(BUILDPYTHON).bolt_inst $(PROFILE_TASK) || true; \ + @MERGE_FDATA@ $(BUILDPYTHON).*.fdata > $(BUILDPYTHON).fdata; \ + @LLVM_BOLT@ ./$(BUILDPYTHON) -o $(BUILDPYTHON).bolt -data=$(BUILDPYTHON).fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=none -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot; \ + rm -f *.fdata; \ + rm -f $(BUILDPYTHON).bolt_inst; \ + mv $(BUILDPYTHON).bolt $(BUILDPYTHON); \ + fi + # Compile and run with gcov .PHONY=coverage coverage-lcov coverage-report diff --git a/configure b/configure index 4ae8258438e620e..8133d47f61355b7 100755 --- a/configure +++ b/configure @@ -892,6 +892,8 @@ PGO_PROF_USE_FLAG PGO_PROF_GEN_FLAG MERGE_FDATA LLVM_BOLT +ac_ct_READELF +READELF PREBOLT_RULE LLVM_AR_FOUND LLVM_AR @@ -7916,6 +7918,112 @@ if test "$Py_BOLT" = 'true' ; then DEF_MAKE_ALL_RULE="bolt-opt" DEF_MAKE_RULE="build_all" + + if test -n "$ac_tool_prefix"; then + for ac_prog in readelf + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_READELF+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$READELF"; then + ac_cv_prog_READELF="$READELF" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_READELF="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +READELF=$ac_cv_prog_READELF +if test -n "$READELF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 +$as_echo "$READELF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$READELF" && break + done +fi +if test -z "$READELF"; then + ac_ct_READELF=$READELF + for ac_prog in readelf +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_READELF+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_READELF"; then + ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_READELF="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_READELF=$ac_cv_prog_ac_ct_READELF +if test -n "$ac_ct_READELF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5 +$as_echo "$ac_ct_READELF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_READELF" && break +done + + if test "x$ac_ct_READELF" = x; then + READELF=""notfound"" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + READELF=$ac_ct_READELF + fi +fi + + if test "$READELF" == "notfound" + then + as_fn_error $? "readelf is required for a --enable-bolt build but could not be found." "$LINENO" 5 + fi + # -fno-reorder-blocks-and-partition is required for bolt to work. # Possibly GCC only. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-reorder-blocks-and-partition" >&5 diff --git a/configure.ac b/configure.ac index 4d9eb46f5ce7d89..3f20d8980d8abc4 100644 --- a/configure.ac +++ b/configure.ac @@ -1938,6 +1938,13 @@ if test "$Py_BOLT" = 'true' ; then DEF_MAKE_ALL_RULE="bolt-opt" DEF_MAKE_RULE="build_all" + AC_SUBST(READELF) + AC_CHECK_TOOLS(READELF, [readelf], "notfound") + if test "$READELF" == "notfound" + then + AC_MSG_ERROR([readelf is required for a --enable-bolt build but could not be found.]) + fi + # -fno-reorder-blocks-and-partition is required for bolt to work. # Possibly GCC only. AX_CHECK_COMPILE_FLAG([-fno-reorder-blocks-and-partition],[ From eb5fd31948e2e379635e17545c18c9ef5d06d3e7 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Mon, 17 Apr 2023 17:33:54 +0100 Subject: [PATCH 02/82] gh-103088: Ensure POSIX venv scripts always use LF line endings (GH-103591) Also touches the affected files in meaningless ways to ensure they get updated when pulling --- .gitattributes | 1 + Lib/venv/scripts/common/activate | 2 +- Lib/venv/scripts/posix/activate.csh | 1 + Lib/venv/scripts/posix/activate.fish | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitattributes b/.gitattributes index cb1cf8bcc7c877c..4ed95069442f3d1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -34,6 +34,7 @@ Lib/test/xmltestdata/* noeol # Shell scripts should have LF even on Windows because of Cygwin Lib/venv/scripts/common/activate text eol=lf +Lib/venv/scripts/posix/* text eol=lf # CRLF files [attr]dos text eol=crlf diff --git a/Lib/venv/scripts/common/activate b/Lib/venv/scripts/common/activate index cb898b39670c478..408df5cb93b9e9d 100644 --- a/Lib/venv/scripts/common/activate +++ b/Lib/venv/scripts/common/activate @@ -1,5 +1,5 @@ # This file must be used with "source bin/activate" *from bash* -# you cannot run it directly +# You cannot run it directly deactivate () { # reset old environment variables diff --git a/Lib/venv/scripts/posix/activate.csh b/Lib/venv/scripts/posix/activate.csh index d6f697c55ed81cc..5e8d66fa9e50615 100644 --- a/Lib/venv/scripts/posix/activate.csh +++ b/Lib/venv/scripts/posix/activate.csh @@ -1,5 +1,6 @@ # This file must be used with "source bin/activate.csh" *from csh*. # You cannot run it directly. + # Created by Davide Di Blasi . # Ported to Python 3.3 venv by Andrew Svetlov diff --git a/Lib/venv/scripts/posix/activate.fish b/Lib/venv/scripts/posix/activate.fish index 9aa4446005f4d80..91ad6442e056928 100644 --- a/Lib/venv/scripts/posix/activate.fish +++ b/Lib/venv/scripts/posix/activate.fish @@ -1,5 +1,5 @@ # This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/); you cannot run it directly. +# (https://fishshell.com/). You cannot run it directly. function deactivate -d "Exit virtual environment and return to normal shell environment" # reset old environment variables From d83faf7f1ba2de95e98e3eeb5ce9009d9cd62192 Mon Sep 17 00:00:00 2001 From: AN Long Date: Tue, 18 Apr 2023 02:30:48 +0800 Subject: [PATCH 03/82] gh-103092: Isolate winreg (#103250) --- Lib/test/test_winreg.py | 16 +- ...-04-08-00-48-40.gh-issue-103092.5EFts0.rst | 1 + Objects/object.c | 6 - PC/clinic/winreg.c.h | 54 ++-- PC/winreg.c | 271 ++++++++++-------- 5 files changed, 196 insertions(+), 152 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-04-08-00-48-40.gh-issue-103092.5EFts0.rst diff --git a/Lib/test/test_winreg.py b/Lib/test/test_winreg.py index 769ab67b0f5611d..924a962781a75bf 100644 --- a/Lib/test/test_winreg.py +++ b/Lib/test/test_winreg.py @@ -1,11 +1,12 @@ # Test the windows specific win32reg module. # Only win32reg functions not hit here: FlushKey, LoadKey and SaveKey +import gc import os, sys, errno -import unittest -from test.support import import_helper import threading +import unittest from platform import machine, win32_edition +from test.support import cpython_only, import_helper # Do this first so test will be skipped if module doesn't exist import_helper.import_module('winreg', required_on=['win']) @@ -49,6 +50,17 @@ ("Japanese 日本", "日本語", REG_SZ), ] + +@cpython_only +class HeapTypeTests(unittest.TestCase): + def test_have_gc(self): + self.assertTrue(gc.is_tracked(HKEYType)) + + def test_immutable(self): + with self.assertRaisesRegex(TypeError, "immutable"): + HKEYType.foo = "bar" + + class BaseWinregTests(unittest.TestCase): def setUp(self): diff --git a/Misc/NEWS.d/next/Library/2023-04-08-00-48-40.gh-issue-103092.5EFts0.rst b/Misc/NEWS.d/next/Library/2023-04-08-00-48-40.gh-issue-103092.5EFts0.rst new file mode 100644 index 000000000000000..0f2108fee763d0d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-08-00-48-40.gh-issue-103092.5EFts0.rst @@ -0,0 +1 @@ +Adapt the :mod:`winreg` extension module to :pep:`687`. diff --git a/Objects/object.c b/Objects/object.c index 56747fa193e1786..e26f737fccd60ff 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1965,9 +1965,6 @@ PyObject _Py_NotImplementedStruct = { 1, &_PyNotImplemented_Type }; -#ifdef MS_WINDOWS -extern PyTypeObject PyHKEY_Type; -#endif extern PyTypeObject _Py_GenericAliasIterType; extern PyTypeObject _PyMemoryIter_Type; extern PyTypeObject _PyLineIterator; @@ -2018,9 +2015,6 @@ static PyTypeObject* static_types[] = { &PyFunction_Type, &PyGen_Type, &PyGetSetDescr_Type, -#ifdef MS_WINDOWS - &PyHKEY_Type, -#endif &PyInstanceMethod_Type, &PyListIter_Type, &PyListRevIter_Type, diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h index 7a9474301da8a1f..4109c85276f0a4d 100644 --- a/PC/clinic/winreg.c.h +++ b/PC/clinic/winreg.c.h @@ -219,14 +219,14 @@ winreg_ConnectRegistry(PyObject *module, PyObject *const *args, Py_ssize_t nargs _PyArg_BadArgument("ConnectRegistry", "argument 1", "str or None", args[0]); goto exit; } - if (!clinic_HKEY_converter(args[1], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[1], &key)) { goto exit; } _return_value = winreg_ConnectRegistry_impl(module, computer_name, key); if (_return_value == NULL) { goto exit; } - return_value = PyHKEY_FromHKEY(_return_value); + return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value); exit: /* Cleanup for computer_name */ @@ -275,7 +275,7 @@ winreg_CreateKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("CreateKey", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -295,7 +295,7 @@ winreg_CreateKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (_return_value == NULL) { goto exit; } - return_value = PyHKEY_FromHKEY(_return_value); + return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value); exit: /* Cleanup for sub_key */ @@ -382,7 +382,7 @@ winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py if (!args) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -419,7 +419,7 @@ winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py if (_return_value == NULL) { goto exit; } - return_value = PyHKEY_FromHKEY(_return_value); + return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value); exit: /* Cleanup for sub_key */ @@ -466,7 +466,7 @@ winreg_DeleteKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("DeleteKey", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (!PyUnicode_Check(args[1])) { @@ -566,7 +566,7 @@ winreg_DeleteKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py if (!args) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (!PyUnicode_Check(args[1])) { @@ -634,7 +634,7 @@ winreg_DeleteValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("DeleteValue", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -694,7 +694,7 @@ winreg_EnumKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("EnumKey", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } index = _PyLong_AsInt(args[1]); @@ -751,7 +751,7 @@ winreg_EnumValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("EnumValue", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } index = _PyLong_AsInt(args[1]); @@ -839,7 +839,7 @@ winreg_FlushKey(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HKEY key; - if (!clinic_HKEY_converter(arg, &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), arg, &key)) { goto exit; } return_value = winreg_FlushKey_impl(module, key); @@ -898,7 +898,7 @@ winreg_LoadKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("LoadKey", nargs, 3, 3)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (!PyUnicode_Check(args[1])) { @@ -999,7 +999,7 @@ winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje if (!args) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1036,7 +1036,7 @@ winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje if (_return_value == NULL) { goto exit; } - return_value = PyHKEY_FromHKEY(_return_value); + return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value); exit: /* Cleanup for sub_key */ @@ -1116,7 +1116,7 @@ winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb if (!args) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1153,7 +1153,7 @@ winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb if (_return_value == NULL) { goto exit; } - return_value = PyHKEY_FromHKEY(_return_value); + return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value); exit: /* Cleanup for sub_key */ @@ -1193,7 +1193,7 @@ winreg_QueryInfoKey(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HKEY key; - if (!clinic_HKEY_converter(arg, &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), arg, &key)) { goto exit; } return_value = winreg_QueryInfoKey_impl(module, key); @@ -1242,7 +1242,7 @@ winreg_QueryValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("QueryValue", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1303,7 +1303,7 @@ winreg_QueryValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("QueryValueEx", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1369,7 +1369,7 @@ winreg_SaveKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("SaveKey", nargs, 2, 2)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (!PyUnicode_Check(args[1])) { @@ -1438,7 +1438,7 @@ winreg_SetValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("SetValue", nargs, 4, 4)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1542,7 +1542,7 @@ winreg_SetValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("SetValueEx", nargs, 5, 5)) { goto exit; } - if (!clinic_HKEY_converter(args[0], &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), args[0], &key)) { goto exit; } if (args[1] == Py_None) { @@ -1603,7 +1603,7 @@ winreg_DisableReflectionKey(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HKEY key; - if (!clinic_HKEY_converter(arg, &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), arg, &key)) { goto exit; } return_value = winreg_DisableReflectionKey_impl(module, key); @@ -1641,7 +1641,7 @@ winreg_EnableReflectionKey(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HKEY key; - if (!clinic_HKEY_converter(arg, &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), arg, &key)) { goto exit; } return_value = winreg_EnableReflectionKey_impl(module, key); @@ -1677,7 +1677,7 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg) PyObject *return_value = NULL; HKEY key; - if (!clinic_HKEY_converter(arg, &key)) { + if (!clinic_HKEY_converter(_PyModule_GetState(module), arg, &key)) { goto exit; } return_value = winreg_QueryReflectionKey_impl(module, key); @@ -1795,4 +1795,4 @@ winreg_QueryReflectionKey(PyObject *module, PyObject *arg) #ifndef WINREG_QUERYREFLECTIONKEY_METHODDEF #define WINREG_QUERYREFLECTIONKEY_METHODDEF #endif /* !defined(WINREG_QUERYREFLECTIONKEY_METHODDEF) */ -/*[clinic end generated code: output=715db416dc1321ee input=a9049054013a1b77]*/ +/*[clinic end generated code: output=15dc2e6c4d4e2ad5 input=a9049054013a1b77]*/ diff --git a/PC/winreg.c b/PC/winreg.c index 15d32e7fcb99c91..4884125c3609ade 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -15,15 +15,22 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" #include "pycore_object.h" // _PyObject_Init() +#include "pycore_moduleobject.h" #include "structmember.h" // PyMemberDef #include #if defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_SYSTEM) || defined(MS_WINDOWS_GAMES) -static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK); -static BOOL clinic_HKEY_converter(PyObject *ob, void *p); -static PyObject *PyHKEY_FromHKEY(HKEY h); -static BOOL PyHKEY_Close(PyObject *obHandle); +typedef struct { + PyTypeObject *PyHKEY_Type; +} winreg_state; + +/* Forward declares */ + +static BOOL PyHKEY_AsHKEY(winreg_state *st, PyObject *ob, HKEY *pRes, BOOL bNoneOK); +static BOOL clinic_HKEY_converter(winreg_state *st, PyObject *ob, void *p); +static PyObject *PyHKEY_FromHKEY(winreg_state *st, HKEY h); +static BOOL PyHKEY_Close(winreg_state *st, PyObject *obHandle); static char errNotAHandle[] = "Object is not a handle"; @@ -35,8 +42,6 @@ static char errNotAHandle[] = "Object is not a handle"; #define PyErr_SetFromWindowsErrWithFunction(rc, fnname) \ PyErr_SetFromWindowsErr(rc) -/* Forward declares */ - /* Doc strings */ PyDoc_STRVAR(module_doc, "This module provides access to the Windows registry API.\n" @@ -114,7 +119,7 @@ typedef struct { HKEY hkey; } PyHKEYObject; -#define PyHKEY_Check(op) Py_IS_TYPE(op, &PyHKEY_Type) +#define PyHKEY_Check(st, op) Py_IS_TYPE(op, st->PyHKEY_Type) static char *failMsg = "bad operand type"; @@ -147,7 +152,18 @@ PyHKEY_deallocFunc(PyObject *ob) PyHKEYObject *obkey = (PyHKEYObject *)ob; if (obkey->hkey) RegCloseKey((HKEY)obkey->hkey); - PyObject_Free(ob); + + PyTypeObject *tp = Py_TYPE(ob); + PyObject_GC_UnTrack(ob); + PyObject_GC_Del(ob); + Py_DECREF(tp); +} + +static int +PyHKEY_traverseFunc(PyHKEYObject *self, visitproc visit, void *arg) +{ + Py_VISIT(Py_TYPE(self)); + return 0; } static int @@ -189,29 +205,6 @@ PyHKEY_hashFunc(PyObject *ob) } -static PyNumberMethods PyHKEY_NumberMethods = -{ - PyHKEY_binaryFailureFunc, /* nb_add */ - PyHKEY_binaryFailureFunc, /* nb_subtract */ - PyHKEY_binaryFailureFunc, /* nb_multiply */ - PyHKEY_binaryFailureFunc, /* nb_remainder */ - PyHKEY_binaryFailureFunc, /* nb_divmod */ - PyHKEY_ternaryFailureFunc, /* nb_power */ - PyHKEY_unaryFailureFunc, /* nb_negative */ - PyHKEY_unaryFailureFunc, /* nb_positive */ - PyHKEY_unaryFailureFunc, /* nb_absolute */ - PyHKEY_boolFunc, /* nb_bool */ - PyHKEY_unaryFailureFunc, /* nb_invert */ - PyHKEY_binaryFailureFunc, /* nb_lshift */ - PyHKEY_binaryFailureFunc, /* nb_rshift */ - PyHKEY_binaryFailureFunc, /* nb_and */ - PyHKEY_binaryFailureFunc, /* nb_xor */ - PyHKEY_binaryFailureFunc, /* nb_or */ - PyHKEY_intFunc, /* nb_int */ - 0, /* nb_reserved */ - PyHKEY_unaryFailureFunc, /* nb_float */ -}; - /*[clinic input] module winreg class winreg.HKEYType "PyHKEYObject *" "&PyHKEY_Type" @@ -229,6 +222,14 @@ class HKEY_converter(CConverter): type = 'HKEY' converter = 'clinic_HKEY_converter' + def parse_arg(self, argname, displayname): + return """ + if (!{converter}(_PyModule_GetState(module), {argname}, &{paramname})) {{{{ + goto exit; + }}}} + """.format(argname=argname, paramname=self.parser_name, + converter=self.converter) + class HKEY_return_converter(CReturnConverter): type = 'HKEY' @@ -236,7 +237,7 @@ class HKEY_return_converter(CReturnConverter): self.declare(data) self.err_occurred_if_null_pointer("_return_value", data) data.return_conversion.append( - 'return_value = PyHKEY_FromHKEY(_return_value);\n') + 'return_value = PyHKEY_FromHKEY(_PyModule_GetState(module), _return_value);\n') # HACK: this only works for PyHKEYObjects, nothing else. # Should this be generalized and enshrined in clinic.py, @@ -249,7 +250,7 @@ class self_return_converter(CReturnConverter): data.return_conversion.append( 'return_value = (PyObject *)_return_value;\n') [python start generated code]*/ -/*[python end generated code: output=da39a3ee5e6b4b0d input=2ebb7a4922d408d6]*/ +/*[python end generated code: output=da39a3ee5e6b4b0d input=17e645060c7b8ae1]*/ #include "clinic/winreg.c.h" @@ -270,8 +271,11 @@ static PyObject * winreg_HKEYType_Close_impl(PyHKEYObject *self) /*[clinic end generated code: output=fced3a624fb0c344 input=6786ac75f6b89de6]*/ { - if (!PyHKEY_Close((PyObject *)self)) + winreg_state *st = _PyType_GetModuleState(Py_TYPE(self)); + assert(st != NULL); + if (!PyHKEY_Close(st, (PyObject *)self)) { return NULL; + } Py_RETURN_NONE; } @@ -327,8 +331,11 @@ winreg_HKEYType___exit___impl(PyHKEYObject *self, PyObject *exc_type, PyObject *exc_value, PyObject *traceback) /*[clinic end generated code: output=923ebe7389e6a263 input=fb32489ee92403c7]*/ { - if (!PyHKEY_Close((PyObject *)self)) + winreg_state *st = _PyType_GetModuleState(Py_TYPE(self)); + assert(st != NULL); + if (!PyHKEY_Close(st, (PyObject *)self)) { return NULL; + } Py_RETURN_NONE; } @@ -350,62 +357,71 @@ static PyMemberDef PyHKEY_memberlist[] = { {NULL} /* Sentinel */ }; -/* The type itself */ -PyTypeObject PyHKEY_Type = -{ - PyVarObject_HEAD_INIT(0, 0) /* fill in type at module init */ - "PyHKEY", - sizeof(PyHKEYObject), - 0, - PyHKEY_deallocFunc, /* tp_dealloc */ - 0, /* tp_vectorcall_offset */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_as_async */ - 0, /* tp_repr */ - &PyHKEY_NumberMethods, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - PyHKEY_hashFunc, /* tp_hash */ - 0, /* tp_call */ - PyHKEY_strFunc, /* tp_str */ - 0, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - 0, /* tp_flags */ - PyHKEY_doc, /* tp_doc */ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - PyHKEY_methods, /*tp_methods*/ - PyHKEY_memberlist, /*tp_members*/ +static PyType_Slot pyhkey_type_slots[] = { + {Py_tp_dealloc, PyHKEY_deallocFunc}, + {Py_tp_members, PyHKEY_memberlist}, + {Py_tp_methods, PyHKEY_methods}, + {Py_tp_doc, (char *)PyHKEY_doc}, + {Py_tp_traverse, PyHKEY_traverseFunc}, + {Py_tp_hash, PyHKEY_hashFunc}, + {Py_tp_str, PyHKEY_strFunc}, + + // Number protocol + {Py_nb_add, PyHKEY_binaryFailureFunc}, + {Py_nb_subtract, PyHKEY_binaryFailureFunc}, + {Py_nb_multiply, PyHKEY_binaryFailureFunc}, + {Py_nb_remainder, PyHKEY_binaryFailureFunc}, + {Py_nb_divmod, PyHKEY_binaryFailureFunc}, + {Py_nb_power, PyHKEY_ternaryFailureFunc}, + {Py_nb_negative, PyHKEY_unaryFailureFunc}, + {Py_nb_positive, PyHKEY_unaryFailureFunc}, + {Py_nb_absolute, PyHKEY_unaryFailureFunc}, + {Py_nb_bool, PyHKEY_boolFunc}, + {Py_nb_invert, PyHKEY_unaryFailureFunc}, + {Py_nb_lshift, PyHKEY_binaryFailureFunc}, + {Py_nb_rshift, PyHKEY_binaryFailureFunc}, + {Py_nb_and, PyHKEY_binaryFailureFunc}, + {Py_nb_xor, PyHKEY_binaryFailureFunc}, + {Py_nb_or, PyHKEY_binaryFailureFunc}, + {Py_nb_int, PyHKEY_intFunc}, + {Py_nb_float, PyHKEY_unaryFailureFunc}, + {0, NULL}, +}; + +static PyType_Spec pyhkey_type_spec = { + .name = "winreg.PyHKEY", + .basicsize = sizeof(PyHKEYObject), + .flags = (Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_IMMUTABLETYPE | + Py_TPFLAGS_DISALLOW_INSTANTIATION), + .slots = pyhkey_type_slots, }; /************************************************************************ The public PyHKEY API (well, not public yet :-) ************************************************************************/ PyObject * -PyHKEY_New(HKEY hInit) +PyHKEY_New(PyObject *m, HKEY hInit) { - PyHKEYObject *key = PyObject_New(PyHKEYObject, &PyHKEY_Type); - if (key) - key->hkey = hInit; + winreg_state *st = _PyModule_GetState(m); + PyHKEYObject *key = PyObject_GC_New(PyHKEYObject, st->PyHKEY_Type); + if (key == NULL) { + return NULL; + } + key->hkey = hInit; + PyObject_GC_Track(key); return (PyObject *)key; } BOOL -PyHKEY_Close(PyObject *ob_handle) +PyHKEY_Close(winreg_state *st, PyObject *ob_handle) { LONG rc; HKEY key; - if (!PyHKEY_AsHKEY(ob_handle, &key, TRUE)) { + if (!PyHKEY_AsHKEY(st, ob_handle, &key, TRUE)) { return FALSE; } - if (PyHKEY_Check(ob_handle)) { + if (PyHKEY_Check(st, ob_handle)) { ((PyHKEYObject*)ob_handle)->hkey = 0; } rc = key ? RegCloseKey(key) : ERROR_SUCCESS; @@ -415,7 +431,7 @@ PyHKEY_Close(PyObject *ob_handle) } BOOL -PyHKEY_AsHKEY(PyObject *ob, HKEY *pHANDLE, BOOL bNoneOK) +PyHKEY_AsHKEY(winreg_state *st, PyObject *ob, HKEY *pHANDLE, BOOL bNoneOK) { if (ob == Py_None) { if (!bNoneOK) { @@ -426,7 +442,7 @@ PyHKEY_AsHKEY(PyObject *ob, HKEY *pHANDLE, BOOL bNoneOK) } *pHANDLE = (HKEY)0; } - else if (PyHKEY_Check(ob)) { + else if (PyHKEY_Check(st ,ob)) { PyHKEYObject *pH = (PyHKEYObject *)ob; *pHANDLE = pH->hkey; } @@ -447,23 +463,24 @@ PyHKEY_AsHKEY(PyObject *ob, HKEY *pHANDLE, BOOL bNoneOK) } BOOL -clinic_HKEY_converter(PyObject *ob, void *p) +clinic_HKEY_converter(winreg_state *st, PyObject *ob, void *p) { - if (!PyHKEY_AsHKEY(ob, (HKEY *)p, FALSE)) + if (!PyHKEY_AsHKEY(st, ob, (HKEY *)p, FALSE)) { return FALSE; + } return TRUE; } PyObject * -PyHKEY_FromHKEY(HKEY h) +PyHKEY_FromHKEY(winreg_state *st, HKEY h) { - /* Inline PyObject_New */ - PyHKEYObject *op = (PyHKEYObject *) PyObject_Malloc(sizeof(PyHKEYObject)); + PyHKEYObject *op = (PyHKEYObject *)PyObject_GC_New(PyHKEYObject, + st->PyHKEY_Type); if (op == NULL) { - return PyErr_NoMemory(); + return NULL; } - _PyObject_Init((PyObject*)op, &PyHKEY_Type); op->hkey = h; + PyObject_GC_Track(op); return (PyObject *)op; } @@ -472,11 +489,11 @@ PyHKEY_FromHKEY(HKEY h) The module methods ************************************************************************/ BOOL -PyWinObject_CloseHKEY(PyObject *obHandle) +PyWinObject_CloseHKEY(winreg_state *st, PyObject *obHandle) { BOOL ok; - if (PyHKEY_Check(obHandle)) { - ok = PyHKEY_Close(obHandle); + if (PyHKEY_Check(st, obHandle)) { + ok = PyHKEY_Close(st, obHandle); } #if SIZEOF_LONG >= SIZEOF_HKEY else if (PyLong_Check(obHandle)) { @@ -826,8 +843,9 @@ static PyObject * winreg_CloseKey(PyObject *module, PyObject *hkey) /*[clinic end generated code: output=a4fa537019a80d15 input=5b1aac65ba5127ad]*/ { - if (!PyHKEY_Close(hkey)) + if (!PyHKEY_Close(_PyModule_GetState(module), hkey)) { return NULL; + } Py_RETURN_NONE; } @@ -2061,7 +2079,7 @@ static struct PyMethodDef winreg_methods[] = { #define ADD_INT(VAL) do { \ if (PyModule_AddIntConstant(m, #VAL, VAL) < 0) { \ - goto error; \ + return -1; \ } \ } while (0) @@ -2079,38 +2097,25 @@ inskey(PyObject *mod, char *name, HKEY key) #define ADD_KEY(VAL) do { \ if (inskey(m, #VAL, VAL) < 0) { \ - goto error; \ + return -1; \ } \ } while (0) - -static struct PyModuleDef winregmodule = { - PyModuleDef_HEAD_INIT, - "winreg", - module_doc, - -1, - winreg_methods, - NULL, - NULL, - NULL, - NULL -}; - -PyMODINIT_FUNC PyInit_winreg(void) +static int +exec_module(PyObject *m) { - PyObject *m = PyModule_Create(&winregmodule); - if (m == NULL) { - return NULL; - } - PyHKEY_Type.tp_doc = PyHKEY_doc; - if (PyType_Ready(&PyHKEY_Type) < 0) { - goto error; + winreg_state *st = (winreg_state *)_PyModule_GetState(m); + + st->PyHKEY_Type = (PyTypeObject *) + PyType_FromModuleAndSpec(m, &pyhkey_type_spec, NULL); + if (st->PyHKEY_Type == NULL) { + return -1; } - if (PyModule_AddObjectRef(m, "HKEYType", (PyObject *)&PyHKEY_Type) < 0) { - goto error; + if (PyModule_AddObjectRef(m, "HKEYType", (PyObject *)st->PyHKEY_Type) < 0) { + return -1; } if (PyModule_AddObjectRef(m, "error", PyExc_OSError) < 0) { - goto error; + return -1; } /* Add the relevant constants */ @@ -2174,12 +2179,44 @@ PyMODINIT_FUNC PyInit_winreg(void) ADD_INT(REG_RESOURCE_REQUIREMENTS_LIST); #undef ADD_INT + return 0; +} - return m; +static PyModuleDef_Slot winreg_slots[] = { + {Py_mod_exec, exec_module}, + {0, NULL} +}; -error: - Py_DECREF(m); - return NULL; +static int +winreg_traverse(PyObject *module, visitproc visit, void *arg) +{ + winreg_state *state = _PyModule_GetState(module); + Py_VISIT(state->PyHKEY_Type); + return 0; +} + +static int +winreg_clear(PyObject *module) +{ + winreg_state *state = _PyModule_GetState(module); + Py_CLEAR(state->PyHKEY_Type); + return 0; +} + +static struct PyModuleDef winregmodule = { + .m_base = PyModuleDef_HEAD_INIT, + .m_name = "winreg", + .m_doc = module_doc, + .m_size = sizeof(winreg_state), + .m_methods = winreg_methods, + .m_slots = winreg_slots, + .m_traverse = winreg_traverse, + .m_clear = winreg_clear, +}; + +PyMODINIT_FUNC PyInit_winreg(void) +{ + return PyModuleDef_Init(&winregmodule); } #endif /* MS_WINDOWS_DESKTOP || MS_WINDOWS_SYSTEM || MS_WINDOWS_GAMES */ From b57f55c23e15654e9dd77680ff1462603e360b76 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 18 Apr 2023 02:33:22 +0300 Subject: [PATCH 04/82] gh-103449: Fix a bug in dataclass docstring generation (#103454) --- Lib/dataclasses.py | 9 +++++++-- Lib/test/test_dataclasses.py | 13 +++++++++++++ .../2023-04-11-21-38-39.gh-issue-103449.-nxmhb.rst | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-04-11-21-38-39.gh-issue-103449.-nxmhb.rst diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index 4026c8b77975b7d..a73cdc22a5f4b34 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -1128,8 +1128,13 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen, if not getattr(cls, '__doc__'): # Create a class doc-string. - cls.__doc__ = (cls.__name__ + - str(inspect.signature(cls)).replace(' -> None', '')) + try: + # In some cases fetching a signature is not possible. + # But, we surely should not fail in this case. + text_sig = str(inspect.signature(cls)).replace(' -> None', '') + except (TypeError, ValueError): + text_sig = '' + cls.__doc__ = (cls.__name__ + text_sig) if match_args: # I could probably compute this once diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 6888680105c4fdf..ae8bfcc149e8621 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -2297,6 +2297,19 @@ class C: self.assertDocStrEqual(C.__doc__, "C(x:collections.deque=)") + def test_docstring_with_no_signature(self): + # See /~https://github.com/python/cpython/issues/103449 + class Meta(type): + __call__ = dict + class Base(metaclass=Meta): + pass + + @dataclass + class C(Base): + pass + + self.assertDocStrEqual(C.__doc__, "C") + class TestInit(unittest.TestCase): def test_base_has_init(self): diff --git a/Misc/NEWS.d/next/Library/2023-04-11-21-38-39.gh-issue-103449.-nxmhb.rst b/Misc/NEWS.d/next/Library/2023-04-11-21-38-39.gh-issue-103449.-nxmhb.rst new file mode 100644 index 000000000000000..0b2b47af1cbaab1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-11-21-38-39.gh-issue-103449.-nxmhb.rst @@ -0,0 +1 @@ +Fix a bug in doc string generation in :func:`dataclasses.dataclass`. From e35e0f15eba64a1dcbab10bbbd2ce276e190dcfa Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Mon, 17 Apr 2023 20:21:19 -0500 Subject: [PATCH 05/82] gh-67230: update whatsnew note for csv changes (#103598) --- Doc/whatsnew/3.12.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 4165b16ba764414..2a371ebf55a11f4 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -258,7 +258,7 @@ csv * Add :data:`~csv.QUOTE_NOTNULL` and :data:`~csv.QUOTE_STRINGS` flags to provide finer grained control of ``None`` and empty strings by - :class:`~csv.reader` and :class:`~csv.writer` objects. + :class:`~csv.writer` objects. inspect ------- From f39e00f9521a0d412a5fc9a50f2a553ec2bb1a7c Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Mon, 17 Apr 2023 23:57:53 -0300 Subject: [PATCH 06/82] GH-103484: Docs: add linkcheck allowed redirects entries for most cases (#103569) Co-authored-by: Hugo van Kemenade --- Doc/conf.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Doc/conf.py b/Doc/conf.py index e99b801d0ae87a9..60404fd3829e5b5 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -254,9 +254,14 @@ # Options for the link checker # ---------------------------- -# Ignore certain URLs. -linkcheck_ignore = [r'https://bugs.python.org/(issue)?\d+'] - +linkcheck_allowed_redirects = { + # bpo-NNNN -> BPO -> GH Issues + r'https://bugs.python.org/issue\?@action=redirect&bpo=\d+': '/~https://github.com/python/cpython/issues/\d+', + # GH-NNNN used to refer to pull requests + r'/~https://github.com/python/cpython/issues/\d+': '/~https://github.com/python/cpython/pull/\d+', + # :source:`something` linking files in the repository + r'/~https://github.com/python/cpython/tree/.*': '/~https://github.com/python/cpython/blob/.*' +} # Options for extensions # ---------------------- From ece20dba120a1a4745721c49f8d7389d4b1ee2a7 Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Mon, 17 Apr 2023 23:43:34 -0500 Subject: [PATCH 07/82] gh-95299: Stop installing setuptools as a part of ensurepip and venv (#101039) Remove the bundled setuptools wheel from ensurepip, and stop installing setuptools in environments created by venv. Co-Authored-by: Hugo van Kemenade Co-authored-by: C.A.M. Gerlach Co-authored-by: Oleg Iarygin --- .github/workflows/verify-ensurepip-wheels.yml | 4 +- Doc/library/venv.rst | 7 +++- Doc/using/venv-create.inc | 7 +++- Doc/whatsnew/3.12.rst | 18 +++++++++ Lib/ensurepip/__init__.py | 16 ++++---- .../setuptools-65.5.0-py3-none-any.whl | Bin 1232695 -> 0 bytes Lib/test/test_ensurepip.py | 35 ++++++------------ Lib/test/test_venv.py | 2 - Lib/venv/__init__.py | 4 +- Mac/BuildScript/scripts/postflight.ensurepip | 8 ++-- Mac/Makefile.in | 1 - ...3-01-14-17-54-56.gh-issue-95299.vUhpKz.rst | 1 + Tools/build/verify_ensurepip_wheels.py | 2 +- 13 files changed, 57 insertions(+), 48 deletions(-) delete mode 100644 Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl create mode 100644 Misc/NEWS.d/next/Library/2023-01-14-17-54-56.gh-issue-95299.vUhpKz.rst diff --git a/.github/workflows/verify-ensurepip-wheels.yml b/.github/workflows/verify-ensurepip-wheels.yml index d4a2cb6846c1cba..17d841f1f1c54ac 100644 --- a/.github/workflows/verify-ensurepip-wheels.yml +++ b/.github/workflows/verify-ensurepip-wheels.yml @@ -1,4 +1,4 @@ -name: Verify bundled pip and setuptools +name: Verify bundled wheels on: workflow_dispatch: @@ -29,5 +29,5 @@ jobs: - uses: actions/setup-python@v4 with: python-version: '3' - - name: Compare checksums of bundled pip and setuptools to ones published on PyPI + - name: Compare checksum of bundled wheels to the ones published on PyPI run: ./Tools/build/verify_ensurepip_wheels.py diff --git a/Doc/library/venv.rst b/Doc/library/venv.rst index 240ab139838db9f..52bf99e5bb0f678 100644 --- a/Doc/library/venv.rst +++ b/Doc/library/venv.rst @@ -284,11 +284,14 @@ creation according to their needs, the :class:`EnvBuilder` class. .. method:: upgrade_dependencies(context) - Upgrades the core venv dependency packages (currently ``pip`` and - ``setuptools``) in the environment. This is done by shelling out to the + Upgrades the core venv dependency packages (currently ``pip``) + in the environment. This is done by shelling out to the ``pip`` executable in the environment. .. versionadded:: 3.9 + .. versionchanged:: 3.12 + + ``setuptools`` is no longer a core venv dependency. .. method:: post_setup(context) diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc index 43ee6b7807d57e1..2fc901264822689 100644 --- a/Doc/using/venv-create.inc +++ b/Doc/using/venv-create.inc @@ -61,12 +61,16 @@ The command, if run with ``-h``, will show the available options:: environment (pip is bootstrapped by default) --prompt PROMPT Provides an alternative prompt prefix for this environment. - --upgrade-deps Upgrade core dependencies: pip setuptools to the + --upgrade-deps Upgrade core dependencies (pip) to the latest version in PyPI Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory. +.. versionchanged:: 3.12 + + ``setuptools`` is no longer a core venv dependency. + .. versionchanged:: 3.9 Add ``--upgrade-deps`` option to upgrade pip + setuptools to the latest on PyPI @@ -104,4 +108,3 @@ invoked to bootstrap ``pip`` into the virtual environment. Multiple paths can be given to ``venv``, in which case an identical virtual environment will be created, according to the given options, at each provided path. - diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 2a371ebf55a11f4..bd95bfeea80c71a 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -731,6 +731,24 @@ Removed project can be installed: it still provides ``distutils``. (Contributed by Victor Stinner in :gh:`92584`.) +* Remove the bundled setuptools wheel from :mod:`ensurepip`, + and stop installing setuptools in environments created by :mod:`venv`. + + ``pip (>= 22.1)`` does not require setuptools to be installed in the + environment. ``setuptools``-based (and ``distutils``-based) packages + can still be used with ``pip install``, since pip will provide + ``setuptools`` in the build environment it uses for building a + package. + + ``easy_install``, ``pkg_resources``, ``setuptools`` and ``distutils`` + are no longer provided by default in environments created with + ``venv`` or bootstrapped with ``ensurepip``, since they are part of + the ``setuptools`` package. For projects relying on these at runtime, + the ``setuptools`` project should be declared as a dependency and + installed separately (typically, using pip). + + (Contributed by Pradyun Gedam in :gh:`95299`.) + * Removed many old deprecated :mod:`unittest` features: - A number of :class:`~unittest.TestCase` method aliases: diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 00e77749e25e773..69b23de9e050253 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -9,11 +9,9 @@ __all__ = ["version", "bootstrap"] -_PACKAGE_NAMES = ('setuptools', 'pip') -_SETUPTOOLS_VERSION = "65.5.0" +_PACKAGE_NAMES = ('pip',) _PIP_VERSION = "23.0.1" _PROJECTS = [ - ("setuptools", _SETUPTOOLS_VERSION, "py3"), ("pip", _PIP_VERSION, "py3"), ] @@ -153,17 +151,17 @@ def _bootstrap(*, root=None, upgrade=False, user=False, _disable_pip_configuration_settings() - # By default, installing pip and setuptools installs all of the + # By default, installing pip installs all of the # following scripts (X.Y == running Python version): # - # pip, pipX, pipX.Y, easy_install, easy_install-X.Y + # pip, pipX, pipX.Y # # pip 1.5+ allows ensurepip to request that some of those be left out if altinstall: - # omit pip, pipX and easy_install + # omit pip, pipX os.environ["ENSUREPIP_OPTIONS"] = "altinstall" elif not default_pip: - # omit pip and easy_install + # omit pip os.environ["ENSUREPIP_OPTIONS"] = "install" with tempfile.TemporaryDirectory() as tmpdir: @@ -271,14 +269,14 @@ def _main(argv=None): action="store_true", default=False, help=("Make an alternate install, installing only the X.Y versioned " - "scripts (Default: pipX, pipX.Y, easy_install-X.Y)."), + "scripts (Default: pipX, pipX.Y)."), ) parser.add_argument( "--default-pip", action="store_true", default=False, help=("Make a default pip install, installing the unqualified pip " - "and easy_install in addition to the versioned scripts."), + "in addition to the versioned scripts."), ) args = parser.parse_args(argv) diff --git a/Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl deleted file mode 100644 index 123a13e2c6b2543f83a7f0040ad153f8de633558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232695 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νS>c$rrefWjz=!<){VkfOx8%cuIi8jsPR1A|c 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�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
^tH2Ug<1s)N#|+e&BgL(`0p^&_;QH( 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

9~+Lnpy3q;M4UoI3MRmuT{PP(~#T* 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%0A*gYMV|TW)s@^IQ^H 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

ipvPTcR9d$(1o4+b>O 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

BXK^;`2rp%} z?Jerc`cH(fjib^qLdH)Gca{vMiIVq*k}p*wHyJN^bW#O-0kD#c=XUp6&7`T-D~h#Z z08NB^DU3<*St=XmT0yg;VP#UoY)Nc)5EW?D+Qh&%s-1@}6}46qAeF;!&IZgBffsaB z{ZLGPW!2=h`c$2O%Ej3d7{y8+c!q1E`ce&AWDvx0id0>(ghf@sqqakQX~&<8=^foatGr^q7>Ax@0#4R55jHBj^qyR?`b>5u z6%l(g#bMVZSW=zImdvWuzDoDV(*^b2nnkWn8dt*CO*I#fq+&`$A*a<5)(FZ~8>|;k zk&aehSKS<N&_Z z1nh5}Hp-&~nG*4wx#ghj>lurVmg0P`3K!nim*aTs7>t`UY6!aeO41n}s4JVCYC>~2 z6puOWi{3NH3M9!muQ^F6n*)7S%N1lH z!qt@U#-@|76k>6{LsjML>nElQ0pM*r@VDorj4uehZhJt8Rf_2o9)v4Ld70u--E<^jBJ8ehBj`ut*Rzr6l zG<%b@X}HWkhCloyx+zF`FtI>H;4~%{)|z@Gob56eKsGK7Pa$0mL!1N)7HCemVd!1K z>rnw|h%KiJR1au3eLwvdZ3p?+bgQ_@|JL=H#yW$1j&mzsvr9Y8zp647Ol$&fM z{l-6zsezjrob-q+KFeA|7ZLHm04v?hC*0h+Gk(hKG82)260Bq}NemmZZ2KUx$1ycq z(~4=>fU3U`aoL91XOb#VRM_N*n%Zk3)F@k*Len(;tMm*2m#8e4y=`LoRQ7)|TGLq3 zj@^~dq}^zD{DwGww_t!p%~6J(C27js7347|o4{sQVUAZ&Lj9>xsmc$r=BKsr+;qrt z)gh?}IGMgNr<`XD?>z5ofKa7sujhAZ0H)O#PnV*ZzaUyJFTpi4s`K3J$;)5pjn5tF zuF+-e~UAe;LFEdW^5(AmiIRBt?u6?+Xp;$4Of>!Jb8})0@*ClSrlXQs<+8duM)aKdri579RC*5Pd*RTFv5|%(o?Medg^lluaOibW)C+&JJ5Oi)yKZCim zsSWPEMipz7-iw^>Lubd|%%+h8fS@QfYt7)iG-X~k6 z<}6MLc`^P%dyU_}<5bA1>Y77L{T=((IatyKs>WU8xnUUg`Z@vB6&1>IpC{UGS2Hed z+MF8nNdV+e9%0HibDQ&zRF=upS!k)z(?yaJj=ot*$Od}l;5gfCFX7P z5pg}4jMy8Rj9D-7wbicnm#V80G<>p0ByNLr4bKdyL``MuSTSrVM6yGmscZV}*s+ChUWHMZb)&@bOBN)p-q>w5hSBE>FS zt9_1sP_71e!Y`Rt574@k+NGq@FnsP@%4f&o6_VX)+&3BSY7));Xs6pKUvFU{b++4I zkH;6A;{N&hd9An7IlJz|$_7c@ucZu5VJb{AT-`V*QbdCWI1|dsVj8n>Z~mz5RNd_H5}`H1IPw=apfc<9MH?IF zjxXV%n~#Q>o+o&5kiNJteb8lSAx#<*p|}RRV67iQ7zKrJ#O-rM)%0qFejgIDL1h0c z9_hLsaSn54#9t^`VSY&|`?XP)xA;A|w5#-**EF}5{elz>W^JHA-aPKsJ-GK~yxKg2 zxRH6l8jjGN4oBu3Ppnkiq~w5~(X$qMoj6d`M47HuH}oV=*6JE89k!Z!C?oAC{!xbZ z-72Z&$8|7OE6!97yYK&S30$rc8GJzi0RH}C!r=XXhuMz*lLJ$%YGb#_itw+eDnPDR zq>MytW`$)?lUf3YhHnu#L=)i=QXrmGt%3#{L1{Spe#_N!KD{1d@Dmp|+IhJBxP{{q zbYsWo>s0#)l8WkDtEk<;J;?w&KfOG~o-mr~;ZHYaD)o3AF@1*&JwJvAYL1rLHa2hf z{CevVE+wxPqc{Z7(cLTTl5QAb=qw;9`Z$__7%`KIa>$~6gefXIjwPa?+L&=bF8J;# zL@wl@frQqWm6W_7VHBd#Gol%In=N{g_hJ_TjW&54lce1?IT@~_Tl@^80DkKjntPX z9dWwGwq$;rxg&QwpP`_Hu9qth#+Ya{4bfrObIUf=+t<~~_| z2l`(;k0?o|ILhx`M9-JlWZHUYwL_KB$uOjy96dSq{Ty?b&w?IDh||Msx=o*cctpRWYYeY*2z;#Npt zG0hYn{Jxi_qHi{P`)}|9?3>Tuoc4>OE{Eqy^OJ9Y38fe8U2Su*0VFP#ke@Jxpcy`I zMW2fR8%_V+rMc=J?yvtXHV2mv-yzXZH2|=Dm=(tqjbLhu(P)Uk2zO4@5=3$ow|$!s zz4>&dy&6_L0o*az`|9&f$P0zbgI}P^m4)9}Sd0V*87!ys^+O!S*%|f#<@sfywd5{F zd3u1UM^(L11PZ0Emlq@-Mnwt6@MHKuME9TsN~96Ubmze-8(NuLZXafdrWDNbahb>Gt6Kml+aQ>o@}VCgoCqF10TeDri4TFpJH1_Z89Ar?UA3X1qWLU;wVLS>jyhAtGLPHXmb z7P2=vp_sxBiUsF*T_9w5CG!zdWJxmrHioQFe^*nR_PE5KWwlNV*}x;xQAK;_3;~?6 zg0@00bAg4-GzD1=H>HSLud2>k6?Y4c-sX<}%IxesS5^erAlg;>s&uE3N_6((Upxhn z%$;K!CsW={xlN7uL(R_#316FLXJ3*qi((tC1&Wz;cKmM)>9fHBcLO@fhQjusuDPRX-d)WOt}kRXd@j z+1zCO+lS5O%w>Bj3pKlQHSUSahlpGoU(~pWy1;hN{dDUby$z*4Aw8v({^HJ7YmM6` zx8Nl@K)>&w?eKWXH#yb-NT(7sbX@sv0U~S3q+wxw7K#I%Sc{Wd3MP%%KBReUAsE*T zDl;#LAEdfK->`pe`3DXncT+kWl5FimW_A)`iIVL$>bp=!51slPsDE4mGIm}H(2(X4}e{5RB0#$ zY2g{&o3Jv6wn>wLFPU4=PWxfLajU}^(~ll3)(tS@qUI!WiVmb51RfW!4)pItD~s%( z9eaN0pHGT5j;{01(`*zbIXnGAA1ikMy?&lSv>hSjS8955HL7YzDs%nT@6vd!y>!KVONFnSR6t%w96qOU0QdaMe55); zHO0-tOOZHtVaJ>OhIwb zc)`B&$18r5_$q<|nWSq_lYq{4GE!Yz>@hL~PLB&@if=@cM^=+B(78fe%r@{aN{4lRCRrQAwAy34is2D)>2X;z zO1kgTE%Bvn51K+4aNQ~zZA&vfeuTkARuszQ$c#Y$sk4atYnn#PM3xRt;zV~#={1i5 zoO&>gsJ#M<&Gr}!8Wei(3^VC^vLzvhTzWc!oip=jP40V^0=7J#xGa`GTf8(q?>g;{ zzSxl1FCoSB>XVPN?^M36yL7ZL!l^b+=4w1E2ib7CWN(ekBqZ6WW4Ax^qU>cG8JWT< z)9tuV$RnkFTA}X5%Q?|5dmvZ4w^!5@*CZu5`Q}z=92#RZIE56}#7R6TwBC{7CRP@X z3|XU92+f9a*@?m5csZz?d0zx;>aO_mq_M?w=(%q|mfN=AvF1yV&H8@&<41x=!uL`~ z2XeW^1A(8J6Er0|qWPE}LAe?ey*Envxwzbc4UWUm`BtApDP2q&f5-=NU?J7H#OD;% ze{0(^9heG>C!?nFAfEZr;-A(qqIPTeQwzpdSBKY_I0i(oc$~M4IRs}yutr)eOfU68 z1b^rGHfnAcW;R=qu?>}b&AiTLD3(dm-Vj7YGFg&Dmjg;NzxGFMZfdtL)Wq0M%u?8c zwt9fQ+Wgc!-^+&>*&2ZyYR93@+bRt2Ti?gw=~Kk-f8b2OoQZZKG6290|No~>{C{x9 z(AdJsSHxA`3oRG@Zxk9*jOc?UHRs*nRHT8|1tJ% z)2jJ?kY6U1+RHF7(zAgRT4p7J2wb+@Z1b`VWd)$G;vFJaz3OVkSD$^k!krDxeF(m? z>+){T@IOs(=}O`mYB(r;Qqj7XGFPu~b3l1-V3F%N!+RaF-#N+g-8t!LpRf`!b?ch+ zq}veEi)OlfjkmE6(NH@XYQ1`a^s=E<3e?02q;x0F7c+V-*m(5t%Z9^A?dWYv&EsbJ>ci1DeRTK6_(wotLL6V9 zK@PcU^TX}xz$2qAmmXj8@{uJrmLB594`U;g(e}V~@2J6E`l-wr*P{aO0DJ2Wf>d8g zZC^;7@`=N29s&(xzl#tB*ekO1iJ*Vm%SRfEH8kC795n3byD&{z?!E9ZZ~>!k2x}H1 zui!d_XGU`}<>QWEc~rU(({j+UFF+Gi%KJCUY{C&BdZd{oh%kP;x^zugxk&@nxnuzg z9Wu%0n!v4@TWh6!cnTpKxHwFPIgEJh$e&F=)&ITL^_XiP73G|~igAfCp{+&Y(VVv46IDhbEG*`jm$^yNn12*5CiPD%>E1=tprbG$BV?Cns?bK!c*^wY5;y z*j=l!ftxasFoTT7tqAq$s^&fE;TEYq1iHi7Jxm951HzYlWw9I%NJao@cG{=0-4<4A z{Dx*t0==dL?Vhj)p!`qS?H}pT`oaRC(LZs0UpEYW2UrZe!;Rfg{CY|{RR=AXvSD5L z$$I4A^v(o%xNYQr6uhDojKJva{x^~sjhh2X)d_l1h@dQ09^39EOGi~gVSZ9J!{%NC z2QVtSYI^OX_>j7Gw8YVMR1`vdBr=(sQH&{+;G8!iND>7FFBzLp6sp=WC>tCE<7z8- zVE@SQ%QZbsF>MOKGfNh~c^mC@O-AreQYmuSmdIiCOsSk>=BA8QnrwpHW$9Xh+lP%b zRZR&%sF79G0x4X-3NA%&KG|s(yh9u~f!bMpJ8L+z-+O8@%|QeOHm(NUWl!5LbOp^4 z_nHK%CQ^qG=A7Xs14>SP6r?1QzlnN^d*3;p5zHXN3uXv!K!%J?kBuI|128lZK|?Xa zhurl;H6w6K#F(U{!T7&gT(J#uz)(fVnLr-Ixgt-BqJb6_^nV9` z_H)Cb3|{0gj$#uyclOC_m>Lf#KyFf+@{@mAmB4tY9|-fP)*(OYy4y*2)(3=ofkkj_ z9oJYOhY=uX8$IDcxt8(vQ4F!ve9@EzhDIyMKnYsjF>vdR5rwpcX4;>@j9dL%L^}bq z)jT-|vz~?7stB^6>p1wWd zXTd)2j}dp8w@fQ1s2FeP^tw|lP6Fx+-9yESwht66LVnH`b(=boGvrXoy!s4<<}6Sz z!XOjELi-$~pq7iu^WuvG!a?n5-d{8ZJjPH~&Ec-+kd~VGJiJC43jBv+LxEW2HH%YD zRmoqLh9lMWV}#gYq%c#B%=3Pq2Uk5IF!vcz$F)62{;tuflBN0Uc2Ku$87Kel4|opG z5qz(Mb50A-fuKwJtk*`m;?n5-UJ1Q??)E;HkL2)ur*(C8eP2%-51#RO3L}q*L3_F> zuW#+6^9GHv6lj4`zW!Xm$Arq)9oSQYHLe@DpE=IA%=nvg(&b)bHpg{=09aZnFl9d5 zyLAekVsL5*C=48Vh^ z9OqN-Mx6|30+=pX7yo{R3@5kdv&}Z1_tbesAn4E z;tjgZRkrsPdhr^=(;MPW_=8SGQu|hoY)cG-OiFo}0?F&AlfoPW$BWhNNL53LUQeur zxJ$ZV5fK07rh!F$(`8x5h^V|i5I5wsJ3k-E5MJE6H_KS-0EBLfqAcs6-^Gp@E*f90 zZ@%jN^M=H*Eu6!E?|2ttUNNW7$IJ8XdRop1&{`Q$!($%J2+0IHG@7G<*q)V{L1-3P z7DWQ@Oc-lY4UGmmXmMGwi2iF?y`hwdaELUbS-Js>Q_~>mCkvRIM~m?twO)?6&;#rA zJCpTb>-~+nj&9>R-2y%xwkFI5_7wFuLa|8wSX4hoGAxYHe$6&xw8R~G8Ae0ovmyQq z7>kQ%AQEjJ5ppim;v=-g+=_XnDC`yyLnRZAkF6ka-l62KZGeZhvRrF`Rt!+0I45ck z!^}Zys$~C?FQSX#s{pW~*Ja&ul+r81?#+Ix)uq?TsoHMQ9JSmVFf1^g2CW@T-sk{6 ze~~EjgIr4Qr~^yF48u!3MAk1C9;~nX^Y(gwYm*5bF!&LnhOmtlCk{%om16_EW_ID` z=e8pQ{U9h0)NQ{b_vZ>Akg6BBYDeg@Xq%KS+Lu5pe}J1_2|cf_{fN@e6Xq?gd$O1s z30hS9D*9|gNDORKfQW4(7wP!=0QZKCpv?-aR2OY3DY3DI))6vSmhu$Wt`R%7mpc+S z%J6V$DSpdDGwid8e}t`KC?w4!qLkD7%3U-#t;7*x--Hs10~LoeniVMNSs>ADd6Wcbz<^&Y?Q#_xqt{>qvy*)K+KALAFISuvqSKCuu$yJ?=l~+9!I8 zWp^hiJI`;mRNtOYeP=AK{m}*J5j3JDAKnzUL?H@HP6>^nJ92CWf7ar=gp9ltTYWk& zwCarsWsydeAw=&#A21WNvjL1z8TM2YX375acoNkr7~K8bznvhXS%{LG8sL$~^l2DO zeYd!u#~qV0s&^X=U_99B^Z9V!e6;F~t{w@}NNCX`!@}>SMq1Hx@Z<%tdUQ6L2QZg& z<~SRffYgCxY`hW1R{q^37|V}Ghh^3c1@vcJ8OkF}nY}nb|Hpmwr{A0v*bXeAw8BIK z#gQZ1OIpJ4D6B!}jp=$&?-lw+sA`EV#>b??4j^r^42;?xG-yl_QM5OD&^VdP8JKv9 zB7odzUIWjlh$E``VSFA4sOzti!pVN9qkGPqzOz9Ap-%{d&~aO*J8Xg2mS$sEl1c6% z_fjc1mx@W3Hxpt#0mQcBKV@TpUo~iV>1(=q z$CXujba3t7PTzIQRg{&U%fDlD z=XDRQy^a&2?S~7LVDtk{;k)ajqY=M6vy(i!*&Uzm*Rw6LzLsWpLn^BFV`}X=mRGc( zAB8}Ny>ERXZ4X1(Ae1Pk>);*v&HHZ{7P%9V96R>j9GuTd$rH7zHb)%4bkpW>ylQYD zGnmRd$qGNSng?Nwj8o_`Xh1m4w@Qv%jgx2j)$>#DY)z}o>tReqzi7j)*~k71Y!9q? z99*S6_h=22B-1arblg+`|22oV zI}fE8!@`<%EJMPz5pja5+M-rn_KVEtF<@4U=OcstMvZRq-wOiLj!OFLEE=1Rz~vVc zQuCmx3P+B0#B#hwVqj^Gx)5(ypqxidGlZE^SV|WbJuz%t)BndgmBV(m0an` zA?Y|QFvPK^g^rdp^S3SaI2Nq zj)Dkv!!nVj)nCIu{_3{adPnM-gJizKo&|2LFP!uP*&r1oTJeaq!CwY4!aS>)n9Dkglwja!)*%MU#x)x1Tn zQ}53EZ!8kfiA+pH?as+VP7f?m#nGcKZCuXx{@MG!Hq3`l8E+CAm9MocqHWIx*1-Vs03%_O9R#4K1%b#r&QKXF3HYo?L3A=EWtGL-T(Hx5gy(fygdViESBA%Y zJYw2armFWfFdEyzIC{U76MT$birmsTyD&GYV_qvdwNdvk$$`|*jR0=^g1#|Mz=&3YOeU2p;CuCzcd!ee}^U^xnb6Vjp$o8wD z+$yX%f4b{9wgYBIYPcsj0Z@CoDWt=UXxh$mlN=rVT_mAKiFFg4NXkHNNva#@Hp{6K z;t%IIaD{_@pRq%Faf~gp*7MG2x6_&Tf@b`)hN{^Fo~i0iv)G=W53RByC7U_JzqfT}WtShteqXy; zcOL|cYxmk69>&5v;{Yvg>YWol!^keLYohqZiTdp5#w|mF_(TKv*Otp8P3XvY#5`!6 ze^%^D%vRjY-+u@0K8OQwIg4>$j$0{|~k|8Q4eqLHZ41CwVGgBfz zyH$M~0TBWGdQ|BvHjUG7@_O{QvVS|k0H=^XqL-GsNV*}OT^5Gpn`|tilJQM9P7_(}KuOi|RTfAkG z62kiB(_0q4u5NChsNmyoMqQ2q{y=+nUu(~B^e#Q?ex(;v8(R5Qgv{R!Pgi)1DPC^H zQr2vj3|4fMK)gFY2SXh;w4bsm+P=FxnL6&g>D1+)|KT|}yfohN@k<%x{!+jHgZBOJ zah{{S&F?rbCP^l0lK~<0<{MQ=QXHrypNH;I{qR&T+WZgt$o< zY?m1!o^}v7Qfbs54%oPzzGFIemuSdzbf)m`-TkDCZQ>T>V&>W{1dE2eHmCELr2A~X z=Ro>|b6ga}1K_Y8jt9IQenD&@peBvK(nk=lXAXvZ*$9x&2gW8}!y|9NBm@-L4IX{+ z?pFf;h~P)Mz1?gSzzj#}9AM{D2a;jY|Adj@1a>Gdc5U6%=4^kFw|g5I9=i)^J>5f6 z+cnf`inNbr!|g6=p4cvMp1cHtQpOAxkZK$>>SVZlX9f54Kep25bxgsENE zPrtuJk0DdASm!Cp>HfWPTDt7tmSM^0tIkH#qy4FZ6!5f*nDu@&)8%-!Up(XcZ@L9k z%=$y}mueZp{6EqyhAtM?#=rke%de&NCOgu1uAYE9U$##B`8I7mJH{rE#m4ntk#xt zX{RH3*64Ne&Z@io-DcO$Hn(2x*Zt>Z-U&M2?6TCsr#25$2YeJXciVO{-Q<;RSrw61 zTPaQF)}8=YOR^rhK@#!K%J#;B%LUyB+ibZl#p?Fj`D*^kM8tZ1>pCn8TwPk}hWgWC zL*_SwnqMBREXsGR`FCl<_HiqB0TPg?>%aA;V!2$Z)azJlw`A+Ni*7B)_s3|P3$@&A z8ofTApSREb$D{lEuf?X-I^7&y?k?rH<&%iDzUr5xj>x`;h3YVJ3I^`>?msPVN%ROA zX&W88;}*Au%x_#No1S&uD(|D2f*m!sYu|8HV}4w(p~z*(lIAy^^fS#*b^)%Iw_Bk?t5zE1R9|+TNw2AYV=yCam2w!LzWGO? z>cPc*I@Cr9p#WqBU{USW0O(O45{5fTuGG;Ls{lX2D~*e2!&Y24GVkIjxfy=yB$%*m zj>Ap#;Jy0F0uD<9ku5Dtn=aviOnK<&H=i`zxvmxn1cAY_)&8>H!f;_Wl9-h<=+;RA zF=VfrP)c%v$|qnjnk5@6H%!i{E5>WeYDVE%a=Hm(0Rh4VieO;xNEAt7g zl2^TnFIk2(Q%fCTPsnu6n?MVPFLk@<%EBS)#au#(A6;&(H8!_>fYn((Fc6@Z+M3vc z0wo!BW|uw?#<077l%ToDiN1;5*FeT0^ORXyGET10DlVrHFlhxBv@xm`t~fm#s44_K z3v^&9o)5S&qa4sx=K%ZGs7c?pzPMPSck4WMac=G1*6OJ1#190FjxCbQy*iXQc_WyP)Fer zF3z8Hx(S(j$ycjhDk~)?6B67@IQp8$*^1mvVcn}fa&2uz+x%LAW=)SEntV!CCbsv0 zdU&a25_X-ALvi0W=rrHr)~m#&2wvRm{CZkaU=4%6Og0Zz)|mB z$}!#cv~+Yp^9shlBNJIDGl_t+?(b* zZu|)b2L9Fxm0nU^ycdYE*EW6IKFLxecJBS{LfPxAGT@hrB2e`dllFUhQVCVVt>xiT z3G=pZsabpO*9h{|4rG7<`}DrXy*pBhQg-ZwJD zg=0y1>p#OjT~YmqDYlqq=sA^G4*nkVw~c>4mkS126IDwD1Xh-g@Pf# z9`MPK4v^O{1LC~KiRH-D=-zyTZ3$jh0(BS##WSxFTzJ5MnUQrgXTfG~j)2c1N_1ll<&s#;By)!3aZvM=NWt+{0#`2TYe5I z8hfRHOqaG`{>ZeW^UxKcw2|gpC;&rd@kTpN$gMbl*Fdsl)R*(f#u{K-T!5z|4uP~V z`eOen9@b;qitQ+<2)LrR$eZ)1e&UsN*lE3GAn9^oHxE1ClcrcPv^6|eIGzGAn)K)^ zkS0C?G!EyZelifARR>hE+ByckbIPQ9d@kotb}b6=Ma!R`I4;~YX0NeG$m^LwXjKXt zi;g}UT7}GtKWeWzM}9!UQZ@kDREwYBV~{N|`f>6?gCD=@R!`WjH!-xQ`b|Dj9b@v}3i=BkQWRR)l1T2%vM5`X^t`X+xb{SH|rgUcyl zw4oSF-NuMiG3+rbnh`x<+VG(*_DO|%A-Br(Y|%uOWCvF>r#!&opKhhjH|x<2>$A&) zD5639#4H#tGEc^L9|D}+m&hCqWRuU-cV(8$FsqQ;R0+THf$LLi8H8#92W+Jz^+S0E z%H`#tuYA8Iz)5Wuis=;A(eBsD9-{)uAHx(6U)7|NZVGl4EJK!SU?vcVPPo_q5`yDP zB~>0J;@%(m!x)+(yrzf`3mPAiCW;(t(+27deSGU6hk)}hpsFE$Y!Wp=Sd6^MzmUC& z5DiaL*kpSQgXfzDx4p?iSweVzzOGA<^gNTI5FhfO@uTVS#Qz^+ALyN=mW2W#zPLY; zf<_3@W(a2^#Byh>(XA}0sDv(^#*~%Rj z_hKE^cD>DrR4XRBJnl%^vl9+dU+4bMhPTd2mcVVo0rjg8x1s^F@+%qU_o5y{{Ds9KgM21a`_Jlk{Zxx=`5nJ2POGE72t0+lW z_aiJz*uRsieEVG~+L#yp?Fk0>VjE$^tl0qq;gN{6n}*Xw_9XPNCiF$q7YK_DC34P6Bb%|etx!Jl z1oUg%v%9Nk6P#DED@z#ik<-@$xs`pAoFu_7A2L)dJ_3#$vlN&6npo5~DD%WqbJYp% z<&inx_n1O zMfoce){Ebi!EGHnx|qSWZvr1mItKroqIM)=C>0Nq(pHK5c$t~*c#pfz73xuG<5+Ys zanTt z3o0#R%t_+Fl*srohSOD5xfn!DbFQy+?c)yy(yWU%S7fGaKkz~UtFK^B$Dr7>k&}`X zTAYu{zNJdtVTpx4;AtvM6xLR|P60$(E#DrqXSGb<8IJBcjp{bntX*lXtW+lj_Hegq z`RlC4BqBrY6edflR%7;^h)k#vI1ck)P?sO3ppFs?x*@F!A9~CW0(H~GNu?7GJgRpc zy^1kZh3MqCmFR~R(g=uiug-NRyA1M%vv7T!!~4A&2@Y9Qs>&|1FC6wPxhMAB7e=Bn z-Ni%he!@-@TTm6S->;d>@|&7jkKKSI=@6%vNyx)|R{2Bf297>xl%KkPKQAx8(DQct zvgmPJvH@x)uS~w&^m;v{J=)RpY7=&;d{O63n{wP{!P(G&E|)k$chRv5L64x7!>vd@ zliC@~#Omladdy@ADNHYekjhj&lkfqdt%U1!6(aISsw6IscOGI-^y_cy`MihPfQlax za2uOzv8-t;;0c&gucP(15Y$}9Ma~*e`Y!^(N-}Ctw`ko7<29O(+XRbJBksi3fYgUv zP@|b6b{xfwYe@X+5#gHo|QD3OLfkv))N2m!D;h9^d^l z55%vdL_#CkZm4Sj?)%wi^Uc*4UABCB+3J@^Qg#g;arVAI=jT0{b=E}L97~Z+++2vK z!_z*0Iz$swfLQ-BpGmaMdQcn6XJ?W~QsVR`DNmV}m!bqJz-fDf!wF6G+bc3OrZf}x zV+Lab_7R(~&09a8mfp>KTXX(FChcEh9Kaam1=d!Gk?iDmG!*8@z1-=d1h@ZjgOoOx-|aMxf1%lz4=&B}5^QB7zP0j;f2S zQ(CWC9TBP)IC*#j2aV~1Hfo82Lt%CwLAb;*(L?LL-wf?>^DU$c&nsv^dykm|0m0YG<+_kb`2DW z77h>(5myZ=K|;G8RaoCjM%WiLH0ddCju^#pQKbRp$a4<^4ADnwdlFRVP}`#!=hGf6 z0)AK=!Ea>Fpdfr^_DN8*|Ft4Ok*C|ZU9!**5chkQ^kZR=9Sm72%V%w9Z|`OK2sSJ$ zr$6C0sxh^-MHa~5K&zqH+#5?Qa{eSYtiAMmTN^Y$d=S^U|XW6ykvffpGW>#mWwDb^`9ztdz58xOUAUAl+3GYH?B| z>Gb9xq1A9HwFgsV^kLyC&`C!#(L;fS)CjM{BtTi&tHs6X6%sL&9t(;A!;7TLF}|2- zCb^e0Pjad%)ItrK<^^+)=`Rm`pUBKXG z0GJukz$1Uu3o9*_i?^$m7?KU!ZxAW^>n|fZKmwA}KH69bRz zd4iDgz&af{3(eXOgn-Zvn#;n#EDZt`XkMw~Q`5)@dxv54!$+04WQ>Hd(|v>dkxl=Q2zo|anuuE$Y|o6%jb5QegXKPa09l9Q=4+R$$@6Rp{R-%N?Lc_rm8X&@ z2Oe7JDjnxvI(#50!>~Iw?6GvZZj!OP`RS!%(Z6q$0eeZGv_U^fPWAygO&3VN7kyXQ z_lnmaN=qz>bIBh9xHM*eFkcC^M?QC)#p_ln=Xt4r_P^V0%n^GIe;3|hKVT`sQR)CM?on&xqwm9B*Wdv+H zO#1jG0&+X+QOSm9j3c>U!BGqPT^#(jWWk!W#NjHX-=2nA$6JXp-opF%&jL`OW^83* zk^(h~|Axh1+K!cb6%YjjxD~y8_f{|w9wh=&tT(3fI(1AhN zbCZbxsqZauux@=la~$0OvJn!&IvkJaw)!Q8%co9zh5q!}3|e^ZvWPn(5*fm$JU#6G zEPbNXd-WD7q;gO4tmuByR=FrhRc(3b{Z`n;vgV(Ut7i>)3=%m27M zT`+0#y*LPo&cWJQq5tLv%4sOO9sWvit;L<-N>!gIeY5{DNC1AF9C?5cX{!w-iyk;` zuD2v9rRYrhVjf<_RZJK>;Yq^1dVnKZ8AG+^*V+w&Z|v_)@ck@%?Yjwt>cAz9a|cA- zRRD8J$2f6d1T2-wvAvF8&cF|oDl|yZ5Bn*APkpw^iuBt2A;UeQ>@>=Dh3@!XMnnmM?${gbO_L zH;DM}GK66VtoP<}ofpm^+^zyCsz0?;HYo8eMwU~RDPiwV zzHmr?f!biA(O>`2&a1kLIk=M!9Bk9a=vAjD$uKe#57Cz>VWn#2HcR^i zEPBXNBBYqjFar+fwJ%J_CEs|!F{s%?#sVz=<7z9<3sxOajVy6|JwNNxf}ujVhxh_M z+&k!6a4B%OmHF8BsNAL}?;m&J+qm|jCJH9c3NFrLX)f>;e-)N$KN^QDK?M<`$K}F% z$)BWsUWtrJ>?Z=$4>_OT%Q{$D#^&B=~q5FsbsS7K=kOgh>m@Vdd(;}w$muV1)MXFzJ zfY=*aIPI3Bm-P*qTp3&-s~DY(5x$}vA2>Z;2Mq(043T1;@9@FCtbNDgrv7=a>T1^g zA}Z&*6Mn}P=jPwPieYL!TF1r9?`m>#b2gFPwaya8kHE(S!yI@B2$H`jcarbH8BH0` zPgI1=eSWE;7C%D^<-S&Rq12IbKzv-wRpmKV#`LiYZ_Sg2hZ=*#!m03)h?$oNKy-}o z0vvxH1K*l0nA5tqME3xO_{%gss%z)(cyZ5}RirSnU6&bsVHr;liEpiB%EuS&|DBii_wb9IJyRebt(R3yLzVyXC&B(T4b$4nbX#t-F+uKR;*BbY z89e&s-uonWUdx{qFO5sgEyRBUvC>=+adjCiVgpSzZqy;M;uBE=U;@=>Qlu4y0_Gg; z9xjc#Z(GHfVX}`AIY9+=xD%p=TI!`NfxuE<*t0ksq^dkFaPu$9m7H7d0_0ejlZ6A%-rOtcz>W6c zT*WSj<&QvdkcS2?#v?OEbj{w0K4Si?z zuI|}fBWfCU{h+lM?y>F;J4z=2H(UE7a`K-iD2RM%4<>at2eeou1IO%At1I6lK;Ux^ zZQTG)O{+Ou+z6Z5cZ~u6p2krUXV>6M_%EhJC^h%;us_DyJB6=Mh01$)o~LuNi-eXo zXQ=ovb?2jfYn{Ej@N6JwmPOT?C0= zJb@y*7UIx-QZXVHMNhL`*1K}}%=Ds(6xqN9hCDd*r0Yz?fhoZzNshCwu&2iyhAB1R z7+yS@F!CPWZaWp%Dmex4)rBdhl^lbLXCc$+@Th#o7bT5cbHtL1O#Uw6^0J z%1uf!3t>g0mkGz#w=RSEuM>j%pS`KuXBXpXDQb1gt=Mg09?_M~afM&pdGA3bpcv&VyW5Qx zUI%LD*cI68pY$yQkO_F$47QOuM^xalq2|ggEYqAy8+jyzg z(2zom3yDgQv^)O}LKp3BXXo%B;q}}rd&v#`fm=LZ+sG|(dm6)zsiWP-_L`%o>%&RQ zy-qdca_i2+`iG?0=IcADLa5h?HlMeaRuG=oANIyLF!P{}rOV`O+3a%ddi zfNr8`9is*`5nMDeHr;2NSa44f$@C)rpBUs!{ONByr`ZM$pKa>${<2=p0=rL%Ti>UF z?(pSS*q+kol?zX!yk(_FOwI^kyULvh)c0REf7C2_n>}diC)sAL@}SSOj+u8upIiza zZX-dT#!qf;9*NG=;+;xo*8mx@Y$Uw)E;sxKO>yrb*d5|RveGDl?NOYLpOVPUIf9%v zwuuiWI>4t{ze~)=PlH}@d4!r_TX7tP_KUnF0d@N4=-j=SQk<>_ zt*$x;yr(<=Ee-&5C=$#^_%+34`#-)#{l6#E_8$My2WVZ`9ke6<*TdF@$0U) zIT$bG$T8M2?GjKk+0G4NE)CT$l4%v>C?t4~u!N zy>d~Sv?S(*vnioV4^{Y@Ln7ADt!z~a88+xJ89?lN9_qyf{|XtKf(T$x{(ZPrs?@Pl zR>ZvYeiQT;6(>lcvbVjRVp%u)Fy}8m=N9pe1btV~`QjurARlb@j;6W_!k5CJ z!LkTT^51a9XT?hwP<(u6zu+Ru>qCJIXriaP@Z@p+u^NMM z1NI6mlyXF?ME%5CCL-6GWE;bRLL!r$!8+L+u;g#e%PiUac##Uv2&z$QZ=DQN;Aksi z`EdqiX0O-U)MxUlN)Lwpe=y^~OWNSb z?+W~&jfR_7KVswWu6!Zjo$`~oWU^oC@IF8Lx!?CD@{(7>=y5i4Ol;ukAwfss?1MuT zO(fNIFC_WSsP*yNoM0VQ2R3_m2QH~5b3VeFz@Wg{0ebyJ!3q2>PW1WpTXkJ86qcut zBA6!8%4^xe(-tb;ji~Z2MrBo9ppYkRFEESfPX4g$AYqe2P;27#U`J7&AQD+JJnOKb zzOKTdPg*{@Ogrhc|43=4nnb23@@45DW~+sRBslBbfB=j>s6=K=p{K665+W_6xqz;! z@|ip9mb@G)4$UoF`S#$(?Wk8ZtOnCPMkfsdRR(Y{t^GX$_smRajq*h)I;2*h8%%jt zfkXOI+i)trO>~J1B2wO5%$O4SX62RKLdbe*2>D4Tpu~FyqOt29QhwO3&YVMQIZERx z_$_BY{iLlCY6E5`zsvx$6zTjAuRcM*j6dF~5Z9wo^SGhZzZ|cW&7=Lf6oG$}9<6tw zW=J4YS3ae9Ix6^DGyTU&Es1~i<$*`&3#L?=xI=MAeI?Amy|DsmQZASgJIEoOEnE z>Dac@v2EM7ZFX$ieq!6UZ9CKFRLzHZYvxDXb?@5O+H1{VuWo9OZ|AX zY+XHzer(xZg^Gp20&A`ogAZN|2)dZxH}DnSmn%sLOpk-I_f4ZJBp$G69p16(W8WSF zft|5)q03@`8C>K;c>ivRg@7@@nUsYp;bQ@NES{K->?;#%VC*rK@G<=we0)QdCp3q z$X!G1EeQafIcT1fyQPJiG;A`|I8zSsLvck=g|F`!8Vrb!8HfS$nUMdU<~v@nD}`pj z>%cl{{Pl{!=<#-_5C`+8<&&45^%{>|zqG2b3YM*@g>*STpxHcE2XCaXC6QO2>!^l3 z9dLvQH#j<3k2_N@bQ@E6cq=VagRcdoi>f?pX-!1ZHw_owgh^-sP*WoS2o~eaxMEXG zcK838?&4u3j%`QmAfTcnycDt%bBPoPNQ2ve)_w)UYp^cAfPJEO14~Rhb7$u3AJD_h zGbDf-nzd7v+`nGB`UHJ{R!QMA z1vz#d7`qx(5mQmb*i8K*sdE&92uQqIJ)n8{MPBJ)Qoj-Z5TL>Ah}tJs!V4Mk!1}dG za}80!RF*WB_ZHIni#U;xxAQFIBv7wu3N>ERj5nWPerHN}1nzGzgF`2e8;{kqJZsd} z#V2Q9LrJ!84HUHLsCmS;%8Yj+waZ~g2+1=Tg|ej#xZfLoc_lB?3}uX35@{3nt`5|; zS%yDldJN5Re#rAgEoBHW%7aQv^UvDRKV!a(i0H*053t%12JWK4?`p4ss!Ha7zn)#4 z<`p<9;Br{g_Juw_8H!>f6ILkzI8R^+m;`tnI`3+$i^sTf`zMr)${eWr6DK#+rB)+yUzHER#-Vu1U-%EXnNA=E+$VL|Y-pLUvWDERzBQ0l$4^XVt1FJ#y1>Ku+6~c8jsI9>c5Tf`dwKMy3;{@zSshi zb@e_x@H7qHIS82bBkLsB_S;rsv%o?S`xQ~aD1<9Jgny#*4TI0Uttw+E2vN4@tPx=NTkupRakFIdEg*D=)huQWIcMcJ0@r z>gO6KfC5Ir(c4j^uktu19LAyBteKe1NUhsQ<01_swBf`~hZ+!^U%t(hURpeP`YsHK z&(Fk;qwsgMgvaaXp0NSU_tb;GU9AF6!G<$JH|x1eCuqf^kZ-ue#z%$DGULa`f0pF#Lz|&=srvs`p-zH8nPAy_A-#Q!itbIGCSh&j4L{z7A&Pnhw5#DGz?6j6 zT6Aph4uu9y?UREnytdz8_hxVL27TlhX6a6xl35WhlD1&jyS8eTzK&WV&oVMqc9gCY z=g$GT_0hRrq*qjDGj^1tw2*FxN$(iWIbmB87E77}biOPq9_TW(Bk6n35t$|@4TV=k zDmfXqGUb{ZF+17ma2RwB0loi@Smh+%CB4f~Js&xnpLF>_EXVkkexWa)62;P25G9Xr z7v<9tF;tx-1;uEDTd6LGzWr8sFW0Re!Z50)c#ds!RCnGzwWt&1|9CZ>>(~!wV%seh zA4V-Cws@R0$8AWK;$*;kJ7g&IK9{X195nRh|9RZhFkojg8Z^@hTAv&b(5A)K&`$D5 zgx94`TMKa6%bpYx^?uVFUiw!>zttKh;NN#0HZfD~Zu#rB@}jr1NyA(C?!eCB{5OH1 z!_@rO$G^L@^sb+}u^bah7c64mzHGm1x{-OjT5DbB?1%ZNtoRq835h>`K1_g;cBKlH z>@D)3%5`CC$zjVArvS+|N`~Hjit+qx{=GcVoK7H_OUWALZ!7Piav1Snu`-11tdVXXSs|ocydZ}st}&%a$sQ2fj9_kkgLBjO$~ODPb{Pd*0#pS|7@2CEDBqKVQ2hAICBh#zbm(cy)+(+tXX6ljDnqGp0NdTDj#Ck1pPSx*s{t;lo2hU?pXlBZAb+j*6m<;Hs|G?;da3R*0Jx2VZyb6 zsv{XsRr_$3U3m?dGB<=q>X}xYe^BU=E{hXH;y~D87dlENjaHx5e2^k~yF8^qNz9{G z5OUY4_(pjsq`a^Sq3RS94wAw5XnQR)%_G5{R?@{XZsxI`4>X9y-*MN8$4$+mL7(6z zFj%mmC_1T2jzuAM=I`_;$X{_@>OI~e!A|M}No)~4RJ8#1OtZd#)GgycUuE8L6p9i( z0qZkM_Z(X?jg;bzT-gr#R#kQTcOdp#V0<|B43~D7hF2?Qd0>P_{%>-~_5m|DYQKkb zOkIUHYqU=FA;S%KXjr0*z$|Q-yrB(COEDwQr*V(K+di67izo>xI%?w!=^xTU+(2l{ zQll@Asblz$%)^lFx%W|Oj_BN zK;EK*a%&#iKy85SpgSay$GpGJaq<2-qMz1f;Q|Zu6s`FsLyIPVt2s(`ILLNpcQ>$_ z!kw6?TsBVFjsD3~wOMXOuPu%CCJk#iUS);prW$p5rx^Z>@|88}@v1nw{d5h5c;t0? zJnxj=Rs(0@{2UC-pyw3Jsn7IIi5`9b{0DUhNjAH03t6IlOr^0Vv6yM9>MPur9ax#}C1t0aR0-plCRd1r#DTHqsn3l&0b8~8r7;Bp;V%l&x6==CI?6Ng+7m6N7KEd z@|wP_#J3WOhwLR1J4l3{MP7egg*tEd9@S*c;?Q69wpZ}%ddo>(hw~G&Ygi+*$-K&h|PeRDDBCFhDzb(;HoUybW zWpBff+p6ufe%rHZ&vo~wiYzTsAx@5{x5Qi;p-^5o5w($tvTbw{ci~uM2AX&)n>uOP zDlvsJbR`FohbRxhxP3w{XuyWvicYN2t+UIL<)C*>e3Mz{Z3BuClr;%Le@&Lu0}5w& zA_g_Cs`}FdmuD(g2Q|wnwE4W{x-OW&5Ce^-il@8zpl6V52gxZK8lwYFmGLlrNR&=l- zMpFoZ*=lcn9zpp#GQ5RzCqZ=;8wJZItpggubNRAeS!>;N)l%|ve4btW@3DtI>S{!~ z=GFRK4;h~wuvvF(vD0JbeM@MpDzWnfKUk}Z$*8h?C)Ao;br{OyB*l_)IgqA9fndV$ zp*jVeAf2bp>7TtFnqA!0Dxzum-W7*dS}meDwvte`d8Rnr<075kagW}8QVCdvWgK&z zo0-kbyVuy8L3<>s;QV7()pnMLtJE=HQ9`;xrnlrPOVZVSrpMeTSuoKe@@CEPW|N0t zh(>5pwh+F4qP|6O6u-nM$Jo2lf$Sygx)ur9pQboMVG<{`zZrK?v@Fml3(Od===Bfd zq!%(QGukgwZ-XpSPEc$WKY@ocwKX6;l)&}?il&f|ihiIJVw)eoSeT)J-h>i;4Ew5zWD1Tk0470WD#- zkTvt_ACvx2@yZN66d*2%445vHIu*1l@QJ@5@ON2C35I;pD88?$Yu($+*mIOM)gko_ z9H~+h1y@!ZU~lu))#4v@GE$NIR!m;Gr5Dr2VkjkButt7yqot%A0g^k3G@OB${Sb`c zp#wfW`6V6uDt>;rnlR^xmoJ1Ev4eLy34Q8#e*!I^@NAS;)AEd!Hdj&Q_jGsveG!b9 z55w()Hs`=|@s@zwu~U(T4nKz>U@5~!-FTd^F%TvhZb zhA%3zBa~EKib5=W?T1|W_Q%?2Y>I)H+5To8s)9r3ZatGRP+6@APNE@1$qS5Nt+O2L z9#l6Oa~nmr>ry3UhIK$!^-vr{Q5B?%CfeOnHDAFwY7cZDoaS*Dg`cZu%Vdz2m5?nX z1^}@74g3w-XQjXkA|+1xb^k>hUgvZ?cli5$n$@{egOlgk>vdr0$AneEG`EMDJQxn)tG6{}XrBI-Fn1N3E@+kN zJvG-qAj6*t6v)5XJM~UFd?*RocEpHT3mJRoNSFkgQP~x7XJEbfsHf;n=>@uDwQ4m3 zN+9H3oScbm`RLzv%#+g|b#JMQalNNHt|)<7`UdMNG;*}}r+&4aO#AC;d=P}@Xtj2x zdd5tutU>37M{X`}Re~sQ$cZXr!wDybX)9&I?kayr?9Wj0f`BrpxefzxdbQ<&89aPL zMk(wa1)IR)8wbI9>*RM(SZ_ez?B51^Cph6ex3$1zu@4I5X6T*uJo{bfR`YwzngB|f zR>%}QqA9D-3p-yl902~*^ZaEFs&lqdZ_}RV3old)g`+!14}+yUklC}d+%ypIc0X)w zYUX>H(Wo|BwdY#P$|EgbesyXw8=^ER))?;LoXtUcA~7l^)T&6KwK$1$0H2ZSWl<%0 zv4KFqx4K0$Py6|UTDxz*<-xA`S_sFp^$Yl*BB@DsCshy73_BJu9-LQH0ev}&o08z( z^(QePu;4>o$H!K^D>?o;vdKAosm)i7BT8+Fsq^v!q!#}B7o`Dvf#yWO>fzZIs@=6J z`mLjym@dj+a?k{$L$lhxugaeP(DOkiaz7?O00H$P|DRav|F`p5*qYk?8&G1@xBj2T z+3!WKuM8oDNo%wN{WRJ{J>FO#ARlhs+RL0NAjLd0M#PfzXb|SU=Oz~Q_nhPWJ5jH<+8^cqPliEMrpyW-A{? zxkqW4u`|b-#!xT;tr~<;9n`QaJM+{|0yvHMc4bK#Bc(52{&E?tP8>62BD$qan?|cm z2+K;exW1tmjrDL3P#T#xFJZFKV7c|Kr@upyTl3`AQ=F15Wo9zDB|lHA{-A8lC>6)h zcPc4_Kj|eWW(l_U|h7{oXJDJ^oFbt;BW` zS6RH!n60jWzs_}Z79I*qmtk?&cik`t*Js{a^6K!H#e)3*W=?|2PDsUB6)ZNO{Uq{61LUaT|-?s73y`3>>#!- ztmBZA9n2gtG%(LD@7LOyYk)k4qBK#nh%Vc1T|kPSW}%(%H}~*)I|3ZgD&+QEgK z83A8UkMGajz#75GcAq>FRr{6HSOsH@A^z=h$T{*n2$LsfbpVWTL~Dvz9c$5S3K0qe zkE$ZFC>&cFuLp!o3QY0GZnVKp1TbM zqO~K@a#q+;tx56zgu)3_c?U$%J6v%1a_Bw{Z1NxziXNV2oh04)v#i3b*K8;?=E^iD zPxYP}H69&PLb3W@TEYTRU5MNQRfw+^?m5@}hxHadFG;tsZ%6}w2qIwpojI0AB{>>1 z3<(C}N(w*xp8d**w(|_$4lxqggT8$;F7XQy-vCdwfA|qb^EC|tt6L0VhBFk$ix1C4 zoQdw&724Yfe(}_s^a5IxO=ng5*sV?0BS$wbsKLkT!aIh9V_im7fta^v27gPi+}y+v zxFITe!DHp2AwRY$)Ji`8(-(u~!C`CH*#sG!aza%B;P*s|8*9J%DwZrbR-~r>?o{6V z&xXLql6Z3+D=!UmpNG92)JEooLGJt{^kn~jLOInlEOY+~$R9v7M@9Wvl?ZoUsVh`Vmo!9tO9Nak9A5 z(1_Hvt3Gg=m9hau;(&T$OrbvVhJeZKS=ykzz+dz5<_ft9485hU!L9>1@C^$ir54FT zwH0L%T^t>YE@~A)q>>QjZB691z?N|RMNh1Sr@sM8J#v+E>TxypK>H|=X2AWP7lYT=#vapvCsa&P3w$yldvCpouL)-zNCn#DV=I{W`fL4eR zwN$mksTuzLnh161PB5=D!*bh{`pE82CnrCpqE>zpL<+3WGcf1(xAXOH{;J(}RIO+c zDkv2xThtJ6kW$c6@T>DyuT)Q;7DVJLB$n%rBF?B%F!E*Rb0LZ{?CST`VgMe~)2E+@ zXj0KYD#G$i>{HjO5Cb}`5d93C9rbKWF<~}_H#4WAoQ0U5vone9yT<9# zD|7fculW5r;1$BrArX~9l{4+Gxrb8%a$LJF5Qte;^hTdM0IuMR)i5j-(7eO%XFRAKZc&z0hqPvM4jfm*`H8`QDZg3Ts|7@LKRDW)u1h z*7mQUfogU_@7T}(1PN$$kb?ZQ{@E#Hf&bI&{oi&969Xp?JqueWX9H{Ne?PP-A1^Xyy3|zoN6O z!z0Bf;I^W>O6}HtjmGuDashPFlzFP7V*GuAiu&J-+C|IW`l^Xr5N*HhcS?{YJYxYN zUvp7&UH+DMRcQ@l_t8ypjDU|S>bmx_alN)@p!Niym95CMvui!-w1uyn+N-#% ztl`&I-DuJ5HA_PiptkflGU?Ifb!P}{_O#z-ySOx5$})NK+-TzUIo7-CJbBgo=sb_2 z?G0nqzOiaGXIoK$v6=WrRyA;2ej0LFb2Z4Vu*qy;?z)G>`t-5Q;j^QUy?a~ydi0FC z81H$H8A!1+PM&u~?p*71T+)`_`{$R^8<^|Msh*f}lpU3Kj%wL{ZaMMT>Mv4#Dxq4Z zx?HoF$c(XS*Fawiv#h_EXjEBL-8R&mVB?Li-Lf&`V|!jecuL`4Q%z;@eOp$$pe6om zS<}<E?A=4T0k>O&2TWKIIDd_f4sXrts=H+N{B~`GtGx2?ZV2P9*lhXz`2Z@Y_7N18dAh{?PjFk!@7MxO=T!YOZ?u<>7FoA60zkBSRZxp!rMHQG2&I7~MVD__P=~N|HxEM6s*~# zz+TU&Z1ly^0|Bc&fn?(UyuDVg*hS9h<#Y}lC2M#poh+rzSk#!}RmikjQK!KY8t*i< zmLTC~S8PrGsP?liPTrBGaoRcf$nx?hbDsmk3*0!S;4U7EdtznEF+E`aD%P!l_e+9l zYAa`7ZBWnBi}tu0Zp#&bfZ+%_c?yHh;CDx04sbAWQTse^Z0wjJpDD9}Sp{!28fVf= zt`vnFO^n-)CR>|Rc*Z$XeUx!WFs;Hb~z-c43KUl|QUnHo=Z+b9k z25UM(chX+6;Y)8t({6>qTyVqD-r6x?Ngb-V?2xt-qkELpAGrEsKAsv z??hC%jyp=`H8l$&{YeDO?y?{3;Qd9J~O%s zS&ylQ8qpC%K5m%bKcpw^$U(yA>G1 z2$md9ZP9wA#{87^8}iMnGb{cA-8$)mrVwTd(qF9)c6w1o3~}0mW5OiHU8x2UKFbjo z#18T*NK_XA880gR_aNA{^`T~OY*BHLXOPtg;Ig8kWw05P5*+uTFAnKuMW7RLWTbWk zn=U>aVrCZIo)u8O=NLa6{58|Cc0tZ^ee*|4H*W3X#@-ov@bYP)?pJdkwfFNoBOTCY z>Zq$}sUtAq=E%*LVE<;Ot3_PCCvZ-o%r6kA$>-yS(7#0_fm4lWh<=;2YbL8+)_9Y8 z@}{i;!VyxpJ;UJ#_!Vc&|KtsXp!u*hbnbdqZkRnxi^>hvsQ1q0a9AbwDTn$Mz9JcBP=zSE9<{s8T?Oz} zfX3ooe^o~2n#sZwPbPi+LyBoP(Pqe+*(+vh&%`o!8ad76{yb!(<*sLzOQz$74x0~T z6H-7mh)9r{NpLfTKM47X$)KJ532fQYe#Kfy8ujD&+%fH~X-c%oC`^kL*M-5{m@Q*pU((-p*E+-7;(`Mcx816K2Q8ily`U8-=Ky^-Z-K<|$@sau0b8DN{Q0;C zJK5MBbaMI~ya$<|oNq4(8XFbc#FeGA8+>iO8zzJ95t546q)n(-g*lmKM(AH#cF@`L zT2^}J@3YXOq-i}hboxdDHU1X8sJ@SKd(7NPxv$uE)NT19c^vme;gJ2fyF`%d<2-;W zxJ~EEhlm4jnv)0u$JUv)r3|&Ps_1}Bn`BfcnU%T;c6&UA{GpZ&PpKa^0dp->ZT5)< z9qejY7~%}`f!z80!N6QAE)RWvd_=6=DJTc`l(K$}1szui?|uls?4?mRYH7Yv|5zir z{5rxNHf~JzM?yCHYj-{#ev0v`^U`^9vZj(IGz;PCCCK%`p;98?)wu+}(RXk=Z;Y)MtAsoAV=h|tIz?G&z)(VJ_zVQ$?^{Hy zi2;Q&bm;HHd7}kX_f1^syku~sBjcAA3(tj=b|rAAG#AuG#jj_$G3$MFuznREG8@F| zaEk!FMwiCTzBJxBHy|j6Oul%T#&o23T)=>ids=>cyMZnX+)+cIi!DH(f*xMa`(A=< zW*+ZL%}phaytLwMHsfut$UWHt^W#n#5kL633obl!6R^$@%#E|B@b}O4`0K$#(!t*G z>a=jt@EVFFAa#rS~Y68sIV4+FRm#9i?()6 z5uA3b^npGX&>HJYJrfci$lgnd3FG610|CoJ8!@R@nal(FSmK@p@~!DA!anaskWfjA`4360GC&oj$98^~wIxr{jW`8kI|CnMaW)csC$t zjmP#{I>%tsefLO{<_aLd^ll3vFe!=I{6VE2U7&7U#tx@{^OI475_~KfT|*k7mi1C5 z$aC=<`T9>$MEe<2Up2$bIXps{SBa@UU;b@E?Su{8M*o9BwkgALL`JJEMbdDbWq;+d zVJxgG-#cz5@yiF|Zx_pF0h!>JfVsVNcBy50&JIO4(H+%r4BJ5a8Yd8mPPF+<{rm5a zb;~Vnl!y76U#dQ~eX6~u`Zrq;+@U&Ph+m%s=B{NJ7tmnK#ac<|an4qBH`=tJa|(Mq zT9%^ZOJ`5j(n8wB%Y^j?@Zqq|tMTDXa)C!0F@B#G-v@FBoG@%}h1V_2?Cj;;Tatvw z!eR2FaL5&S$wF_wU82L1ypz6zwh*s!(!Q_k#$TTAj2Nt=akH1DW2=EAoHSy2u0?U- z2AB6^B3G&!11VXXu0G9t-~Qt&VFC6(MeZKQ7~i^l6S|+zcPO8#BsUY9k!ae~Zwq>| zwedXB09Uw+4LaWF1%$)@7wS{>mp0Tb9i)T_u8xTeQTF zE_x7JXoQkYyiL3WKbVHk-a6ma7Qi0|kWUc!(P8F+BKHM>uG_ zPsmu=#io6CH@;>e$I2wUbvf|h;xcH{(;Qf+;qAVe-b|&cMEK;rTi~ORw@KuEg(QRd z*;jo@XD%J0nO=P+KH3?KD=uZmmp9yolDUwwSfi{cx(4puMGSvuLMoSZs%l`D|deg)O zvfmBpXD(Gb6lO7j_kerGhI?cEOVYZn7#vSHA%e?evs)79D%Ha{gC34p=9j9LgW*P} zu$dcIsO{9baxBoquBjEH1|Er}?`e478cii=#y}!T>qX*0;79@tv0RkiDjK8&>BEdf zGJ+a6q$|;?ng&gw^sgg&T{nK*C5MVUZ~o&ChHg> zT5O-GNEgiqH*{}fySG3_q`;0>tlKp)>j_(&w33b`7U)h(iD1-wdU9b$@xux4u(B~X zTpFV=2Ck?db=2TR8TDqkv~xqYhFPbM0T63XJ#|{p z!*h4cB8XvE{;K`S8b2WyJ3^zYGbKg&a3i$z!KM*^3nJWV!Xz2rxELt#` zQaP#Q=#oc4DAoTgB;tiwaU2=o&-s0A@Njrp$1x7b^O<=B%jU)lR6gQ)?tjOmZ^J28 zU=Eq$J7*RsEgA#yc6zbB4uvm!J=26bVB6_fr*~NG?2;zqJQ5k#{j=3{O)FBy1+_ic z966R}gk7+|VG`Tkm>U%dDcbUf4e~S@1LJg8DELxMCT&`!3LsczH}JUkccYiRiBF(# z%8Wo7J+gWtG8lQlWKnFW;(?~mOp~2*2Dmzr0vgk?rp$MZPkDttwrB8GE6IWi*JY}Y zTS)%4-D|7BGIFWs$2>P^+K?xF0`*_HuE3mMFR+o>N_%PW{VVwC&PXt!S!&#o#cP2- z_2(B_MW4RE^FIl2TFN;mfEw@sOPGTKbL_TmE{GZwVUOC`xUHL1tqECFWhH;)Hn((;C06J31*G z<&v?*q~6S|rlC)5L0zt#=j55GhTjm>KNqe|&WkweaaA(utL4m|`C`kX9e4cIr}(aC zp)}!It0jceR&0v=fk8Y)RhsF)<%CBD#ED;q%1tx{2rO_}_vAvG^MMbE4M(inqpYPT zv6yb@0ajf(YXrP@^?6}1Tl*Mc2AtyUECyL zAwUs<-UB5L)JM4N4JOMj6#vG9RF+jZu6o%-KuhDf*z?(U$8cfm1igOC228;}yN5Dm zTHzWB?-f*+!aQ+zXkw~lEq@bv2O=l()i$h`raMM#6)KzKmds#+sh-iqwfkajXe&NS{nvJVIs*RkmrV^YCAGbKAqos+@jn&yYM`X%*H9YM&8<{rf17G%N+~ofb}J@Ay1v-+(Uo?c*)_tDP;; zkjO+8b<0p=R80ruN?v=s`J^s|#_qmE2L(3vE)?0rzKQ$bnu!S*NuEND}F70?2# zA?Z+Pm2IQUzYR-|@FpFz@j8Y};{}6mL(dfY5m_Nz(2|Q7hVIh9Syj`}QOjCPz;QD5 zqm8f@xOCNe;Nn8>&%Cy=2uRD*e1-g8qv{L;v#<1zNK?v(!{jyYk6`&O<3#Gky|CCh z_<}lzg%jF$b@>s6C)Xs>xt5u@nJF3RnL*g}{ViRygRnZX^=`{0*9xUP+0M$^;n+fO zEHw84OAqb;vpA2J`%bM!svZ`QUhwaMmm+wSmj^Q0cWgz(qYTBRJ|*O4sJ_cF$S z^F0pa*pnQ=uiw~94fF591v2+j{}j+~?@O5{H{Dsp)q^ODNy?B_5I#gxAaq{@o157U zAw}xCp2Y^P9cku$&U$jJ$DH0_(+IU0{DfF#(GF;`eBk?A+N#FAK?aGD{SeUUdE&6J zD|w&!)DKXGK^Ki`?Vj-pWkemt1*Mf_%#ls6m_R{G-yK9#S;o1>M%_B5tFE|DbeID? z`9bp2{yCd5j;CYi0>yUv7ccBUY3tT|WbAQs{DwT~^s4sMhY>Aqy&q;qZ~Vcg^pbeD zArQWnu{cqBlM?y__){ZqsM%S{A}*`?3`}d7w}zu5*PZnr;?BTH$g%BTfvbWo-T~44 zGHI2YfKOKWhd9*0=z!4o-%qHn?Pv+GMuScd))^cxZrJ3g`a2feu(Jq2zp^#K-{6wR zw(JN$7(&YH*&t8ziqS2OBE+`c{YCR{CCBR zOu-TJJgLP26R%M}_UZdTk6{edjzh4cd}Y#pWe=)#Kzoql-+%l@W)$w6?{NX%dOPvp zwTlKR<$PGjV`a+#waAx={9QGnwSPcS2k2fk{}5Yqs3<<_*d`pJ^b+}I!^vM|X9CS# zP)A&Da5zxQwnVc>5%RGBw#lqd2RV z4N~2h`>JweGlRM5u%=`(zm^3uEu2qif8{s)*R_&iahKjkd`vCeVJu(P++9D_ZCONyP>la zctxc`i4Ze*)r!oso0NKY;~0H zhl0>=?t2ioX(!qw!29!^zmS|#7AFpN8uHdeT{r+eu2S%Lhw*&Q_zq!N4_46B;xN_O ziFQkJfO4lw)M@Db^s$4ZWL_)TEArQe2p9|%myLwMm~~%vA7{-#JghVRpO;QB2l|471Xop%KtD-Z=5N~N1w@;ah~hYhM5~SPnJ(MJ zu_&Wf0I&c^L0iln?Y1Q4y=VD)Ib~;|62&dMrpMn{CsMggT={3%XbOuV6E}~Qg zWGRQIoA*7P*Td)G;p>B$K*QaAEkh@a2Y3F_HL`@d^X06_vLvt6jcMBK#OLp)4W^HW zN1m{mn~|DTydoAjM}g!RgY{4%KgU$xf%ex~U!S|rBee!SQjkv1FS>TEyQd5CKLdIk z)lhm5r}z}Avh`xbwjZ0rtu!X_7``S-+C+Y@ylmgT8GXhH2JCV1ck!1P6GUdQ4BQY6 zsiOYe zV9v@)Wr77cu_mRS$8Rg)Yh3asjpOZ*$(vT-E4PXb5Oqm|@Jb=Wh_-NSfI;g<&z;V%3aR#g8TaM4X47_t@Up1=Nq#DX zzjGyn_VVZ=Fr9I_36IVv>zhcSNZ_|47?Q?wFxnw+)en{DY)#oaes=^d%Y&4G@Dl1h zNke*Uqf6otjM_sjl52%d%<&fUrJU`_KlvcKM+X@Vnk}xyF#1i|q6#pYG?E$0qYqC@ z$owaX_KqjTcWLF~$>G)f{t>RpBPADOB*;l)e`(1=iU&MyFGhNbwGMVy=jFmSCu-#*vz*~+c9S{3*%qdz%jJ9Y5r(M)8(KhmtguGxw&KpMG z?9R1+MTr3=m^?pw-~gi*&-Tx^;RTsD*#-Mq@N}r`g|Rle={>GM@o@@`;?@c-xx2ArsXl zW`9u64Wu{`3?$2guwz-fBnq@}P2Q|a8nBS1RxOsQint1_uu)`W_dlG}f6BDx-UxLO zSjWs$)Z>wbOE+UjJmaVKs+pmIkG;*TyGbeo2pLL#9^_z&Z8Pjx9fuc$|R2(t5ZE9y<|77^C&m1I1b6a!^Ky1J5&4B;My4k^ScYrF%2TcJ} zsOcYTj=e-RFs28yhw8IeJN$dB3J1-JT@EINloEe5gvOzX~%otsQW73FD(0}exB zAUy8@|5w&7PG9f*EJ}MNGF?KxJbLVgx=x7tcX!w!<_x% z4Ea=8YxJ>(v8Koh&!hsZv#{I$E5J{4nw}^N1L4oLA25$qPlK9oPH`0yUxCsNdbxK1Np5!X|wTlINdX6u~(GS@Pf7MCK0T}|Po4RhIF~o1S z=WcXGXFbgzuAiJ|x#2?)%d6Fl${ix67cYKd0m6u-{b;g|YwwrXF89nbz;l%Oyx$LL zLjKLir{>lP;P(0CBVI#VM)>2uX#{?G)J3Fjp*^1(_m~Cs63wiwpLKt;ne#WBU#*bi{l8{QjMm4ty|3^ zm`DjvwE`(|QflE6DTmMWe6b$}R2<1mi?qFn;GeMwRtO&3Vi1ZFJ%Knr22=>GC9|k{58@$`wuFL&%39bM8~UA z{T7=`JK(h^{{H7f9&I4Di(;BT35AAYgp{4Kx<_Y6s(CLI1*d3my3sZ23cm07Nl|km zMqqp@{yQT~Wk@Dr+KPn}Br2F^*O&$=H}(k?5pWN1gpeVBuVIp}v5S})cY}>H6Y0Yt z;T0}nDozbyWoS2@R(`*CjzQQnxu5DV`{~hnj%yz%mBefK=L~pL<RckToa!tiw99PfkFGF7 zFNRIfDGxVPoEkN~8)(LdWwB+VBh-CE%U;OyAqMF=57k|~=@$32l9m^{#VIAFH2u>q z7jo}BVnEyBTqp1?;#3j$c|ndx!r$}dmgNzglnFo4WJqQ>!BcD574{-9xmrg{r85#D z(4xa)29e5;WA7xnt8eQYW--^5K3@@1U%3djd3{ao0GA5aa^O)iAY4vvswTu_XwO-x zasWBP&vpXbSj%d}$OrD)m1&*mPL^agt&ELXXba%dqh1tydi(V0E5$ru>l7hyhfyr$ z_ztIqwSQJ5oV9(Hv)X{hh`nEyPBt+M1}CXd)IcF%2j3wq&<|5?f6fjMiriMuPc zRBFaWt*@XPAF3Xcq`W9xa2P1@)BsXHvEwM^#Xuh}Vpt^koV-?Xh4w7U+1pWyz(o8G z%x0C+;wTab0cj5`_;Iu);~m2{9rl>fvwkrI+Ot8sMhbhl*vl{c-93xZ(s_0NEby02 zS%Bf!nY*89dO$>xQ$c5;aJVhgX?n{>fzBBZb5}J%jCqxaXND3-@W9$uC^UgQQE6=F zT6$CUkfWN76wMG&DfXOK>BZh@J+3jiib?hay?^yi{+gSQIF?U#j3!sAA`~J)f zEZ#Dai!g0E>@K8fzAod?JmcP=9UjaK?_m@hgNaQg{q^i(>@)@1*B@ z8flmJ5u{rv-h@2{*{2GTsn+%_yb)oo-p`^G2?3R3FvHsQgNcch&a^M{a()NCE2B|? z!z7|7DPZE=x;?PaJJGp&-F!tvbFceuvz}%uCeb%|34gRHcBn-@+RFbd&CU*C z?}vSDiiiu1LBuX!&gjoru|}3D0SE0eq|RF(S@>G>v=PNfCpv?5$Ps(jDtiVxuIglxfr*iLzAJQ-d&TD4|7w37`1VnwynSG1 z5I{wtM8h8QNfvA!SipP2kHiQ;y%F>7Qd-MHd^*}f1TaSq4;OkrT$yuVC@)x6bzxX` z3a0!@${@|-Sr?+4m8%-Fb%Ud2&xiMaj-iz*(9AQmXcA`E4RvhmPh;4bTabC9SnL++ zmcpnkpYox#wzO;dRh6AJiX(fJ#I(Z&H*s2Xk3*ML=(8P~__BS_4=3fz`8E81X3p92 z6-sD;T1*BlCpvP@iH^^vylSTsX4qRNMTkc!ML`YHDQl)BnsP|tTqaRRFtI^cg{4${ zL29;6FF*e(JojGNP;kDZbuKV7>4I;f8sEZ9p43he^Xn}#ZjCp_(gy2_#dT0XxWi}8 zKJ!o?IEgf0#Sir^b(dF#ltpSdWzKQZK#C#!tK)UgHHtMLm){_ku$t;`8Ft6sa$3t^ zmPd8b@N-gt#K^n=lGx4T%QX}*9lU9aVFvv~MUKmmoIF<^NE}y{?0lhf22&m^ffIo+3-S-Y6seDmVZcezC;+Tfp2#bLStc>1-`%$ep>|Df8RlY4#7zwz;({xo~} z>WkOoy>8HIXvY^9c4R-)TMo6E+fS96Uc{_x#rYgH&KCRBB+a{y%!mERg2AbdfhikoheQVh17r;N?Z zRL)Izfr0Uw9_a;6IP2}1`hcs*-UMn^&PX40Z-_$~)ZXHhkas~bM0dD@=qH0aH`NWH zL{WDIock@g_pm7-Y5A#tgCP084#Ta(isP-rP8yK@krU!{6;h>K%TW5xgi=MOKQE^(V~QnRF*v7X*=-!wGh2mpk>xQ zA}H{aGY60-9R(U3#R3YnoN6J%_S#-ir?8I&2EE?=XVfcVUTHCHO;P3d4SlA0TZ3V=X7A(6}s7tSvBnnu%_<@GoFVX zM$BVg9=IK^oQ>C*hRB`~qHSvq2oP!RBf=*Z>2#1l;Y6ob|2x z#Ad2k?zTGnWzukyE>psKEoJdQ>vQBoFlgcSP20B5dp&_a5(OmPJ(-@kP@AvMJtMS) zCX`AB??aNZ{HxY7I2P?CLotgu@+B?!q>DQmGdI&OMXXXGJ$QN|8GNs>?~dJmmuPi7 zlb5YIq(cHf=5#V@bXiKdT8*90kRbFB734< zp!>Ny-IVFASU1ZZoNn7BJrMk}+ih*gv^2m#N^hW4@PB;ClR+Q~nM_gySmg9eIeu{! zT8dZ+1m^{Bk&_p1U%q*FayW2*{L{wm4u=``GIa1Zf6DJk|7=ujfKqxwnBF=bd!j5b zCkrs~mTX=RS598-XLda>JU-g_N|W^Mc6o?sGyA60yXFGH zDZ5>W-cp`d{cVBu-qWhzK_S2wq#WFGQ?71*s4QPV{b&UyG%ilBYW$S@+YI0Rz(Yrq z9%gLm1hUCdKYaEFDErF!H7Zj}L7JNWSIsdvxlHczoN; z@YcXp^WgmXn9PPly$xF(DJsabLbxaT9GFThJbH-H7}UWvb#E*?EYZph=XFuTXpz#rnEH4hWZZe|GIZR*Mo7 zSV_uk9Y7ax6i>`TX4Tc0vfgGS^!1i{G;{Ov(Zif1LPTG^G~N$q={I#c zRaI2X@6e(adR=+3oHTOSH_V4MN3+rVVxFDdLT{6-ULo1ode^FG58GI+qAo3iDf3Jd zIH8jF-3;sOmh*z6_w#(>tyrA@I~AO4pdsi6}4-l_c~ zH#y}AKH!}>oR{3|;PjE4F?BHAwxEoU^&YB(m?X6~3woa!@__RltI~Bk3as+R7d)2U zlcFg3*jgj!vZ8Yv#Nv)L~hSXqklxzD{>AxGf%>@n!nGU`b6Uz z&*=3ydz5))GqYLt#ODtYE)pn^sIb!Ac!o=T9q|1gh<^{?6@mEsI38(I5{i0i!7`oe zdi0hL5wg{+?^4@)YF%R4y%MJK^?KTYZ6%sfK{NQSV`Sn~3KVg1U=0&d^{-@ke_niZE0tDes#~Q)Mvl)KFnmFV4 zzE@u{kPg&m-Z(et7!$}5AQ1UyV@lY2bU!+Amo$evRZ#vx5Jybq#J!*sXTWH1Wm>81 zh(kyb(G(xL#L}R%tE)DXpPDxX+I4Aq>gyQEs9I4uOam|G5_E0^)9N%%fTQ1J_3fb{ z&Ep?DbV)kW)2KcEDS6=W&#AFrHQeuCVLXqXKu^%uX1_d z3--&qlKeFd<&G-Ecx{4U(&O!lOfxjkY*STiJ%ylrDuWZKIh}7&7W67QV_f$cB?NBB zG2R|i6fDY2^wi9CBmd!UB=;m+gD4~gnm9bd#0Y~3%KS=wjY1^=kN8p$Y(}Ed+tJP{KsP)`Lq|iI< z8#!BvUNWj}%@rXrb`};-K`}v=#C4$?6Hzfo-fP?}o7zpQ5y-I4Zv~`Tz~!#riZvLU z?X9lyE7?)a@59vy^NN^p8$JzAww3Fi_Y@nq6^Z!o8l_zK>Bs>~?|t{|Y)qC@Qs1wxm= zMB8MnRGk1h!Gi0jey{XS((Q;k=6YL>ydkKt$n%TA6b@eG5;PoZ6;}_S=4u$ZhBUQf zQOv2zcBa!C+@omklSI+p`xTH316t{tusLx|UzIM6yjt3Z!-vtYrLMXVAJRoGI3nE7 z|EMpLJ*X0qT@EF-`re1?bn8OEbY?NRRv2HT=4Mm8MR%7Pt67llvRuNcisR8OSk=Np zws7Lmws@JM)8%{4gYpvcQHzlW>?*=hRwuBSyGova^WENtEgkNv^pEq-i@}e)tjw&#DV?3e^|Lc zrw*>;pmeUzKc_Pn><4?`F66TJR2)6N5!MQJKRc^{u)r;}+t?fU7YYO>qvOB>R!1(Z z&ynbV1%q4}>fsDHp{-3#Me2B~IS1yffv8*;Djz#6xnOxmhsQUR<8Uxg-rovxaBHg- z8F_=fw$@Ka(EUhbBWuMTP6yc=X@iT^!zNJP4(hI%EIcsF>TGwBkG?SvoefEW4%H;+ zbVQjtR<{Cn2Gn?FtnZvsoP+Y|27vn%kTjZ!3IvJb+R_HUAs;dP9TN`luTF48Pq6bL zCon{O^fOMl_ZUwZ<=kZr=7%YVnS1!>usf0eLUNoUe=7g?t{Hj>&T{Y-setr6-bJ;O zp$x^hDr_%|$#>%kyl;{_HHFo_r?*D(=1NjCs-Hs{Y-IWgoi%Difz3rp9Fywg=aW#)@;!rJ|0VHv>jfH4i^s)NMCk zHnt2Q_C(vp9Xyg>2M+&hY=HXJu0x{0i6l_4WmvJJb%qfON0)(+RrQshscgU0$x1x0 z!@!14Gb1e=J)Yv8Evlm@_X#{SH<{@k@2>a8^ug#7H;T{!dz1R+{@MJb_=fVL#ziq%zAQ3~WE+C8)o-Mi-aG^^*;e5#96s}cG; zh-p>11YoCX0H$7#Jn$alvuHW)sCupHUT0bUvS*t$`6G~to2}Oh$PGLqW)hJCISB_z zP>ygAQ@p|m*croSJIlKX^($LDY}6)AQqvR9_Wd(7)e=3#KGPBbS9^Df)VM4*Ij`V# zxoGP%z-dg~_Rp=$eXxLqY}PY9_L<=*VL$D={@G=_#k8jisF7}^xCD%Mr7L{pqeRZ> zaD?3kJxTuWe5lkT8sqn-U&Qxe0xgb3<2O4`vMo#jLFA+VJ5su3oGAGtpf3xsw3x$9 z>U^`Vr2us8=GWzFS9N(NGOtT1j~}9P4)~VG zk0)rN@tqXSpYFk|8Ta5_dHL$(-Se+ZNv{*5w6ahr)&G(I8_my2R7c}~Lmk!Osy;hp zgX+I+Z;hg%04c8R4^f*qlar@4g)~VUTVx=e)f=r%l(hXk;Lnf0c>c{-?_|KycoXCL z3dS|`{`lP|5@6-MlvL=9DZ=YLg8Q=7wp)c0MqP^#dn1QFY!m?cO2J9j`!@VgP)o`gT8g`-^ymWFe9=zL~b$zgNX6$7B zLi7kM;^m6to`SbVj4#c6D5c!66YckgnSD%SA+G6^4|nBar5mc`t9+NFVTb$|UHN2Utj@M8|Jb@hE0mH-`o5Q404aE;yya-%iQbioUbH zLgYkrLXns_RJ*xWZm$d!YdQ71@hZ{n#bA=bYI1+3h)k>ym$8{(Z-khSo9=0~rYbOP z-7T7^{;^$_+~A4rH2H;Q-T* zc!z)dY5wC+qd6{2+2@aNq0HS!-ZTT9{TU~u%J`@B3a<1D(uhVu-}ibsqk_P9F5uAe z++#R)Lk9;Gq86%}mt}iXhq2c&Rvxeps0EsauBz;I(q)g3S$l+u6^vAZ1x^9xGJC$= zD(9|)%<{nV?1dHGNPW4j+8NTkDM0NrWFgv;edtv8!&g<0Z?=yYq_94#tW#^F=Q(Df zWNt@1HpYPaokHPaL$dkh>#vW;k>U&+-v?mPZTDsX!!|+MQkiYQ#mVf#U+Hv=?|VAN zLwuT29|mMaCczB=`G~tW0mejq$J<>CWaJE!SEwHWO-aA;9KrGTiE7Q z`uH)tLEM~40ox|bOfgv2DtP51qQP=iYWaB@Ds6O7VWQ@|j4sNBn+^y*$i9{04-3*E zo=L56tu6}tBwaJ`wK6DnWYMPCal&So8q3Rz4Qf%{yBU9ODtc$ztcJ%DNLg=DL+Q=K z7g9_pqenOGiqm!kUR+pU%$z#fAgMWaKA0CI7!se7%G8S9G@IFSx5c-?ClN}VK8oMR z6-fPnZ?d7nQ>JX2fdmHlMC&d_{D#p$Y-f5M&BWsaM&Mgf4<&^aGsO6;-Th8Fdk7#M zJfA#(*!-g>$0rTDPW6c-Se8!SmB`A*v$Ve*R;+ToqN*qiMM;WxW?I9uFN}o_!+2)uY(d z7ynV(P*k(aMUZ>ObX z4g>IZCy};4h4DfS@nu*(t*gk_QD@6CHM6586frPRUCn!k{00DoFAMFY>ejO=94|Q# zeu*jOpDK)0sAj)M2V`O%b=D!)$B7Rx<(?xKFT*QpWsDt2K7RAf+vBfZ{_&7?P*eTn ztLN|V$@UiL%BN2Y-n~zs4!4Y-*u*d@)q>I89{No`fBx<{>C^+6$bn=G|3MMs|5b0l zpxncHxnd%2%In|>_<@|`h%X6tQg~yE*-9onH0eu-Ssch;B3a@&ZwP8|KIQ5`l#1l( zd(!FHym(1ggquEjACzjJQPk4Fm2FjIF0==SCaMYo`0VNXiQa@TKfn2l>x27K`o&T9 z)SQrea?SfVVAXxL>9$uF9}C1J51Q|=R98M>mRhhHu}6?|2&UAh`+=!6A&{Y5@dA;S zkxgWpskL=q26l&1JZ{N4MjW6^ocG;#IK-i>Rz_**+tnnPeQ&C%KxLYv?d%Z#M~VB) zl1&lvWI`uwk|tC?cxn4I3CTa0oIum;R_YbOC#`*b?{%7YRN&PAtwnpbg)el|JO$#o zSe0Fuz3DG?KF}^#VLgsIK3DnKNUxy#WTMg7NC7wM1k7uHYja=oPpHE$@MbRx(eW$y za?uI+MWx8bqueng+QD9}AE%1&`l3aO1HS^fA`ZDyLkXc!Nj05-aYqMcZl`7$Km$oJDBJ@Nh|SB zvdwzpXhNJcYi;vZB@OL{I+c#FWr8V|(CL{S3{7fqxCi7zOAAH(ug=lskP)Ws4r^UOu zBv;GyF0=3P=kHxwUd6KkdTMOPS_DFjeQG-# zapcZyOrQ6}DH&d^X`@~TS-Ds=yA3N)#`Ce{^{F?Zhs5x^j>w<^LjU4s8C<}r7<@eC zRVr*MzNv#isi?80i4h}c!@P7(5>*X8-am>Jtjrclj;{Ti$OLsD{4ORfYKkWC?;n|> zf}v*V2O#le0}sUwbE_bZ=wygfiC7e4DvSC!8LsJtwqSvW=bio31ESY57q z=MX~ZjQ?VWX7UsX78l>MVFuy%N9O&p*^7_Tktbrr6pV(Zd|DQ}Hj3GI?RX}t&u*VD4-8XOEy?*`GNpbSmlLCo+@$UG=m#<#_*Eh%H6jt7h zN#O@vF`<=c_d;ZXR}bKw@gO840IhL>xd;dR`P%AYhq(!>59Ba`WR%V@#te86{22aq z$!R1A7+2};=H45q&^%eAH;XFwK;iQCRg2k4`Zm7!y|%`K&>sulk{qh=`=d|iPv)Ny zF~iSK=T9hjnoSg$ylJlWLNEXm|CAh-)!P}hdbu;fayeFar(7{pG#(hw%yX*xj-xtt zDN=Fo`JQ-hD&1K>(oL_FwhWnIa+qE5^4quM+Y&Aeyae0v1FQsHT~D*Z=HXh9Z;%j8 zljQ9k#Q~$C1p|pN>p0g(0WqeUXWvRZQr)AfTcVhj4aWy_2Bf^YCM6&I1M=!8Sw4~! zPN)O4>oKvbl}ba3pP4GBlaL13`9=K! zK4mQ0Hn5F&lvlSZ2PRj&R!m0DwW$ak1^M##$z1$ogftZX@NL)_iXmVbDtU=yy`myTt`mVeZ&tJ_ZFXHR zIEz6!&%R_4k0uOTWhNzyv@UNshKbX`@@Xe%7*WSTcNwbq5Jr&Qb; zqMcaC>IgC>P-04hSykt_l|YS`m^`SurP!g*Ay999cn$Zg(L6iGtp}n8U~p&B z>tRScuVjaDVoUo%?R|k4xWXctIN6AClTEr`nJ4hq%*?B8Ca9!g<8l9eS9Rv-Qz$e1 zdIMMNh4oC$W(?f=mCS-p|s zYp@&<3L~*~8OuX@C5P=^Q)j#IYUP}%_9F(%%as2ZmQ0|TM=*j-Mae)-Dkr=e%^14N zQZiG~&oav4O_7)^z}W7pT24(uW{!Yc(X}Q=wnm3amwS`)Fm+U?8a0!6ZX`(Oqb7=< za981yxfH6_aCr`M+SXJmUW#Fpu*+GkHk5mmj3w|dU7d35>z0>csWyp67H*V}pLpL- zaU_doM+gMM#%^t#`ph{SB#YP(dvmd3o?rpsmLIvvX=E+w8j>4iMIgcQpjr4%ra!lAFdAj*q{(rc68+lIOyCp&*aOa>`%l7>zqJ-UUdwLfK|a{ zg;`$CujasAjn`#|h%e6s7PJ8AlCE9x3-?!x6A$2XyjIEiNZQeg3zQ)iNf?;99r%f? z>)z(DIxD)I`7$)Y?7*$;+WxX~FO^Vo6glWTa&G+|Z5ni{B};RdZCQtJyP-Xo>{>Jk z$06a=>1Z&96$KBnC@4gaA_*w0oo_8WG|qs}Z7nh=g5x-SMEbe8jXnjzb=fRBlKUJq zq11GC-1SRed-hRWqbB869FqFB!PE|xMs)cyy=?iI!)Y=no!7)FAD2cq z9y#}maK++f0lR=iAP+iDhlHew6_t|`pc97+xtmg)OF_jsgI9_;?CI(bC{M(cIVo7{ z-NmIkl_s}=cXhEv?uJjh0;Exv*(bFt>OwO><$kaGdG=PWDOEz^K=yu!;q|2Q zNKz!b1cuTC8*hN!!Evb`q-%k@Z&j)LoDl-)cVBH?HkYmf{ts#I0#7n9! zcwwMXnUn`~8Kdj16iBIis)({A7Lse95Gs}}Vw}Ay6*yeUd*YmNX(P|Lrt7dq(=-U< z>+SWqL8M<**LVPS=p>D)HB=M{@G?vCuFhDl>nk`eJ7h6Da5bep#A430AQce0xuyzK z{)n=iArgNCc@Tx@qFG@@m6-Sxa&}@`#*{0mI*rK!BQ5#|S^ku=|L`sEV6$rrb0g0& z8k@_Kv7QPjIb~Goq<{!>aEzobNewboSWBU0?-j8x>b7MBxY|M=SgUTLhi8Q>E^Q*d z{`F>oiu$EdI-Skvv7s@X{Dqqse;3QiHR3!)x|MF*Y?eY=Ja(;GpH&p?iD^QJ?eerD zKCcFFFmZ!**<#PW!WkWsHv;*av4;;(_@uCGK8Fyx+FQP3=gJN3|JkI%RZWy=LpDTU2RSJ z+M(-c!t$18t#~k2!N$GFZJSBxt=Usnicu~p%Fo2sB%Uzd=*0ib6}7>Eywch%C(fIT zoP{U6SJcldNVsznaFwwK$D9bZ)25OT(%v?I#ntik|aqP zBQLZ7abf@w=M|iHdvgC#n$1_stN9=2+4dHzSZ18l=`ICXpeDjgTfw92Thdl>Xbd)| z>`RNDnDq7>R$mX{QTDmL_@!q}X`o=eF316S%DM$ot)Nzlaj)*IyyJ5wj5s^C)QKoy zan`b9-gbHnS7Jcyaz(Zx2w9tr;nc=&_~Q61dA|( zAAbAf)6bqhPQe6_XTY?tZV#Vc{cPQX#7lGlTXdqqsFa-;#(Y6fOkWRJh7^7u)yEaveBo!rP>ZHU4$PAHk-blUa-Td1wDC~}TxEGbRbs4?3FPm8l z6Y58|w}{!KyjW*H4p#ArWcfpzwa=`-vz=6eN>; zTS(6L`5qSz{{8Gr2mj2)bMJFwuI;*$oN75oUK`)-qw&8p0{-3v)Qnzs%yRPYHeOyf zlH+avFcM>y3KFmhti2b2q>K60B$i2Ht@D#x!1NCkWj)Q_-EO1IJhIF#3d`5*%42fN zwG-?vb61AYiMgL+g6=i>MzRdzQXsqLEIZD-%PhBc@iII31^G-)j7Z|mmmNKtIl1vW zNYl*3q#upZ-msZH5s&_@PqWtLMUBZI&bJ&c`qW>d*C(<(FJBKVPEd2vl;~uzN7?w` z7h_qRO<(+d*8pyo?FIRc*~R&<9aX`#g`3ES6k5>9C-3yuNa){!*ok&>43Wp5TC|lo zAfK&&eK5>Q(q0U?s@!UDkjg zBW@_&C6LR*v$8*|`bFfKXxBb)h`dhO@GiH@AQNCVsEIQ+yWTGc+g6!!_Vm*PFHE>h>falyEKjLH? z8)(IKDq!o`Kl6bcp_lYjrE)mP{wIS*QUyoztX^T7czndVVe-Lz6ciTSf_N^N%MF-p zQ%M7Er6OwR`V((7vUN-Ck7mSC0Hzc|L`{kawx$N?L5%ajNh&hvy%^WvoW$#A9LYm6 z8+)g};NyJ)lrLYo$P05Ap4;<}v{AHvK>XMpX{snDoj#NP)6fa{?W(qxYgX{#s_`Lw zg9OqYK2|~5qGqDZB}6Htf+gkG6(mVI%A;(89`XaF_g-*9_ufb`YW5kghxKk&xzx)Q zGGMI8>e7|#OfHU9w`Xve+oEu^IT)uYMWBKbkRu@dvtLLz^85|m$cy65U;ljk>d(bj z&%b%~;>+W=AR0{V3-+xao}U6O0c(ykppQd~X>4q;@p>V}v5&gq4NJ->DqbonIi}8$ zzydp~MAMgglkY4}fTx+idTKT3`To8N)8ifFMxNex9Tfy+n;G5GU6FvF)Gj2filtqdR8 zVv_x?+VrB7=MIjPA>%>WcZeN3LuK}=`oK5H0KP~rWYsX|mrb)rk8t*msziqgSIA^O zHq$pb!TlPa>OKpT2skq4je+7&P4Y4eOo36w3zs%V8 zLWNDK#%GV;Q&HgA2UGudAQ&?oFq%i=D&dJ@?sRE;H9TGVDVm&AY+zXFz2w$MnSQG& z*A;RRwiCslU>s2pXX(C~1W=(yTb&5G9E;B)Fw1dT^7$^ro>oa@Dn?@814(#(BPgiOumgnY7b~Ih|GdM3Rz=q!tN4NhB(IP`!r7uDE`deRR2(-;pKi z;OUd!{>GgxTV1)p2rDz9J%z(KZ77Waa}b+MaAsKA)6(`El2-;_62GXp*Ng7+G7H;t zFEwCMo63r>f{;TMz@Zz|jwftLD>uz(BPGkL|6Xz}WQ|cF@oacnFfg~~lzB%-K}H;+ z*NJM(G)*fa>amIYi&DX*s|doe z$z_6*xnx^%i_JlC9cIO;dg1uQQu>Q0jgTJ-@KrU+N;$#O{4Z6%U_K2AEc3uzklhjNBTj22`B8=LJ_~3KCRw?` zwE3~B0sr99hN5NhLq7TjI1YR_z7z!aW1vbenJ9fOrKtcdzvVuvSSk^B#D2LrG|k5? zH7Q()qtOp1bCRGPC}v>Lvb~~Q5@r>Iu^El@0@%4n*C>x@Zl;p+(lL;Ia!33|mOiwa z>|eP79$MPn;Gx{LA5-=|Usc!D>gcJ*smlnT1@u?(1yTkB4@^qSFn7bq2NvV5WexF| zp=nPrIY#y~C(Gt?o1&ndIF)d}+nO4*We_~)*f?eqj3R(2AutN|yJ9W|6fLlLf|5yT zJVIAlBNe~Dr9{gxJkId}OuF3UEVBCv>H6DkRp2!+mZ2l*f)NMgPYAp;2PVj=vw&rf3Q8J0cJV{K{h6^*1=*~H&imp6o+io6bXtPW7gugM#=WxsQTkj@>(87Eqk&u2&sP0l)vs&Cl4!R2Fol)^EZ$N-{Y zPF{*r;PfbXrB!H2gIn$NyYCL)kA+w9FjMsjv_upu|7WafN1RnYdgFWDI?oOk9YoNj z0gmoE%1mAPFjMJO%w~>s|DSOC;C*oan@1>A;@Xjmh0H5@hjtyC)U; z0y^cccj?h#Mq826kPT88uXYY{J(QZ5QsLw}Ps88J>vC+eHxxR3Lt42wyey96AId3n zhiW;=pxk*}HF}(|<0ave6!_VliMhUUMl82zd}?zI9Y~)?4fdn$z>R+7GZl#&Nvc^| zGb~l0A?ehpa&n4K$BeNkuqfbqr$ML}LKky}vM+O`5Kk%K0mM8~4yNd#*+ppY)IyPf zuQ4O{__Ali9Bix{xHq}@@1hU?^5gDhqmczlLgBRl5vaMM8$7PbsW4Fh9ot{NDt8-@ z!&-i;?~$=7VXEco2+`XD!k9kp>A#Y~JTu!*eL5gOi0m=*A2M`DCOrI&j} zEU=@b-E)g{I>y{e$A5V@wx(y3YyEd2@#fOtu_9sgBY^&iV526I?`;A5JF6QbwV?Rj zk75|sicJ<&w>{n5Z#=QZz8)FQEl3>c9ZeYXG=t;WMkf$M*-+~*Ye$X^@Q(=U@(uo3 z$iI#Jdqe-i0LSk&ER*ZbBX%AaUX)98qcb#5u)~Ocrpp=3>Z;2JSvA_6MkOm~0L*)HD_PnzALKj#oS#ZpJp<2@apspqNQd zxlEXcp;(mVZFK>}cZDIA4M>UP#pjuRq5CAwwuo~*D*I(1v{~wqZ&&W2{|w!qNOD2$ zC6;b%J}!ZQ|4hxV;Q)%}jM-)5^#vcRZc%R0_)0A%2x$KDPp@9TJ$~{0L?yC9hjoiP z4jw6!*nW4Uc7(@69&ZsXQ;_O&MnhP2v&HV|gxOC8b*~7LhB0tIambC2U6#Vz5FGyf z4^HFudPAwG4SUS>FpxT~ZqR*bhk3bPyJi12Y)A1P1FvD@4oX_h>RJV@U?8G)8>2`} zWC00i8sR8Wv)eAW9;Z*Axm?BLQGC%vr70bIO$ppR7YX;0h+7)Ehf`Xwz1bE2;cHAS z%Uw4br@fKVDdv(L5=8c$O4GN%Mwv7TI2XJ!6=}cmpR23jMp5-x1c_d?Sl#ui!8b+M zi+l0q@?U&snUv}ETz;cR`2(lI*I5ZKbb8SK+#s8cfLuyL)21F|Cj!fvza!b&MZC64IP zQq|0tssgeDqwq8X!Q%&!E__c1bC=n=Pabj-PWraruS_t6xlb(WXt~#ytGEg8nQ`GD zVBg~lbe6@crZ`=q8{}0%w2IoADtm$0Q<@~5o_~}XtzGtWVt5`Bi-c8Y@Wl`0)TB-f z*R?Oq?UPe3)e$VttZdi6`fM~n_vkh1n=P#~nqygJ?mQpuQ{&tlmILGixi^4MpBexz zMx1Q5#(_(f{TxpjYCa6ef-vt~ za4qX%w=TOYgH!!la%c0ekDJF&#nNMcgC^b_;k!UYB8cnM<=3bf4%3_-f1nf!#0^5L zj2mGhl=JN1)5pL1)ISq8Juaqpfcs~CwxkG+XWIV}zH?gLsep4#)m{xweqvE3q2BSw zEx!_pP(U%shv|sL0dLU}n3BRsHD;?^L_q%!P)h>@6aWAK2mn=NPE{lRY%?*dr(OExqBBkygMGJx?NFo9O6aXc$TK)IEuXzEWEGN!-w-E`< z+_`h-&VA2tFc|E;u9CP(RIF}SNs_5%6*nXNoU1gin>fpoIebsEOs(VV1l}jAE;iLH zQDr>4j+cqrPv&V8PqSoyFNo)Jl{Ts=s9~BnNmW(}{CB^G_RVSp&t}_mRmJXZj!7h_rtxtFjRTbBu7VkN~w=| zqKX9#wN7TMI8W@8*LpKsxx>|}N)|~~0TMAG_&na+rCA!oOG3dmey)lN5Hs&1cr%%V zdjnYNJ(zh>H7YBXOIQH?wW#%{D$$?n)uu@^^KEOIG!?AP6jok8xQ(kEfYp18s#xpk zWa(7tzMB#_pqBSZzFF%xC-9k{0zFGWU%!}T2@tfH$xGm#rYLZ6`<&1R( zU-?CotV<%Lytzp5FVN$SCX}?>mdJ|IDnQz*i~l}5iC+J3^7_9{Km6y29=%Ct4SzZX zY>;J~Zvc(Iy-RCp^*$~UE`Rx0A{)jTf4kU}y7$GlO#U8A=bv(DG};^PF=E8~-n3sA z>ot&Nq|VK&Hwln-79;piybL1+Y*JM9NagW5sY}{OEr8*SA%(;`5$rD+!F-Qv^EsMj zT>$g6o)tGqWqK~s92&Dch)S~xeiyU8Z{Ty4PB(}*Fy+FhIPGjj{YfN+^j~)|KjDM7 z_&_}aY4FdOfB=(*fKv@XqcmR>>btQDz8R@+hYm!4z0azmDP~2smt>D%!F?iN>m*0$ zbx-#?aXQ4)nQn6Y{cEJAX}K36kE$^*_a)F_L|l6XFW{+gL@sm!8BHG>;^CZBXCR9Kpki4NYgz1Ndb=2hk)#U#o=!_2%U5@lWqAhJRx? zxaczkQzif0z%~RZ3L$y}lje~zs)QjQR>>OJZ9e=P2sefWEDUT0u;K={dQ;=*$$FEa z(4LgrW(Ba?`eQ;ko&9+7`uO7H%`h|sp%3R5Kc2q60QwFXQKr+olMkmSALy~rfuFzr z`2Ose9y2NfGJqQPe^rPC-GkbP9P^C-@~;3{LZ#I7{c2 z6?y9S_~#GRL#QsQ?UCB&W!Vo0!@VvtV^|4ZlYu|(x?bWc3ES&`7r?0dyg>W@xTtMG z$-z!%!jo<%`)8UcVMGrUkYKR^0w+qOPmRiaVrAbX^xB_+c0*HP9+!>Uf++>d4#UQ? zSy7=~1p5hi8Lf#Vh5b~~rqYu~?GE2PfcwIj`@CzzJ@4&X=&>#;+~13$TGK8YsgjYH zt&-WbPp?(el=ac!p(DG?Z5fAYahT+XxWDS=5U{J38?b>6Wow~1MGFzGnsw#@Y?EFa z3?Y69V0j+bXwG8y@$n^%dIf?n;td>qI{xtk2yj{S4?&$A<_a23t z?oo%RQbTEXDE%gc`6|A_&8L#Z0!$e}N94X{<%pDKAU1=Q{oj+dXf1ZJ`hhc)vy#lP z!37$mVl1!`3d??jRD|Ya+vEN~P6dXy{L&Vzz>~8oCAyHj)Rwh2$=ldSH{`LX5OR*y zrD20$fX2iD7`9_jl7l(@#~90Kc5lcc0o>4vY1G`YH$ZvkgW;$R3^#{?c#8i)D+YnZ z3OMqBt?baWwFb8j44DyOd;q^=WDMD$EhFJs6d_*@21Dt8wP(~onuF{CiTJNX&p)Wa z0vg(lieCvCH1B~pI9$(5#B^tivMPRoDeQbNI)Gjn)QGH)AVy~1*rH&}yhnz{c41x3 zqN;#B2}CKtMBRWatXjRqzI1xIkD%lI!%hmJ5f%6kc_dut@E35@f;MWzR&@g_WanRP z^7fP)P)?qJ^F|5R*YMvUxx??p_4uONB*Sj=2uw>*A(2_OVCakSXX+SS>valN8`!U= z84I*7yee^+NVae=m{LF9WIhtk8@+sBUPgMk=U)gTysf}(i;U$Sba}EhKc)i92JRP8 zM+c}K4a8ys%JYQ&pjZJDJGt{$!8oe0q#&!ne4hnAzWtWLIoLbo(g1sO;{!LTm0Pzl zio_Yn%M3#TO;yY{v#xRASpw>GfjXaT+d4^bEy?XCyU3{JDq&x{IP!_4b@LLG(`Jf( z+#%{_M^_&LgKU5yyl(G73f->IU&5hhagIDoW<{1PbwLNySU>&s&(EpIrQOcJcA!yYuMe!}0g;PNKIb#}_~S zcyc}-FcJrv*#2^~m&Y?BPeli@A!(#7EbMT|u2^zs_ilHOwRSQ(kzLsdtAjGo=PtVe z$B%6|)2y{s%<~Xz3{Y1hq&&&7qk~Ms?95;nWE53BlBTT~YzOa+-D}3T)&IcGNHDO| zRDIhT5S-U&Jp}`+E?d(V2rZecL4e$Se{ymB=J?`x0N_w^)`25~BVn}2hByey$TQOz zQrWB`(BF&n&ROSY>L3632e?)_>|60g$$PD3>*LOtiy;bc%rIaH#4|7zt)l#_x)Yy_ zl$C*_BPDg8n`ZZoQHieh^7K<%Euzd0257y2lQaaLtc&a>aeX%l>EgmiA2dFv`e}f8 zK2FAwL8}L9*t0V3!cmwgSuV{|^A1F>*7I{MT}lv?`3@a!S&m!n*uTiY+|^z!mlM=nMEt zp?eA(+{~Bg-`_rOkK3Y=veOPzGbO|xfUF2Rn9qTN5TAFHU9JTSgEIv$YSfB91y8n+ z|If@neEJg84EzGN-87_vG=u}Uk>((%+};=9gq0J4fgw`LP?L zD3Srr^#?I}25FXg>&Qg}+dfw=KS0Od=2(p3pf4}lgU8ES3%oF?d2Rx!6zJTEu2JEq25?rD5~Zp&g$?_(^XgiLNgIV(F(FiA9S;3;7#0&(7d zI)7IQp?0Ti7WsQybe=+VtLterdewJG&I9>2(8^{~PAUexG3DrZA{QQ2O*tJ(TF_&!h^BivB(UspPo80f{?+S`lRe7c(Y7@=2{ZzNfw3N&Aipb60hNPV=WA0oi5A>c<>FLiM|f=7SiR$Kjx%38BU=CY*v$BLRfTc@tbH znow7l$0Jxge4Q=68;Xsz6S=0qSq$&tw;&6JkXsBZatLpQ41JX$*_wmsn9hgR?s!UF zw$PVWY=U5UbVOhB(ieo0!{25VK&XFY41j>KV4W;$6L{w)DzkIP|JcUC}L4 z=fRdY&rn{T=j(J&w>ub?RV)l-8<<8CNDYKlC&MPyfBL{$iEV`QM{PPI(WO({Kmp;u z04(fzFH9`6`t86*es~D`LF*igr^*$w+4&8S3{}PUc--VxHH)zKf_53(exq!(^bifw zbcPU#YEoR1*C(Kre~~bJHzqnHlll&cJE=YfI|4;l0n0WDI%BA+n$1G|6V>HyEX~e1 z*i_e=q-g2!P!yb66*3)DTt}1saUaz}*O~;?haBj^HHOw9wf_CWT`9@Iz;S;vcqSi^ zS1`80Hk(B264F-TW0>!y*(YGgM7sT(#P12607}0s2GWdyO*ZATY*VD%Ba`g=WyCJs z8ipZ5Yz1|2vCb!p$S;8#yOD1Ab+I1sqR02x{*}F;|u(k!1soT{pqu(nLTK`1rgr2 zv-CX;AHpDOU8;BwDOKg1&o`8^11VT2uLmd{qO$0YI+)xSy~u_{@cSMQhjNU`?;O}pF4WKDD8rwF zoOJ^&!>A>E=uEK)6{t1I{Gkc2B7^q*yOT@a`2LUZNovx?Z?Sc08g1H)3~ExcFK-JXq(kPTF710>r}7kDGF{GmtX~>qPVq#rv>V@WF{G8GwfnEXHv}Oh z0$mOM6h&y?N$>>+0TvL}bth*IdGNIMs>9}kaekEzG9=#>6bd=wHNW$!n1!pT2B6l2 z)H?>|f)dMQ5I(Q@<6k6N2G$qzU) z>6I`w4hwK%ZptpTQtx?Ub=cLj#p~ouWn^^ZX;he|=tlpDW!ibYpPKM=I!Rqd>U^Sp zbUtXI^nQ|xcG0Qdi@1`}YC*j1z{UZKTDp*`Cl0eq#C6>j%42lixZ;v0N6)oyf|)_; z$KFYpn6-Ak06aX+-7N2t58EBBw7@K)*)22x@96;#09&G!#HiSH5x)ut&bDpvNE_E) zx}gJG4-@c;Cgik#3mOR8DCg}|ue*#ntK0lXW62($QT$>#zEV4$&30axk1hI3(M}1X zcA=#E3s-AuOQf%6AbNM0ThzeI<%Fv1kQ8qA}3MQ0O3dVU~=0geFQ?$A0Y zFNSzKvDXrY!hV(tkw!O)vcY+1k}W5*ib$ zUGL5JKL%?E&Ubdisedvnzqv$GXx6z%Z*^cTAzp>9fYh=0O{$xxa4da5$XPG;b&9{OnLGO7vqE*_`P3? zPWluf7x$bO*b`j6UU~VT(DbM#OxCa5T6T0qGK=zXsPL`ww|r9!lQY2_=iurNsc7!n z*8*4ZsA&SDE=M|EHa-0q!g~AuU^7$dd0|P>{QWB1WDZh2P#n;}sAxVDMIB5Wpx81L z`nA%NeNZr`xqzv>0{N)~c?5)Rw(auhLp(ryx`PA?L5ti$cj~hC&@#5(>M)2TcS#}Q zCNmdOcF(ApXbK7jTOXh}hBJ)VKv4vgjsedq9(di|7J~NIh04GjNDQnGcTJTi;a%>u zK+I5%^@Suoq{N^ii1^1l+b;4oi@bWqq56?>+r$FAt{HRd~ z;IWKoZfYHyGa4N;%2A-i!rTs~Hmsjp!6oYKQX+WQHd9oOeqmLb<_+y62N={xH@L|# zh}(7l>>6=N*4(nzrrc(1VI*IZrY24%BE`>Pj-bJuN^BgspIC!n$S&>LRLl{9;cRD^ z=XLpk;oUrAgbs%0YysWiQfq;+w*2&}1c%~R*cWcad0zB_)IP}L^tm+m!i{+oCQz*S zWAwy_v+M#%Yw6$~Vwg>St%-CXb%7D1`Z!kLgwzUo&7w;gD8B3g{mmv-ml{yaV>l=D z?0a6WJy{b0GXG-vXV9!6U+0CFJIuU9=Z^;uqkoxaCup|-dpkN345lGelPoMRymdI-n)`1Ez_cO^#? zK#ycKnKIX;L>T_S2J4x^a>L6G*673CuHg4>B>1{FC<^QpI>q|LpBu0aAu)Bh4q}!4 zBiZ)-uk;3Iy4=XHd52+p|CsN)+E#B|Pgn4K7~`wUZr|CSB+x0rhw3l@-+@>jjLY~+ zr|Q<7O}6t2$$s~?ot>Cg6_9lrWL`P)t_fR76QWL(y#+P!$IDEeZPKx$iELx6pczKpkn^}w?OEvdrON|H@m7MvVuLw6HzcFB%If`}% z(xDpMd3C-N*0=eP<}18`P`cg=D18J^9#OCqaIh2l;k2S#`%fvyraYoRaB;w$=~35U zD?JjHjjNU+y`3hZPfXEqAp}7U7NA!0p7c#+f@DIM8;(wpZL9|3mtn`wA095!;8YVSR>NN4td(wHiPR|{ER`! zkd1*jL&xjjP$IR8?2jVtR)K9`ncO;A9>r$eJ6}(p&iXUv^4y6{8 z@uEzlXGqnPv3gex#qRmM>14^LeLe6>fBG^2P{Ua#4gg=j39Y||UC}BEy4GEs&)%aq-gzFSBd1?#~&8ViW=T6=Mxw*lOhjoSs! z$hilr^#NV1RtosJkM5Vs4Zde^jt$j0fC;vao*U|}`?Sbp7UfWUtGZg$Z6D>+tZv3L zVA^5>QPmBETy8sH^dF_#Eo5Dk2CuTyIqfpZ^w$YaE_)sleNqmPy-1eZa<-0_4L6?5MB=&9uBVu?us%0VsM_VZX zSvx@!is6U>557fOGZ?U8VgobcC8IygEx=E6bqIvWx$7Jl1D)qHRo+-wK6g{f34c_i zvP8q9`O_6r_98EFrx0h3*vP(zrB3M})i(o|@-B~wz8*~d#*QlOxSulfCZA?r!J=DC z>f+%VOT;eY=_ZJf&)xjsy+;m}f96c_A{o>&peTX`4FS3{;K;C5U5deWHXtkheMYK~ zch$=zS=UaV)CEAw)FU;5J*vCXiV2V zqmixaFI--%$4rm6?k!pU$piG-5MJ>%uD|Mki}8QN9*Ks(;O0a)aB3BIq-e8}{o9V` z*$BMoq;0ezdiSGS4gfO;D0rOXLKRQ^+90S*v2Oaut2H4l88W5kPj>W;c9=g=q~9=9LW(oz5_Y zL1yGUR#MPeyH$bq)*o6Gn@H3s_-~YTGm*q;IicuH-@!U$@LjLPyE`c$Doaryrs-az zv3PlUDL;D7q$nrtaCUjS8Q~svtO_2$)UDkno5rC=$4*Xq5Il|N+gYfpjiRIK#5PVRirMnB-o(DEbdh2r{c4!X2;Yw-oG+NUP0-LYbd!uy2K$p;)A@g`hJ{=B|OvnM-^_CfTHl;8@|Qu zsfxNb4w{+&PHZosmD;YOwLHdvv=;k!*LO*s-ROqU&`==H5APw9iT3V@Vt)%FfY+Hm ztHT*BqaAX1K?DMn13IubB5bd3MC|1Fx;Z`=JJ~(_UT@zIg)M2e^)?Rk$$aJ(DZ@iI zsAh8TH9h6r4J=QZWG+~FI9Fl}qBTp6@mju$#+mvyK<|mY3zffh3n*e-{0XVO11jAUc~Ijh!!~( zDk*A<%;$d=h$|L_Mo#hqi$*SgE^r+&?RUSAxXv*mhQM;hw3DZ_H|SPdUt3krakI22 z=FJ?A_~fHJxs@Z#?SZ9###zYFg1)@mf9?@pbqL8!qc6;@F^6xPLZjg$+%d%o*D#Sx zXcT6(u_v*}Z+i5pkG(ALZb&*iR5xTE5i0oi4L1tjba6j(Gc0a&o^alC1WC%TL-%dX zg_>%7keY##z@S=BJo}|^J|_n{Z|Uki+J>y0%Ug}!KzWWYJ_hKEMzdx7r(6=*R$iUD z`fsUq6Ifr+CAF$=Xg9sS=BGQR!>*)dB^cyQ7L1|;ik5km+~3;%%la7)5H~cjE?J;b z=mDQspuztSRsI?iEg6LC!^&{32gds{ZC508aj-(| zIieYhHMD;Z9zk!7L;$GI|VrkBbn=gS6toBgy+RAUKzX6{!^%hxMpnM#Cf7btVtjIJZKdmFXwcB6$Ihz%deMhGSs-@jzW9vt4Nn z2eK}-Qi{==h3G`I@&mf>g-bux9(`!Wkph;TpH8lcBtzDVIw-~oId8nEIW#d0pR#pj zOmRy7QNNl|h?uGv-Q>=bGgis1cyba|Rd9CMEF;%37{i^-2n`*;k=jQmGx}Pz!d^4E z34m6$*tcO?(Og0G8;~7pZH2V_+@+5C`w2h>**_5QviV34w8o;b^$GW_xhE`>g6^CL z0p!bVqgomq1fQT^!GwBy(RqNlKHbifNrR2mXKZ zKsEA+okDm309EDy0RLS8PA1MS_Re;8)=u}{HtYRwM~ZCy;nN2JS}OT#49WfPln_ca;lVc5jqWri7*2x-7?>Od)@#90FG*o zNtZhuUC{ar>6p{#VCUAXN{xH1K1<3}6InB4RZ+sVYZe-HnMFlrIn$n$ObW@Bcatao zId3=>fx5Ew(aq0|ciDDi`^6L3T*T1=*K^y@}vRo1WFlM`b zcWDG$XxLn3hnxADUzf>d%2}HE(O^Ga&|O_N>Tad>Zm$D+D5>zPfzNg$ucpur<)#})3pF%+$oDVR-*(WAZ2(3zK@;kX z)eTWP;Vc))QUVmH@vi*ZWlLW~pCqERhPQ1;`~UVWr+FxiC!0VRuYDN=|8-i@4BbD4 z<41VMHClf*YxpMB2r#@pOa11$XzY^kc(WL}mQ+VJQ(19j?m2rH`FYT3tv6sot-;d- ziiwGZXh-x;S*i@Uj?DxrjfCHQD~F2}+WJn*jx_ywKBDxcK!q>+C);jH_M$&5`Q;tW z(a-%ozCaUE*!q3nX#pcKLo6!qvyw1{S9T{5d1gP~eTgTt00i^qXxmj)BR}%&m&fBm z4t0c5Mme?s;X!I1RPGx4_~xh=kLflOJl(wrmS!&*s)1%M3|loP?tz{hYWF!WP}$If4+vJ z1Bj~#wx~dA7NQ{z(tla0e~I|UNP}iZbx$TIUNRjJwp-7$F_6+El#SQ5y~F^Wi;o8P zkHkpEH`do|a>zmE-b(R|+FrAt}a-xB1w=mHM;H#3L-pKkx zb}|R)He#m(;P@H#AvP%K_u32V^JBdtHqYQvcyPW+F6?6oB+~(c(3!^6?^E|x_my2nvHA*GWlG2=9fCRI#nLzJM z;(2^en58ivf#j!zoZLt0aG%1r=^{1eNfTh_7xBpuzBoAP_%3TBqr6vIXxg{(qZY}Z zsT9crYaj0Fv1r+c4-#tH&x1Y!hhd23Vju&)Koq-v zWiW_;0au>{hmeZE<&Hb_!*-Tqn(w=Y&mTrs-Oqy6&AnpFcfWgrV}@e5JsoQ->6JEine&RZWp?V z!0slu+HhLZ{+H(cXWf$;5)l9=;L=5MLAFI}0#)=TZR|O>GZCl&UEsy>4~s7|Sj3E& zAN;1@50T^jy%8Y`Y#Y~}#LB+ZNdm7buT&jIx~_#h&rCAW{v0zVbDB!tZ6r3E>fQk* z6j2;GMcT0V0@16`h(9nGk=E9MI|G6&C70Mlam;k4$j1QC=d!<{N1F)@fk!j}YZQ@JXx*6mb?7A$7KOm|#>xW$Tv48gVx{k**0Fu<)zp8Ti|=z27htK_A#;=Y7l=MEWQzTg%Yo|7IVLGvK|!}ald-B{LTiaj4(|1bgPOV6w{ifU!0=;dF#Z7b+0`GU}HAH z17ZRY;zuC`NCtX*iww14Mm6$77P;JiZsoSV5AWE(>#1!F9ES|mR$+fT24n3T1}mi$ zkBy>y1zvEnPH@c~_3d2Z@-zMiyk!Yp8|Vu|j{zihLYpO*t)s%V0YD-W4W(55Q@DvK6L@>%*-XX~Q45T5uw90?8^UK^ z0<;X0dy@!n$nO!Epk#dMo8@>?Z|e6|Zz zNZUNV3B)0@kfM)RgcFAz8E+5yi!lbpFAK)+kgNy?-fPx?K91NFCZL_dXtV2F%msVj zFE@F*eVkD9X=!q)4p06wr)j7D?Q z;A?yS>0kMq?jT#3)EMZI$z4lh#OXW_>P}=KNfD zxm&}8+~o2%T{`iws&E+VN9{rc#^FDdXhRE81^kac$w{%8iqGh=D;paPnF{TE)BJSY zEe1tw^Bf70kPs)^xRbP^#+h7>pS)@M{k>ui`9^ZneIRryX(^JivW&=H)}NUq38G&E z(7!XYR+2KFzwl?w;A&dsxa{l|UDKg_o zwXOKiFc!!saGIu9AF#W&&?e+&!GdMW(2LHP&iMT7B+aY{;zRb_ZfDVQ<|nekwuiYt zTBhw5`xnB`Y>~iVT6cMb`V9@cOR7(x;=23Y9ZYrcFQ~u)xC)M8X`V6fa6QN0RbD*~ z(_!=W!CBG~5yU>VtLN0pNe2D{AVpVO&nukMfmXx#KVXS+BJ6&@PbNO9((2ILk62GW zJH_rsTl(VIoA^UrS0q9vC2kp*8i*iQ+N3t>uf(kG z6OM26Qq!=6jJ(!Tc+@xPXpKR0;cR$rEO&I2LT&4}2?(K4=CpGY?ykP{`3OiHLV9ZB z5!FnOQ7xgt;+B)M&~OyFkb))R2(i}4mwWeVfW%STyB4$Qsg^4Uq}0@+SqZuNIweaB z5J@K6iSKG_?N8Lypzp>P{fCb+@Gh|V)zs(&s@FVHK%Cm;O>6|r7)~UXH0`%K6A`qz zm=o?6g7iQ*TBnoSAOee8+uP3dcXn81)^yGGm+fu%VT5~#S`kF44QC7qJP}{dx$fu7 zcoq`5Ppk#AI8gGCV8(V2J+c+5yC>ZTt=vrirAE4kvRTYK#{707>9ZZSgWqs8# zu6o{P>H-VJK`w9^Hsc!7lmKHbFjBt@S{VroLB2`guZy;CYM=_#WjI$-49v)1memN(z}F0%jK~ggDHInt~JO!4RKad=UK$TnnrUKGI~<$NAxXim7k<52Z*!DaA1&| zRCBd|Kbrq}d?K}=aJIj)s)vqrjt`pbzJzl=!-XYJeyEm0Fs^@R^ypGq?PbJQoaYS%J0xURmyH+3sVi>L z!CleA)vk0lWZ(Esw95YL;50p~ctxe%Y<(cLNfSxV>kF_(AT6@rjHzL1WNuvrgrJzBNgajm?+$wqeA06( z7{bbq&e9G)$ueQS<(Qa_c2rI?*Zy!#b*5`-cU4(^RBr_dQj<{!3tEJtI7}i>d#hDy z$~HhU1Ui)ZVJ14UJAVg({BzLr!!Pbx&Ko>@k%}=h1r1cRqzt5Ti;I(4oSig}yEXL? zixr{uKXPZxvhNqjahuhY8P$loK6jVj$C0cyeVRS(xU?c_6 zirsL*&`Y|l4t;${e+dUDabZa>t(?PwP>*ox{*M46h##$>q%MI67jjb62+Qz$J?=@> zPXa9lq`n~!20*$H8eoLZddxvo=|6jrYQIBqU_aKAIazbWf9D~<0Gx|_t!*1XIB#In zM69r)u>%2?c0It9o135a)SN4igL*$a*b{HMX)xe($`#bI#M=P?_=Fs5%MkD0?DfRGBxZA&}H(g4Peg(9Fgy|FWsNHAY3P zPUXDQr3>nJf@XGKWDXKmy0{)S1Gv-@N0PhGy9%w=uz^^)ARsyAG< zQ@=boT1I|Xn!ns>W=5ay?I$Vl8a<|Wb8a*ShX#Du?Ey?+*sFZx0fT<~_Tz*;ig`~z zn*KxPW|lu@pK046!4lxpjlyF`{%A3z7zRJ%#g34EhVgk7@C!AVfCf?wHotQo{D64f z1)WAOJq!tW~aaY(!j%}vHEWEidrWYWe?Tz7Y!F7lAn~X-L-9&NOR?zbx z0y!f4MUe~$BILwm7;8@-2@=uMo+1KPt2U8c-Z3$Euqkc8Viy}I9)4@1V)9%G@U6~G zf4W25ub&2K$*+$~J5EqS7kAmq;|r$;uC|m`A826*=7QLgG6~7h8rN=P>9W*0TZkPBg=jKmQzn zwhu30Iwy$`7IQX@1MuwP?@LCjri zqZZN|;oOLJcqB_Hyc&oc4^f;eW+w9x<&wH7P_HxHS^A#a$aY_=qtg3hE(sbgXP7ry z%(Z;XY3X!Ick zv*n{`i4UFY(ZC%?T^Ef_H4grR>ZNuK$HAYP&>Q5ZS8@=qjtIbeU1Z1K< znEzXo=l1RWFP@|c%51vbFCh1$MHyy9`ScXl*2>Jq`J9YxXeaqx2mQecihkG*tE*? zOj2`?Juw(MXf|dMLl(NasrujJ-y720!?0Ld=CuOb(mG*D^%IH_HjR3THMA#|x@e#Z z8UADHR_WK$x1v`j|Iplw^Hj7>#Lih-a}} zMljFlan8|eK==+vdDaH<9Hv4hBN%lfjMlW{V7dKW0y@vdKWWxjq#luvDS&`s6in68 z1;DuWBI+onK7~PAwKaB-vf*y1PF{@GbQNiknjHiuu0tlAi__N+$kX0koIqn75yz_~ zv9ga|qXQ2CBQhjkFHpc&cvae~n&l%83OQjlyca@C^%QxSvGP-QsE+IG^jY4|UF7mj z<-Hj})YoM@(mbc{CXwjo_wtO((`{-=fv;!GO5#8G4qrxXL{4SV<7BCI;)@EW10VO8 z$!wsEr*TG;)Q z`^5&HU6?5;`^?H|fe@@Y3tmFR<>bVUEv4MV^3tuna-Al_D0Dc$s0A9rmF}rC&DZOb zBa5kzhf=942qM!l+bCZ*i-0vgo*a<*ms?R#RoafOY`A520`)w#m$imURNj9l!Q;le1jpuj9_V0X zc--g3v4~xmx&>7Ci<|=zcupPv*q55(|C`A`s?gMUZyUuia2~AY7vRmWU9K4jbeuVL z*`bX($#GrgdI6DTN{aDxo*h6vdcE*itjRlAXalLYYFo3y^YCbim%5!PLV1;T3_mgz zz6y?OX*d;QDXe$^gxaFb<9-khBYx&`w|F2mr9r|K4tW}9oML+gf#O3mqIHS8?5J8x zSq*uqx`N3*GSZaIt|jsA;eisJv&in2HMI2ks>v&&2eAs~s3a^tddBo{)JBZ1G4Wem z^v2F=La2Q|)Vbh)W}G32(68cA1uX$(T2$2{MmEO!yXTGNeoZtKc;_?y$Ekse(3MJJvIm*q#FR!_j zGN>S99|rb?46-Bet*B+xn8I2;%Wx_Ii{E12QkfbFlT*c*&GpNSad!q_M-(P__nEny zkJ3A3>_mA!)~>$vRRc(8RC#bS`;&{x4Xz?Em@0d5;0S=EFoN$zvE+{~n%w!{W% z2@RE?J()J2Le#JJa?Z#`dMrfM%G65M3o5@zlad_ciGc}|97g-!TY+-$Wc1r{Q+}c0 zt;F9OK|BM{@OUV`{@3q-5p|~DU1FBS(3YNRs1dxm8X2#^HQZV69!epDZh(MfWn=>eX4#qd3g|WQn zGHFmSltC}Pa_iX3nO`a{pWDX0hAuF~)xKb4MOux$QhIS+X0K;`%BXBVUiofbZl%`W zVTAYUDxrQ(h5-)rdF{ZFEv2vO=Z*uRRvQW=hHecaq&ubVd6jSi1f@tu<`xxq8g!qY zy4Jr(fBbW(iJ);u&Bvi?+L2`YWa$9A{9!<fzHn2^- zSZ-A3n|3JWf%p2&-i9h9&sb4=C7V@Zd7nAYv-qCxmARxQV9MwHa8vc9rk5KjE?0?P zY>F$>2A#&G=D{oRdz9oRAaZuirQ@jgctqWA?Rg>KBf26q>CKkL0h;1s!IC|V<1;BN zo?*CiuM6T1|4wuURt4$HoSBIC4fe`D=Qp-49diA&z^Ibx=3uYGUuClxJ}ZI&?4H!p zfIH;|>+C+X&S2(YxN}a04F5Mov+UL>1bD={ifoe9O(^60tI3t7WPCWagQ6Nby)OVL zHrsA@Pt5}@uyX-Lz^cewc)_1H=4%#~JtP_vkc!TyFb1E-zbcHb$m{D3-Ibjy#2oZm zH<))8*n1gBL9%?D@|FQ@hNe3%(j|R2VV~-*j|zDz#&~^{!KC=STYT9YqHvewXY1hu z+`C#+Ek3c=#ysB;c}#SN?3{DYQz&5dZbHEJ3HV9@2>R~q`!HN5Ds)lswj^dXMx9sj z6(ver{RUAn*zEt3Js&uZ{0JG)rM{PIHUZHLd!DA#mpMs6ufn*qT%ggzeK zXNd3kRJws2GDGHY{HFsNYek~IAL8DidnA-_q(3Gpw{IwHifBtBk;{25?6{hPcU>N* z47{PE?lm9mR~kPe(P3$rLl!63`L6SD@tx!OZTHUy)E=b&zZc8LQv=JVy60#Dtz#0G zXW3PpmA9TW+;bcO4;mRn!re9;I)2XCMVmF-ix8MRe{Udm&9EmT2YeaL;)s>;{r7*$ z&tT~}@BH8Z0MsY|0J#5e`PstO$=SgAe{v{t)OF&v+EIPp>hyWw8_jHFN@<~t0g859 z+4w)@L9%Ew4H*#3BOdD$#8Zk#9sGReN`xbtc_iw6(;I{zx9_~*b+C6DB{kQ$HrBN< ziegL}Z<-yh%kF>0oZd53(T)O@Tainkyo-KklpEmtvrh^PmOjpRY~CGnkJ6(C-(waxHvZ{Zes-n7Yi>e% zy8OOgZ4v7?W~;E2^=QychH6ZXo~U%S`DieBr%oR8R2c?tECd5smek63A0Gel@t+*& zka8AK6-cUwCPBk5Xc<85a8#u5ED^}9`s&C10{EzA*jCbhci*6H!+Q7H34@(kfGSMs z%|PDT7eh1Thc)+U)v_&kMA@?%ei223eyVyq3{s49+kkgd`OBECBgvy~<)!mzkZi&E8=4kz3N$ML*76&Gc9Z4@H;eEX* z7XfTRoY4gCKDg;U9N#SU)$hyHC6R>zx3(}oyHluG*?2%LZoa)t)hbqYo1BkERcPJ{h>+H#XgpfeQH|otc{e6+8aoB%Dh%#BL zMPx!SdwWW>6WPio#1+M;~GbOVRA z+!e1J`_;+55%F(C`gJK=p|0%~1hA;W&-D5(*#xz;ste+2W%M3<$d^_z=`c$DSy@6P zLZ*<)^1gQPZFohz^s$jmltK-AK6S;@C)c3w8D+Ze1l=U*hD$E@b+{>V3qc}_+`P^l zCso8~B*j+w!eJMd#H{(A-rcd$8dR|)^U!TXcAT=?A;DtUX7CLk*RtnHx)=!#uK?r~ zIFwo2C{u$qpGgpx3~E=2Q;*C+KP|eaZitbHWT;?9ynXy&s8XQO2AunCY}A)#uCT_x_jS;9HNhMGzu+alS1YjUWm zi!=wBhs``ccKlYMYPtZpSKk%7z;sXgRvdM5gI-8q~(_y6uI>AbazJK^SNS)LF6o zTMR&!T)*$1A^beWuh8NxfDJnj?{+^)TnMb}$d|A47fbf8-axf{hZkRVm^lxfc^jk- zA&9DKigPqIl;Pc`^0HV$F5r!rZrA;cWDF_2^kQM%x5{GvPaB0@dio>xAzn^foEh;w zOWj}RyuOJ&VUkn}n24eTxLz_24-j`iHA~QHc1eYIx{1XQg|nU0!(kQdrA^sc;qUY6 ziab5S#IH-+Y~c9;@n;N(LJCmAkUo&Q#&>C)rbg0Uth&-xJ^!Mr%%C0GJ{q=Yh;dsY zOZV4l2lR!d_e+F`>5#@AL=pW%R47b9xHyXCO!uXE(Qy2h9-xZsTM>WpefOYQYXc{@ z$EBEXsa!Jv#b2A^ddNfw-|9v!&g2^6JNVp8CBqaMGP9OfcRA&l_Ij@V2Re{Fue42SOZ{l@PUyapG8TLs^t`EW%0 z`sN8hfPM@`iU-tIi0WCk?vC(DL!ms27YkWs|4uN8Wn|^&tgFV@X@1Xzlyj9oSZLeCR5O(BH5hNE1H zlIKN9nCfLoWjs3As!n~v7|G7>=Pbaf63zg43%dk)?Z=zia z8C@i+SkG4UHJLF$P=^q;_c)BuzMCwxDyG_6TdV=OH2xP~-xMTT*d*D$ZQHhO+qP}n zw(Y)c+jif!ZQFKl&+gMdF|!fpyq%{n&R3O{Rhb2FjgZkaEYaN;KRW0ov+Bfa6GNbp z>NcOl4Z{44>X--~!t}h);(Ef_>R-~DO${C?N;o!qYP@hLztTRR5`iYLcH#hMeO@V! z3oIaq9=ebluW5|zwX4o>f}B!6ki%c6sR0ZMB4iAquD--!(&Uc#Gr{Qi2+qm|{0DI? z&LAO=J+p!Xepo3vvaBf2e$Q!SManN!f>ZeWah!5pS$0hH3vdRHhR)SH|#%xLW8rv%xFF zL^nDoM(D=hK7vc~H_nOJZYKE@Xc;Wko9*3+Qsjwpe#Kg}*K;&lqw4k%g3i>BK}R9o z2?#gh6l~4GK#I>sMj2=&C#6;pC-+C+h(1q{brj#T5v%%8v#CZXs|N0}xghS0v0nDsk$e7O5P8ZxDmF}F$k%#KSt8eoieGO%*2)7$>ric;YR=QX zlgW%Ju&NF@qxB{xPB7tFpsMT;>-l;?kNlAMI4yc?Sw4J@(F--orXJaaV$m?QgO@tk zJddeNWv6q&b0$-NqJK**ALXY7ObHrfhIfE9;N-4s0c}X583k^;ImDSN83{ls5{e$i zgDlKpnc{Xt*%h-zG~tvWBP@sv79_}0^XSLPL7o$G=07b;ftBnJl`P-aTyFq;Z%LPQ zj&WxG?H$e1i?StNxpN=;;~-Zk4)-P7$bXXjedolSW5&7_;k#|~`u@Hm@a)P=HfBc5 zRhXz6R6CMo2qO(-7iZXTG9+Add91J*H1Bm>UHm8QiZh#XlC>8kZxW}&3#PU05rKOrvy_2LXQC;$Kv8~^~p|Nq`uTNwVr-V`-0yA4)k z-yY5cr9?bxr_80-3U^@g zHdD#Ui`s53%cB{Zd)uyfNJ~@B6wUZ2@-$q}sh6C1m5wYpmlJNLPMmA8Bp^ryI^lr= z)qlKJpi$bMHRx$%+Z$uY&^aa~t$nh6v7Z>|YCJ)9u*oRq^aCv~xGH@lTo7*2Log-J zu#pP7oEddm+T8wByIK@niRLriB+Ml{et{R!hS=3fh>~KDZ{4r3D$e&=sdMl#t=9laMa)^4viLU!ZTM$bu_q>ENIK%0#K&@xF76k-ifXWJRU$MF@~r z3k05I)#Iq{(x;x$kU)FiH*tQ*c{jc5_?AdM!q}Ele?&g3Pi0Z$aXhRpgQ&hRJT(U>Xo zq(?0cToGL+8xW6^e+lhPK?@^RRiTELD#?PxbwmCHZ0l8W<)Ys5$5*& zU=yA;&~geGhgd1Z&`ZP5`_6O=@KLPic}4AikYeMT6TgK$E}&?hr>y@Nj$ zecgm+mi63gn7vlqJ7PIMhd;!TbH5iOu$Tn`3;ZKT3hHJMP(Y~Pj1oqe2%f^3Rc|69 zi0AlY@L=Af1e-d`GE*GwN;WBhQKMmwS13q2ApA3IZmr5|DXtqouA7k`+w?(?d^n2c zzW8x)ZLof3v4=ku5E(943PZB7VR1>3frKtD2*1;dqJJcT2lB;&sd)^{i+3F#dykW~q_U)mbZrcErQ_^LVJ|4tEm#Qol)by?>pBqYKu|4zJO zH)GML#x$sV8QE#1F6B6bq6`n|Xi(YpU_ zh0(6Y25Wkd5?j~sx2PjwIZC-)>{ZVQ(6J90tjU47J7K}y&s{GV?hR%|fxQLKGd{6z zwh-%PLllbf#qMIr8Y*yZwPc;q5J@Q(1+UJ;L-Tm#(90-u^<1&OCpP6%1#;uj83pPx zIG&}v;C3H0HozveXL?t4IYs3rj#GL(!~s3p(4!*{buZSm`^)fNSClsXZvzWj)B^88 zg3*v@)J6YN579>oq1h7#qoU#(ixCexcTTN(o*-cgu5fgYsM@9;Eg~NxT|=4djQ%Qk zKg8LoKQ;DEGrJzky+7K>ro4~TN zJvWn^eI)1f>`VXLY4O7>1unpT&*09oo>k)laz4sDk6f4OikWFyUJ6S`DXkyI_ZhzI zsdqi8cSVy1tD4#oSOeDb_^0+QWo9}uRXIvA3u+P119gPDcB{9FeSWI7n7EpbJga%s z!ClH8D)PxR<#zqG1I~Lyd|ukaXC_y+62EOHqUXY{(e(r3b~zIbhc)YnxkpIBUzk=I ze7GL;A$HU>lnE$1hh(+;ndQl@m~$uv0@K3gp(;$Tv!2?d*9q1d)c%QF(#c?VZ3reG#`rcR zVlT#Im(`T#5hBx-iB3P-sF16|R2}?}#=79o%)wfM(#|lYc4USdFN-aVFcD8I#0LBy zTU=b+-PYX|hL8VdbE^|YA;<;@0N@M+06_jf-+XHW7h5B96G!}Ck&A_?iIX#}yNz{B zqMQ^k1N`vK7cv9>DS?iafaKcNe2`#&&>xgq2CfaT2eX{9nk_p!#f^1EO44}k?X0&c zsr$8c%w@pD=bGKZJs7jyxV)H~CxK@R@M|+K9fMtXz@a!ob$k zk|I@o5{OC^&wCg6@r`m~u1nEujWcH$WL>zd6kybqp7jDCH0RT}@cCn`tuxD6D*StP zvF3R|Wpf6_9+~TDj_f9dUubx3#aRmJgQTLj9%JXx64C`9_yw@c14X6ZU=gj#C@e4f zS5x{BJg-``PC-nFbZ8m7uDH&=`NvHEz=j#?p~l@qIIC2ZLB1?k-fg`Pv5Y(8M9rl) z)&%jA$XP#K!mOW!M*D;hfWzuZyOVGAiO$nHN8 z?%L@nllL#eRYU^#761H?nj(7-Ce~klk-dTQ|K)YH;trV6eQs*$t5s$4k#ODlHJOQ2 z8>5B>CBfs}`N_gS|o~C^KXt72t^o9dt1H_&pm8+~E?Xb(p4>yM z%PeU$b!R9m#~}9sK|Cn4rA-xSsJPays%w&+hj3`C_Ro;`B0;2`P;o3Zj3r#wXsm-D z8We=E5MP*mfuk4hmnZS@G8CF+14y5_+xC;OIe_{jf7vb}XkH+PS#2o;Pepb1&D<60 z@nrfV)UyE_&w*tmAVKp7m6H`bZK0Y;4Q4lSuJ<)u*aQ7f>KFmd&pwa>$jbxXQN$2| z`2O+nFpJH&9Q&Jn|7il;16^FmyocJ>Kn0DY6usHZ( z?+DwPzXM&9lY+-2n`)Y`{A(~cJSWHP$>}-ie170I+*!o6A4u? zTn}XZul;2OqB+cw-MeOY19YJ|?BM%lQJO`nXEm_^*Y2Hgky&Kb$Ntb>FSPkmzNp2E9yWD`*+KGP{k4-3f36&+tryKC%-HxX{tVad+D1KihCb`Mg^NJAWIs&@nGDAGtk%(d*i2 zp{UQcoH3XLMEhaU?aMH~ZWaZ0GJ}{NEe2Qcf;7#n=@9hBI3ZU;^gPNz21<4~2>wy(d#=aZW;otiOAJdu&OM@!PW?%yFUPv`91InL7=Ld2kfmTr&R_++@jI zx6pi=3j8DAF2jD-6j|k&Dql;s23|}F(wC(&X+`(!<}gR}rTL{BE?B#KM!yKG&TE?X zFaJH>ZIdKonshGaW0>$ariZ+_D(D}9d z+tT;U_VJUgMOEh5jW=qQn6pcGn$6L^ZijdH<20twy-ZT*yrI;bX4b$9yB8PXF=lIZ(vFK0??^dl?zR63{~@TwE3ZAzfcUn%g7?!y4He!k=QoV@wdLC z=%ycgTcX-IR`zdSYkc_fUTi{w4RSa6;Iymdulg8HtD|qV#sFhgjc2|`_#~WTZkx1J;|*MQvs;`0RCs>cAYkEZup7-0K{q(YmLSR|`t1^-?po#Q!3`k=##-zOZIG*o) zduLj{v^>Sid>hHTVJaxI0ySEoh?*B>hH>1rb;Q{C3k3e=A8uUv>frV|wREDkl`^cm z;9bF#d)(JWh`chl;7bnMq+Q#$v72bYS=7&==tYejd?{z~d^&xG1`$kafRA|dz~*Sd zgfZu-PSQ3DLoA#^+${BLLr*%2l|(eGF)#tCvqr@;I&Np0vx3O~O7BrjE58!!Tntb1 z+^U5YE9w680ILZadcl7y4*6eF75jfqeU5g{2F@n`#p|fZ*lo~5cYmnCgF#AV72?U` zm%99OY1IkDm$zP@vy{puu9fopBIo$l+yq?e*CWQm8zXCPC<#&I*zsCoN2vL`KCKQH zGS@rzu0-}lQm*P-C}ni+M-5cX;_B#*+3R=H#rSSTPs*0%aFEmql4tDic=|Do#bowo zxUPE6D3Mr@Fde|6>uKCN^T`0HX_3im5QN*$OtL;YTH%B@&&fzSS1GKfj?&(TJAc0w zj;#yNRcz%B7E^o5tz03HCYrvT&yxXu0Dc0`7dqUa`o7;V<2b6>QMAY%m)g}8U=Cz@ zr&ddy%6;@kNME#*GCs1(I5ZE1y1h!(r8`Ub3RNQ!*wh9FQAE@y1u*O5RWcyWQUtqH zbr7K(j?NG(lr+8Qo$RTx>tL-1DoIsqT)1uTtPh)Y&Kg=bP>CM7HP|@U)&c@aR$;S% zei|K0VN(3)hg4yiq12Afn>E;=$g!DBr1d63;d5cJSu-f8qJ~dS|4VZs>5I&6P8*QX zNYov+X2>eZ-t?nKYVwnAE2n|}mDblW^S&Cpv5bg$HK(vTet0c(KCzIq-_~7OoxmW! zT6^UEx0?sV1;=N+U^EFi-~WgF+7+P}MtTNZF-%y!P=;d&7$B`%Ue@BIm^OZjXgWZ6 zk}W;1fNL|xz$3k0HdtnsK^7x|?@5DhKjZ@QNF&wE8`MdgDrLG{sa7Ia(ujkCiR+KY z!Z8-B^Q_0_%mLF$W0g%UTPv&&AIjj~h$7;I#MwA?32LV@+c7t8{2oWfRDO{_{KddB z43^IGLk%_@n1YgxX3HqMcj%>(=t|ZHq+$FL@3GlP#H{w+LRo&5Md67N{Ylnd7)9!R zi>|_UErAK$HrK}arK3LmAwf1v*J27v@DGmHL)pTu9}{=bAECj(a# zyZ=|LnE(IL#z@(Rl%jVO4QI$Zl-oNl=z6jf9tioyd%RPJ-Kgqd|XJF#6*8%w1+ zbPUq?YF${%zcOl;s|R=1v2f!C+SY)kzwa6zlO#NF)2daZ4_vb4U%UBv*yvg9Sv=g? zUBSFG{~#(ma+Xqff`2*5CDs4d7~$pbi=#zf}tl%p6> z74V&|x~}5{&u~YI3dZ(PtJ?}*jotP)jh@f@gC}wG&M)WF?jBFlD^E zt1B4YDpM`)U{+Id$FY|~3h@J*88mO>+GTf@)JSEdjWG$d)rF!t*q@?=3etn-3jf$s zHc6&AdJVToQy_3yk3wS`nU19jn;JwS>y7w0#=}fIVn-GM%UzJ%O(MEEsd0aRPAXRHlRyB#BoeItBkLNR=RE(=-s%U}tiW4qT+3J$*9tOgL zEMh41?hk9;2=#u*1?>P2Si5=Lqzqo(psX?JnlvB>@X*m$V2G(Gn)XpG)2nuc2ij;{ zZ^Y!UKT;dst^K=%!FgpwuFkdE zJ8S`NZ+*=+h}CD8eC|SWvBNS;wQ2}?+Kf`Q5?6%W5s#Epi*LXYfAgRD;iDL8KzbN9 zk)>&|f0WRF=0E=YjPmks_5Qd%VAT7*@bzfy=;_ulP$emoEr}_%`Pra9N-h5=9S?2apyFBy^eYAH`TRlI-AcgC~E;=dr1v?u3so2 zR((F|5ghK|LM|-*EVl_QvlqKKr+=R!EF{ z5o3dWR07E|KHc^f?(7(tvE3oLxuEJ?1g;(C2`+yyNnw3VQ&Zv$5%ZiK>Vq{mhY;7J zDJw|zXyZn{z=HVp^+j<(q&m8hz@|tSdM;? zA5W71+01_LD6m_%E^T*!MHpuD)iN0mleDl#%;K611eNbB)%y&EZ#pSq-+=kxBu|p> zy(SLA{yR*qmh3FIc*~>IqF!w^U0QeS-64Bg0a=!OpZO~)06PWLKQM=KD+!m?YfL5WYg>;zZlc*;@4i?V9fiUT1|$g zrT{jxpv#Foca)SoAnSy`*qL`j`L%HV{Dql_DzlY089R`GUw#sLyL}L#viC&bi)w7o z>z2Ym$8MHVLMEIR6uy(e3VZg-EDQ~tm`FB6e}@_Xr^+s1|7ytUyDst+LgLJJ2%aoa zl#`X6ID~{c5WwVT6>%_Y`hcz`YBbj-mQVBKvWuC?o^8mtrkBZx;{n0M_61zBch)CG zV|le4^wlpB?o>8}03S3s=UT(|GWr2)F#ZG-%d41M{B=Q!_0PW8J@ejgV#4+8D0P5? z*$IEO*yZ3mYl%okZ~ygV=WB8jWp31+>ShM>j(zQ$Rk%>jNZ)pHbug@joSa_sqooDk zHVpV{KR>1`J^+IjfQGMQE`=f(4ZP8xG+vFgz3l7iUOkVeuFU?aI$MB(fi&d?2Rm;_ zsQ+b<2ucA4A@Zb4y=pDZhhJEPofHZ?LRE<0Q^hP$ehSmK2eoUarGdPcjPZ(XN zX{&F3$UgBX)C38j7QU@(>y}y#Dvj#@&;%^_6x8l@pbB6q6DP{_H^(l?xhWALy321qb+*NOekVB7j&6V1(OBVmjpu+Ho-3+Mc>w&Hi0eTNJRN z&m!{nM!!id>}K%RIElawyi6*(%59}hBHF3k&z>-AJGD5dZ2P0lnFuv8X}@GCtID5% zG_n=G5DGxVvmbjT?yL^{0rZ00@lQpJc{~3pq@e1mX^6dNz3J3cFzb!s9v|YD2xe{5V3u=km%FSL`Wxt6l1G_()n-svSYzKxEfP6rR<9JU|~B%Kn(qyKhow`Ohpw^Xzvc`)@w%ShO7!GHf6He7;Z=bWTjo zBf5?bu;|~+CeoJG)UyYndGyC+4$3txK%;(*6xbP6R1r?#WYJ30K;*b^G*`$HVb@Ix zKzjEWz(uqW1l7ML>IUB(O`LojbUrqn8%ni;v;Hz;C6zk3yc^|CCUxg#HCKD6E5jWw&^YK;ogg3{;00*RD<3>6#D`5=qrE zvaJ`ZkoE23GH#9P{sOk^)Qts?zRDk==$Q>eHegI9tvif@*0a&#A(>K%{v`At0n{U= z6F`S6lW}tb=4D}3S6~{3E6gXArLwLjX2SRJc^mPJ4uhZiHucT+Hr);aKh%#D0E6P? z@pEp3;=1381nIe83So=^Y~-~zFW}3~E{}=)Uk4zi%YBePNda@bC;eaP?W)7CH3R;{ zK^`C$$ON!_$M{Y>jNpBJCO5mRUzV`#fjlZ&)&OeX=sGfc0 zb+DdXA%F6#OEJ=3d@g%^tgO)~FBiT(qWDa#NkF)Iy*)BuU~yqM8K+EOd`*h~x|0r> zG$Fr9yp*SkKg5!giR#{_VtLUqtAO4a4du|ITtXcyu)?rAj_Af;z9FD7ODtETuhF)$ zY+JkzIKw;YIGnnUnu4PkZqN_Ocsd)M>^RuKr0Qm73yo8hvi5Mb*eceJ9l4vUfvc-3 zkLz1}|F<3(Eu`)F*)JKp{Y%FFFBR#p=hH8o{=Y=5l-&k9e9v!13Ir`tU2Rwk*u_8V z`qBi~)OSq)Zmd~gZTkd7F?@%*wX==UBdjUeP!8)zJnj836*QK%Pa&TBito^HiiQ*Cv&hLe&;knI zv$8m;>UyB@;3}LB8;0Kw3yjUg66K7A&I!j_LZ`abF-omQ7Xbs+Tl|IF>na86TYzLU zWcn>>k6yJZNo9CxmiL}bd(?T&UzgH$VDHsbmB1fXzvt_JKyx>|6c_^sF>NwQ_^ zJ4ASjIm(+6UaATsZl$?XryN<+^sCFf*wzTGp^2Jg?Y{?O$+y~|)H6!pr;p1S!&Es4 z{Bhh5CT#rAeW8$)kdHZsaSQ>UiR@7fkPe^7TF1f#H_HvZAVq`?qE_W4 z#N=twpCT6t<@4Fzv7d(GWAg1TH&u<&36OH@O za-Mh!4EBeoWvp9k!fVFBjO}r=8Ca&{3|HM&80movf|2}WmiN}mppxneDTQfC{+&{+ zwOCSNVw%80{OKqE(tM%8JF_vS6ZT+4nH^+n$OYGFhK;BT`K_HVYQkNnU1P$UrnHE= z+(Cs{2?Ukp*uWv50b_}N4CS&RH%}3%&}{xJY_9@dV*w5=MF!zEuYKEgLLY+ER)dj zco0Hf<08lUjzbnAWS~3aC7LN+Um`@zNI{7rf-RB6v>+?CZzBjBgl2a!#H0Yl-Yqjp z;{14<-n}~fG`6Zt>hd1)&&<(gi%2>GPWe#w&V~hl@Wv2F;$uL2DCF8;kPOhzRYuzO zY?xC>14c0x9QKvx>_OD*FgZweR-`@k*wSHxet)QU*sF?vFEtsjP z=v0A`{N1z0hpIxm$4y?5lc@m@*HrX#9pLy79>$e}> z%|q9$K2C~0iB3%+O!8onepbr2zI0bE%TvWnTcM26`f?Xc3)@oXN=s4Vn4o<#v@4;1 z2ptZQ9VvG=ivw6md~(u<_aZ-?E31&OOQ_)1BNQ=GW{@xDA03fiwal%@IcsDg1^0Rt zv53S}_XVc-H`?Wj{8(NO1?93VPvWsvAoYqS#b9p4H(m1ex2U`%>z&l^Go~tx8N_q0|3DM zp9_BH|LTw0dsJimDlk~@w|WCl@Z*EoJHTFA`~!+)JYi;~0&QSL45*Pc3%V!A3nUe{ zUwyx(peZ5>Oza??@tPRNFs5J94)ayk8BI{U}S<{@oT zD#D0#h^kRWXk9gN)JbBls;XpYn^f27{myNAzhTqV4sPPAQ!4V8z=hy6E4w$&?9SPE z2R~{f)dcA_1D*}^%ng)Fr5OB6p}_pU92J1yCC`_fRlI{t4p6a*;kr_PkVGb~y0yHN z-vwAd2EZ>+hZ0tBS_|0izwo&^byYy=s<|BxBWe(1(68SclQgSPGl*Dcpu`BkTT7qt zscYMgu0gbyn~5)cf5=?eZ%ZOuo#Yc{Wqjo|k%IzP%l`6l>EDqzAr!QOe5P3GR(P+l z9D#HljUdNZ4jI;yTfO%CQh6-+GiP5eD8T%B(Q8KFP(ebhQ${X^d!DS^*>Pvf#X*zZ zs_9}E1Bz0%h)OP4GvL<%q9>&11;qT6RaAl!sMiC3sRQ<-VrcpSWCmrWO&rnCS7VK2 zoB?nsagAJL=1X9xIs&r>Jx`keqfLaadG$ZvlViqtGVFTx7Rt0v76B&H(BZw})`$V| z$R;xDFkrKWtFM0oRd~U+VLl&0r6&p#?YjuH^>`Z;VW?{YR{JYyvTNi|!L-3AxN;YG zK$@adBZP7%58cwb0i#VRKNcQlKOt%+pLLZu;uE`+H7Ll-!dkVoXVD&Y*@!5Cwj}Wt zuTt|vDF+qt&v0Hf_e7JlOqO6vU%SYAKqv7!NGQrnlSdK@_9$gu6(t#BTfR?37VP~| zK=vmEds!g}#U5pfo8K;#*v?IiPL?kFsUP{snb}?DfK-%heS*|!JT-g{B=G=}6K-wy zc&qJXf-Yb+#HEWz6Pa-8372j=%p=HPs`^&ZG(*rPMfsUcFj>e6lAZLYb~kj#+kJNa zOT`$b$xP92Ru-++h$~1=(eoMHKc9yuo2zuSce;5T#x;^#FUbONs7r(2&u?y_4@H;= zrD<+aQ7(6Tnu7!Mz!VPLHLQf}!b>iHbN$*6MhVz@ym>KO)fY zWdQ7hSlb5nKIj((0P72@Z~2je`@9&*P93Cf@W+VURvY=u&@`q-7LXH55lNEaNn>6Q zXl|NLpM6nB$R#*V+WSvAQ1-Kl)`Mc54cP_cV4>MivZkUB5HxKsaB^{qc{90yoyu{& zv*@WH0%~M1FquVQxGtxZ78yJ$?5+Ct085in`~VWEnygc zZqNH0(I5e)q?+^lhDfSE^RMC{;rHAabIcy@LBTgJ*-Z8bJc0Oa+j;F3 zadYZFZIzLC=BSJJ!y?dq#G0PQ;7Z@Jiu^+|{xOOIc1hV1;Ha&XEp%{C_r*Ire>#2j zoQ;jatXhB=uhbOQfjan33(D0mmB^HD7Ho~(e-Jdo#A>L>HDLh=S{qWIg)@A?^mdYF zRvyGd3LRpT+blsd-?z`7R?knqQLGU-F?sCWGdR|gUDP6gWX7x5+#FWH8Y#ORN+VWp z@+(%$iNmF4R^yWS>d|bVi^q8zMbm}jDZrAGz4NJ?A?5}3FVxmhFh%|S!3m=7<)7xj zpwfAd)qoEhN_{Z^DEmYzG!8C_|E)|-Z5emod~ZVhK!I%K&e!S8mzIZmCU{*g%n6@^ zPbU=77++hTf9ED@v&sjoK87uUY&_c2@1TF&pCv#I#xxy=*$i7)I|+kg%_5;CE?^b|I>F@Q03RqdoJ?pX%C(4W-Y)Rh;=yF#j240At z{`v?WcRS9+LQ7VGuAH^setgwb%cBRNc&AxA>!RYZ<} zG?Wvk)W8by@wB0J4QN30_`M%I(BbiUdp^9Ok!BVyR&a!mz^2D)OZ9|2TEi!6UEcB& z6#uTvWma2>Ua2z+#&`BL2O5412VRb`M?Nex>kl+5oWIpKrP%x&m6LpBn`jPVvGe!viOYf{P*en9tEJn=H~Au8wd zSU#RxILl9^L834sSM7SSqKfjC+SRlnRF-5oy2lVJ%$Y^#VhdS-2sbJrWb6y~<&nF@ z8qV?Br4XJqA7HlE^Y4SU*OpYhL-Zr)^PY=iOkkIaO;M-?N0{G3$QcSNp(bs6?S+ee zdyP(u^qogP!%kB zSS0eA%V6STfNb__n<4&%+k;WYd|9qvk#9@L@LwZ@w1PHp9{H&|Yl4@0J&`ChP^f?Y zo4pL|JbU`%WH6rNu8saX;~H( znxY#HJnY><@n-fHnkCqvWidTV0zHQ_T>OoRgo|G^^rT{*I+Q|xfeR#dZ9nFk=IoDC zn-FvHIdkyWcpR{ywyMuW+Jb^e^)p8U?j%lN>dYFhvc+_f4xuEhAV>9l(pybHv-n@F>Kn zT*2?nTxY&sXmmQ&Vms=9y{h639GN%% zVptce}I027CR`E?2k^tDT`tOiC_t3ugTJJh|g zwd30s9pS*C8U`+2vEfF*m(WWGvrg1ai>K2A@nL@cL95)lyEw4_r@RWEL1#SkD@5BY zsu9`Ye|ZTh_(&whCqFP_^Y(u%mI^BrgKboMv7rrjei)m7*zlW}+9Bv8{%zL%FT{e2y|tZz@h@()NszG} z!vDW*Izy2~gf+4AicCqJDe`krb9=@zKq6nwqvsIgMAxDQ#+IEEGjw2$S<;eUb$Y+L z96`S{5*8k%BfeG2f|uAc69o(<5GYf9HJ9NyFG7kdbihFW#oRpF`LDxg4a>+XeI@!0 zu>yl*R9372NA`mnB{Zj`5jErT76j0T+S;?oGC*b@ndC zkb~aa4clhGhihxY?4N?5Iu72YvG|^tLB4}G;1h^82L=O*a4kt*SDOnoJK~V?rz=WZ zUlJIu0ZT>76Y@?#P`;P1;v0W7!#l5vUi=kpC-OkX;TgUeipT;3zW+S9w(!Duh~J51 z(Ol6H=frb~2~ zlK}^%o-(i{mL)1cwy^A?{3nX zH?Q5f;H-B}l=PHo?L>z@No5mZa<)@3))bUTfj>E6#hP&ewM9zOY7hQxfdFeods#Rt z(=dyY@F`A`@Qu01Hr}?=?xbrlWnv>8i=3h|UzSZV`B*6B^JnsH1F9lYu>gC@o9Dx4 zvWh-yqq2up0ulAl)~?KW5pn~G`O0mL=mPES(PTH$xE@7htvy zEa*Fzdg-Dda&?uBl1cX;uIdYBD)zR2e3r%vw=$Ya<(lM_ z%%z#0kUyW9XC8O$hL+BK^<}}P>3D^@9qZRY%l;IBIfOF^M1RV3VT`_{%~8VWK0q55kQ^>a{mnAL=UhV9JLP55cSDeb7~@cf{6|R6mUJdco$!4uibX)2aJEr z9L0UGTK{%H%uvczxmut7LGcnm|i;%L*)c71>H@=j0(yVEo;-j{(ja z(9lDY7pUylmj{vbn*(wBgV8WA7qQGAJjB40bQh<1PlHn~^g5ljwRnHS$X@-)*{cJ< zRw8epk1d>-ecJvnUN=H}oVPbL@xQ|O2kCzVYL>Qtot=#-+XE0)QRi&r@Triw3@=~Q z-*k>4K(8cj=J^Pusxp>)SX?coeXv0}1&orS#Z?6+^vMyGC}KP6prg^T=)sNfW|}HM z9yQ`$6$Fxqe4#Ba<{&01$b`xz!rr0rOV`$$J%I~A`=y$g_<`W7?ikPy%@_Rc-w{2y zp8_Xe0A=%=q}dBTqqn2OzzmW;8Wre8m5G7>J)^e@B2onF?sg=z$PthXnaV}Y5Lp;W z157Faad2UIpd+;es)?SbFHnP)2&lhyAX6F`y68VYk-o6#VOK>a(lygwC-jfwD zBL~Ft%M~7bO|o2B`)gnDAuU>5r~~4BLye$G*x?r$wQiS$%+nJN={6ZYHL<6YJdT2t z?(;HnPtJD-GZ2lWP)FCrZW=o=^r=pyp$OKq1GHIJ7?8Xm9V>I($mt7Uu(7ZG+6;vT zv`VHQLj#ewVZAe8Ejy!QBZI7}`Y|OX2Kt$rLLNu+6EkHytpoL**6*;5xhC6Yyn6B1 zWI}q?*$GxSp`TMeG>geJ9Wi&+GAAHUf8$9 zdoS!7&bvYiC`qeGmsH5W3Ca>FXCkElA;bpy(95Xh2&6phlS$S_{U9_*T(0@ZQ%ccb zJdkp-eW~p2X7_8l5!x}dx8Q)Z@Nj~qr$No?)Uv57mvMt6yiUSG-G`vU3?@KIbcQ(E zd?NW&e3Meb6mB9~MrEY;cTz=rwhRA!8<(=(u3~EehC}lMKX}0!N~TwHT)IQZ25%y> zTa=)L%n5zl*Y#PBp%A7SUerI+0BpyX_^dRQ?5tL9;F3=<2^aZrU`mH_qJktA=p!9% zaUO`>j>y?OSgKjO+u?4-wpD#IiQT?>nL^F%w?-cKz!d_U(fbAi=D1(I#q244X1$f3 zE3xFc8!5x;m|P7YnxHj$cXbS#wnp%dnRh{#0@ooCKuXtx+5&OmNk|MogVySMX)xFQ z5ZGCiaA!}Ex?xVC3W1+h0Wjk~28!=Ng!O)}L7U6iz&}4fZ9pk51f3P)y4GcV=o3rd zd-W2&r*-ep)zv5qe?GOcrPbEZ>T-MezJq-0X7l>oUou0AmeGn2 zu~%x+65ShB=5M_zr8wZmdZ^$!K7#;qrK3EVGq^Co3HF3QILg0nZ9*AetwG?%?ADa- z6!-O8$P2w!6Ez)CcR_rF_6j~Xuf65FkW?F)1;glDUdATz233kYw~~ITPl1v9J6} zBF&6p&w*Mr;5zFpuY#B>JW4iQ9*aAK%2%dJ4mA&c7rn-UZ9&9au59ACz{E1Gf8l^@ zrxS&*^y>9oO!>HWM)mX<{sgjC1iAUqugdJ*;pd{R4=$5|bXbmz;=XeRA)v}V;$K7q z90dDsv5Vbz=CtsOWztyp->x>)N}6z~DyCm%&p)eZGzAxdDOR~^N!(l}ykopA z3hB5*XAi`*vtMKQ10lmPg{q@m;ZB>MyE^L{+$ayJM|RI)M~W6=4-d}lmT~$#?G1XR z*HM}(Qnye+vwa%npMMnT?ohe1`>uW+NHspYp0L|hTwAYd1mL%%0m^D`g?F?tXC}{$ zGdGeBkG-mFnWH_s$HI8p4sa7fN4b=c4PX9!XTT8iwHG-r(+ewog2Twi-8#dm6C8_n zn27YqBz|G)4VEH!V@rzYiz3h4^)IT!wj9SuXHwNdYpBJj{9;4?cmwV1TXc}mS~h1} zR+_wws;qQV^HFKBaZwmr>njU;znZB8zPL>$8paVTgpZQLzx2HGdPl?E13dDri8kP8<(%&$Gc;1SCa zkKujWXNSX;e@l$o>z-W});2AGmhG7I0Z@=hZ6s-vMM&ZoMib$hd%ymTcJu34Tk9Z| zKX?3-RtHUgBo@4ZKNVjKbv~Ooq>;I@Tw>qf z)oKAXAdtBeXk_7oQIq+={n6>KWP5Bk0I_pKcBfm&2oB)^h-#sh@m#KDm&yq3RT3^HIqm z*D+QK>scX2P&96DtsW|}6CxIjPhKcy=?g>FIE&3fZQOx=F>L|l*Fecci^!xv-xmhh z{m0kFIO6v94j9G?Vu<_`3~XJ2Lu{{Hl$Hr?g@~Mi4@?mR)<{Vd|3Qpl0TDIqmjy$W z`#8KKwH;q-C1L5V__1ik^u`}Xj3a-kt&~0iKR8WWP$Sa$XdNy*nh2_C1TILcp%G2$ zHL2NLw-O$Vh7E4z)~9do|Jp>Oi@@n=0Xcp&8LD+-=HQr1MOnjjVYbBB_K(g~Dl zP1O%)y*rbaK@(xfFY?&|!h~+7uCBUVOr4I{W}3kn;)9H1OsSzB87JlX4us=`?UmptzqT&Ap$_Vy)V)H?dvIV2EH{1itk_Uc z)2tqoO1O>o8bENi>Gj+(Yru3M1xHeL@JHY!_F+}p4}o-dImU8z#Di(j+cpD<5j1g$ zCP2h{pjyMNz}}2lT4Pb-G|g2xvgLH^gIHxyE(7SFE5wb+JiFS#fE-xpHKe zgHIcBH)LdFM6SM0|A($~YSKh&gX~+bF59+k+qP}nwr$&Hmu*{Jwr$Ocx%^`0C+ygF z`DCs&0Y&F=UvSc3l5EltMI)n0I*4lSnRfFPc*qfK(mWHLRQhfO#(XxWb7ub^Phubd zgC^Psgj!m84}*l@>yFL{>I{S-Y#nrn-7x9H8gI0l;teXaXDQ&+5eA3KXo@Nt#ofsT z8_g7{OjtuyM^s0MwBG}SN-JEFY;1BnEgB7(UG%3VdoTbArrd zT0iWHXA5>iG^1=^cQX9S7AaNu1y2L7>5`TXxufIwj-$2>z-Ykh&#{r6aw^j|_a z4}jJ9EJQFsHt+Ch^5q+qes_tR9kR(`C>XHJ8S$R<%W;_`x+d_|v}LVP3f zaNM}WP76~h>d@m%QZ-*K1kOVOyox`1#R&8sJ1;5*?SseyKtJmgfs7%UauvbB{G<_B z5)~_iQzcm~I9;NkETW>+Ohv^Zq7jKSgCV*h-5{EqB9K$yDd?u90i!AFPwnuE#0y3^ ze2aw=X2(#O(e7e+Q)Mvl zXIA9-h$V8e4$E194GG-jnCmiz0&x6uu}_!srNZb^|Mj}UmQPCWT7z>L&pL@vz$55A zTuQ2lR3vPa)UIk8jXMxzd4TF^1L2=`FfvnUHLxxdEcgxK3^g401@Ihr?m=)CMdqvl zaO{81ERpoUMK&q+{YJ4#w>O74i$LiNC5-ZE-N*3VC|^eeh+c{C)YL_T=pNl}G=V6pwvRYy-#T+` z?pQ4@v&V<%=oIkrW>Bj|w3wP#{y93i{u%%LR%*K1)P=1Ni8){hDSlyx0|?4RB>!?b zNXt$}Tj(s&?9uO z>`+A4EM>*i9~|Q$+TXKHTG~7e6(kJ9q^c15k|fCsLrtm1PgkIh;WsQE{?jZKd&Rt zD=to~uniR*V2nJ{+wa-yK$2-+l{{M^BfdHOK@=+*gi_3JE>ZGcB|cT+0=j<=u3C%K zP&J6Fs)kKqrbMK)t(O*7aM8e>JAw?x1JY9OpeWiBc?zu#Ev`Hn);F#ctjSo#gU*&? zOWhT+hL{Diq@f79NWkOfVZP}Tm^-9T-~HzPord?EDgZhl{-8j6vkP8XxKiMyU>h;(gnK2 z*9kfu!+3}A6FVYRzW+n=&R2?0BI7DK=|CJyJKYNY!z~G-t+0#`*b$tj5O&2kaYR;p zEX?Q&gGSUb1gS!FjKorbRm2`(7c{%z#Jat;0ccA zPW1eNF{5WSJn^Lwi89J~Q&g26VHEP#SDZHUSJG6X0mw~n45EX#feWENdOgovM*8MP z{3$L9b8{i9P4`f3m1eBMAO=F{Q=rKTxrM@`m9z4wo=WN76`lE{B&K}K%Qgt9BhOmB zZeUAx>quUH?Zxz;cN7fUzcaoPx*WS?^s+|p>RkaZKZcT43=lFKmZ&i^M1@et3wW|I z^#r8z7bthDtNC(nUB`Ve1M8uq;?a~H(KHRlD2Iyo?cf2IeFGYLT(NK#Czy{ZBsI~ zN)aC?Haj)xXq!k8mFlM3N zV4#}n4-Mp}qkWN^u3vFvf$T+S7L9!fDGhvME-a~a!~|}he&F+zSfGa`a_RPQ6E}sK zu7}C0GS22hhUH$THk18CS{YN~!eDJB)t#m?tg|v#hNz;rHJP(9hR-^?^Py^@x;AZ% z*%tT!f-glN!sdx6F(!_(;ZvJH%%>GUrwXZGE3`U9kQ%WZ+Yq~BN*M6W%0#P;-8-R=Bo|!J5xSkcp#Zc zE}6@k_GsXppyrB}D78)7#cng@2oQKqiQ>KNoK9n{m18cN%Gql864hkLIhJ+e+rpPp zBp0!1p-nHJ-CIEABa6PRtOAyv#Fhebv$@9Ej{m40MVpW#P?bxK_0S=k1-{tgIZ5h+ z2GQgr@A_F~UcPo^nEz2g3p*jF3j^2LbC$Vz>WRA{)IN8=0>n@dgjD-*x9m`Qzt{AZ zbdhS>iQ)8NK`W{y-}fk;c%ao+>^P`q` z{dyy=b3%CqC04lyTxI)Y{vZst-@+-#x^JMAdxj5Xn?AuT#{6XZ~KNfK1%~ zs~7)lHr}S;*6$1=8Wo`~t_G^GOmqahNO@AJJx<5-++uvu!5KZACZ>qc8!OXGjIX-x zD`B5|gU}6kx6)cVF}P2oJ4Zpon)13hCsV6Y66iBl8BMi=Z<|vD-5r{1gt7aVKXp+L zNCLUYB;vPq*xtGlKiZn6$U(qaTp^uasl)}jn;{(?R4<%Ws^I9yd?taS>dgBOSB{Dj zH-YK;mwPgnjN*`7lN*jH+_Prv%{jGSKOLMdGlpiR^yQ9{?jgr|%0Gu``b}PSSEM5E zSmGsfRS?1qlq*z*0$CkbJkw&U8UT*`fW3h;-9A2lm@)_^j}>xkmM;aXiTi(sJ3lpo z9$d(fYg`Pg!g0H>3-N`k8E^z#aM!v1+9Dk{ug04?>l+aBpH?=eYqr2E4M*ioaz>Ti zRE73W0c6Pu7#1`BqG4~{o0%hUoKx*N_k^JvN*u?x))%j8(KX4@V|*cAfId+|E^7IW z48(;(;e8Ae#uJVJdwTp}ThGc78%ss3kZuYuWX%|_G3B%6Fd+{1D0bU+F?y-<;(ja5 zSxZ}i9L~iHiuK?%WBq09H%z5t{b9-WJ8Y7ZinrgpRBOa1?;E7xRJ3i;^Cg<$xDMVU z5gJ6gDS!psG@&Wp8(|{M5+YeIBy7bxM$EY)bmMHn6Cy}STt-ljq`IKodGor=tCqs; zL+Bt^&AjXVd}7H)lgqVE;%|O|#lo7ujGbfVzN&K=SS;0JSNrq^aS~IkdAHRpeo{A* zYpdl=noxH)@2_c4kM-DluHMAfpZcht4%?o+HjfPG$9d%}lUD}xX}I@EF8?C~VBt@8VDwXU^)=;< zlO=4ejxZkaw%#fjH%LQGKum?Us)BTuv}&)3nQodkBNulyyqn4J)1#5=Xft!SKg}fb zO0bgcMRP{*06M_8YSr%MGDouM_8|yOnGE~6ID$}n*&2{6U7&zQ`eRQU)U5i@uL?Y- zv!~AHFDEDU)geig`+5YLLx7?hh>5EvoA4SEWSlov%1=w(`K9WBg-}5*9l+6k;imwN zXFXe?;!bzBBZ!06m^8;iK35ElOku1_48K8FuYoct)<B-$Eb{yL!V(orTh(8hW0!M;dX9_!$rIQ<2#Vwx)-mZ0Et;An=N#$xEQ$L ztKY*!$>ICXElM@N$`voGRCgO9nt;G|3$lXQ`IRUh7H05ahZw;g{aBHkaQP}Ruf8ym z&R?HsUTf@~)R;4g{q;Yc_|spvr2YSh(|!E^kA>s^jXq309R5=u{}*<&a$Co5jkfMS zQ5-!F}ut^>?nZJ7NthTp;S7IZ>z%ozUHlUOVr}(7lak2 zhB2GZTF*LjTk*4)>bJ%!`c^+3Hd?q<*<|~=GP{8BDRfmWF&yh*ueeR( zxN4%dcG6!6W@{RSJ*aIjU#sCp_pa$0FWRtus#Z5y7%*KGerVUm>1tbnAiPvr8EiH# z`L6tnY1>q1y#hwodTwRv;mcaFdErsMMG#uR)Crt-z@xi%UBYg?-2|Dw*`rhxtf+MR zlo!~VP6;9vm4CBo#mdUPk%>34lfSrF-W}|nz@u1-AK8a=fDSChtNKCnOTFG#AiyXF z3NKpYR#h((SGsvRFT8dOVzN<4`36iQHn?T&g~hyQMG}f(lW+#+#@C+b{|PrRin0!n zDGr?iw1wD4e4ynsu!R?$S1(q~jGp;%yx3}I&xoM{j>-}%!H3S1dh93tNC4hmz{)z$-@E8ykKnD}jBlad^Ev#eF3WeVzd2A8* zFKt|H+nO#HZo>kMcGEzn?Jas17@Wl?8&xPoF|JtVA%|C7KLO)txhu$HCz8Hfy+1I{^)Jbaj4y-#^D)>K9{u{-0Cu^>lP<7so5sD}ffB-bcWAkYnDf zSKtM3Wq*NSZ7!7Avgb~lFC1*T@JN=n>c7hC+UyEiceRZB2!(?wPmc0%YVEHfQ z#g969BorW)yMDX8QvDyltL=BXf6nctu|B{AbG-&=`tHrhB*rw{@i zmg+X)N;)s7S6cc|eiXLPpK1I-;6*(qc>I~=&EG#Q&c1#AX#E$~;>heCciGJw zP??#+lF9d6@57|iFrMJ%bXV8;@)T0i)G!*h_tO>rwWns-`A|#;@hmRdQu9>@h)=qe zGxKzUT9&_3%~h9OJn}Gh?$E1(BxzF;0qY)6anMlO$N!ovN%MSQ<_?Rn#GlDISgyLQ z$gY%VmPhOM@;+~pSY8MKTEkvsn)e}b)+D#nL~&;}&b9VaVEBPkUR9f?Ht=!g&zNwY zuR^&E*IexC5PQ=573}2 z21#Sp_xg~zh*o<@&ZBR{hM?Lxi1{;+sJ;^J9O6BvOAs}5{jpNZ5N*a|V_v+VhD^H8 zQKl434S+>NbC)=ZvO4S@Wt zuz8D{!+&DXIGCTK4((txZA4H*m!-iVgH{+<|dTpW_T5kyW zNAB+NaYd98DnZQpYUt3US>3CD{T+>G_4DbEkB^RLUWJU4cK(w=zw(@gr;%ka>h;s7}|Cgu0u3HT>#~Z_(!4co@(pPurzDDIf2b<$CfW~1l z0cgki<g)vD~F~dAHvMff!1hM>FKjb|_8KIb{93g9u;>4Xr@e110 zcQO#^i)6oU5F?T(sFa=6MiJQBIkGI22720^?bv*WWxRu=mM7Uka4;yUb>pkJ5EKcB z@ggOBkuI5#Eo92@QaK@kc-ygJr7Ge7;+_EIJp_#Bk(%;J(fhQCo z;8a%_$FWlo|*aV?&~ z0cnl?C^MR$1saTurJ8@|p%#lB!a;LDE_L_=QNWj?@jOkI76tRdAn{I7_+#WLWMxIk z^8K(+&Ly#qG84wt8yLEMd?Hg!%}jZlZ!FGdqLzzG;yY!-n0`R&zqnb`@PE(Xx5aCI zSZw2WtassN>~1KYZQ9m1hR9Fp2CuI|{GYd?QR0@j z3n-Sil#B8>P>C8mXf2Ky${6U}z-x6v-h68NEUFT;4PRF*UE*0razQ}a35^-p^LO80 z*k&4vN*g!9xpLiwZAjDQvD0Y0ow!z2*-_$?tyFoNZvG# zGI_B%zBf?_9TnJA3)N8=+%&z097av&*BZ|58YC$*Ud1m43 z=Nwqdg9tv7{^j*$SP$qWW}L}y#Tw>`Y7c|AC8!08icR4~B9+3 zBmi!ziNeHR{U#!8=z6&tAR;>?(6SC4Jjgz6p_)527x_~%PgK*M6N6#QtT?&1!8)ry zN0f?rFXu)W$>9`oZY*$-QGjtM#o&dwHiIDy{O?3<- zuh{;8=M~ zO4R>_d7=LD{m;MK06V(5$P94eOe$A&Qf09Xz6YmP4xnxmg`EanZ;KutfCLQe%|0)U z!c|!T*Bq*0-C&Uh6gor6cu{oHCR`2I~BJ&WPqRD{tKOhIB7I zEusYR3_2ux>q~~yLpI>;`7b=>DI-#V8&5#Fb>k7X;HeV*XIb)G{nO~LMYHnwcL(sa zlHfL9rP8A?SKfM&(I;K)dRe9<5LR?;$cXBFm`RIR1d04*iEN&oh%g&FX=ugBjd^^^BT@Ns6|P3@UC0 zF)AXq2o8jR_o?Ai1~g9ch^sRR%3SCT#kr+T+|hC`fh&2YLQY^mR)NU$}?%f4mj z)&pX{?ymQvC)8>ExgY+8j?k}(`7fP>&k2rineiu)qsz#KLVM43u#4f;4OCs3yNi4L zHPXJ^l`6}aKudaHz?5qOO}ZUfV7@D5T@Pp|gi}cv-4hGKFMd2ihD0JEmkKtv{+``n z>|apom~V%6EZnirauccbf3zz-)-f3|2ZJQv6hZ|1n=u)rj*U+kL&&xjS9Aa2)h@oe zIgAE;Gif|lM@F`V7q&CXyXTPk!+o}A1ZtIB zhaOm8m@@rS1TW?-y9*mb6rzB6B07%nuxX7IM)iiJ6r2cB3&H=Y_y$D=P)c!k>XVKX z>NlQ>pjoz8XAmRP7?{(8)GgbyQAEKes6MyA0&QJv9pHVYyMIuIaR}tGVoQ)P*GHDZhjqK^4lw^J1qe@H-`VQrRHBO`Mo3|E(%73*}Ofl z&CaXz!E%j#dWl_{dG^*5Q!-ggJGdV^OX&4<0^4>Pf%aA3IZ-h2V(m@JqTKl5*?~Id zZ267O1ruqhB^nLEv`MO1YR_XFfvxTBlj60VS{}ou-3G?1B5GgYCmJV1C{Ys{k;`ks zyDp?+d=~PN5O0tix}h6hXtgH&Wr#qz_24OIL9{Unf|%G1OXf_-p;I^1VGUlYDeXJYM{l4ba)oSLU0_a zJ+C1uEw>QQA026X*FH#Q5pDt*MK&jgM6*U8IGQxKYziG65WxJ#ZaO4?AMtH&1k0sB z<{ubkk#4Ly^LTTnx#ZRtz@oM9>IBJR;;sN`B;iZ&pFGCb445m`DmVqj=Z2zUySopB zg;#87lpaYNE@HZ*YxrWboUN(L_N56elu*j!p${)_MMd?a^9Sb=SW$z;mX*?8yg_s5 zXjhe(3<>K0H@TCS5>%>l_EdD@zD)WhBf{p6a5qVoS3uQs6wZ#;74xr^rjyS&OTw1v zqJ;_Ff54&sTGyLJCx&g-_&W+D()q`hzqg2~mhW$?KMVA;_z&iJZj8h7Tq{F;!=765 z-B=WnK@z^7qwU)J2oDv<-g4xA|H9?F4=!4uK}5~#KeFX}%Yr||M-CEPw=ILeZBY?o z9+HrL8^_Fa4oJqieHxz#uiV}3%Lj%PZC`1SBXtjXf^IzjAwM@fd#Js4xEHwK#gbm<$UzNwQ_Y>)vlq(W1*qSioXf>b>1bv^&y(6M@u}i|E=})e_v9e#!r+zreCFk9jyi;(K zNX9b_-AkkHdv!VzZd7*%1g{u+X^Q%O*MN`dhDVwL3&pZQD^adJ`iQGXaE-Hj@S4Ev z6%t7OaZ_X0<;Iy|@-ZdOn-NrP7(6Lcs*OY2STo>~v425OW+5f-9+2j%`+yVd<~-2) z6E`Hg9y7d2LNB2sb}L4L#B(Hu?0y!vf<&(+Oc00uMwk44?30;ytIaT8Q|kN{L7!p( zUw!-6*C>H2;(i-fDpStaz3rp~H_@npj8U60pvxFK^`EwE^rH>X`GZYgMoj__9-?O% z&zSW;(ogl}t3-~mb#%z5+4G~V7lU0SC_UQCCwt)$`?KL0dzE3V^D@4P*@0kv?Pm`uP>vqbYPp383uEhI9ya3uR<%J1|L&Pf#!q{E zk>Y6mq6tGG6u~)t6SE3hWd`pF8xGG^l7N0m0BkaU+N+zi6 zKT<_ev%_m$*OZI9;BNX2=?x)0H<-w=Xv*yrudUBm{jdIPZ#{v#>gffE3H3ii552)Q znDscr3!A5q`3PyK2sSw|Yx>AV*X1t*h^5{xA5PcFQ}1w!5uwF313d*ymDQtBDIyc; zCapkThuy3OsHeSdswoeX1c$Hu4lr?@m-291^r9?2K$bd1gyyakdzoi+7uU@GKb8MN zbT=eeLqqVR{Buq8Hwg?U#iyTc#bi&kOCH$^z;D-nR8E(Cj`*~)u7|EwlRiro{+W`^YVp_?3eg^83}8Ku^!C>V#A`&mhr?*^fTw9UqjB5A73 z=Cb?eR$cX5w#~%UiQXJ$lx0I#S9e!cH^8f`An0|g%|1)2p}TVJc&2UYqp5PE z)0)ku!^Yiq?JM}ycac5Ys>9^6>3}FxMz6Q~&E@Cva*Fw7YOGyXQg!YW;cNTB#%i|kr+RYwQqCHA*D@zav;>dKv<3?#8Y z(ZN6u-~M@AviTdZX(R-rU}t z=DT)7ZRA~c+vQ7lqS}awa*dA_4H=w&$QP~jjPF>J{g+n~QL`rmG0Ivp_D)~9yJObsMp*f|3sWYF4=iyLk!WG`y+3Wg z215|P>Eo{n*d0X-X$0ta_9$|tB2iGkcdr5IwU-d`t#p5@rKc@gMq`Dxs4@v-Z_?d; zImjI#Ie;_*Lv|r!$5d6*gg3sFh!(N~6S}Ym7zMW_mZJnK?3mc7aHr^PFQ?b~#v@BT z6XCd%gewbiqANb%&(k-v_w!+Y=J97bM7Tg81cf8E zDgkZAH+CzwEDeqP%4g{SrvU1UuFbQ9s=8^naU~9jv&nXa{EGRs2F2*Vkj|edx`3Ud zJ!~WZrzjx?A)?$6?`7L=m{d9m$oOdWU3hkD2lKhwXE7_v-aLqhZ2m;b{wmGQ7gZ9ifX_dc~J^K=?L1RV$H-p zu@eYB^ZGII><%j}(1Qn{@??W$YD}M(e9Y@4Vn5IXE6AAswoymRj* z;X*>&Dbv9@aFiwFR7~QWnRqN)vQF3kY`%y2aihQ0Ih`HE?M=iFW&>5DxH|m6=pM@x z%(-O}Y&zdS{XnyB-;N{T@;Bh&QFH@{U_GsXm*t7mp6$9VJmMTqRT$&VG4n2@HTLW@ zKyWscAO=_^GtLpxad=3gpX?HECZ?s>OI36(b1;n6+Rb14q`iSC1lq)2&Eip1*)RqD z@rcY248voSbWNAcU=JB0!1qq0%W-Die--!RxaO$A~Cn7eh!;AW~y$m*zoHw3Lw z<499|PyZ56(%0JZvL194x0TK?z5NdI*ESR?yV-Vk8WG`5*nzV@h;6D*(1W@~<0P}e z0H_)lV~Yu&hQPB~hbVJ^3TW?`X&2?lAbpCGj`A3(vLY}rVwpj%l7kWW6Pt0>kfxEhK`+-e z4kw5L!!-w3c7g7%x0k~p-vjIzBt@$=Syk58zXHmq7pN9+fngg6d_VB$XoF$}#4&vK z+E8(d%xUU>)r{18^opclVp%3E;y2%&zyznI$)Og`O@iPVX@D~4^$n-90|Y~916qe6 z(QrAbh)Kd5j8%HdSZ4rwqn^C}F?BKDSQ z>L;rVa08fbpsAdS!l@=Y|Fmo^AQl8UsWOne(uHpEZ!ozXB)pP+)y#B@^NFw-8YqJc ztO?Z^`S}=%l&3OBK>}sMad9A11sY4grBrrH0iW>tq;5<1#zZYC+y$v18|78P;3SHc ze2Xg6q^rNM!{O5X(4ihRKr^TXoIpv8ibz@_$G`%A@wEY-+^Q)(fZxE+Y5V36v8m?e z6>3YMI$lxyj2LS5(|QmV*b*M{D_iB?LUJ}$%m}kKtG0q^*D>k`nJP9y-k_Qo4O?-` zln6#k@|+TLuxb#vcsAX8+kKgtkc8b4Z^pro^9cdg_YBZm@Zw?E%*36Yks3@E+%A}&jj1ELW-Zxb|aTFbQ@MgWqg0&EarTxJq_cWjIJ>|ETKhS-(sgxjc;J|9qJ{VM}^AD zAb{~kV(SU^UgUcfDuJz*EvieUF%e?ze)Rvg`ETntAKD3SvIah-`KJ%sPbIH6v_JUe z!KiS~#THJJvMDx%t_@9)ZZP9YtC~O@&rG{VtR_jiVW#@i9$fo?QHx}!N=C}_e}Z%o z69i7V-MX18J>b)L1L%hFl#e?s$X&H<^1t5C}4hdk%~Cv(8w)%a+DI8Ns-pLxXD7QnA(DbYT(NL zRZuxiyNW6ImskIR=E|H5^_L_AB_jAzWMmm=!$-_1gB>DZw~adTiG@8Rb@}|2fNrJW53t(<~%T=CL*- zUr~4=s)7u_#zAG{X;uTG8o}~RXwwca{yqHqt{g(EapyRV_A-T$zU(`VI;%qJ!lp*< zWYYM!G}1-jp;C}2X&cvMEp`e!D2Y=zN&E-WwJ>@fb_TjQF&oFiS#}AKN zv9xA{prRF~LCFC;5i$`&5{3a)%v<{#Nf~ZXIyxF1N3Q`tV1Hm7{_PRRFfoqj8EO^h ztuPH5gjzVJY)Vh!3co~IzU0E| zb!CUx&{GaJ=urLBDvsrYZ-Uc28;V)D?QcpSW{M3U2cnZ-0dHL zc#i4Yt?=nry}B1lWe>YzjCPO;CdCwy(0F5*rb^(O=sXY3BNm)I-zN4Yq@{Gcb-Zqo z^3u`>^4RYnbD6@ZqH=cvHWTQ?7#E2Rxh!xoT{sRDTrwfIj9z}OQwpn)NWi?t;Q z()4#lrdW<)haFK2!M`5^T&=GOM)0czY>-xit zdraeg!NXnhhDdehN|b#7MzN;_CK+M?KX(70%6HDNtKmLlbB<%(^ZN!(t;Xdr^rvwI z@t5_41f%ZF-gDc%%X2Hml|F1&WGD6d?Rlmx=l0!%J6kLtYR73D|DyY-*giID>(m=u z(=E5bbhCzGSz{7S!r2WD+MZp*%1%WS&0>?)R^6y}B(J%TsTCeXdGJuw>hNwX@I5gQ zJu(WXmZmp~=YH;_hMVknn}&4|&Z zHMv7>@t{x&-Z9a}5)pRlCabBS_}^#URZnMr3fiP+FYP*Rc66E=vO2mg6Cz@1zUX#hYq}xXtHKid&{77sg-^ z+>LpC{i|*dPuXiLjQ{FFxT3jgbFC^tUCjis;d7CAuqxR?5j;lE(8*~YVaMW3qNys;oL{9<&GKx)Guw#L^HQP#aYFXt%!ctVXC$Hl zE8R9%eIRtcjz_qEEb&NeJrEJB*dSTUz>hcWJz|sn!Y^(N4KT2R%=@ghiqxIR+;LJJ z?n(Y(0eG`~z=bMS=S=F*o91!Q>=O?zY2PG9(7<*i6$%9)*ugk4ljA=+Gte&=)=hY! zL)aGQ$B(BD_VD$_C_c_uCOm`S1ZN@?h$5&wxef=h>o(hlD)ZfI1oh{%;jHXQr~1I> zh6WvuM_qaB`&LDuclCyg!3)c^0)2$3BomC?WE8pg3;M}#mc^bsa$#{wy}nR&|0Ld@ zo^fS!)~H)j6f)?+`wQ_F3OgKTcFst*?G%=#M<_#-Ib^9pxSQCBYXM4#glN6GfeM{m zUB@7y2iau6Hg$4z8~DG!mLOxyI(b79Hj**V7&lgM7#NExJ-Al!{G-&52|}IAV6G#? z%x$FqiM#}~-|+@%i*eErYF!9boue9ymCiZQlHbD8oLduZR$Wowt=XM_6+AyRofNlU zsrvc-=6wS%zS?uyHp@9|%ZAv-5RCwP^32x;qd=k~#F2^q2Xph?A3(gzi!BY>l3>@w zj$p2Psd2g%1ob@9z0HHa(iO(V!a>ib80ty)91Ht-Yv%ugzhUq!84;EQiVU5w2+j{L zW&g^IyJpDJ&>EFYtTbzm_v-XuhRl3gLPS)~$n{1MU`xVN!====+Dr`$E*lx;YmoN| z^yW736R5aP?X=@!UBP)J{hIC6GcY8GlS4UJ3%Jk+Z$JOz+UL~JcQ0}+G@=;}EzaHP zc(X)3zit=KyN3Ex>^ognXnt#07uWUzo58pBb%?77ad33F85Mqv3(4vM!NVHeSq(bt zl!JzIT0iht@iOLjknu7D;SMeh7iU6LQN(@Xta+(4{D8HYRJYUcug=9#-?5WekMnsM zWgF^GEU-;LR-i@2nO@cfgerS+C11M;@ZK;Sx(%a-(r;F1U*s{9V`HmfLpP z7{0s3Uaa zBM*I-kM;{3#jnv(3><_Qs_!VfZJ)7)E|_(@?iOV4j@pV`KCHr8qr0q;zjxQ|6Ud?5 zSk!R~zpQw*1~87sASQ{a_zTn3$%QTCO+hIk=*o+9$Om!Q&eSGq?Y^@7HU9Xz#1Qx@ z=SWkC577uX?rl@fA#PKGsz*ZiLrf5yfd4dE%=Cc5Wute^wq-U!tmrzD!j`|Ic%UYt!(gUi z957nAEz0ra}f0C$@(}Y~WX-ql~p#hmCX=-Fix~9dXOyOH5|@=S3LonkReoin;h*G{V_cR^nJj zA_}UWKbi`gMR*vT_b&X~BvV3TK*ZMDL*N5FJ`;W4JSuP7C;bEWrDA*2cy|M(Ib1m7 zDVjlch5t$-5!CB-&jS-QenC$_W880*F`US(MLkT?zEAio7m2-^b(%U0w9#exRIq*U z1_8DM$-mfR{+Gu*sZts5hzS7L8U6oO+yCL1T^)?g%>Qej9`kI)ZH*?~KBD@XU=+cG z#syzRBZ1vFl1C0zUcLX=ZKv}kFU91Rd!bQ-ZwtGstE=-? zRkvor%Jp443RP&@y6r5hOwnL}F6;i+?y1h!y52IQR-^XBr)y8APTfdJUAfrYEFPcN z>qBTaRfUAEWb-H#rK`Pjl#60Y+euBy_Gz~}DIPy7)*#oh&1y@IacZk>x|-PDe#@u4 z&^;WN##E1_{^#-7^W`f0(R{b}ZU3^;BTZe^PjRBsLkqv`fRly;RewsW?bwS-&!y?O zeK)l#J1;VDE}nasr@ri9#V=e~AJ^?+tvfeL-^zoL)A&EzYs2lNRB4lK_NvjxKOS?A z(>JG!JU=jtq2CGK;O%90PgS&?=B~h< zakavJ3y;2se6+NmPdg4P^0ni#6uU$IY;yi7K0HlA_gbCg1~V>a&HwF9Ev1S8dg_JxS#%go!=->}Rn z|2#$!Lssr=0%RtvgwZZ6RdY!$5Vq6D+n(DDrcd<=c!YRRBsBH{LAa0;G6?|L=b_GVtaaDw6aC}Vq_4l- zHQ8!rF&3j?VY~UV!{YjoE#)*H0vY)U^XbR2HQ^pXLJL7wEv?%e(SDIe;6fn{{kjAV zn2;)PS<9`zJ@r$r$`bI_NnQx`KUk|dgW4n&eKL^mz{^X!k1}6wr1#izs!aB4>PAZ~ zK|63YC09xWiVSYsSJlAV*jj8TnQb;NQdd#7q>H0xf=#aoyBm$|S8{W`*%Ciw;Vmdn$Mobu9-0*rN$kfXf zS{2b8RHP?NhfD_=Oo#?8ym`SlLv(1;S^i)Ln)^c?;}6?)TqKaDRwH&7Y8h}&@e2k( z@L*(@Sun4;8LTlui(H9e2UX07)?Ot|C0_d&)gkhTX9>C@LZ={vSmS`r3oH$Az``-6 zl(zkf&KI2`yYDEhlBLmUnSe`#;iUhBOgJLdABm7)7F-qz?$_DxW?LdUCVO+X2Cex3 z(gwy%9CkzI)xnPWvN*^p-+gAHE%s?@4Q|;bQ;P#|V*Owu1yovGyGoJxRRnr9>VFvB zOC{a$Z|1)5?9qUez4LqREPaYEen*-;UHfsg48_vHSG)P?D(CF<0A8qqO0RQ@W0|6t1klP9!xS?JxdOS}Y zcc#W8)vlL4Hq-<-G>cRi+dyRPAinlpGPE#rL?1vPHS2$XYNz_c{AsKUL3FOCc_9}L zkt~%|YfTWc%{x>RAGnmu8 z!=Ore7*t>{pwc0P2w1lJ*`Nq7?X8%{q-;Pa(D6ty(h;S6d*UkP7%OU#101>*!xU|= zhtVNS;H2P?qZ(A4s09kt1+k_J1+LzH`ie@z?bRxtXbJ{rv33GiFj&oW6Rk(||8RB= zL866ScW&FZZQHhO+qQ4pw(Y)c+qUi7w!71RlB(pZ${@+?tvZu4Sm)Hc_g?#1Wj9El zAV2dA4B?9qhV{mdjbjSQqe|yHWfN4v>?r)%FjK&;j7dIx4^@&3tHR#_m4$TnRTFt<%aj$?z1^oSYU2eWL}!nUrYf4&oW2{CJMcC1k=u^3i=ah z%?QO+6jHU`bF~b-_C({YZ;AWbc$do3r3p9L#c+X_DNQG15CRkJf9SMwH+~`%D|O9n7hU+2KXbH0U(HbUWom5a z=MhpN8hyIypy!smCQN*jY#*Mnd|uFg+eoCUeuUJKk)TFBZRrhkTc>U$_ROH0kWOk*RTE&MS)VlS-IA;PtG z)J$RLW!7U-c37>P+&5qMQkbDQO?Wn)wp9#l4D%B$cnJlT+1^lrz#n1>*yTv^0!23g z;l}J7;Mm~%7X!P7FjS0*a=&l4vPu|%IwAK1F}KC-4N{*4QHlmEqQ70nq3|sO#?PFo zZ2j)mPj!?&jgCxegIp9Lg<>l={oc0bg7iH?W`^kraC$SaSP{-D+iT`0(pcZ6v~Z8b zkI<)kium1Qlt_zvEh_hWZ7~3Y*D=4;d4)u>(+AZ1>g3Y-kniH!Ux%cjCD~_i7Pkmx zDxbL#luHu*zILT)+GC+B50yEAuLI*_`LIiR*-Lb{w4dQUt^j3XgCMJ^x@0m!Xi{=s z0f)Go%Cuc0Oapf^Ce0p=ZKKB3v_6aCw5oUFYkPGg=KFl)D`5CPq*#y-*Mlkny{&m<>-?u3pxhnEGPF@Kte8V5Nq z7pkx%MJ<31ZJAID;YSV_YKUD3q-2H&l6UC{?fETse4+I`goc`sHArcQL+ur0kAWd=y;d)O z*@v*Eh`~zXm;RCv^t3Krvhd0;+mBk9;886#3V1PW!JL&B1dKfrE4rr9SQ%+?0ZDr! zbO08PnlXTC6JHn!5cQHg^ntpX!?opxV_N^Ml_9nI$JF%Z!3Af#BfrL2L?L4qI3{~c z>uT|3)g&&6vYG+KKSYRDFX8f~b~n!VdI3pB!2qVrbqu)J+#(SsGa3Lm1{XlnkY*^f z1*5-`6LDo>rqj2;{g4qc&dG6()m2UgY5r8+ssd?7I>z8P7z*1klY)c5)LUL9C``m~ zk{XyR%YY^JQzpVqB<3W=1V%>c_LEy~5rTF>&0xs|m+s&aEl(q5()!6b*$EmRc`Fxi zP0YA6KLANK3J%0rg;R8D#DnjhRid*!viI6wqtp)I40Va{5W+8p&F>Nq3O!c}fHHH8 zOi0z~&GKxXK)Pn=bS2VgUSG(pQRi5fS94(gDIH_J&DH_Iow7%n7hRuWln^B-Lv$|k zPGb<2I!PmRGMl?~8{H`iD1C540>vSC^3-h#I0`=@R1Tr)EDdfo&(;*aN`%Re8SHw~ z2fY6SUNJ&WOWM|ArGHkWQS;p;&jTLqW(h}fpn$;9+>H5CnylK-N{7B`^n}};cV5Ce zt4~BSybM;n3FZr%i)AzpF$os%M1KMcQ0J83cSz+ww17(zW7q5G@ zqn98uii*TR5ggQo{ zKpub?pv0T$QTq%+0_Z`8aN<;cumE1=ma_hDa%iLuPGczr0!i|a{Hc7N zzkhDaTJGItRvEvK@Ar0`ewnsGmDOsTqs&J4wO3-C>ICugh)ObxXbyELPDaOVW|h3c_z@@;^tq{DA={N_i|5 zy2{Qla}L+YWJvBOMr7ZyN_0ReCLne~-$X+`ZB{dMP$wHR6xc4va!kn8?@o16OvSfD`gwK_hruq!Ajbx`S>!s8SzJW$=IX>Yu99x0Izk< zGgbywTT*d^lgm+JcbRc+`Lm!067dCtU>n-MxkK)1@n$?UA=(8fR*W_H^2PD}=1NC%-ewiYyW<%cL)lp8190i4# zc4-848~m3_v6&M|2c>P4&>#u}I-d)w$Oa>N>8|0I4+|sSroW(j17hyQ&S-<(LwZCU zokDQr@8TP^Ym~HQ9{~x;i!y$Y$=lZ5$2LT4RU6^W6`Yzi+(2E_Sn!O=B3%ki{5yrDPYQ#`lNxyjror%>WK8`fOU z4_MtF459bUQd+s#d0s~H(e$cvhEPVnYqBtEBw&Gv$+}t_`er9PL}SEOAQHlqsrDD| za@QoQffQR8Rg{UA4=iJQ5MsjH%2m=9?q^1hCu}rD9Mt*Zb_H3`wOo>H`&8Jg&`5)x zK2C$X#CNk(92w#5_ycj=xv|OE-0=SUEAszoYM=*E?)C}CMO_VY740Qa|sD7j} zj&tw*40CQH4_FYY7o4gaOpVxEfv={z5|3%-V21vJ2(*zH@6D<&YX!eIe};*+mwZ)t(Og%gJEgK?(dmX5K!CgjNJ8!}3J)P^>rFB=561qz3sJ$T( z_ZnKMe;@fgMCivHtl_@>*Q24!rY`GRWn5lEF52ZMY{GL*C#uuY5*n;(NgR@XZZArn z-}@a58S_xMQWj-ybo?%Uu*_um0j-tGa637iMX%F^i?USB6@9?i0vPb(V_)gh+ zMMSySPUaxrp-`>ddpZ2xQs#T>&Q%;bFA%u)D~S?mzO?o3ZGX;kBE#4#&(tXXP~oaR zTF)LecDI&b_sF)ALKVk9Yi+6Hu}}f&9pWp6Gz$%w%?}3nqVi!{1uH$ z?=apmYxaBqWOwA*?dC_xG~2>jv=v}FSotjh(|Kq#bhx%N%RDxuxSy&Aa?y|4sPX-8b*PIUX{10Feh+oB}ymYdIwh!|{4)hex<}xxj zF#aBu5VFD^4v{b6)rIr)*MR3cU9SCMVSihzEf1jxxS2WRiI8TE3u$v{h@qKr$U}`8 zlxBDkb6%Xv3A==GA%tus?z?nxFKENhJ%7}KRRuPdzqH^vsPpr>_9qv5!DH|mo@Kvf zR)a7_2-Ps^hjdxHL!&iDcoUT!35uYn%99?AYs-_k9Qx}z64~|OpfJ9`NNBL?{S$P8 zGxqgVKTp`z_rPSZ0jz4D7%b_1iUc`Ay9_nZ;-#-B*jZeE&Ph{d-M#?=`i+-4V$gi}Y;TJNB*^ z_yPD&M5=by$l>m9yan7ZVVCj$=!VyKGqkZZF?2EgUzF7Uow{qQJa2W#fZ+3@PUH7i za2gy$i@_F(b`>O3hZ90j@yNBvNLnz_nRfK+qsE4MmE%s>=;pH8%v?Q%6;`Dtbtioz z&vZr9+W?~K51aRZrQqjHxgeSe)yjyqdr`S6vxj#h2nJs zA`U+(-c0x`2pzWr8sjsq1d|pI;cAp#0&@sLNN~7uqJx~ABV22}TtF_15amTLK6)Mf za3ueC_O83`(5t97BE~w(pn69~$c#6!PZG(vMt@V*`G)6*|IEd0yJ3A1?z&BR7QgPf zlsw03q2LTT%bu3Rlu|B}g#Ch#ltZ2=O?S|OBV)MA0-^{Pm>}I`Cy#0%&delLPVgM5 z#o?@+qn^f%A9XK0`0=>DRsPUF6Mr#&Bdk=Gu&hqGnI%X-hoc8!q6+WBl}hZ zH+%}-COVt52Pej`orc)X4eC{WL?_s41vp$q@uYmJrTz*c#pG)f*}{NpehYkh|I`$YjTScRL|jLeh@88dNKzi+cz6rj=wh zOGs4)4Y(q&CsouguhFPE@onOpM(U$@$e<#URXVB*30{@#bm}rag?08#iURfz^h=~Y zP4pBxQC%p^D$I}_@aZqN+lSqRoC!2uk`$#5iq)j-Z^-UxmJ}N2Z0M!Zr#1Dx3e0*L zPHHI4u_^1^k(jiHnBc^tShXh+o|0gA3GV^>T37M(EYIezdk+H!2}O&-&7=gsM#NRh z+A#6Rhc=M}s2=`sa`N!y@W|-%?(y~Nb@27_A5uIXILtT5g{@{oy8%S6!2|AQxe>8S zGj}j(3xafpG!K2arUSJbsWmZ(ux$AlD0OPF8eO12e##&&WPA!?dNqi}J=n@h7tp$t zba09X1$_ck9~+5L@qBjjl}0;ag^rW~U`0xs{Kcd6;&4=@9S>n>Ft5eYJ$_Q$`1tET z52wgX2wd4CP)PEXtjbiG)M)b;9Fw#++}Wc6yEY7mc%=G3EPm`bd7Sq+z*+axNdpO~ z1^B1PWpuvI$}-UWm>)~XgooBq{E@QTn`4glPYXCkOVK_udjF6j1K%K|Usx%JtRHuehri!S zx)kFN)dCc&?wu!DH5$$8h>+H#Qu2z+284;wHJt>91hZc1C39uQVM%qbqQ0c$i!d z8PguUPeXlZ3(eo^wo(0<+XlWH)XpBd)(ckk&WnrmJDe|VRCj}3ccBykgf~&5)m8Ag zE;FF!egSJz5L%+CweD&=jCH=kQ=(yA(A;=>=w>og5m;nsz?0OJv7ruyfzW>1Ssjp( z)8Q7Pp!YGE9Vl92gQ5^E-cV4@6e3{PQ|O>};g;s$iw^|S8gF(7BDQ=t6423oJF;sL zvt|IP4D=EZ;)-RXLL3V~550+HHN+~BXpCmBzwdz4CYbMJl%wg;Ic0)EY3gNZO&|3Kx5bFMU-g7+LilAlWKfIp&C?>n&V(nMs)=aO z$qf{YNfDoPFmsOdyWhT_`y7O{WcIW2BjX=;>#ql|R!)AQ^N!<XuqGuqq!N?ur6mf49~zZ-P@Qvk$RKYakT?(?Cjl`$ zlD%pX5q!v3@?&IKpjfQ&bd0HBvo)*slgnGE#2vybds`}To6uqi&>%fMFtN1DmueX! zbAE@T^jEszu#ib?7+TI;X(bk6cZ#C|{k0gVLgw+97iYU{y=@J*Ahr~eLecEu;!nu+;t2EKT(@`c*Gt((^lrsNWWZ7NBB9d}icuQm zC@k7~3JyyEwdPF-4eIt7pV7L5?9GJl^B(OX)v%VgD8VWi4f>fu2|ker*g0l!QM~31 zZcQ*vp)hqH^lxdO^TQk1-#9qv{UNkjAJ&Rf&xVTiJ@-pTjjJp9-?Vsa1Sz_3MSd%Z zH@9Xa-ca`4mDc(NqgkYW;p`W)(yy6x(MlG-sb4uCct<<>`Mb(>fK4+!XzIY!ZOc)lwroE1>Kt5w{YOtkS;Eax<~&x6?P*OP?1nsV)co?{?!3%# z>ourA#k;TmkL&mK_UomI({rw_4;Sv}<-F@2z6$!j$)}wYTZ2>sp19N*ui1)QJAm#o zhVGR#z4druDZ;%_V9SBY{rBakk&H9wE-8>O06w**Vb~1NT_2$}1QtHVQ*%{$olZ?8 zPp!C`a<+wR|6$nKb0a2>=*|jNIZY;fOsgdJSytQ!)-k4cmLuqTR7b0=ByXd_#R7Te zoEEQhz5i5KF|Pzux8b&XYwbj|w$Xx+mLT#g3Q4Z%Njc329fO<&0E>^Ko8Qv_c+5sU zHt5VP1LGl;wgRb^?!NPcw*e)#2uz(xSkZtc@teF@sCNgQ=K#)&p>?;Z<$DrMc2&0rp_(Fc6wj$)|1XKZj7s2eLR zXNIwtQ2|Dc*c1ve1Z?%xev5W){e}==iUkf0YX_n{^n6v|%0VW7cBGH$whNodPOqat zZ^!Os0nw_i+TK!+sRb!B1c3X2FuzvgZd`9D203AA4t+PlW(d16H&=(DK*ZCTt~h1( ztUP7CqUmDiq3Rn_5bDx6CrXZl%@|X_1wB@ooXOA$b#*{s_&@n3JfqSiI4%wsh;Qt6 zM(#fzAdH)hiDG`r%2$T1WNVg*cKI_C))DfRZC(lX|b-cFXMLb zs??E{=guu$=Noa#JA`=|O<#R03b!A-dJ#8@7QS3GZV%5%LAmBA%NknvV{K5w$4nqB zep|+eclZ5k11k`0pb<+$@gzGn3{lQ{b8APLNQ1vph12w)b`!?sBW}`zVSi1PUV>_z z*1AZ`GW~Ui2Tekufsd=?og~S` zhpxF+k9>7V@DIUjl&E+~G*i zRie_D-kV9>Ltb0 z^WL65h;;tx0OKdRvXA$r1&?gDT-u`S@t%N8hN)-^1Why(+x1syTm5y+PFdcZrr@oR$&vp(@Jaiqj-G&UD&e3WTurZ zv$#~|Mhy?U7~~@+F!Mf!?UFneBYj*R5X&H%&ASsc#W}F$UJ%^ewKTC!Vpa(a^ZS=qUB zcFn}ninklq92&t-B1#Lm=kc8w`HKu`eTcDIxV8^IWo7 zU)QQ)?72ql_mJPn`z!gWpKHa(mCIQ>sRruNOC=6h#e^#jy~oG-!m6!axoe>%i2}Dn zlPK@xAj)diZjL8@b2r2(>|?iJJTJk${tL!8V|O9byP4D%9jsn268t5i#CQI)BDsoE zHDT(RHK2L@@tHO{nVwRiJWyV-_ko@|*ic6;lO^7xN)54;k~n@5<#yeZ^k+dP+D?~_VJ4fR%okvKdbeL%Ux<2pXKI_Mc{2p z-=8@cQg5yCo7C28Yj1jf4R%prxonV&R^Fy1R=grjt7l!P(o=JKUZUWBfnLF9USwev z;oe-o<=v(EpI@HiIRV&BdRoedf5>ocQfcc-OOm>vLGk zS@W18r=;;njp#X?8}r~Fp#Lm9Tg2Pm1c3km0)N{Sze{`o|J^|9VsCHbOmA%eKayPj z4{Zul50~EsuK)SK(%$aBk|zJC*jjHgAbi*AJ6h=5oM5%Ue;AAr6k)nl)3eyEQIM)$ zIv2{OMw7TRlm7UU_ZCZzrb7(z@w&h8%;KJ8pK^zkHpe(Zlmhi8!C5J{Kn3QSY*SP# zdbeqA^@Y9M>`78+Lea;#fuP}qh^kFgCW=<^cmTh4Hk{!=y!WRaKcUh@;jRD?8N*ZN z$AGW0#WdhauerDcD>SVrF}r1#9F0J24pSaxGplJT2j5^-vLCC|oYG}05NADsuowS1v8Bdf8vj8eIYX1KE-qbLQ1-jiETlTU z?piEN6@9F<%Vx|ME{jrHt-!1ZJP~b-n*MPV*kY4|A zaAPW@ohWW2-X^#(8cvR0zgAwm}oP9gsB#4XrN?aL1yxvjj9!VmHL z9*}SKidN>meyMmo3&C3oXA_Bx9{f~f)}S=jT(x;Z9E?ALrF9#*Lf~G^7<7%w885!K zgn+rFl(PYY*bwq4>0ML5Ms0G_us*ffnOU1QU;hK#?s0(G`@+MFr>RonXkfvVvE}#u`hD>}39ED0D=|@+7+FfDwG+{K zylwSFlx4XWssj*u~n$HF|0dv41 ze9^-k4olz&BV`AZ8GI)9E$K>f_KG*}AhdNAENDsjXByD0+$7SFxytnb7I2k28HznJ zpUG5oMDlNxWM9B(bqj&DqcjaOWwUTa$&Qd7dbvK<084f<7qzUT$j<4RfYw@8B5)Z= zOORqZny9dYhE&eN7gXd1*BZha&~K?sCoY!&_^w$5q&{#giZgpsgH|yJieY=&*dM9& zxOzI+#<8N|!ETOSAe8o?2u6NO)yJhwUd#5V?r1CkKM-IMh+4?#@d|##bRTO0rx3L`EgRV^N1(Y}0vS0WeA3VV-5j`)IFNdA}B;n{yq#}!>EdjBX(0~)~;Mkf> zhvq=2ryKb|jOD*-IdL_P+jldBiPN;dC+HD8ZqWVgbMds4IB_z^a*8tmTg#V{X{-M= za{0uHt>?;+b$YAZJdTagx4F5+s)(l!hc9W zzdlQ<7whS<*rJk#x|>T#9ITCb5V};K91FE~3faF`YipiU|C=kgL75#m6)QMfOAx6h zpOAy{ot!45e^KbN2FviYqrWZxne?BYE;qlznw{ zW$KB0C$=VoWL9wuZ9S3eB-Kud?Xc+Q8(?Wcby;eOD}MnTIoSVe*_tdM^+C@KyMJG2xXP_mAL*lPZ z>hbLbRjxjcXc0@?Yz69LH2EE(8_)N3mi=DZ*VotCbW{@gja;F5U6Fd7d{J6m9`DcF z&3xmjy?kzN&+CWcqe*+Z?13m(^ys0gONLAmjUGvn1qU|i5UV*@Gz5Pprq}4>bPn{OIn% z9TO)atifw5d2jY-&CkjB`T6*!`i(*A?5@ad>%;8M_l6KB5(jH?n`4ae;j%gNml07?$3k&4Bi*~*A4&o{Nc~b&()=` z^TRZIo!R0M$}?jA@YU9^|Bdg%G(~%O?V%$V5YF|$&(O9-+Z5p7SCl50#Y`Oku1k?6 zPoQMu5z&{63~n3*#e9Q*v&PheAO0TJFC}X6+|<8EOJ}wGiaRAd!+d1@(fW*qe;_f z8Pa=E)k#ZGg^;S(SD-0knJf1o%7Y7)d=tB{ZxqK~s5)es%OUB|x)_M6zDJY^ATjTW zG(Gc^0)w7IXJnXx)3{#0>$v^v)vHgFQ_jA9eVDmf7X(b)6coY3#XC6XH0XT>_!Cw{ z)1!gI^SwxDzaHb}mlrD%hT|nM^@4Fyq0Pi=lFq-x=ug4uFObf!z~~=dM87c1(SMis zTfOy+r3$ZokOakqg9X1?682>0wCi|C%w(@!S8-qA|L`q zC?m23$`AW!tN>z#yV8PyaCq=(n+=j^nLq}=9jbD5Me>b!hK%}V%jEOIxb;L1nf$I# z4$}m&>X-FF7+Z8knxP{K|AR^^B8uM|ih#iQoJbo;NPVgA&vHZp#s!)#g@B>KxShZP z5JDdtDbfw7==xngbsYPC{c;cHCGZq`Tio~HloI3MVA0g+zlqi<^x%rTuUdEF5gGvX zIjxU{37tstjHdDH`gfJR-vazGpljX~Lp)rBm|)4{mo$AM*%AOM6qR@AnA>;S{(g9h zi~98_>?x4L=O$-aFo_cYh%#shPGnqUGM*j+pPO|OZ!+GSW;yahm>=Fqqqjc(C<;}E z^{lcfA!JN6w#OI`NKVYh)t~Jn6*>vJDHMc5jzD64&Gb0z2C(MTH3tEHWQ#UiSO4(+ zJ*mH&lNf$NPKH$*>M-#9Vwt9dp{0+3qkv&^3bsbP8|=IX&QM>Y>WR$Z`&ZUT!B1w? zm;|kXIY3*-yJ3O?56&Djf!&8LmXzGD4=EOge=rURYi$uapW9%D8-(%)RpeUr&==?t zK2Xac%fK%HMT52=u@4u<0Njg%0jD%heVher)(GrU_3z**U%-hj7tXqqln$lt(flvV zp0I9&SqQ8P2ov=CT@J5?V}P<~dvSGE4_|Z~1p#m~mxycMJT$fUvY&7N9u#rDgQPom zo585`A;@{R#AVL`MG9WQ=F8Ut*L( zBUcFui8$^rGZvFWjj&FRxM3&g<(7iQSQz}@RmPy~X5Uh5Yep*G}(iIZW>-pd6f^&+Oz7Kl_53DGDabwAIA&|s~HPGF~2{g^N7SS zxEyQ`kd)KOO%vnqY?!IGOJuLjt>o_XPS%Bq1Ka(&C8ip}fn|faBI};iQ`vax))V=( zV(5x&5O(a|&;=IKy)k5}VP62ARo8t*dWNge1&PXl zeS5yMN+nmqD&bUq*CalOq6ZnW1gfN6f5PBb1zijUDX{x>r9w@vMWiv9owQA(dcEK5 z2L=$-jdFA<5Wm6b>TEe=m|FCu127T__H$k#731IW zlfuZL?jDj$S^Cf`lnxjRZ*rHy1xm@dv-f=W2avSW3%zadlT^hyFxKd{dAie0ayqV} z5GRVvIDfLrAJ};O*$e-epcoFENo#7(ZyG|RIYSx(NATy#)qS=AYt!flC|_d#BY$`s zW#g8EgA%M6^0+tsZ~CF!Ldij{jjzOo3)KMb96_rUdkAEv6eeXgPIYbh;4Ry>svtuk z*pzK0?Ozkp*ZVUli-%1u+|!++$Dqyf z0B>48vOY^N;2r}7=y@#`3<`;W-FRZzz_CV?Y@Jc%VlkYnx^tAK$?QYfoH<8cS7YKg z7I9BnbbMK}qGOJ6c>2^uLgTJg%PBgR2@wG7`Vzuyy}kt!z+<<}lOzlG4Dx&&WWLiw zQUj{pqNiSw^ISPhQ)2w6y8Y6r82YJFVwrWIVZ?l+WR?{WnjuvUBegn#hm%Upf~5rw z@Fm5Ps;ro}7JAS|;##cmE1E5qS|_yTs8d$GslUs)W~SF~V}}DWQ+BY8oZ2^m$T;Nm zzSEtRrRI)*QDl3a=&R8x-7ucY^SZTc!!Cq+U-0a@)P3$in}npvWk zN*o5UV9#Oq8V`Fec}}Kn8IsX3qQQ}j5^yuQ^WIOAyQxo2IHWsTJaYF*fp{5I{|+(I z)|;#`Fu;B7e5Obr%Z`c<B_Vzl4a9{1W~O+ ze_{o}6}{MX%6Kf>ra^4ZpKO%spy6pXT@~E7rd*L5Gh3wkOf)-Pbnta?JDhDPu2;O zzK0CrOC8E4%5%he(0rU*3T;aY+zG+av^KgPh_!g%a09bhOJ; zy-4NuG-7yUT9_c;&$@gLazNBc<-C zp}<++m-pBTE|59FwoW2JRaBf!8g`O9V8@yceeWA)$MD2^S;#m*1cl`!HdtHp#p-l# zPLF=OEoYR4arML{O@-*>y{g!7qNHOx(wxiw?mpujkrS1a%Bs{U!!$Py^!7kLYp4R> zFdI`Nc0{i?1#MU`x6WZw4U^!{_(2s zOnmC`$4L7Mq<5Mxk^Y$rbM`DVuGJq82`n2ime5&D2f`j7R|f!**H1=wc+y@4rb;{+ zwcpaeR{yZoDIVAs0jg*EPfp+8S07Kgi_!7+rqVe~%Zdp`1%sZcTO#>f3YZ(u_lwO| z@;W*FPhPL@``>yh?RJ-Z_F1PvV`N7^*8H>~N)86<>(7SMF*SLS&IBDpy_KYmjqxsu^fpXGDLA()nJ7u@sfUFF2f}A>`i2TPzshxr}AD ziar(mHuCZ`A-+YfJo;k#psZ7vEx6(^ciP`TcF6?l`dK#tRrs--&<#@e-M+_D(PHZA ztSba#)4?cdJ53Q-=++DwH!B}FJzB@DhvNYTIg&hzOXg8wnqhhWY&m|E6RFHn`f7-5 zgn*xH9LpA2m_SeiKuV&}SU$!b_I!-BSFhAq3tZ`rECO%lXix`X;Sq9;hgx2=svM6+ zP8;ZnxsjRNEFpAPO=D3P?7~~FX*6jAt*vRXmk^yc56(1n#?~&_ncm)B=`gjJ*37a8 zUcAxv(uYwaU*e=aPd;p5&edvhjZPH}$JKSted8^z+aJkOa8Dn@7{J#H)Lu)9Z#+N8 zLAt|~rj$4l26AVOQA8N&gWj@A$5V%vq;$<-6{yzfFQWEn!K}mVRLfY59@21b#v5^G zBwPo#mnP1y&p6Y0$z0D@e6zzq;9OFVMJ!x27;b5@K3Xvu1+w}q%X%MBzUuHY>g(nlg(lC$=tM-%GQr5Z8~FxiF^hR_e7q<+IwYo71bP`{ zG5PLLlc8oru_0F$yXwghao3e!6Q@MvoBAtnILTgmXW+0Qr3L#bMZQ_Nh+*|bKgU-* z1z=4vU{J^()@bBMQekO=BE%?d)P5pNvC`?%t#O)YH$*J&J#^7K)5HjA9E5R!J6@bx zdWB##f@{=7Ia)?y*}PQU3dT!HO+MWyg!^ckaUL>XhS%^8kR6bHtTBeE?|#$7Wd0#K zKt3Qi0fPkCBowt*!8353StS%dJo5ZLt?Ee_?c^0I65`8>w+bom7P<$cGA6}Fwwsb;kWMKi1-N=-{Dsw?TE+<+mx38nAvo(0S-&$9ve7A2AK`I z*rY)t^k$Ri5=i1q8T4w1+Vs4ffi-JI4$ywF@nE2?^N4gH_)+6#SaBTOK;bDqA_~5r zY>FT#)W2k;W$qPKU0^5m%aat}D$nB+u}w*sKY#6yCnvUzp8W~by2c{_1W({US@jd$ z#HaGMH-@$M z!z$^8Ez%*w6&enZHR)mL*U9Bf{y+x}?UUq|K9I_-{3SB#=ARR$yCyFMPbp8=>8}Z2 z>gmr{z|sUDc{hlfRCueuy5Z;ce0V-OPg+be|M*CEFleKo>?-ykVLWRtw=;u`OAse* zpMz~%L<20M;8l_?snzw=in_pCBqyU_;yzK9b|C;>ih@|0fVb%e&;-iDD>${xXVCN; zy=rpQ&~4dFg`ag`B4TX_rCgAfG@PG7uWE?Kq0uOIYw(!pVTxj#&gV;%(*zJK-r;+@ zW@;D=m>RA**v%hiNDvX8&o=oKW2d=Xw*b??bk*1*^Cl1_>0XUt;CMef!(a3tqkw2I zk%3~=?C)g&AO0LPg(n#P8SIEexETGKOm*)Qi>3pN=|} zm)Gm|f4{yo$)ngmzhL+G|Ne*m9QWIu+h_iINz#}9d3oA&|A8!j}~em$i?5X}*nM|0)`f{Jku+piTc#<~%`H7lRs^g^aU z+!0oHmO>>&rotL)NBYj~lI# zT%Ty0bb4b*Yz*WQIJiw^T9l-Qs0|`$3N~qR2V0a8BY$KqrX>^o8p4mxrN+e3hbX$ftXjTDT%2aS_o;A?db3Ryqg8O&= z!5!SMSH_nB+uHP6duSV!^LByx*MV9(vmqQT*Lt5$P5D)ziEQA^RChtY?(AuvGQ+X6 z!&UI0=xKH9f z?#oq}FEc)l?5GIx%|ht^^(ZzU(@BUgJ0^~NKOf@5@*l@(;VE(8eDi=2V>a3obD zQ9Y5Hf4nafF`Da~dNh~me%^KNT#H=m(o>d$8vmx7RorXKQrM~}gv|SX=`C{DTQu_O z-oenUT|%&R3WJm7`>F>Saw~^s#UqMzZIuHF*@G#Z3hn0@@m@InKdEJ#)UKzO@JnC1 zJmra~);7sD9-mc_h|t1YaLOoUvN=3d7}5qQfvR9?p7@$2pL!=erX!{lu^Xd_XcY|g zvFUBbrut~jf3d(StS1~N7dN~oU37FFmU?>VN4OhfPYWW^m;;m|pIhxf(5D=Y7G+!e zW4)aMg)~XI+?fqf{~KfP7^GX%Y>T#S+qP}n?$x%j+O}=mwr#Jrjn%e&`hE947bm_Q z_x`EKnonlVh#4_wJykiz$lbqH8gj?`<9fjCPE@#fPGKIv=@yks2<)2e5KBgK?4oMU zHM6=AYA$s*@T$obd;HFof@Y*8#1B~{>1DT90R!CwBcti2V26V}>e(i@t;x)vU%yHJ z+RkwCx@fsPKaVyNQqcCrHQ${^S$ekt>Rp4;7}%KWbQOiomGd|RzXnWxwG_wjwLQm| z`rhce+!n%j`NJrcR+O%(S*U6Y19vP4>IPmo9jYeIde6yOk%C{iBxa99yIeDqXA@qG zThE&z{JrL;1K>7uMqa+@*UqCRzwn>8P8!+Zaw~CEw#+uEFna$j^CP~^?GjQB*9qB6 zL)JmutfLd&dsfrm4M$q}vLO)YyZU_i$l?b2ye;Jgn$0?UK+DXobhPx9yxuimS1(j6 zXSj0OZ1Pg}NX0>G{`B|5wP>@_Y_@{QD$QDSl)lzWc)K2Q^AX6Y@j%B{+nnflojtp8 z>VE3)tb33o^~KEv?-@ws8@iP+6xw5G9_5S1Vl_xDxcZIxps53DLE>~RC0<{cJ=C0< zdN^eV44hf6q2=3WPgMD7V_L=+P3Hyq0w1*R+4&r+cRGTQ%nJHmbSD;y&OyjpwXyJ# z31J8WQ6;8FStu;~iy%>m*6VPp{sJvn3W7#5ASnz0zp31L#ZN2wC{+q0)CrAXCbj=y zCY$pl)h9?pn^Xy5R@(lT<2p}%)RK3Jzrx7bITzJ`2>LfwGHjz z`FR54DOIlcMy`plB0ih{q5alqg-fTgO_n!ox`Ad$zh9nRJfBI87Y=nWJx0U?MV_W2 zUWfqs?NkObp4PDYjcBIIAEY&Fncy(bUTHtXJxUR{vplZ(vSei(UKda#1Q7C0c6Evx(jD1iv*s2iXKrW z-DYHkl7gK-Bgi>(L1rv_n9;XUWQ)A8&ho-r3kuIH|7|LB*9dJbbch4xUs;rSVx8rL zbd){=nEX4lG$-5ozde6~7KQObJ4%-*Apc3CY#;^ke^?+4u-t8;@>C<+CH-Bn9CqhqR%a9d26!e1^j~PT;{)xSnoyIz2rb5Ff6_B#z;_ zp;5OY;+y6?XegZ2Pg~S&*HZNiTt1Gv=f7mE?0jhoqGqFA;*&ZM8L}M;`0y=GF(qpO z)OaZJne)2I=K$_Jw3J}1_?Rq4tfhwb`dAVGENDqR$^}Z=QDYb8#%wlGB5EfDMp2?<(-Ktf+a(<)D93NOBShKJ>hI58pp{Z+q9UeHX=y*F*= zp9vvBogNM{`Wt%Ka{Ad4{?kDc*Y)7M#@IHd+WCgfNQB%9`BEw?+PBQuy5M*J%3%{- z3t5QG*wUhdoqzf5DG7Nzv`%L6DYUr@PKKZ2;GZ+|<^Yvs-ii(UO}yu;8`)*Ob)ZV- z{L`#8v099mnbw}Jpio)Ru6VkqL+*A{$J!Iq1HZewP=elQ zI<*Vxud5^NAuLUDbxqQXtW1kkmtsbp{Tg%g3GUZosa@2q;vwY{m#{9wLsKSseD`-D z`5AJI=!SLY;hgr65b%6N5?A8aDbyC4w}-t}ns>G$Kd#effbf1QfMM-((>wX621e1B zu$`it#OP0B{A)NKplZJj1a}~U_O;DTbL)DLAv?Pxrs%DXZt#nl$?mth?lmzhUYpEm zEQZv~Rr~71of7InYrP}Iy~;%oma>mB0c}rKQl2^|Al8bwfJ!QpGQ+~lvpADqsX|3; ztg1vu+Q~{qaD+=lupps^MKL=vtW4rNJ&r~5We6hc11n2$6Vetw=2$>Y{^JW0v2#(3 z8QC`C0qbLA3A`CPpBzPet54}gfF`85EC%-*&dBi1=)>TdBh%Tm_?xYj7+T-2`b9a)*Uq-V*Wjrh{Y2`E`mLV}|Bcd{ zj8Sx>Ey?i9hnmr=8MGuOjQ6$T#VRtP_*{U_%Z5LtC(g8K2P8@i4CmbHN^4z>t=e|5 zqS|BRDz(a!^akor3RmwiYv5>5IZbCC-H#Y=4yr58U_}#t!bd?8;^M(wq zIHM{PoBSA5F!UGej9+DuW-LFwnUquuOol=FD=Jv>g%>13^H5hR5DBf0X-kT<`K`=! zNE%6yo(J)=lOn|V=s6Um+wfy2M+0tvkZZsrT7LT6JiE)vDDA#w9b8A zj?`gqRjk^J*#XDO0jDKPHz{=sgxB7-hqrC z#POg8_fxrN4C(>oe#F2$eQ!BDtom3>O@ns4MXAIPFZxyM=roLuOl`p|Sin08K`5K6 z6eIOhKVV#QBEf!0g z<32eV>6YbepP#3yqduool2dnP@9d&u|3VwKv!3)Q@r8P)=2fA@0{z>d`Evin2FvyJ zL$<23D-yM3kY@AF+b$M$x{5BOAyw69xJW75bIC&0T&fj-F#o>;0~N zU+ewua;0Uh`<)v}7UE6#XL7GL-bnA* z<4bczYvp*|O32+xSNlDJ8hO`!ZcyvEFrRvbQHatYr#ZdWXoYdS)UxMLuEGr5)Z5N( z_@njwK_~ESr<33A5UOTqe0k>Xtudk-+24_EqxYnYrEhUx@`e@jjc3wMTfz+&O7N^RJTj-?B|E90H+PMX#cEMaRhspT%yZSBG)sRYRxv(s4h3RIsaMHBG?wf1;|wG zZ+?25@a(9Dcye#K$hOM#u!M!xLm}0)3Ybyva#*O~73DvlJV*W3I;5xIaxt@A9senVK`n2g0%vTIoBws7pl zV!kELY`MXe%K-;;50PPcQ*#x1lSNf2WvCU{cr~c0Wo5t1= zL|}bW^?wep>%sC*W7J`)0c@wv>}XBz105W*qukqhiUsfuQ>P)c*^tkHy^;AY+CTE9 z?<&^m^pOg|Mdx^HJ$QjURi#V?V^O(EIOC*;lP;yON?!K!^(z9MrgvB#mEhJxT*~Fn z3x8EyP7=6Rrf7ldG%gZYR%ujFbY^GpICAr)?&&q+#P)=l;xr;+Sgnd)jLs`pH>FQM z3@?YasbSAp?@B^va4pd$QSC%ARiHf-$3-sXu*rpvv&b(qmY?d_4EVRs!diK-^Djx^ zn!nppzz$4gmcgasGoGC5eY;rDroR5YJm1Ob_56BUN<N`y3IA=9zYBnAD zxxuatT1D=!mZye$HoTwIRgY}l)HpqsD-i&L3#J1rC#!q=aAqPzJh@C}P#&MBQL$#X z5SlF1Iv=Cgz1TPk8UUMAN>g0rZ0Dk8zF-UQc zl42_x{Q$fBb!!^`=S0MiHsi=`AxAK21@Sq3NOp(DZ$B zMCqv5zhB&TtH^iO@=v3ME|)E@R~2fXbah|t2AGpcZ^J+}NB1M>053$Z)4nNU5ts>5 z>%u0TPype_|NA7qJrgo6grpC;dq}`8Y_K0-hw=ijhArF`4LhQ*{bHV5^X{6o%2PzT zD8&rr!CDmgDm119Xr-wWtOi!A#W3#44IMJmic$t%FpHL9blsi}7sy#YexMoY=DYxS zls&L-GO8ur|GO$mI^%B?XjEc?ycWkfe%uC}qqGJ@nGI_5y)o4DXuco8ZVT(?04TXO z?v&Z76QcbFldWdYjGLDNk$&WG*8@wLvCNz-MRR0p#;#}V09k9>_=hl0MxErrsgw+s z!sasPn>CPM4kZT^xEG2x%e>}r$Wkz6{ke!qTtb_pYB0s=AO~=gTce{J();cM?p|=( zjvtp)S}fBq)d~3K>@KRvy$dw2ZX>mv#?Sg|=>?(hEe`of@J;@=ZdAkFCz zC#dXMDSV<^kMExYHk+emojzRWKWCGX9p{6j+~a=Djd6jojn+xejAuWJjc`8r^eo=) zO|F-fCs?-8HGf2V)Vr;sZ**U4d_SK*;9WQ3tb%MR(|fpXg{0XS{A;HjX;o^6$R~x| z@3GUj4qH}A6XBk!^>?5=42j>>oMR9p=BZ)yZ7gKZ;&d|-=ku$0%L~_7%QjMfy2YQ5 zcUYptTb2Gi#wStSc`LmnxFc^x@lN{pg1)Bh9+kqdOKF34b33CXMqbyF6N3#bldkth zc2I?LTRGB(veqv^SjPWsG3fv)ZCMFPm@5z7xNtHg^y&&!k( zE$@;GH3t#FgO)-R6UP|cXKZICbNG({zCVK4QecvS$B-^hQ}?Kwti0; zm9Q}fI@`JYl`?T|(HEXsRA@UCZN*_TnDl{NoQLLXmCfv`W_ep`QfkZe_LSTCia6V( z`S*-qEzo#JrJ?gqliI9eP^fLaVdi$O>*}k@W({C;^aiTHz~=qdiPU?|w<;pPz7Amn z0iFsikXFBYQuD}%wg2@Ah_R*D|qTCWt+oRfLR(V#INS!pc@=gB?ooDdD(Dki7a}0Sz5=3~k`v)F?s8A(Jj1{g8t1I)ckDlZB zo%vZ|>?HwqD@m{#`uB^itYy-tZZ=mr9=vNJmu#e%Dz1WHfrFMt=CjgFjTQzBXat^% zzCC^4U~p}pN{Tow-)gJJai8qo!IehD?WfSyV}y4c3`@5SU-EgXuAfF(@AyQvgBxEr zE&SGZWOzk4E#H7TAl-rPL(X+x(3>|;>h9;2?HBIbw^H!pzkyH~gL+yD2M2utAHXkG zwrM(fa7=E8_jhk|;oK+pJ@!>qOYCQGp^kB=*DDZSX7v5GJhhsSK(|FMT5-Cm;B+}C zA>Fwo-PYw@>K8%|C|L{VVBi1>Fs{u{K|4Lg@DEV&;04}AJ=#U2!e@Rc0!jCka8;3| zhrg!C4*K&(e-{s)nPSpU4c-(UO6&F6IADE3KeLQ*3B2R(E=f=EXLtqB$}n=9o8_t( zko|+yArhrjdy{`2`iym!^H8lC{XO}i}O9C7MC~M&(>Ktev1$c4!1Jxm^{0h?> z69NU+$F%ZJRC%^!3VrubEW--%l6y!Cj2d_JOJPbn3$8zQ07Gf*s}y#Pb`*wO28)WX ze_Vqb>ktk~a`Sh2`{7CW#ho;}5V=O^op1_t?+ugo1%AL@S6q&-J)M<`1Q`J+zVH6@ zwt19|R42RV=lPPPNA#Om`)_Oyd8|e=II7yFvy0pdMl0Nh@BFJEo*u)g83m+ow^Y%d zG=m6_*2!|v55h+&1csejTP~Oia4_L%R(UDtH^+t~4{5e?vHiv-eZr($8&XyZB%!`} zLfg^?SoSt&I2=c(=XzF7dXe;6>Oz(ciaylpJ;b>~-W4;KN~BXBx3`EziYwCU^aTLi zt93eTcF~QR7yEfTX)c;356Q;bMMB-S=rAB}WR=(m2w?`BDFe93y-Ot?BhlQsS+DFJT!Jmu^CYa_Yhzx zRy&5gw}3!F^shvtw9mjv5=!5ag1+A~0%PGWWRz7mfwS;!IiMtt?O6)ZLShb7Rl^-P zA*b2o5@M_OusV!7|6qO^7RRd^PUXa}I_I2>x1-s5M`XlfCf#0(cn(0ws4x!V395~n zW0;1(PbUSTR4=M-xxy-}r(Q7WHPajB#m2r*voV#xI&6mbc0QdmeD*=(HRk@FgD_v~ zU9uXF4=G~OZlFdn>B?)|17UD+Ch3wVptAkmrwqV_e3ENs&K*%MS2ynKPqgT0*1)j9#~9Q-u5!Ws@O!HP76Ea>YmkymLY2^*kJ^I2LB<*A)R660 zY$6kC(oTI)XTgI3d#M9nTa?HrGY()@sE&_(es>Fa_a<;NE~W%_!2zsC!WU~8gusz= z-qd;eJOI?g9BXypl0lCLBHmuGOB)R^Lc|Od4#SOCJ_vI#OhlA-yQEjLcXCE)5!FUU z^$q3?2oJN0MIt;f=P$OGAiEEyxI(=QpcxFsm;<>PD@Qkp+w^iQl^kX-#zyPBg;>*6 zNg?f8irA5*1B!50LQNDu>|U#BJ>%B5mi= zh)iuRNBh;n@h8zuyTR(6ci>v?7XdqkLh z7{)=R#D{Ov)`{$BcPO?MEiYC)rsj)ZGQUai-WMSwH`=#Hl3#d5BDZ=aGHk}ri)QN9 zK>XIPV7NF_J^&ne{L~*aHP(oT6?j>7N)J1L5HYnr5p%UL; z^RX`bMRPx^2(PX9Yk+N%{5hwY>vz+<6xCOGQixKCVSQ8c^0yNios&t?p#M4ZADfKh zU<9RfrI`M`)V5%T4)+)ia?@(ay$tez&gSVs=B;P}K@9TNmT)KC)}~M&Esw-c(0t*j zKM6@wA%ka0#%E#9?qg-u>0U6t59M1z+5FDU7U(YtrdXs4M<8^w(9Wojr0Q8BA_s5e zdDejm+rDb(?!Uo$6OcMOd--!<10psbO0uK$oege}OHP zCf$@w6|3?Nsq#EVdQjs#EvPv!boP7~GTxteeS-tPjDX#Edfb}b*gWt5`D>ou4whgY zPQu=Pd!R6F`>{Caaxe;iHzHp>Bf~pg;bo-Uy4_t~Bc`Bw_Q%?Xzd9nNIY;V)^i*{3 zq{YeUT8psY5L~ZV2<6vGzccPXgU)5gcER%Xacp`_#+y-I=oUURF69@7`B7=MfikqP zois0T9aUQ=K;Oy<=y}Do3BHDvezkw|Hmz0l4K~VXPemM@5%kd+XT%S{HE*gliLF@6 z{-v@J0H?u(D^aSLol{12Pkc?{&XP^0c>(0@VJ-8<=&1F%tF{|S8@F)N85?g)8>es|Ja5xX@5{vz_G(I z(tY{yPQM6T#g=x|hQ}bEoJRT0I}$QRjklmeid+yFBZ zum=M%>q|X@dC91#3%*J0Lj%@^v7V#;FfL>elqudeqwIcbylD6q&OP?~su=jxD)W$3 zMZqL0AB7Lai4Uc!L@TB>IXgLsr01XHAZ z0?`f)j7$g<2`QMs0_~hIFmX*u&o$vzTWj@<-a%`xYZlaq&{O1`{|CF?qp#Q@9M9sB z9=WeMhUmCDY~C~Vw=s*f&FArr#p6E$*f-nro&EhRQV!~cn=qO7(Jd#>gANsWLI=kz zISegLy`|ldE`BX4SB|-vO?ev0Gk)W&@xF~1&C>4^E;S;6-jgxbUaP8L70*L;sSMxz zG#DDR2`Ob{VTV>Y@U|wzzet2pI-va=SkyS61*>q_r4n8OLGXE2?&(>_wxoVIs{@vJ zC%HgmmmCNf3VD(!y24rwqIL7Un;hSHv&+fK$?5WbyyBhz(2OltQ?h8e@Gt07pN&d% zIUH;8w^4D>kwmmn7&Zf3kga~47h_!cT2$g!h9zB-$kTP#r^2}*R1Kui#e~ouvNU?o z)X}q?zUzAyHGRsnVp(7%*;X~EO0rwN@u9f&>AUqIxT&cmE1;>JN`>!?M=c&Ue*3aa zKEgbwlu8M++m#3SJ@&FD9$8w`l+3oUTS65(}S29-T` zQN{2nNicJWW6F-9Y6k8u(NX>Sc%d0+Q8p}M35{0Lm;?X1>#u3lM6k;EP6<9*w`G4l zd0)O43;E3sQOPxEfvyNUoHZVTKWn`f7+75WSY3WG23h3b_HXq?jIul!4`jqtq5X7_ z-86c$OS?d;lpRJCll}V<$>J#OE^EpH6`p{BbqRR({Q$G@{y}_Erud}=LtvjTr+y(v zl3ujS^|u;%vXWUB6H#@HKTJcXQbjGptnt{+T}ng0diY}?GEN6~U99Y62lFh1wTQ~n zvzaSA6ZFBtepmhv2y5Le6YP+n`q9-Ng5i)QGkonn3>~Ea_&o>kG8{XTZV@Kks0wN1 zN#+mYJ31is*BPhO)=(kh?54?`WYVeNn<38={r|`=+|6)zHvNZQsI_*SqS0IrW12nu zczedjmUzAkYc^I;rU-mB*$JT?FmR;BTbN)5xlDc*w%|~V?XH**PRai3-26FiU9>K3 zEzSMN!Ou8^BGdyxaD-gXQ3`MQ8baWvqw<5qoI6#4YEC4jvR0}OJrUbmoM3ZNg5L6Dr zjQ<#PUh4dupnfKCElafmNCw#AD|8Mvhg9X0*))yAthky)HZ6nAQbI)rGts=91#T?2 zp(DR9+~0vdZ7pFu2(vXyED0{S{N5{sj?S@diYYHjV(pMl@D1@>d7!UG#1ki-N)%)s zwuo9nU9>gYYp4DkP%V3;AkHgw)~e}-+&Ts|zBWGwV3N^{%td5Pkderu%sr-;$qIMr z>*(3FxsKyX4W~bV&LS55*3D(D5OXR*_v^;Ovt!J3Wn7Rk&BO}aPR%YyTr^QAF|GD5 zWi~u$nlO^o@+DX^q?vNa#QCU@Uz)BT+H&$NHVP>K7ENP)Wlv0fn%+(iL9r8?Ou1pc zlh5i^ZD2nKpZv(&tuM3DqTklT3RT~aP(k6_TUs5Qk6PQt*z|7Fn=E+hnlteJ;&9 z(>VN~1#+y!>b{Ekf^Mpo%KF)J?swC11Xns#f1{^2mmoGe7Mwe))?toQJH0pOKCvNN zHehX_W-wqn%qXcVwlV-eU7auZ-dGSZa!k~7JS92+O}&zpI5`ZG0@Tr+ z)Lkh0BqcqnSM~@D=Y&Y0AYwI`Fs~CjG2{L)jrOJJ z838YRWq@_>yxb1+=P?((pI;FM?R-iU>egP0M2|nFs>k=>L9TU(r75_blFg#uA?tNT z08veT#AQdqMK#}w3&r-z>hJHC;CPD2#TNQ6Yn0G(N!3XgBZMuNP1jIs6ATtn}uY!ecQF_d0HOC zh~c%m{c{wH&aeU#wo5GA zcfs7whu@IASWuu}$$<_i-G|4X(^%*0tf!B zGOKOCE|S&HsZGu;b4<`La2U;Ci2(@>98yY5rdexZmlYmN4Zv3fFt4J$ZpE(oV7$>CT93l;EJ48su*-sGuS-}6At6THk|puk*iRUYhZHCKH@vS4=>E+kO+8Hd z$Klya`zPjK^M9wOpNja$Kbv$@v!|!cn3D1-gIrF$!ZL*|+haAMM0vGLB3-Wf1F3{r z?TiYb%|h2YprXMRKXZrvnU%J(V^`OG!H&6PStwW#zAVXwVB#kqG3cdn@_ph=GnVe=QvQeWHU{nz1DBT z@bfqU&-#<-nW|p~3r5h1Nn`b$V2D1^wK6=B zwc3=Ia}EzW^d5 zNk*fD&#zATYUIT9K}TPSx;PStC+$~q$7`hMN4o{)^im>oE6x5kZs_Jn;|lxw&%~&M zb}E0b8+#7}JA(yuDtKZ~-Q+WHmh#R<8pC+zzjPb3R}o~x1m~amSi0O)JATY@q2o^RI)7Y1B zBcnBO&>QskS(DH}NXkw(;(>e=H+-e6E-~Z~fz;&}7}8-j0z#NjxAZjzK<4>F`YAF9 zr;k><5OeNm^w|B#dyoJA?9m$pXeIvRj9{x;1Kt@sc(ovaZXpUTxFrl~fQvg+?P*TT zj-cVa9q+QPBG@EYsT$9PDv~~;hioAUJl6%Kn-K1U_w;5Pl2wNSvM>b1KfE1^&H5Tr{G?-o_(t+67SN*mv*9wSIolOwT1$z@O>K zOY#OC{uRJ{?GuL9E8;8jQ73E}(q}Helrb`Jl6@)2SOsfU05W=_^SNL8(BFbCWFnwm zN_;Bt3Wb9U*jzCeI6bgRQ8zF0m&;%d%Fwu~nC~h@h)&1Y$e%h+;Wtu)nAcrs^E5{4 ziLsFeQElxf?P)b28(v>})9(c39PqXI2_j zOQMC4c-TxlZARz8IIwWt-UX@?^Gre5jVX+cSq>74B4gZr{H`fsF`PiIl2{!Hn;nt> z!RzW!x*NT2L-b#kQEYdYn!X@^&kIpu0I(6=Ja3^gl^a|4hWpbt*t$W!cH+K0gYm4x zzgLEFtb@OOgDu*w#hNe_;j6>YV%@+4doBIpl$zW`xE3Q)ObOv^!c*Q>!GQZr3x?@C z_VV$Qz=@h$4wz=sZaesZxrg|416|TQ%2*LCW!v`Ut<^MgOiR-dg`FBO8DH2fh7fE% zr>Y9L1e+q=%RA-_Iq}Ii>KdUKh7C$D>_YnD`d+dn>Xky1ARZC%Y)y-63!6ffpR7g! z=`E93W*o17zJKyZ2msWUsU490ozCMU_8wcb-=`@M!4B5#)AB^4h zWs7t8y*y{)Cqz7b=(j#6#yH_h3BSna!z4(&XEOhFe_jW0p$GQNdhA?n+XY0+=>8&6(AKL zXbfsghH6ZYtuxLgErd6=>@y(1veQEn7pE5P4}`;yNuYjC4{%iwq6+&P0a?`nY(;Es zEr7Eil6=gCOc(*bqRsz;MpKZnIuL%$AkzeRZe+_R2AeUPV`*4uPvRNFZuK8Ha>y;l z^nz%%YijkPh5+-vEs$8WY%^78LPBX5W}p)H`j~cg0NHBN`e>{&C2z~0DwVj(mt?S{ zotg@2y-X|T-nI!BRvIPD`Uq(?gz#)dtr6#2spj%=x@0?59A#V~CRtbz@Ew&=yAiJG zxz<0t$(W$W^UK|I@U*o>xBgZT@`)T>m$(C3=n1rM4N)|nAH{-vrZ^?-RG7gQF})_E zKF}BfU(?UBJM($*&EvgNSC5`wfLox!vDk1ojm-VoZF zNbwV7ZrPhpL8zCUv9=dHQ~@R=0G_d2SLUMx^D6PC*%B*(ZWb-36>%rVi76kMDq$kp zI^-R+k!?z5rShU7F02%pYeSQhVlY&oR~ZJ1m*#^cUhMJZF70{{w0<@r%G^i@wU)Qp zreRAS>kQh9kW>nl&JEoKN?fWIfl`f9#j{LV((EdkDJmjIg`p+pFiXuJRj1KsCpKlV zBOiQPMRUVYnXPgbPjjl$$Xv&MuHNfWpO!9%DpKeb!S#38(q3&=!YxIJWeRFmU}QYW zPysGHpAR6>%!?)45KGI#&5sK03@UV8X35aq^q{ux7H`2xb~*Dv;x9ii)wZ+Yymj3; zxFrkW=3^FZvgIB**wG3)>o}t|(}mu?cNXba(wC0do# z^uqP0D-bxBt~8U%ZVBAlOC(d~qWz4xKZuUj4X8LN#? zs?mgOEh-)vRpd5|`eym@V`HnMJugSt?drFh_QERU*1c3m|Gx)$j*rz~8yhA^7gg^y zS=8n@WJl{E9!CnF8&LeHS5zy8=fsZI6(yei*f;ylf?E&W*PliqIenTo|(Z%P*# zW}4~Vm%x!mX%W?x2F|uMSUwTR-W3OBa-yq{O5Mq?Gbo1>qHM}3E8OGPl~}Vr=2R{C zb2fh(b@R(ReqG2xPXcdshLBDeE?7vUFsa#8VuZRCtLc&uP|&;@$EK^-a= zyPAS>XTf1}nYxizvSxczZ!&gOmy(Ax_kfbafH%&66Zzdbb>Ac}>*!AE4!T;$?qM{V zJtTo9z6K~$A&D6C=!#BKl7n*`ocy#xHwdPVM+t|B02HilCr(@Ke`UfoYFy(Ww=)o& zar-8ua9cx2r0Gl}N4CnW|DHed*_G$1CVLHZpXsT|$$E2JL`a<5x+xdjZFWD^@w@>*{9!DylC=5vW~;_!O7&FaD1t~&f{(5vp@=C(4> zPF&*j>im)>w~=Rp!IiNf%N+|kMHh2HPW?{gx7(e!^;;iZ#mW%w&$ zY$yxjq6p9}0=ai5%;E*KlrOgHRO*;GS${E_VOE|<-l_p_dozSl*pJe^{B#q;*l3+H z?zuAe&3)e9G3#bLfhXaF>qN3}-i_hHgR$S-!jLutnvpo8ZWfIdz~sUDxP89{^CWp- z9~ZYUuSlyx)E4g~%C^n-xlV7#AdW|18cm82MxDx$^<-6bcW~+^L`I#BVmbUrKWtQk zssx4cH5lQcuRT&j#xVAB8ePE8#@_i}}}h{6?NOFY9R zJfXX!V*zzV7VTx^mtlHs(bMrVFel<_USq*CerTNq9bmgYR9jp$L+uDriqYY?R7>Yo)xmcDB*a@OS zm;THOf-7SA8J95-^U^fD3{)pab>75>ReOKH29Q$}M7iEYh%HmiV4a1#bsn7h3%FrF zm7ZvC2I-1sZ$`<=Ua@I0v}oL;OL=KqI|WZqDX5m2URo6_`8o?h-4uB;fY*8Al( zui8|j3->8Q7_aIG)!$<=2$ z(&E3{+E$K48i3okg2dO!pkpR;#U)udcbHo5fBlxGQO!qW^AaSRZlMOOsS7sat<}vP zsCMxe#5&mpjOTur_ybZkrmH*z$}Lkj=w;x7;ZhM_x90yOr%DLl?30&SzMgF9QXO$w zsw=-yQC%8EW6~fLB>?MpGE4%1KIsk`W)O;tzckAU%frX4pEL7J5VREeHGjI z&5}et+9Cw<)KPoRhwY7k{#)85z)_8u*;UabhA1b^+z$H9Uxwo0@iI0g=VS)1p&L$@ z`gm;$d<(5#gNd(IlA)gs*LtC!&AZL$Pt#?s1Xr>IJ#;RM2&!gPve(kn)S?e&`DOS+ z(gWH#2GY?Ool&F3ml3BEY;vjS?Syirhly>AxrA&2%gP@WJ>JhsK66&hELu)V3)jsx z^6vAU@ujfM#3jgZyLhrneb^w6(IBmfs#j4`a40DQ1*kwJjY^c|qS6``WGEj4c{17D zvjx#gs)E_IiH6D3=%z5$*rJ*30@QvqrDi_Y-&P|i+&CFS56`M>lyKBB+Ok(i&5m>% zkOddxYTi-K?ui=%FHMrBhXe@$5>P}IRz%||@ozIUl{5h_mF%S<5|^In<=$puyf7=o z-bIR9Zf6G4jk4iFqAGX`tz8ZMjkFG!J8Z0u2r8;2tbDz>(*c!s(bY(;B6VtmsJ6_` z7C(QLBW(&XZwyN{xqGYs#@SibV(KSnP7~g2*t9gQU)lyEt7zcbsM^19U9=L%_zb>n z$Im`8YcMKXa+&c$K`4iAB|!e#!G)X>-XKUVeEA0ce@pLrLN7w5LjeE~5CH%%{QsBU zwR5yFaQa6CeOT-L_eLAymyR!J%&E+nMnU2em#gX@7vAs$#mrSK@pf^O&;SXAf%IBp zLGH8HujeZu0?32}{DpB9X0sl&&c4tsJM_#0hm^koBBvhHiI0AjqfKR3j%r(|MC>F( zY=fl?@ah<07-Cky%xO-DmV~qM~|6 z;2&nlnC~uI>A?f>$0Is1QEc=9BR|0L?fJ52ZE?*MCX=GtPMaO5 zNfigXePrlM63Dw$L&o8%LUkXinzZq*bY8_R-}fw~{RZ{AaRgV`JepYuCHK7&4&XP# z7Xa*ZpU(;Wkn?)7K^_~-*u6e*K^=a+u22S@I|76fFPASo0LA?*b@VB2@d0L30AFM# z8Xkw8gw7!Yj+){!q$j&3<2UMJT9H495}%s+5y%~ej>L(x)xa0f7%b)26i)h1-`q2S zLScr`kYGvy#9UpU!YH36EHr8WLQ?*UV^;hNX|d*FMD-!dIziY)AW1c*nNioj^0%h9 z=fj7=54+7{fjzPD_2JUVan6v@(}C-aUC2Xy>!k8Lx<*&!8pkR$19vuL`FQ7f{ayIL z5-1{p2cTo05L``Mt`~fj_xCKq!7g17(GC^tBkY&)*Laz)EMsLHm&K>rT^6A`8WU_k zG-r_attQ!+N`&kk&-7>n$thQf5rg;#%2TTvJly!uJ&+9$b|jOs#Z?HYU`At}%i^*V zmf(tV!d0PZ*k6KbAZxE|zc+uCjXtZL*|JSYOL(-8e5vPx`ofS_;a}GyJoMNlvl!!h z3m{;(eX~s4tY5UzewJYJg6irZSG3c}eZw_NTD1#IP=_<2JdhBw5b{uhg<(*B8AXJe z%l33ShEvrTKw6jtGf272eW)SY(T3fcpy96`#6`iV#E$+db$zV=i?X+ls$@wPy*KXO zNaOC>xHazXjl09f-JJ#+8ka^JcXxMpcXxM(kMq8J?wd3B%$+y6R;}FiNBtr)c4kFY zRz`;LK9#;i(w;XRfFy)e>ASkz$Fzl1^?EGZXiq!3#H<$c-uXP>hT{>GvyNYZnC%la zgD)J03dTk%F&RgC$g)u8tfgZ4`rdbfc#tMT*;rPZ)FSXLBHy}NuWv-rCNO&ZJK5H+ zc>ZfmU3~8qxTaR%gDi#OL!QU^5*;Y)dN)aX^LpOUYh?CCb$ipj9-IQML&+rGd zoc%=JGV&zE@T};Bv`_`F#QMn(Q@kkUeTEvT`FO-N@YC&5aqktWZRfmIC^p>$T!@i}!%ljscYV)uf)sfh3 zHk2QU>(RsmqeZk95-d3tYcETN*?!oSPj#8T$^?XxS^1%8^44^=fSBF3I^3+Rm#1Hx}g&zHnJWa8r#eu*M(v!4vX zn(5SlU(4Ir3iH|k>8NKDH0pi0U<}Ak`L$>1=I|wNN+F6EF}Hw8Km>qX4J!C4xO+y6 z&$J@~pEfK3MZ7qwZt3%9=A|-(d41Lgaa}xVs}9-EJ#?0#`rT%kD?;U?&Q0qW3ChvX zNY`0TWKw9kP)L!ILuG-YiqK{-Kk!XZ8WMLM)qmq7Nx@q6BP3-&j?6(S6hoa!8%{K3 zapu@6e+#p{;cXzcDiIEIy~h3Wt@@D_Y1|JsLCQ~8Mm|wWJC(7-&%DqTS-lt; z*IsoumC&C)Gu5IlO=fl>L*6{v|J#*T2PvAL8@ROoUIH&b7r9AN%9fXjlu+FlPE;OW z`x;&o^a8gtuLCENg&{sKc}H~l8&Lz2bl*sOk{fbdX3y6E@ZymjX?;)*f&S77U`)yW zWgy&mH5^8esBD*5y#_U0Uz6^px1=6194%D{wHT`dXm#i7qm zcTBc0u6`-UR4yRyqI(A_4PrkT9ubbXAt(sjp@phrg@dm)E3Ne^5v+uSVjGQUb>2X0R*&DVyRD6aQ<=oCP-(2wXML7KL$V?Z z9)5WD8-)^$T}F^s?)AYlqt^J6x6HWn?kjWd8rR(0v%uA`-7IL) z2q=Y~Cc46p{wlpPrg-idsWvC}CD$Oa({#OVg;lvIuGU%0Lrd==`*eHvGi?9YlLYd+ zc{*PrU$Jj@d+C?U;!z`;}`q_ z_te8i=ioL~o8{;<=s-J^MecKUVvs-K9$CxnBBHdnLXW(Bg+s=cz=6DtQF5!*m!!n*u9z0eerVh(9>4 zG!vq@kW9`ZJ)D{=qe3l%JHG=v#UO z0=cL$l$eJ}7FZ_6*Ao$H

S3XqIig6H$Xi=wC)IP@cz<*3cT&gM+HN%12c3)oc6ay|;aOIF)$MWGKmZGjzxAVL7 zt@eZ2mLtJuY+qve_?Qx`dFhpVdkjKC`>UgjF%xsl;k+a^#Xj{!AWWHM&D?Bx^aRj@ zW`@F;+D1)*O%q4Z4~d_Gweg4iJXNy;9d|c{+>3zG3I|DnCSFkyI!xqkAF`c4R1^&TlAvZBtGixmWyf4c(X4ceIw5^0AJcB>+tCF?xWR6JYj;973H@D ziToy10aL|SnKlXFZAR=)BF$jyNY^9W(bii03GVGMiK|5?WWv)X_kKh(xoM?M*{@8V z9b#Ge`emXxHRyghto^O^o!IxVT2ZD+JWm`llQ|sc7S-uKgc$)QIr&fT_@b){1i3TP zzu@B7m8D`of8OmtD4~3%Oznfzsh%_AE1Kajfj(J9=~$gQ%R!R;8WATwT6s8FA^+7w zbg{@&eOG^FR_qus%~_6YleMbSkDHR@tj?MB4UNV;Ab`Tmp`vD?v)8s1mZge=NL$$y z4~{-EJlCGy6l!j<-zeo97aB;fg*rB9I0DhRq6Edbzb7MmV7ED>Ju!UQ%19U;-~4H; zjrW?>d;;2ZEJ_r*{(g%a;=4uB3Pm*MX2K!^D_h<->j&+QX%_(k?gDwNb>Q!&`^@fB za#plZ*cshBem6Q}u^$x}tEnTsNJ+*l6yq3F)=a<5ifCCPef0lrwrrLyF#04iK?_oZ$oCIv$SsUyRYKK!qVzxk0PK(aUL=1R>2z$Y z^sMxZ^hV|mj&$Zg6B`C;2_X?#B@t}}si-AJ2 zbq^(*$n!Zj+JaiHc(m!B$7s&m6<4DY!KNDC3$!~-;r%{2qw3P(iJ`j;8tTmLKwqNeV(O#I=js~}Ep`4)G zoLH{}_Lq+rBP%0wTpR-sF6izsFlNCjA7qJ3s&4^6@T1n+jXi_&aujl$tsRXmaoYmC zGCVg|OQf?Cd{}5xhco`MauBqib@F7>(!^17CExO&c?uZcs|s=q5nu3Dmr51a-6T`@UiXHvx@q^EuE4LqbDb z8lJ;5Oj_R!=@ooPG8HYW_ceS=GG~s|O^5>^$}d{Q^%zD)PvJKL_kuWmHNY4UFElaK zLAP>eei!kZlh+&5L(CaP?=?$f$W;hxWx?;*(;&oPLy$gX#{4F(DxEll%&zDkxi5ve}_p?_cJ8U7Wi&g>Mk}&-eWHxx8Q-Y~Y=sx8| zplB!{K@JBDC*Bk^oW^hLfg00=3O;^M3y3!Gkihr-bM8+OX6)wXfLBrZ?>8LYh0#Ts zScTLPeWw0YwQeD2#$>1)8meaTrL}_Y8WhAc(*6yCE9z#m7rVq9g6G;~YcND;JYr>G zL=V>&F|YqH@+s&`$Nz@_8IkHeF#pO!=fKtj`gXI@_k!Sx0o zHUu`lbDNPU&zYuWo_cLj-6Vr(?x<3kx9lGM(wTtMSgR0MDjWXVyeT>m(`%6~(Yvk0 zMjhBg5dC>Lm&aHn-3-5*YFm9ItmJL%Op06K^ROGsE)3SWTD*V8wqb@$$*2q;Jeod5 zFJ-7Q_MY)rH>(pp+|Jx9#89gcih5TOg#K_!Pe>fxqG=^#U4BA{7aGHt~$GB{f@%#;TD?*}f=Tc6c9{tomXGIvJOPW@*YT(ALG1;0e3`gTrDf)}=L@lwTB~ zkv{TFp=2Sg|Hpw6x=d6>=XniRspt)JmUSnY5p%u|=5YS(NZ=zlKO3{^4&n>38GAt4 zGbpu6NQ*<9T88;Nuc-XkY0go0THajq^dtez`RgJr*TNH7&=d@}B{e+W!7(vO+4V-t zXQVSVykf;iD4^s8MP*$b_dSuS0oq%On1=XKn!OLy0$BZ+lcUxzMuwuB zZ+CqVSHxishm%@RQYRv1eG;qSyOyjE#G={6ZYWvmoh;wq#jjxV&^PoW^knS^?W$)E z4OvBb!dMb3aB&vc!S3krw}x%nT}b4vPbEj+L~d$EhMQ7~ouA&}uKaz!$BEX>j^sV^ z6dzjXb! zNTZq~p+^pCWMwubs7{<(I<5!DGVBC;5KqBwGI@D(Sjl9dGgid3fD7^3@KWJV!IQ$* z-I78wAF}Lqgqt2Dgo~eVShz=?Gw_pO8{E0Z0?@OXX}0#R?Mn{@x1hE zzTm0OB93?-)@NLxy-RVl9GaTc8}>K-X|ZfryiPsKLv9U8yCUi-kX=DonU%2q5b;9} z9vdgkG@a(xy7}X_)3n;=wAP`y9ocy^L79&jn_-;vdJjy~R@M5|vs!xkCR3X+wM8#& zeb+T)U;VzS{N?rPi+Y8!F*qNw=Tyzt=E6K=~igA zvz;V@@{Tf!t-h`bf(uQdk8Meg^8&SwP$q0uXwvW3{qJA}3Ar3Yf3+ni7YO!QftRG% z5cLHhdOV3N=!QpEw=$Yc*I_QHw)_@@13TX**2lKbwI;)mMvUgam7K4Z$HKR>Wn-b; zC8OTd7tHON63j(JDH=K^>FM%fNZFd37RJt}A495L#yFQkPk5BU* zA#I~I|9KOtE|-woOusc($pKph=YDqo_*efp0e<;cpQbnaTjU%&>l>(%G@LIK^Ig96 z)>pd`a1s<2eTN!KnlW;BUuo$bf-QIPTrD4WMu-&^JGS_=S2=(xSXvGYurN1Qs>zea zgw{qo3!F<8r~zl06cK=I=nh5Wx;0&7+*Rz!T}Xe4#tGHkpOr=Z6^iKaNZbX-(|ERN zn-f12*I%1kE#WmB4%a1%Dep zhSHM_D+P-Qj<8piOa97zPk>hl@)_7j88NRlN{9OhwX5j<4u7w+KUL}KjFM-cF!TwV z_lfWSzFq#|(htqBeYHMZ`5y<-zj5hm;vyo_aO2`Kqmu|ybkt)b2a71_v>@?$K!C#$2T6@f1{c)(9zya*Ve`y`0;7S(bX|t zwKH;=5V`dl{TXaDtCi?hwYG@5)+35K@KgdL2mp~NgUT=B(IHI!uhDs0N^6_Sk`>^I(YO_Hv$WoRAqXF5!&BfZyqA6i8>L%s?u}h!1 zJ5e(%FF#8e$&Xq^7MzvP>0imp7iaat(9>3A-#^!VGRce;;A-%lF-c43PjN<-qni;> zJ3y1J7V&Kcq1$haJ1&Y57={8(yJ(5-D6;{u-bM)RM}hmy{P3iRll|DS%5lg}lHt^f zdmu(6k)bNX!tN8e#)A5R22DhHO^?4Y=6H|AIB$uiSVSa_-3w?FwyEHu5i({`rXV8n z4;lfiLv)>pZJvJohi&A#PM^>)E0{@r06(~ zdFRn#-H96|^z+Lv)%$A~NDVt=y}@r><9HmO=;7j_>!^`Uv#oKhNmlP9c?Dcrzp=S> zwkZ%ldrOQ=o#R!E>-eba!#Q;hHyF0YY~XU+9{PGhcjNMvxG{u>oaDnaHfuYqm8Yum9ew2)gS#DqEi4CKnM-q(VP*-SST;A_3FdiLg4kX9@RoWB|a$N2=0~&!zv6I{JSKR1^`CQxvZC6pJmEtlxck4P!rv z{CU>>O8|-A7XTB8E{Fz7(Q^NEE2B-LBH=VPe}7Z(TUo)fbIf{fY^0R%@F`2~3aDA1 zMF6RP7}7rL)pBTnDOmYVl6P1rEe+d>YcDLCR@aW<=}`tUUYlyz>+Ogr^R;;Sw-^J?H5%B9|3Ilq~1J;HBbzo651WK!KEV?+CH8pT$YF${#JDW zjOi>S7||A-32U(RFYrw;a&C@Q)xC;pTM=g&z)iYXmXeJz9H|yMCt(-wrND%(j>)@}FMEb|)tOfY)I{Vm+&ca_Rv88mR(uRCFt>N~}ONosHSGc#D${J#85 zTg-b{2?DciU81(ZD#vjf=Buk*!SdfUl~;lSur1X6h7{>E=6P|C!Aya^>=i(5D2Zj> zOi2ljloQ6TMx_G(v1~3VN2XZL8r$v6#81YeU&1Uq&7ww_khDnYxWfegxZ ziO1WcCI=?zr(*~S!p-D_%>wcp;me+4`)VQz@kmDB8I{Vg)mrfl`!3C@>a(lk$Q_%j zH@l=<6mO!SRg*56miRfYfNpEiv%q(LRr?zt!w*4}U2C+(WU(emM@c3F9K&jMYp+CM z`h1j?wdVK}K4zmTjmq+(m&uqpdgM;8eWNezc;DPm?i%bst-wXWE!hG0H=c9ctIe|H zl|-TM13%rc8sDyxzUCOR8Pe0}lQY3#7i*=w*2eQNv!V9l#^D+|LC%A6i?A^YzEK#J z?emGwn1ycj%CzE&abYbp=r63=(nh#P(QKCz-MXl7^`|-&vM~z0P>5OyvAf=hgeXUO zpy!^^4R?ge98BDbrdIA2fGk&;pX8~{_ria^1ls6*dX^h#y6t{pQXk`;=)tr((m$8f zyYF;DN{_A}h4>V~j=;ZfQMkxaYXgQ8>bw52Yryf-?0Y%|HjGk)Fn+#{c7)vb#b4dqIX&Q}i>}37-mpv8 z^dlp*mk~r(`MIcg;5&Bc<+SEtU6c>>hp!TsmoMcdJHwPmc5MV214b7fHF%=RSl>h) zG>yZ1YP^WfIKOjzg)hlP4_Ye~QmEbJQ+NzJELsW>y81SM?BOXrGT=)TVA<4iS*|3+ zpPZ{*eDo7Ku$5>dBm42;mMO8x@PPl@(S1K~Lyr*rHkM2TW23S=$Hv1q>C3&D>~^oN zb=@1(qXSDZrNq&Nos-eXDw7f!B}ubWY~I?h<*DsF^5_jXB0LtKJTg!!?QlXiLOqR=n3RqoE!VEaG;H)H4!nskc1OKOh&nw(rT~uM7lh!} z;khVWUDaL^q|elL5BibwIp@qG1{y--Hc>zuyK2+{A@H1d)NA)T0r8jqPeGdWZitNcFOGq{?O~SE#wvDM)*gRx=Q1S_=mo9wII;1xa8fqJS z&B|&zpwUk_Di%wNBG&3njL>;@nloQQek1%MGVdm)eHKd>5Por_*2}lDX>nb7^oXT} zpGkv$wf_~0;%FY*DYs&K#y0Sb`idl{R-R=qmA<}LP{`ls<2U zMX6ySzfAUWBpnbr{2yTGg#4CNQ*-bA{%G!9%vLZcr+Va*W$y%y``_?r?lni;qRS^mH;$-JauK|k(9LV(MXgQpft%8-w>{feZ?7L> zN;2fh9rDn$8;T=P7+;fP$1>`;C~A1IxTiza@ha4&HQ3m(uIe&hgf2yT_g12NiY1|0 zaaYkXu=Dert;tPHg-<7TT5V3smWlY%Gi&hz2kMtLqqhnp;d|Q7ROU7-C5G&`9DnRz z0Gi^6856^CW&H3nSloY)b5;5AV|kxf`Y;Dp6U=4EKoIb*wlXo2F5{c6cz~{6+hbJ6 z!358b92oNkAnQhV{a*SBxGAH2>qZT6d&TvzuufNmTbNtr2%Iu<%c=JUk5_S6_(8fU zy$hax+l-&8_9|XB_e9kHR8QnHMC?f#HTNh8RaB+Il#6LI8;Kxi02zA8@# zny$eL9@u5G9OlFEG|N1n5#?V@fIL(jEr8U^OvnvaY$ihV%MQ=CM@3~r+e3g~l(>WS zunQXS`qPjSt=;`--DVnDiVFUKIy9>pWxv;bq3)^WzQ#Y0Ihlvp%0J`&YeOCifMQLx z+lOP0<%<6&D+gklye1L@1+RP^Dtwjd>1AYd4hP+(pujRZCk;HcH6!SQT_DtVoLb8LUqPz@lAve^nh6p^h;$age9~oR?grm(?a4M@O@+4Z@4Tn}D)XJ7qzM zEhQCTo%_~Wc98tF)G+`qvibXxFDW9gei`qC;ld|e7+9St%lb%x^JQqeye@)=(!IWL z+ZbLlNoNZBqw|?2!5z#3KKBwRetB+-dyO?JDAgGrB~G|77@*sihF^(9x{*mIHN#qY zCpSbs0vDezM8vdp3lE6bD|M8l%XX;l31d2>Mc|R~;wvuHk;yA99s4&e0yYoObWZOs z!9F!2siLeIuv65BQ9CS`wi+jq9n>Xm0TUDF@-cn&_rE8zaa^?w6uY{4QWqgcD0SKn zgGBMBQ&FXJ$l3XrOjyy%d9{dFDb$z@Xg49i^0ekIKiO5?L1%2CR^K$3u$V6B%AH9} z16`VsF}u$gc2?@`?3g%m^}nBpJL2Gqrt>V}#PHaLRk#qKj|bv~2e{|mOsqV+=Qlpc zjOw3Kn^xl5ZVS}pAyLiI9GPVSSBv>6wit$oX~6P}qc1*_6%yTqS)@FkGx{qJ zQb@@!p%lZGTR`glC8~B3OL{eZeu%7IKFyJHs%`IX@@tL zw!s{|EUbzof-8)gVtA%r!W!?ncZHBLjE}6P!n&AZ7l0s228SI4&P``N>{faN9n9lb+ME57V>8{94eGQq*&Ko0=ij;j3WH@z8hcMM0IA=o zuOVjMPngF>DfzY6I!;aQds$Q78eOjI>z0T>2@PP+E7*)~nzq|Pr@ z(2$JG;PFYPEX|H>GT7~7?wM%3#wU?BmAv6mvU%dTK>p$QfzLyX?~^ej884lRX|a^-0QEKW1r^h-$|v4LpG4%Ohlt;!U1y&m4Cf|d_L|F@?yVy#>MLu2 zMAl(Ugyrfm8X_-XOG|b}n}(TpNeY`{Y-|a!x#siRakeC5!6?c(FRXl+q8-eH)g&k? z8eWLK868cRc5*I#Q}nswOpM(y+)C_gr4U~Yl&H1qAhAbeicZSt^lkuE&Z`gAgOc^o z&9zaUOEK~}CO)e4VWpyl<`GuH?jGy&1=1W$rD202{la6`2FnuPxUH_J2;UAQx>b@O zHn)MWxu%Ly8P);!OGd-)WbLLGH%n;RC2DYNqbM9&b-YGUGms#FgF(+*P!e54aKt;R z4h*?pN=w8>l@*_VyNnofVoIsaujFo8o?$sYz8RE#-j$Gb1b%j%-QGsW1}R5jvMSFz z+z6%-xuc)C*-d99iB|hvJwL!XM`VKji4c@Tj%o7IlKABP*#~0tq21>=oa-G=Rnq&_lr zg)ymC;k@WL0QBfgej>_~TX90`IlCjM@GXXqZon=wRn;;9YzKbqX^N}3Tsw&m1~HMGl9 zxbkt1kQAN|m=Y7Jm%g^-RLUdp*JNBR7ok0;ADy-M3zke;Wi3I?{ao0{0DoEEuPskO zT#%19G-OuFkq!gZtZucT``MDe_}gft4XOzQ(#8+u#*)eZ(xt<@mb{yRn-I@?{02*H zRHWvc=J_Nlc#&VzP(&*=X4l%Kv3d7rM)aem6UGa~*V#&dh;Dtq@e=u@{_n=4fzF~; zhhFQ0{9~pp(BX2{!E0@w_PGZ+)OV03+t;FJccXf|G#Wxbu>`T|Q_eZ_C7d(a(HYx9 z-RL`D3~f5Jb{^xKnA8=9*Qg7@!k|Mg<(&w=+(X6mvi0HBa*3aN64M!(8=ifMI0vrE zw1)|cZC#PUiPH5A(i;wXhW4H^xBRH1c=ufGxT;+umhE8emX=KGUV7@Xh9-ou@&bY% z$OVq$c=<6V5+BIEc}`evh@v0th-V2UU!y;q-A4H#{-TB{`&N85eSa4=4aemeM>+g7 z=x>$*_M$oY<+bN<;$uRQA|-{3BDWeFi}rjMPV4K)b_{SVk8o{pq=G;`8#-)e?!?U{ zb<}+hXpQ(aif%kK5?m_WnwIWNj*NM7aEeP8$jjoZ1fDq+epIkK!FbpqH3imgQ-Tc2 z+#@oUmYG+|$)ajgVM7=RkAR;O-0yEShjWkeGI;ll>!W+M*wsv;C&s@Iv>cb{)DlpQ z*g`amcR;I5*lyA+pQUQ{V%1dlBtE0V9`mI8mDJm)Kp~dcq$2Kg^6K`5TdsAa+N(7e z^iV^siFqNrcV}}NNn0Qkaq4jvW-yo3=gEVC2u6o0MY7v_YmP0)+(+5nNAIqeu7>xC zWE&D63xCbr^&7d%WQ61|`^;)NAnm9tvQs)cl>=Ja+U|#Pu=)fc@%-7%Cp(A9G~UXp zpE^od&o)zX!X>1P!w#0#SCyN_B9Cc#u}hmwCM(6gS!Iy7}?R zCUr%5?!|NEGf@PaCfPMuT<7Iv^ZHesIL1--CScudje3y4C00WcJ{Y%#KJmkX<~=*c_I);IS?NzeC?;DHk2x+1Gdk z$R{RPdNhC2z&~B&M}+kX`3})C0v2*Y2&$IAQWqfnoPVRLtC?naB7m}UR!04zVpO_n zVGZ5q>k`#YZMY@1`lC!!UBt_(LB^B~4a9w@rEW2{&y4I;{nOHQ+xP6r+WI4E?sc*} z^pqD+UK0l{LF9J#I)%nZ`u1*Ay%cymb0WrJ-dMJoqmnUZaI1>?Me|dRy#9(tEtM~= zjY@DJ)G2^B=z?odX|_6yV%gLuN6x1ZB{wJvhaUs=aw~MJiAVO|E5NqgwLDD*qJuqX z5E-t#2N#b|@J3ETON?K;oJ!!!fP%;e+_U#~+ntZLXZ_@7Nw8bV_!reiLTdFBmhp~< zC<85*f?RR)LP;5l$~`_>q=A4d?U9lrPw!n)e&L!hPe6S&Ic?iUq=W6UKT5wALvk-R z*BU-fn?#uijVG=!@p;&Ssd21!KaP_`*Ms67@x=46f8o0>jtAx#Fy8T_L=__Okx!Xg5(_zosDrNPMcHgwt!13X`#8a*(t809yBRL~*^!Gecj%9PaPFES4r)^eLp;YxuO*5ArZ1cui_2(i1zo!$w5h7dfp zX?sL>8dS%l2Ku z_9LQtCrrs+%s0C9a4COvcXW=hnOQC&M_K#)QnxL3l{LSEW#Rh~1wNpL!tw}i zQaJ`wob$1 zVSCJt?rYmhs&4B({RJUI2kE=`ypqqD58qHehU#X2Rt7J9@YW_oQo16JL`lx&RxasX zi3j!XwPKp{uI>S3<3*90MFc@)K6f}iq}6`XhCEiowU7>{@6~rX^C4U5BZ=~rMkS@5 zoml|+g?~T79Tyk%+t0(o23gdF0!eA>u4;AO3er6gM_nOHZMlYxd zdf-U(Say98x%fy0xUJo97|>v<-9A_Yb2mN7?^Ol;xQ23w{S)g&Hi$PI&w?26wFc=X zJM=lW6J{mfuyhL_-kp2Df)UfAY8~6LIF)vD$2YZh$4Y8 zY%a&U7+=O&(%9_~VcJH5XEor4)$kIZM_Z&rxWx_fp@E7*!%D`-n0U>+aa{T`k)|9Z z3x->lY{#q?kJQ#;i;-e5N|2?#9=gE!WD8ScR(egNvh!a1mE!ll(H0O5Z-*cLq9EmL z2~n@9dN_j>pLR@Cl&}VT6NO6Zh<6zo`X&3~A$-RY*TA1~^}D*X0=v;@@M4jw{o1+A zMNbMp$@inFaGsRG6Z0P~sNNJdZ^Rl9WN*2URq+iZzpLqBNM@8amRuAjg4CTM7fvh# zO{7*@IS#P=Cu`i=L#{DJa72$y<%lJ9pD?n`+@a@mU7MaDEzX;c5oEJL%Q7 zE4b_HkJ(s=!f1b1HajqBnURe>i|mrZE?z@Ak2fg>DaC98c1Lf7U=!W zB!sJcrT@thZ88SGt2JW+S#gz~UF+A+r?0jiFn0QvCOPRz9fQWeg{bSY3}g=Pj`A+XW4$D?yl1D&jHWaTFlvg`3UgIr z+3TnnO@(!Qbra~SYhy_C> z6Q(ZD84heJE8v6@`YbW%tVUk;&-sb^&$TRK+B=F~Z_I&vV#5`8k#QLe%IlrSK_ryP zaQnXAcz88QZP`M1BFPSoE}rVGP7c;P8Sn_$cGE|@AaYc#8pyQ#P;!^UadWrCymj(UN;;S#Oh*N`N&~T{;@sT((06wH%j?I~cgF71 zeYVOw$aH&Z@soOPqQ8ex{QLi z_%AACww4uz^kveM`N@QKSlvcK24DpmmM%gnPcSV=*D4aPTTzdNiM=;a-AWY#7Ac0i{E4f$`=(P3U8!GWjaf@u(VZ%Bj!2ja>2&Qs!*v+ioRkZ3v znf6Pw+@!uGYLK|e6@1txn*y7@4T#us~I=cqF^ps;? zESG7sgd>FGbM&?%gB}}ZFk1lunj*vOF;aiFtP{Z291X(Cz}V%fL0Qj<1%w=;LtukE zfSO9dT9Y=YAgXmLk?JUMT-0m$vK%VAP2_!ENn!o>dsuXV8hE=S{*k7?E+hOc-5Wzv z;1kGOJ6^yO#@qY|zn9b{4P<5;*#r8t+&bz@*kry9jCb$K^gZ~y{lTH;g)Z0SjRi?D z_0T^>K;W)QAdaSXMedF3Y-wF08**SLgW-nUMLqzrg+f8!?XFvkTXzjiLjQbieY@Q z5T!X~`YsUFi|tCc0GQq&*BrH~kXGJ?YY37(C#^u}v9fahgPLMv3es4J%4mrulO9F2 zoUlVJ$p_ayc+yb0sD#m18RHNTXP~bU|NDpObX#BKm1nHrGpvgPM&?1Ot_X85FGbn8 ztXzEK4{Dw0RTxF`g6Qcu)40_H4ct!S7VYc~zknglcOggLjp{WY7lSbSGr`T?rK;0D zDYT-H-j#k97m@5o*u954o`Ge{uhZ;>%X$abbqn?VIqc!{ja~_U9d4N5HMPfQ*|=)4 z^%UhhXYQQ&)GP;r>S;{~{=Vw~KK76{ZNhw}@pv5apKNf?syca+(-oBd5?^(SMDaqG zgF>dw(CNW%+!x#ML(g);i0&PHBk}ASs7#Z$u_hRLfS4VegyCE%5E0Sip|3uyHzUFtevElGDlbUCls$nq$R~C~+dyquw5OcZ>S<7@|^CaECK0NCp zZL=?8yY8%7JiK#kE4?QuOsJH;khUnQRG8PR!Td}oyUZa1Q_VW~Tp8s7412)e#=8BJ zkwDM8IQ1RiOahmpUuJAXOb@bEV@V~7DUR!{!4}!myo10}kvz~JcWEIKRja$65|LF! z;A~pa7ZM3g$w6L&g|Y+)rvG3m_hu1+hbL`BjK#AHHjiJU9s=z+EP6Ob0B^T`CP;a@ zSO$M=72v-x{OxUzr8=?X78wt!{xni&r+>h z;p`M(fxx+gZEXIN&j70S<(Xo%(5893(%8niWYntOgcQX``q<|xkuV0aQY>X#0?lK--6jYa2J$da{<#zW3U@trWp)~=+N_+I~VmnvD3fFHty(~8Dr z!MXeh)lNIqI^<#N0&`P0ff{v>#hz2i#YJIBfkssi@UU^ zhFiqg9=I^uGPQ1=wLVoP7fa-O-ovys-h)l9G!1i?_-TdvEoeN`v9J)?dKzbR6-Mzk zfY*J8t=_qf+EQcgV;n-SL{LjoNMtBg7acR8vgMA~9Hk`X?7kVLgGTE8?YoZ$_7^L9 zKh6oW^l+CiZ5Tz#qCmIY1Xxk~w%H~ywlsl9Z@;+*knv-w? zzqI2tDVEZ5k<63v{=4g58CMYhS;&r&=N%|sA7CG0!t?&#@Ljb`DThH}H$aA~Od4+bU+M3~Ke zmi>&Dj{CCxJQ|K1RJ?edEt-OJ-q_gusO7YYcbwbf`LdMov6Yhv-7pD%aB$@NHUS%f zAY3rd`E|!mL1q)3<=5FCj4>}Iw`>Sg@~FBqJvm#@Z*S;7PXz5Ktp4CTSv2hq^NvQ3h1YFgP=baZD9fcIRDK60CN0lKF)Oi8>4HcZ)o|CQGovp z`c8P$PycbrAFC+;3bOwQD*R`VjkB@6y}8kcN^buQg1DZ1h;aC5QvnFz^ItSt`~cZn zn(EpcJJ>kc8yY+OZ~FXk<;TL#|5N^0boyt>@k{mk9~ft2pplLJ|Aq^`)}K*81pvJC zJ~jjSll4*O_^tj+oW8BCk-7aJ+kpIY8wCgLIGjF~oF0Cl{)o5yv*h?${rp$TxtrVC z{te2;?swqK$MsJj008TsoR2!k5BJxEBs|QNb(w^M{Pu538{JMFw2few@D=_?63jo0>EKpl3?j`Y==; z!ao}dzxY2AVr6WqZ|L?n&4BRwie~*Gfgb7q-}C0rmgM*;R{SRt^bHLEhJGg8cN6|W zKl>m0Bh>yUbbDicqrdM;zR-rbksp7-CpZ9r`A_9P>KwnL#{Wcu!^beO`nx;SAIv{* zEtG!|FxdL91X$?X>l@nqZ+Dn4006o_nICnIpWEEO!TzD> z|7HgLpN0`&iQsy_wf_`UtV z(*F?lHz`@>P2+ZzAfpcmaV#5ei4 zv&4UNyFVQ4pC!ky`s0T4Pd@R#;ICfeFGaOM_t{&Q5(H9CiCV4clkl5 z`4jt5e{_(D{}-}3(ERVgIMiH*p@;y$|JT`h$46ByaeMO5vS7i72*Oh%MHE)5AXSP_1f>ZQ0tt$M3Kohq3-CY?-tPvo z?3|o)@8#Wm_LIN%d(WAfGiT1s+`XqTUTPxm&(r|68nSXN<}7y(XUq#-ZNuAOrG#TY zqG;y=EoisXB0{%W^5>i}5XC!z@P9-cmzQWjJ6#U9(d9;f!Ws6R4>m2Gip{4@lup-z zu;+cK&bAsH}jF)4k_r zWxaBao>7yn^kpUuRZzU;L&{MXc*Ib7PVN{YxYC*a-LHQGB}kZX%u&tm|C60lczx zEnI!A`_5mHSQSeI5j3^652{vD1sjYmjF%_g*M60zoW-i19?R}0t;5v0!q_Z+>fVB0 z*gK!;UYXhZQX{osxgPne4w0^dSZ@gsE_D-UzE_7zIY!AY5<~dR;1*Tj*uE=d#e3(R zIyzIb*!fE$?8VjR0-&;g(pYZ)$1AI<4Q|J6;jZEnf3)8|3U>Aa!T@Rxb6cr%U6RuU zd*iH&iPtvfG(?yc11RNoh*#&jv&=>t_YC-SpF5Vz@bGWJ^UzpmK_3lVoO?NgEqyxn zxex$dcn*=qg@*>KLrrEwhQnZ03NGGWyZzvF1fCOdPK_iEzWG@81{Hr+hdm?C*mN?d zeGQ%N5>SXMe3#dA#ah|#;VPvOJ^E3t{xk5+4T2=eZpGLbS&lAI?n$Of;UU~pvd z^}TBmesvi!$VTXf9`a-ID33fWS@8h8d`Za45Qr)TqQbW2yS$#nDHMbtoTJMQVFg>O zVIUE3^)&gB@2T+pduLq^<+J1)8&a^_F9C^CKA*-=6i#Hxx-~n7fpQ5H#KgYK>lySi zrQq0@$r;AuC-P^ahf;S99||abg#xfy^StuTQ@_8q8{U3>eRzD|{be-=!yX?z_}ALt zFlL&wCB3}QaRxGI)q##BIDQNt$jYP2n}n0*Hd{=3tK>3pDA!(@XrA)AJd6MxV7|-i zd1M)(7%k?f<6>J$ITCC8Y4)NMf$!p*jabC?xGMe=k`W!+@epr)vLb2TEgk0^i!^)@l&xP9Qo_&GLKzO5gs(-_xMNsP|*g9RruIGaMzmN4N(u(=L+%r?L;PN0$ zD$hR8vkc_1cn0#7x#P($u<(STIvo;yzRT;m{USw}oklq~$IA zNEH$~HpKt?<}9bnV6jLJjzD9F@2xWrYosM?gWAPNJAqj6ngk=yfhPB=vo;3acN_9b zbcHlV^4ZV-S!@~diI_8p?JvZZp219RLJV{ec`kxLa&er*TONydH|}L>qSINnv34~# zj}n~Oyu_H@8udhyJb@al^KH7Ad_T)zm7F-;a}SyS-BjfH8PRU?0(OU9wUkiqr3a8U z$udd2L-rdZihC8nzOLaz_r|@Y6qFm+4uL&CB|3EB#bt|daH`RX)y(9hgyJ-0nbK^$ zft1vWShWO$kYgC^Z@$ax8T>0n7#(K2E3%nM%5L7uh1?yxt1OS(xP2_X|1W%~Gj4f? zL*g=mlAoG21;)A>#!4fg{giP(xGi()JeS;e-M};n1DTBvwOP+OG8pmcam0m*d;W$q z-4e;h4Ry~G#Dq)uL!Y&>kZ*yZZMOZtu4AJW^3V@Z^COGv@w_UCra8M~tYaQtU zR9&E=Fs1U#>$!TBpdM6$lmgeCXFBBJpsI_7qi$Tz!hf&FeO-t%+TdY?N7r9#3|@B_ zi1`?03_<*n>drCBQxQfbyx_AdU=HE~RPUgCv-ov_1B z2pA%KT9$3`>-1JNPHg;o{^0BcYneA=72!U^bCMnI$n{2=*5v^}vOOsPv)G4fKzLvcJ7LVNVQ$8DgsxDaZaB1Gu=)3`!SeEAmSiu zB6&ZGP{Js;!MZ8oO(3y`P--;Mz=25vzqPpm=e!|E(gwv{W!kL zwJq2^yRcw+H>PN$w+P~du7jR#_`xF^C3kFysiW+n>H7?_*DOy z`B)*J$%ajgdbvq7LIk-Jc$NIiL!T(LA%I)ikF`GISRpGH2U~$pjw{+fx*x3X+14zt zmPf>s%b0rEq&Y@&)}9`G1e--&6gKE4K7Y1|hj1}R$t|C9N#@}&nqq8cG*nyX6*Bo* zo|y6BkH=&4F2rt&_3OL5o`mfplsE|eD5zezrK9;;YZat(zL&ni$M$VBZ z!{(JjP9Fen4UCXtFMT7z!kSSwG%3ZE!v~L8Gy^uBgb`!iTA9r<5rg3U2b z9KVhHE9~H1u)D+GHu2GAX&gVU#!r)*tvKe?t}x>70xX@>T5OT1!B3i)dXwAA%VeyJ zORRhm>nLUfo4r4CRvXx1w{ix2X;_Z&8wlZ#3PK3KtICx#iyY?ljHAa&k@{%^=kXK~ zY`dTuf*q&a9`0o;kt*Z~;c$z(o8sZ(67yIg46UgR%GCmn_}N$_bljouY9))8NW)K`8E=PF-p3uN8|tt?jgEk;qcGqyM=jet4YAQR zSP9+lt}IjoJERQk9NgUMko;|1=E7ApAHXiZt*g|qPQiXOV{Bl=571qE#34<6b|D+y z?44>%x7}hh@cg^XflSLT8Xs;rK%wfry1l+^QMnNQA-pSln)rjyvN_O7D4Fy)-EvmK zn!AR9HGAlE*5m+YzWa`Ihvv$)Bgw3nOT1-82%fL??*OJHyZQ|tA^X|=`3l;9Us=1r z85)VwpPTgpUp3`&9`ydoka%z{P~AE#)(fuIx|kaO_K z0LVTYgQx5-UeL@Iw6^*;zSB^?=8Gz9O%D+GcfC`=$048Pp9s6ZLLaOwKfZ$P`?tK) z4g7{t`wiqEm)l$B-|tTGV=^BK&(9F}H@hQ==DWO}CKl~@CByXZbf*)jl%@R+n%dlH zXcp(xj92e*rz5{GK{HxggF6jzc2Clb*VNtK*r!(6C4W%Br9WJ2dn1B8qlgsuwXdiY zR`6A*PPY%HM~@Zlrz;Io$m zxm>0#T#pc4&}2R2$(A`sbJ0KgbpR7JZr6ks^s=wpUvQ-p@;L7zW?$BbB8 zBRdUqN5^x?58uU34{ssQsA7fE^>1NsLCm&if*Mt8|2pM9mZZwn*t|{;Co`T?<0^Kp zr(CZ*G)F$cMzIlpyXRHF;}U)$vi6h*LAI zmoJY~0&>^VhAXu)c4Lxv@QE&;EdJvWwoXbgq-nSBySIRi^@sTfqr#Qv8z%`4AI? zMJu_*FL7DuXOt{9-cu04bGlxA6Cu2Wr zmZgVUVlBj=Eg_2dv?<*bnf#*2$VMZi%@|@k1o1S^Jl{hRC$5B~&S>7FBYcPpxk(xl z{+!4~-s|3$9FaI0nbYw|S*sjtg%;iK&h3kvgn18xtBWM_9@CdgMNy>#)XmRPWgq!% zQy|7ziVyYV;YnPYLM3H&)cVh>LWD!0W!h6TYA~N=bMadns(8L>mxvL~f#m3@77pW* zoQ7-(eOSD0AwHqu&bQ!v7r~iO=NpmCX9NN0fMK~yOhcYiF(5ZhyOGB z4u-T89*I^qLQPzf9L{n4N3`H+TI^%nC$ zY6IJ!ykgdP#0gnxtmr0h=JCq1?8bCn3^Qu}o}Yh&X*>!o&>U;?!#tEe8=)1-UD5;T zDQV`LpAIC&poUlpsR=y0;Jdt@=S#HW%Q`&q6FYLtJpZYaPx@@R*&U|j!6dr)?jeV+ z#iupjCCBA3l+RA^*!Dr&iyi0VJ_8Xf^dR>!|DyFi=?153tP_ugqt(M|Ky_2$`RMEE zm#&0AkNY*OqU%ZSXFB_T-tWHp1QX1wUK)b-WL;!5TlN3(nOZb7xVI)b){t&u1^6#goz=-yi`hYSeBGDG_t{#Fdq>2f>> H&vpL;_cN&o diff --git a/Lib/test/test_ensurepip.py b/Lib/test/test_ensurepip.py index bfca0cd7fbe4834..69ab2a4feaa9389 100644 --- a/Lib/test/test_ensurepip.py +++ b/Lib/test/test_ensurepip.py @@ -20,7 +20,6 @@ def test_version(self): # Test version() with tempfile.TemporaryDirectory() as tmpdir: self.touch(tmpdir, "pip-1.2.3b1-py2.py3-none-any.whl") - self.touch(tmpdir, "setuptools-49.1.3-py3-none-any.whl") with (unittest.mock.patch.object(ensurepip, '_PACKAGES', None), unittest.mock.patch.object(ensurepip, '_WHEEL_PKG_DIR', tmpdir)): self.assertEqual(ensurepip.version(), '1.2.3b1') @@ -36,15 +35,12 @@ def test_get_packages_no_dir(self): # use bundled wheel packages self.assertIsNotNone(packages['pip'].wheel_name) - self.assertIsNotNone(packages['setuptools'].wheel_name) def test_get_packages_with_dir(self): # Test _get_packages() with a wheel package directory - setuptools_filename = "setuptools-49.1.3-py3-none-any.whl" pip_filename = "pip-20.2.2-py2.py3-none-any.whl" with tempfile.TemporaryDirectory() as tmpdir: - self.touch(tmpdir, setuptools_filename) self.touch(tmpdir, pip_filename) # not used, make sure that it's ignored self.touch(tmpdir, "wheel-0.34.2-py2.py3-none-any.whl") @@ -53,15 +49,12 @@ def test_get_packages_with_dir(self): unittest.mock.patch.object(ensurepip, '_WHEEL_PKG_DIR', tmpdir)): packages = ensurepip._get_packages() - self.assertEqual(packages['setuptools'].version, '49.1.3') - self.assertEqual(packages['setuptools'].wheel_path, - os.path.join(tmpdir, setuptools_filename)) self.assertEqual(packages['pip'].version, '20.2.2') self.assertEqual(packages['pip'].wheel_path, os.path.join(tmpdir, pip_filename)) # wheel package is ignored - self.assertEqual(sorted(packages), ['pip', 'setuptools']) + self.assertEqual(sorted(packages), ['pip']) class EnsurepipMixin: @@ -92,13 +85,13 @@ def test_basic_bootstrapping(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "setuptools", "pip", + unittest.mock.ANY, "pip", ], unittest.mock.ANY, ) additional_paths = self.run_pip.call_args[0][1] - self.assertEqual(len(additional_paths), 2) + self.assertEqual(len(additional_paths), 1) def test_bootstrapping_with_root(self): ensurepip.bootstrap(root="/foo/bar/") @@ -107,7 +100,7 @@ def test_bootstrapping_with_root(self): [ "install", "--no-cache-dir", "--no-index", "--find-links", unittest.mock.ANY, "--root", "/foo/bar/", - "setuptools", "pip", + "pip", ], unittest.mock.ANY, ) @@ -118,7 +111,7 @@ def test_bootstrapping_with_user(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "--user", "setuptools", "pip", + unittest.mock.ANY, "--user", "pip", ], unittest.mock.ANY, ) @@ -129,7 +122,7 @@ def test_bootstrapping_with_upgrade(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "--upgrade", "setuptools", "pip", + unittest.mock.ANY, "--upgrade", "pip", ], unittest.mock.ANY, ) @@ -140,7 +133,7 @@ def test_bootstrapping_with_verbosity_1(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "-v", "setuptools", "pip", + unittest.mock.ANY, "-v", "pip", ], unittest.mock.ANY, ) @@ -151,7 +144,7 @@ def test_bootstrapping_with_verbosity_2(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "-vv", "setuptools", "pip", + unittest.mock.ANY, "-vv", "pip", ], unittest.mock.ANY, ) @@ -162,7 +155,7 @@ def test_bootstrapping_with_verbosity_3(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "-vvv", "setuptools", "pip", + unittest.mock.ANY, "-vvv", "pip", ], unittest.mock.ANY, ) @@ -239,7 +232,6 @@ def test_uninstall(self): self.run_pip.assert_called_once_with( [ "uninstall", "-y", "--disable-pip-version-check", "pip", - "setuptools", ] ) @@ -250,7 +242,6 @@ def test_uninstall_with_verbosity_1(self): self.run_pip.assert_called_once_with( [ "uninstall", "-y", "--disable-pip-version-check", "-v", "pip", - "setuptools", ] ) @@ -261,7 +252,6 @@ def test_uninstall_with_verbosity_2(self): self.run_pip.assert_called_once_with( [ "uninstall", "-y", "--disable-pip-version-check", "-vv", "pip", - "setuptools", ] ) @@ -272,7 +262,7 @@ def test_uninstall_with_verbosity_3(self): self.run_pip.assert_called_once_with( [ "uninstall", "-y", "--disable-pip-version-check", "-vvv", - "pip", "setuptools", + "pip" ] ) @@ -312,13 +302,13 @@ def test_basic_bootstrapping(self): self.run_pip.assert_called_once_with( [ "install", "--no-cache-dir", "--no-index", "--find-links", - unittest.mock.ANY, "setuptools", "pip", + unittest.mock.ANY, "pip", ], unittest.mock.ANY, ) additional_paths = self.run_pip.call_args[0][1] - self.assertEqual(len(additional_paths), 2) + self.assertEqual(len(additional_paths), 1) self.assertEqual(exit_code, 0) def test_bootstrapping_error_code(self): @@ -344,7 +334,6 @@ def test_basic_uninstall(self): self.run_pip.assert_called_once_with( [ "uninstall", "-y", "--disable-pip-version-check", "pip", - "setuptools", ] ) diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 7cccbe84f4ebfa1..333b97688af5b63 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -227,7 +227,6 @@ def pip_cmd_checker(cmd, **kwargs): 'install', '--upgrade', 'pip', - 'setuptools' ] ) @@ -745,7 +744,6 @@ def do_test_with_pip(self, system_site_packages): # future pip versions, this test can likely be relaxed further. out = out.decode("latin-1") # Force to text, prevent decoding errors self.assertIn("Successfully uninstalled pip", out) - self.assertIn("Successfully uninstalled setuptools", out) # Check pip is now gone from the virtual environment. This only # applies in the system_site_packages=False case, because in the # other case, pip may still be available in the system site-packages diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py index 2f87c62ccba866e..2173c9b13e5cf7f 100644 --- a/Lib/venv/__init__.py +++ b/Lib/venv/__init__.py @@ -13,7 +13,7 @@ import types -CORE_VENV_DEPS = ('pip', 'setuptools') +CORE_VENV_DEPS = ('pip',) logger = logging.getLogger(__name__) @@ -523,7 +523,7 @@ def main(args=None): 'this environment.') parser.add_argument('--upgrade-deps', default=False, action='store_true', dest='upgrade_deps', - help=f'Upgrade core dependencies: {", ".join(CORE_VENV_DEPS)} ' + help=f'Upgrade core dependencies ({", ".join(CORE_VENV_DEPS)}) ' 'to the latest version in PyPI') options = parser.parse_args(args) if options.upgrade and options.clear: diff --git a/Mac/BuildScript/scripts/postflight.ensurepip b/Mac/BuildScript/scripts/postflight.ensurepip index 36d05945b6fd909..ce3c6c1c2bf9e66 100755 --- a/Mac/BuildScript/scripts/postflight.ensurepip +++ b/Mac/BuildScript/scripts/postflight.ensurepip @@ -56,19 +56,19 @@ if [ -d /usr/local/bin ] ; then cd /usr/local/bin - # Create pipx.y and easy_install-x.y links if /usr/local/bin/pythonx.y + # Create pipx.y links if /usr/local/bin/pythonx.y # is linked to this framework version install_links_if_our_fw "python${PYVER}" \ - "pip${PYVER}" "easy_install-${PYVER}" + "pip${PYVER}" # Create pipx link if /usr/local/bin/pythonx is linked to this version install_links_if_our_fw "python${PYMAJOR}" \ "pip${PYMAJOR}" - # Create pip and easy_install link if /usr/local/bin/python + # Create pip link if /usr/local/bin/python # is linked to this version install_links_if_our_fw "python" \ - "pip" "easy_install" + "pip" ) fi exit 0 diff --git a/Mac/Makefile.in b/Mac/Makefile.in index f96912884145383..69ab4198988570d 100644 --- a/Mac/Makefile.in +++ b/Mac/Makefile.in @@ -166,7 +166,6 @@ altinstallunixtools: -if test "x$(ENSUREPIP)" != "xno" ; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - easy_install-$(VERSION) \ pip$(VERSION) \ ; \ do \ diff --git a/Misc/NEWS.d/next/Library/2023-01-14-17-54-56.gh-issue-95299.vUhpKz.rst b/Misc/NEWS.d/next/Library/2023-01-14-17-54-56.gh-issue-95299.vUhpKz.rst new file mode 100644 index 000000000000000..29c30848e09a836 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-01-14-17-54-56.gh-issue-95299.vUhpKz.rst @@ -0,0 +1 @@ +Remove the bundled setuptools wheel from ``ensurepip``, and stop installing setuptools in environments created by ``venv``. diff --git a/Tools/build/verify_ensurepip_wheels.py b/Tools/build/verify_ensurepip_wheels.py index 044d1fd6b3cf2d5..09fd5d9e3103ac9 100755 --- a/Tools/build/verify_ensurepip_wheels.py +++ b/Tools/build/verify_ensurepip_wheels.py @@ -14,7 +14,7 @@ from pathlib import Path from urllib.request import urlopen -PACKAGE_NAMES = ("pip", "setuptools") +PACKAGE_NAMES = ("pip",) ENSURE_PIP_ROOT = Path(__file__).parent.parent.parent / "Lib/ensurepip" WHEEL_DIR = ENSURE_PIP_ROOT / "_bundled" ENSURE_PIP_INIT_PY_TEXT = (ENSURE_PIP_ROOT / "__init__.py").read_text(encoding="utf-8") From c3d015ce62f791e703bfcabb0907cfeefac768a9 Mon Sep 17 00:00:00 2001 From: yuki Date: Tue, 18 Apr 2023 20:18:53 +0900 Subject: [PATCH 08/82] gh-101100: Fix broken reference `__format__` in `string.rst` (#103531) --- Doc/library/string.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/library/string.rst b/Doc/library/string.rst index f55074cc5827184..26b3f5000634f51 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -254,10 +254,10 @@ Some simple format string examples:: "Units destroyed: {players[0]}" # First element of keyword argument 'players'. The *conversion* field causes a type coercion before formatting. Normally, the -job of formatting a value is done by the :meth:`__format__` method of the value +job of formatting a value is done by the :meth:`~object.__format__` method of the value itself. However, in some cases it is desirable to force a type to be formatted as a string, overriding its own definition of formatting. By converting the -value to a string before calling :meth:`__format__`, the normal formatting logic +value to a string before calling :meth:`~object.__format__`, the normal formatting logic is bypassed. Three conversion flags are currently supported: ``'!s'`` which calls :func:`str` From 4e04393b2f64f9e44aefa436cbdac42db98d4ef0 Mon Sep 17 00:00:00 2001 From: zyckk4 <100814967+zyckk4@users.noreply.github.com> Date: Tue, 18 Apr 2023 19:21:26 +0800 Subject: [PATCH 09/82] [Doc] Fix a typo in optparse.rst (#103504) --- Doc/library/optparse.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst index 3e29fed0175e04f..468c3efbe011486 100644 --- a/Doc/library/optparse.rst +++ b/Doc/library/optparse.rst @@ -2027,7 +2027,7 @@ Features of note: values.ensure_value(attr, value) If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then - ensure_value() first sets it to ``value``, and then returns 'value. This is + ensure_value() first sets it to ``value``, and then returns ``value``. This is very handy for actions like ``"extend"``, ``"append"``, and ``"count"``, all of which accumulate data in a variable and expect that variable to be of a certain type (a list for the first two, an integer for the latter). Using From 78cac520c34b133ba32665e601adbc794282f4b7 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Tue, 18 Apr 2023 17:47:08 +0100 Subject: [PATCH 10/82] gh-95299: Remove lingering setuptools reference in installer scripts (GH-103613) --- PC/layout/support/pip.py | 1 - 1 file changed, 1 deletion(-) diff --git a/PC/layout/support/pip.py b/PC/layout/support/pip.py index c54acb250a252ed..0a6582acf348a38 100644 --- a/PC/layout/support/pip.py +++ b/PC/layout/support/pip.py @@ -67,7 +67,6 @@ def extract_pip_files(ns): "--no-color", "install", "pip", - "setuptools", "--upgrade", "--target", str(dest), From 07804ce24c3103ee1bb141af31b9a1a0f92f5e43 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 18 Apr 2023 20:41:14 +0300 Subject: [PATCH 11/82] GH-100530: Change the error message for non-class class patterns (GH-103576) --- .../2023-04-16-14-38-39.gh-issue-100530.OR6-sn.rst | 1 + Python/ceval.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2023-04-16-14-38-39.gh-issue-100530.OR6-sn.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-04-16-14-38-39.gh-issue-100530.OR6-sn.rst b/Misc/NEWS.d/next/Core and Builtins/2023-04-16-14-38-39.gh-issue-100530.OR6-sn.rst new file mode 100644 index 000000000000000..5b1bcc4a680fc3b --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-04-16-14-38-39.gh-issue-100530.OR6-sn.rst @@ -0,0 +1 @@ +Clarify the error message raised when the called part of a class pattern isn't actually a class. diff --git a/Python/ceval.c b/Python/ceval.c index 8c43e3d89c2c2a9..d8495da81e94ec9 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -416,7 +416,7 @@ match_class(PyThreadState *tstate, PyObject *subject, PyObject *type, Py_ssize_t nargs, PyObject *kwargs) { if (!PyType_Check(type)) { - const char *e = "called match pattern must be a type"; + const char *e = "called match pattern must be a class"; _PyErr_Format(tstate, PyExc_TypeError, e); return NULL; } From 700ec657c80e78fb299963ffaa684c859ddb8f87 Mon Sep 17 00:00:00 2001 From: Ethan Furman Date: Tue, 18 Apr 2023 16:19:23 -0700 Subject: [PATCH 12/82] gh-103596: [Enum] do not shadow mixed-in methods/attributes (GH-103600) For example: class Book(StrEnum): title = auto() author = auto() desc = auto() Book.author.desc is Book.desc but Book.author.title() == 'Author' is commonly expected. Using upper-case member names avoids this confusion and possible performance impacts. Co-authored-by: samypr100 <3933065+samypr100@users.noreply.github.com> --- Doc/howto/enum.rst | 14 ++- Doc/library/enum.rst | 7 +- Lib/enum.py | 86 +++++++++++-------- Lib/test/test_enum.py | 17 ++++ ...-04-17-14-47-28.gh-issue-103596.ME1y3_.rst | 2 + 5 files changed, 85 insertions(+), 41 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-04-17-14-47-28.gh-issue-103596.ME1y3_.rst diff --git a/Doc/howto/enum.rst b/Doc/howto/enum.rst index 56391a026cf889d..68b75c529e92c77 100644 --- a/Doc/howto/enum.rst +++ b/Doc/howto/enum.rst @@ -36,8 +36,10 @@ inherits from :class:`Enum` itself. .. note:: Case of Enum Members - Because Enums are used to represent constants we recommend using - UPPER_CASE names for members, and will be using that style in our examples. + Because Enums are used to represent constants, and to help avoid issues + with name clashes between mixin-class methods/attributes and enum names, + we strongly recommend using UPPER_CASE names for members, and will be using + that style in our examples. Depending on the nature of the enum a member's value may or may not be important, but either way that value can be used to get the corresponding @@ -490,6 +492,10 @@ the :meth:`~Enum.__repr__` omits the inherited class' name. For example:: Use the :func:`!dataclass` argument ``repr=False`` to use the standard :func:`repr`. +.. versionchanged:: 3.12 + Only the dataclass fields are shown in the value area, not the dataclass' + name. + Pickling -------- @@ -992,7 +998,9 @@ but remain normal attributes. Enum members are instances of their enum class, and are normally accessed as ``EnumClass.member``. In certain situations, such as writing custom enum behavior, being able to access one member directly from another is useful, -and is supported. +and is supported; however, in order to avoid name clashes between member names +and attributes/methods from mixed-in classes, upper-case names are strongly +recommended. .. versionchanged:: 3.5 diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst index 07acf9da33e275f..582e06261afd722 100644 --- a/Doc/library/enum.rst +++ b/Doc/library/enum.rst @@ -119,7 +119,8 @@ Module Contents :func:`~enum.property` Allows :class:`Enum` members to have attributes without conflicting with - member names. + member names. The ``value`` and ``name`` attributes are implemented this + way. :func:`unique` @@ -169,7 +170,7 @@ Data Types final *enum*, as well as creating the enum members, properly handling duplicates, providing iteration over the enum class, etc. - .. method:: EnumType.__call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None) + .. method:: EnumType.__call__(cls, value, names=None, \*, module=None, qualname=None, type=None, start=1, boundary=None) This method is called in two different ways: @@ -317,7 +318,7 @@ Data Types >>> PowersOfThree.SECOND.value 9 - .. method:: Enum.__init_subclass__(cls, **kwds) + .. method:: Enum.__init_subclass__(cls, \**kwds) A *classmethod* that is used to further configure subsequent subclasses. By default, does nothing. diff --git a/Lib/enum.py b/Lib/enum.py index e9f224a303d3e59..6e497f7ef6a7de1 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -190,6 +190,8 @@ class property(DynamicClassAttribute): """ member = None + _attr_type = None + _cls_type = None def __get__(self, instance, ownerclass=None): if instance is None: @@ -199,33 +201,36 @@ def __get__(self, instance, ownerclass=None): raise AttributeError( '%r has no attribute %r' % (ownerclass, self.name) ) - else: - if self.fget is None: - # look for a member by this name. - try: - return ownerclass._member_map_[self.name] - except KeyError: - raise AttributeError( - '%r has no attribute %r' % (ownerclass, self.name) - ) from None - else: - return self.fget(instance) + if self.fget is not None: + # use previous enum.property + return self.fget(instance) + elif self._attr_type == 'attr': + # look up previous attibute + return getattr(self._cls_type, self.name) + elif self._attr_type == 'desc': + # use previous descriptor + return getattr(instance._value_, self.name) + # look for a member by this name. + try: + return ownerclass._member_map_[self.name] + except KeyError: + raise AttributeError( + '%r has no attribute %r' % (ownerclass, self.name) + ) from None def __set__(self, instance, value): - if self.fset is None: - raise AttributeError( - " cannot set attribute %r" % (self.clsname, self.name) - ) - else: + if self.fset is not None: return self.fset(instance, value) + raise AttributeError( + " cannot set attribute %r" % (self.clsname, self.name) + ) def __delete__(self, instance): - if self.fdel is None: - raise AttributeError( - " cannot delete attribute %r" % (self.clsname, self.name) - ) - else: + if self.fdel is not None: return self.fdel(instance) + raise AttributeError( + " cannot delete attribute %r" % (self.clsname, self.name) + ) def __set_name__(self, ownerclass, name): self.name = name @@ -313,27 +318,38 @@ def __set_name__(self, enum_class, member_name): enum_class._member_names_.append(member_name) # if necessary, get redirect in place and then add it to _member_map_ found_descriptor = None + descriptor_type = None + class_type = None for base in enum_class.__mro__[1:]: - descriptor = base.__dict__.get(member_name) - if descriptor is not None: - if isinstance(descriptor, (property, DynamicClassAttribute)): - found_descriptor = descriptor + attr = base.__dict__.get(member_name) + if attr is not None: + if isinstance(attr, (property, DynamicClassAttribute)): + found_descriptor = attr + class_type = base + descriptor_type = 'enum' break - elif ( - hasattr(descriptor, 'fget') and - hasattr(descriptor, 'fset') and - hasattr(descriptor, 'fdel') - ): - found_descriptor = descriptor + elif _is_descriptor(attr): + found_descriptor = attr + descriptor_type = descriptor_type or 'desc' + class_type = class_type or base continue + else: + descriptor_type = 'attr' + class_type = base if found_descriptor: redirect = property() redirect.member = enum_member redirect.__set_name__(enum_class, member_name) - # earlier descriptor found; copy fget, fset, fdel to this one. - redirect.fget = found_descriptor.fget - redirect.fset = found_descriptor.fset - redirect.fdel = found_descriptor.fdel + if descriptor_type in ('enum','desc'): + # earlier descriptor found; copy fget, fset, fdel to this one. + redirect.fget = getattr(found_descriptor, 'fget', None) + redirect._get = getattr(found_descriptor, '__get__', None) + redirect.fset = getattr(found_descriptor, 'fset', None) + redirect._set = getattr(found_descriptor, '__set__', None) + redirect.fdel = getattr(found_descriptor, 'fdel', None) + redirect._del = getattr(found_descriptor, '__delete__', None) + redirect._attr_type = descriptor_type + redirect._cls_type = class_type setattr(enum_class, member_name, redirect) else: setattr(enum_class, member_name, enum_member) diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index e9dfcf8586a8234..fb7a016c9007f8d 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -819,10 +819,27 @@ class TestPlainFlag(_EnumTests, _PlainOutputTests, _FlagTests, unittest.TestCase class TestIntEnum(_EnumTests, _MinimalOutputTests, unittest.TestCase): enum_type = IntEnum + # + def test_shadowed_attr(self): + class Number(IntEnum): + divisor = 1 + numerator = 2 + # + self.assertEqual(Number.divisor.numerator, 1) + self.assertIs(Number.numerator.divisor, Number.divisor) class TestStrEnum(_EnumTests, _MinimalOutputTests, unittest.TestCase): enum_type = StrEnum + # + def test_shadowed_attr(self): + class Book(StrEnum): + author = 'author' + title = 'title' + # + self.assertEqual(Book.author.title(), 'Author') + self.assertEqual(Book.title.title(), 'Title') + self.assertIs(Book.title.author, Book.author) class TestIntFlag(_EnumTests, _MinimalOutputTests, _FlagTests, unittest.TestCase): diff --git a/Misc/NEWS.d/next/Library/2023-04-17-14-47-28.gh-issue-103596.ME1y3_.rst b/Misc/NEWS.d/next/Library/2023-04-17-14-47-28.gh-issue-103596.ME1y3_.rst new file mode 100644 index 000000000000000..2fa27e60b58efe2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-17-14-47-28.gh-issue-103596.ME1y3_.rst @@ -0,0 +1,2 @@ +Attributes/methods are no longer shadowed by same-named enum members, +although they may be shadowed by enum.property's. From ffdbfe197694cb6f2509b94859ccf3534daa6fd1 Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Tue, 18 Apr 2023 20:30:54 -0600 Subject: [PATCH 13/82] gh-103617: Fix compiler warning in _iomodule.c (#103618) --- Modules/_io/_iomodule.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c index 5644cc05c458006..7f4f1d939fb7e9d 100644 --- a/Modules/_io/_iomodule.c +++ b/Modules/_io/_iomodule.c @@ -616,8 +616,9 @@ iomodule_clear(PyObject *mod) { } static void -iomodule_free(PyObject *mod) { - iomodule_clear(mod); +iomodule_free(void *mod) +{ + (void)iomodule_clear((PyObject *)mod); } From e989e0b62aba9b487faf24d8694d28022d35a776 Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Tue, 18 Apr 2023 21:08:16 -0600 Subject: [PATCH 14/82] gh-103583: Always pass multibyte codec structs as const (#103588) --- Modules/cjkcodecs/multibytecodec.c | 10 +++++----- Modules/cjkcodecs/multibytecodec.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index 55778cdb59e4dc6..c42daefbd328136 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -67,7 +67,7 @@ typedef struct { static char *incnewkwarglist[] = {"errors", NULL}; static char *streamkwarglist[] = {"stream", "errors", NULL}; -static PyObject *multibytecodec_encode(MultibyteCodec *, +static PyObject *multibytecodec_encode(const MultibyteCodec *, MultibyteCodec_State *, PyObject *, Py_ssize_t *, PyObject *, int); @@ -221,7 +221,7 @@ expand_encodebuffer(MultibyteEncodeBuffer *buf, Py_ssize_t esize) */ static int -multibytecodec_encerror(MultibyteCodec *codec, +multibytecodec_encerror(const MultibyteCodec *codec, MultibyteCodec_State *state, MultibyteEncodeBuffer *buf, PyObject *errors, Py_ssize_t e) @@ -375,7 +375,7 @@ multibytecodec_encerror(MultibyteCodec *codec, } static int -multibytecodec_decerror(MultibyteCodec *codec, +multibytecodec_decerror(const MultibyteCodec *codec, MultibyteCodec_State *state, MultibyteDecodeBuffer *buf, PyObject *errors, Py_ssize_t e) @@ -479,7 +479,7 @@ multibytecodec_decerror(MultibyteCodec *codec, } static PyObject * -multibytecodec_encode(MultibyteCodec *codec, +multibytecodec_encode(const MultibyteCodec *codec, MultibyteCodec_State *state, PyObject *text, Py_ssize_t *inpos_t, PyObject *errors, int flags) @@ -1953,7 +1953,7 @@ _multibytecodec___create_codec(PyObject *module, PyObject *arg) /*[clinic end generated code: output=cfa3dce8260e809d input=6840b2a6b183fcfa]*/ { MultibyteCodecObject *self; - MultibyteCodec *codec; + const MultibyteCodec *codec; if (!PyCapsule_IsValid(arg, PyMultibyteCodec_CAPSULE_NAME)) { PyErr_SetString(PyExc_ValueError, "argument type invalid"); diff --git a/Modules/cjkcodecs/multibytecodec.h b/Modules/cjkcodecs/multibytecodec.h index 69404ba96aa1f06..a6ab9cbe61a266a 100644 --- a/Modules/cjkcodecs/multibytecodec.h +++ b/Modules/cjkcodecs/multibytecodec.h @@ -62,14 +62,14 @@ typedef struct { typedef struct { PyObject_HEAD - MultibyteCodec *codec; + const MultibyteCodec *codec; } MultibyteCodecObject; #define MultibyteCodec_Check(state, op) Py_IS_TYPE((op), state->multibytecodec_type) #define _MultibyteStatefulCodec_HEAD \ PyObject_HEAD \ - MultibyteCodec *codec; \ + const MultibyteCodec *codec; \ MultibyteCodec_State state; \ PyObject *errors; typedef struct { From f4d087964e3deaabc902a155efdf0e7f43f78d52 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Wed, 19 Apr 2023 08:02:48 +0300 Subject: [PATCH 15/82] gh-103582: Remove last references to `argparse.REMAINDER` from docs (#103586) --- Doc/library/argparse.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index ee68ac58d3de753..dd59181a30702e6 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -67,7 +67,7 @@ default_ Default value used when an argument is not provided dest_ Specify the attribute name used in the result namespace help_ Help message for an argument metavar_ Alternate display name for the argument as shown in help -nargs_ Number of times the argument can be used :class:`int`, ``'?'``, ``'*'``, ``'+'``, or ``argparse.REMAINDER`` +nargs_ Number of times the argument can be used :class:`int`, ``'?'``, ``'*'``, or ``'+'`` required_ Indicate whether an argument is required or optional ``True`` or ``False`` type_ Automatically convert an argument to the given type :class:`int`, :class:`float`, ``argparse.FileType('w')``, or callable function ====================== =========================================================== ========================================================================================================================== @@ -2218,7 +2218,7 @@ support this parsing style. These parsers do not support all the argparse features, and will raise exceptions if unsupported features are used. In particular, subparsers, -``argparse.REMAINDER``, and mutually exclusive groups that include both +and mutually exclusive groups that include both optionals and positionals are not supported. The following example shows the difference between From d1e4917e06d5638f1a7fa189d6d63ec9c2a27753 Mon Sep 17 00:00:00 2001 From: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Date: Wed, 19 Apr 2023 06:05:52 +0100 Subject: [PATCH 16/82] gh-102778: IDLE - make sys.last_exc available in Shell after traceback (#103314) --------- Co-authored-by: Terry Jan Reedy --- Lib/idlelib/run.py | 1 + .../next/Library/2023-04-06-16-55-51.gh-issue-102778.BWeAmE.rst | 1 + 2 files changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2023-04-06-16-55-51.gh-issue-102778.BWeAmE.rst diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 577c49eb67b20d1..04ce615621ee7cb 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -239,6 +239,7 @@ def print_exception(): efile = sys.stderr typ, val, tb = excinfo = sys.exc_info() sys.last_type, sys.last_value, sys.last_traceback = excinfo + sys.last_exc = val seen = set() def print_exc(typ, exc, tb): diff --git a/Misc/NEWS.d/next/Library/2023-04-06-16-55-51.gh-issue-102778.BWeAmE.rst b/Misc/NEWS.d/next/Library/2023-04-06-16-55-51.gh-issue-102778.BWeAmE.rst new file mode 100644 index 000000000000000..64ae5b5b6d564bf --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-06-16-55-51.gh-issue-102778.BWeAmE.rst @@ -0,0 +1 @@ +Support ``sys.last_exc`` in :mod:`idlelib`. From da2273fec7b1644786b9616592b53b04fdec4024 Mon Sep 17 00:00:00 2001 From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Wed, 19 Apr 2023 15:51:53 +0530 Subject: [PATCH 17/82] GH-88342: clarify that `asyncio.as_completed` accepts generators yielding tasks (#103626) --- Doc/library/asyncio-task.rst | 3 +++ Doc/whatsnew/3.12.rst | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 41d09e1e79705ca..b81d89acf7fd880 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -829,6 +829,9 @@ Waiting Primitives Deprecation warning is emitted if not all awaitable objects in the *aws* iterable are Future-like objects and there is no running event loop. + .. versionchanged:: 3.12 + Added support for generators yielding tasks. + Running in Threads ================== diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index bd95bfeea80c71a..b3bb065741d0374 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -250,7 +250,8 @@ asyncio :mod:`asyncio` does not support legacy generator-based coroutines. (Contributed by Kumar Aditya in :gh:`102748`.) -* :func:`asyncio.wait` now accepts generators yielding tasks. +* :func:`asyncio.wait` and :func:`asyncio.as_completed` now accepts generators + yielding tasks. (Contributed by Kumar Aditya in :gh:`78530`.) csv From bd2ed066c855dadbc739e89f9bc32e218dfc904e Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Wed, 19 Apr 2023 08:15:50 -0600 Subject: [PATCH 18/82] gh-83004: Harden msvcrt further (#103420) --- PC/msvcrtmodule.c | 115 +++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 62 deletions(-) diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index de9a88946aff3e2..090254befc934d2 100644 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -564,88 +564,81 @@ static struct PyMethodDef msvcrt_functions[] = { {NULL, NULL} }; -static void -insertint(PyObject *d, char *name, int value) -{ - PyObject *v = PyLong_FromLong((long) value); - if (v == NULL) { - /* Don't bother reporting this error */ - PyErr_Clear(); - } - else { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); - } -} - -static void -insertptr(PyObject *d, char *name, void *value) +static int +insertptr(PyObject *mod, char *name, void *value) { PyObject *v = PyLong_FromVoidPtr(value); if (v == NULL) { - /* Don't bother reporting this error */ - PyErr_Clear(); - } - else { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); + return -1; } + int rc = PyModule_AddObjectRef(mod, name, v); + Py_DECREF(v); + return rc; } +#define INSERTINT(MOD, NAME, VAL) do { \ + if (PyModule_AddIntConstant(MOD, NAME, VAL) < 0) { \ + return -1; \ + } \ +} while (0) + +#define INSERTPTR(MOD, NAME, PTR) do { \ + if (insertptr(MOD, NAME, PTR) < 0) { \ + return -1; \ + } \ +} while (0) + +#define INSERTSTR(MOD, NAME, CONST) do { \ + if (PyModule_AddStringConstant(MOD, NAME, CONST) < 0) { \ + return -1; \ + } \ +} while (0) + static int exec_module(PyObject* m) { - int st; - PyObject *d = PyModule_GetDict(m); // Borrowed ref. - /* constants for the locking() function's mode argument */ - insertint(d, "LK_LOCK", _LK_LOCK); - insertint(d, "LK_NBLCK", _LK_NBLCK); - insertint(d, "LK_NBRLCK", _LK_NBRLCK); - insertint(d, "LK_RLCK", _LK_RLCK); - insertint(d, "LK_UNLCK", _LK_UNLCK); + INSERTINT(m, "LK_LOCK", _LK_LOCK); + INSERTINT(m, "LK_NBLCK", _LK_NBLCK); + INSERTINT(m, "LK_NBRLCK", _LK_NBRLCK); + INSERTINT(m, "LK_RLCK", _LK_RLCK); + INSERTINT(m, "LK_UNLCK", _LK_UNLCK); #ifdef MS_WINDOWS_DESKTOP - insertint(d, "SEM_FAILCRITICALERRORS", SEM_FAILCRITICALERRORS); - insertint(d, "SEM_NOALIGNMENTFAULTEXCEPT", SEM_NOALIGNMENTFAULTEXCEPT); - insertint(d, "SEM_NOGPFAULTERRORBOX", SEM_NOGPFAULTERRORBOX); - insertint(d, "SEM_NOOPENFILEERRORBOX", SEM_NOOPENFILEERRORBOX); + INSERTINT(m, "SEM_FAILCRITICALERRORS", SEM_FAILCRITICALERRORS); + INSERTINT(m, "SEM_NOALIGNMENTFAULTEXCEPT", SEM_NOALIGNMENTFAULTEXCEPT); + INSERTINT(m, "SEM_NOGPFAULTERRORBOX", SEM_NOGPFAULTERRORBOX); + INSERTINT(m, "SEM_NOOPENFILEERRORBOX", SEM_NOOPENFILEERRORBOX); #endif #ifdef _DEBUG - insertint(d, "CRT_WARN", _CRT_WARN); - insertint(d, "CRT_ERROR", _CRT_ERROR); - insertint(d, "CRT_ASSERT", _CRT_ASSERT); - insertint(d, "CRTDBG_MODE_DEBUG", _CRTDBG_MODE_DEBUG); - insertint(d, "CRTDBG_MODE_FILE", _CRTDBG_MODE_FILE); - insertint(d, "CRTDBG_MODE_WNDW", _CRTDBG_MODE_WNDW); - insertint(d, "CRTDBG_REPORT_MODE", _CRTDBG_REPORT_MODE); - insertptr(d, "CRTDBG_FILE_STDERR", _CRTDBG_FILE_STDERR); - insertptr(d, "CRTDBG_FILE_STDOUT", _CRTDBG_FILE_STDOUT); - insertptr(d, "CRTDBG_REPORT_FILE", _CRTDBG_REPORT_FILE); + INSERTINT(m, "CRT_WARN", _CRT_WARN); + INSERTINT(m, "CRT_ERROR", _CRT_ERROR); + INSERTINT(m, "CRT_ASSERT", _CRT_ASSERT); + INSERTINT(m, "CRTDBG_MODE_DEBUG", _CRTDBG_MODE_DEBUG); + INSERTINT(m, "CRTDBG_MODE_FILE", _CRTDBG_MODE_FILE); + INSERTINT(m, "CRTDBG_MODE_WNDW", _CRTDBG_MODE_WNDW); + INSERTINT(m, "CRTDBG_REPORT_MODE", _CRTDBG_REPORT_MODE); + INSERTPTR(m, "CRTDBG_FILE_STDERR", _CRTDBG_FILE_STDERR); + INSERTPTR(m, "CRTDBG_FILE_STDOUT", _CRTDBG_FILE_STDOUT); + INSERTPTR(m, "CRTDBG_REPORT_FILE", _CRTDBG_REPORT_FILE); #endif +#undef INSERTINT +#undef INSERTPTR + /* constants for the crt versions */ #ifdef _VC_ASSEMBLY_PUBLICKEYTOKEN - st = PyModule_AddStringConstant(m, "VC_ASSEMBLY_PUBLICKEYTOKEN", - _VC_ASSEMBLY_PUBLICKEYTOKEN); - if (st < 0) { - return -1; - } + INSERTSTR(m, "VC_ASSEMBLY_PUBLICKEYTOKEN", _VC_ASSEMBLY_PUBLICKEYTOKEN); #endif #ifdef _CRT_ASSEMBLY_VERSION - st = PyModule_AddStringConstant(m, "CRT_ASSEMBLY_VERSION", - _CRT_ASSEMBLY_VERSION); - if (st < 0) { - return -1; - } + INSERTSTR(m, "CRT_ASSEMBLY_VERSION", _CRT_ASSEMBLY_VERSION); #endif #ifdef __LIBRARIES_ASSEMBLY_NAME_PREFIX - st = PyModule_AddStringConstant(m, "LIBRARIES_ASSEMBLY_NAME_PREFIX", - __LIBRARIES_ASSEMBLY_NAME_PREFIX); - if (st < 0) { - return -1; - } + INSERTSTR(m, "LIBRARIES_ASSEMBLY_NAME_PREFIX", + __LIBRARIES_ASSEMBLY_NAME_PREFIX); #endif +#undef INSERTSTR + /* constants for the 2010 crt versions */ #if defined(_VC_CRT_MAJOR_VERSION) && defined (_VC_CRT_MINOR_VERSION) && defined(_VC_CRT_BUILD_VERSION) && defined(_VC_CRT_RBUILD_VERSION) PyObject *version = PyUnicode_FromFormat("%d.%d.%d.%d", @@ -656,14 +649,12 @@ exec_module(PyObject* m) if (version == NULL) { return -1; } - st = PyModule_AddObjectRef(m, "CRT_ASSEMBLY_VERSION", version); + int st = PyModule_AddObjectRef(m, "CRT_ASSEMBLY_VERSION", version); Py_DECREF(version); if (st < 0) { return -1; } #endif - /* make compiler warning quiet if st is unused */ - (void)st; return 0; } From a6b07b5a345f7f54ee9f6d75e81d2fb55971b35c Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Wed, 19 Apr 2023 10:02:17 -0600 Subject: [PATCH 19/82] gh-103583: Add ref. dependency between multibytecodec modules (#103589) --- Modules/cjkcodecs/cjkcodecs.h | 44 ++++++++++++++++++++++++------ Modules/cjkcodecs/multibytecodec.c | 19 ++++++++++--- Modules/cjkcodecs/multibytecodec.h | 9 +++++- 3 files changed, 58 insertions(+), 14 deletions(-) diff --git a/Modules/cjkcodecs/cjkcodecs.h b/Modules/cjkcodecs/cjkcodecs.h index 646a9fd255ce201..1b0355310eddabb 100644 --- a/Modules/cjkcodecs/cjkcodecs.h +++ b/Modules/cjkcodecs/cjkcodecs.h @@ -284,18 +284,45 @@ getmultibytecodec(void) return _PyImport_GetModuleAttrString("_multibytecodec", "__create_codec"); } +static void +destroy_codec_capsule(PyObject *capsule) +{ + void *ptr = PyCapsule_GetPointer(capsule, CODEC_CAPSULE); + codec_capsule *data = (codec_capsule *)ptr; + Py_DECREF(data->cjk_module); + PyMem_Free(ptr); +} + +static codec_capsule * +capsulate_codec(PyObject *mod, const MultibyteCodec *codec) +{ + codec_capsule *data = PyMem_Malloc(sizeof(codec_capsule)); + if (data == NULL) { + PyErr_NoMemory(); + return NULL; + } + data->codec = codec; + data->cjk_module = Py_NewRef(mod); + return data; +} + static PyObject * -_getcodec(const MultibyteCodec *codec) +_getcodec(PyObject *self, const MultibyteCodec *codec) { PyObject *cofunc = getmultibytecodec(); if (cofunc == NULL) { return NULL; } - PyObject *codecobj = PyCapsule_New((void *)codec, - PyMultibyteCodec_CAPSULE_NAME, - NULL); + codec_capsule *data = capsulate_codec(self, codec); + if (data == NULL) { + Py_DECREF(cofunc); + return NULL; + } + PyObject *codecobj = PyCapsule_New(data, CODEC_CAPSULE, + destroy_codec_capsule); if (codecobj == NULL) { + PyMem_Free(data); Py_DECREF(cofunc); return NULL; } @@ -323,7 +350,7 @@ getcodec(PyObject *self, PyObject *encoding) for (int i = 0; i < st->num_codecs; i++) { const MultibyteCodec *codec = &st->codec_list[i]; if (strcmp(codec->encoding, enc) == 0) { - return _getcodec(codec); + return _getcodec(self, codec); } } @@ -352,8 +379,7 @@ register_maps(PyObject *module) char mhname[256] = "__map_"; strcpy(mhname + sizeof("__map_") - 1, h->charset); - PyObject *capsule = PyCapsule_New((void *)h, - PyMultibyteCodec_CAPSULE_NAME, NULL); + PyObject *capsule = PyCapsule_New((void *)h, MAP_CAPSULE, NULL); if (capsule == NULL) { return -1; } @@ -417,14 +443,14 @@ importmap(const char *modname, const char *symbol, o = PyObject_GetAttrString(mod, symbol); if (o == NULL) goto errorexit; - else if (!PyCapsule_IsValid(o, PyMultibyteCodec_CAPSULE_NAME)) { + else if (!PyCapsule_IsValid(o, MAP_CAPSULE)) { PyErr_SetString(PyExc_ValueError, "map data must be a Capsule."); goto errorexit; } else { struct dbcs_map *map; - map = PyCapsule_GetPointer(o, PyMultibyteCodec_CAPSULE_NAME); + map = PyCapsule_GetPointer(o, MAP_CAPSULE); if (encmap != NULL) *encmap = map->encmap; if (decmap != NULL) diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index c42daefbd328136..8976ad331aaa2ab 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -720,9 +720,17 @@ static struct PyMethodDef multibytecodec_methods[] = { }; static int -multibytecodec_traverse(PyObject *self, visitproc visit, void *arg) +multibytecodec_clear(MultibyteCodecObject *self) +{ + Py_CLEAR(self->cjk_module); + return 0; +} + +static int +multibytecodec_traverse(MultibyteCodecObject *self, visitproc visit, void *arg) { Py_VISIT(Py_TYPE(self)); + Py_VISIT(self->cjk_module); return 0; } @@ -731,6 +739,7 @@ multibytecodec_dealloc(MultibyteCodecObject *self) { PyObject_GC_UnTrack(self); PyTypeObject *tp = Py_TYPE(self); + (void)multibytecodec_clear(self); tp->tp_free(self); Py_DECREF(tp); } @@ -740,6 +749,7 @@ static PyType_Slot multibytecodec_slots[] = { {Py_tp_getattro, PyObject_GenericGetAttr}, {Py_tp_methods, multibytecodec_methods}, {Py_tp_traverse, multibytecodec_traverse}, + {Py_tp_clear, multibytecodec_clear}, {0, NULL}, }; @@ -1953,14 +1963,14 @@ _multibytecodec___create_codec(PyObject *module, PyObject *arg) /*[clinic end generated code: output=cfa3dce8260e809d input=6840b2a6b183fcfa]*/ { MultibyteCodecObject *self; - const MultibyteCodec *codec; - if (!PyCapsule_IsValid(arg, PyMultibyteCodec_CAPSULE_NAME)) { + if (!PyCapsule_IsValid(arg, CODEC_CAPSULE)) { PyErr_SetString(PyExc_ValueError, "argument type invalid"); return NULL; } - codec = PyCapsule_GetPointer(arg, PyMultibyteCodec_CAPSULE_NAME); + codec_capsule *data = PyCapsule_GetPointer(arg, CODEC_CAPSULE); + const MultibyteCodec *codec = data->codec; if (codec->codecinit != NULL && codec->codecinit(codec->config) != 0) return NULL; @@ -1969,6 +1979,7 @@ _multibytecodec___create_codec(PyObject *module, PyObject *arg) if (self == NULL) return NULL; self->codec = codec; + self->cjk_module = Py_NewRef(data->cjk_module); PyObject_GC_Track(self); return (PyObject *)self; diff --git a/Modules/cjkcodecs/multibytecodec.h b/Modules/cjkcodecs/multibytecodec.h index a6ab9cbe61a266a..327cb51129d9451 100644 --- a/Modules/cjkcodecs/multibytecodec.h +++ b/Modules/cjkcodecs/multibytecodec.h @@ -63,6 +63,7 @@ typedef struct { typedef struct { PyObject_HEAD const MultibyteCodec *codec; + PyObject *cjk_module; } MultibyteCodecObject; #define MultibyteCodec_Check(state, op) Py_IS_TYPE((op), state->multibytecodec_type) @@ -130,7 +131,13 @@ typedef struct { #define MBENC_FLUSH 0x0001 /* encode all characters encodable */ #define MBENC_MAX MBENC_FLUSH -#define PyMultibyteCodec_CAPSULE_NAME "multibytecodec.__map_*" +typedef struct { + const MultibyteCodec *codec; + PyObject *cjk_module; +} codec_capsule; + +#define MAP_CAPSULE "multibytecodec.map" +#define CODEC_CAPSULE "multibytecodec.codec" #ifdef __cplusplus From 1ef61cf71a218c71860ff6aecf0fd51edb8b65dc Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 19 Apr 2023 17:18:16 +0100 Subject: [PATCH 20/82] gh-102856: Initial implementation of PEP 701 (#102855) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lysandros Nikolaou Co-authored-by: Batuhan Taskaya Co-authored-by: Marta Gómez Macías Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com> --- Doc/library/token-list.inc | 10 + Grammar/Tokens | 4 + Grammar/python.gram | 54 +- Include/internal/pycore_token.h | 22 +- Lib/test/test_ast.py | 5 - Lib/test/test_cmd_line_script.py | 6 +- Lib/test/test_eof.py | 4 +- Lib/test/test_exceptions.py | 3 +- Lib/test/test_fstring.py | 311 +- Lib/test/test_tokenize.py | 28 +- Lib/test/test_type_comments.py | 2 +- Lib/token.py | 27 +- ...-04-17-16-00-32.gh-issue-102856.UunJ7y.rst | 1 + Parser/action_helpers.c | 539 +- Parser/parser.c | 7846 +++++++++++------ Parser/pegen.c | 2 +- Parser/pegen.h | 18 +- Parser/pegen_errors.c | 16 +- Parser/string_parser.c | 1089 +-- Parser/string_parser.h | 39 +- Parser/token.c | 5 + Parser/tokenizer.c | 489 +- Parser/tokenizer.h | 29 + Programs/test_frozenmain.h | 8 +- Python/Python-tokenize.c | 4 +- Tools/build/generate_token.py | 2 + Tools/peg_generator/pegen/c_generator.py | 1 + 27 files changed, 6425 insertions(+), 4139 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2023-04-17-16-00-32.gh-issue-102856.UunJ7y.rst diff --git a/Doc/library/token-list.inc b/Doc/library/token-list.inc index 2739d5bfc1dfa20..3b345099bf54b56 100644 --- a/Doc/library/token-list.inc +++ b/Doc/library/token-list.inc @@ -201,6 +201,10 @@ Token value for ``":="``. +.. data:: EXCLAMATION + + Token value for ``"!"``. + .. data:: OP .. data:: AWAIT @@ -213,6 +217,12 @@ .. data:: SOFT_KEYWORD +.. data:: FSTRING_START + +.. data:: FSTRING_MIDDLE + +.. data:: FSTRING_END + .. data:: ERRORTOKEN .. data:: N_TOKENS diff --git a/Grammar/Tokens b/Grammar/Tokens index 1f3e3b09913653f..096876fdd130f8e 100644 --- a/Grammar/Tokens +++ b/Grammar/Tokens @@ -53,6 +53,7 @@ ATEQUAL '@=' RARROW '->' ELLIPSIS '...' COLONEQUAL ':=' +EXCLAMATION '!' OP AWAIT @@ -60,6 +61,9 @@ ASYNC TYPE_IGNORE TYPE_COMMENT SOFT_KEYWORD +FSTRING_START +FSTRING_MIDDLE +FSTRING_END ERRORTOKEN # These aren't used by the C tokenizer but are needed for tokenize.py diff --git a/Grammar/python.gram b/Grammar/python.gram index 2498251293e80e4..3a356c65a75195f 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -194,7 +194,7 @@ yield_stmt[stmt_ty]: y=yield_expr { _PyAST_Expr(y, EXTRA) } assert_stmt[stmt_ty]: 'assert' a=expression b=[',' z=expression { z }] { _PyAST_Assert(a, b, EXTRA) } -import_stmt[stmt_ty]: +import_stmt[stmt_ty]: | invalid_import | import_name | import_from @@ -415,8 +415,8 @@ try_stmt[stmt_ty]: | invalid_try_stmt | 'try' &&':' b=block f=finally_block { _PyAST_Try(b, NULL, NULL, f, EXTRA) } | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_block+ el=[else_block] f=[finally_block] { _PyAST_Try(b, ex, el, f, EXTRA) } - | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { - CHECK_VERSION(stmt_ty, 11, "Exception groups are", + | 'try' &&':' b=block ex[asdl_excepthandler_seq*]=except_star_block+ el=[else_block] f=[finally_block] { + CHECK_VERSION(stmt_ty, 11, "Exception groups are", _PyAST_TryStar(b, ex, el, f, EXTRA)) } @@ -807,7 +807,7 @@ atom[expr_ty]: | 'True' { _PyAST_Constant(Py_True, NULL, EXTRA) } | 'False' { _PyAST_Constant(Py_False, NULL, EXTRA) } | 'None' { _PyAST_Constant(Py_None, NULL, EXTRA) } - | &STRING strings + | &(STRING|FSTRING_START) strings | NUMBER | &'(' (tuple | group | genexp) | &'[' (list | listcomp) @@ -877,7 +877,26 @@ lambda_param[arg_ty]: a=NAME { _PyAST_arg(a->v.Name.id, NULL, NULL, EXTRA) } # LITERALS # ======== -strings[expr_ty] (memo): a=STRING+ { _PyPegen_concatenate_strings(p, a) } +fstring_middle[expr_ty]: + | fstring_replacement_field + | t=FSTRING_MIDDLE { _PyPegen_constant_from_token(p, t) } +fstring_replacement_field[expr_ty]: + | '{' a=(yield_expr | star_expressions) debug_expr="="? conversion=[fstring_conversion] format=[fstring_full_format_spec] '}' { + _PyPegen_formatted_value(p, a, debug_expr, conversion, format, EXTRA) + } + | invalid_replacement_field +fstring_conversion[expr_ty]: + | conv_token="!" conv=NAME { _PyPegen_check_fstring_conversion(p, conv_token, conv) } +fstring_full_format_spec[expr_ty]: + | ':' spec=fstring_format_spec* { spec ? _PyAST_JoinedStr((asdl_expr_seq*)spec, EXTRA) : NULL } +fstring_format_spec[expr_ty]: + | t=FSTRING_MIDDLE { _PyPegen_constant_from_token(p, t) } + | fstring_replacement_field +fstring[expr_ty]: + | a=FSTRING_START b=fstring_middle* c=FSTRING_END { _PyPegen_joined_str(p, a, (asdl_expr_seq*)b, c) } + +string[expr_ty]: s[Token*]=STRING { _PyPegen_constant_from_string(p, s) } +strings[expr_ty] (memo): a[asdl_expr_seq*]=(fstring|string)+ { _PyPegen_concatenate_strings(p, a, EXTRA) } list[expr_ty]: | '[' a=[star_named_expressions] ']' { _PyAST_List(a, Load, EXTRA) } @@ -1118,6 +1137,8 @@ invalid_expression: _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } + | a='lambda' [lambda_params] b=':' &(FSTRING_MIDDLE | fstring_replacement_field) { + RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "f-string: lambda expressions are not allowed without parentheses") } invalid_named_expression(memo): | a=expression ':=' expression { @@ -1241,7 +1262,7 @@ invalid_group: invalid_import: | a='import' dotted_name 'from' dotted_name { RAISE_SYNTAX_ERROR_STARTING_FROM(a, "Did you mean to use 'from ... import ...' instead?") } - + invalid_import_from_targets: | import_from_as_names ',' NEWLINE { RAISE_SYNTAX_ERROR("trailing comma not allowed without surrounding parentheses") } @@ -1335,3 +1356,24 @@ invalid_kvpair: | expression a=':' &('}'|',') {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") } invalid_starred_expression: | a='*' expression '=' b=expression { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "cannot assign to iterable argument unpacking") } +invalid_replacement_field: + | '{' a='=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before '='") } + | '{' a='!' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before '!'") } + | '{' a=':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before ':'") } + | '{' a='}' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "f-string: valid expression required before '}'") } + | '{' !(yield_expr | star_expressions) { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting a valid expression after '{'")} + | '{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}') { + PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '=', or '!', or ':', or '}'") } + | '{' (yield_expr | star_expressions) '=' !('!' | ':' | '}') { + PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '!', or ':', or '}'") } + | '{' (yield_expr | star_expressions) '='? invalid_conversion_character + | '{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}') { + PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting ':' or '}'") } + | '{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}' { + PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}', or format specs") } + | '{' (yield_expr | star_expressions) '='? ['!' NAME] !'}' { + PyErr_Occurred() ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: expecting '}'") } + +invalid_conversion_character: + | '!' &(':' | '}') { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: missing conversion character") } + | '!' !NAME { RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("f-string: invalid conversion character") } diff --git a/Include/internal/pycore_token.h b/Include/internal/pycore_token.h index 95459ab9f7d004b..b9df8766736adf6 100644 --- a/Include/internal/pycore_token.h +++ b/Include/internal/pycore_token.h @@ -67,14 +67,18 @@ extern "C" { #define RARROW 51 #define ELLIPSIS 52 #define COLONEQUAL 53 -#define OP 54 -#define AWAIT 55 -#define ASYNC 56 -#define TYPE_IGNORE 57 -#define TYPE_COMMENT 58 -#define SOFT_KEYWORD 59 -#define ERRORTOKEN 60 -#define N_TOKENS 64 +#define EXCLAMATION 54 +#define OP 55 +#define AWAIT 56 +#define ASYNC 57 +#define TYPE_IGNORE 58 +#define TYPE_COMMENT 59 +#define SOFT_KEYWORD 60 +#define FSTRING_START 61 +#define FSTRING_MIDDLE 62 +#define FSTRING_END 63 +#define ERRORTOKEN 64 +#define N_TOKENS 68 #define NT_OFFSET 256 /* Special definitions for cooperation with parser */ @@ -86,6 +90,8 @@ extern "C" { (x) == NEWLINE || \ (x) == INDENT || \ (x) == DEDENT) +#define ISSTRINGLIT(x) ((x) == STRING || \ + (x) == FSTRING_MIDDLE) // Symbols exported for test_peg_generator diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 6c932e1305e1dd6..a579bfd79307841 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -774,11 +774,6 @@ def test_parenthesized_with_feature_version(self): ast.parse('with (CtxManager() as example): ...', feature_version=(3, 8)) ast.parse('with CtxManager() as example: ...', feature_version=(3, 8)) - def test_debug_f_string_feature_version(self): - ast.parse('f"{x=}"', feature_version=(3, 8)) - with self.assertRaises(SyntaxError): - ast.parse('f"{x=}"', feature_version=(3, 7)) - def test_assignment_expression_feature_version(self): ast.parse('(x := 0)', feature_version=(3, 8)) with self.assertRaises(SyntaxError): diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index f10d72ea5547ee6..d98e23855e0c194 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -636,9 +636,9 @@ def test_syntaxerror_multi_line_fstring(self): self.assertEqual( stderr.splitlines()[-3:], [ - b' foo"""', - b' ^', - b'SyntaxError: f-string: empty expression not allowed', + b' foo = f"""{}', + b' ^', + b'SyntaxError: f-string: valid expression required before \'}\'', ], ) diff --git a/Lib/test/test_eof.py b/Lib/test/test_eof.py index abcbf046e2cc224..be4fd73bfdc36bb 100644 --- a/Lib/test/test_eof.py +++ b/Lib/test/test_eof.py @@ -4,6 +4,7 @@ from test import support from test.support import os_helper from test.support import script_helper +from test.support import warnings_helper import unittest class EOFTestCase(unittest.TestCase): @@ -36,10 +37,11 @@ def test_EOFS_with_file(self): rc, out, err = script_helper.assert_python_failure(file_name) self.assertIn(b'unterminated triple-quoted string literal (detected at line 3)', err) + @warnings_helper.ignore_warnings(category=SyntaxWarning) def test_eof_with_line_continuation(self): expect = "unexpected EOF while parsing (, line 1)" try: - compile('"\\xhh" \\', '', 'exec', dont_inherit=True) + compile('"\\Xhh" \\', '', 'exec') except SyntaxError as msg: self.assertEqual(str(msg), expect) else: diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index 684e888f08c778f..4ef7decfbc263e2 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -155,6 +155,7 @@ def ckmsg(src, msg): ckmsg(s, "'continue' not properly in loop") ckmsg("continue\n", "'continue' not properly in loop") + ckmsg("f'{6 0}'", "invalid syntax. Perhaps you forgot a comma?") def testSyntaxErrorMissingParens(self): def ckmsg(src, msg, exception=SyntaxError): @@ -227,7 +228,7 @@ def testSyntaxErrorOffset(self): check('Python = "\u1e54\xfd\u0163\u0125\xf2\xf1" +', 1, 20) check(b'# -*- coding: cp1251 -*-\nPython = "\xcf\xb3\xf2\xee\xed" +', 2, 19, encoding='cp1251') - check(b'Python = "\xcf\xb3\xf2\xee\xed" +', 1, 18) + check(b'Python = "\xcf\xb3\xf2\xee\xed" +', 1, 10) check('x = "a', 1, 5) check('lambda x: x = 2', 1, 1) check('f{a + b + c}', 1, 2) diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index b3f6ef41d77b8fa..f571233da07b78d 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -329,13 +329,13 @@ def test_ast_line_numbers_multiline_fstring(self): self.assertEqual(t.body[1].lineno, 3) self.assertEqual(t.body[1].value.lineno, 3) self.assertEqual(t.body[1].value.values[0].lineno, 3) - self.assertEqual(t.body[1].value.values[1].lineno, 3) - self.assertEqual(t.body[1].value.values[2].lineno, 3) + self.assertEqual(t.body[1].value.values[1].lineno, 4) + self.assertEqual(t.body[1].value.values[2].lineno, 6) self.assertEqual(t.body[1].col_offset, 0) self.assertEqual(t.body[1].value.col_offset, 0) - self.assertEqual(t.body[1].value.values[0].col_offset, 0) - self.assertEqual(t.body[1].value.values[1].col_offset, 0) - self.assertEqual(t.body[1].value.values[2].col_offset, 0) + self.assertEqual(t.body[1].value.values[0].col_offset, 4) + self.assertEqual(t.body[1].value.values[1].col_offset, 2) + self.assertEqual(t.body[1].value.values[2].col_offset, 11) # NOTE: the following lineno information and col_offset is correct for # expressions within FormattedValues. binop = t.body[1].value.values[1].value @@ -366,13 +366,13 @@ def test_ast_line_numbers_multiline_fstring(self): self.assertEqual(t.body[0].lineno, 2) self.assertEqual(t.body[0].value.lineno, 2) self.assertEqual(t.body[0].value.values[0].lineno, 2) - self.assertEqual(t.body[0].value.values[1].lineno, 2) - self.assertEqual(t.body[0].value.values[2].lineno, 2) + self.assertEqual(t.body[0].value.values[1].lineno, 3) + self.assertEqual(t.body[0].value.values[2].lineno, 3) self.assertEqual(t.body[0].col_offset, 0) self.assertEqual(t.body[0].value.col_offset, 4) - self.assertEqual(t.body[0].value.values[0].col_offset, 4) - self.assertEqual(t.body[0].value.values[1].col_offset, 4) - self.assertEqual(t.body[0].value.values[2].col_offset, 4) + self.assertEqual(t.body[0].value.values[0].col_offset, 8) + self.assertEqual(t.body[0].value.values[1].col_offset, 10) + self.assertEqual(t.body[0].value.values[2].col_offset, 17) # Check {blech} self.assertEqual(t.body[0].value.values[1].value.lineno, 3) self.assertEqual(t.body[0].value.values[1].value.end_lineno, 3) @@ -387,6 +387,20 @@ def test_ast_line_numbers_with_parentheses(self): t = ast.parse(expr) self.assertEqual(type(t), ast.Module) self.assertEqual(len(t.body), 1) + # check the joinedstr location + joinedstr = t.body[0].value + self.assertEqual(type(joinedstr), ast.JoinedStr) + self.assertEqual(joinedstr.lineno, 3) + self.assertEqual(joinedstr.end_lineno, 3) + self.assertEqual(joinedstr.col_offset, 4) + self.assertEqual(joinedstr.end_col_offset, 17) + # check the formatted value location + fv = t.body[0].value.values[1] + self.assertEqual(type(fv), ast.FormattedValue) + self.assertEqual(fv.lineno, 3) + self.assertEqual(fv.end_lineno, 3) + self.assertEqual(fv.col_offset, 7) + self.assertEqual(fv.end_col_offset, 16) # check the test(t) location call = t.body[0].value.values[1].value self.assertEqual(type(call), ast.Call) @@ -397,6 +411,50 @@ def test_ast_line_numbers_with_parentheses(self): expr = """ x = ( + u'wat', + u"wat", + b'wat', + b"wat", + f'wat', + f"wat", +) + +y = ( + u'''wat''', + u\"\"\"wat\"\"\", + b'''wat''', + b\"\"\"wat\"\"\", + f'''wat''', + f\"\"\"wat\"\"\", +) + """ + t = ast.parse(expr) + self.assertEqual(type(t), ast.Module) + self.assertEqual(len(t.body), 2) + x, y = t.body + + # Check the single quoted string offsets first. + offsets = [ + (elt.col_offset, elt.end_col_offset) + for elt in x.value.elts + ] + self.assertTrue(all( + offset == (4, 10) + for offset in offsets + )) + + # Check the triple quoted string offsets. + offsets = [ + (elt.col_offset, elt.end_col_offset) + for elt in y.value.elts + ] + self.assertTrue(all( + offset == (4, 14) + for offset in offsets + )) + + expr = """ +x = ( 'PERL_MM_OPT', ( f'wat' f'some_string={f(x)} ' @@ -415,9 +473,9 @@ def test_ast_line_numbers_with_parentheses(self): # check the first wat self.assertEqual(type(wat1), ast.Constant) self.assertEqual(wat1.lineno, 4) - self.assertEqual(wat1.end_lineno, 6) - self.assertEqual(wat1.col_offset, 12) - self.assertEqual(wat1.end_col_offset, 18) + self.assertEqual(wat1.end_lineno, 5) + self.assertEqual(wat1.col_offset, 14) + self.assertEqual(wat1.end_col_offset, 26) # check the call call = middle.value self.assertEqual(type(call), ast.Call) @@ -427,10 +485,14 @@ def test_ast_line_numbers_with_parentheses(self): self.assertEqual(call.end_col_offset, 31) # check the second wat self.assertEqual(type(wat2), ast.Constant) - self.assertEqual(wat2.lineno, 4) + self.assertEqual(wat2.lineno, 5) self.assertEqual(wat2.end_lineno, 6) - self.assertEqual(wat2.col_offset, 12) - self.assertEqual(wat2.end_col_offset, 18) + self.assertEqual(wat2.col_offset, 32) + # wat ends at the offset 17, but the whole f-string + # ends at the offset 18 (since the quote is part of the + # f-string but not the wat string) + self.assertEqual(wat2.end_col_offset, 17) + self.assertEqual(fstring.end_col_offset, 18) def test_docstring(self): def f(): @@ -467,7 +529,7 @@ def test_literal(self): self.assertEqual(f' ', ' ') def test_unterminated_string(self): - self.assertAllRaise(SyntaxError, 'f-string: unterminated string', + self.assertAllRaise(SyntaxError, 'unterminated string', [r"""f'{"x'""", r"""f'{"x}'""", r"""f'{("x'""", @@ -475,28 +537,33 @@ def test_unterminated_string(self): ]) def test_mismatched_parens(self): - self.assertAllRaise(SyntaxError, r"f-string: closing parenthesis '\}' " + self.assertAllRaise(SyntaxError, r"closing parenthesis '\}' " r"does not match opening parenthesis '\('", ["f'{((}'", ]) - self.assertAllRaise(SyntaxError, r"f-string: closing parenthesis '\)' " + self.assertAllRaise(SyntaxError, r"closing parenthesis '\)' " r"does not match opening parenthesis '\['", ["f'{a[4)}'", ]) - self.assertAllRaise(SyntaxError, r"f-string: closing parenthesis '\]' " + self.assertAllRaise(SyntaxError, r"closing parenthesis '\]' " r"does not match opening parenthesis '\('", ["f'{a(4]}'", ]) - self.assertAllRaise(SyntaxError, r"f-string: closing parenthesis '\}' " + self.assertAllRaise(SyntaxError, r"closing parenthesis '\}' " r"does not match opening parenthesis '\['", ["f'{a[4}'", ]) - self.assertAllRaise(SyntaxError, r"f-string: closing parenthesis '\}' " + self.assertAllRaise(SyntaxError, r"closing parenthesis '\}' " r"does not match opening parenthesis '\('", ["f'{a(4}'", ]) self.assertRaises(SyntaxError, eval, "f'{" + "("*500 + "}'") + def test_fstring_nested_too_deeply(self): + self.assertAllRaise(SyntaxError, + "f-string: expressions nested too deeply", + ['f"{1+2:{1+2:{1+1:{1}}}}"']) + def test_double_braces(self): self.assertEqual(f'{{', '{') self.assertEqual(f'a{{', 'a{') @@ -559,8 +626,14 @@ def test_compile_time_concat(self): self.assertEqual(f'' '' f'', '') self.assertEqual(f'' '' f'' '', '') - self.assertAllRaise(SyntaxError, "f-string: expecting '}'", - ["f'{3' f'}'", # can't concat to get a valid f-string + # This is not really [f'{'] + [f'}'] since we treat the inside + # of braces as a purely new context, so it is actually f'{ and + # then eval(' f') (a valid expression) and then }' which would + # constitute a valid f-string. + self.assertEqual(f'{' f'}', ' f') + + self.assertAllRaise(SyntaxError, "expecting '}'", + ['''f'{3' f"}"''', # can't concat to get a valid f-string ]) def test_comments(self): @@ -618,25 +691,19 @@ def test_format_specifier_expressions(self): self.assertEqual(f'{-10:-{"#"}1{0}x}', ' -0xa') self.assertEqual(f'{-10:{"-"}#{1}0{"x"}}', ' -0xa') self.assertEqual(f'{10:#{3 != {4:5} and width}x}', ' 0xa') + self.assertEqual(f'result: {value:{width:{0}}.{precision:1}}', 'result: 12.35') - self.assertAllRaise(SyntaxError, - """f-string: invalid conversion character 'r{"': """ - """expected 's', 'r', or 'a'""", + self.assertAllRaise(SyntaxError, "f-string: expecting ':' or '}'", ["""f'{"s"!r{":10"}}'""", - # This looks like a nested format spec. ]) - self.assertAllRaise(SyntaxError, "f-string: invalid syntax", + self.assertAllRaise(SyntaxError, + "f-string: expecting a valid expression after '{'", [# Invalid syntax inside a nested spec. "f'{4:{/5}}'", ]) - self.assertAllRaise(SyntaxError, "f-string: expressions nested too deeply", - [# Can't nest format specifiers. - "f'result: {value:{width:{0}}.{precision:1}}'", - ]) - self.assertAllRaise(SyntaxError, 'f-string: invalid conversion character', [# No expansion inside conversion or for # the : or ! itself. @@ -655,7 +722,8 @@ def __format__(self, spec): self.assertEqual(f'{x} {x}', '1 2') def test_missing_expression(self): - self.assertAllRaise(SyntaxError, 'f-string: empty expression not allowed', + self.assertAllRaise(SyntaxError, + "f-string: valid expression required before '}'", ["f'{}'", "f'{ }'" "f' {} '", @@ -667,8 +735,8 @@ def test_missing_expression(self): "f'''{\t\f\r\n}'''", ]) - # Different error messages are raised when a specifier ('!', ':' or '=') is used after an empty expression - self.assertAllRaise(SyntaxError, "f-string: expression required before '!'", + self.assertAllRaise(SyntaxError, + "f-string: valid expression required before '!'", ["f'{!r}'", "f'{ !r}'", "f'{!}'", @@ -689,7 +757,8 @@ def test_missing_expression(self): "f'{ !xr:a}'", ]) - self.assertAllRaise(SyntaxError, "f-string: expression required before ':'", + self.assertAllRaise(SyntaxError, + "f-string: valid expression required before ':'", ["f'{:}'", "f'{ :!}'", "f'{:2}'", @@ -697,7 +766,8 @@ def test_missing_expression(self): "f'{:'", ]) - self.assertAllRaise(SyntaxError, "f-string: expression required before '='", + self.assertAllRaise(SyntaxError, + "f-string: valid expression required before '='", ["f'{=}'", "f'{ =}'", "f'{ =:}'", @@ -715,24 +785,18 @@ def test_missing_expression(self): def test_parens_in_expressions(self): self.assertEqual(f'{3,}', '(3,)') - # Add these because when an expression is evaluated, parens - # are added around it. But we shouldn't go from an invalid - # expression to a valid one. The added parens are just - # supposed to allow whitespace (including newlines). - self.assertAllRaise(SyntaxError, 'f-string: invalid syntax', + self.assertAllRaise(SyntaxError, + "f-string: expecting a valid expression after '{'", ["f'{,}'", - "f'{,}'", # this is (,), which is an error ]) self.assertAllRaise(SyntaxError, r"f-string: unmatched '\)'", ["f'{3)+(4}'", ]) - self.assertAllRaise(SyntaxError, 'unterminated string literal', - ["f'{\n}'", - ]) def test_newlines_before_syntax_error(self): - self.assertAllRaise(SyntaxError, "invalid syntax", + self.assertAllRaise(SyntaxError, + "f-string: expecting a valid expression after '{'", ["f'{.}'", "\nf'{.}'", "\n\nf'{.}'"]) def test_backslashes_in_string_part(self): @@ -776,7 +840,7 @@ def test_backslashes_in_string_part(self): self.assertEqual(f'2\x203', '2 3') self.assertEqual(f'\x203', ' 3') - with self.assertWarns(SyntaxWarning): # invalid escape sequence + with self.assertWarns(DeprecationWarning): # invalid escape sequence value = eval(r"f'\{6*7}'") self.assertEqual(value, '\\42') self.assertEqual(f'\\{6*7}', '\\42') @@ -809,18 +873,40 @@ def test_misformed_unicode_character_name(self): r"'\N{GREEK CAPITAL LETTER DELTA'", ]) - def test_no_backslashes_in_expression_part(self): - self.assertAllRaise(SyntaxError, 'f-string expression part cannot include a backslash', - [r"f'{\'a\'}'", - r"f'{\t3}'", - r"f'{\}'", - r"rf'{\'a\'}'", - r"rf'{\t3}'", - r"rf'{\}'", - r"""rf'{"\N{LEFT CURLY BRACKET}"}'""", - r"f'{\n}'", + def test_backslashes_in_expression_part(self): + self.assertEqual(f"{( + 1 + + 2 + )}", "3") + + self.assertEqual("\N{LEFT CURLY BRACKET}", '{') + self.assertEqual(f'{"\N{LEFT CURLY BRACKET}"}', '{') + self.assertEqual(rf'{"\N{LEFT CURLY BRACKET}"}', '{') + + self.assertAllRaise(SyntaxError, + "f-string: valid expression required before '}'", + ["f'{\n}'", ]) + def test_invalid_backslashes_inside_fstring_context(self): + # All of these variations are invalid python syntax, + # so they are also invalid in f-strings as well. + cases = [ + formatting.format(expr=expr) + for formatting in [ + "{expr}", + "f'{{{expr}}}'", + "rf'{{{expr}}}'", + ] + for expr in [ + r"\'a\'", + r"\t3", + r"\\"[0], + ] + ] + self.assertAllRaise(SyntaxError, 'unexpected character after line continuation', + cases) + def test_no_escapes_for_braces(self): """ Only literal curly braces begin an expression. @@ -843,11 +929,69 @@ def test_lambda(self): self.assertEqual(f'{(lambda y:x*y)("8"):10}', "88888 ") # lambda doesn't work without parens, because the colon - # makes the parser think it's a format_spec - self.assertAllRaise(SyntaxError, 'f-string: invalid syntax', + # makes the parser think it's a format_spec + # emit warning if we can match a format_spec + self.assertAllRaise(SyntaxError, + "f-string: lambda expressions are not allowed " + "without parentheses", ["f'{lambda x:x}'", + "f'{lambda :x}'", + "f'{lambda *arg, :x}'", + "f'{1, lambda:x}'", + ]) + + # but don't emit the paren warning in general cases + self.assertAllRaise(SyntaxError, + "f-string: expecting a valid expression after '{'", + ["f'{lambda x:}'", + "f'{lambda :}'", + "f'{+ lambda:None}'", ]) + def test_valid_prefixes(self): + self.assertEqual(F'{1}', "1") + self.assertEqual(FR'{2}', "2") + self.assertEqual(fR'{3}', "3") + + def test_roundtrip_raw_quotes(self): + self.assertEqual(fr"\'", "\\'") + self.assertEqual(fr'\"', '\\"') + self.assertEqual(fr'\"\'', '\\"\\\'') + self.assertEqual(fr'\'\"', '\\\'\\"') + self.assertEqual(fr'\"\'\"', '\\"\\\'\\"') + self.assertEqual(fr'\'\"\'', '\\\'\\"\\\'') + self.assertEqual(fr'\"\'\"\'', '\\"\\\'\\"\\\'') + + def test_fstring_backslash_before_double_bracket(self): + self.assertEqual(f'\{{\}}', '\\{\\}') + self.assertEqual(f'\{{', '\\{') + self.assertEqual(f'\{{{1+1}', '\\{2') + self.assertEqual(f'\}}{1+1}', '\\}2') + self.assertEqual(f'{1+1}\}}', '2\\}') + self.assertEqual(fr'\{{\}}', '\\{\\}') + self.assertEqual(fr'\{{', '\\{') + self.assertEqual(fr'\{{{1+1}', '\\{2') + self.assertEqual(fr'\}}{1+1}', '\\}2') + self.assertEqual(fr'{1+1}\}}', '2\\}') + + def test_fstring_backslash_prefix_raw(self): + self.assertEqual(f'\\', '\\') + self.assertEqual(f'\\\\', '\\\\') + self.assertEqual(fr'\\', r'\\') + self.assertEqual(fr'\\\\', r'\\\\') + self.assertEqual(rf'\\', r'\\') + self.assertEqual(rf'\\\\', r'\\\\') + self.assertEqual(Rf'\\', R'\\') + self.assertEqual(Rf'\\\\', R'\\\\') + self.assertEqual(fR'\\', R'\\') + self.assertEqual(fR'\\\\', R'\\\\') + self.assertEqual(FR'\\', R'\\') + self.assertEqual(FR'\\\\', R'\\\\') + + def test_fstring_format_spec_greedy_matching(self): + self.assertEqual(f"{1:}}}", "1}") + self.assertEqual(f"{1:>3{5}}}}", " 1}") + def test_yield(self): # Not terribly useful, but make sure the yield turns # a function into a generator @@ -1037,6 +1181,11 @@ def test_conversions(self): self.assertEqual(f'{"a"!r}', "'a'") self.assertEqual(f'{"a"!a}', "'a'") + # Conversions can have trailing whitespace after them since it + # does not provide any significance + self.assertEqual(f"{3!s }", "3") + self.assertEqual(f'{3.14!s :10.10}', '3.14 ') + # Not a conversion. self.assertEqual(f'{"a!r"}', "a!r") @@ -1049,16 +1198,27 @@ def test_conversions(self): "f'{3!g'", ]) - self.assertAllRaise(SyntaxError, 'f-string: missed conversion character', + self.assertAllRaise(SyntaxError, 'f-string: missing conversion character', ["f'{3!}'", "f'{3!:'", "f'{3!:}'", ]) - for conv in 'g', 'A', '3', 'G', '!', ' s', 's ', ' s ', 'ä', 'ɐ', 'ª': + for conv_identifier in 'g', 'A', 'G', 'ä', 'ɐ': self.assertAllRaise(SyntaxError, "f-string: invalid conversion character %r: " - "expected 's', 'r', or 'a'" % conv, + "expected 's', 'r', or 'a'" % conv_identifier, + ["f'{3!" + conv_identifier + "}'"]) + + for conv_non_identifier in '3', '!': + self.assertAllRaise(SyntaxError, + "f-string: invalid conversion character", + ["f'{3!" + conv_non_identifier + "}'"]) + + for conv in ' s', ' s ': + self.assertAllRaise(SyntaxError, + "f-string: conversion type must come right after the" + " exclamanation mark", ["f'{3!" + conv + "}'"]) self.assertAllRaise(SyntaxError, @@ -1097,8 +1257,7 @@ def test_mismatched_braces(self): ]) self.assertAllRaise(SyntaxError, "f-string: expecting '}'", - ["f'{3:{{>10}'", - "f'{3'", + ["f'{3'", "f'{3!'", "f'{3:'", "f'{3!s'", @@ -1111,11 +1270,14 @@ def test_mismatched_braces(self): "f'{{{'", "f'{{}}{'", "f'{'", - "f'x{<'", # See bpo-46762. - "f'x{>'", "f'{i='", # See gh-93418. ]) + self.assertAllRaise(SyntaxError, + "f-string: expecting a valid expression after '{'", + ["f'{3:{{>10}'", + ]) + # But these are just normal strings. self.assertEqual(f'{"{"}', '{') self.assertEqual(f'{"}"}', '}') @@ -1314,6 +1476,7 @@ def __repr__(self): self.assertEqual(f'X{x =}Y', 'Xx ='+repr(x)+'Y') self.assertEqual(f'X{x= }Y', 'Xx= '+repr(x)+'Y') self.assertEqual(f'X{x = }Y', 'Xx = '+repr(x)+'Y') + self.assertEqual(f"sadsd {1 + 1 = :{1 + 1:1d}f}", "sadsd 1 + 1 = 2.000000") # These next lines contains tabs. Backslash escapes don't # work in f-strings. @@ -1335,7 +1498,8 @@ def test_walrus(self): self.assertEqual(x, 10) def test_invalid_syntax_error_message(self): - with self.assertRaisesRegex(SyntaxError, "f-string: invalid syntax"): + with self.assertRaisesRegex(SyntaxError, + "f-string: expecting '=', or '!', or ':', or '}'"): compile("f'{a $ b}'", "?", "exec") def test_with_two_commas_in_format_specifier(self): @@ -1359,12 +1523,11 @@ def test_with_an_underscore_and_a_comma_in_format_specifier(self): f'{1:_,}' def test_syntax_error_for_starred_expressions(self): - error_msg = re.escape("cannot use starred expression here") - with self.assertRaisesRegex(SyntaxError, error_msg): + with self.assertRaisesRegex(SyntaxError, "can't use starred expression here"): compile("f'{*a}'", "?", "exec") - error_msg = re.escape("cannot use double starred expression here") - with self.assertRaisesRegex(SyntaxError, error_msg): + with self.assertRaisesRegex(SyntaxError, + "f-string: expecting a valid expression after '{'"): compile("f'{**a}'", "?", "exec") if __name__ == '__main__': diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py index 63c2501cfe2338d..283a7c23609e67d 100644 --- a/Lib/test/test_tokenize.py +++ b/Lib/test/test_tokenize.py @@ -1625,6 +1625,10 @@ def test_random_files(self): # 7 more testfiles fail. Remove them also until the failure is diagnosed. testfiles.remove(os.path.join(tempdir, "test_unicode_identifiers.py")) + + # TODO: Remove this once we can unparse PEP 701 syntax + testfiles.remove(os.path.join(tempdir, "test_fstring.py")) + for f in ('buffer', 'builtin', 'fileio', 'inspect', 'os', 'platform', 'sys'): testfiles.remove(os.path.join(tempdir, "test_%s.py") % f) @@ -1937,25 +1941,39 @@ def test_string(self): """) self.check_tokenize('f"abc"', """\ - STRING 'f"abc"' (1, 0) (1, 6) + FSTRING_START 'f"' (1, 0) (1, 2) + FSTRING_MIDDLE 'abc' (1, 2) (1, 5) + FSTRING_END '"' (1, 5) (1, 6) """) self.check_tokenize('fR"a{b}c"', """\ - STRING 'fR"a{b}c"' (1, 0) (1, 9) + FSTRING_START 'fR"' (1, 0) (1, 3) + FSTRING_MIDDLE 'a' (1, 3) (1, 4) + LBRACE '{' (1, 4) (1, 5) + NAME 'b' (1, 5) (1, 6) + RBRACE '}' (1, 6) (1, 7) + FSTRING_MIDDLE 'c' (1, 7) (1, 8) + FSTRING_END '"' (1, 8) (1, 9) """) self.check_tokenize('f"""abc"""', """\ - STRING 'f\"\"\"abc\"\"\"' (1, 0) (1, 10) + FSTRING_START 'f\"""' (1, 0) (1, 4) + FSTRING_MIDDLE 'abc' (1, 4) (1, 7) + FSTRING_END '\"""' (1, 7) (1, 10) """) self.check_tokenize(r'f"abc\ def"', """\ - STRING 'f"abc\\\\\\ndef"' (1, 0) (2, 4) + FSTRING_START \'f"\' (1, 0) (1, 2) + FSTRING_MIDDLE 'abc\\\\\\ndef' (1, 2) (2, 3) + FSTRING_END '"' (2, 3) (2, 4) """) self.check_tokenize(r'Rf"abc\ def"', """\ - STRING 'Rf"abc\\\\\\ndef"' (1, 0) (2, 4) + FSTRING_START 'Rf"' (1, 0) (1, 3) + FSTRING_MIDDLE 'abc\\\\\\ndef' (1, 3) (2, 3) + FSTRING_END '"' (2, 3) (2, 4) """) def test_function(self): diff --git a/Lib/test/test_type_comments.py b/Lib/test/test_type_comments.py index 8db7394d1512aa4..aba4a44be9da962 100644 --- a/Lib/test/test_type_comments.py +++ b/Lib/test/test_type_comments.py @@ -272,7 +272,7 @@ def test_matmul(self): pass def test_fstring(self): - for tree in self.parse_all(fstring, minver=6): + for tree in self.parse_all(fstring): pass def test_underscorednumber(self): diff --git a/Lib/token.py b/Lib/token.py index 95b107c6643b3f3..1459d12b376f827 100644 --- a/Lib/token.py +++ b/Lib/token.py @@ -57,18 +57,22 @@ RARROW = 51 ELLIPSIS = 52 COLONEQUAL = 53 -OP = 54 -AWAIT = 55 -ASYNC = 56 -TYPE_IGNORE = 57 -TYPE_COMMENT = 58 -SOFT_KEYWORD = 59 +EXCLAMATION = 54 +OP = 55 +AWAIT = 56 +ASYNC = 57 +TYPE_IGNORE = 58 +TYPE_COMMENT = 59 +SOFT_KEYWORD = 60 +FSTRING_START = 61 +FSTRING_MIDDLE = 62 +FSTRING_END = 63 # These aren't used by the C tokenizer but are needed for tokenize.py -ERRORTOKEN = 60 -COMMENT = 61 -NL = 62 -ENCODING = 63 -N_TOKENS = 64 +ERRORTOKEN = 64 +COMMENT = 65 +NL = 66 +ENCODING = 67 +N_TOKENS = 68 # Special definitions for cooperation with parser NT_OFFSET = 256 @@ -78,6 +82,7 @@ __all__.extend(tok_name.values()) EXACT_TOKEN_TYPES = { + '!': EXCLAMATION, '!=': NOTEQUAL, '%': PERCENT, '%=': PERCENTEQUAL, diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-04-17-16-00-32.gh-issue-102856.UunJ7y.rst b/Misc/NEWS.d/next/Core and Builtins/2023-04-17-16-00-32.gh-issue-102856.UunJ7y.rst new file mode 100644 index 000000000000000..35eceb83816bcb3 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-04-17-16-00-32.gh-issue-102856.UunJ7y.rst @@ -0,0 +1 @@ +Implement the required C tokenizer changes for PEP 701. Patch by Pablo Galindo Salgado, Lysandros Nikolaou, Batuhan Taskaya, Marta Gómez Macías and sunmy2019. diff --git a/Parser/action_helpers.c b/Parser/action_helpers.c index 46390966892d168..55c0f6fdd620f42 100644 --- a/Parser/action_helpers.c +++ b/Parser/action_helpers.c @@ -1,6 +1,7 @@ #include #include "pegen.h" +#include "tokenizer.h" #include "string_parser.h" #include "pycore_runtime.h" // _PyRuntime @@ -853,96 +854,6 @@ _PyPegen_seq_delete_starred_exprs(Parser *p, asdl_seq *kwargs) return new_seq; } -expr_ty -_PyPegen_concatenate_strings(Parser *p, asdl_seq *strings) -{ - Py_ssize_t len = asdl_seq_LEN(strings); - assert(len > 0); - - Token *first = asdl_seq_GET_UNTYPED(strings, 0); - Token *last = asdl_seq_GET_UNTYPED(strings, len - 1); - - int bytesmode = 0; - PyObject *bytes_str = NULL; - - FstringParser state; - _PyPegen_FstringParser_Init(&state); - - for (Py_ssize_t i = 0; i < len; i++) { - Token *t = asdl_seq_GET_UNTYPED(strings, i); - - int this_bytesmode; - int this_rawmode; - PyObject *s; - const char *fstr; - Py_ssize_t fstrlen = -1; - - if (_PyPegen_parsestr(p, &this_bytesmode, &this_rawmode, &s, &fstr, &fstrlen, t) != 0) { - goto error; - } - - /* Check that we are not mixing bytes with unicode. */ - if (i != 0 && bytesmode != this_bytesmode) { - RAISE_SYNTAX_ERROR("cannot mix bytes and nonbytes literals"); - Py_XDECREF(s); - goto error; - } - bytesmode = this_bytesmode; - - if (fstr != NULL) { - assert(s == NULL && !bytesmode); - - int result = _PyPegen_FstringParser_ConcatFstring(p, &state, &fstr, fstr + fstrlen, - this_rawmode, 0, first, t, last); - if (result < 0) { - goto error; - } - } - else { - /* String or byte string. */ - assert(s != NULL && fstr == NULL); - assert(bytesmode ? PyBytes_CheckExact(s) : PyUnicode_CheckExact(s)); - - if (bytesmode) { - if (i == 0) { - bytes_str = s; - } - else { - PyBytes_ConcatAndDel(&bytes_str, s); - if (!bytes_str) { - goto error; - } - } - } - else { - /* This is a regular string. Concatenate it. */ - if (_PyPegen_FstringParser_ConcatAndDel(&state, s) < 0) { - goto error; - } - } - } - } - - if (bytesmode) { - if (_PyArena_AddPyObject(p->arena, bytes_str) < 0) { - goto error; - } - return _PyAST_Constant(bytes_str, NULL, first->lineno, - first->col_offset, last->end_lineno, - last->end_col_offset, p->arena); - } - - return _PyPegen_FstringParser_Finish(p, &state, first, last); - -error: - Py_XDECREF(bytes_str); - _PyPegen_FstringParser_Dealloc(&state); - if (PyErr_Occurred()) { - _Pypegen_raise_decode_error(p); - } - return NULL; -} - expr_ty _PyPegen_ensure_imaginary(Parser *p, expr_ty exp) { @@ -1054,6 +965,18 @@ _PyPegen_check_legacy_stmt(Parser *p, expr_ty name) { return 0; } +expr_ty +_PyPegen_check_fstring_conversion(Parser *p, Token* symbol, expr_ty conv) { + if (symbol->lineno != conv->lineno || symbol->end_col_offset != conv->col_offset) { + return RAISE_SYNTAX_ERROR_KNOWN_RANGE( + symbol, conv, + "f-string: conversion type must come right after the exclamanation mark" + ); + } + return conv; +} + + const char * _PyPegen_get_expr_name(expr_ty e) { @@ -1271,3 +1194,439 @@ _PyPegen_nonparen_genexp_in_call(Parser *p, expr_ty args, asdl_comprehension_seq "Generator expression must be parenthesized" ); } + +// Fstring stuff + +static expr_ty +decode_fstring_buffer(Parser *p, int lineno, int col_offset, int end_lineno, + int end_col_offset) +{ + tokenizer_mode *tok_mode = &(p->tok->tok_mode_stack[p->tok->tok_mode_stack_index]); + assert(tok_mode->last_expr_buffer != NULL); + assert(tok_mode->last_expr_size >= 0 && tok_mode->last_expr_end >= 0); + + PyObject *res = PyUnicode_DecodeUTF8( + tok_mode->last_expr_buffer, + tok_mode->last_expr_size - tok_mode->last_expr_end, + NULL + ); + if (!res || _PyArena_AddPyObject(p->arena, res) < 0) { + Py_XDECREF(res); + return NULL; + } + + return _PyAST_Constant(res, NULL, lineno, col_offset, end_lineno, end_col_offset, p->arena); +} + +static expr_ty +_PyPegen_decode_fstring_part(Parser* p, int is_raw, expr_ty constant) { + assert(PyUnicode_CheckExact(constant->v.Constant.value)); + + const char* bstr = PyUnicode_AsUTF8(constant->v.Constant.value); + if (bstr == NULL) { + return NULL; + } + + size_t len; + if (strcmp(bstr, "{{") == 0 || strcmp(bstr, "}}") == 0) { + len = 1; + } else { + len = strlen(bstr); + } + + is_raw = is_raw || strchr(bstr, '\\') == NULL; + PyObject *str = _PyPegen_decode_string(p, is_raw, bstr, len, NULL); + if (str == NULL) { + _Pypegen_raise_decode_error(p); + return NULL; + } + if (_PyArena_AddPyObject(p->arena, str) < 0) { + Py_DECREF(str); + return NULL; + } + return _PyAST_Constant(str, NULL, constant->lineno, constant->col_offset, + constant->end_lineno, constant->end_col_offset, + p->arena); +} + +static asdl_expr_seq * +unpack_top_level_joined_strs(Parser *p, asdl_expr_seq *raw_expressions) +{ + /* The parser might put multiple f-string values into an individual + * JoinedStr node at the top level due to stuff like f-string debugging + * expressions. This function flattens those and promotes them to the + * upper level. Only simplifies AST, but the compiler already takes care + * of the regular output, so this is not necessary if you are not going + * to expose the output AST to Python level. */ + + Py_ssize_t i, req_size, raw_size; + + req_size = raw_size = asdl_seq_LEN(raw_expressions); + expr_ty expr; + for (i = 0; i < raw_size; i++) { + expr = asdl_seq_GET(raw_expressions, i); + if (expr->kind == JoinedStr_kind) { + req_size += asdl_seq_LEN(expr->v.JoinedStr.values) - 1; + } + } + + asdl_expr_seq *expressions = _Py_asdl_expr_seq_new(req_size, p->arena); + + Py_ssize_t raw_index, req_index = 0; + for (raw_index = 0; raw_index < raw_size; raw_index++) { + expr = asdl_seq_GET(raw_expressions, raw_index); + if (expr->kind == JoinedStr_kind) { + asdl_expr_seq *values = expr->v.JoinedStr.values; + for (Py_ssize_t n = 0; n < asdl_seq_LEN(values); n++) { + asdl_seq_SET(expressions, req_index, asdl_seq_GET(values, n)); + req_index++; + } + } else { + asdl_seq_SET(expressions, req_index, expr); + req_index++; + } + } + return expressions; +} + +expr_ty +_PyPegen_joined_str(Parser *p, Token* a, asdl_expr_seq* raw_expressions, Token*b) { + asdl_expr_seq *expr = unpack_top_level_joined_strs(p, raw_expressions); + Py_ssize_t n_items = asdl_seq_LEN(expr); + + const char* quote_str = PyBytes_AsString(a->bytes); + if (quote_str == NULL) { + return NULL; + } + int is_raw = strpbrk(quote_str, "rR") != NULL; + + asdl_expr_seq *seq = _Py_asdl_expr_seq_new(n_items, p->arena); + if (seq == NULL) { + return NULL; + } + + Py_ssize_t index = 0; + for (Py_ssize_t i = 0; i < n_items; i++) { + expr_ty item = asdl_seq_GET(expr, i); + if (item->kind == Constant_kind) { + item = _PyPegen_decode_fstring_part(p, is_raw, item); + if (item == NULL) { + return NULL; + } + + /* Tokenizer emits string parts even when the underlying string + might become an empty value (e.g. FSTRING_MIDDLE with the value \\n) + so we need to check for them and simplify it here. */ + if (PyUnicode_CheckExact(item->v.Constant.value) + && PyUnicode_GET_LENGTH(item->v.Constant.value) == 0) { + continue; + } + } + asdl_seq_SET(seq, index++, item); + } + + asdl_expr_seq *resized_exprs; + if (index != n_items) { + resized_exprs = _Py_asdl_expr_seq_new(index, p->arena); + if (resized_exprs == NULL) { + return NULL; + } + for (Py_ssize_t i = 0; i < index; i++) { + asdl_seq_SET(resized_exprs, i, asdl_seq_GET(seq, i)); + } + } + else { + resized_exprs = seq; + } + + return _PyAST_JoinedStr(resized_exprs, a->lineno, a->col_offset, + b->end_lineno, b->end_col_offset, + p->arena); +} + +expr_ty _PyPegen_constant_from_token(Parser* p, Token* tok) { + char* bstr = PyBytes_AsString(tok->bytes); + if (bstr == NULL) { + return NULL; + } + PyObject* str = PyUnicode_FromString(bstr); + if (str == NULL) { + return NULL; + } + if (_PyArena_AddPyObject(p->arena, str) < 0) { + Py_DECREF(str); + return NULL; + } + return _PyAST_Constant(str, NULL, tok->lineno, tok->col_offset, + tok->end_lineno, tok->end_col_offset, + p->arena); +} + +expr_ty _PyPegen_constant_from_string(Parser* p, Token* tok) { + char* the_str = PyBytes_AsString(tok->bytes); + if (the_str == NULL) { + return NULL; + } + PyObject *s = _PyPegen_parse_string(p, tok); + if (s == NULL) { + _Pypegen_raise_decode_error(p); + return NULL; + } + if (_PyArena_AddPyObject(p->arena, s) < 0) { + Py_DECREF(s); + return NULL; + } + PyObject *kind = NULL; + if (the_str && the_str[0] == 'u') { + kind = _PyPegen_new_identifier(p, "u"); + if (kind == NULL) { + return NULL; + } + } + return _PyAST_Constant(s, kind, tok->lineno, tok->col_offset, tok->end_lineno, tok->end_col_offset, p->arena); +} + +expr_ty _PyPegen_formatted_value(Parser *p, expr_ty expression, Token *debug, expr_ty conversion, + expr_ty format, int lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena) { + int conversion_val = -1; + if (conversion != NULL) { + assert(conversion->kind == Name_kind); + Py_UCS4 first = PyUnicode_READ_CHAR(conversion->v.Name.id, 0); + + if (PyUnicode_GET_LENGTH(conversion->v.Name.id) > 1 || + !(first == 's' || first == 'r' || first == 'a')) { + RAISE_SYNTAX_ERROR_KNOWN_LOCATION(conversion, + "f-string: invalid conversion character %R: expected 's', 'r', or 'a'", + conversion->v.Name.id); + return NULL; + } + + conversion_val = Py_SAFE_DOWNCAST(first, Py_UCS4, int); + } + else if (debug && !format) { + /* If no conversion is specified, use !r for debug expressions */ + conversion_val = (int)'r'; + } + + expr_ty formatted_value = _PyAST_FormattedValue( + expression, conversion_val, format, + lineno, col_offset, end_lineno, + end_col_offset, arena + ); + + if (debug) { + /* Find the non whitespace token after the "=" */ + int debug_end_line, debug_end_offset; + + if (conversion) { + debug_end_line = conversion->lineno; + debug_end_offset = conversion->col_offset; + } + else if (format) { + debug_end_line = format->lineno; + debug_end_offset = format->col_offset + 1; // HACK: ?? + } + else { + debug_end_line = end_lineno; + debug_end_offset = end_col_offset; + } + + expr_ty debug_text = decode_fstring_buffer(p, lineno, col_offset + 1, + debug_end_line, debug_end_offset - 1); + if (!debug_text) { + return NULL; + } + + asdl_expr_seq *values = _Py_asdl_expr_seq_new(2, arena); + asdl_seq_SET(values, 0, debug_text); + asdl_seq_SET(values, 1, formatted_value); + return _PyAST_JoinedStr(values, lineno, col_offset, debug_end_line, debug_end_offset, p->arena); + } + else { + return formatted_value; + } +} + +expr_ty +_PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *strings, + int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena) +{ + Py_ssize_t len = asdl_seq_LEN(strings); + assert(len > 0); + + int f_string_found = 0; + int unicode_string_found = 0; + int bytes_found = 0; + + Py_ssize_t i = 0; + Py_ssize_t n_flattened_elements = 0; + for (i = 0; i < len; i++) { + expr_ty elem = asdl_seq_GET(strings, i); + if (elem->kind == Constant_kind) { + if (PyBytes_CheckExact(elem->v.Constant.value)) { + bytes_found = 1; + } else { + unicode_string_found = 1; + } + n_flattened_elements++; + } else { + n_flattened_elements += asdl_seq_LEN(elem->v.JoinedStr.values); + f_string_found = 1; + } + } + + if ((unicode_string_found || f_string_found) && bytes_found) { + RAISE_SYNTAX_ERROR("cannot mix bytes and nonbytes literals"); + return NULL; + } + + if (bytes_found) { + PyObject* res = PyBytes_FromString(""); + + /* Bytes literals never get a kind, but just for consistency + since they are represented as Constant nodes, we'll mirror + the same behavior as unicode strings for determining the + kind. */ + PyObject* kind = asdl_seq_GET(strings, 0)->v.Constant.kind; + for (i = 0; i < len; i++) { + expr_ty elem = asdl_seq_GET(strings, i); + PyBytes_Concat(&res, elem->v.Constant.value); + } + if (!res || _PyArena_AddPyObject(arena, res) < 0) { + Py_XDECREF(res); + return NULL; + } + return _PyAST_Constant(res, kind, lineno, col_offset, end_lineno, end_col_offset, p->arena); + } + + if (!f_string_found && len == 1) { + return asdl_seq_GET(strings, 0); + } + + asdl_expr_seq* flattened = _Py_asdl_expr_seq_new(n_flattened_elements, p->arena); + if (flattened == NULL) { + return NULL; + } + + /* build flattened list */ + Py_ssize_t current_pos = 0; + Py_ssize_t j = 0; + for (i = 0; i < len; i++) { + expr_ty elem = asdl_seq_GET(strings, i); + if (elem->kind == Constant_kind) { + asdl_seq_SET(flattened, current_pos++, elem); + } else { + for (j = 0; j < asdl_seq_LEN(elem->v.JoinedStr.values); j++) { + expr_ty subvalue = asdl_seq_GET(elem->v.JoinedStr.values, j); + if (subvalue == NULL) { + return NULL; + } + asdl_seq_SET(flattened, current_pos++, subvalue); + } + } + } + + /* calculate folded element count */ + Py_ssize_t n_elements = 0; + int prev_is_constant = 0; + for (i = 0; i < n_flattened_elements; i++) { + expr_ty elem = asdl_seq_GET(flattened, i); + + /* The concatenation of a FormattedValue and an empty Contant should + lead to the FormattedValue itself. Thus, we will not take any empty + constants into account, just as in `_PyPegen_joined_str` */ + if (f_string_found && elem->kind == Constant_kind && + PyUnicode_CheckExact(elem->v.Constant.value) && + PyUnicode_GET_LENGTH(elem->v.Constant.value) == 0) + continue; + + if (!prev_is_constant || elem->kind != Constant_kind) { + n_elements++; + } + prev_is_constant = elem->kind == Constant_kind; + } + + asdl_expr_seq* values = _Py_asdl_expr_seq_new(n_elements, p->arena); + if (values == NULL) { + return NULL; + } + + /* build folded list */ + _PyUnicodeWriter writer; + current_pos = 0; + for (i = 0; i < n_flattened_elements; i++) { + expr_ty elem = asdl_seq_GET(flattened, i); + + /* if the current elem and the following are constants, + fold them and all consequent constants */ + if (elem->kind == Constant_kind) { + if (i + 1 < n_flattened_elements && + asdl_seq_GET(flattened, i + 1)->kind == Constant_kind) { + expr_ty first_elem = elem; + + /* When a string is getting concatenated, the kind of the string + is determined by the first string in the concatenation + sequence. + + u"abc" "def" -> u"abcdef" + "abc" u"abc" -> "abcabc" */ + PyObject *kind = elem->v.Constant.kind; + + _PyUnicodeWriter_Init(&writer); + expr_ty last_elem = elem; + for (j = i; j < n_flattened_elements; j++) { + expr_ty current_elem = asdl_seq_GET(flattened, j); + if (current_elem->kind == Constant_kind) { + if (_PyUnicodeWriter_WriteStr( + &writer, current_elem->v.Constant.value)) { + _PyUnicodeWriter_Dealloc(&writer); + return NULL; + } + last_elem = current_elem; + } else { + break; + } + } + i = j - 1; + + PyObject *concat_str = _PyUnicodeWriter_Finish(&writer); + if (concat_str == NULL) { + _PyUnicodeWriter_Dealloc(&writer); + return NULL; + } + if (_PyArena_AddPyObject(p->arena, concat_str) < 0) { + Py_DECREF(concat_str); + return NULL; + } + elem = _PyAST_Constant(concat_str, kind, first_elem->lineno, + first_elem->col_offset, + last_elem->end_lineno, + last_elem->end_col_offset, p->arena); + if (elem == NULL) { + return NULL; + } + } + + /* Drop all empty contanst strings */ + if (f_string_found && + PyUnicode_CheckExact(elem->v.Constant.value) && + PyUnicode_GET_LENGTH(elem->v.Constant.value) == 0) { + continue; + } + } + + asdl_seq_SET(values, current_pos++, elem); + } + + if (!f_string_found) { + assert(n_elements == 1); + expr_ty elem = asdl_seq_GET(values, 0); + assert(elem->kind == Constant_kind); + return elem; + } + + assert(current_pos == n_elements); + return _PyAST_JoinedStr(values, lineno, col_offset, end_lineno, end_col_offset, p->arena); +} diff --git a/Parser/parser.c b/Parser/parser.c index e0a88a9cc72c8b8..771366844fc4894 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -17,52 +17,52 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { - {"if", 641}, - {"as", 639}, - {"in", 650}, + {"if", 642}, + {"as", 640}, + {"in", 651}, {"or", 574}, {"is", 582}, {NULL, -1}, }, (KeywordToken[]) { - {"del", 603}, - {"def", 651}, - {"for", 649}, - {"try", 623}, + {"del", 604}, + {"def", 652}, + {"for", 650}, + {"try", 624}, {"and", 575}, {"not", 581}, {NULL, -1}, }, (KeywordToken[]) { - {"from", 607}, + {"from", 608}, {"pass", 504}, - {"with", 614}, - {"elif", 643}, - {"else", 644}, - {"None", 601}, - {"True", 600}, + {"with", 615}, + {"elif", 644}, + {"else", 645}, + {"None", 602}, + {"True", 601}, {NULL, -1}, }, (KeywordToken[]) { {"raise", 522}, {"yield", 573}, {"break", 508}, - {"class", 653}, - {"while", 646}, - {"False", 602}, + {"class", 654}, + {"while", 647}, + {"False", 603}, {NULL, -1}, }, (KeywordToken[]) { {"return", 519}, - {"import", 606}, + {"import", 607}, {"assert", 526}, {"global", 523}, - {"except", 636}, - {"lambda", 586}, + {"except", 637}, + {"lambda", 600}, {NULL, -1}, }, (KeywordToken[]) { - {"finally", 632}, + {"finally", 633}, {NULL, -1}, }, (KeywordToken[]) { @@ -224,341 +224,370 @@ static char *soft_keywords[] = { #define lambda_param_with_default_type 1144 #define lambda_param_maybe_default_type 1145 #define lambda_param_type 1146 -#define strings_type 1147 -#define list_type 1148 -#define tuple_type 1149 -#define set_type 1150 -#define dict_type 1151 -#define double_starred_kvpairs_type 1152 -#define double_starred_kvpair_type 1153 -#define kvpair_type 1154 -#define for_if_clauses_type 1155 -#define for_if_clause_type 1156 -#define listcomp_type 1157 -#define setcomp_type 1158 -#define genexp_type 1159 -#define dictcomp_type 1160 -#define arguments_type 1161 -#define args_type 1162 -#define kwargs_type 1163 -#define starred_expression_type 1164 -#define kwarg_or_starred_type 1165 -#define kwarg_or_double_starred_type 1166 -#define star_targets_type 1167 -#define star_targets_list_seq_type 1168 -#define star_targets_tuple_seq_type 1169 -#define star_target_type 1170 -#define target_with_star_atom_type 1171 -#define star_atom_type 1172 -#define single_target_type 1173 -#define single_subscript_attribute_target_type 1174 -#define t_primary_type 1175 // Left-recursive -#define t_lookahead_type 1176 -#define del_targets_type 1177 -#define del_target_type 1178 -#define del_t_atom_type 1179 -#define type_expressions_type 1180 -#define func_type_comment_type 1181 -#define invalid_arguments_type 1182 -#define invalid_kwarg_type 1183 -#define expression_without_invalid_type 1184 -#define invalid_legacy_expression_type 1185 -#define invalid_expression_type 1186 -#define invalid_named_expression_type 1187 -#define invalid_assignment_type 1188 -#define invalid_ann_assign_target_type 1189 -#define invalid_del_stmt_type 1190 -#define invalid_block_type 1191 -#define invalid_comprehension_type 1192 -#define invalid_dict_comprehension_type 1193 -#define invalid_parameters_type 1194 -#define invalid_default_type 1195 -#define invalid_star_etc_type 1196 -#define invalid_kwds_type 1197 -#define invalid_parameters_helper_type 1198 -#define invalid_lambda_parameters_type 1199 -#define invalid_lambda_parameters_helper_type 1200 -#define invalid_lambda_star_etc_type 1201 -#define invalid_lambda_kwds_type 1202 -#define invalid_double_type_comments_type 1203 -#define invalid_with_item_type 1204 -#define invalid_for_target_type 1205 -#define invalid_group_type 1206 -#define invalid_import_type 1207 -#define invalid_import_from_targets_type 1208 -#define invalid_with_stmt_type 1209 -#define invalid_with_stmt_indent_type 1210 -#define invalid_try_stmt_type 1211 -#define invalid_except_stmt_type 1212 -#define invalid_finally_stmt_type 1213 -#define invalid_except_stmt_indent_type 1214 -#define invalid_except_star_stmt_indent_type 1215 -#define invalid_match_stmt_type 1216 -#define invalid_case_block_type 1217 -#define invalid_as_pattern_type 1218 -#define invalid_class_pattern_type 1219 -#define invalid_class_argument_pattern_type 1220 -#define invalid_if_stmt_type 1221 -#define invalid_elif_stmt_type 1222 -#define invalid_else_stmt_type 1223 -#define invalid_while_stmt_type 1224 -#define invalid_for_stmt_type 1225 -#define invalid_def_raw_type 1226 -#define invalid_class_def_raw_type 1227 -#define invalid_double_starred_kvpairs_type 1228 -#define invalid_kvpair_type 1229 -#define invalid_starred_expression_type 1230 -#define _loop0_1_type 1231 -#define _loop0_2_type 1232 -#define _loop1_3_type 1233 -#define _loop0_5_type 1234 -#define _gather_4_type 1235 -#define _tmp_6_type 1236 -#define _tmp_7_type 1237 -#define _tmp_8_type 1238 -#define _tmp_9_type 1239 -#define _tmp_10_type 1240 -#define _tmp_11_type 1241 -#define _tmp_12_type 1242 -#define _tmp_13_type 1243 -#define _loop1_14_type 1244 -#define _tmp_15_type 1245 -#define _tmp_16_type 1246 -#define _tmp_17_type 1247 -#define _loop0_19_type 1248 -#define _gather_18_type 1249 -#define _loop0_21_type 1250 -#define _gather_20_type 1251 -#define _tmp_22_type 1252 -#define _tmp_23_type 1253 -#define _loop0_24_type 1254 -#define _loop1_25_type 1255 -#define _loop0_27_type 1256 -#define _gather_26_type 1257 -#define _tmp_28_type 1258 -#define _loop0_30_type 1259 -#define _gather_29_type 1260 -#define _tmp_31_type 1261 -#define _loop1_32_type 1262 -#define _tmp_33_type 1263 -#define _tmp_34_type 1264 -#define _tmp_35_type 1265 -#define _loop0_36_type 1266 -#define _loop0_37_type 1267 -#define _loop0_38_type 1268 -#define _loop1_39_type 1269 -#define _loop0_40_type 1270 -#define _loop1_41_type 1271 -#define _loop1_42_type 1272 -#define _loop1_43_type 1273 -#define _loop0_44_type 1274 -#define _loop1_45_type 1275 -#define _loop0_46_type 1276 -#define _loop1_47_type 1277 -#define _loop0_48_type 1278 -#define _loop0_49_type 1279 -#define _loop1_50_type 1280 -#define _loop0_52_type 1281 -#define _gather_51_type 1282 -#define _loop0_54_type 1283 -#define _gather_53_type 1284 -#define _loop0_56_type 1285 -#define _gather_55_type 1286 -#define _loop0_58_type 1287 -#define _gather_57_type 1288 -#define _tmp_59_type 1289 -#define _loop1_60_type 1290 -#define _loop1_61_type 1291 -#define _tmp_62_type 1292 -#define _tmp_63_type 1293 -#define _loop1_64_type 1294 -#define _loop0_66_type 1295 -#define _gather_65_type 1296 -#define _tmp_67_type 1297 -#define _tmp_68_type 1298 -#define _tmp_69_type 1299 -#define _tmp_70_type 1300 -#define _loop0_72_type 1301 -#define _gather_71_type 1302 -#define _loop0_74_type 1303 -#define _gather_73_type 1304 -#define _tmp_75_type 1305 -#define _loop0_77_type 1306 -#define _gather_76_type 1307 -#define _loop0_79_type 1308 -#define _gather_78_type 1309 -#define _loop1_80_type 1310 -#define _loop1_81_type 1311 -#define _loop0_83_type 1312 -#define _gather_82_type 1313 -#define _loop1_84_type 1314 -#define _loop1_85_type 1315 -#define _loop1_86_type 1316 -#define _tmp_87_type 1317 -#define _loop0_89_type 1318 -#define _gather_88_type 1319 -#define _tmp_90_type 1320 -#define _tmp_91_type 1321 -#define _tmp_92_type 1322 -#define _tmp_93_type 1323 -#define _tmp_94_type 1324 -#define _loop0_95_type 1325 -#define _loop0_96_type 1326 -#define _loop0_97_type 1327 -#define _loop1_98_type 1328 -#define _loop0_99_type 1329 -#define _loop1_100_type 1330 -#define _loop1_101_type 1331 -#define _loop1_102_type 1332 -#define _loop0_103_type 1333 -#define _loop1_104_type 1334 -#define _loop0_105_type 1335 -#define _loop1_106_type 1336 -#define _loop0_107_type 1337 -#define _loop1_108_type 1338 -#define _loop1_109_type 1339 -#define _tmp_110_type 1340 -#define _loop0_112_type 1341 -#define _gather_111_type 1342 -#define _loop1_113_type 1343 -#define _loop0_114_type 1344 -#define _loop0_115_type 1345 -#define _tmp_116_type 1346 -#define _loop0_118_type 1347 -#define _gather_117_type 1348 -#define _tmp_119_type 1349 -#define _loop0_121_type 1350 -#define _gather_120_type 1351 -#define _loop0_123_type 1352 -#define _gather_122_type 1353 -#define _loop0_125_type 1354 -#define _gather_124_type 1355 -#define _loop0_127_type 1356 -#define _gather_126_type 1357 -#define _loop0_128_type 1358 -#define _loop0_130_type 1359 -#define _gather_129_type 1360 -#define _loop1_131_type 1361 -#define _tmp_132_type 1362 -#define _loop0_134_type 1363 -#define _gather_133_type 1364 -#define _loop0_136_type 1365 -#define _gather_135_type 1366 -#define _loop0_138_type 1367 -#define _gather_137_type 1368 -#define _loop0_140_type 1369 -#define _gather_139_type 1370 -#define _loop0_142_type 1371 -#define _gather_141_type 1372 -#define _tmp_143_type 1373 -#define _tmp_144_type 1374 -#define _tmp_145_type 1375 -#define _tmp_146_type 1376 -#define _tmp_147_type 1377 -#define _tmp_148_type 1378 -#define _tmp_149_type 1379 -#define _tmp_150_type 1380 -#define _tmp_151_type 1381 -#define _tmp_152_type 1382 -#define _tmp_153_type 1383 -#define _loop0_154_type 1384 -#define _loop0_155_type 1385 -#define _loop0_156_type 1386 -#define _tmp_157_type 1387 -#define _tmp_158_type 1388 -#define _tmp_159_type 1389 -#define _tmp_160_type 1390 -#define _tmp_161_type 1391 -#define _loop0_162_type 1392 -#define _loop0_163_type 1393 -#define _loop0_164_type 1394 -#define _loop1_165_type 1395 -#define _tmp_166_type 1396 -#define _loop0_167_type 1397 -#define _tmp_168_type 1398 -#define _loop0_169_type 1399 -#define _loop1_170_type 1400 -#define _tmp_171_type 1401 -#define _tmp_172_type 1402 -#define _tmp_173_type 1403 -#define _loop0_174_type 1404 -#define _tmp_175_type 1405 -#define _tmp_176_type 1406 -#define _loop1_177_type 1407 -#define _tmp_178_type 1408 -#define _loop0_179_type 1409 -#define _loop0_180_type 1410 -#define _loop0_181_type 1411 -#define _loop0_183_type 1412 -#define _gather_182_type 1413 -#define _tmp_184_type 1414 -#define _loop0_185_type 1415 -#define _tmp_186_type 1416 -#define _loop0_187_type 1417 -#define _loop1_188_type 1418 -#define _loop1_189_type 1419 -#define _tmp_190_type 1420 -#define _tmp_191_type 1421 -#define _loop0_192_type 1422 -#define _tmp_193_type 1423 -#define _tmp_194_type 1424 -#define _tmp_195_type 1425 -#define _loop0_197_type 1426 -#define _gather_196_type 1427 -#define _loop0_199_type 1428 -#define _gather_198_type 1429 -#define _loop0_201_type 1430 -#define _gather_200_type 1431 -#define _loop0_203_type 1432 -#define _gather_202_type 1433 -#define _tmp_204_type 1434 -#define _loop0_205_type 1435 -#define _loop1_206_type 1436 -#define _tmp_207_type 1437 -#define _loop0_208_type 1438 -#define _loop1_209_type 1439 -#define _tmp_210_type 1440 -#define _tmp_211_type 1441 -#define _tmp_212_type 1442 -#define _tmp_213_type 1443 -#define _tmp_214_type 1444 -#define _tmp_215_type 1445 -#define _tmp_216_type 1446 -#define _tmp_217_type 1447 -#define _tmp_218_type 1448 -#define _tmp_219_type 1449 -#define _loop0_221_type 1450 -#define _gather_220_type 1451 -#define _tmp_222_type 1452 -#define _tmp_223_type 1453 -#define _tmp_224_type 1454 -#define _tmp_225_type 1455 -#define _tmp_226_type 1456 -#define _tmp_227_type 1457 -#define _tmp_228_type 1458 -#define _tmp_229_type 1459 -#define _tmp_230_type 1460 -#define _tmp_231_type 1461 -#define _tmp_232_type 1462 -#define _tmp_233_type 1463 -#define _tmp_234_type 1464 -#define _tmp_235_type 1465 -#define _tmp_236_type 1466 -#define _tmp_237_type 1467 -#define _tmp_238_type 1468 -#define _tmp_239_type 1469 -#define _tmp_240_type 1470 -#define _tmp_241_type 1471 -#define _tmp_242_type 1472 -#define _tmp_243_type 1473 -#define _tmp_244_type 1474 -#define _tmp_245_type 1475 -#define _tmp_246_type 1476 -#define _tmp_247_type 1477 -#define _tmp_248_type 1478 -#define _tmp_249_type 1479 -#define _tmp_250_type 1480 -#define _tmp_251_type 1481 +#define fstring_middle_type 1147 +#define fstring_replacement_field_type 1148 +#define fstring_conversion_type 1149 +#define fstring_full_format_spec_type 1150 +#define fstring_format_spec_type 1151 +#define string_type 1152 +#define strings_type 1153 +#define list_type 1154 +#define tuple_type 1155 +#define set_type 1156 +#define dict_type 1157 +#define double_starred_kvpairs_type 1158 +#define double_starred_kvpair_type 1159 +#define kvpair_type 1160 +#define for_if_clauses_type 1161 +#define for_if_clause_type 1162 +#define listcomp_type 1163 +#define setcomp_type 1164 +#define genexp_type 1165 +#define dictcomp_type 1166 +#define arguments_type 1167 +#define args_type 1168 +#define kwargs_type 1169 +#define starred_expression_type 1170 +#define kwarg_or_starred_type 1171 +#define kwarg_or_double_starred_type 1172 +#define star_targets_type 1173 +#define star_targets_list_seq_type 1174 +#define star_targets_tuple_seq_type 1175 +#define star_target_type 1176 +#define target_with_star_atom_type 1177 +#define star_atom_type 1178 +#define single_target_type 1179 +#define single_subscript_attribute_target_type 1180 +#define t_primary_type 1181 // Left-recursive +#define t_lookahead_type 1182 +#define del_targets_type 1183 +#define del_target_type 1184 +#define del_t_atom_type 1185 +#define type_expressions_type 1186 +#define func_type_comment_type 1187 +#define invalid_arguments_type 1188 +#define invalid_kwarg_type 1189 +#define expression_without_invalid_type 1190 +#define invalid_legacy_expression_type 1191 +#define invalid_expression_type 1192 +#define invalid_named_expression_type 1193 +#define invalid_assignment_type 1194 +#define invalid_ann_assign_target_type 1195 +#define invalid_del_stmt_type 1196 +#define invalid_block_type 1197 +#define invalid_comprehension_type 1198 +#define invalid_dict_comprehension_type 1199 +#define invalid_parameters_type 1200 +#define invalid_default_type 1201 +#define invalid_star_etc_type 1202 +#define invalid_kwds_type 1203 +#define invalid_parameters_helper_type 1204 +#define invalid_lambda_parameters_type 1205 +#define invalid_lambda_parameters_helper_type 1206 +#define invalid_lambda_star_etc_type 1207 +#define invalid_lambda_kwds_type 1208 +#define invalid_double_type_comments_type 1209 +#define invalid_with_item_type 1210 +#define invalid_for_target_type 1211 +#define invalid_group_type 1212 +#define invalid_import_type 1213 +#define invalid_import_from_targets_type 1214 +#define invalid_with_stmt_type 1215 +#define invalid_with_stmt_indent_type 1216 +#define invalid_try_stmt_type 1217 +#define invalid_except_stmt_type 1218 +#define invalid_finally_stmt_type 1219 +#define invalid_except_stmt_indent_type 1220 +#define invalid_except_star_stmt_indent_type 1221 +#define invalid_match_stmt_type 1222 +#define invalid_case_block_type 1223 +#define invalid_as_pattern_type 1224 +#define invalid_class_pattern_type 1225 +#define invalid_class_argument_pattern_type 1226 +#define invalid_if_stmt_type 1227 +#define invalid_elif_stmt_type 1228 +#define invalid_else_stmt_type 1229 +#define invalid_while_stmt_type 1230 +#define invalid_for_stmt_type 1231 +#define invalid_def_raw_type 1232 +#define invalid_class_def_raw_type 1233 +#define invalid_double_starred_kvpairs_type 1234 +#define invalid_kvpair_type 1235 +#define invalid_starred_expression_type 1236 +#define invalid_replacement_field_type 1237 +#define invalid_conversion_character_type 1238 +#define _loop0_1_type 1239 +#define _loop0_2_type 1240 +#define _loop0_3_type 1241 +#define _loop1_4_type 1242 +#define _loop0_6_type 1243 +#define _gather_5_type 1244 +#define _tmp_7_type 1245 +#define _tmp_8_type 1246 +#define _tmp_9_type 1247 +#define _tmp_10_type 1248 +#define _tmp_11_type 1249 +#define _tmp_12_type 1250 +#define _tmp_13_type 1251 +#define _tmp_14_type 1252 +#define _loop1_15_type 1253 +#define _tmp_16_type 1254 +#define _tmp_17_type 1255 +#define _tmp_18_type 1256 +#define _loop0_20_type 1257 +#define _gather_19_type 1258 +#define _loop0_22_type 1259 +#define _gather_21_type 1260 +#define _tmp_23_type 1261 +#define _tmp_24_type 1262 +#define _loop0_25_type 1263 +#define _loop1_26_type 1264 +#define _loop0_28_type 1265 +#define _gather_27_type 1266 +#define _tmp_29_type 1267 +#define _loop0_31_type 1268 +#define _gather_30_type 1269 +#define _tmp_32_type 1270 +#define _loop1_33_type 1271 +#define _tmp_34_type 1272 +#define _tmp_35_type 1273 +#define _tmp_36_type 1274 +#define _loop0_37_type 1275 +#define _loop0_38_type 1276 +#define _loop0_39_type 1277 +#define _loop1_40_type 1278 +#define _loop0_41_type 1279 +#define _loop1_42_type 1280 +#define _loop1_43_type 1281 +#define _loop1_44_type 1282 +#define _loop0_45_type 1283 +#define _loop1_46_type 1284 +#define _loop0_47_type 1285 +#define _loop1_48_type 1286 +#define _loop0_49_type 1287 +#define _loop0_50_type 1288 +#define _loop1_51_type 1289 +#define _loop0_53_type 1290 +#define _gather_52_type 1291 +#define _loop0_55_type 1292 +#define _gather_54_type 1293 +#define _loop0_57_type 1294 +#define _gather_56_type 1295 +#define _loop0_59_type 1296 +#define _gather_58_type 1297 +#define _tmp_60_type 1298 +#define _loop1_61_type 1299 +#define _loop1_62_type 1300 +#define _tmp_63_type 1301 +#define _tmp_64_type 1302 +#define _loop1_65_type 1303 +#define _loop0_67_type 1304 +#define _gather_66_type 1305 +#define _tmp_68_type 1306 +#define _tmp_69_type 1307 +#define _tmp_70_type 1308 +#define _tmp_71_type 1309 +#define _loop0_73_type 1310 +#define _gather_72_type 1311 +#define _loop0_75_type 1312 +#define _gather_74_type 1313 +#define _tmp_76_type 1314 +#define _loop0_78_type 1315 +#define _gather_77_type 1316 +#define _loop0_80_type 1317 +#define _gather_79_type 1318 +#define _loop1_81_type 1319 +#define _loop1_82_type 1320 +#define _loop0_84_type 1321 +#define _gather_83_type 1322 +#define _loop1_85_type 1323 +#define _loop1_86_type 1324 +#define _loop1_87_type 1325 +#define _tmp_88_type 1326 +#define _loop0_90_type 1327 +#define _gather_89_type 1328 +#define _tmp_91_type 1329 +#define _tmp_92_type 1330 +#define _tmp_93_type 1331 +#define _tmp_94_type 1332 +#define _tmp_95_type 1333 +#define _tmp_96_type 1334 +#define _loop0_97_type 1335 +#define _loop0_98_type 1336 +#define _loop0_99_type 1337 +#define _loop1_100_type 1338 +#define _loop0_101_type 1339 +#define _loop1_102_type 1340 +#define _loop1_103_type 1341 +#define _loop1_104_type 1342 +#define _loop0_105_type 1343 +#define _loop1_106_type 1344 +#define _loop0_107_type 1345 +#define _loop1_108_type 1346 +#define _loop0_109_type 1347 +#define _loop1_110_type 1348 +#define _tmp_111_type 1349 +#define _loop0_112_type 1350 +#define _loop1_113_type 1351 +#define _tmp_114_type 1352 +#define _loop0_116_type 1353 +#define _gather_115_type 1354 +#define _loop1_117_type 1355 +#define _loop0_118_type 1356 +#define _loop0_119_type 1357 +#define _tmp_120_type 1358 +#define _loop0_122_type 1359 +#define _gather_121_type 1360 +#define _tmp_123_type 1361 +#define _loop0_125_type 1362 +#define _gather_124_type 1363 +#define _loop0_127_type 1364 +#define _gather_126_type 1365 +#define _loop0_129_type 1366 +#define _gather_128_type 1367 +#define _loop0_131_type 1368 +#define _gather_130_type 1369 +#define _loop0_132_type 1370 +#define _loop0_134_type 1371 +#define _gather_133_type 1372 +#define _loop1_135_type 1373 +#define _tmp_136_type 1374 +#define _loop0_138_type 1375 +#define _gather_137_type 1376 +#define _loop0_140_type 1377 +#define _gather_139_type 1378 +#define _loop0_142_type 1379 +#define _gather_141_type 1380 +#define _loop0_144_type 1381 +#define _gather_143_type 1382 +#define _loop0_146_type 1383 +#define _gather_145_type 1384 +#define _tmp_147_type 1385 +#define _tmp_148_type 1386 +#define _tmp_149_type 1387 +#define _tmp_150_type 1388 +#define _tmp_151_type 1389 +#define _tmp_152_type 1390 +#define _tmp_153_type 1391 +#define _tmp_154_type 1392 +#define _tmp_155_type 1393 +#define _tmp_156_type 1394 +#define _tmp_157_type 1395 +#define _tmp_158_type 1396 +#define _loop0_159_type 1397 +#define _loop0_160_type 1398 +#define _loop0_161_type 1399 +#define _tmp_162_type 1400 +#define _tmp_163_type 1401 +#define _tmp_164_type 1402 +#define _tmp_165_type 1403 +#define _tmp_166_type 1404 +#define _loop0_167_type 1405 +#define _loop0_168_type 1406 +#define _loop0_169_type 1407 +#define _loop1_170_type 1408 +#define _tmp_171_type 1409 +#define _loop0_172_type 1410 +#define _tmp_173_type 1411 +#define _loop0_174_type 1412 +#define _loop1_175_type 1413 +#define _tmp_176_type 1414 +#define _tmp_177_type 1415 +#define _tmp_178_type 1416 +#define _loop0_179_type 1417 +#define _tmp_180_type 1418 +#define _tmp_181_type 1419 +#define _loop1_182_type 1420 +#define _tmp_183_type 1421 +#define _loop0_184_type 1422 +#define _loop0_185_type 1423 +#define _loop0_186_type 1424 +#define _loop0_188_type 1425 +#define _gather_187_type 1426 +#define _tmp_189_type 1427 +#define _loop0_190_type 1428 +#define _tmp_191_type 1429 +#define _loop0_192_type 1430 +#define _loop1_193_type 1431 +#define _loop1_194_type 1432 +#define _tmp_195_type 1433 +#define _tmp_196_type 1434 +#define _loop0_197_type 1435 +#define _tmp_198_type 1436 +#define _tmp_199_type 1437 +#define _tmp_200_type 1438 +#define _loop0_202_type 1439 +#define _gather_201_type 1440 +#define _loop0_204_type 1441 +#define _gather_203_type 1442 +#define _loop0_206_type 1443 +#define _gather_205_type 1444 +#define _loop0_208_type 1445 +#define _gather_207_type 1446 +#define _tmp_209_type 1447 +#define _loop0_210_type 1448 +#define _loop1_211_type 1449 +#define _tmp_212_type 1450 +#define _loop0_213_type 1451 +#define _loop1_214_type 1452 +#define _tmp_215_type 1453 +#define _tmp_216_type 1454 +#define _tmp_217_type 1455 +#define _tmp_218_type 1456 +#define _tmp_219_type 1457 +#define _tmp_220_type 1458 +#define _tmp_221_type 1459 +#define _tmp_222_type 1460 +#define _tmp_223_type 1461 +#define _tmp_224_type 1462 +#define _loop0_226_type 1463 +#define _gather_225_type 1464 +#define _tmp_227_type 1465 +#define _tmp_228_type 1466 +#define _tmp_229_type 1467 +#define _tmp_230_type 1468 +#define _tmp_231_type 1469 +#define _tmp_232_type 1470 +#define _tmp_233_type 1471 +#define _tmp_234_type 1472 +#define _tmp_235_type 1473 +#define _tmp_236_type 1474 +#define _tmp_237_type 1475 +#define _tmp_238_type 1476 +#define _tmp_239_type 1477 +#define _loop0_240_type 1478 +#define _tmp_241_type 1479 +#define _tmp_242_type 1480 +#define _tmp_243_type 1481 +#define _tmp_244_type 1482 +#define _tmp_245_type 1483 +#define _tmp_246_type 1484 +#define _tmp_247_type 1485 +#define _tmp_248_type 1486 +#define _tmp_249_type 1487 +#define _tmp_250_type 1488 +#define _tmp_251_type 1489 +#define _tmp_252_type 1490 +#define _tmp_253_type 1491 +#define _tmp_254_type 1492 +#define _tmp_255_type 1493 +#define _tmp_256_type 1494 +#define _tmp_257_type 1495 +#define _tmp_258_type 1496 +#define _tmp_259_type 1497 +#define _tmp_260_type 1498 +#define _tmp_261_type 1499 +#define _tmp_262_type 1500 +#define _tmp_263_type 1501 +#define _tmp_264_type 1502 +#define _tmp_265_type 1503 +#define _tmp_266_type 1504 +#define _tmp_267_type 1505 +#define _tmp_268_type 1506 +#define _tmp_269_type 1507 +#define _tmp_270_type 1508 +#define _tmp_271_type 1509 +#define _tmp_272_type 1510 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -707,6 +736,12 @@ static arg_ty lambda_param_no_default_rule(Parser *p); static NameDefaultPair* lambda_param_with_default_rule(Parser *p); static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p); static arg_ty lambda_param_rule(Parser *p); +static expr_ty fstring_middle_rule(Parser *p); +static expr_ty fstring_replacement_field_rule(Parser *p); +static expr_ty fstring_conversion_rule(Parser *p); +static expr_ty fstring_full_format_spec_rule(Parser *p); +static expr_ty fstring_format_spec_rule(Parser *p); +static expr_ty string_rule(Parser *p); static expr_ty strings_rule(Parser *p); static expr_ty list_rule(Parser *p); static expr_ty tuple_rule(Parser *p); @@ -791,12 +826,14 @@ static void *invalid_class_def_raw_rule(Parser *p); static void *invalid_double_starred_kvpairs_rule(Parser *p); static void *invalid_kvpair_rule(Parser *p); static void *invalid_starred_expression_rule(Parser *p); +static void *invalid_replacement_field_rule(Parser *p); +static void *invalid_conversion_character_rule(Parser *p); static asdl_seq *_loop0_1_rule(Parser *p); static asdl_seq *_loop0_2_rule(Parser *p); -static asdl_seq *_loop1_3_rule(Parser *p); -static asdl_seq *_loop0_5_rule(Parser *p); -static asdl_seq *_gather_4_rule(Parser *p); -static void *_tmp_6_rule(Parser *p); +static asdl_seq *_loop0_3_rule(Parser *p); +static asdl_seq *_loop1_4_rule(Parser *p); +static asdl_seq *_loop0_6_rule(Parser *p); +static asdl_seq *_gather_5_rule(Parser *p); static void *_tmp_7_rule(Parser *p); static void *_tmp_8_rule(Parser *p); static void *_tmp_9_rule(Parser *p); @@ -804,139 +841,139 @@ static void *_tmp_10_rule(Parser *p); static void *_tmp_11_rule(Parser *p); static void *_tmp_12_rule(Parser *p); static void *_tmp_13_rule(Parser *p); -static asdl_seq *_loop1_14_rule(Parser *p); -static void *_tmp_15_rule(Parser *p); +static void *_tmp_14_rule(Parser *p); +static asdl_seq *_loop1_15_rule(Parser *p); static void *_tmp_16_rule(Parser *p); static void *_tmp_17_rule(Parser *p); -static asdl_seq *_loop0_19_rule(Parser *p); -static asdl_seq *_gather_18_rule(Parser *p); -static asdl_seq *_loop0_21_rule(Parser *p); -static asdl_seq *_gather_20_rule(Parser *p); -static void *_tmp_22_rule(Parser *p); +static void *_tmp_18_rule(Parser *p); +static asdl_seq *_loop0_20_rule(Parser *p); +static asdl_seq *_gather_19_rule(Parser *p); +static asdl_seq *_loop0_22_rule(Parser *p); +static asdl_seq *_gather_21_rule(Parser *p); static void *_tmp_23_rule(Parser *p); -static asdl_seq *_loop0_24_rule(Parser *p); -static asdl_seq *_loop1_25_rule(Parser *p); -static asdl_seq *_loop0_27_rule(Parser *p); -static asdl_seq *_gather_26_rule(Parser *p); -static void *_tmp_28_rule(Parser *p); -static asdl_seq *_loop0_30_rule(Parser *p); -static asdl_seq *_gather_29_rule(Parser *p); -static void *_tmp_31_rule(Parser *p); -static asdl_seq *_loop1_32_rule(Parser *p); -static void *_tmp_33_rule(Parser *p); +static void *_tmp_24_rule(Parser *p); +static asdl_seq *_loop0_25_rule(Parser *p); +static asdl_seq *_loop1_26_rule(Parser *p); +static asdl_seq *_loop0_28_rule(Parser *p); +static asdl_seq *_gather_27_rule(Parser *p); +static void *_tmp_29_rule(Parser *p); +static asdl_seq *_loop0_31_rule(Parser *p); +static asdl_seq *_gather_30_rule(Parser *p); +static void *_tmp_32_rule(Parser *p); +static asdl_seq *_loop1_33_rule(Parser *p); static void *_tmp_34_rule(Parser *p); static void *_tmp_35_rule(Parser *p); -static asdl_seq *_loop0_36_rule(Parser *p); +static void *_tmp_36_rule(Parser *p); static asdl_seq *_loop0_37_rule(Parser *p); static asdl_seq *_loop0_38_rule(Parser *p); -static asdl_seq *_loop1_39_rule(Parser *p); -static asdl_seq *_loop0_40_rule(Parser *p); -static asdl_seq *_loop1_41_rule(Parser *p); +static asdl_seq *_loop0_39_rule(Parser *p); +static asdl_seq *_loop1_40_rule(Parser *p); +static asdl_seq *_loop0_41_rule(Parser *p); static asdl_seq *_loop1_42_rule(Parser *p); static asdl_seq *_loop1_43_rule(Parser *p); -static asdl_seq *_loop0_44_rule(Parser *p); -static asdl_seq *_loop1_45_rule(Parser *p); -static asdl_seq *_loop0_46_rule(Parser *p); -static asdl_seq *_loop1_47_rule(Parser *p); -static asdl_seq *_loop0_48_rule(Parser *p); +static asdl_seq *_loop1_44_rule(Parser *p); +static asdl_seq *_loop0_45_rule(Parser *p); +static asdl_seq *_loop1_46_rule(Parser *p); +static asdl_seq *_loop0_47_rule(Parser *p); +static asdl_seq *_loop1_48_rule(Parser *p); static asdl_seq *_loop0_49_rule(Parser *p); -static asdl_seq *_loop1_50_rule(Parser *p); -static asdl_seq *_loop0_52_rule(Parser *p); -static asdl_seq *_gather_51_rule(Parser *p); -static asdl_seq *_loop0_54_rule(Parser *p); -static asdl_seq *_gather_53_rule(Parser *p); -static asdl_seq *_loop0_56_rule(Parser *p); -static asdl_seq *_gather_55_rule(Parser *p); -static asdl_seq *_loop0_58_rule(Parser *p); -static asdl_seq *_gather_57_rule(Parser *p); -static void *_tmp_59_rule(Parser *p); -static asdl_seq *_loop1_60_rule(Parser *p); +static asdl_seq *_loop0_50_rule(Parser *p); +static asdl_seq *_loop1_51_rule(Parser *p); +static asdl_seq *_loop0_53_rule(Parser *p); +static asdl_seq *_gather_52_rule(Parser *p); +static asdl_seq *_loop0_55_rule(Parser *p); +static asdl_seq *_gather_54_rule(Parser *p); +static asdl_seq *_loop0_57_rule(Parser *p); +static asdl_seq *_gather_56_rule(Parser *p); +static asdl_seq *_loop0_59_rule(Parser *p); +static asdl_seq *_gather_58_rule(Parser *p); +static void *_tmp_60_rule(Parser *p); static asdl_seq *_loop1_61_rule(Parser *p); -static void *_tmp_62_rule(Parser *p); +static asdl_seq *_loop1_62_rule(Parser *p); static void *_tmp_63_rule(Parser *p); -static asdl_seq *_loop1_64_rule(Parser *p); -static asdl_seq *_loop0_66_rule(Parser *p); -static asdl_seq *_gather_65_rule(Parser *p); -static void *_tmp_67_rule(Parser *p); +static void *_tmp_64_rule(Parser *p); +static asdl_seq *_loop1_65_rule(Parser *p); +static asdl_seq *_loop0_67_rule(Parser *p); +static asdl_seq *_gather_66_rule(Parser *p); static void *_tmp_68_rule(Parser *p); static void *_tmp_69_rule(Parser *p); static void *_tmp_70_rule(Parser *p); -static asdl_seq *_loop0_72_rule(Parser *p); -static asdl_seq *_gather_71_rule(Parser *p); -static asdl_seq *_loop0_74_rule(Parser *p); -static asdl_seq *_gather_73_rule(Parser *p); -static void *_tmp_75_rule(Parser *p); -static asdl_seq *_loop0_77_rule(Parser *p); -static asdl_seq *_gather_76_rule(Parser *p); -static asdl_seq *_loop0_79_rule(Parser *p); -static asdl_seq *_gather_78_rule(Parser *p); -static asdl_seq *_loop1_80_rule(Parser *p); +static void *_tmp_71_rule(Parser *p); +static asdl_seq *_loop0_73_rule(Parser *p); +static asdl_seq *_gather_72_rule(Parser *p); +static asdl_seq *_loop0_75_rule(Parser *p); +static asdl_seq *_gather_74_rule(Parser *p); +static void *_tmp_76_rule(Parser *p); +static asdl_seq *_loop0_78_rule(Parser *p); +static asdl_seq *_gather_77_rule(Parser *p); +static asdl_seq *_loop0_80_rule(Parser *p); +static asdl_seq *_gather_79_rule(Parser *p); static asdl_seq *_loop1_81_rule(Parser *p); -static asdl_seq *_loop0_83_rule(Parser *p); -static asdl_seq *_gather_82_rule(Parser *p); -static asdl_seq *_loop1_84_rule(Parser *p); +static asdl_seq *_loop1_82_rule(Parser *p); +static asdl_seq *_loop0_84_rule(Parser *p); +static asdl_seq *_gather_83_rule(Parser *p); static asdl_seq *_loop1_85_rule(Parser *p); static asdl_seq *_loop1_86_rule(Parser *p); -static void *_tmp_87_rule(Parser *p); -static asdl_seq *_loop0_89_rule(Parser *p); -static asdl_seq *_gather_88_rule(Parser *p); -static void *_tmp_90_rule(Parser *p); +static asdl_seq *_loop1_87_rule(Parser *p); +static void *_tmp_88_rule(Parser *p); +static asdl_seq *_loop0_90_rule(Parser *p); +static asdl_seq *_gather_89_rule(Parser *p); static void *_tmp_91_rule(Parser *p); static void *_tmp_92_rule(Parser *p); static void *_tmp_93_rule(Parser *p); static void *_tmp_94_rule(Parser *p); -static asdl_seq *_loop0_95_rule(Parser *p); -static asdl_seq *_loop0_96_rule(Parser *p); +static void *_tmp_95_rule(Parser *p); +static void *_tmp_96_rule(Parser *p); static asdl_seq *_loop0_97_rule(Parser *p); -static asdl_seq *_loop1_98_rule(Parser *p); +static asdl_seq *_loop0_98_rule(Parser *p); static asdl_seq *_loop0_99_rule(Parser *p); static asdl_seq *_loop1_100_rule(Parser *p); -static asdl_seq *_loop1_101_rule(Parser *p); +static asdl_seq *_loop0_101_rule(Parser *p); static asdl_seq *_loop1_102_rule(Parser *p); -static asdl_seq *_loop0_103_rule(Parser *p); +static asdl_seq *_loop1_103_rule(Parser *p); static asdl_seq *_loop1_104_rule(Parser *p); static asdl_seq *_loop0_105_rule(Parser *p); static asdl_seq *_loop1_106_rule(Parser *p); static asdl_seq *_loop0_107_rule(Parser *p); static asdl_seq *_loop1_108_rule(Parser *p); -static asdl_seq *_loop1_109_rule(Parser *p); -static void *_tmp_110_rule(Parser *p); +static asdl_seq *_loop0_109_rule(Parser *p); +static asdl_seq *_loop1_110_rule(Parser *p); +static void *_tmp_111_rule(Parser *p); static asdl_seq *_loop0_112_rule(Parser *p); -static asdl_seq *_gather_111_rule(Parser *p); static asdl_seq *_loop1_113_rule(Parser *p); -static asdl_seq *_loop0_114_rule(Parser *p); -static asdl_seq *_loop0_115_rule(Parser *p); -static void *_tmp_116_rule(Parser *p); +static void *_tmp_114_rule(Parser *p); +static asdl_seq *_loop0_116_rule(Parser *p); +static asdl_seq *_gather_115_rule(Parser *p); +static asdl_seq *_loop1_117_rule(Parser *p); static asdl_seq *_loop0_118_rule(Parser *p); -static asdl_seq *_gather_117_rule(Parser *p); -static void *_tmp_119_rule(Parser *p); -static asdl_seq *_loop0_121_rule(Parser *p); -static asdl_seq *_gather_120_rule(Parser *p); -static asdl_seq *_loop0_123_rule(Parser *p); -static asdl_seq *_gather_122_rule(Parser *p); +static asdl_seq *_loop0_119_rule(Parser *p); +static void *_tmp_120_rule(Parser *p); +static asdl_seq *_loop0_122_rule(Parser *p); +static asdl_seq *_gather_121_rule(Parser *p); +static void *_tmp_123_rule(Parser *p); static asdl_seq *_loop0_125_rule(Parser *p); static asdl_seq *_gather_124_rule(Parser *p); static asdl_seq *_loop0_127_rule(Parser *p); static asdl_seq *_gather_126_rule(Parser *p); -static asdl_seq *_loop0_128_rule(Parser *p); -static asdl_seq *_loop0_130_rule(Parser *p); -static asdl_seq *_gather_129_rule(Parser *p); -static asdl_seq *_loop1_131_rule(Parser *p); -static void *_tmp_132_rule(Parser *p); +static asdl_seq *_loop0_129_rule(Parser *p); +static asdl_seq *_gather_128_rule(Parser *p); +static asdl_seq *_loop0_131_rule(Parser *p); +static asdl_seq *_gather_130_rule(Parser *p); +static asdl_seq *_loop0_132_rule(Parser *p); static asdl_seq *_loop0_134_rule(Parser *p); static asdl_seq *_gather_133_rule(Parser *p); -static asdl_seq *_loop0_136_rule(Parser *p); -static asdl_seq *_gather_135_rule(Parser *p); +static asdl_seq *_loop1_135_rule(Parser *p); +static void *_tmp_136_rule(Parser *p); static asdl_seq *_loop0_138_rule(Parser *p); static asdl_seq *_gather_137_rule(Parser *p); static asdl_seq *_loop0_140_rule(Parser *p); static asdl_seq *_gather_139_rule(Parser *p); static asdl_seq *_loop0_142_rule(Parser *p); static asdl_seq *_gather_141_rule(Parser *p); -static void *_tmp_143_rule(Parser *p); -static void *_tmp_144_rule(Parser *p); -static void *_tmp_145_rule(Parser *p); -static void *_tmp_146_rule(Parser *p); +static asdl_seq *_loop0_144_rule(Parser *p); +static asdl_seq *_gather_143_rule(Parser *p); +static asdl_seq *_loop0_146_rule(Parser *p); +static asdl_seq *_gather_145_rule(Parser *p); static void *_tmp_147_rule(Parser *p); static void *_tmp_148_rule(Parser *p); static void *_tmp_149_rule(Parser *p); @@ -944,79 +981,79 @@ static void *_tmp_150_rule(Parser *p); static void *_tmp_151_rule(Parser *p); static void *_tmp_152_rule(Parser *p); static void *_tmp_153_rule(Parser *p); -static asdl_seq *_loop0_154_rule(Parser *p); -static asdl_seq *_loop0_155_rule(Parser *p); -static asdl_seq *_loop0_156_rule(Parser *p); +static void *_tmp_154_rule(Parser *p); +static void *_tmp_155_rule(Parser *p); +static void *_tmp_156_rule(Parser *p); static void *_tmp_157_rule(Parser *p); static void *_tmp_158_rule(Parser *p); -static void *_tmp_159_rule(Parser *p); -static void *_tmp_160_rule(Parser *p); -static void *_tmp_161_rule(Parser *p); -static asdl_seq *_loop0_162_rule(Parser *p); -static asdl_seq *_loop0_163_rule(Parser *p); -static asdl_seq *_loop0_164_rule(Parser *p); -static asdl_seq *_loop1_165_rule(Parser *p); +static asdl_seq *_loop0_159_rule(Parser *p); +static asdl_seq *_loop0_160_rule(Parser *p); +static asdl_seq *_loop0_161_rule(Parser *p); +static void *_tmp_162_rule(Parser *p); +static void *_tmp_163_rule(Parser *p); +static void *_tmp_164_rule(Parser *p); +static void *_tmp_165_rule(Parser *p); static void *_tmp_166_rule(Parser *p); static asdl_seq *_loop0_167_rule(Parser *p); -static void *_tmp_168_rule(Parser *p); +static asdl_seq *_loop0_168_rule(Parser *p); static asdl_seq *_loop0_169_rule(Parser *p); static asdl_seq *_loop1_170_rule(Parser *p); static void *_tmp_171_rule(Parser *p); -static void *_tmp_172_rule(Parser *p); +static asdl_seq *_loop0_172_rule(Parser *p); static void *_tmp_173_rule(Parser *p); static asdl_seq *_loop0_174_rule(Parser *p); -static void *_tmp_175_rule(Parser *p); +static asdl_seq *_loop1_175_rule(Parser *p); static void *_tmp_176_rule(Parser *p); -static asdl_seq *_loop1_177_rule(Parser *p); +static void *_tmp_177_rule(Parser *p); static void *_tmp_178_rule(Parser *p); static asdl_seq *_loop0_179_rule(Parser *p); -static asdl_seq *_loop0_180_rule(Parser *p); -static asdl_seq *_loop0_181_rule(Parser *p); -static asdl_seq *_loop0_183_rule(Parser *p); -static asdl_seq *_gather_182_rule(Parser *p); -static void *_tmp_184_rule(Parser *p); +static void *_tmp_180_rule(Parser *p); +static void *_tmp_181_rule(Parser *p); +static asdl_seq *_loop1_182_rule(Parser *p); +static void *_tmp_183_rule(Parser *p); +static asdl_seq *_loop0_184_rule(Parser *p); static asdl_seq *_loop0_185_rule(Parser *p); -static void *_tmp_186_rule(Parser *p); -static asdl_seq *_loop0_187_rule(Parser *p); -static asdl_seq *_loop1_188_rule(Parser *p); -static asdl_seq *_loop1_189_rule(Parser *p); -static void *_tmp_190_rule(Parser *p); +static asdl_seq *_loop0_186_rule(Parser *p); +static asdl_seq *_loop0_188_rule(Parser *p); +static asdl_seq *_gather_187_rule(Parser *p); +static void *_tmp_189_rule(Parser *p); +static asdl_seq *_loop0_190_rule(Parser *p); static void *_tmp_191_rule(Parser *p); static asdl_seq *_loop0_192_rule(Parser *p); -static void *_tmp_193_rule(Parser *p); -static void *_tmp_194_rule(Parser *p); +static asdl_seq *_loop1_193_rule(Parser *p); +static asdl_seq *_loop1_194_rule(Parser *p); static void *_tmp_195_rule(Parser *p); +static void *_tmp_196_rule(Parser *p); static asdl_seq *_loop0_197_rule(Parser *p); -static asdl_seq *_gather_196_rule(Parser *p); -static asdl_seq *_loop0_199_rule(Parser *p); -static asdl_seq *_gather_198_rule(Parser *p); -static asdl_seq *_loop0_201_rule(Parser *p); -static asdl_seq *_gather_200_rule(Parser *p); -static asdl_seq *_loop0_203_rule(Parser *p); -static asdl_seq *_gather_202_rule(Parser *p); -static void *_tmp_204_rule(Parser *p); -static asdl_seq *_loop0_205_rule(Parser *p); -static asdl_seq *_loop1_206_rule(Parser *p); -static void *_tmp_207_rule(Parser *p); +static void *_tmp_198_rule(Parser *p); +static void *_tmp_199_rule(Parser *p); +static void *_tmp_200_rule(Parser *p); +static asdl_seq *_loop0_202_rule(Parser *p); +static asdl_seq *_gather_201_rule(Parser *p); +static asdl_seq *_loop0_204_rule(Parser *p); +static asdl_seq *_gather_203_rule(Parser *p); +static asdl_seq *_loop0_206_rule(Parser *p); +static asdl_seq *_gather_205_rule(Parser *p); static asdl_seq *_loop0_208_rule(Parser *p); -static asdl_seq *_loop1_209_rule(Parser *p); -static void *_tmp_210_rule(Parser *p); -static void *_tmp_211_rule(Parser *p); +static asdl_seq *_gather_207_rule(Parser *p); +static void *_tmp_209_rule(Parser *p); +static asdl_seq *_loop0_210_rule(Parser *p); +static asdl_seq *_loop1_211_rule(Parser *p); static void *_tmp_212_rule(Parser *p); -static void *_tmp_213_rule(Parser *p); -static void *_tmp_214_rule(Parser *p); +static asdl_seq *_loop0_213_rule(Parser *p); +static asdl_seq *_loop1_214_rule(Parser *p); static void *_tmp_215_rule(Parser *p); static void *_tmp_216_rule(Parser *p); static void *_tmp_217_rule(Parser *p); static void *_tmp_218_rule(Parser *p); static void *_tmp_219_rule(Parser *p); -static asdl_seq *_loop0_221_rule(Parser *p); -static asdl_seq *_gather_220_rule(Parser *p); +static void *_tmp_220_rule(Parser *p); +static void *_tmp_221_rule(Parser *p); static void *_tmp_222_rule(Parser *p); static void *_tmp_223_rule(Parser *p); static void *_tmp_224_rule(Parser *p); -static void *_tmp_225_rule(Parser *p); -static void *_tmp_226_rule(Parser *p); +static asdl_seq *_loop0_226_rule(Parser *p); +static asdl_seq *_gather_225_rule(Parser *p); static void *_tmp_227_rule(Parser *p); static void *_tmp_228_rule(Parser *p); static void *_tmp_229_rule(Parser *p); @@ -1030,7 +1067,7 @@ static void *_tmp_236_rule(Parser *p); static void *_tmp_237_rule(Parser *p); static void *_tmp_238_rule(Parser *p); static void *_tmp_239_rule(Parser *p); -static void *_tmp_240_rule(Parser *p); +static asdl_seq *_loop0_240_rule(Parser *p); static void *_tmp_241_rule(Parser *p); static void *_tmp_242_rule(Parser *p); static void *_tmp_243_rule(Parser *p); @@ -1042,6 +1079,27 @@ static void *_tmp_248_rule(Parser *p); static void *_tmp_249_rule(Parser *p); static void *_tmp_250_rule(Parser *p); static void *_tmp_251_rule(Parser *p); +static void *_tmp_252_rule(Parser *p); +static void *_tmp_253_rule(Parser *p); +static void *_tmp_254_rule(Parser *p); +static void *_tmp_255_rule(Parser *p); +static void *_tmp_256_rule(Parser *p); +static void *_tmp_257_rule(Parser *p); +static void *_tmp_258_rule(Parser *p); +static void *_tmp_259_rule(Parser *p); +static void *_tmp_260_rule(Parser *p); +static void *_tmp_261_rule(Parser *p); +static void *_tmp_262_rule(Parser *p); +static void *_tmp_263_rule(Parser *p); +static void *_tmp_264_rule(Parser *p); +static void *_tmp_265_rule(Parser *p); +static void *_tmp_266_rule(Parser *p); +static void *_tmp_267_rule(Parser *p); +static void *_tmp_268_rule(Parser *p); +static void *_tmp_269_rule(Parser *p); +static void *_tmp_270_rule(Parser *p); +static void *_tmp_271_rule(Parser *p); +static void *_tmp_272_rule(Parser *p); // file: statements? $ @@ -1247,7 +1305,7 @@ func_type_rule(Parser *p) return _res; } -// fstring: star_expressions +// fstring: FSTRING_START fstring_middle* FSTRING_END static expr_ty fstring_rule(Parser *p) { @@ -1261,24 +1319,35 @@ fstring_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - { // star_expressions + { // FSTRING_START fstring_middle* FSTRING_END if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); - expr_ty star_expressions_var; + D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); + Token * a; + asdl_seq * b; + Token * c; if ( - (star_expressions_var = star_expressions_rule(p)) // star_expressions + (a = _PyPegen_expect_token(p, FSTRING_START)) // token='FSTRING_START' + && + (b = _loop0_3_rule(p)) // fstring_middle* + && + (c = _PyPegen_expect_token(p, FSTRING_END)) // token='FSTRING_END' ) { - D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); - _res = star_expressions_var; + D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); + _res = _PyPegen_joined_str ( p , a , ( asdl_expr_seq* ) b , c ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); } _res = NULL; done: @@ -1308,7 +1377,7 @@ statements_rule(Parser *p) D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+")); asdl_seq * a; if ( - (a = _loop1_3_rule(p)) // statement+ + (a = _loop1_4_rule(p)) // statement+ ) { D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+")); @@ -1584,7 +1653,7 @@ simple_stmts_rule(Parser *p) asdl_stmt_seq* a; Token * newline_var; if ( - (a = (asdl_stmt_seq*)_gather_4_rule(p)) // ';'.simple_stmt+ + (a = (asdl_stmt_seq*)_gather_5_rule(p)) // ';'.simple_stmt+ && (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'? && @@ -1731,7 +1800,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); stmt_ty import_stmt_var; if ( - _PyPegen_lookahead(1, _tmp_6_rule, p) + _PyPegen_lookahead(1, _tmp_7_rule, p) && (import_stmt_var = import_stmt_rule(p)) // import_stmt ) @@ -1806,7 +1875,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); stmt_ty del_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 603) // token='del' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 604) // token='del' && (del_stmt_var = del_stmt_rule(p)) // del_stmt ) @@ -2006,7 +2075,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def")); stmt_ty function_def_var; if ( - _PyPegen_lookahead(1, _tmp_7_rule, p) + _PyPegen_lookahead(1, _tmp_8_rule, p) && (function_def_var = function_def_rule(p)) // function_def ) @@ -2027,7 +2096,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); stmt_ty if_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 641) // token='if' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 642) // token='if' && (if_stmt_var = if_stmt_rule(p)) // if_stmt ) @@ -2048,7 +2117,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def")); stmt_ty class_def_var; if ( - _PyPegen_lookahead(1, _tmp_8_rule, p) + _PyPegen_lookahead(1, _tmp_9_rule, p) && (class_def_var = class_def_rule(p)) // class_def ) @@ -2069,7 +2138,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt")); stmt_ty with_stmt_var; if ( - _PyPegen_lookahead(1, _tmp_9_rule, p) + _PyPegen_lookahead(1, _tmp_10_rule, p) && (with_stmt_var = with_stmt_rule(p)) // with_stmt ) @@ -2090,7 +2159,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt")); stmt_ty for_stmt_var; if ( - _PyPegen_lookahead(1, _tmp_10_rule, p) + _PyPegen_lookahead(1, _tmp_11_rule, p) && (for_stmt_var = for_stmt_rule(p)) // for_stmt ) @@ -2111,7 +2180,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); stmt_ty try_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 623) // token='try' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 624) // token='try' && (try_stmt_var = try_stmt_rule(p)) // try_stmt ) @@ -2132,7 +2201,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 646) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 647) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -2215,7 +2284,7 @@ assignment_rule(Parser *p) && (b = expression_rule(p)) // expression && - (c = _tmp_11_rule(p), !p->error_indicator) // ['=' annotated_rhs] + (c = _tmp_12_rule(p), !p->error_indicator) // ['=' annotated_rhs] ) { D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); @@ -2251,13 +2320,13 @@ assignment_rule(Parser *p) expr_ty b; void *c; if ( - (a = _tmp_12_rule(p)) // '(' single_target ')' | single_subscript_attribute_target + (a = _tmp_13_rule(p)) // '(' single_target ')' | single_subscript_attribute_target && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (b = expression_rule(p)) // expression && - (c = _tmp_13_rule(p), !p->error_indicator) // ['=' annotated_rhs] + (c = _tmp_14_rule(p), !p->error_indicator) // ['=' annotated_rhs] ) { D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]")); @@ -2292,9 +2361,9 @@ assignment_rule(Parser *p) void *b; void *tc; if ( - (a = (asdl_expr_seq*)_loop1_14_rule(p)) // ((star_targets '='))+ + (a = (asdl_expr_seq*)_loop1_15_rule(p)) // ((star_targets '='))+ && - (b = _tmp_15_rule(p)) // yield_expr | star_expressions + (b = _tmp_16_rule(p)) // yield_expr | star_expressions && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' && @@ -2340,7 +2409,7 @@ assignment_rule(Parser *p) && (_cut_var = 1) && - (c = _tmp_16_rule(p)) // yield_expr | star_expressions + (c = _tmp_17_rule(p)) // yield_expr | star_expressions ) { D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)")); @@ -2899,7 +2968,7 @@ raise_stmt_rule(Parser *p) && (a = expression_rule(p)) // expression && - (b = _tmp_17_rule(p), !p->error_indicator) // ['from' expression] + (b = _tmp_18_rule(p), !p->error_indicator) // ['from' expression] ) { D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]")); @@ -2997,7 +3066,7 @@ global_stmt_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 523)) // token='global' && - (a = (asdl_expr_seq*)_gather_18_rule(p)) // ','.NAME+ + (a = (asdl_expr_seq*)_gather_19_rule(p)) // ','.NAME+ ) { D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+")); @@ -3062,7 +3131,7 @@ nonlocal_stmt_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 524)) // token='nonlocal' && - (a = (asdl_expr_seq*)_gather_20_rule(p)) // ','.NAME+ + (a = (asdl_expr_seq*)_gather_21_rule(p)) // ','.NAME+ ) { D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+")); @@ -3125,11 +3194,11 @@ del_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 603)) // token='del' + (_keyword = _PyPegen_expect_token(p, 604)) // token='del' && (a = del_targets_rule(p)) // del_targets && - _PyPegen_lookahead(1, _tmp_22_rule, p) + _PyPegen_lookahead(1, _tmp_23_rule, p) ) { D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)")); @@ -3278,7 +3347,7 @@ assert_stmt_rule(Parser *p) && (a = expression_rule(p)) // expression && - (b = _tmp_23_rule(p), !p->error_indicator) // [',' expression] + (b = _tmp_24_rule(p), !p->error_indicator) // [',' expression] ) { D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]")); @@ -3418,7 +3487,7 @@ import_name_rule(Parser *p) Token * _keyword; asdl_alias_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 606)) // token='import' + (_keyword = _PyPegen_expect_token(p, 607)) // token='import' && (a = dotted_as_names_rule(p)) // dotted_as_names ) @@ -3488,13 +3557,13 @@ import_from_rule(Parser *p) expr_ty b; asdl_alias_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword = _PyPegen_expect_token(p, 608)) // token='from' && - (a = _loop0_24_rule(p)) // (('.' | '...'))* + (a = _loop0_25_rule(p)) // (('.' | '...'))* && (b = dotted_name_rule(p)) // dotted_name && - (_keyword_1 = _PyPegen_expect_token(p, 606)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 607)) // token='import' && (c = import_from_targets_rule(p)) // import_from_targets ) @@ -3532,11 +3601,11 @@ import_from_rule(Parser *p) asdl_seq * a; asdl_alias_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword = _PyPegen_expect_token(p, 608)) // token='from' && - (a = _loop1_25_rule(p)) // (('.' | '...'))+ + (a = _loop1_26_rule(p)) // (('.' | '...'))+ && - (_keyword_1 = _PyPegen_expect_token(p, 606)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 607)) // token='import' && (b = import_from_targets_rule(p)) // import_from_targets ) @@ -3731,7 +3800,7 @@ import_from_as_names_rule(Parser *p) D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+")); asdl_alias_seq* a; if ( - (a = (asdl_alias_seq*)_gather_26_rule(p)) // ','.import_from_as_name+ + (a = (asdl_alias_seq*)_gather_27_rule(p)) // ','.import_from_as_name+ ) { D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+")); @@ -3787,7 +3856,7 @@ import_from_as_name_rule(Parser *p) if ( (a = _PyPegen_name_token(p)) // NAME && - (b = _tmp_28_rule(p), !p->error_indicator) // ['as' NAME] + (b = _tmp_29_rule(p), !p->error_indicator) // ['as' NAME] ) { D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]")); @@ -3840,7 +3909,7 @@ dotted_as_names_rule(Parser *p) D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+")); asdl_alias_seq* a; if ( - (a = (asdl_alias_seq*)_gather_29_rule(p)) // ','.dotted_as_name+ + (a = (asdl_alias_seq*)_gather_30_rule(p)) // ','.dotted_as_name+ ) { D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+")); @@ -3896,7 +3965,7 @@ dotted_as_name_rule(Parser *p) if ( (a = dotted_name_rule(p)) // dotted_name && - (b = _tmp_31_rule(p), !p->error_indicator) // ['as' NAME] + (b = _tmp_32_rule(p), !p->error_indicator) // ['as' NAME] ) { D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]")); @@ -4151,7 +4220,7 @@ decorators_rule(Parser *p) D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+")); asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_loop1_32_rule(p)) // (('@' named_expression NEWLINE))+ + (a = (asdl_expr_seq*)_loop1_33_rule(p)) // (('@' named_expression NEWLINE))+ ) { D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+")); @@ -4293,11 +4362,11 @@ class_def_raw_rule(Parser *p) void *b; asdl_stmt_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 653)) // token='class' + (_keyword = _PyPegen_expect_token(p, 654)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && - (b = _tmp_33_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (b = _tmp_34_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -4459,7 +4528,7 @@ function_def_raw_rule(Parser *p) void *params; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='def' + (_keyword = _PyPegen_expect_token(p, 652)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4469,7 +4538,7 @@ function_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (a = _tmp_34_rule(p), !p->error_indicator) // ['->' expression] + (a = _tmp_35_rule(p), !p->error_indicator) // ['->' expression] && (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -4519,7 +4588,7 @@ function_def_raw_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 651)) // token='def' + (_keyword = _PyPegen_expect_token(p, 652)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4529,7 +4598,7 @@ function_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (a = _tmp_35_rule(p), !p->error_indicator) // ['->' expression] + (a = _tmp_36_rule(p), !p->error_indicator) // ['->' expression] && (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -4656,9 +4725,9 @@ parameters_rule(Parser *p) if ( (a = slash_no_default_rule(p)) // slash_no_default && - (b = (asdl_arg_seq*)_loop0_36_rule(p)) // param_no_default* + (b = (asdl_arg_seq*)_loop0_37_rule(p)) // param_no_default* && - (c = _loop0_37_rule(p)) // param_with_default* + (c = _loop0_38_rule(p)) // param_with_default* && (d = star_etc_rule(p), !p->error_indicator) // star_etc? ) @@ -4688,7 +4757,7 @@ parameters_rule(Parser *p) if ( (a = slash_with_default_rule(p)) // slash_with_default && - (b = _loop0_38_rule(p)) // param_with_default* + (b = _loop0_39_rule(p)) // param_with_default* && (c = star_etc_rule(p), !p->error_indicator) // star_etc? ) @@ -4716,9 +4785,9 @@ parameters_rule(Parser *p) asdl_seq * b; void *c; if ( - (a = (asdl_arg_seq*)_loop1_39_rule(p)) // param_no_default+ + (a = (asdl_arg_seq*)_loop1_40_rule(p)) // param_no_default+ && - (b = _loop0_40_rule(p)) // param_with_default* + (b = _loop0_41_rule(p)) // param_with_default* && (c = star_etc_rule(p), !p->error_indicator) // star_etc? ) @@ -4745,7 +4814,7 @@ parameters_rule(Parser *p) asdl_seq * a; void *b; if ( - (a = _loop1_41_rule(p)) // param_with_default+ + (a = _loop1_42_rule(p)) // param_with_default+ && (b = star_etc_rule(p), !p->error_indicator) // star_etc? ) @@ -4817,7 +4886,7 @@ slash_no_default_rule(Parser *p) Token * _literal_1; asdl_arg_seq* a; if ( - (a = (asdl_arg_seq*)_loop1_42_rule(p)) // param_no_default+ + (a = (asdl_arg_seq*)_loop1_43_rule(p)) // param_no_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -4846,7 +4915,7 @@ slash_no_default_rule(Parser *p) Token * _literal; asdl_arg_seq* a; if ( - (a = (asdl_arg_seq*)_loop1_43_rule(p)) // param_no_default+ + (a = (asdl_arg_seq*)_loop1_44_rule(p)) // param_no_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -4899,9 +4968,9 @@ slash_with_default_rule(Parser *p) asdl_seq * a; asdl_seq * b; if ( - (a = _loop0_44_rule(p)) // param_no_default* + (a = _loop0_45_rule(p)) // param_no_default* && - (b = _loop1_45_rule(p)) // param_with_default+ + (b = _loop1_46_rule(p)) // param_with_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -4931,9 +5000,9 @@ slash_with_default_rule(Parser *p) asdl_seq * a; asdl_seq * b; if ( - (a = _loop0_46_rule(p)) // param_no_default* + (a = _loop0_47_rule(p)) // param_no_default* && - (b = _loop1_47_rule(p)) // param_with_default+ + (b = _loop1_48_rule(p)) // param_with_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -5012,7 +5081,7 @@ star_etc_rule(Parser *p) && (a = param_no_default_rule(p)) // param_no_default && - (b = _loop0_48_rule(p)) // param_maybe_default* + (b = _loop0_49_rule(p)) // param_maybe_default* && (c = kwds_rule(p), !p->error_indicator) // kwds? ) @@ -5045,7 +5114,7 @@ star_etc_rule(Parser *p) && (a = param_no_default_star_annotation_rule(p)) // param_no_default_star_annotation && - (b = _loop0_49_rule(p)) // param_maybe_default* + (b = _loop0_50_rule(p)) // param_maybe_default* && (c = kwds_rule(p), !p->error_indicator) // kwds? ) @@ -5078,7 +5147,7 @@ star_etc_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (b = _loop1_50_rule(p)) // param_maybe_default+ + (b = _loop1_51_rule(p)) // param_maybe_default+ && (c = kwds_rule(p), !p->error_indicator) // kwds? ) @@ -5871,7 +5940,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5916,7 +5985,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -6012,7 +6081,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 644)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -6057,7 +6126,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 644)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -6139,7 +6208,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 644)) // token='else' + (_keyword = _PyPegen_expect_token(p, 645)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6219,7 +6288,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 646)) // token='while' + (_keyword = _PyPegen_expect_token(p, 647)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6320,11 +6389,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (_cut_var = 1) && @@ -6384,11 +6453,11 @@ for_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (_cut_var = 1) && @@ -6517,11 +6586,11 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (a = (asdl_withitem_seq*)_gather_51_rule(p)) // ','.with_item+ + (a = (asdl_withitem_seq*)_gather_52_rule(p)) // ','.with_item+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -6566,9 +6635,9 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && - (a = (asdl_withitem_seq*)_gather_53_rule(p)) // ','.with_item+ + (a = (asdl_withitem_seq*)_gather_54_rule(p)) // ','.with_item+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -6617,11 +6686,11 @@ with_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (a = (asdl_withitem_seq*)_gather_55_rule(p)) // ','.with_item+ + (a = (asdl_withitem_seq*)_gather_56_rule(p)) // ','.with_item+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -6669,9 +6738,9 @@ with_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && - (a = (asdl_withitem_seq*)_gather_57_rule(p)) // ','.with_item+ + (a = (asdl_withitem_seq*)_gather_58_rule(p)) // ','.with_item+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -6756,11 +6825,11 @@ with_item_rule(Parser *p) if ( (e = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (t = star_target_rule(p)) // star_target && - _PyPegen_lookahead(1, _tmp_59_rule, p) + _PyPegen_lookahead(1, _tmp_60_rule, p) ) { D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); @@ -6882,7 +6951,7 @@ try_stmt_rule(Parser *p) asdl_stmt_seq* b; asdl_stmt_seq* f; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6926,13 +6995,13 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && (b = block_rule(p)) // block && - (ex = (asdl_excepthandler_seq*)_loop1_60_rule(p)) // except_block+ + (ex = (asdl_excepthandler_seq*)_loop1_61_rule(p)) // except_block+ && (el = else_block_rule(p), !p->error_indicator) // else_block? && @@ -6974,13 +7043,13 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && (b = block_rule(p)) // block && - (ex = (asdl_excepthandler_seq*)_loop1_61_rule(p)) // except_star_block+ + (ex = (asdl_excepthandler_seq*)_loop1_62_rule(p)) // except_star_block+ && (el = else_block_rule(p), !p->error_indicator) // else_block? && @@ -7073,11 +7142,11 @@ except_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 636)) // token='except' + (_keyword = _PyPegen_expect_token(p, 637)) // token='except' && (e = expression_rule(p)) // expression && - (t = _tmp_62_rule(p), !p->error_indicator) // ['as' NAME] + (t = _tmp_63_rule(p), !p->error_indicator) // ['as' NAME] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7116,7 +7185,7 @@ except_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 636)) // token='except' + (_keyword = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7228,13 +7297,13 @@ except_star_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 636)) // token='except' + (_keyword = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && (e = expression_rule(p)) // expression && - (t = _tmp_63_rule(p), !p->error_indicator) // ['as' NAME] + (t = _tmp_64_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7331,7 +7400,7 @@ finally_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 632)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 633)) // token='finally' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -7406,7 +7475,7 @@ match_stmt_rule(Parser *p) && (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT' && - (cases = (asdl_match_case_seq*)_loop1_64_rule(p)) // case_block+ + (cases = (asdl_match_case_seq*)_loop1_65_rule(p)) // case_block+ && (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT' ) @@ -7643,7 +7712,7 @@ guard_rule(Parser *p) Token * _keyword; expr_ty guard; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (guard = named_expression_rule(p)) // named_expression ) @@ -7841,7 +7910,7 @@ as_pattern_rule(Parser *p) if ( (pattern = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (target = pattern_capture_target_rule(p)) // pattern_capture_target ) @@ -7924,7 +7993,7 @@ or_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+")); asdl_pattern_seq* patterns; if ( - (patterns = (asdl_pattern_seq*)_gather_65_rule(p)) // '|'.closed_pattern+ + (patterns = (asdl_pattern_seq*)_gather_66_rule(p)) // '|'.closed_pattern+ ) { D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+")); @@ -8179,7 +8248,7 @@ literal_pattern_rule(Parser *p) if ( (value = signed_number_rule(p)) // signed_number && - _PyPegen_lookahead(0, _tmp_67_rule, p) + _PyPegen_lookahead(0, _tmp_68_rule, p) ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); @@ -8278,7 +8347,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 601)) // token='None' + (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8311,7 +8380,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 600)) // token='True' + (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8344,7 +8413,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 602)) // token='False' + (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -8414,7 +8483,7 @@ literal_expr_rule(Parser *p) if ( (signed_number_var = signed_number_rule(p)) // signed_number && - _PyPegen_lookahead(0, _tmp_68_rule, p) + _PyPegen_lookahead(0, _tmp_69_rule, p) ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); @@ -8471,7 +8540,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 601)) // token='None' + (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8504,7 +8573,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 600)) // token='True' + (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8537,7 +8606,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 602)) // token='False' + (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -9021,7 +9090,7 @@ pattern_capture_target_rule(Parser *p) && (name = _PyPegen_name_token(p)) // NAME && - _PyPegen_lookahead(0, _tmp_69_rule, p) + _PyPegen_lookahead(0, _tmp_70_rule, p) ) { D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')")); @@ -9138,7 +9207,7 @@ value_pattern_rule(Parser *p) if ( (attr = attr_rule(p)) // attr && - _PyPegen_lookahead(0, _tmp_70_rule, p) + _PyPegen_lookahead(0, _tmp_71_rule, p) ) { D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')")); @@ -9564,7 +9633,7 @@ maybe_sequence_pattern_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_seq * patterns; if ( - (patterns = _gather_71_rule(p)) // ','.maybe_star_pattern+ + (patterns = _gather_72_rule(p)) // ','.maybe_star_pattern+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -9976,13 +10045,13 @@ items_pattern_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+")); - asdl_seq * _gather_73_var; + asdl_seq * _gather_74_var; if ( - (_gather_73_var = _gather_73_rule(p)) // ','.key_value_pattern+ + (_gather_74_var = _gather_74_rule(p)) // ','.key_value_pattern+ ) { D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+")); - _res = _gather_73_var; + _res = _gather_74_var; goto done; } p->mark = _mark; @@ -10019,7 +10088,7 @@ key_value_pattern_rule(Parser *p) void *key; pattern_ty pattern; if ( - (key = _tmp_75_rule(p)) // literal_expr | attr + (key = _tmp_76_rule(p)) // literal_expr | attr && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -10350,7 +10419,7 @@ positional_patterns_rule(Parser *p) D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+")); asdl_pattern_seq* args; if ( - (args = (asdl_pattern_seq*)_gather_76_rule(p)) // ','.pattern+ + (args = (asdl_pattern_seq*)_gather_77_rule(p)) // ','.pattern+ ) { D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+")); @@ -10392,13 +10461,13 @@ keyword_patterns_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+")); - asdl_seq * _gather_78_var; + asdl_seq * _gather_79_var; if ( - (_gather_78_var = _gather_78_rule(p)) // ','.keyword_pattern+ + (_gather_79_var = _gather_79_rule(p)) // ','.keyword_pattern+ ) { D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+")); - _res = _gather_78_var; + _res = _gather_79_var; goto done; } p->mark = _mark; @@ -10497,7 +10566,7 @@ expressions_rule(Parser *p) if ( (a = expression_rule(p)) // expression && - (b = _loop1_80_rule(p)) // ((',' expression))+ + (b = _loop1_81_rule(p)) // ((',' expression))+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -10669,11 +10738,11 @@ expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 644)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 645)) // token='else' && (c = expression_rule(p)) // expression ) @@ -10780,7 +10849,7 @@ yield_expr_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 573)) // token='yield' && - (_keyword_1 = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword_1 = _PyPegen_expect_token(p, 608)) // token='from' && (a = expression_rule(p)) // expression ) @@ -10888,7 +10957,7 @@ star_expressions_rule(Parser *p) if ( (a = star_expression_rule(p)) // star_expression && - (b = _loop1_81_rule(p)) // ((',' star_expression))+ + (b = _loop1_82_rule(p)) // ((',' star_expression))+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -11089,7 +11158,7 @@ star_named_expressions_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_gather_82_rule(p)) // ','.star_named_expression+ + (a = (asdl_expr_seq*)_gather_83_rule(p)) // ','.star_named_expression+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -11389,7 +11458,7 @@ disjunction_rule(Parser *p) if ( (a = conjunction_rule(p)) // conjunction && - (b = _loop1_84_rule(p)) // (('or' conjunction))+ + (b = _loop1_85_rule(p)) // (('or' conjunction))+ ) { D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+")); @@ -11478,7 +11547,7 @@ conjunction_rule(Parser *p) if ( (a = inversion_rule(p)) // inversion && - (b = _loop1_85_rule(p)) // (('and' inversion))+ + (b = _loop1_86_rule(p)) // (('and' inversion))+ ) { D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+")); @@ -11652,7 +11721,7 @@ comparison_rule(Parser *p) if ( (a = bitwise_or_rule(p)) // bitwise_or && - (b = _loop1_86_rule(p)) // compare_op_bitwise_or_pair+ + (b = _loop1_87_rule(p)) // compare_op_bitwise_or_pair+ ) { D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); @@ -11989,10 +12058,10 @@ noteq_bitwise_or_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or")); - void *_tmp_87_var; + void *_tmp_88_var; expr_ty a; if ( - (_tmp_87_var = _tmp_87_rule(p)) // '!=' + (_tmp_88_var = _tmp_88_rule(p)) // '!=' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12230,7 +12299,7 @@ notin_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 581)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12277,7 +12346,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword = _PyPegen_expect_token(p, 651)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14027,7 +14096,7 @@ slices_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_gather_88_rule(p)) // ','.(slice | starred_expression)+ + (a = (asdl_expr_seq*)_gather_89_rule(p)) // ','.(slice | starred_expression)+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -14100,7 +14169,7 @@ slice_rule(Parser *p) && (b = expression_rule(p), !p->error_indicator) // expression? && - (c = _tmp_90_rule(p), !p->error_indicator) // [':' expression?] + (c = _tmp_91_rule(p), !p->error_indicator) // [':' expression?] ) { D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]")); @@ -14160,7 +14229,7 @@ slice_rule(Parser *p) // | 'True' // | 'False' // | 'None' -// | &STRING strings +// | &(STRING | FSTRING_START) strings // | NUMBER // | &'(' (tuple | group | genexp) // | &'[' (list | listcomp) @@ -14215,7 +14284,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 600)) // token='True' + (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -14248,7 +14317,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 602)) // token='False' + (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -14281,7 +14350,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 601)) // token='None' + (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -14306,26 +14375,26 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } - { // &STRING strings + { // &(STRING | FSTRING_START) strings if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings")); + D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START) strings")); expr_ty strings_var; if ( - _PyPegen_lookahead(1, _PyPegen_string_token, p) + _PyPegen_lookahead(1, _tmp_92_rule, p) && (strings_var = strings_rule(p)) // strings ) { - D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings")); + D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START) strings")); _res = strings_var; goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START) strings")); } { // NUMBER if (p->error_indicator) { @@ -14352,15 +14421,15 @@ atom_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)")); - void *_tmp_91_var; + void *_tmp_93_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='(' && - (_tmp_91_var = _tmp_91_rule(p)) // tuple | group | genexp + (_tmp_93_var = _tmp_93_rule(p)) // tuple | group | genexp ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)")); - _res = _tmp_91_var; + _res = _tmp_93_var; goto done; } p->mark = _mark; @@ -14373,15 +14442,15 @@ atom_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)")); - void *_tmp_92_var; + void *_tmp_94_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='[' && - (_tmp_92_var = _tmp_92_rule(p)) // list | listcomp + (_tmp_94_var = _tmp_94_rule(p)) // list | listcomp ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)")); - _res = _tmp_92_var; + _res = _tmp_94_var; goto done; } p->mark = _mark; @@ -14394,15 +14463,15 @@ atom_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)")); - void *_tmp_93_var; + void *_tmp_95_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{' && - (_tmp_93_var = _tmp_93_rule(p)) // dict | set | dictcomp | setcomp + (_tmp_95_var = _tmp_95_rule(p)) // dict | set | dictcomp | setcomp ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)")); - _res = _tmp_93_var; + _res = _tmp_95_var; goto done; } p->mark = _mark; @@ -14474,7 +14543,7 @@ group_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (a = _tmp_94_rule(p)) // yield_expr | named_expression + (a = _tmp_96_rule(p)) // yield_expr | named_expression && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) @@ -14551,7 +14620,7 @@ lambdef_rule(Parser *p) void *a; expr_ty b; if ( - (_keyword = _PyPegen_expect_token(p, 586)) // token='lambda' + (_keyword = _PyPegen_expect_token(p, 600)) // token='lambda' && (a = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -14678,9 +14747,9 @@ lambda_parameters_rule(Parser *p) if ( (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default && - (b = (asdl_arg_seq*)_loop0_95_rule(p)) // lambda_param_no_default* + (b = (asdl_arg_seq*)_loop0_97_rule(p)) // lambda_param_no_default* && - (c = _loop0_96_rule(p)) // lambda_param_with_default* + (c = _loop0_98_rule(p)) // lambda_param_with_default* && (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? ) @@ -14710,7 +14779,7 @@ lambda_parameters_rule(Parser *p) if ( (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default && - (b = _loop0_97_rule(p)) // lambda_param_with_default* + (b = _loop0_99_rule(p)) // lambda_param_with_default* && (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? ) @@ -14738,9 +14807,9 @@ lambda_parameters_rule(Parser *p) asdl_seq * b; void *c; if ( - (a = (asdl_arg_seq*)_loop1_98_rule(p)) // lambda_param_no_default+ + (a = (asdl_arg_seq*)_loop1_100_rule(p)) // lambda_param_no_default+ && - (b = _loop0_99_rule(p)) // lambda_param_with_default* + (b = _loop0_101_rule(p)) // lambda_param_with_default* && (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? ) @@ -14767,7 +14836,7 @@ lambda_parameters_rule(Parser *p) asdl_seq * a; void *b; if ( - (a = _loop1_100_rule(p)) // lambda_param_with_default+ + (a = _loop1_102_rule(p)) // lambda_param_with_default+ && (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? ) @@ -14841,7 +14910,7 @@ lambda_slash_no_default_rule(Parser *p) Token * _literal_1; asdl_arg_seq* a; if ( - (a = (asdl_arg_seq*)_loop1_101_rule(p)) // lambda_param_no_default+ + (a = (asdl_arg_seq*)_loop1_103_rule(p)) // lambda_param_no_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -14870,7 +14939,7 @@ lambda_slash_no_default_rule(Parser *p) Token * _literal; asdl_arg_seq* a; if ( - (a = (asdl_arg_seq*)_loop1_102_rule(p)) // lambda_param_no_default+ + (a = (asdl_arg_seq*)_loop1_104_rule(p)) // lambda_param_no_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -14923,9 +14992,9 @@ lambda_slash_with_default_rule(Parser *p) asdl_seq * a; asdl_seq * b; if ( - (a = _loop0_103_rule(p)) // lambda_param_no_default* + (a = _loop0_105_rule(p)) // lambda_param_no_default* && - (b = _loop1_104_rule(p)) // lambda_param_with_default+ + (b = _loop1_106_rule(p)) // lambda_param_with_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -14955,9 +15024,9 @@ lambda_slash_with_default_rule(Parser *p) asdl_seq * a; asdl_seq * b; if ( - (a = _loop0_105_rule(p)) // lambda_param_no_default* + (a = _loop0_107_rule(p)) // lambda_param_no_default* && - (b = _loop1_106_rule(p)) // lambda_param_with_default+ + (b = _loop1_108_rule(p)) // lambda_param_with_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -15035,7 +15104,7 @@ lambda_star_etc_rule(Parser *p) && (a = lambda_param_no_default_rule(p)) // lambda_param_no_default && - (b = _loop0_107_rule(p)) // lambda_param_maybe_default* + (b = _loop0_109_rule(p)) // lambda_param_maybe_default* && (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds? ) @@ -15068,7 +15137,7 @@ lambda_star_etc_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (b = _loop1_108_rule(p)) // lambda_param_maybe_default+ + (b = _loop1_110_rule(p)) // lambda_param_maybe_default+ && (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds? ) @@ -15475,7 +15544,387 @@ lambda_param_rule(Parser *p) return _res; } -// strings: STRING+ +// fstring_middle: fstring_replacement_field | FSTRING_MIDDLE +static expr_ty +fstring_middle_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + { // fstring_replacement_field + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + expr_ty fstring_replacement_field_var; + if ( + (fstring_replacement_field_var = fstring_replacement_field_rule(p)) // fstring_replacement_field + ) + { + D(fprintf(stderr, "%*c+ fstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + _res = fstring_replacement_field_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); + } + { // FSTRING_MIDDLE + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + Token * t; + if ( + (t = _PyPegen_expect_token(p, FSTRING_MIDDLE)) // token='FSTRING_MIDDLE' + ) + { + D(fprintf(stderr, "%*c+ fstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + _res = _PyPegen_constant_from_token ( p , t ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// fstring_replacement_field: +// | '{' (yield_expr | star_expressions) "="? fstring_conversion? fstring_full_format_spec? '}' +// | invalid_replacement_field +static expr_ty +fstring_replacement_field_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // '{' (yield_expr | star_expressions) "="? fstring_conversion? fstring_full_format_spec? '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) \"=\"? fstring_conversion? fstring_full_format_spec? '}'")); + Token * _literal; + Token * _literal_1; + void *a; + void *conversion; + void *debug_expr; + void *format; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (a = _tmp_111_rule(p)) // yield_expr | star_expressions + && + (debug_expr = _PyPegen_expect_token(p, 22), !p->error_indicator) // "="? + && + (conversion = fstring_conversion_rule(p), !p->error_indicator) // fstring_conversion? + && + (format = fstring_full_format_spec_rule(p), !p->error_indicator) // fstring_full_format_spec? + && + (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) \"=\"? fstring_conversion? fstring_full_format_spec? '}'")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = _PyPegen_formatted_value ( p , a , debug_expr , conversion , format , EXTRA ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) \"=\"? fstring_conversion? fstring_full_format_spec? '}'")); + } + if (p->call_invalid_rules) { // invalid_replacement_field + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_replacement_field")); + void *invalid_replacement_field_var; + if ( + (invalid_replacement_field_var = invalid_replacement_field_rule(p)) // invalid_replacement_field + ) + { + D(fprintf(stderr, "%*c+ fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_replacement_field")); + _res = invalid_replacement_field_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_replacement_field")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// fstring_conversion: "!" NAME +static expr_ty +fstring_conversion_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + { // "!" NAME + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_conversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"!\" NAME")); + expr_ty conv; + Token * conv_token; + if ( + (conv_token = _PyPegen_expect_token(p, 54)) // token='!' + && + (conv = _PyPegen_name_token(p)) // NAME + ) + { + D(fprintf(stderr, "%*c+ fstring_conversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"!\" NAME")); + _res = _PyPegen_check_fstring_conversion ( p , conv_token , conv ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_conversion[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"!\" NAME")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// fstring_full_format_spec: ':' fstring_format_spec* +static expr_ty +fstring_full_format_spec_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // ':' fstring_format_spec* + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_full_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' fstring_format_spec*")); + Token * _literal; + asdl_seq * spec; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + && + (spec = _loop0_112_rule(p)) // fstring_format_spec* + ) + { + D(fprintf(stderr, "%*c+ fstring_full_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' fstring_format_spec*")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = spec ? _PyAST_JoinedStr ( ( asdl_expr_seq* ) spec , EXTRA ) : NULL; + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_full_format_spec[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' fstring_format_spec*")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// fstring_format_spec: FSTRING_MIDDLE | fstring_replacement_field +static expr_ty +fstring_format_spec_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + { // FSTRING_MIDDLE + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + Token * t; + if ( + (t = _PyPegen_expect_token(p, FSTRING_MIDDLE)) // token='FSTRING_MIDDLE' + ) + { + D(fprintf(stderr, "%*c+ fstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + _res = _PyPegen_constant_from_token ( p , t ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); + } + { // fstring_replacement_field + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> fstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + expr_ty fstring_replacement_field_var; + if ( + (fstring_replacement_field_var = fstring_replacement_field_rule(p)) // fstring_replacement_field + ) + { + D(fprintf(stderr, "%*c+ fstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + _res = fstring_replacement_field_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// string: STRING +static expr_ty +string_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + expr_ty _res = NULL; + int _mark = p->mark; + { // STRING + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> string[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING")); + Token* s; + if ( + (s = (Token*)_PyPegen_string_token(p)) // STRING + ) + { + D(fprintf(stderr, "%*c+ string[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING")); + _res = _PyPegen_constant_from_string ( p , s ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s string[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// strings: ((fstring | string))+ static expr_ty strings_rule(Parser *p) { @@ -15493,19 +15942,37 @@ strings_rule(Parser *p) return _res; } int _mark = p->mark; - { // STRING+ + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // ((fstring | string))+ if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+")); - asdl_seq * a; + D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((fstring | string))+")); + asdl_expr_seq* a; if ( - (a = _loop1_109_rule(p)) // STRING+ + (a = (asdl_expr_seq*)_loop1_113_rule(p)) // ((fstring | string))+ ) { - D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+")); - _res = _PyPegen_concatenate_strings ( p , a ); + D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((fstring | string))+")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = _PyPegen_concatenate_strings ( p , a , EXTRA ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -15515,7 +15982,7 @@ strings_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+")); } _res = NULL; done: @@ -15627,7 +16094,7 @@ tuple_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (a = _tmp_110_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?] + (a = _tmp_114_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?] && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) @@ -15845,7 +16312,7 @@ double_starred_kvpairs_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_seq * a; if ( - (a = _gather_111_rule(p)) // ','.double_starred_kvpair+ + (a = _gather_115_rule(p)) // ','.double_starred_kvpair+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -16007,7 +16474,7 @@ for_if_clauses_rule(Parser *p) D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+")); asdl_comprehension_seq* a; if ( - (a = (asdl_comprehension_seq*)_loop1_113_rule(p)) // for_if_clause+ + (a = (asdl_comprehension_seq*)_loop1_117_rule(p)) // for_if_clause+ ) { D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+")); @@ -16062,17 +16529,17 @@ for_if_clause_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (_cut_var = 1) && (b = disjunction_rule(p)) // disjunction && - (c = (asdl_expr_seq*)_loop0_114_rule(p)) // (('if' disjunction))* + (c = (asdl_expr_seq*)_loop0_118_rule(p)) // (('if' disjunction))* ) { D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); @@ -16105,17 +16572,17 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (_cut_var = 1) && (b = disjunction_rule(p)) // disjunction && - (c = (asdl_expr_seq*)_loop0_115_rule(p)) // (('if' disjunction))* + (c = (asdl_expr_seq*)_loop0_119_rule(p)) // (('if' disjunction))* ) { D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); @@ -16378,7 +16845,7 @@ genexp_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (a = _tmp_116_rule(p)) // assignment_expression | expression !':=' + (a = _tmp_120_rule(p)) // assignment_expression | expression !':=' && (b = for_if_clauses_rule(p)) // for_if_clauses && @@ -16630,9 +17097,9 @@ args_rule(Parser *p) asdl_expr_seq* a; void *b; if ( - (a = (asdl_expr_seq*)_gather_117_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ + (a = (asdl_expr_seq*)_gather_121_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ && - (b = _tmp_119_rule(p), !p->error_indicator) // [',' kwargs] + (b = _tmp_123_rule(p), !p->error_indicator) // [',' kwargs] ) { D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); @@ -16723,11 +17190,11 @@ kwargs_rule(Parser *p) asdl_seq * a; asdl_seq * b; if ( - (a = _gather_120_rule(p)) // ','.kwarg_or_starred+ + (a = _gather_124_rule(p)) // ','.kwarg_or_starred+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (b = _gather_122_rule(p)) // ','.kwarg_or_double_starred+ + (b = _gather_126_rule(p)) // ','.kwarg_or_double_starred+ ) { D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+")); @@ -16749,13 +17216,13 @@ kwargs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+")); - asdl_seq * _gather_124_var; + asdl_seq * _gather_128_var; if ( - (_gather_124_var = _gather_124_rule(p)) // ','.kwarg_or_starred+ + (_gather_128_var = _gather_128_rule(p)) // ','.kwarg_or_starred+ ) { D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+")); - _res = _gather_124_var; + _res = _gather_128_var; goto done; } p->mark = _mark; @@ -16768,13 +17235,13 @@ kwargs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+")); - asdl_seq * _gather_126_var; + asdl_seq * _gather_130_var; if ( - (_gather_126_var = _gather_126_rule(p)) // ','.kwarg_or_double_starred+ + (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_double_starred+ ) { D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+")); - _res = _gather_126_var; + _res = _gather_130_var; goto done; } p->mark = _mark; @@ -17167,7 +17634,7 @@ star_targets_rule(Parser *p) if ( (a = star_target_rule(p)) // star_target && - (b = _loop0_128_rule(p)) // ((',' star_target))* + (b = _loop0_132_rule(p)) // ((',' star_target))* && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -17224,7 +17691,7 @@ star_targets_list_seq_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_gather_129_rule(p)) // ','.star_target+ + (a = (asdl_expr_seq*)_gather_133_rule(p)) // ','.star_target+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -17275,7 +17742,7 @@ star_targets_tuple_seq_rule(Parser *p) if ( (a = star_target_rule(p)) // star_target && - (b = _loop1_131_rule(p)) // ((',' star_target))+ + (b = _loop1_135_rule(p)) // ((',' star_target))+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -17364,7 +17831,7 @@ star_target_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (a = _tmp_132_rule(p)) // !'*' star_target + (a = _tmp_136_rule(p)) // !'*' star_target ) { D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)")); @@ -18295,7 +18762,7 @@ del_targets_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_gather_133_rule(p)) // ','.del_target+ + (a = (asdl_expr_seq*)_gather_137_rule(p)) // ','.del_target+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) @@ -18656,7 +19123,7 @@ type_expressions_rule(Parser *p) expr_ty b; expr_ty c; if ( - (a = _gather_135_rule(p)) // ','.expression+ + (a = _gather_139_rule(p)) // ','.expression+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -18695,7 +19162,7 @@ type_expressions_rule(Parser *p) asdl_seq * a; expr_ty b; if ( - (a = _gather_137_rule(p)) // ','.expression+ + (a = _gather_141_rule(p)) // ','.expression+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -18728,7 +19195,7 @@ type_expressions_rule(Parser *p) asdl_seq * a; expr_ty b; if ( - (a = _gather_139_rule(p)) // ','.expression+ + (a = _gather_143_rule(p)) // ','.expression+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -18848,7 +19315,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+")); asdl_expr_seq* a; if ( - (a = (asdl_expr_seq*)_gather_141_rule(p)) // ','.expression+ + (a = (asdl_expr_seq*)_gather_145_rule(p)) // ','.expression+ ) { D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+")); @@ -18900,7 +19367,7 @@ func_type_comment_rule(Parser *p) && (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT' && - _PyPegen_lookahead(1, _tmp_143_rule, p) + _PyPegen_lookahead(1, _tmp_147_rule, p) ) { D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)")); @@ -19029,7 +19496,7 @@ invalid_arguments_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_opt_var = _tmp_144_rule(p), !p->error_indicator) // [args | expression for_if_clauses] + (_opt_var = _tmp_148_rule(p), !p->error_indicator) // [args | expression for_if_clauses] ) { D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]")); @@ -19089,13 +19556,13 @@ invalid_arguments_rule(Parser *p) expr_ty a; Token * b; if ( - (_opt_var = _tmp_145_rule(p), !p->error_indicator) // [(args ',')] + (_opt_var = _tmp_149_rule(p), !p->error_indicator) // [(args ',')] && (a = _PyPegen_name_token(p)) // NAME && (b = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, _tmp_146_rule, p) + _PyPegen_lookahead(1, _tmp_150_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')")); @@ -19234,7 +19701,7 @@ invalid_kwarg_rule(Parser *p) Token* a; Token * b; if ( - (a = (Token*)_tmp_147_rule(p)) // 'True' | 'False' | 'None' + (a = (Token*)_tmp_151_rule(p)) // 'True' | 'False' | 'None' && (b = _PyPegen_expect_token(p, 22)) // token='=' ) @@ -19294,7 +19761,7 @@ invalid_kwarg_rule(Parser *p) expr_ty a; Token * b; if ( - _PyPegen_lookahead(0, _tmp_148_rule, p) + _PyPegen_lookahead(0, _tmp_152_rule, p) && (a = expression_rule(p)) // expression && @@ -19398,11 +19865,11 @@ expression_without_invalid_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 644)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 645)) // token='else' && (c = expression_rule(p)) // expression ) @@ -19530,6 +19997,7 @@ invalid_legacy_expression_rule(Parser *p) // invalid_expression: // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid // | disjunction 'if' disjunction !('else' | ':') +// | 'lambda' lambda_params? ':' &(FSTRING_MIDDLE | fstring_replacement_field) static void * invalid_expression_rule(Parser *p) { @@ -19552,7 +20020,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - _PyPegen_lookahead(0, _tmp_149_rule, p) + _PyPegen_lookahead(0, _tmp_153_rule, p) && (a = disjunction_rule(p)) // disjunction && @@ -19584,11 +20052,11 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (b = disjunction_rule(p)) // disjunction && - _PyPegen_lookahead(0, _tmp_150_rule, p) + _PyPegen_lookahead(0, _tmp_154_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); @@ -19604,6 +20072,39 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } + { // 'lambda' lambda_params? ':' &(FSTRING_MIDDLE | fstring_replacement_field) + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &(FSTRING_MIDDLE | fstring_replacement_field)")); + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + Token * a; + Token * b; + if ( + (a = _PyPegen_expect_token(p, 600)) // token='lambda' + && + (_opt_var = lambda_params_rule(p), !p->error_indicator) // lambda_params? + && + (b = _PyPegen_expect_token(p, 11)) // token=':' + && + _PyPegen_lookahead(1, _tmp_155_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &(FSTRING_MIDDLE | fstring_replacement_field)")); + _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "f-string: lambda expressions are not allowed without parentheses" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' &(FSTRING_MIDDLE | fstring_replacement_field)")); + } _res = NULL; done: p->level--; @@ -19677,7 +20178,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_151_rule, p) + _PyPegen_lookahead(0, _tmp_156_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -19703,7 +20204,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, _tmp_152_rule, p) + _PyPegen_lookahead(0, _tmp_157_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -19711,7 +20212,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_153_rule, p) + _PyPegen_lookahead(0, _tmp_158_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -19792,7 +20293,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_154_var; + asdl_seq * _loop0_159_var; expr_ty a; expr_ty expression_var; if ( @@ -19800,7 +20301,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_154_var = _loop0_154_rule(p)) // star_named_expressions* + (_loop0_159_var = _loop0_159_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -19857,10 +20358,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_155_var; + asdl_seq * _loop0_160_var; expr_ty a; if ( - (_loop0_155_var = _loop0_155_rule(p)) // ((star_targets '='))* + (_loop0_160_var = _loop0_160_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -19887,10 +20388,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_156_var; + asdl_seq * _loop0_161_var; expr_ty a; if ( - (_loop0_156_var = _loop0_156_rule(p)) // ((star_targets '='))* + (_loop0_161_var = _loop0_161_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -19916,7 +20417,7 @@ invalid_assignment_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); - void *_tmp_157_var; + void *_tmp_162_var; expr_ty a; AugOperator* augassign_var; if ( @@ -19924,7 +20425,7 @@ invalid_assignment_rule(Parser *p) && (augassign_var = augassign_rule(p)) // augassign && - (_tmp_157_var = _tmp_157_rule(p)) // yield_expr | star_expressions + (_tmp_162_var = _tmp_162_rule(p)) // yield_expr | star_expressions ) { D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); @@ -20057,7 +20558,7 @@ invalid_del_stmt_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 603)) // token='del' + (_keyword = _PyPegen_expect_token(p, 604)) // token='del' && (a = star_expressions_rule(p)) // star_expressions ) @@ -20150,11 +20651,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_158_var; + void *_tmp_163_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_158_var = _tmp_158_rule(p)) // '[' | '(' | '{' + (_tmp_163_var = _tmp_163_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -20181,12 +20682,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_159_var; + void *_tmp_164_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_159_var = _tmp_159_rule(p)) // '[' | '{' + (_tmp_164_var = _tmp_164_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -20216,12 +20717,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_160_var; + void *_tmp_165_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_160_var = _tmp_160_rule(p)) // '[' | '{' + (_tmp_165_var = _tmp_165_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -20358,13 +20859,13 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'")); - asdl_seq * _loop0_162_var; - void *_tmp_161_var; + asdl_seq * _loop0_167_var; + void *_tmp_166_var; Token * a; if ( - (_tmp_161_var = _tmp_161_rule(p)) // slash_no_default | slash_with_default + (_tmp_166_var = _tmp_166_rule(p)) // slash_no_default | slash_with_default && - (_loop0_162_var = _loop0_162_rule(p)) // param_maybe_default* + (_loop0_167_var = _loop0_167_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -20388,7 +20889,7 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default")); - asdl_seq * _loop0_163_var; + asdl_seq * _loop0_168_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings arg_ty a; @@ -20396,7 +20897,7 @@ invalid_parameters_rule(Parser *p) if ( (_opt_var = slash_no_default_rule(p), !p->error_indicator) // slash_no_default? && - (_loop0_163_var = _loop0_163_rule(p)) // param_no_default* + (_loop0_168_var = _loop0_168_rule(p)) // param_no_default* && (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper && @@ -20422,18 +20923,18 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'")); - asdl_seq * _loop0_164_var; - asdl_seq * _loop1_165_var; + asdl_seq * _loop0_169_var; + asdl_seq * _loop1_170_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * b; if ( - (_loop0_164_var = _loop0_164_rule(p)) // param_no_default* + (_loop0_169_var = _loop0_169_rule(p)) // param_no_default* && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_loop1_165_var = _loop1_165_rule(p)) // param_no_default+ + (_loop1_170_var = _loop1_170_rule(p)) // param_no_default+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -20460,22 +20961,22 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'")); Token * _literal; - asdl_seq * _loop0_167_var; - asdl_seq * _loop0_169_var; + asdl_seq * _loop0_172_var; + asdl_seq * _loop0_174_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_168_var; + void *_tmp_173_var; Token * a; if ( - (_opt_var = _tmp_166_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] + (_opt_var = _tmp_171_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] && - (_loop0_167_var = _loop0_167_rule(p)) // param_maybe_default* + (_loop0_172_var = _loop0_172_rule(p)) // param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_168_var = _tmp_168_rule(p)) // ',' | param_no_default + (_tmp_173_var = _tmp_173_rule(p)) // ',' | param_no_default && - (_loop0_169_var = _loop0_169_rule(p)) // param_maybe_default* + (_loop0_174_var = _loop0_174_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -20500,10 +21001,10 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'")); Token * _literal; - asdl_seq * _loop1_170_var; + asdl_seq * _loop1_175_var; Token * a; if ( - (_loop1_170_var = _loop1_170_rule(p)) // param_maybe_default+ + (_loop1_175_var = _loop1_175_rule(p)) // param_maybe_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -20553,7 +21054,7 @@ invalid_default_rule(Parser *p) if ( (a = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, _tmp_171_rule, p) + _PyPegen_lookahead(1, _tmp_176_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')")); @@ -20599,12 +21100,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_172_var; + void *_tmp_177_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_172_var = _tmp_172_rule(p)) // ')' | ',' (')' | '**') + (_tmp_177_var = _tmp_177_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -20687,20 +21188,20 @@ invalid_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); Token * _literal; - asdl_seq * _loop0_174_var; - void *_tmp_173_var; - void *_tmp_175_var; + asdl_seq * _loop0_179_var; + void *_tmp_178_var; + void *_tmp_180_var; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_173_var = _tmp_173_rule(p)) // param_no_default | ',' + (_tmp_178_var = _tmp_178_rule(p)) // param_no_default | ',' && - (_loop0_174_var = _loop0_174_rule(p)) // param_maybe_default* + (_loop0_179_var = _loop0_179_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_175_var = _tmp_175_rule(p)) // param_no_default | ',' + (_tmp_180_var = _tmp_180_rule(p)) // param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); @@ -20816,7 +21317,7 @@ invalid_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_176_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_181_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')")); @@ -20882,13 +21383,13 @@ invalid_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - asdl_seq * _loop1_177_var; + asdl_seq * _loop1_182_var; if ( - (_loop1_177_var = _loop1_177_rule(p)) // param_with_default+ + (_loop1_182_var = _loop1_182_rule(p)) // param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - _res = _loop1_177_var; + _res = _loop1_182_var; goto done; } p->mark = _mark; @@ -20954,13 +21455,13 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'")); - asdl_seq * _loop0_179_var; - void *_tmp_178_var; + asdl_seq * _loop0_184_var; + void *_tmp_183_var; Token * a; if ( - (_tmp_178_var = _tmp_178_rule(p)) // lambda_slash_no_default | lambda_slash_with_default + (_tmp_183_var = _tmp_183_rule(p)) // lambda_slash_no_default | lambda_slash_with_default && - (_loop0_179_var = _loop0_179_rule(p)) // lambda_param_maybe_default* + (_loop0_184_var = _loop0_184_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -20984,7 +21485,7 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default")); - asdl_seq * _loop0_180_var; + asdl_seq * _loop0_185_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings arg_ty a; @@ -20992,7 +21493,7 @@ invalid_lambda_parameters_rule(Parser *p) if ( (_opt_var = lambda_slash_no_default_rule(p), !p->error_indicator) // lambda_slash_no_default? && - (_loop0_180_var = _loop0_180_rule(p)) // lambda_param_no_default* + (_loop0_185_var = _loop0_185_rule(p)) // lambda_param_no_default* && (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper && @@ -21018,18 +21519,18 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'")); - asdl_seq * _gather_182_var; - asdl_seq * _loop0_181_var; + asdl_seq * _gather_187_var; + asdl_seq * _loop0_186_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * b; if ( - (_loop0_181_var = _loop0_181_rule(p)) // lambda_param_no_default* + (_loop0_186_var = _loop0_186_rule(p)) // lambda_param_no_default* && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_182_var = _gather_182_rule(p)) // ','.lambda_param+ + (_gather_187_var = _gather_187_rule(p)) // ','.lambda_param+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -21056,22 +21557,22 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'")); Token * _literal; - asdl_seq * _loop0_185_var; - asdl_seq * _loop0_187_var; + asdl_seq * _loop0_190_var; + asdl_seq * _loop0_192_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_186_var; + void *_tmp_191_var; Token * a; if ( - (_opt_var = _tmp_184_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] + (_opt_var = _tmp_189_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] && - (_loop0_185_var = _loop0_185_rule(p)) // lambda_param_maybe_default* + (_loop0_190_var = _loop0_190_rule(p)) // lambda_param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_186_var = _tmp_186_rule(p)) // ',' | lambda_param_no_default + (_tmp_191_var = _tmp_191_rule(p)) // ',' | lambda_param_no_default && - (_loop0_187_var = _loop0_187_rule(p)) // lambda_param_maybe_default* + (_loop0_192_var = _loop0_192_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 17)) // token='/' ) @@ -21096,10 +21597,10 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'")); Token * _literal; - asdl_seq * _loop1_188_var; + asdl_seq * _loop1_193_var; Token * a; if ( - (_loop1_188_var = _loop1_188_rule(p)) // lambda_param_maybe_default+ + (_loop1_193_var = _loop1_193_rule(p)) // lambda_param_maybe_default+ && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -21171,13 +21672,13 @@ invalid_lambda_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - asdl_seq * _loop1_189_var; + asdl_seq * _loop1_194_var; if ( - (_loop1_189_var = _loop1_189_rule(p)) // lambda_param_with_default+ + (_loop1_194_var = _loop1_194_rule(p)) // lambda_param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - _res = _loop1_189_var; + _res = _loop1_194_var; goto done; } p->mark = _mark; @@ -21214,11 +21715,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_190_var; + void *_tmp_195_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_190_var = _tmp_190_rule(p)) // ':' | ',' (':' | '**') + (_tmp_195_var = _tmp_195_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -21271,20 +21772,20 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); Token * _literal; - asdl_seq * _loop0_192_var; - void *_tmp_191_var; - void *_tmp_193_var; + asdl_seq * _loop0_197_var; + void *_tmp_196_var; + void *_tmp_198_var; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_191_var = _tmp_191_rule(p)) // lambda_param_no_default | ',' + (_tmp_196_var = _tmp_196_rule(p)) // lambda_param_no_default | ',' && - (_loop0_192_var = _loop0_192_rule(p)) // lambda_param_maybe_default* + (_loop0_197_var = _loop0_197_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_193_var = _tmp_193_rule(p)) // lambda_param_no_default | ',' + (_tmp_198_var = _tmp_198_rule(p)) // lambda_param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); @@ -21403,7 +21904,7 @@ invalid_lambda_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_194_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_199_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')")); @@ -21507,11 +22008,11 @@ invalid_with_item_rule(Parser *p) if ( (expression_var = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (a = expression_rule(p)) // expression && - _PyPegen_lookahead(1, _tmp_195_rule, p) + _PyPegen_lookahead(1, _tmp_200_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')")); @@ -21560,7 +22061,7 @@ invalid_for_target_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -21692,11 +22193,11 @@ invalid_import_rule(Parser *p) expr_ty dotted_name_var; expr_ty dotted_name_var_1; if ( - (a = _PyPegen_expect_token(p, 606)) // token='import' + (a = _PyPegen_expect_token(p, 607)) // token='import' && (dotted_name_var = dotted_name_rule(p)) // dotted_name && - (_keyword = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword = _PyPegen_expect_token(p, 608)) // token='from' && (dotted_name_var_1 = dotted_name_rule(p)) // dotted_name ) @@ -21792,7 +22293,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE")); - asdl_seq * _gather_196_var; + asdl_seq * _gather_201_var; Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -21800,9 +22301,9 @@ invalid_with_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && - (_gather_196_var = _gather_196_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_201_var = _gather_201_rule(p)) // ','.(expression ['as' star_target])+ && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -21826,7 +22327,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); - asdl_seq * _gather_198_var; + asdl_seq * _gather_203_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -21838,11 +22339,11 @@ invalid_with_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_198_var = _gather_198_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_203_var = _gather_203_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -21892,7 +22393,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_200_var; + asdl_seq * _gather_205_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -21901,9 +22402,9 @@ invalid_with_stmt_indent_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 614)) // token='with' + (a = _PyPegen_expect_token(p, 615)) // token='with' && - (_gather_200_var = _gather_200_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_205_var = _gather_205_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -21931,7 +22432,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_202_var; + asdl_seq * _gather_207_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -21944,11 +22445,11 @@ invalid_with_stmt_indent_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 614)) // token='with' + (a = _PyPegen_expect_token(p, 615)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_202_var = _gather_202_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_207_var = _gather_207_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -22008,7 +22509,7 @@ invalid_try_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 623)) // token='try' + (a = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22040,13 +22541,13 @@ invalid_try_stmt_rule(Parser *p) Token * _literal; asdl_stmt_seq* block_var; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, _tmp_204_rule, p) + _PyPegen_lookahead(0, _tmp_209_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -22071,29 +22572,29 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_205_var; - asdl_seq * _loop1_206_var; + asdl_seq * _loop0_210_var; + asdl_seq * _loop1_211_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * b; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_205_var = _loop0_205_rule(p)) // block* + (_loop0_210_var = _loop0_210_rule(p)) // block* && - (_loop1_206_var = _loop1_206_rule(p)) // except_block+ + (_loop1_211_var = _loop1_211_rule(p)) // except_block+ && - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (b = _PyPegen_expect_token(p, 16)) // token='*' && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_207_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_212_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -22120,23 +22621,23 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_208_var; - asdl_seq * _loop1_209_var; + asdl_seq * _loop0_213_var; + asdl_seq * _loop1_214_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; if ( - (_keyword = _PyPegen_expect_token(p, 623)) // token='try' + (_keyword = _PyPegen_expect_token(p, 624)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_208_var = _loop0_208_rule(p)) // block* + (_loop0_213_var = _loop0_213_rule(p)) // block* && - (_loop1_209_var = _loop1_209_rule(p)) // except_star_block+ + (_loop1_214_var = _loop1_214_rule(p)) // except_star_block+ && - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && - (_opt_var = _tmp_210_rule(p), !p->error_indicator) // [expression ['as' NAME]] + (_opt_var = _tmp_215_rule(p), !p->error_indicator) // [expression ['as' NAME]] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -22194,7 +22695,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 636)) // token='except' + (_keyword = _PyPegen_expect_token(p, 637)) // token='except' && (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'? && @@ -22204,7 +22705,7 @@ invalid_except_stmt_rule(Parser *p) && (expressions_var = expressions_rule(p)) // expressions && - (_opt_var_1 = _tmp_211_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var_1 = _tmp_216_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -22236,13 +22737,13 @@ invalid_except_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'? && (expression_var = expression_rule(p)) // expression && - (_opt_var_1 = _tmp_212_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var_1 = _tmp_217_rule(p), !p->error_indicator) // ['as' NAME] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -22269,7 +22770,7 @@ invalid_except_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -22294,14 +22795,14 @@ invalid_except_stmt_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); Token * _literal; - void *_tmp_213_var; + void *_tmp_218_var; Token * a; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_213_var = _tmp_213_rule(p)) // NEWLINE | ':' + (_tmp_218_var = _tmp_218_rule(p)) // NEWLINE | ':' ) { D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); @@ -22347,7 +22848,7 @@ invalid_finally_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 632)) // token='finally' + (a = _PyPegen_expect_token(p, 633)) // token='finally' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22404,11 +22905,11 @@ invalid_except_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_214_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_219_rule(p), !p->error_indicator) // ['as' NAME] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22440,7 +22941,7 @@ invalid_except_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22497,13 +22998,13 @@ invalid_except_star_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 636)) // token='except' + (a = _PyPegen_expect_token(p, 637)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_215_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_220_rule(p), !p->error_indicator) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22739,7 +23240,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' ) @@ -22769,7 +23270,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p) && @@ -22872,7 +23373,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_216_rule(p), !p->error_indicator) // [positional_patterns ','] + (_opt_var = _tmp_221_rule(p), !p->error_indicator) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -22926,7 +23427,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -22957,7 +23458,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty a_1; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 641)) // token='if' + (a = _PyPegen_expect_token(p, 642)) // token='if' && (a_1 = named_expression_rule(p)) // named_expression && @@ -23013,7 +23514,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 643)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 644)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -23044,7 +23545,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 643)) // token='elif' + (a = _PyPegen_expect_token(p, 644)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -23098,7 +23599,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 644)) // token='else' + (a = _PyPegen_expect_token(p, 645)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23152,7 +23653,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 646)) // token='while' + (_keyword = _PyPegen_expect_token(p, 647)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -23183,7 +23684,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 646)) // token='while' + (a = _PyPegen_expect_token(p, 647)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -23245,11 +23746,11 @@ invalid_for_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 651)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -23286,11 +23787,11 @@ invalid_for_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 649)) // token='for' + (a = _PyPegen_expect_token(p, 650)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 650)) // token='in' + (_keyword = _PyPegen_expect_token(p, 651)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -23356,7 +23857,7 @@ invalid_def_raw_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC? && - (a = _PyPegen_expect_token(p, 651)) // token='def' + (a = _PyPegen_expect_token(p, 652)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -23366,7 +23867,7 @@ invalid_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (_opt_var_2 = _tmp_217_rule(p), !p->error_indicator) // ['->' expression] + (_opt_var_2 = _tmp_222_rule(p), !p->error_indicator) // ['->' expression] && (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23422,11 +23923,11 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 653)) // token='class' + (_keyword = _PyPegen_expect_token(p, 654)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_218_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var = _tmp_223_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23457,11 +23958,11 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 653)) // token='class' + (a = _PyPegen_expect_token(p, 654)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_219_rule(p), !p->error_indicator) // ['(' arguments? ')'] + (_opt_var = _tmp_224_rule(p), !p->error_indicator) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23512,11 +24013,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_220_var; + asdl_seq * _gather_225_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_220_var = _gather_220_rule(p)) // ','.double_starred_kvpair+ + (_gather_225_var = _gather_225_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -23524,7 +24025,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_220_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_225_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -23577,7 +24078,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_222_rule, p) + _PyPegen_lookahead(1, _tmp_227_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -23688,7 +24189,7 @@ invalid_kvpair_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_223_rule, p) + _PyPegen_lookahead(1, _tmp_228_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -23763,6 +24264,450 @@ invalid_starred_expression_rule(Parser *p) return _res; } +// invalid_replacement_field: +// | '{' '=' +// | '{' '!' +// | '{' ':' +// | '{' '}' +// | '{' !(yield_expr | star_expressions) +// | '{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}') +// | '{' (yield_expr | star_expressions) '=' !('!' | ':' | '}') +// | '{' (yield_expr | star_expressions) '='? invalid_conversion_character +// | '{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}') +// | '{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}' +// | '{' (yield_expr | star_expressions) '='? ['!' NAME] !'}' +static void * +invalid_replacement_field_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '{' '=' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '='")); + Token * _literal; + Token * a; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (a = _PyPegen_expect_token(p, 22)) // token='=' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '='")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '='" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '='")); + } + { // '{' '!' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '!'")); + Token * _literal; + Token * a; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (a = _PyPegen_expect_token(p, 54)) // token='!' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '!'")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '!'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '!'")); + } + { // '{' ':' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' ':'")); + Token * _literal; + Token * a; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (a = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' ':'")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before ':'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' ':'")); + } + { // '{' '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'")); + Token * _literal; + Token * a; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (a = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '}'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'")); + } + { // '{' !(yield_expr | star_expressions) + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' !(yield_expr | star_expressions)")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + _PyPegen_lookahead(0, _tmp_229_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' !(yield_expr | star_expressions)")); + _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting a valid expression after '{'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' !(yield_expr | star_expressions)")); + } + { // '{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}') + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}')")); + Token * _literal; + void *_tmp_230_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_230_var = _tmp_230_rule(p)) // yield_expr | star_expressions + && + _PyPegen_lookahead(0, _tmp_231_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}')")); + _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '=', or '!', or ':', or '}'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) !('=' | '!' | ':' | '}')")); + } + { // '{' (yield_expr | star_expressions) '=' !('!' | ':' | '}') + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '=' !('!' | ':' | '}')")); + Token * _literal; + Token * _literal_1; + void *_tmp_232_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_232_var = _tmp_232_rule(p)) // yield_expr | star_expressions + && + (_literal_1 = _PyPegen_expect_token(p, 22)) // token='=' + && + _PyPegen_lookahead(0, _tmp_233_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '=' !('!' | ':' | '}')")); + _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '!', or ':', or '}'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) '=' !('!' | ':' | '}')")); + } + { // '{' (yield_expr | star_expressions) '='? invalid_conversion_character + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? invalid_conversion_character")); + Token * _literal; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + void *_tmp_234_var; + void *invalid_conversion_character_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_234_var = _tmp_234_rule(p)) // yield_expr | star_expressions + && + (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? + && + (invalid_conversion_character_var = invalid_conversion_character_rule(p)) // invalid_conversion_character + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? invalid_conversion_character")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_234_var, _opt_var, invalid_conversion_character_var); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) '='? invalid_conversion_character")); + } + { // '{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}') + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}')")); + Token * _literal; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + void *_opt_var_1; + UNUSED(_opt_var_1); // Silence compiler warnings + void *_tmp_235_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_235_var = _tmp_235_rule(p)) // yield_expr | star_expressions + && + (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? + && + (_opt_var_1 = _tmp_236_rule(p), !p->error_indicator) // ['!' NAME] + && + _PyPegen_lookahead(0, _tmp_237_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}')")); + _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting ':' or '}'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !(':' | '}')")); + } + { // '{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}'")); + Token * _literal; + Token * _literal_1; + asdl_seq * _loop0_240_var; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + void *_opt_var_1; + UNUSED(_opt_var_1); // Silence compiler warnings + void *_tmp_238_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_238_var = _tmp_238_rule(p)) // yield_expr | star_expressions + && + (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? + && + (_opt_var_1 = _tmp_239_rule(p), !p->error_indicator) // ['!' NAME] + && + (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' + && + (_loop0_240_var = _loop0_240_rule(p)) // fstring_format_spec* + && + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}'")); + _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '}', or format specs" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] ':' fstring_format_spec* !'}'")); + } + { // '{' (yield_expr | star_expressions) '='? ['!' NAME] !'}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !'}'")); + Token * _literal; + void *_opt_var; + UNUSED(_opt_var); // Silence compiler warnings + void *_opt_var_1; + UNUSED(_opt_var_1); // Silence compiler warnings + void *_tmp_241_var; + if ( + (_literal = _PyPegen_expect_token(p, 25)) // token='{' + && + (_tmp_241_var = _tmp_241_rule(p)) // yield_expr | star_expressions + && + (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? + && + (_opt_var_1 = _tmp_242_rule(p), !p->error_indicator) // ['!' NAME] + && + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' + ) + { + D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !'}'")); + _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '}'" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' (yield_expr | star_expressions) '='? ['!' NAME] !'}'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// invalid_conversion_character: '!' &(':' | '}') | '!' !NAME +static void * +invalid_conversion_character_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '!' &(':' | '}') + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + && + _PyPegen_lookahead(1, _tmp_243_rule, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')")); + _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: missing conversion character" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_conversion_character[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' &(':' | '}')")); + } + { // '!' !NAME + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' !NAME")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + && + _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p) + ) + { + D(fprintf(stderr, "%*c+ invalid_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' !NAME")); + _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: invalid conversion character" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_conversion_character[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' !NAME")); + } + _res = NULL; + done: + p->level--; + return _res; +} + // _loop0_1: NEWLINE static asdl_seq * _loop0_1_rule(Parser *p) @@ -23899,9 +24844,77 @@ _loop0_2_rule(Parser *p) return _seq; } -// _loop1_3: statement +// _loop0_3: fstring_middle static asdl_seq * -_loop1_3_rule(Parser *p) +_loop0_3_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void *_res = NULL; + int _mark = p->mark; + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // fstring_middle + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _loop0_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_middle")); + expr_ty fstring_middle_var; + while ( + (fstring_middle_var = fstring_middle_rule(p)) // fstring_middle + ) + { + _res = fstring_middle_var; + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_3[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_middle")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _loop1_4: statement +static asdl_seq * +_loop1_4_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -23927,7 +24940,7 @@ _loop1_3_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement")); + D(fprintf(stderr, "%*c> _loop1_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement")); asdl_stmt_seq* statement_var; while ( (statement_var = statement_rule(p)) // statement @@ -23950,7 +24963,7 @@ _loop1_3_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_3[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_4[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement")); } if (_n == 0 || p->error_indicator) { @@ -23972,9 +24985,9 @@ _loop1_3_rule(Parser *p) return _seq; } -// _loop0_5: ';' simple_stmt +// _loop0_6: ';' simple_stmt static asdl_seq * -_loop0_5_rule(Parser *p) +_loop0_6_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24000,7 +25013,7 @@ _loop0_5_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt")); + D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt")); Token * _literal; stmt_ty elem; while ( @@ -24032,7 +25045,7 @@ _loop0_5_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_5[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -24049,9 +25062,9 @@ _loop0_5_rule(Parser *p) return _seq; } -// _gather_4: simple_stmt _loop0_5 +// _gather_5: simple_stmt _loop0_6 static asdl_seq * -_gather_4_rule(Parser *p) +_gather_5_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24063,27 +25076,27 @@ _gather_4_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // simple_stmt _loop0_5 + { // simple_stmt _loop0_6 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5")); + D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_6")); stmt_ty elem; asdl_seq * seq; if ( (elem = simple_stmt_rule(p)) // simple_stmt && - (seq = _loop0_5_rule(p)) // _loop0_5 + (seq = _loop0_6_rule(p)) // _loop0_6 ) { - D(fprintf(stderr, "%*c+ _gather_4[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5")); + D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_6")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_4[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_5")); + D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_6")); } _res = NULL; done: @@ -24091,9 +25104,9 @@ _gather_4_rule(Parser *p) return _res; } -// _tmp_6: 'import' | 'from' +// _tmp_7: 'import' | 'from' static void * -_tmp_6_rule(Parser *p) +_tmp_7_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24110,18 +25123,18 @@ _tmp_6_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); + D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 606)) // token='import' + (_keyword = _PyPegen_expect_token(p, 607)) // token='import' ) { - D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); + D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'")); } { // 'from' @@ -24129,18 +25142,18 @@ _tmp_6_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); + D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword = _PyPegen_expect_token(p, 608)) // token='from' ) { - D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); + D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'")); } _res = NULL; @@ -24149,9 +25162,9 @@ _tmp_6_rule(Parser *p) return _res; } -// _tmp_7: 'def' | '@' | ASYNC +// _tmp_8: 'def' | '@' | ASYNC static void * -_tmp_7_rule(Parser *p) +_tmp_8_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24168,18 +25181,18 @@ _tmp_7_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); + D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='def' + (_keyword = _PyPegen_expect_token(p, 652)) // token='def' ) { - D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); + D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'")); } { // '@' @@ -24187,18 +25200,18 @@ _tmp_7_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 49)) // token='@' ) { - D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } { // ASYNC @@ -24206,18 +25219,18 @@ _tmp_7_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); Token * async_var; if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' ) { - D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); _res = async_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC")); } _res = NULL; @@ -24226,9 +25239,9 @@ _tmp_7_rule(Parser *p) return _res; } -// _tmp_8: 'class' | '@' +// _tmp_9: 'class' | '@' static void * -_tmp_8_rule(Parser *p) +_tmp_9_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24245,18 +25258,18 @@ _tmp_8_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); + D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 653)) // token='class' + (_keyword = _PyPegen_expect_token(p, 654)) // token='class' ) { - D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); + D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'")); } { // '@' @@ -24264,18 +25277,18 @@ _tmp_8_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 49)) // token='@' ) { - D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } _res = NULL; @@ -24284,9 +25297,9 @@ _tmp_8_rule(Parser *p) return _res; } -// _tmp_9: 'with' | ASYNC +// _tmp_10: 'with' | ASYNC static void * -_tmp_9_rule(Parser *p) +_tmp_10_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24303,18 +25316,18 @@ _tmp_9_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); + D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 614)) // token='with' + (_keyword = _PyPegen_expect_token(p, 615)) // token='with' ) { - D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); + D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'")); } { // ASYNC @@ -24322,18 +25335,18 @@ _tmp_9_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); Token * async_var; if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' ) { - D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); _res = async_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC")); } _res = NULL; @@ -24342,9 +25355,9 @@ _tmp_9_rule(Parser *p) return _res; } -// _tmp_10: 'for' | ASYNC +// _tmp_11: 'for' | ASYNC static void * -_tmp_10_rule(Parser *p) +_tmp_11_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24361,18 +25374,18 @@ _tmp_10_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); + D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 649)) // token='for' + (_keyword = _PyPegen_expect_token(p, 650)) // token='for' ) { - D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); + D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'")); } { // ASYNC @@ -24380,18 +25393,18 @@ _tmp_10_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC")); Token * async_var; if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' ) { - D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); + D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC")); _res = async_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC")); } _res = NULL; @@ -24400,9 +25413,9 @@ _tmp_10_rule(Parser *p) return _res; } -// _tmp_11: '=' annotated_rhs +// _tmp_12: '=' annotated_rhs static void * -_tmp_11_rule(Parser *p) +_tmp_12_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24419,7 +25432,7 @@ _tmp_11_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); + D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); Token * _literal; expr_ty d; if ( @@ -24428,7 +25441,7 @@ _tmp_11_rule(Parser *p) (d = annotated_rhs_rule(p)) // annotated_rhs ) { - D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); + D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); _res = d; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -24438,7 +25451,7 @@ _tmp_11_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs")); } _res = NULL; @@ -24447,9 +25460,9 @@ _tmp_11_rule(Parser *p) return _res; } -// _tmp_12: '(' single_target ')' | single_subscript_attribute_target +// _tmp_13: '(' single_target ')' | single_subscript_attribute_target static void * -_tmp_12_rule(Parser *p) +_tmp_13_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24466,7 +25479,7 @@ _tmp_12_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); + D(fprintf(stderr, "%*c> _tmp_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); Token * _literal; Token * _literal_1; expr_ty b; @@ -24478,7 +25491,7 @@ _tmp_12_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); + D(fprintf(stderr, "%*c+ _tmp_13[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); _res = b; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -24488,7 +25501,7 @@ _tmp_12_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_13[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'")); } { // single_subscript_attribute_target @@ -24496,18 +25509,18 @@ _tmp_12_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target")); + D(fprintf(stderr, "%*c> _tmp_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target")); expr_ty single_subscript_attribute_target_var; if ( (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target ) { - D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target")); + D(fprintf(stderr, "%*c+ _tmp_13[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target")); _res = single_subscript_attribute_target_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_13[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target")); } _res = NULL; @@ -24516,9 +25529,9 @@ _tmp_12_rule(Parser *p) return _res; } -// _tmp_13: '=' annotated_rhs +// _tmp_14: '=' annotated_rhs static void * -_tmp_13_rule(Parser *p) +_tmp_14_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24535,7 +25548,7 @@ _tmp_13_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); + D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); Token * _literal; expr_ty d; if ( @@ -24544,7 +25557,7 @@ _tmp_13_rule(Parser *p) (d = annotated_rhs_rule(p)) // annotated_rhs ) { - D(fprintf(stderr, "%*c+ _tmp_13[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); + D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); _res = d; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -24554,7 +25567,7 @@ _tmp_13_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_13[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs")); } _res = NULL; @@ -24563,9 +25576,9 @@ _tmp_13_rule(Parser *p) return _res; } -// _loop1_14: (star_targets '=') +// _loop1_15: (star_targets '=') static asdl_seq * -_loop1_14_rule(Parser *p) +_loop1_15_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24591,13 +25604,13 @@ _loop1_14_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_224_var; + D(fprintf(stderr, "%*c> _loop1_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_244_var; while ( - (_tmp_224_var = _tmp_224_rule(p)) // star_targets '=' + (_tmp_244_var = _tmp_244_rule(p)) // star_targets '=' ) { - _res = _tmp_224_var; + _res = _tmp_244_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -24614,7 +25627,7 @@ _loop1_14_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_14[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_15[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } if (_n == 0 || p->error_indicator) { @@ -24636,9 +25649,9 @@ _loop1_14_rule(Parser *p) return _seq; } -// _tmp_15: yield_expr | star_expressions +// _tmp_16: yield_expr | star_expressions static void * -_tmp_15_rule(Parser *p) +_tmp_16_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24655,18 +25668,18 @@ _tmp_15_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -24674,18 +25687,18 @@ _tmp_15_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -24694,9 +25707,9 @@ _tmp_15_rule(Parser *p) return _res; } -// _tmp_16: yield_expr | star_expressions +// _tmp_17: yield_expr | star_expressions static void * -_tmp_16_rule(Parser *p) +_tmp_17_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24713,18 +25726,18 @@ _tmp_16_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -24732,18 +25745,18 @@ _tmp_16_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -24752,9 +25765,9 @@ _tmp_16_rule(Parser *p) return _res; } -// _tmp_17: 'from' expression +// _tmp_18: 'from' expression static void * -_tmp_17_rule(Parser *p) +_tmp_18_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24771,16 +25784,16 @@ _tmp_17_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression")); + D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 607)) // token='from' + (_keyword = _PyPegen_expect_token(p, 608)) // token='from' && (z = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression")); + D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -24790,7 +25803,7 @@ _tmp_17_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression")); } _res = NULL; @@ -24799,9 +25812,9 @@ _tmp_17_rule(Parser *p) return _res; } -// _loop0_19: ',' NAME +// _loop0_20: ',' NAME static asdl_seq * -_loop0_19_rule(Parser *p) +_loop0_20_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24827,7 +25840,7 @@ _loop0_19_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME")); + D(fprintf(stderr, "%*c> _loop0_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME")); Token * _literal; expr_ty elem; while ( @@ -24859,7 +25872,7 @@ _loop0_19_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_19[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_20[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -24876,9 +25889,9 @@ _loop0_19_rule(Parser *p) return _seq; } -// _gather_18: NAME _loop0_19 +// _gather_19: NAME _loop0_20 static asdl_seq * -_gather_18_rule(Parser *p) +_gather_19_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24890,27 +25903,27 @@ _gather_18_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // NAME _loop0_19 + { // NAME _loop0_20 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19")); + D(fprintf(stderr, "%*c> _gather_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_20")); expr_ty elem; asdl_seq * seq; if ( (elem = _PyPegen_name_token(p)) // NAME && - (seq = _loop0_19_rule(p)) // _loop0_19 + (seq = _loop0_20_rule(p)) // _loop0_20 ) { - D(fprintf(stderr, "%*c+ _gather_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19")); + D(fprintf(stderr, "%*c+ _gather_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_20")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_18[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_19")); + D(fprintf(stderr, "%*c%s _gather_19[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_20")); } _res = NULL; done: @@ -24918,9 +25931,9 @@ _gather_18_rule(Parser *p) return _res; } -// _loop0_21: ',' NAME +// _loop0_22: ',' NAME static asdl_seq * -_loop0_21_rule(Parser *p) +_loop0_22_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -24946,7 +25959,7 @@ _loop0_21_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME")); + D(fprintf(stderr, "%*c> _loop0_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME")); Token * _literal; expr_ty elem; while ( @@ -24978,7 +25991,7 @@ _loop0_21_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_21[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_22[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -24995,9 +26008,9 @@ _loop0_21_rule(Parser *p) return _seq; } -// _gather_20: NAME _loop0_21 +// _gather_21: NAME _loop0_22 static asdl_seq * -_gather_20_rule(Parser *p) +_gather_21_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25009,27 +26022,27 @@ _gather_20_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // NAME _loop0_21 + { // NAME _loop0_22 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21")); + D(fprintf(stderr, "%*c> _gather_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_22")); expr_ty elem; asdl_seq * seq; if ( (elem = _PyPegen_name_token(p)) // NAME && - (seq = _loop0_21_rule(p)) // _loop0_21 + (seq = _loop0_22_rule(p)) // _loop0_22 ) { - D(fprintf(stderr, "%*c+ _gather_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21")); + D(fprintf(stderr, "%*c+ _gather_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_22")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_20[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_21")); + D(fprintf(stderr, "%*c%s _gather_21[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_22")); } _res = NULL; done: @@ -25037,9 +26050,9 @@ _gather_20_rule(Parser *p) return _res; } -// _tmp_22: ';' | NEWLINE +// _tmp_23: ';' | NEWLINE static void * -_tmp_22_rule(Parser *p) +_tmp_23_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25056,18 +26069,18 @@ _tmp_22_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'")); + D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 13)) // token=';' ) { - D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'")); + D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); } { // NEWLINE @@ -25075,18 +26088,18 @@ _tmp_22_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); Token * newline_var; if ( (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); _res = newline_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } _res = NULL; @@ -25095,9 +26108,9 @@ _tmp_22_rule(Parser *p) return _res; } -// _tmp_23: ',' expression +// _tmp_24: ',' expression static void * -_tmp_23_rule(Parser *p) +_tmp_24_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25114,7 +26127,7 @@ _tmp_23_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty z; if ( @@ -25123,7 +26136,7 @@ _tmp_23_rule(Parser *p) (z = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25133,7 +26146,7 @@ _tmp_23_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -25142,9 +26155,9 @@ _tmp_23_rule(Parser *p) return _res; } -// _loop0_24: ('.' | '...') +// _loop0_25: ('.' | '...') static asdl_seq * -_loop0_24_rule(Parser *p) +_loop0_25_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25170,13 +26183,13 @@ _loop0_24_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_225_var; + D(fprintf(stderr, "%*c> _loop0_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); + void *_tmp_245_var; while ( - (_tmp_225_var = _tmp_225_rule(p)) // '.' | '...' + (_tmp_245_var = _tmp_245_rule(p)) // '.' | '...' ) { - _res = _tmp_225_var; + _res = _tmp_245_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25193,7 +26206,7 @@ _loop0_24_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_24[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_25[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -25210,9 +26223,9 @@ _loop0_24_rule(Parser *p) return _seq; } -// _loop1_25: ('.' | '...') +// _loop1_26: ('.' | '...') static asdl_seq * -_loop1_25_rule(Parser *p) +_loop1_26_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25238,13 +26251,13 @@ _loop1_25_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_226_var; + D(fprintf(stderr, "%*c> _loop1_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); + void *_tmp_246_var; while ( - (_tmp_226_var = _tmp_226_rule(p)) // '.' | '...' + (_tmp_246_var = _tmp_246_rule(p)) // '.' | '...' ) { - _res = _tmp_226_var; + _res = _tmp_246_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25261,7 +26274,7 @@ _loop1_25_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_25[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_26[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')")); } if (_n == 0 || p->error_indicator) { @@ -25283,9 +26296,9 @@ _loop1_25_rule(Parser *p) return _seq; } -// _loop0_27: ',' import_from_as_name +// _loop0_28: ',' import_from_as_name static asdl_seq * -_loop0_27_rule(Parser *p) +_loop0_28_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25311,7 +26324,7 @@ _loop0_27_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name")); + D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name")); Token * _literal; alias_ty elem; while ( @@ -25343,7 +26356,7 @@ _loop0_27_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_27[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -25360,9 +26373,9 @@ _loop0_27_rule(Parser *p) return _seq; } -// _gather_26: import_from_as_name _loop0_27 +// _gather_27: import_from_as_name _loop0_28 static asdl_seq * -_gather_26_rule(Parser *p) +_gather_27_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25374,27 +26387,27 @@ _gather_26_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // import_from_as_name _loop0_27 + { // import_from_as_name _loop0_28 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27")); + D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_28")); alias_ty elem; asdl_seq * seq; if ( (elem = import_from_as_name_rule(p)) // import_from_as_name && - (seq = _loop0_27_rule(p)) // _loop0_27 + (seq = _loop0_28_rule(p)) // _loop0_28 ) { - D(fprintf(stderr, "%*c+ _gather_26[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27")); + D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_28")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_26[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_27")); + D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_28")); } _res = NULL; done: @@ -25402,9 +26415,9 @@ _gather_26_rule(Parser *p) return _res; } -// _tmp_28: 'as' NAME +// _tmp_29: 'as' NAME static void * -_tmp_28_rule(Parser *p) +_tmp_29_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25421,16 +26434,16 @@ _tmp_28_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_28[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25440,7 +26453,7 @@ _tmp_28_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_28[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -25449,9 +26462,9 @@ _tmp_28_rule(Parser *p) return _res; } -// _loop0_30: ',' dotted_as_name +// _loop0_31: ',' dotted_as_name static asdl_seq * -_loop0_30_rule(Parser *p) +_loop0_31_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25477,7 +26490,7 @@ _loop0_30_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name")); + D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name")); Token * _literal; alias_ty elem; while ( @@ -25509,7 +26522,7 @@ _loop0_30_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_30[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -25526,9 +26539,9 @@ _loop0_30_rule(Parser *p) return _seq; } -// _gather_29: dotted_as_name _loop0_30 +// _gather_30: dotted_as_name _loop0_31 static asdl_seq * -_gather_29_rule(Parser *p) +_gather_30_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25540,27 +26553,27 @@ _gather_29_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // dotted_as_name _loop0_30 + { // dotted_as_name _loop0_31 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30")); + D(fprintf(stderr, "%*c> _gather_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_31")); alias_ty elem; asdl_seq * seq; if ( (elem = dotted_as_name_rule(p)) // dotted_as_name && - (seq = _loop0_30_rule(p)) // _loop0_30 + (seq = _loop0_31_rule(p)) // _loop0_31 ) { - D(fprintf(stderr, "%*c+ _gather_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30")); + D(fprintf(stderr, "%*c+ _gather_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_31")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_29[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_30")); + D(fprintf(stderr, "%*c%s _gather_30[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_31")); } _res = NULL; done: @@ -25568,9 +26581,9 @@ _gather_29_rule(Parser *p) return _res; } -// _tmp_31: 'as' NAME +// _tmp_32: 'as' NAME static void * -_tmp_31_rule(Parser *p) +_tmp_32_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25587,16 +26600,16 @@ _tmp_31_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_31[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_32[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25606,7 +26619,7 @@ _tmp_31_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_31[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_32[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -25615,9 +26628,9 @@ _tmp_31_rule(Parser *p) return _res; } -// _loop1_32: ('@' named_expression NEWLINE) +// _loop1_33: ('@' named_expression NEWLINE) static asdl_seq * -_loop1_32_rule(Parser *p) +_loop1_33_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25643,13 +26656,13 @@ _loop1_32_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_227_var; + D(fprintf(stderr, "%*c> _loop1_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); + void *_tmp_247_var; while ( - (_tmp_227_var = _tmp_227_rule(p)) // '@' named_expression NEWLINE + (_tmp_247_var = _tmp_247_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_227_var; + _res = _tmp_247_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25666,7 +26679,7 @@ _loop1_32_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_33[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)")); } if (_n == 0 || p->error_indicator) { @@ -25688,9 +26701,9 @@ _loop1_32_rule(Parser *p) return _seq; } -// _tmp_33: '(' arguments? ')' +// _tmp_34: '(' arguments? ')' static void * -_tmp_33_rule(Parser *p) +_tmp_34_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25707,7 +26720,7 @@ _tmp_33_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *z; @@ -25719,7 +26732,7 @@ _tmp_33_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25729,7 +26742,7 @@ _tmp_33_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_33[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -25738,9 +26751,9 @@ _tmp_33_rule(Parser *p) return _res; } -// _tmp_34: '->' expression +// _tmp_35: '->' expression static void * -_tmp_34_rule(Parser *p) +_tmp_35_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25757,7 +26770,7 @@ _tmp_34_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty z; if ( @@ -25766,7 +26779,7 @@ _tmp_34_rule(Parser *p) (z = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25776,7 +26789,7 @@ _tmp_34_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -25785,9 +26798,9 @@ _tmp_34_rule(Parser *p) return _res; } -// _tmp_35: '->' expression +// _tmp_36: '->' expression static void * -_tmp_35_rule(Parser *p) +_tmp_36_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25804,7 +26817,7 @@ _tmp_35_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty z; if ( @@ -25813,7 +26826,7 @@ _tmp_35_rule(Parser *p) (z = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_36[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -25823,7 +26836,7 @@ _tmp_35_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_36[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -25832,9 +26845,9 @@ _tmp_35_rule(Parser *p) return _res; } -// _loop0_36: param_no_default +// _loop0_37: param_no_default static asdl_seq * -_loop0_36_rule(Parser *p) +_loop0_37_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25860,7 +26873,7 @@ _loop0_36_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -25883,7 +26896,7 @@ _loop0_36_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_36[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -25900,9 +26913,9 @@ _loop0_36_rule(Parser *p) return _seq; } -// _loop0_37: param_with_default +// _loop0_38: param_with_default static asdl_seq * -_loop0_37_rule(Parser *p) +_loop0_38_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25928,7 +26941,7 @@ _loop0_37_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop0_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -25951,7 +26964,7 @@ _loop0_37_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_38[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -25968,9 +26981,9 @@ _loop0_37_rule(Parser *p) return _seq; } -// _loop0_38: param_with_default +// _loop0_39: param_with_default static asdl_seq * -_loop0_38_rule(Parser *p) +_loop0_39_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -25996,7 +27009,7 @@ _loop0_38_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop0_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -26019,7 +27032,7 @@ _loop0_38_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_38[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_39[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26036,9 +27049,9 @@ _loop0_38_rule(Parser *p) return _seq; } -// _loop1_39: param_no_default +// _loop1_40: param_no_default static asdl_seq * -_loop1_39_rule(Parser *p) +_loop1_40_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26064,7 +27077,7 @@ _loop1_39_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop1_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -26087,7 +27100,7 @@ _loop1_39_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_39[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_40[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (_n == 0 || p->error_indicator) { @@ -26109,9 +27122,9 @@ _loop1_39_rule(Parser *p) return _seq; } -// _loop0_40: param_with_default +// _loop0_41: param_with_default static asdl_seq * -_loop0_40_rule(Parser *p) +_loop0_41_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26137,7 +27150,7 @@ _loop0_40_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop0_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -26160,7 +27173,7 @@ _loop0_40_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_41[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26177,9 +27190,9 @@ _loop0_40_rule(Parser *p) return _seq; } -// _loop1_41: param_with_default +// _loop1_42: param_with_default static asdl_seq * -_loop1_41_rule(Parser *p) +_loop1_42_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26205,7 +27218,7 @@ _loop1_41_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -26228,7 +27241,7 @@ _loop1_41_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_41[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_42[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -26250,9 +27263,9 @@ _loop1_41_rule(Parser *p) return _seq; } -// _loop1_42: param_no_default +// _loop1_43: param_no_default static asdl_seq * -_loop1_42_rule(Parser *p) +_loop1_43_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26278,7 +27291,7 @@ _loop1_42_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop1_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -26301,7 +27314,7 @@ _loop1_42_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_42[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_43[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (_n == 0 || p->error_indicator) { @@ -26323,9 +27336,9 @@ _loop1_42_rule(Parser *p) return _seq; } -// _loop1_43: param_no_default +// _loop1_44: param_no_default static asdl_seq * -_loop1_43_rule(Parser *p) +_loop1_44_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26351,7 +27364,7 @@ _loop1_43_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop1_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -26374,7 +27387,7 @@ _loop1_43_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_43[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_44[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (_n == 0 || p->error_indicator) { @@ -26396,9 +27409,9 @@ _loop1_43_rule(Parser *p) return _seq; } -// _loop0_44: param_no_default +// _loop0_45: param_no_default static asdl_seq * -_loop0_44_rule(Parser *p) +_loop0_45_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26424,7 +27437,7 @@ _loop0_44_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -26447,7 +27460,7 @@ _loop0_44_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_45[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26464,9 +27477,9 @@ _loop0_44_rule(Parser *p) return _seq; } -// _loop1_45: param_with_default +// _loop1_46: param_with_default static asdl_seq * -_loop1_45_rule(Parser *p) +_loop1_46_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26492,7 +27505,7 @@ _loop1_45_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -26515,7 +27528,7 @@ _loop1_45_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_45[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_46[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -26537,9 +27550,9 @@ _loop1_45_rule(Parser *p) return _seq; } -// _loop0_46: param_no_default +// _loop0_47: param_no_default static asdl_seq * -_loop0_46_rule(Parser *p) +_loop0_47_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26565,7 +27578,7 @@ _loop0_46_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -26588,7 +27601,7 @@ _loop0_46_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_47[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26605,9 +27618,9 @@ _loop0_46_rule(Parser *p) return _seq; } -// _loop1_47: param_with_default +// _loop1_48: param_with_default static asdl_seq * -_loop1_47_rule(Parser *p) +_loop1_48_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26633,7 +27646,7 @@ _loop1_47_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -26656,7 +27669,7 @@ _loop1_47_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_47[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -26678,9 +27691,9 @@ _loop1_47_rule(Parser *p) return _seq; } -// _loop0_48: param_maybe_default +// _loop0_49: param_maybe_default static asdl_seq * -_loop0_48_rule(Parser *p) +_loop0_49_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26706,7 +27719,7 @@ _loop0_48_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -26729,7 +27742,7 @@ _loop0_48_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_48[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_49[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26746,9 +27759,9 @@ _loop0_48_rule(Parser *p) return _seq; } -// _loop0_49: param_maybe_default +// _loop0_50: param_maybe_default static asdl_seq * -_loop0_49_rule(Parser *p) +_loop0_50_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26774,7 +27787,7 @@ _loop0_49_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -26797,7 +27810,7 @@ _loop0_49_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_49[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_50[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26814,9 +27827,9 @@ _loop0_49_rule(Parser *p) return _seq; } -// _loop1_50: param_maybe_default +// _loop1_51: param_maybe_default static asdl_seq * -_loop1_50_rule(Parser *p) +_loop1_51_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26842,7 +27855,7 @@ _loop1_50_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop1_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -26865,7 +27878,7 @@ _loop1_50_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_51[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } if (_n == 0 || p->error_indicator) { @@ -26887,9 +27900,9 @@ _loop1_50_rule(Parser *p) return _seq; } -// _loop0_52: ',' with_item +// _loop0_53: ',' with_item static asdl_seq * -_loop0_52_rule(Parser *p) +_loop0_53_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26915,7 +27928,7 @@ _loop0_52_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); + D(fprintf(stderr, "%*c> _loop0_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); Token * _literal; withitem_ty elem; while ( @@ -26947,7 +27960,7 @@ _loop0_52_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_53[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -26964,9 +27977,9 @@ _loop0_52_rule(Parser *p) return _seq; } -// _gather_51: with_item _loop0_52 +// _gather_52: with_item _loop0_53 static asdl_seq * -_gather_51_rule(Parser *p) +_gather_52_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -26978,27 +27991,27 @@ _gather_51_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // with_item _loop0_52 + { // with_item _loop0_53 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52")); + D(fprintf(stderr, "%*c> _gather_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_53")); withitem_ty elem; asdl_seq * seq; if ( (elem = with_item_rule(p)) // with_item && - (seq = _loop0_52_rule(p)) // _loop0_52 + (seq = _loop0_53_rule(p)) // _loop0_53 ) { - D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52")); + D(fprintf(stderr, "%*c+ _gather_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_53")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_52")); + D(fprintf(stderr, "%*c%s _gather_52[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_53")); } _res = NULL; done: @@ -27006,9 +28019,9 @@ _gather_51_rule(Parser *p) return _res; } -// _loop0_54: ',' with_item +// _loop0_55: ',' with_item static asdl_seq * -_loop0_54_rule(Parser *p) +_loop0_55_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27034,7 +28047,7 @@ _loop0_54_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); + D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); Token * _literal; withitem_ty elem; while ( @@ -27066,7 +28079,7 @@ _loop0_54_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -27083,9 +28096,9 @@ _loop0_54_rule(Parser *p) return _seq; } -// _gather_53: with_item _loop0_54 +// _gather_54: with_item _loop0_55 static asdl_seq * -_gather_53_rule(Parser *p) +_gather_54_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27097,27 +28110,27 @@ _gather_53_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // with_item _loop0_54 + { // with_item _loop0_55 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54")); + D(fprintf(stderr, "%*c> _gather_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_55")); withitem_ty elem; asdl_seq * seq; if ( (elem = with_item_rule(p)) // with_item && - (seq = _loop0_54_rule(p)) // _loop0_54 + (seq = _loop0_55_rule(p)) // _loop0_55 ) { - D(fprintf(stderr, "%*c+ _gather_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54")); + D(fprintf(stderr, "%*c+ _gather_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_55")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_53[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_54")); + D(fprintf(stderr, "%*c%s _gather_54[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_55")); } _res = NULL; done: @@ -27125,9 +28138,9 @@ _gather_53_rule(Parser *p) return _res; } -// _loop0_56: ',' with_item +// _loop0_57: ',' with_item static asdl_seq * -_loop0_56_rule(Parser *p) +_loop0_57_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27153,7 +28166,7 @@ _loop0_56_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); + D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); Token * _literal; withitem_ty elem; while ( @@ -27185,7 +28198,7 @@ _loop0_56_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -27202,9 +28215,9 @@ _loop0_56_rule(Parser *p) return _seq; } -// _gather_55: with_item _loop0_56 +// _gather_56: with_item _loop0_57 static asdl_seq * -_gather_55_rule(Parser *p) +_gather_56_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27216,27 +28229,27 @@ _gather_55_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // with_item _loop0_56 + { // with_item _loop0_57 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56")); + D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_57")); withitem_ty elem; asdl_seq * seq; if ( (elem = with_item_rule(p)) // with_item && - (seq = _loop0_56_rule(p)) // _loop0_56 + (seq = _loop0_57_rule(p)) // _loop0_57 ) { - D(fprintf(stderr, "%*c+ _gather_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56")); + D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_57")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_55[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_56")); + D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_57")); } _res = NULL; done: @@ -27244,9 +28257,9 @@ _gather_55_rule(Parser *p) return _res; } -// _loop0_58: ',' with_item +// _loop0_59: ',' with_item static asdl_seq * -_loop0_58_rule(Parser *p) +_loop0_59_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27272,7 +28285,7 @@ _loop0_58_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); + D(fprintf(stderr, "%*c> _loop0_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); Token * _literal; withitem_ty elem; while ( @@ -27304,7 +28317,7 @@ _loop0_58_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_59[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -27321,9 +28334,9 @@ _loop0_58_rule(Parser *p) return _seq; } -// _gather_57: with_item _loop0_58 +// _gather_58: with_item _loop0_59 static asdl_seq * -_gather_57_rule(Parser *p) +_gather_58_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27335,27 +28348,27 @@ _gather_57_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // with_item _loop0_58 + { // with_item _loop0_59 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58")); + D(fprintf(stderr, "%*c> _gather_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_59")); withitem_ty elem; asdl_seq * seq; if ( (elem = with_item_rule(p)) // with_item && - (seq = _loop0_58_rule(p)) // _loop0_58 + (seq = _loop0_59_rule(p)) // _loop0_59 ) { - D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58")); + D(fprintf(stderr, "%*c+ _gather_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_59")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_58")); + D(fprintf(stderr, "%*c%s _gather_58[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_59")); } _res = NULL; done: @@ -27363,9 +28376,9 @@ _gather_57_rule(Parser *p) return _res; } -// _tmp_59: ',' | ')' | ':' +// _tmp_60: ',' | ')' | ':' static void * -_tmp_59_rule(Parser *p) +_tmp_60_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27382,18 +28395,18 @@ _tmp_59_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_60[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_60[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -27401,18 +28414,18 @@ _tmp_59_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_60[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_60[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ':' @@ -27420,18 +28433,18 @@ _tmp_59_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_60[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_60[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -27440,9 +28453,9 @@ _tmp_59_rule(Parser *p) return _res; } -// _loop1_60: except_block +// _loop1_61: except_block static asdl_seq * -_loop1_60_rule(Parser *p) +_loop1_61_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27468,7 +28481,7 @@ _loop1_60_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); + D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); excepthandler_ty except_block_var; while ( (except_block_var = except_block_rule(p)) // except_block @@ -27491,7 +28504,7 @@ _loop1_60_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); } if (_n == 0 || p->error_indicator) { @@ -27513,9 +28526,9 @@ _loop1_60_rule(Parser *p) return _seq; } -// _loop1_61: except_star_block +// _loop1_62: except_star_block static asdl_seq * -_loop1_61_rule(Parser *p) +_loop1_62_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27541,7 +28554,7 @@ _loop1_61_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); + D(fprintf(stderr, "%*c> _loop1_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); excepthandler_ty except_star_block_var; while ( (except_star_block_var = except_star_block_rule(p)) // except_star_block @@ -27564,7 +28577,7 @@ _loop1_61_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_62[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); } if (_n == 0 || p->error_indicator) { @@ -27586,9 +28599,9 @@ _loop1_61_rule(Parser *p) return _seq; } -// _tmp_62: 'as' NAME +// _tmp_63: 'as' NAME static void * -_tmp_62_rule(Parser *p) +_tmp_63_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27605,16 +28618,16 @@ _tmp_62_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_63[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -27624,7 +28637,7 @@ _tmp_62_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_62[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_63[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -27633,9 +28646,9 @@ _tmp_62_rule(Parser *p) return _res; } -// _tmp_63: 'as' NAME +// _tmp_64: 'as' NAME static void * -_tmp_63_rule(Parser *p) +_tmp_64_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27652,16 +28665,16 @@ _tmp_63_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_63[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -27671,7 +28684,7 @@ _tmp_63_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_63[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_64[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -27680,9 +28693,9 @@ _tmp_63_rule(Parser *p) return _res; } -// _loop1_64: case_block +// _loop1_65: case_block static asdl_seq * -_loop1_64_rule(Parser *p) +_loop1_65_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27708,7 +28721,7 @@ _loop1_64_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block")); + D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block")); match_case_ty case_block_var; while ( (case_block_var = case_block_rule(p)) // case_block @@ -27731,7 +28744,7 @@ _loop1_64_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_64[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block")); } if (_n == 0 || p->error_indicator) { @@ -27753,9 +28766,9 @@ _loop1_64_rule(Parser *p) return _seq; } -// _loop0_66: '|' closed_pattern +// _loop0_67: '|' closed_pattern static asdl_seq * -_loop0_66_rule(Parser *p) +_loop0_67_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27781,7 +28794,7 @@ _loop0_66_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern")); + D(fprintf(stderr, "%*c> _loop0_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern")); Token * _literal; pattern_ty elem; while ( @@ -27813,7 +28826,7 @@ _loop0_66_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_67[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -27830,9 +28843,9 @@ _loop0_66_rule(Parser *p) return _seq; } -// _gather_65: closed_pattern _loop0_66 +// _gather_66: closed_pattern _loop0_67 static asdl_seq * -_gather_65_rule(Parser *p) +_gather_66_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -27844,85 +28857,27 @@ _gather_65_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // closed_pattern _loop0_66 + { // closed_pattern _loop0_67 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66")); + D(fprintf(stderr, "%*c> _gather_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_67")); pattern_ty elem; asdl_seq * seq; if ( (elem = closed_pattern_rule(p)) // closed_pattern && - (seq = _loop0_66_rule(p)) // _loop0_66 + (seq = _loop0_67_rule(p)) // _loop0_67 ) { - D(fprintf(stderr, "%*c+ _gather_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66")); + D(fprintf(stderr, "%*c+ _gather_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_67")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_65[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_66")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _tmp_67: '+' | '-' -static void * -_tmp_67_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void * _res = NULL; - int _mark = p->mark; - { // '+' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); - Token * _literal; - if ( - (_literal = _PyPegen_expect_token(p, 14)) // token='+' - ) - { - D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); - _res = _literal; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); - } - { // '-' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); - Token * _literal; - if ( - (_literal = _PyPegen_expect_token(p, 15)) // token='-' - ) - { - D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); - _res = _literal; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c%s _gather_66[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_67")); } _res = NULL; done: @@ -27988,7 +28943,7 @@ _tmp_68_rule(Parser *p) return _res; } -// _tmp_69: '.' | '(' | '=' +// _tmp_69: '+' | '-' static void * _tmp_69_rule(Parser *p) { @@ -28002,62 +28957,43 @@ _tmp_69_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // '.' - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); - Token * _literal; - if ( - (_literal = _PyPegen_expect_token(p, 23)) // token='.' - ) - { - D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); - _res = _literal; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); - } - { // '(' + { // '+' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); Token * _literal; if ( - (_literal = _PyPegen_expect_token(p, 7)) // token='(' + (_literal = _PyPegen_expect_token(p, 14)) // token='+' ) { - D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); _res = _literal; goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } - { // '=' + { // '-' if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); Token * _literal; if ( - (_literal = _PyPegen_expect_token(p, 22)) // token='=' + (_literal = _PyPegen_expect_token(p, 15)) // token='-' ) { - D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); _res = _literal; goto done; } p->mark = _mark; D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } _res = NULL; done: @@ -28142,9 +29078,86 @@ _tmp_70_rule(Parser *p) return _res; } -// _loop0_72: ',' maybe_star_pattern +// _tmp_71: '.' | '(' | '=' +static void * +_tmp_71_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '.' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 23)) // token='.' + ) + { + D(fprintf(stderr, "%*c+ _tmp_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_71[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); + } + { // '(' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 7)) // token='(' + ) + { + D(fprintf(stderr, "%*c+ _tmp_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_71[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); + } + { // '=' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 22)) // token='=' + ) + { + D(fprintf(stderr, "%*c+ _tmp_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_71[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _loop0_73: ',' maybe_star_pattern static asdl_seq * -_loop0_72_rule(Parser *p) +_loop0_73_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28170,7 +29183,7 @@ _loop0_72_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern")); + D(fprintf(stderr, "%*c> _loop0_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern")); Token * _literal; pattern_ty elem; while ( @@ -28202,7 +29215,7 @@ _loop0_72_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_73[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -28219,9 +29232,9 @@ _loop0_72_rule(Parser *p) return _seq; } -// _gather_71: maybe_star_pattern _loop0_72 +// _gather_72: maybe_star_pattern _loop0_73 static asdl_seq * -_gather_71_rule(Parser *p) +_gather_72_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28233,27 +29246,27 @@ _gather_71_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // maybe_star_pattern _loop0_72 + { // maybe_star_pattern _loop0_73 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72")); + D(fprintf(stderr, "%*c> _gather_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_73")); pattern_ty elem; asdl_seq * seq; if ( (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern && - (seq = _loop0_72_rule(p)) // _loop0_72 + (seq = _loop0_73_rule(p)) // _loop0_73 ) { - D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72")); + D(fprintf(stderr, "%*c+ _gather_72[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_73")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_72")); + D(fprintf(stderr, "%*c%s _gather_72[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_73")); } _res = NULL; done: @@ -28261,9 +29274,9 @@ _gather_71_rule(Parser *p) return _res; } -// _loop0_74: ',' key_value_pattern +// _loop0_75: ',' key_value_pattern static asdl_seq * -_loop0_74_rule(Parser *p) +_loop0_75_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28289,7 +29302,7 @@ _loop0_74_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern")); + D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern")); Token * _literal; KeyPatternPair* elem; while ( @@ -28321,7 +29334,7 @@ _loop0_74_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -28338,9 +29351,9 @@ _loop0_74_rule(Parser *p) return _seq; } -// _gather_73: key_value_pattern _loop0_74 +// _gather_74: key_value_pattern _loop0_75 static asdl_seq * -_gather_73_rule(Parser *p) +_gather_74_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28352,27 +29365,27 @@ _gather_73_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // key_value_pattern _loop0_74 + { // key_value_pattern _loop0_75 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74")); + D(fprintf(stderr, "%*c> _gather_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_75")); KeyPatternPair* elem; asdl_seq * seq; if ( (elem = key_value_pattern_rule(p)) // key_value_pattern && - (seq = _loop0_74_rule(p)) // _loop0_74 + (seq = _loop0_75_rule(p)) // _loop0_75 ) { - D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74")); + D(fprintf(stderr, "%*c+ _gather_74[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_75")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_74")); + D(fprintf(stderr, "%*c%s _gather_74[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_75")); } _res = NULL; done: @@ -28380,9 +29393,9 @@ _gather_73_rule(Parser *p) return _res; } -// _tmp_75: literal_expr | attr +// _tmp_76: literal_expr | attr static void * -_tmp_75_rule(Parser *p) +_tmp_76_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28399,18 +29412,18 @@ _tmp_75_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr")); + D(fprintf(stderr, "%*c> _tmp_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr")); expr_ty literal_expr_var; if ( (literal_expr_var = literal_expr_rule(p)) // literal_expr ) { - D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr")); + D(fprintf(stderr, "%*c+ _tmp_76[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr")); _res = literal_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_76[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr")); } { // attr @@ -28418,18 +29431,18 @@ _tmp_75_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr")); + D(fprintf(stderr, "%*c> _tmp_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr")); expr_ty attr_var; if ( (attr_var = attr_rule(p)) // attr ) { - D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr")); + D(fprintf(stderr, "%*c+ _tmp_76[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr")); _res = attr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_76[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); } _res = NULL; @@ -28438,9 +29451,9 @@ _tmp_75_rule(Parser *p) return _res; } -// _loop0_77: ',' pattern +// _loop0_78: ',' pattern static asdl_seq * -_loop0_77_rule(Parser *p) +_loop0_78_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28466,7 +29479,7 @@ _loop0_77_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern")); + D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern")); Token * _literal; pattern_ty elem; while ( @@ -28498,7 +29511,7 @@ _loop0_77_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -28515,9 +29528,9 @@ _loop0_77_rule(Parser *p) return _seq; } -// _gather_76: pattern _loop0_77 +// _gather_77: pattern _loop0_78 static asdl_seq * -_gather_76_rule(Parser *p) +_gather_77_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28529,27 +29542,27 @@ _gather_76_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // pattern _loop0_77 + { // pattern _loop0_78 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77")); + D(fprintf(stderr, "%*c> _gather_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_78")); pattern_ty elem; asdl_seq * seq; if ( (elem = pattern_rule(p)) // pattern && - (seq = _loop0_77_rule(p)) // _loop0_77 + (seq = _loop0_78_rule(p)) // _loop0_78 ) { - D(fprintf(stderr, "%*c+ _gather_76[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77")); + D(fprintf(stderr, "%*c+ _gather_77[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_78")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_76[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_77")); + D(fprintf(stderr, "%*c%s _gather_77[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_78")); } _res = NULL; done: @@ -28557,9 +29570,9 @@ _gather_76_rule(Parser *p) return _res; } -// _loop0_79: ',' keyword_pattern +// _loop0_80: ',' keyword_pattern static asdl_seq * -_loop0_79_rule(Parser *p) +_loop0_80_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28585,7 +29598,7 @@ _loop0_79_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern")); + D(fprintf(stderr, "%*c> _loop0_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern")); Token * _literal; KeyPatternPair* elem; while ( @@ -28617,7 +29630,7 @@ _loop0_79_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -28634,9 +29647,9 @@ _loop0_79_rule(Parser *p) return _seq; } -// _gather_78: keyword_pattern _loop0_79 +// _gather_79: keyword_pattern _loop0_80 static asdl_seq * -_gather_78_rule(Parser *p) +_gather_79_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28648,27 +29661,27 @@ _gather_78_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // keyword_pattern _loop0_79 + { // keyword_pattern _loop0_80 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79")); + D(fprintf(stderr, "%*c> _gather_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_80")); KeyPatternPair* elem; asdl_seq * seq; if ( (elem = keyword_pattern_rule(p)) // keyword_pattern && - (seq = _loop0_79_rule(p)) // _loop0_79 + (seq = _loop0_80_rule(p)) // _loop0_80 ) { - D(fprintf(stderr, "%*c+ _gather_78[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79")); + D(fprintf(stderr, "%*c+ _gather_79[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_80")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_78[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_79")); + D(fprintf(stderr, "%*c%s _gather_79[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_80")); } _res = NULL; done: @@ -28676,9 +29689,9 @@ _gather_78_rule(Parser *p) return _res; } -// _loop1_80: (',' expression) +// _loop1_81: (',' expression) static asdl_seq * -_loop1_80_rule(Parser *p) +_loop1_81_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28704,13 +29717,13 @@ _loop1_80_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_228_var; + D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); + void *_tmp_248_var; while ( - (_tmp_228_var = _tmp_228_rule(p)) // ',' expression + (_tmp_248_var = _tmp_248_rule(p)) // ',' expression ) { - _res = _tmp_228_var; + _res = _tmp_248_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28727,7 +29740,7 @@ _loop1_80_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)")); } if (_n == 0 || p->error_indicator) { @@ -28749,9 +29762,9 @@ _loop1_80_rule(Parser *p) return _seq; } -// _loop1_81: (',' star_expression) +// _loop1_82: (',' star_expression) static asdl_seq * -_loop1_81_rule(Parser *p) +_loop1_82_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28777,13 +29790,13 @@ _loop1_81_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_229_var; + D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); + void *_tmp_249_var; while ( - (_tmp_229_var = _tmp_229_rule(p)) // ',' star_expression + (_tmp_249_var = _tmp_249_rule(p)) // ',' star_expression ) { - _res = _tmp_229_var; + _res = _tmp_249_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28800,7 +29813,7 @@ _loop1_81_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)")); } if (_n == 0 || p->error_indicator) { @@ -28822,9 +29835,9 @@ _loop1_81_rule(Parser *p) return _seq; } -// _loop0_83: ',' star_named_expression +// _loop0_84: ',' star_named_expression static asdl_seq * -_loop0_83_rule(Parser *p) +_loop0_84_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28850,7 +29863,7 @@ _loop0_83_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression")); + D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression")); Token * _literal; expr_ty elem; while ( @@ -28882,7 +29895,7 @@ _loop0_83_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_83[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -28899,9 +29912,9 @@ _loop0_83_rule(Parser *p) return _seq; } -// _gather_82: star_named_expression _loop0_83 +// _gather_83: star_named_expression _loop0_84 static asdl_seq * -_gather_82_rule(Parser *p) +_gather_83_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28913,27 +29926,27 @@ _gather_82_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // star_named_expression _loop0_83 + { // star_named_expression _loop0_84 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83")); + D(fprintf(stderr, "%*c> _gather_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_84")); expr_ty elem; asdl_seq * seq; if ( (elem = star_named_expression_rule(p)) // star_named_expression && - (seq = _loop0_83_rule(p)) // _loop0_83 + (seq = _loop0_84_rule(p)) // _loop0_84 ) { - D(fprintf(stderr, "%*c+ _gather_82[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83")); + D(fprintf(stderr, "%*c+ _gather_83[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_84")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_82[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_83")); + D(fprintf(stderr, "%*c%s _gather_83[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_84")); } _res = NULL; done: @@ -28941,9 +29954,9 @@ _gather_82_rule(Parser *p) return _res; } -// _loop1_84: ('or' conjunction) +// _loop1_85: ('or' conjunction) static asdl_seq * -_loop1_84_rule(Parser *p) +_loop1_85_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -28969,13 +29982,13 @@ _loop1_84_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_230_var; + D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); + void *_tmp_250_var; while ( - (_tmp_230_var = _tmp_230_rule(p)) // 'or' conjunction + (_tmp_250_var = _tmp_250_rule(p)) // 'or' conjunction ) { - _res = _tmp_230_var; + _res = _tmp_250_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28992,7 +30005,7 @@ _loop1_84_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)")); } if (_n == 0 || p->error_indicator) { @@ -29014,9 +30027,9 @@ _loop1_84_rule(Parser *p) return _seq; } -// _loop1_85: ('and' inversion) +// _loop1_86: ('and' inversion) static asdl_seq * -_loop1_85_rule(Parser *p) +_loop1_86_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29042,13 +30055,13 @@ _loop1_85_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_231_var; + D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); + void *_tmp_251_var; while ( - (_tmp_231_var = _tmp_231_rule(p)) // 'and' inversion + (_tmp_251_var = _tmp_251_rule(p)) // 'and' inversion ) { - _res = _tmp_231_var; + _res = _tmp_251_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29065,7 +30078,7 @@ _loop1_85_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)")); } if (_n == 0 || p->error_indicator) { @@ -29087,9 +30100,9 @@ _loop1_85_rule(Parser *p) return _seq; } -// _loop1_86: compare_op_bitwise_or_pair +// _loop1_87: compare_op_bitwise_or_pair static asdl_seq * -_loop1_86_rule(Parser *p) +_loop1_87_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29115,7 +30128,7 @@ _loop1_86_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair")); + D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair")); CmpopExprPair* compare_op_bitwise_or_pair_var; while ( (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair @@ -29138,7 +30151,7 @@ _loop1_86_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair")); } if (_n == 0 || p->error_indicator) { @@ -29160,9 +30173,9 @@ _loop1_86_rule(Parser *p) return _seq; } -// _tmp_87: '!=' +// _tmp_88: '!=' static void * -_tmp_87_rule(Parser *p) +_tmp_88_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29179,13 +30192,13 @@ _tmp_87_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='")); + D(fprintf(stderr, "%*c> _tmp_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='")); Token * tok; if ( (tok = _PyPegen_expect_token(p, 28)) // token='!=' ) { - D(fprintf(stderr, "%*c+ _tmp_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='")); + D(fprintf(stderr, "%*c+ _tmp_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='")); _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -29195,7 +30208,7 @@ _tmp_87_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_87[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_88[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='")); } _res = NULL; @@ -29204,9 +30217,9 @@ _tmp_87_rule(Parser *p) return _res; } -// _loop0_89: ',' (slice | starred_expression) +// _loop0_90: ',' (slice | starred_expression) static asdl_seq * -_loop0_89_rule(Parser *p) +_loop0_90_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29232,13 +30245,13 @@ _loop0_89_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (slice | starred_expression)")); + D(fprintf(stderr, "%*c> _loop0_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (slice | starred_expression)")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_232_rule(p)) // slice | starred_expression + (elem = _tmp_252_rule(p)) // slice | starred_expression ) { _res = elem; @@ -29264,7 +30277,7 @@ _loop0_89_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_89[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (slice | starred_expression)")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -29281,9 +30294,9 @@ _loop0_89_rule(Parser *p) return _seq; } -// _gather_88: (slice | starred_expression) _loop0_89 +// _gather_89: (slice | starred_expression) _loop0_90 static asdl_seq * -_gather_88_rule(Parser *p) +_gather_89_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29295,27 +30308,27 @@ _gather_88_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (slice | starred_expression) _loop0_89 + { // (slice | starred_expression) _loop0_90 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89")); + D(fprintf(stderr, "%*c> _gather_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_90")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_232_rule(p)) // slice | starred_expression + (elem = _tmp_252_rule(p)) // slice | starred_expression && - (seq = _loop0_89_rule(p)) // _loop0_89 + (seq = _loop0_90_rule(p)) // _loop0_90 ) { - D(fprintf(stderr, "%*c+ _gather_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89")); + D(fprintf(stderr, "%*c+ _gather_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_90")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_88[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slice | starred_expression) _loop0_89")); + D(fprintf(stderr, "%*c%s _gather_89[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slice | starred_expression) _loop0_90")); } _res = NULL; done: @@ -29323,9 +30336,9 @@ _gather_88_rule(Parser *p) return _res; } -// _tmp_90: ':' expression? +// _tmp_91: ':' expression? static void * -_tmp_90_rule(Parser *p) +_tmp_91_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29342,7 +30355,7 @@ _tmp_90_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?")); + D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?")); Token * _literal; void *d; if ( @@ -29351,7 +30364,7 @@ _tmp_90_rule(Parser *p) (d = expression_rule(p), !p->error_indicator) // expression? ) { - D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?")); + D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?")); _res = d; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -29361,7 +30374,7 @@ _tmp_90_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?")); } _res = NULL; @@ -29370,9 +30383,67 @@ _tmp_90_rule(Parser *p) return _res; } -// _tmp_91: tuple | group | genexp +// _tmp_92: STRING | FSTRING_START static void * -_tmp_91_rule(Parser *p) +_tmp_92_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // STRING + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING")); + expr_ty string_var; + if ( + (string_var = _PyPegen_string_token(p)) // STRING + ) + { + D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING")); + _res = string_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); + } + { // FSTRING_START + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_START")); + Token * fstring_start_var; + if ( + (fstring_start_var = _PyPegen_expect_token(p, FSTRING_START)) // token='FSTRING_START' + ) + { + D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_START")); + _res = fstring_start_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_93: tuple | group | genexp +static void * +_tmp_93_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29389,18 +30460,18 @@ _tmp_91_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // group @@ -29408,18 +30479,18 @@ _tmp_91_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group")); + D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group")); expr_ty group_var; if ( (group_var = group_rule(p)) // group ) { - D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group")); + D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group")); _res = group_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group")); } { // genexp @@ -29427,18 +30498,18 @@ _tmp_91_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } _res = NULL; @@ -29447,9 +30518,9 @@ _tmp_91_rule(Parser *p) return _res; } -// _tmp_92: list | listcomp +// _tmp_94: list | listcomp static void * -_tmp_92_rule(Parser *p) +_tmp_94_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29466,18 +30537,18 @@ _tmp_92_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // listcomp @@ -29485,18 +30556,18 @@ _tmp_92_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp")); + D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp")); expr_ty listcomp_var; if ( (listcomp_var = listcomp_rule(p)) // listcomp ) { - D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp")); + D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp")); _res = listcomp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp")); } _res = NULL; @@ -29505,9 +30576,9 @@ _tmp_92_rule(Parser *p) return _res; } -// _tmp_93: dict | set | dictcomp | setcomp +// _tmp_95: dict | set | dictcomp | setcomp static void * -_tmp_93_rule(Parser *p) +_tmp_95_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29524,18 +30595,18 @@ _tmp_93_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict")); + D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict")); expr_ty dict_var; if ( (dict_var = dict_rule(p)) // dict ) { - D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict")); + D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict")); _res = dict_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict")); } { // set @@ -29543,18 +30614,18 @@ _tmp_93_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set")); + D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set")); expr_ty set_var; if ( (set_var = set_rule(p)) // set ) { - D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set")); + D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set")); _res = set_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set")); } { // dictcomp @@ -29562,18 +30633,18 @@ _tmp_93_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp")); + D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp")); expr_ty dictcomp_var; if ( (dictcomp_var = dictcomp_rule(p)) // dictcomp ) { - D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp")); + D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp")); _res = dictcomp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp")); } { // setcomp @@ -29581,18 +30652,18 @@ _tmp_93_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp")); + D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp")); expr_ty setcomp_var; if ( (setcomp_var = setcomp_rule(p)) // setcomp ) { - D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp")); + D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp")); _res = setcomp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp")); } _res = NULL; @@ -29601,9 +30672,9 @@ _tmp_93_rule(Parser *p) return _res; } -// _tmp_94: yield_expr | named_expression +// _tmp_96: yield_expr | named_expression static void * -_tmp_94_rule(Parser *p) +_tmp_96_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29620,18 +30691,18 @@ _tmp_94_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // named_expression @@ -29639,18 +30710,18 @@ _tmp_94_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); + D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); expr_ty named_expression_var; if ( (named_expression_var = named_expression_rule(p)) // named_expression ) { - D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); + D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); _res = named_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); } _res = NULL; @@ -29659,143 +30730,7 @@ _tmp_94_rule(Parser *p) return _res; } -// _loop0_95: lambda_param_no_default -static asdl_seq * -_loop0_95_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void *_res = NULL; - int _mark = p->mark; - void **_children = PyMem_Malloc(sizeof(void *)); - if (!_children) { - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - Py_ssize_t _children_capacity = 1; - Py_ssize_t _n = 0; - { // lambda_param_no_default - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); - arg_ty lambda_param_no_default_var; - while ( - (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default - ) - { - _res = lambda_param_no_default_var; - if (_n == _children_capacity) { - _children_capacity *= 2; - void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); - if (!_new_children) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - _children = _new_children; - } - _children[_n++] = _res; - _mark = p->mark; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); - } - asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); - if (!_seq) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); - PyMem_Free(_children); - p->level--; - return _seq; -} - -// _loop0_96: lambda_param_with_default -static asdl_seq * -_loop0_96_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void *_res = NULL; - int _mark = p->mark; - void **_children = PyMem_Malloc(sizeof(void *)); - if (!_children) { - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - Py_ssize_t _children_capacity = 1; - Py_ssize_t _n = 0; - { // lambda_param_with_default - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); - NameDefaultPair* lambda_param_with_default_var; - while ( - (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default - ) - { - _res = lambda_param_with_default_var; - if (_n == _children_capacity) { - _children_capacity *= 2; - void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); - if (!_new_children) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - _children = _new_children; - } - _children[_n++] = _res; - _mark = p->mark; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); - } - asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); - if (!_seq) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); - PyMem_Free(_children); - p->level--; - return _seq; -} - -// _loop0_97: lambda_param_with_default +// _loop0_97: lambda_param_no_default static asdl_seq * _loop0_97_rule(Parser *p) { @@ -29818,18 +30753,18 @@ _loop0_97_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_with_default + { // lambda_param_no_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); - NameDefaultPair* lambda_param_with_default_var; + D(fprintf(stderr, "%*c> _loop0_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + arg_ty lambda_param_no_default_var; while ( - (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default + (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - _res = lambda_param_with_default_var; + _res = lambda_param_no_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29847,7 +30782,7 @@ _loop0_97_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop0_97[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -29863,9 +30798,9 @@ _loop0_97_rule(Parser *p) return _seq; } -// _loop1_98: lambda_param_no_default +// _loop0_98: lambda_param_with_default static asdl_seq * -_loop1_98_rule(Parser *p) +_loop0_98_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -29886,18 +30821,18 @@ _loop1_98_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_no_default + { // lambda_param_with_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); - arg_ty lambda_param_no_default_var; + D(fprintf(stderr, "%*c> _loop0_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + NameDefaultPair* lambda_param_with_default_var; while ( - (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default + (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default ) { - _res = lambda_param_no_default_var; + _res = lambda_param_with_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29914,13 +30849,8 @@ _loop1_98_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); - } - if (_n == 0 || p->error_indicator) { - PyMem_Free(_children); - p->level--; - return NULL; + D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -30004,7 +30934,7 @@ _loop0_99_rule(Parser *p) return _seq; } -// _loop1_100: lambda_param_with_default +// _loop1_100: lambda_param_no_default static asdl_seq * _loop1_100_rule(Parser *p) { @@ -30027,18 +30957,18 @@ _loop1_100_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_with_default + { // lambda_param_no_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); - NameDefaultPair* lambda_param_with_default_var; + D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + arg_ty lambda_param_no_default_var; while ( - (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default + (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - _res = lambda_param_with_default_var; + _res = lambda_param_no_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30056,7 +30986,7 @@ _loop1_100_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } if (_n == 0 || p->error_indicator) { PyMem_Free(_children); @@ -30077,9 +31007,9 @@ _loop1_100_rule(Parser *p) return _seq; } -// _loop1_101: lambda_param_no_default +// _loop0_101: lambda_param_with_default static asdl_seq * -_loop1_101_rule(Parser *p) +_loop0_101_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30100,18 +31030,18 @@ _loop1_101_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_no_default + { // lambda_param_with_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); - arg_ty lambda_param_no_default_var; + D(fprintf(stderr, "%*c> _loop0_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + NameDefaultPair* lambda_param_with_default_var; while ( - (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default + (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default ) { - _res = lambda_param_no_default_var; + _res = lambda_param_with_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30128,13 +31058,8 @@ _loop1_101_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); - } - if (_n == 0 || p->error_indicator) { - PyMem_Free(_children); - p->level--; - return NULL; + D(fprintf(stderr, "%*c%s _loop0_101[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -30150,7 +31075,7 @@ _loop1_101_rule(Parser *p) return _seq; } -// _loop1_102: lambda_param_no_default +// _loop1_102: lambda_param_with_default static asdl_seq * _loop1_102_rule(Parser *p) { @@ -30173,18 +31098,18 @@ _loop1_102_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_no_default + { // lambda_param_with_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); - arg_ty lambda_param_no_default_var; + D(fprintf(stderr, "%*c> _loop1_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + NameDefaultPair* lambda_param_with_default_var; while ( - (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default + (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default ) { - _res = lambda_param_no_default_var; + _res = lambda_param_with_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30202,7 +31127,7 @@ _loop1_102_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop1_102[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { PyMem_Free(_children); @@ -30223,9 +31148,9 @@ _loop1_102_rule(Parser *p) return _seq; } -// _loop0_103: lambda_param_no_default +// _loop1_103: lambda_param_no_default static asdl_seq * -_loop0_103_rule(Parser *p) +_loop1_103_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30251,7 +31176,7 @@ _loop0_103_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -30274,9 +31199,14 @@ _loop0_103_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } + if (_n == 0 || p->error_indicator) { + PyMem_Free(_children); + p->level--; + return NULL; + } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { PyMem_Free(_children); @@ -30291,7 +31221,7 @@ _loop0_103_rule(Parser *p) return _seq; } -// _loop1_104: lambda_param_with_default +// _loop1_104: lambda_param_no_default static asdl_seq * _loop1_104_rule(Parser *p) { @@ -30314,18 +31244,18 @@ _loop1_104_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_with_default + { // lambda_param_no_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); - NameDefaultPair* lambda_param_with_default_var; + D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + arg_ty lambda_param_no_default_var; while ( - (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default + (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - _res = lambda_param_with_default_var; + _res = lambda_param_no_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30343,7 +31273,7 @@ _loop1_104_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } if (_n == 0 || p->error_indicator) { PyMem_Free(_children); @@ -30505,7 +31435,7 @@ _loop1_106_rule(Parser *p) return _seq; } -// _loop0_107: lambda_param_maybe_default +// _loop0_107: lambda_param_no_default static asdl_seq * _loop0_107_rule(Parser *p) { @@ -30528,18 +31458,18 @@ _loop0_107_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_maybe_default + { // lambda_param_no_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); - NameDefaultPair* lambda_param_maybe_default_var; + D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + arg_ty lambda_param_no_default_var; while ( - (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default + (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - _res = lambda_param_maybe_default_var; + _res = lambda_param_no_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30557,7 +31487,7 @@ _loop0_107_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -30573,7 +31503,7 @@ _loop0_107_rule(Parser *p) return _seq; } -// _loop1_108: lambda_param_maybe_default +// _loop1_108: lambda_param_with_default static asdl_seq * _loop1_108_rule(Parser *p) { @@ -30596,18 +31526,18 @@ _loop1_108_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // lambda_param_maybe_default + { // lambda_param_with_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); - NameDefaultPair* lambda_param_maybe_default_var; + D(fprintf(stderr, "%*c> _loop1_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + NameDefaultPair* lambda_param_with_default_var; while ( - (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default + (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default ) { - _res = lambda_param_maybe_default_var; + _res = lambda_param_with_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30625,7 +31555,7 @@ _loop1_108_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s _loop1_108[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { PyMem_Free(_children); @@ -30646,9 +31576,9 @@ _loop1_108_rule(Parser *p) return _seq; } -// _loop1_109: STRING +// _loop0_109: lambda_param_maybe_default static asdl_seq * -_loop1_109_rule(Parser *p) +_loop0_109_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30669,18 +31599,18 @@ _loop1_109_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // STRING + { // lambda_param_maybe_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING")); - expr_ty string_var; + D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + NameDefaultPair* lambda_param_maybe_default_var; while ( - (string_var = _PyPegen_string_token(p)) // STRING + (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default ) { - _res = string_var; + _res = lambda_param_maybe_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30697,13 +31627,8 @@ _loop1_109_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_109[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); - } - if (_n == 0 || p->error_indicator) { - PyMem_Free(_children); - p->level--; - return NULL; + D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -30719,59 +31644,9 @@ _loop1_109_rule(Parser *p) return _seq; } -// _tmp_110: star_named_expression ',' star_named_expressions? -static void * -_tmp_110_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void * _res = NULL; - int _mark = p->mark; - { // star_named_expression ',' star_named_expressions? - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); - Token * _literal; - expr_ty y; - void *z; - if ( - (y = star_named_expression_rule(p)) // star_named_expression - && - (_literal = _PyPegen_expect_token(p, 12)) // token=',' - && - (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions? - ) - { - D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); - _res = _PyPegen_seq_insert_in_front ( p , y , z ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _loop0_112: ',' double_starred_kvpair +// _loop1_110: lambda_param_maybe_default static asdl_seq * -_loop0_112_rule(Parser *p) +_loop1_110_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30792,27 +31667,18 @@ _loop0_112_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ',' double_starred_kvpair + { // lambda_param_maybe_default if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); - Token * _literal; - KeyValuePair* elem; + D(fprintf(stderr, "%*c> _loop1_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + NameDefaultPair* lambda_param_maybe_default_var; while ( - (_literal = _PyPegen_expect_token(p, 12)) // token=',' - && - (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair + (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default ) { - _res = elem; - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - PyMem_Free(_children); - p->level--; - return NULL; - } + _res = lambda_param_maybe_default_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30829,8 +31695,13 @@ _loop0_112_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c%s _loop1_110[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); + } + if (_n == 0 || p->error_indicator) { + PyMem_Free(_children); + p->level--; + return NULL; } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -30846,9 +31717,9 @@ _loop0_112_rule(Parser *p) return _seq; } -// _gather_111: double_starred_kvpair _loop0_112 -static asdl_seq * -_gather_111_rule(Parser *p) +// _tmp_111: yield_expr | star_expressions +static void * +_tmp_111_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30858,112 +31729,55 @@ _gather_111_rule(Parser *p) p->level--; return NULL; } - asdl_seq * _res = NULL; + void * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_112 + { // yield_expr if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112")); - KeyValuePair* elem; - asdl_seq * seq; + D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; if ( - (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair - && - (seq = _loop0_112_rule(p)) // _loop0_112 + (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112")); - _res = _PyPegen_seq_insert_in_front(p, elem, seq); + D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_112")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _loop1_113: for_if_clause -static asdl_seq * -_loop1_113_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - p->error_indicator = 1; - PyErr_NoMemory(); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void *_res = NULL; - int _mark = p->mark; - void **_children = PyMem_Malloc(sizeof(void *)); - if (!_children) { - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; + D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } - Py_ssize_t _children_capacity = 1; - Py_ssize_t _n = 0; - { // for_if_clause + { // star_expressions if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause")); - comprehension_ty for_if_clause_var; - while ( - (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause + D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - _res = for_if_clause_var; - if (_n == _children_capacity) { - _children_capacity *= 2; - void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); - if (!_new_children) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; - } - _children = _new_children; - } - _children[_n++] = _res; - _mark = p->mark; + D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_113[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause")); - } - if (_n == 0 || p->error_indicator) { - PyMem_Free(_children); - p->level--; - return NULL; - } - asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); - if (!_seq) { - PyMem_Free(_children); - p->error_indicator = 1; - PyErr_NoMemory(); - p->level--; - return NULL; + D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } - for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); - PyMem_Free(_children); + _res = NULL; + done: p->level--; - return _seq; + return _res; } -// _loop0_114: ('if' disjunction) +// _loop0_112: fstring_format_spec static asdl_seq * -_loop0_114_rule(Parser *p) +_loop0_112_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -30984,18 +31798,18 @@ _loop0_114_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ('if' disjunction) + { // fstring_format_spec if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_233_var; + D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec")); + expr_ty fstring_format_spec_var; while ( - (_tmp_233_var = _tmp_233_rule(p)) // 'if' disjunction + (fstring_format_spec_var = fstring_format_spec_rule(p)) // fstring_format_spec ) { - _res = _tmp_233_var; + _res = fstring_format_spec_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31012,8 +31826,8 @@ _loop0_114_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)")); + D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_format_spec")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -31029,9 +31843,9 @@ _loop0_114_rule(Parser *p) return _seq; } -// _loop0_115: ('if' disjunction) +// _loop1_113: (fstring | string) static asdl_seq * -_loop0_115_rule(Parser *p) +_loop1_113_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31052,18 +31866,18 @@ _loop0_115_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ('if' disjunction) + { // (fstring | string) if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_234_var; + D(fprintf(stderr, "%*c> _loop1_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)")); + void *_tmp_253_var; while ( - (_tmp_234_var = _tmp_234_rule(p)) // 'if' disjunction + (_tmp_253_var = _tmp_253_rule(p)) // fstring | string ) { - _res = _tmp_234_var; + _res = _tmp_253_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31080,8 +31894,13 @@ _loop0_115_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)")); + D(fprintf(stderr, "%*c%s _loop1_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(fstring | string)")); + } + if (_n == 0 || p->error_indicator) { + PyMem_Free(_children); + p->level--; + return NULL; } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -31097,9 +31916,9 @@ _loop0_115_rule(Parser *p) return _seq; } -// _tmp_116: assignment_expression | expression !':=' +// _tmp_114: star_named_expression ',' star_named_expressions? static void * -_tmp_116_rule(Parser *p) +_tmp_114_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31111,45 +31930,35 @@ _tmp_116_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // assignment_expression - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); - expr_ty assignment_expression_var; - if ( - (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression - ) - { - D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); - _res = assignment_expression_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); - } - { // expression !':=' + { // star_named_expression ',' star_named_expressions? if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); - expr_ty expression_var; + D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); + Token * _literal; + expr_ty y; + void *z; if ( - (expression_var = expression_rule(p)) // expression + (y = star_named_expression_rule(p)) // star_named_expression && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + && + (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions? ) { - D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); - _res = expression_var; + D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); + _res = _PyPegen_seq_insert_in_front ( p , y , z ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?")); } _res = NULL; done: @@ -31157,9 +31966,9 @@ _tmp_116_rule(Parser *p) return _res; } -// _loop0_118: ',' (starred_expression | (assignment_expression | expression !':=') !'=') +// _loop0_116: ',' double_starred_kvpair static asdl_seq * -_loop0_118_rule(Parser *p) +_loop0_116_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31180,18 +31989,18 @@ _loop0_118_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ',' (starred_expression | (assignment_expression | expression !':=') !'=') + { // ',' double_starred_kvpair if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); + D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; - void *elem; + KeyValuePair* elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_235_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair ) { _res = elem; @@ -31217,8 +32026,8 @@ _loop0_118_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); + D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -31234,10 +32043,9 @@ _loop0_118_rule(Parser *p) return _seq; } -// _gather_117: -// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118 +// _gather_115: double_starred_kvpair _loop0_116 static asdl_seq * -_gather_117_rule(Parser *p) +_gather_115_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31249,27 +32057,27 @@ _gather_117_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118 + { // double_starred_kvpair _loop0_116 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118")); - void *elem; + D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_116")); + KeyValuePair* elem; asdl_seq * seq; if ( - (elem = _tmp_235_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_118_rule(p)) // _loop0_118 + (seq = _loop0_116_rule(p)) // _loop0_116 ) { - D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118")); + D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_116")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118")); + D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_116")); } _res = NULL; done: @@ -31277,9 +32085,9 @@ _gather_117_rule(Parser *p) return _res; } -// _tmp_119: ',' kwargs -static void * -_tmp_119_rule(Parser *p) +// _loop1_117: for_if_clause +static asdl_seq * +_loop1_117_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31289,44 +32097,70 @@ _tmp_119_rule(Parser *p) p->level--; return NULL; } - void * _res = NULL; + void *_res = NULL; int _mark = p->mark; - { // ',' kwargs + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // for_if_clause if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs")); - Token * _literal; - asdl_seq* k; - if ( - (_literal = _PyPegen_expect_token(p, 12)) // token=',' - && - (k = kwargs_rule(p)) // kwargs + D(fprintf(stderr, "%*c> _loop1_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause")); + comprehension_ty for_if_clause_var; + while ( + (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause ) { - D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs")); - _res = k; - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; + _res = for_if_clause_var; + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; } - goto done; + _children[_n++] = _res; + _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs")); + D(fprintf(stderr, "%*c%s _loop1_117[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause")); } - _res = NULL; - done: + if (_n == 0 || p->error_indicator) { + PyMem_Free(_children); + p->level--; + return NULL; + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); p->level--; - return _res; + return _seq; } -// _loop0_121: ',' kwarg_or_starred +// _loop0_118: ('if' disjunction) static asdl_seq * -_loop0_121_rule(Parser *p) +_loop0_118_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31347,27 +32181,18 @@ _loop0_121_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ',' kwarg_or_starred + { // ('if' disjunction) if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred")); - Token * _literal; - KeywordOrStarred* elem; + D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); + void *_tmp_254_var; while ( - (_literal = _PyPegen_expect_token(p, 12)) // token=',' - && - (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred + (_tmp_254_var = _tmp_254_rule(p)) // 'if' disjunction ) { - _res = elem; - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - PyMem_Free(_children); - p->level--; - return NULL; - } + _res = _tmp_254_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31384,8 +32209,8 @@ _loop0_121_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred")); + D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -31401,9 +32226,9 @@ _loop0_121_rule(Parser *p) return _seq; } -// _gather_120: kwarg_or_starred _loop0_121 +// _loop0_119: ('if' disjunction) static asdl_seq * -_gather_120_rule(Parser *p) +_loop0_119_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31413,29 +32238,115 @@ _gather_120_rule(Parser *p) p->level--; return NULL; } - asdl_seq * _res = NULL; + void *_res = NULL; int _mark = p->mark; - { // kwarg_or_starred _loop0_121 + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // ('if' disjunction) if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121")); - KeywordOrStarred* elem; - asdl_seq * seq; + D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); + void *_tmp_255_var; + while ( + (_tmp_255_var = _tmp_255_rule(p)) // 'if' disjunction + ) + { + _res = _tmp_255_var; + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _tmp_120: assignment_expression | expression !':=' +static void * +_tmp_120_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // assignment_expression + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + expr_ty assignment_expression_var; if ( - (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred + (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression + ) + { + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + _res = assignment_expression_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); + } + { // expression !':=' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + expr_ty expression_var; + if ( + (expression_var = expression_rule(p)) // expression && - (seq = _loop0_121_rule(p)) // _loop0_121 + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _gather_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121")); - _res = _PyPegen_seq_insert_in_front(p, elem, seq); + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_121")); + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; done: @@ -31443,9 +32354,9 @@ _gather_120_rule(Parser *p) return _res; } -// _loop0_123: ',' kwarg_or_double_starred +// _loop0_122: ',' (starred_expression | (assignment_expression | expression !':=') !'=') static asdl_seq * -_loop0_123_rule(Parser *p) +_loop0_122_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31466,18 +32377,18 @@ _loop0_123_rule(Parser *p) } Py_ssize_t _children_capacity = 1; Py_ssize_t _n = 0; - { // ',' kwarg_or_double_starred + { // ',' (starred_expression | (assignment_expression | expression !':=') !'=') if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred")); + D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); Token * _literal; - KeywordOrStarred* elem; + void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred + (elem = _tmp_256_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -31503,8 +32414,8 @@ _loop0_123_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred")); + D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); if (!_seq) { @@ -31520,9 +32431,10 @@ _loop0_123_rule(Parser *p) return _seq; } -// _gather_122: kwarg_or_double_starred _loop0_123 +// _gather_121: +// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_122 static asdl_seq * -_gather_122_rule(Parser *p) +_gather_121_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31534,27 +32446,74 @@ _gather_122_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // kwarg_or_double_starred _loop0_123 + { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_122 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123")); - KeywordOrStarred* elem; + D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_122")); + void *elem; asdl_seq * seq; if ( - (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred + (elem = _tmp_256_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && - (seq = _loop0_123_rule(p)) // _loop0_123 + (seq = _loop0_122_rule(p)) // _loop0_122 ) { - D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123")); + D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_122")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_123")); + D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_122")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_123: ',' kwargs +static void * +_tmp_123_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // ',' kwargs + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs")); + Token * _literal; + asdl_seq* k; + if ( + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + && + (k = kwargs_rule(p)) // kwargs + ) + { + D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs")); + _res = k; + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs")); } _res = NULL; done: @@ -31800,9 +32759,247 @@ _gather_126_rule(Parser *p) return _res; } -// _loop0_128: (',' star_target) +// _loop0_129: ',' kwarg_or_starred static asdl_seq * -_loop0_128_rule(Parser *p) +_loop0_129_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void *_res = NULL; + int _mark = p->mark; + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // ',' kwarg_or_starred + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred")); + Token * _literal; + KeywordOrStarred* elem; + while ( + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + && + (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred + ) + { + _res = elem; + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + PyMem_Free(_children); + p->level--; + return NULL; + } + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _gather_128: kwarg_or_starred _loop0_129 +static asdl_seq * +_gather_128_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + asdl_seq * _res = NULL; + int _mark = p->mark; + { // kwarg_or_starred _loop0_129 + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_129")); + KeywordOrStarred* elem; + asdl_seq * seq; + if ( + (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred + && + (seq = _loop0_129_rule(p)) // _loop0_129 + ) + { + D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_129")); + _res = _PyPegen_seq_insert_in_front(p, elem, seq); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_129")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _loop0_131: ',' kwarg_or_double_starred +static asdl_seq * +_loop0_131_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void *_res = NULL; + int _mark = p->mark; + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // ',' kwarg_or_double_starred + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred")); + Token * _literal; + KeywordOrStarred* elem; + while ( + (_literal = _PyPegen_expect_token(p, 12)) // token=',' + && + (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred + ) + { + _res = elem; + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + PyMem_Free(_children); + p->level--; + return NULL; + } + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _gather_130: kwarg_or_double_starred _loop0_131 +static asdl_seq * +_gather_130_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + asdl_seq * _res = NULL; + int _mark = p->mark; + { // kwarg_or_double_starred _loop0_131 + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_131")); + KeywordOrStarred* elem; + asdl_seq * seq; + if ( + (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred + && + (seq = _loop0_131_rule(p)) // _loop0_131 + ) + { + D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_131")); + _res = _PyPegen_seq_insert_in_front(p, elem, seq); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_131")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _loop0_132: (',' star_target) +static asdl_seq * +_loop0_132_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31828,13 +33025,13 @@ _loop0_128_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_236_var; + D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); + void *_tmp_257_var; while ( - (_tmp_236_var = _tmp_236_rule(p)) // ',' star_target + (_tmp_257_var = _tmp_257_rule(p)) // ',' star_target ) { - _res = _tmp_236_var; + _res = _tmp_257_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31851,7 +33048,7 @@ _loop0_128_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31868,9 +33065,9 @@ _loop0_128_rule(Parser *p) return _seq; } -// _loop0_130: ',' star_target +// _loop0_134: ',' star_target static asdl_seq * -_loop0_130_rule(Parser *p) +_loop0_134_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31896,7 +33093,7 @@ _loop0_130_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty elem; while ( @@ -31928,7 +33125,7 @@ _loop0_130_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31945,9 +33142,9 @@ _loop0_130_rule(Parser *p) return _seq; } -// _gather_129: star_target _loop0_130 +// _gather_133: star_target _loop0_134 static asdl_seq * -_gather_129_rule(Parser *p) +_gather_133_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -31959,27 +33156,27 @@ _gather_129_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // star_target _loop0_130 + { // star_target _loop0_134 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130")); + D(fprintf(stderr, "%*c> _gather_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_134")); expr_ty elem; asdl_seq * seq; if ( (elem = star_target_rule(p)) // star_target && - (seq = _loop0_130_rule(p)) // _loop0_130 + (seq = _loop0_134_rule(p)) // _loop0_134 ) { - D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130")); + D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_134")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_130")); + D(fprintf(stderr, "%*c%s _gather_133[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_134")); } _res = NULL; done: @@ -31987,9 +33184,9 @@ _gather_129_rule(Parser *p) return _res; } -// _loop1_131: (',' star_target) +// _loop1_135: (',' star_target) static asdl_seq * -_loop1_131_rule(Parser *p) +_loop1_135_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32015,13 +33212,13 @@ _loop1_131_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_237_var; + D(fprintf(stderr, "%*c> _loop1_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); + void *_tmp_258_var; while ( - (_tmp_237_var = _tmp_237_rule(p)) // ',' star_target + (_tmp_258_var = _tmp_258_rule(p)) // ',' star_target ) { - _res = _tmp_237_var; + _res = _tmp_258_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32038,7 +33235,7 @@ _loop1_131_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_131[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_135[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)")); } if (_n == 0 || p->error_indicator) { @@ -32060,9 +33257,9 @@ _loop1_131_rule(Parser *p) return _seq; } -// _tmp_132: !'*' star_target +// _tmp_136: !'*' star_target static void * -_tmp_132_rule(Parser *p) +_tmp_136_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32079,7 +33276,7 @@ _tmp_132_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); + D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); expr_ty star_target_var; if ( _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*' @@ -32087,12 +33284,12 @@ _tmp_132_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); + D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); _res = star_target_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target")); } _res = NULL; @@ -32101,9 +33298,9 @@ _tmp_132_rule(Parser *p) return _res; } -// _loop0_134: ',' del_target +// _loop0_138: ',' del_target static asdl_seq * -_loop0_134_rule(Parser *p) +_loop0_138_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32129,7 +33326,7 @@ _loop0_134_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target")); + D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target")); Token * _literal; expr_ty elem; while ( @@ -32161,7 +33358,7 @@ _loop0_134_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -32178,9 +33375,9 @@ _loop0_134_rule(Parser *p) return _seq; } -// _gather_133: del_target _loop0_134 +// _gather_137: del_target _loop0_138 static asdl_seq * -_gather_133_rule(Parser *p) +_gather_137_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32192,27 +33389,27 @@ _gather_133_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // del_target _loop0_134 + { // del_target _loop0_138 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134")); + D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_138")); expr_ty elem; asdl_seq * seq; if ( (elem = del_target_rule(p)) // del_target && - (seq = _loop0_134_rule(p)) // _loop0_134 + (seq = _loop0_138_rule(p)) // _loop0_138 ) { - D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134")); + D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_138")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_133[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_134")); + D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_138")); } _res = NULL; done: @@ -32220,9 +33417,9 @@ _gather_133_rule(Parser *p) return _res; } -// _loop0_136: ',' expression +// _loop0_140: ',' expression static asdl_seq * -_loop0_136_rule(Parser *p) +_loop0_140_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32248,7 +33445,7 @@ _loop0_136_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty elem; while ( @@ -32280,7 +33477,7 @@ _loop0_136_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -32297,9 +33494,9 @@ _loop0_136_rule(Parser *p) return _seq; } -// _gather_135: expression _loop0_136 +// _gather_139: expression _loop0_140 static asdl_seq * -_gather_135_rule(Parser *p) +_gather_139_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32311,27 +33508,27 @@ _gather_135_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // expression _loop0_136 + { // expression _loop0_140 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_136")); + D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_140")); expr_ty elem; asdl_seq * seq; if ( (elem = expression_rule(p)) // expression && - (seq = _loop0_136_rule(p)) // _loop0_136 + (seq = _loop0_140_rule(p)) // _loop0_140 ) { - D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_136")); + D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_140")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_136")); + D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_140")); } _res = NULL; done: @@ -32339,9 +33536,9 @@ _gather_135_rule(Parser *p) return _res; } -// _loop0_138: ',' expression +// _loop0_142: ',' expression static asdl_seq * -_loop0_138_rule(Parser *p) +_loop0_142_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32367,7 +33564,7 @@ _loop0_138_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty elem; while ( @@ -32399,7 +33596,7 @@ _loop0_138_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -32416,9 +33613,9 @@ _loop0_138_rule(Parser *p) return _seq; } -// _gather_137: expression _loop0_138 +// _gather_141: expression _loop0_142 static asdl_seq * -_gather_137_rule(Parser *p) +_gather_141_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32430,27 +33627,27 @@ _gather_137_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // expression _loop0_138 + { // expression _loop0_142 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_138")); + D(fprintf(stderr, "%*c> _gather_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_142")); expr_ty elem; asdl_seq * seq; if ( (elem = expression_rule(p)) // expression && - (seq = _loop0_138_rule(p)) // _loop0_138 + (seq = _loop0_142_rule(p)) // _loop0_142 ) { - D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_138")); + D(fprintf(stderr, "%*c+ _gather_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_142")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_138")); + D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_142")); } _res = NULL; done: @@ -32458,9 +33655,9 @@ _gather_137_rule(Parser *p) return _res; } -// _loop0_140: ',' expression +// _loop0_144: ',' expression static asdl_seq * -_loop0_140_rule(Parser *p) +_loop0_144_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32486,7 +33683,7 @@ _loop0_140_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _loop0_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty elem; while ( @@ -32518,7 +33715,7 @@ _loop0_140_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_144[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -32535,9 +33732,9 @@ _loop0_140_rule(Parser *p) return _seq; } -// _gather_139: expression _loop0_140 +// _gather_143: expression _loop0_144 static asdl_seq * -_gather_139_rule(Parser *p) +_gather_143_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32549,27 +33746,27 @@ _gather_139_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // expression _loop0_140 + { // expression _loop0_144 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_140")); + D(fprintf(stderr, "%*c> _gather_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_144")); expr_ty elem; asdl_seq * seq; if ( (elem = expression_rule(p)) // expression && - (seq = _loop0_140_rule(p)) // _loop0_140 + (seq = _loop0_144_rule(p)) // _loop0_144 ) { - D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_140")); + D(fprintf(stderr, "%*c+ _gather_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_144")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_140")); + D(fprintf(stderr, "%*c%s _gather_143[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_144")); } _res = NULL; done: @@ -32577,9 +33774,9 @@ _gather_139_rule(Parser *p) return _res; } -// _loop0_142: ',' expression +// _loop0_146: ',' expression static asdl_seq * -_loop0_142_rule(Parser *p) +_loop0_146_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32605,7 +33802,7 @@ _loop0_142_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _loop0_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty elem; while ( @@ -32637,7 +33834,7 @@ _loop0_142_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -32654,9 +33851,9 @@ _loop0_142_rule(Parser *p) return _seq; } -// _gather_141: expression _loop0_142 +// _gather_145: expression _loop0_146 static asdl_seq * -_gather_141_rule(Parser *p) +_gather_145_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32668,27 +33865,27 @@ _gather_141_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // expression _loop0_142 + { // expression _loop0_146 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_142")); + D(fprintf(stderr, "%*c> _gather_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_146")); expr_ty elem; asdl_seq * seq; if ( (elem = expression_rule(p)) // expression && - (seq = _loop0_142_rule(p)) // _loop0_142 + (seq = _loop0_146_rule(p)) // _loop0_146 ) { - D(fprintf(stderr, "%*c+ _gather_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_142")); + D(fprintf(stderr, "%*c+ _gather_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_146")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_142")); + D(fprintf(stderr, "%*c%s _gather_145[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_146")); } _res = NULL; done: @@ -32696,9 +33893,9 @@ _gather_141_rule(Parser *p) return _res; } -// _tmp_143: NEWLINE INDENT +// _tmp_147: NEWLINE INDENT static void * -_tmp_143_rule(Parser *p) +_tmp_147_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32715,7 +33912,7 @@ _tmp_143_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); Token * indent_var; Token * newline_var; if ( @@ -32724,12 +33921,12 @@ _tmp_143_rule(Parser *p) (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT' ) { - D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); _res = _PyPegen_dummy_name(p, newline_var, indent_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT")); } _res = NULL; @@ -32738,9 +33935,9 @@ _tmp_143_rule(Parser *p) return _res; } -// _tmp_144: args | expression for_if_clauses +// _tmp_148: args | expression for_if_clauses static void * -_tmp_144_rule(Parser *p) +_tmp_148_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32757,18 +33954,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args")); + D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args")); expr_ty args_var; if ( (args_var = args_rule(p)) // args ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args")); + D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args")); _res = args_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args")); } { // expression for_if_clauses @@ -32776,7 +33973,7 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); + D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); expr_ty expression_var; asdl_comprehension_seq* for_if_clauses_var; if ( @@ -32785,12 +33982,12 @@ _tmp_144_rule(Parser *p) (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); + D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses")); _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses")); } _res = NULL; @@ -32799,9 +33996,9 @@ _tmp_144_rule(Parser *p) return _res; } -// _tmp_145: args ',' +// _tmp_149: args ',' static void * -_tmp_145_rule(Parser *p) +_tmp_149_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32818,7 +34015,7 @@ _tmp_145_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','")); + D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','")); Token * _literal; expr_ty args_var; if ( @@ -32827,12 +34024,12 @@ _tmp_145_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','")); + D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','")); _res = _PyPegen_dummy_name(p, args_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','")); } _res = NULL; @@ -32841,9 +34038,9 @@ _tmp_145_rule(Parser *p) return _res; } -// _tmp_146: ',' | ')' +// _tmp_150: ',' | ')' static void * -_tmp_146_rule(Parser *p) +_tmp_150_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32860,18 +34057,18 @@ _tmp_146_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -32879,18 +34076,18 @@ _tmp_146_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } _res = NULL; @@ -32899,9 +34096,9 @@ _tmp_146_rule(Parser *p) return _res; } -// _tmp_147: 'True' | 'False' | 'None' +// _tmp_151: 'True' | 'False' | 'None' static void * -_tmp_147_rule(Parser *p) +_tmp_151_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32918,18 +34115,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 600)) // token='True' + (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'False' @@ -32937,18 +34134,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 602)) // token='False' + (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } { // 'None' @@ -32956,18 +34153,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 601)) // token='None' + (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } _res = NULL; @@ -32976,9 +34173,9 @@ _tmp_147_rule(Parser *p) return _res; } -// _tmp_148: NAME '=' +// _tmp_152: NAME '=' static void * -_tmp_148_rule(Parser *p) +_tmp_152_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -32995,7 +34192,7 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='")); Token * _literal; expr_ty name_var; if ( @@ -33004,12 +34201,12 @@ _tmp_148_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='")); _res = _PyPegen_dummy_name(p, name_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='")); } _res = NULL; @@ -33018,9 +34215,9 @@ _tmp_148_rule(Parser *p) return _res; } -// _tmp_149: NAME STRING | SOFT_KEYWORD +// _tmp_153: NAME STRING | SOFT_KEYWORD static void * -_tmp_149_rule(Parser *p) +_tmp_153_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33037,7 +34234,7 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING")); expr_ty name_var; expr_ty string_var; if ( @@ -33046,12 +34243,12 @@ _tmp_149_rule(Parser *p) (string_var = _PyPegen_string_token(p)) // STRING ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING")); _res = _PyPegen_dummy_name(p, name_var, string_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING")); } { // SOFT_KEYWORD @@ -33059,18 +34256,18 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); expr_ty soft_keyword_var; if ( (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD")); _res = soft_keyword_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD")); } _res = NULL; @@ -33079,9 +34276,9 @@ _tmp_149_rule(Parser *p) return _res; } -// _tmp_150: 'else' | ':' +// _tmp_154: 'else' | ':' static void * -_tmp_150_rule(Parser *p) +_tmp_154_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33098,18 +34295,18 @@ _tmp_150_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 644)) // token='else' + (_keyword = _PyPegen_expect_token(p, 645)) // token='else' ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); } { // ':' @@ -33117,18 +34314,18 @@ _tmp_150_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -33137,9 +34334,67 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: '=' | ':=' +// _tmp_155: FSTRING_MIDDLE | fstring_replacement_field static void * -_tmp_151_rule(Parser *p) +_tmp_155_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // FSTRING_MIDDLE + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + Token * fstring_middle_var; + if ( + (fstring_middle_var = _PyPegen_expect_token(p, FSTRING_MIDDLE)) // token='FSTRING_MIDDLE' + ) + { + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); + _res = fstring_middle_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); + } + { // fstring_replacement_field + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + expr_ty fstring_replacement_field_var; + if ( + (fstring_replacement_field_var = fstring_replacement_field_rule(p)) // fstring_replacement_field + ) + { + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); + _res = fstring_replacement_field_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_156: '=' | ':=' +static void * +_tmp_156_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33156,18 +34411,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -33175,18 +34430,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -33195,9 +34450,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_157: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_152_rule(Parser *p) +_tmp_157_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33214,18 +34469,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -33233,18 +34488,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -33252,18 +34507,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -33271,18 +34526,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 600)) // token='True' + (_keyword = _PyPegen_expect_token(p, 601)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -33290,18 +34545,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 601)) // token='None' + (_keyword = _PyPegen_expect_token(p, 602)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -33309,18 +34564,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 602)) // token='False' + (_keyword = _PyPegen_expect_token(p, 603)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -33329,9 +34584,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: '=' | ':=' +// _tmp_158: '=' | ':=' static void * -_tmp_153_rule(Parser *p) +_tmp_158_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33348,18 +34603,18 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -33367,18 +34622,18 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -33387,9 +34642,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _loop0_154: star_named_expressions +// _loop0_159: star_named_expressions static asdl_seq * -_loop0_154_rule(Parser *p) +_loop0_159_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33415,7 +34670,7 @@ _loop0_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -33438,7 +34693,7 @@ _loop0_154_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33455,9 +34710,9 @@ _loop0_154_rule(Parser *p) return _seq; } -// _loop0_155: (star_targets '=') +// _loop0_160: (star_targets '=') static asdl_seq * -_loop0_155_rule(Parser *p) +_loop0_160_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33483,13 +34738,13 @@ _loop0_155_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_238_var; + D(fprintf(stderr, "%*c> _loop0_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_259_var; while ( - (_tmp_238_var = _tmp_238_rule(p)) // star_targets '=' + (_tmp_259_var = _tmp_259_rule(p)) // star_targets '=' ) { - _res = _tmp_238_var; + _res = _tmp_259_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33506,7 +34761,7 @@ _loop0_155_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33523,9 +34778,9 @@ _loop0_155_rule(Parser *p) return _seq; } -// _loop0_156: (star_targets '=') +// _loop0_161: (star_targets '=') static asdl_seq * -_loop0_156_rule(Parser *p) +_loop0_161_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33551,13 +34806,13 @@ _loop0_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_239_var; + D(fprintf(stderr, "%*c> _loop0_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_260_var; while ( - (_tmp_239_var = _tmp_239_rule(p)) // star_targets '=' + (_tmp_260_var = _tmp_260_rule(p)) // star_targets '=' ) { - _res = _tmp_239_var; + _res = _tmp_260_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33574,7 +34829,7 @@ _loop0_156_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33591,9 +34846,9 @@ _loop0_156_rule(Parser *p) return _seq; } -// _tmp_157: yield_expr | star_expressions +// _tmp_162: yield_expr | star_expressions static void * -_tmp_157_rule(Parser *p) +_tmp_162_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33610,18 +34865,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -33629,18 +34884,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -33649,9 +34904,9 @@ _tmp_157_rule(Parser *p) return _res; } -// _tmp_158: '[' | '(' | '{' +// _tmp_163: '[' | '(' | '{' static void * -_tmp_158_rule(Parser *p) +_tmp_163_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33668,18 +34923,18 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -33687,18 +34942,18 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -33706,18 +34961,18 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33726,9 +34981,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: '[' | '{' +// _tmp_164: '[' | '{' static void * -_tmp_159_rule(Parser *p) +_tmp_164_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33745,18 +35000,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -33764,18 +35019,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33784,9 +35039,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: '[' | '{' +// _tmp_165: '[' | '{' static void * -_tmp_160_rule(Parser *p) +_tmp_165_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33803,18 +35058,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -33822,18 +35077,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33842,9 +35097,9 @@ _tmp_160_rule(Parser *p) return _res; } -// _tmp_161: slash_no_default | slash_with_default +// _tmp_166: slash_no_default | slash_with_default static void * -_tmp_161_rule(Parser *p) +_tmp_166_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33861,18 +35116,18 @@ _tmp_161_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -33880,18 +35135,18 @@ _tmp_161_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -33900,9 +35155,9 @@ _tmp_161_rule(Parser *p) return _res; } -// _loop0_162: param_maybe_default +// _loop0_167: param_maybe_default static asdl_seq * -_loop0_162_rule(Parser *p) +_loop0_167_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33928,7 +35183,7 @@ _loop0_162_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -33951,7 +35206,7 @@ _loop0_162_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33968,9 +35223,9 @@ _loop0_162_rule(Parser *p) return _seq; } -// _loop0_163: param_no_default +// _loop0_168: param_no_default static asdl_seq * -_loop0_163_rule(Parser *p) +_loop0_168_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -33996,7 +35251,7 @@ _loop0_163_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -34019,7 +35274,7 @@ _loop0_163_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34036,9 +35291,9 @@ _loop0_163_rule(Parser *p) return _seq; } -// _loop0_164: param_no_default +// _loop0_169: param_no_default static asdl_seq * -_loop0_164_rule(Parser *p) +_loop0_169_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34064,7 +35319,7 @@ _loop0_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -34087,7 +35342,7 @@ _loop0_164_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34104,9 +35359,9 @@ _loop0_164_rule(Parser *p) return _seq; } -// _loop1_165: param_no_default +// _loop1_170: param_no_default static asdl_seq * -_loop1_165_rule(Parser *p) +_loop1_170_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34132,7 +35387,7 @@ _loop1_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop1_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -34155,7 +35410,7 @@ _loop1_165_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (_n == 0 || p->error_indicator) { @@ -34177,9 +35432,9 @@ _loop1_165_rule(Parser *p) return _seq; } -// _tmp_166: slash_no_default | slash_with_default +// _tmp_171: slash_no_default | slash_with_default static void * -_tmp_166_rule(Parser *p) +_tmp_171_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34196,18 +35451,18 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -34215,18 +35470,18 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -34235,9 +35490,9 @@ _tmp_166_rule(Parser *p) return _res; } -// _loop0_167: param_maybe_default +// _loop0_172: param_maybe_default static asdl_seq * -_loop0_167_rule(Parser *p) +_loop0_172_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34263,7 +35518,7 @@ _loop0_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -34286,7 +35541,7 @@ _loop0_167_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34303,9 +35558,9 @@ _loop0_167_rule(Parser *p) return _seq; } -// _tmp_168: ',' | param_no_default +// _tmp_173: ',' | param_no_default static void * -_tmp_168_rule(Parser *p) +_tmp_173_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34322,18 +35577,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // param_no_default @@ -34341,18 +35596,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } _res = NULL; @@ -34361,9 +35616,9 @@ _tmp_168_rule(Parser *p) return _res; } -// _loop0_169: param_maybe_default +// _loop0_174: param_maybe_default static asdl_seq * -_loop0_169_rule(Parser *p) +_loop0_174_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34389,7 +35644,7 @@ _loop0_169_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -34412,7 +35667,7 @@ _loop0_169_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34429,9 +35684,9 @@ _loop0_169_rule(Parser *p) return _seq; } -// _loop1_170: param_maybe_default +// _loop1_175: param_maybe_default static asdl_seq * -_loop1_170_rule(Parser *p) +_loop1_175_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34457,7 +35712,7 @@ _loop1_170_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop1_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -34480,7 +35735,7 @@ _loop1_170_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_170[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_175[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } if (_n == 0 || p->error_indicator) { @@ -34502,9 +35757,9 @@ _loop1_170_rule(Parser *p) return _seq; } -// _tmp_171: ')' | ',' +// _tmp_176: ')' | ',' static void * -_tmp_171_rule(Parser *p) +_tmp_176_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34521,18 +35776,18 @@ _tmp_171_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' @@ -34540,18 +35795,18 @@ _tmp_171_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34560,9 +35815,9 @@ _tmp_171_rule(Parser *p) return _res; } -// _tmp_172: ')' | ',' (')' | '**') +// _tmp_177: ')' | ',' (')' | '**') static void * -_tmp_172_rule(Parser *p) +_tmp_177_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34579,18 +35834,18 @@ _tmp_172_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -34598,21 +35853,21 @@ _tmp_172_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_240_var; + void *_tmp_261_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_240_var = _tmp_240_rule(p)) // ')' | '**' + (_tmp_261_var = _tmp_261_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_240_var); + D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_261_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -34621,9 +35876,9 @@ _tmp_172_rule(Parser *p) return _res; } -// _tmp_173: param_no_default | ',' +// _tmp_178: param_no_default | ',' static void * -_tmp_173_rule(Parser *p) +_tmp_178_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34640,18 +35895,18 @@ _tmp_173_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -34659,18 +35914,18 @@ _tmp_173_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34679,9 +35934,9 @@ _tmp_173_rule(Parser *p) return _res; } -// _loop0_174: param_maybe_default +// _loop0_179: param_maybe_default static asdl_seq * -_loop0_174_rule(Parser *p) +_loop0_179_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34707,7 +35962,7 @@ _loop0_174_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); NameDefaultPair* param_maybe_default_var; while ( (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default @@ -34730,7 +35985,7 @@ _loop0_174_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_174[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34747,9 +36002,9 @@ _loop0_174_rule(Parser *p) return _seq; } -// _tmp_175: param_no_default | ',' +// _tmp_180: param_no_default | ',' static void * -_tmp_175_rule(Parser *p) +_tmp_180_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34766,18 +36021,18 @@ _tmp_175_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -34785,18 +36040,18 @@ _tmp_175_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34805,9 +36060,9 @@ _tmp_175_rule(Parser *p) return _res; } -// _tmp_176: '*' | '**' | '/' +// _tmp_181: '*' | '**' | '/' static void * -_tmp_176_rule(Parser *p) +_tmp_181_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34824,18 +36079,18 @@ _tmp_176_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -34843,18 +36098,18 @@ _tmp_176_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -34862,18 +36117,18 @@ _tmp_176_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -34882,9 +36137,9 @@ _tmp_176_rule(Parser *p) return _res; } -// _loop1_177: param_with_default +// _loop1_182: param_with_default static asdl_seq * -_loop1_177_rule(Parser *p) +_loop1_182_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34910,7 +36165,7 @@ _loop1_177_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -34933,7 +36188,7 @@ _loop1_177_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_177[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -34955,9 +36210,9 @@ _loop1_177_rule(Parser *p) return _seq; } -// _tmp_178: lambda_slash_no_default | lambda_slash_with_default +// _tmp_183: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_178_rule(Parser *p) +_tmp_183_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -34974,18 +36229,18 @@ _tmp_178_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -34993,18 +36248,18 @@ _tmp_178_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -35013,9 +36268,9 @@ _tmp_178_rule(Parser *p) return _res; } -// _loop0_179: lambda_param_maybe_default +// _loop0_184: lambda_param_maybe_default static asdl_seq * -_loop0_179_rule(Parser *p) +_loop0_184_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35041,7 +36296,7 @@ _loop0_179_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -35064,7 +36319,7 @@ _loop0_179_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_184[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35081,9 +36336,9 @@ _loop0_179_rule(Parser *p) return _seq; } -// _loop0_180: lambda_param_no_default +// _loop0_185: lambda_param_no_default static asdl_seq * -_loop0_180_rule(Parser *p) +_loop0_185_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35109,7 +36364,7 @@ _loop0_180_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -35132,7 +36387,7 @@ _loop0_180_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35149,9 +36404,9 @@ _loop0_180_rule(Parser *p) return _seq; } -// _loop0_181: lambda_param_no_default +// _loop0_186: lambda_param_no_default static asdl_seq * -_loop0_181_rule(Parser *p) +_loop0_186_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35177,7 +36432,7 @@ _loop0_181_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -35200,7 +36455,7 @@ _loop0_181_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_186[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35217,9 +36472,9 @@ _loop0_181_rule(Parser *p) return _seq; } -// _loop0_183: ',' lambda_param +// _loop0_188: ',' lambda_param static asdl_seq * -_loop0_183_rule(Parser *p) +_loop0_188_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35245,7 +36500,7 @@ _loop0_183_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); + D(fprintf(stderr, "%*c> _loop0_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); Token * _literal; arg_ty elem; while ( @@ -35277,7 +36532,7 @@ _loop0_183_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_188[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35294,9 +36549,9 @@ _loop0_183_rule(Parser *p) return _seq; } -// _gather_182: lambda_param _loop0_183 +// _gather_187: lambda_param _loop0_188 static asdl_seq * -_gather_182_rule(Parser *p) +_gather_187_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35308,27 +36563,27 @@ _gather_182_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // lambda_param _loop0_183 + { // lambda_param _loop0_188 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_183")); + D(fprintf(stderr, "%*c> _gather_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_188")); arg_ty elem; asdl_seq * seq; if ( (elem = lambda_param_rule(p)) // lambda_param && - (seq = _loop0_183_rule(p)) // _loop0_183 + (seq = _loop0_188_rule(p)) // _loop0_188 ) { - D(fprintf(stderr, "%*c+ _gather_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_183")); + D(fprintf(stderr, "%*c+ _gather_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_188")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_182[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_183")); + D(fprintf(stderr, "%*c%s _gather_187[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_188")); } _res = NULL; done: @@ -35336,9 +36591,9 @@ _gather_182_rule(Parser *p) return _res; } -// _tmp_184: lambda_slash_no_default | lambda_slash_with_default +// _tmp_189: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_184_rule(Parser *p) +_tmp_189_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35355,18 +36610,18 @@ _tmp_184_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -35374,18 +36629,18 @@ _tmp_184_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -35394,9 +36649,9 @@ _tmp_184_rule(Parser *p) return _res; } -// _loop0_185: lambda_param_maybe_default +// _loop0_190: lambda_param_maybe_default static asdl_seq * -_loop0_185_rule(Parser *p) +_loop0_190_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35422,7 +36677,7 @@ _loop0_185_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -35445,7 +36700,7 @@ _loop0_185_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_185[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35462,9 +36717,9 @@ _loop0_185_rule(Parser *p) return _seq; } -// _tmp_186: ',' | lambda_param_no_default +// _tmp_191: ',' | lambda_param_no_default static void * -_tmp_186_rule(Parser *p) +_tmp_191_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35481,18 +36736,18 @@ _tmp_186_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // lambda_param_no_default @@ -35500,18 +36755,18 @@ _tmp_186_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } _res = NULL; @@ -35520,9 +36775,9 @@ _tmp_186_rule(Parser *p) return _res; } -// _loop0_187: lambda_param_maybe_default +// _loop0_192: lambda_param_maybe_default static asdl_seq * -_loop0_187_rule(Parser *p) +_loop0_192_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35548,7 +36803,7 @@ _loop0_187_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -35571,7 +36826,7 @@ _loop0_187_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_187[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_192[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35588,9 +36843,9 @@ _loop0_187_rule(Parser *p) return _seq; } -// _loop1_188: lambda_param_maybe_default +// _loop1_193: lambda_param_maybe_default static asdl_seq * -_loop1_188_rule(Parser *p) +_loop1_193_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35616,7 +36871,7 @@ _loop1_188_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop1_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -35639,7 +36894,7 @@ _loop1_188_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_188[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_193[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } if (_n == 0 || p->error_indicator) { @@ -35661,9 +36916,9 @@ _loop1_188_rule(Parser *p) return _seq; } -// _loop1_189: lambda_param_with_default +// _loop1_194: lambda_param_with_default static asdl_seq * -_loop1_189_rule(Parser *p) +_loop1_194_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35689,7 +36944,7 @@ _loop1_189_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + D(fprintf(stderr, "%*c> _loop1_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); NameDefaultPair* lambda_param_with_default_var; while ( (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default @@ -35712,7 +36967,7 @@ _loop1_189_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_189[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_194[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -35734,9 +36989,9 @@ _loop1_189_rule(Parser *p) return _seq; } -// _tmp_190: ':' | ',' (':' | '**') +// _tmp_195: ':' | ',' (':' | '**') static void * -_tmp_190_rule(Parser *p) +_tmp_195_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35753,18 +37008,18 @@ _tmp_190_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -35772,21 +37027,21 @@ _tmp_190_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_241_var; + void *_tmp_262_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_241_var = _tmp_241_rule(p)) // ':' | '**' + (_tmp_262_var = _tmp_262_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_241_var); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_262_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -35795,9 +37050,9 @@ _tmp_190_rule(Parser *p) return _res; } -// _tmp_191: lambda_param_no_default | ',' +// _tmp_196: lambda_param_no_default | ',' static void * -_tmp_191_rule(Parser *p) +_tmp_196_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35814,18 +37069,18 @@ _tmp_191_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -35833,18 +37088,18 @@ _tmp_191_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -35853,9 +37108,9 @@ _tmp_191_rule(Parser *p) return _res; } -// _loop0_192: lambda_param_maybe_default +// _loop0_197: lambda_param_maybe_default static asdl_seq * -_loop0_192_rule(Parser *p) +_loop0_197_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35881,7 +37136,7 @@ _loop0_192_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); + D(fprintf(stderr, "%*c> _loop0_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); NameDefaultPair* lambda_param_maybe_default_var; while ( (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default @@ -35904,7 +37159,7 @@ _loop0_192_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_192[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_197[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -35921,9 +37176,9 @@ _loop0_192_rule(Parser *p) return _seq; } -// _tmp_193: lambda_param_no_default | ',' +// _tmp_198: lambda_param_no_default | ',' static void * -_tmp_193_rule(Parser *p) +_tmp_198_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35940,18 +37195,18 @@ _tmp_193_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -35959,18 +37214,18 @@ _tmp_193_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -35979,9 +37234,9 @@ _tmp_193_rule(Parser *p) return _res; } -// _tmp_194: '*' | '**' | '/' +// _tmp_199: '*' | '**' | '/' static void * -_tmp_194_rule(Parser *p) +_tmp_199_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -35998,18 +37253,18 @@ _tmp_194_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -36017,18 +37272,18 @@ _tmp_194_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -36036,18 +37291,18 @@ _tmp_194_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -36056,9 +37311,9 @@ _tmp_194_rule(Parser *p) return _res; } -// _tmp_195: ',' | ')' | ':' +// _tmp_200: ',' | ')' | ':' static void * -_tmp_195_rule(Parser *p) +_tmp_200_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36075,18 +37330,18 @@ _tmp_195_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -36094,18 +37349,18 @@ _tmp_195_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ':' @@ -36113,18 +37368,18 @@ _tmp_195_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -36133,9 +37388,9 @@ _tmp_195_rule(Parser *p) return _res; } -// _loop0_197: ',' (expression ['as' star_target]) +// _loop0_202: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_197_rule(Parser *p) +_loop0_202_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36161,13 +37416,13 @@ _loop0_197_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_242_rule(p)) // expression ['as' star_target] + (elem = _tmp_263_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -36193,7 +37448,7 @@ _loop0_197_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_197[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_202[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36210,9 +37465,9 @@ _loop0_197_rule(Parser *p) return _seq; } -// _gather_196: (expression ['as' star_target]) _loop0_197 +// _gather_201: (expression ['as' star_target]) _loop0_202 static asdl_seq * -_gather_196_rule(Parser *p) +_gather_201_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36224,27 +37479,27 @@ _gather_196_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_197 + { // (expression ['as' star_target]) _loop0_202 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_197")); + D(fprintf(stderr, "%*c> _gather_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_202")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_242_rule(p)) // expression ['as' star_target] + (elem = _tmp_263_rule(p)) // expression ['as' star_target] && - (seq = _loop0_197_rule(p)) // _loop0_197 + (seq = _loop0_202_rule(p)) // _loop0_202 ) { - D(fprintf(stderr, "%*c+ _gather_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_197")); + D(fprintf(stderr, "%*c+ _gather_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_202")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_196[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_197")); + D(fprintf(stderr, "%*c%s _gather_201[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_202")); } _res = NULL; done: @@ -36252,9 +37507,9 @@ _gather_196_rule(Parser *p) return _res; } -// _loop0_199: ',' (expressions ['as' star_target]) +// _loop0_204: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_199_rule(Parser *p) +_loop0_204_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36280,13 +37535,13 @@ _loop0_199_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_243_rule(p)) // expressions ['as' star_target] + (elem = _tmp_264_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -36312,7 +37567,7 @@ _loop0_199_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_199[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36329,9 +37584,9 @@ _loop0_199_rule(Parser *p) return _seq; } -// _gather_198: (expressions ['as' star_target]) _loop0_199 +// _gather_203: (expressions ['as' star_target]) _loop0_204 static asdl_seq * -_gather_198_rule(Parser *p) +_gather_203_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36343,27 +37598,27 @@ _gather_198_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_199 + { // (expressions ['as' star_target]) _loop0_204 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_199")); + D(fprintf(stderr, "%*c> _gather_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_204")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_243_rule(p)) // expressions ['as' star_target] + (elem = _tmp_264_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_199_rule(p)) // _loop0_199 + (seq = _loop0_204_rule(p)) // _loop0_204 ) { - D(fprintf(stderr, "%*c+ _gather_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_199")); + D(fprintf(stderr, "%*c+ _gather_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_204")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_198[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_199")); + D(fprintf(stderr, "%*c%s _gather_203[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_204")); } _res = NULL; done: @@ -36371,9 +37626,9 @@ _gather_198_rule(Parser *p) return _res; } -// _loop0_201: ',' (expression ['as' star_target]) +// _loop0_206: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_201_rule(Parser *p) +_loop0_206_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36399,13 +37654,13 @@ _loop0_201_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_244_rule(p)) // expression ['as' star_target] + (elem = _tmp_265_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -36431,7 +37686,7 @@ _loop0_201_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_206[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36448,9 +37703,9 @@ _loop0_201_rule(Parser *p) return _seq; } -// _gather_200: (expression ['as' star_target]) _loop0_201 +// _gather_205: (expression ['as' star_target]) _loop0_206 static asdl_seq * -_gather_200_rule(Parser *p) +_gather_205_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36462,27 +37717,27 @@ _gather_200_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_201 + { // (expression ['as' star_target]) _loop0_206 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_201")); + D(fprintf(stderr, "%*c> _gather_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_244_rule(p)) // expression ['as' star_target] + (elem = _tmp_265_rule(p)) // expression ['as' star_target] && - (seq = _loop0_201_rule(p)) // _loop0_201 + (seq = _loop0_206_rule(p)) // _loop0_206 ) { - D(fprintf(stderr, "%*c+ _gather_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_201")); + D(fprintf(stderr, "%*c+ _gather_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_200[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_201")); + D(fprintf(stderr, "%*c%s _gather_205[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_206")); } _res = NULL; done: @@ -36490,9 +37745,9 @@ _gather_200_rule(Parser *p) return _res; } -// _loop0_203: ',' (expressions ['as' star_target]) +// _loop0_208: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_203_rule(Parser *p) +_loop0_208_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36518,13 +37773,13 @@ _loop0_203_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_245_rule(p)) // expressions ['as' star_target] + (elem = _tmp_266_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -36550,7 +37805,7 @@ _loop0_203_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_203[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_208[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36567,9 +37822,9 @@ _loop0_203_rule(Parser *p) return _seq; } -// _gather_202: (expressions ['as' star_target]) _loop0_203 +// _gather_207: (expressions ['as' star_target]) _loop0_208 static asdl_seq * -_gather_202_rule(Parser *p) +_gather_207_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36581,27 +37836,27 @@ _gather_202_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_203 + { // (expressions ['as' star_target]) _loop0_208 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_203")); + D(fprintf(stderr, "%*c> _gather_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_245_rule(p)) // expressions ['as' star_target] + (elem = _tmp_266_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_203_rule(p)) // _loop0_203 + (seq = _loop0_208_rule(p)) // _loop0_208 ) { - D(fprintf(stderr, "%*c+ _gather_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_203")); + D(fprintf(stderr, "%*c+ _gather_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_202[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_203")); + D(fprintf(stderr, "%*c%s _gather_207[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_208")); } _res = NULL; done: @@ -36609,9 +37864,9 @@ _gather_202_rule(Parser *p) return _res; } -// _tmp_204: 'except' | 'finally' +// _tmp_209: 'except' | 'finally' static void * -_tmp_204_rule(Parser *p) +_tmp_209_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36628,18 +37883,18 @@ _tmp_204_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 636)) // token='except' + (_keyword = _PyPegen_expect_token(p, 637)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -36647,18 +37902,18 @@ _tmp_204_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 632)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 633)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -36667,9 +37922,9 @@ _tmp_204_rule(Parser *p) return _res; } -// _loop0_205: block +// _loop0_210: block static asdl_seq * -_loop0_205_rule(Parser *p) +_loop0_210_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36695,7 +37950,7 @@ _loop0_205_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -36718,7 +37973,7 @@ _loop0_205_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_205[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_210[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36735,9 +37990,9 @@ _loop0_205_rule(Parser *p) return _seq; } -// _loop1_206: except_block +// _loop1_211: except_block static asdl_seq * -_loop1_206_rule(Parser *p) +_loop1_211_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36763,7 +38018,7 @@ _loop1_206_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); + D(fprintf(stderr, "%*c> _loop1_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); excepthandler_ty except_block_var; while ( (except_block_var = except_block_rule(p)) // except_block @@ -36786,7 +38041,7 @@ _loop1_206_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_206[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_211[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); } if (_n == 0 || p->error_indicator) { @@ -36808,9 +38063,9 @@ _loop1_206_rule(Parser *p) return _seq; } -// _tmp_207: 'as' NAME +// _tmp_212: 'as' NAME static void * -_tmp_207_rule(Parser *p) +_tmp_212_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36827,21 +38082,21 @@ _tmp_207_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_212[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_207[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_212[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -36850,9 +38105,9 @@ _tmp_207_rule(Parser *p) return _res; } -// _loop0_208: block +// _loop0_213: block static asdl_seq * -_loop0_208_rule(Parser *p) +_loop0_213_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36878,7 +38133,7 @@ _loop0_208_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -36901,7 +38156,7 @@ _loop0_208_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_208[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_213[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36918,9 +38173,9 @@ _loop0_208_rule(Parser *p) return _seq; } -// _loop1_209: except_star_block +// _loop1_214: except_star_block static asdl_seq * -_loop1_209_rule(Parser *p) +_loop1_214_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -36946,7 +38201,7 @@ _loop1_209_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop1_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); + D(fprintf(stderr, "%*c> _loop1_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); excepthandler_ty except_star_block_var; while ( (except_star_block_var = except_star_block_rule(p)) // except_star_block @@ -36969,7 +38224,7 @@ _loop1_209_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_209[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_214[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); } if (_n == 0 || p->error_indicator) { @@ -36991,9 +38246,9 @@ _loop1_209_rule(Parser *p) return _seq; } -// _tmp_210: expression ['as' NAME] +// _tmp_215: expression ['as' NAME] static void * -_tmp_210_rule(Parser *p) +_tmp_215_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37010,22 +38265,22 @@ _tmp_210_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_246_rule(p), !p->error_indicator) // ['as' NAME] + (_opt_var = _tmp_267_rule(p), !p->error_indicator) // ['as' NAME] ) { - D(fprintf(stderr, "%*c+ _tmp_210[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_210[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]")); } _res = NULL; @@ -37034,9 +38289,9 @@ _tmp_210_rule(Parser *p) return _res; } -// _tmp_211: 'as' NAME +// _tmp_216: 'as' NAME static void * -_tmp_211_rule(Parser *p) +_tmp_216_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37053,21 +38308,21 @@ _tmp_211_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -37076,9 +38331,9 @@ _tmp_211_rule(Parser *p) return _res; } -// _tmp_212: 'as' NAME +// _tmp_217: 'as' NAME static void * -_tmp_212_rule(Parser *p) +_tmp_217_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37095,21 +38350,21 @@ _tmp_212_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_212[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_212[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -37118,9 +38373,9 @@ _tmp_212_rule(Parser *p) return _res; } -// _tmp_213: NEWLINE | ':' +// _tmp_218: NEWLINE | ':' static void * -_tmp_213_rule(Parser *p) +_tmp_218_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37137,18 +38392,18 @@ _tmp_213_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); Token * newline_var; if ( (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); _res = newline_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } { // ':' @@ -37156,18 +38411,18 @@ _tmp_213_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -37176,9 +38431,9 @@ _tmp_213_rule(Parser *p) return _res; } -// _tmp_214: 'as' NAME +// _tmp_219: 'as' NAME static void * -_tmp_214_rule(Parser *p) +_tmp_219_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37195,21 +38450,21 @@ _tmp_214_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -37218,9 +38473,9 @@ _tmp_214_rule(Parser *p) return _res; } -// _tmp_215: 'as' NAME +// _tmp_220: 'as' NAME static void * -_tmp_215_rule(Parser *p) +_tmp_220_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37237,21 +38492,21 @@ _tmp_215_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -37260,9 +38515,9 @@ _tmp_215_rule(Parser *p) return _res; } -// _tmp_216: positional_patterns ',' +// _tmp_221: positional_patterns ',' static void * -_tmp_216_rule(Parser *p) +_tmp_221_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37279,7 +38534,7 @@ _tmp_216_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -37288,12 +38543,12 @@ _tmp_216_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -37302,9 +38557,9 @@ _tmp_216_rule(Parser *p) return _res; } -// _tmp_217: '->' expression +// _tmp_222: '->' expression static void * -_tmp_217_rule(Parser *p) +_tmp_222_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37321,7 +38576,7 @@ _tmp_217_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty expression_var; if ( @@ -37330,12 +38585,12 @@ _tmp_217_rule(Parser *p) (expression_var = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = _PyPegen_dummy_name(p, _literal, expression_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -37344,9 +38599,9 @@ _tmp_217_rule(Parser *p) return _res; } -// _tmp_218: '(' arguments? ')' +// _tmp_223: '(' arguments? ')' static void * -_tmp_218_rule(Parser *p) +_tmp_223_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37363,7 +38618,7 @@ _tmp_218_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -37376,12 +38631,12 @@ _tmp_218_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -37390,9 +38645,9 @@ _tmp_218_rule(Parser *p) return _res; } -// _tmp_219: '(' arguments? ')' +// _tmp_224: '(' arguments? ')' static void * -_tmp_219_rule(Parser *p) +_tmp_224_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37409,7 +38664,7 @@ _tmp_219_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -37422,12 +38677,12 @@ _tmp_219_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -37436,9 +38691,9 @@ _tmp_219_rule(Parser *p) return _res; } -// _loop0_221: ',' double_starred_kvpair +// _loop0_226: ',' double_starred_kvpair static asdl_seq * -_loop0_221_rule(Parser *p) +_loop0_226_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37464,7 +38719,7 @@ _loop0_221_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -37496,7 +38751,7 @@ _loop0_221_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_221[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_226[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -37513,9 +38768,9 @@ _loop0_221_rule(Parser *p) return _seq; } -// _gather_220: double_starred_kvpair _loop0_221 +// _gather_225: double_starred_kvpair _loop0_226 static asdl_seq * -_gather_220_rule(Parser *p) +_gather_225_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37527,27 +38782,27 @@ _gather_220_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_221 + { // double_starred_kvpair _loop0_226 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_221")); + D(fprintf(stderr, "%*c> _gather_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_226")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_221_rule(p)) // _loop0_221 + (seq = _loop0_226_rule(p)) // _loop0_226 ) { - D(fprintf(stderr, "%*c+ _gather_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_221")); + D(fprintf(stderr, "%*c+ _gather_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_226")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_220[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_221")); + D(fprintf(stderr, "%*c%s _gather_225[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_226")); } _res = NULL; done: @@ -37555,9 +38810,9 @@ _gather_220_rule(Parser *p) return _res; } -// _tmp_222: '}' | ',' +// _tmp_227: '}' | ',' static void * -_tmp_222_rule(Parser *p) +_tmp_227_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37574,18 +38829,18 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -37593,18 +38848,18 @@ _tmp_222_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37613,9 +38868,9 @@ _tmp_222_rule(Parser *p) return _res; } -// _tmp_223: '}' | ',' +// _tmp_228: '}' | ',' static void * -_tmp_223_rule(Parser *p) +_tmp_228_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37632,18 +38887,18 @@ _tmp_223_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -37651,18 +38906,18 @@ _tmp_223_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -37671,9 +38926,898 @@ _tmp_223_rule(Parser *p) return _res; } -// _tmp_224: star_targets '=' +// _tmp_229: yield_expr | star_expressions static void * -_tmp_224_rule(Parser *p) +_tmp_229_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_230: yield_expr | star_expressions +static void * +_tmp_230_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_231: '=' | '!' | ':' | '}' +static void * +_tmp_231_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '=' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 22)) // token='=' + ) + { + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); + } + { // '!' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + ) + { + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); + } + { // ':' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + { // '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_232: yield_expr | star_expressions +static void * +_tmp_232_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_233: '!' | ':' | '}' +static void * +_tmp_233_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '!' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + ) + { + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); + } + { // ':' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + { // '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_234: yield_expr | star_expressions +static void * +_tmp_234_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_235: yield_expr | star_expressions +static void * +_tmp_235_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_236: '!' NAME +static void * +_tmp_236_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '!' NAME + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + Token * _literal; + expr_ty name_var; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + && + (name_var = _PyPegen_name_token(p)) // NAME + ) + { + D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + _res = _PyPegen_dummy_name(p, _literal, name_var); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_237: ':' | '}' +static void * +_tmp_237_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // ':' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + { // '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_238: yield_expr | star_expressions +static void * +_tmp_238_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_239: '!' NAME +static void * +_tmp_239_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '!' NAME + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + Token * _literal; + expr_ty name_var; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + && + (name_var = _PyPegen_name_token(p)) // NAME + ) + { + D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + _res = _PyPegen_dummy_name(p, _literal, name_var); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _loop0_240: fstring_format_spec +static asdl_seq * +_loop0_240_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void *_res = NULL; + int _mark = p->mark; + void **_children = PyMem_Malloc(sizeof(void *)); + if (!_children) { + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + Py_ssize_t _children_capacity = 1; + Py_ssize_t _n = 0; + { // fstring_format_spec + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _loop0_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec")); + expr_ty fstring_format_spec_var; + while ( + (fstring_format_spec_var = fstring_format_spec_rule(p)) // fstring_format_spec + ) + { + _res = fstring_format_spec_var; + if (_n == _children_capacity) { + _children_capacity *= 2; + void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); + if (!_new_children) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + _children = _new_children; + } + _children[_n++] = _res; + _mark = p->mark; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _loop0_240[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_format_spec")); + } + asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); + if (!_seq) { + PyMem_Free(_children); + p->error_indicator = 1; + PyErr_NoMemory(); + p->level--; + return NULL; + } + for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); + PyMem_Free(_children); + p->level--; + return _seq; +} + +// _tmp_241: yield_expr | star_expressions +static void * +_tmp_241_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // yield_expr + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + expr_ty yield_expr_var; + if ( + (yield_expr_var = yield_expr_rule(p)) // yield_expr + ) + { + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + _res = yield_expr_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); + } + { // star_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + expr_ty star_expressions_var; + if ( + (star_expressions_var = star_expressions_rule(p)) // star_expressions + ) + { + D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + _res = star_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_242: '!' NAME +static void * +_tmp_242_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // '!' NAME + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + Token * _literal; + expr_ty name_var; + if ( + (_literal = _PyPegen_expect_token(p, 54)) // token='!' + && + (name_var = _PyPegen_name_token(p)) // NAME + ) + { + D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + _res = _PyPegen_dummy_name(p, _literal, name_var); + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_243: ':' | '}' +static void * +_tmp_243_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // ':' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + { // '}' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 26)) // token='}' + ) + { + D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_244: star_targets '=' +static void * +_tmp_244_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37690,7 +39834,7 @@ _tmp_224_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -37699,7 +39843,7 @@ _tmp_224_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37709,7 +39853,7 @@ _tmp_224_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -37718,9 +39862,9 @@ _tmp_224_rule(Parser *p) return _res; } -// _tmp_225: '.' | '...' +// _tmp_245: '.' | '...' static void * -_tmp_225_rule(Parser *p) +_tmp_245_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37737,18 +39881,18 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37756,18 +39900,18 @@ _tmp_225_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37776,9 +39920,9 @@ _tmp_225_rule(Parser *p) return _res; } -// _tmp_226: '.' | '...' +// _tmp_246: '.' | '...' static void * -_tmp_226_rule(Parser *p) +_tmp_246_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37795,18 +39939,18 @@ _tmp_226_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -37814,18 +39958,18 @@ _tmp_226_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -37834,9 +39978,9 @@ _tmp_226_rule(Parser *p) return _res; } -// _tmp_227: '@' named_expression NEWLINE +// _tmp_247: '@' named_expression NEWLINE static void * -_tmp_227_rule(Parser *p) +_tmp_247_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37853,7 +39997,7 @@ _tmp_227_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -37865,7 +40009,7 @@ _tmp_227_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37875,7 +40019,7 @@ _tmp_227_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -37884,9 +40028,9 @@ _tmp_227_rule(Parser *p) return _res; } -// _tmp_228: ',' expression +// _tmp_248: ',' expression static void * -_tmp_228_rule(Parser *p) +_tmp_248_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37903,7 +40047,7 @@ _tmp_228_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -37912,7 +40056,7 @@ _tmp_228_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_248[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37922,7 +40066,7 @@ _tmp_228_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_248[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -37931,9 +40075,9 @@ _tmp_228_rule(Parser *p) return _res; } -// _tmp_229: ',' star_expression +// _tmp_249: ',' star_expression static void * -_tmp_229_rule(Parser *p) +_tmp_249_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37950,7 +40094,7 @@ _tmp_229_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -37959,7 +40103,7 @@ _tmp_229_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -37969,7 +40113,7 @@ _tmp_229_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -37978,9 +40122,9 @@ _tmp_229_rule(Parser *p) return _res; } -// _tmp_230: 'or' conjunction +// _tmp_250: 'or' conjunction static void * -_tmp_230_rule(Parser *p) +_tmp_250_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -37997,7 +40141,7 @@ _tmp_230_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_250[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -38006,7 +40150,7 @@ _tmp_230_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_250[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38016,7 +40160,7 @@ _tmp_230_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_250[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -38025,9 +40169,9 @@ _tmp_230_rule(Parser *p) return _res; } -// _tmp_231: 'and' inversion +// _tmp_251: 'and' inversion static void * -_tmp_231_rule(Parser *p) +_tmp_251_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38044,7 +40188,7 @@ _tmp_231_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_251[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -38053,7 +40197,7 @@ _tmp_231_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_251[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38063,7 +40207,7 @@ _tmp_231_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_251[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -38072,9 +40216,9 @@ _tmp_231_rule(Parser *p) return _res; } -// _tmp_232: slice | starred_expression +// _tmp_252: slice | starred_expression static void * -_tmp_232_rule(Parser *p) +_tmp_252_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38091,18 +40235,18 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_252[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_252[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_252[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -38110,18 +40254,18 @@ _tmp_232_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_252[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_252[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_252[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -38130,9 +40274,67 @@ _tmp_232_rule(Parser *p) return _res; } -// _tmp_233: 'if' disjunction +// _tmp_253: fstring | string static void * -_tmp_233_rule(Parser *p) +_tmp_253_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + p->error_indicator = 1; + PyErr_NoMemory(); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // fstring + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_253[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); + expr_ty fstring_var; + if ( + (fstring_var = fstring_rule(p)) // fstring + ) + { + D(fprintf(stderr, "%*c+ _tmp_253[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); + _res = fstring_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_253[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); + } + { // string + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_253[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); + expr_ty string_var; + if ( + (string_var = string_rule(p)) // string + ) + { + D(fprintf(stderr, "%*c+ _tmp_253[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); + _res = string_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_253[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_254: 'if' disjunction +static void * +_tmp_254_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38149,16 +40351,16 @@ _tmp_233_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_254[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_254[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38168,7 +40370,7 @@ _tmp_233_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_254[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -38177,9 +40379,9 @@ _tmp_233_rule(Parser *p) return _res; } -// _tmp_234: 'if' disjunction +// _tmp_255: 'if' disjunction static void * -_tmp_234_rule(Parser *p) +_tmp_255_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38196,16 +40398,16 @@ _tmp_234_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_255[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 641)) // token='if' + (_keyword = _PyPegen_expect_token(p, 642)) // token='if' && (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_255[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38215,7 +40417,7 @@ _tmp_234_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_255[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -38224,9 +40426,9 @@ _tmp_234_rule(Parser *p) return _res; } -// _tmp_235: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_256: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_235_rule(Parser *p) +_tmp_256_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38243,18 +40445,18 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_256[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_256[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_256[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -38262,20 +40464,20 @@ _tmp_235_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - void *_tmp_247_var; + D(fprintf(stderr, "%*c> _tmp_256[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + void *_tmp_268_var; if ( - (_tmp_247_var = _tmp_247_rule(p)) // assignment_expression | expression !':=' + (_tmp_268_var = _tmp_268_rule(p)) // assignment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); - _res = _tmp_247_var; + D(fprintf(stderr, "%*c+ _tmp_256[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + _res = _tmp_268_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_256[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -38284,9 +40486,9 @@ _tmp_235_rule(Parser *p) return _res; } -// _tmp_236: ',' star_target +// _tmp_257: ',' star_target static void * -_tmp_236_rule(Parser *p) +_tmp_257_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38303,7 +40505,7 @@ _tmp_236_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_257[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -38312,7 +40514,7 @@ _tmp_236_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_257[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38322,7 +40524,7 @@ _tmp_236_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_257[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -38331,9 +40533,9 @@ _tmp_236_rule(Parser *p) return _res; } -// _tmp_237: ',' star_target +// _tmp_258: ',' star_target static void * -_tmp_237_rule(Parser *p) +_tmp_258_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38350,7 +40552,7 @@ _tmp_237_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_258[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -38359,7 +40561,7 @@ _tmp_237_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_258[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -38369,7 +40571,7 @@ _tmp_237_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_258[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -38378,9 +40580,9 @@ _tmp_237_rule(Parser *p) return _res; } -// _tmp_238: star_targets '=' +// _tmp_259: star_targets '=' static void * -_tmp_238_rule(Parser *p) +_tmp_259_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38397,7 +40599,7 @@ _tmp_238_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_259[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -38406,12 +40608,12 @@ _tmp_238_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_259[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_259[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -38420,9 +40622,9 @@ _tmp_238_rule(Parser *p) return _res; } -// _tmp_239: star_targets '=' +// _tmp_260: star_targets '=' static void * -_tmp_239_rule(Parser *p) +_tmp_260_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38439,7 +40641,7 @@ _tmp_239_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_260[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -38448,12 +40650,12 @@ _tmp_239_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_260[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_260[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -38462,9 +40664,9 @@ _tmp_239_rule(Parser *p) return _res; } -// _tmp_240: ')' | '**' +// _tmp_261: ')' | '**' static void * -_tmp_240_rule(Parser *p) +_tmp_261_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38481,18 +40683,18 @@ _tmp_240_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_261[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_261[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_261[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -38500,18 +40702,18 @@ _tmp_240_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_261[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_261[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_261[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -38520,9 +40722,9 @@ _tmp_240_rule(Parser *p) return _res; } -// _tmp_241: ':' | '**' +// _tmp_262: ':' | '**' static void * -_tmp_241_rule(Parser *p) +_tmp_262_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38539,18 +40741,18 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_262[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_262[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_262[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -38558,18 +40760,18 @@ _tmp_241_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_262[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_262[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_262[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -38578,9 +40780,9 @@ _tmp_241_rule(Parser *p) return _res; } -// _tmp_242: expression ['as' star_target] +// _tmp_263: expression ['as' star_target] static void * -_tmp_242_rule(Parser *p) +_tmp_263_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38597,22 +40799,22 @@ _tmp_242_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_263[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_248_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_269_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_263[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_263[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -38621,9 +40823,9 @@ _tmp_242_rule(Parser *p) return _res; } -// _tmp_243: expressions ['as' star_target] +// _tmp_264: expressions ['as' star_target] static void * -_tmp_243_rule(Parser *p) +_tmp_264_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38640,22 +40842,22 @@ _tmp_243_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_264[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_249_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_270_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_264[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_264[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -38664,9 +40866,9 @@ _tmp_243_rule(Parser *p) return _res; } -// _tmp_244: expression ['as' star_target] +// _tmp_265: expression ['as' star_target] static void * -_tmp_244_rule(Parser *p) +_tmp_265_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38683,22 +40885,22 @@ _tmp_244_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_265[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_250_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_271_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_265[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_265[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -38707,9 +40909,9 @@ _tmp_244_rule(Parser *p) return _res; } -// _tmp_245: expressions ['as' star_target] +// _tmp_266: expressions ['as' star_target] static void * -_tmp_245_rule(Parser *p) +_tmp_266_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38726,22 +40928,22 @@ _tmp_245_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_266[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_251_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_272_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_266[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_266[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -38750,9 +40952,9 @@ _tmp_245_rule(Parser *p) return _res; } -// _tmp_246: 'as' NAME +// _tmp_267: 'as' NAME static void * -_tmp_246_rule(Parser *p) +_tmp_267_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38769,21 +40971,21 @@ _tmp_246_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_267[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_267[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_267[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -38792,9 +40994,9 @@ _tmp_246_rule(Parser *p) return _res; } -// _tmp_247: assignment_expression | expression !':=' +// _tmp_268: assignment_expression | expression !':=' static void * -_tmp_247_rule(Parser *p) +_tmp_268_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38811,18 +41013,18 @@ _tmp_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c> _tmp_268[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); expr_ty assignment_expression_var; if ( (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); + D(fprintf(stderr, "%*c+ _tmp_268[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); _res = assignment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_268[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } { // expression !':=' @@ -38830,7 +41032,7 @@ _tmp_247_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_268[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -38838,12 +41040,12 @@ _tmp_247_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_268[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_268[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -38852,9 +41054,9 @@ _tmp_247_rule(Parser *p) return _res; } -// _tmp_248: 'as' star_target +// _tmp_269: 'as' star_target static void * -_tmp_248_rule(Parser *p) +_tmp_269_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38871,21 +41073,21 @@ _tmp_248_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_269[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_248[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_269[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_248[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_269[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38894,9 +41096,9 @@ _tmp_248_rule(Parser *p) return _res; } -// _tmp_249: 'as' star_target +// _tmp_270: 'as' star_target static void * -_tmp_249_rule(Parser *p) +_tmp_270_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38913,21 +41115,21 @@ _tmp_249_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_270[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_270[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_270[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38936,9 +41138,9 @@ _tmp_249_rule(Parser *p) return _res; } -// _tmp_250: 'as' star_target +// _tmp_271: 'as' star_target static void * -_tmp_250_rule(Parser *p) +_tmp_271_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38955,21 +41157,21 @@ _tmp_250_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_250[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_271[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_250[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_271[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_250[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_271[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -38978,9 +41180,9 @@ _tmp_250_rule(Parser *p) return _res; } -// _tmp_251: 'as' star_target +// _tmp_272: 'as' star_target static void * -_tmp_251_rule(Parser *p) +_tmp_272_rule(Parser *p) { if (p->level++ == MAXSTACK) { p->error_indicator = 1; @@ -38997,21 +41199,21 @@ _tmp_251_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_251[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_272[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='as' + (_keyword = _PyPegen_expect_token(p, 640)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_251[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_272[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_251[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_272[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; diff --git a/Parser/pegen.c b/Parser/pegen.c index b79ae4cb1fb3706..262bfabfba7a251 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -359,7 +359,7 @@ _PyPegen_expect_token(Parser *p, int type) } Token *t = p->tokens[p->mark]; if (t->type != type) { - return NULL; + return NULL; } p->mark += 1; return t; diff --git a/Parser/pegen.h b/Parser/pegen.h index ad5c97f5f7e5d10..6962013c2d18b4f 100644 --- a/Parser/pegen.h +++ b/Parser/pegen.h @@ -138,6 +138,7 @@ void* _PyPegen_expect_forced_result(Parser *p, void* result, const char* expecte Token *_PyPegen_expect_forced_token(Parser *p, int type, const char* expected); expr_ty _PyPegen_expect_soft_keyword(Parser *p, const char *keyword); expr_ty _PyPegen_soft_keyword_token(Parser *p); +expr_ty _PyPegen_fstring_middle_token(Parser* p); Token *_PyPegen_get_last_nonnwhitespace_token(Parser *); int _PyPegen_fill_token(Parser *p); expr_ty _PyPegen_name_token(Parser *p); @@ -155,7 +156,7 @@ typedef enum { int _Pypegen_raise_decode_error(Parser *p); void _PyPegen_raise_tokenizer_init_error(PyObject *filename); int _Pypegen_tokenizer_error(Parser *p); -void *_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...); +void *_PyPegen_raise_error(Parser *p, PyObject *errtype, int use_mark, const char *errmsg, ...); void *_PyPegen_raise_error_known_location(Parser *p, PyObject *errtype, Py_ssize_t lineno, Py_ssize_t col_offset, Py_ssize_t end_lineno, Py_ssize_t end_col_offset, @@ -175,8 +176,9 @@ RAISE_ERROR_KNOWN_LOCATION(Parser *p, PyObject *errtype, va_end(va); return NULL; } -#define RAISE_SYNTAX_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_SyntaxError, msg, ##__VA_ARGS__) -#define RAISE_INDENTATION_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_IndentationError, msg, ##__VA_ARGS__) +#define RAISE_SYNTAX_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_SyntaxError, 0, msg, ##__VA_ARGS__) +#define RAISE_INDENTATION_ERROR(msg, ...) _PyPegen_raise_error(p, PyExc_IndentationError, 0, msg, ##__VA_ARGS__) +#define RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN(msg, ...) _PyPegen_raise_error(p, PyExc_SyntaxError, 1, msg, ##__VA_ARGS__) #define RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, msg, ...) \ RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, (a)->lineno, (a)->col_offset, (b)->end_lineno, (b)->end_col_offset, msg, ##__VA_ARGS__) #define RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, msg, ...) \ @@ -308,6 +310,7 @@ StarEtc *_PyPegen_star_etc(Parser *, arg_ty, asdl_seq *, arg_ty); arguments_ty _PyPegen_make_arguments(Parser *, asdl_arg_seq *, SlashWithDefault *, asdl_arg_seq *, asdl_seq *, StarEtc *); arguments_ty _PyPegen_empty_arguments(Parser *); +expr_ty _PyPegen_formatted_value(Parser *, expr_ty, Token *, expr_ty, expr_ty, int, int, int, int, PyArena *); AugOperator *_PyPegen_augoperator(Parser*, operator_ty type); stmt_ty _PyPegen_function_def_decorators(Parser *, asdl_expr_seq *, stmt_ty); stmt_ty _PyPegen_class_def_decorators(Parser *, asdl_expr_seq *, stmt_ty); @@ -317,12 +320,16 @@ asdl_keyword_seq *_PyPegen_seq_delete_starred_exprs(Parser *, asdl_seq *); expr_ty _PyPegen_collect_call_seqs(Parser *, asdl_expr_seq *, asdl_seq *, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); -expr_ty _PyPegen_concatenate_strings(Parser *p, asdl_seq *); +expr_ty _PyPegen_constant_from_token(Parser* p, Token* tok); +expr_ty _PyPegen_constant_from_string(Parser* p, Token* tok); +expr_ty _PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *, int, int, int, int, PyArena *); +expr_ty _PyPegen_FetchRawForm(Parser *p, int, int, int, int); expr_ty _PyPegen_ensure_imaginary(Parser *p, expr_ty); expr_ty _PyPegen_ensure_real(Parser *p, expr_ty); asdl_seq *_PyPegen_join_sequences(Parser *, asdl_seq *, asdl_seq *); int _PyPegen_check_barry_as_flufl(Parser *, Token *); int _PyPegen_check_legacy_stmt(Parser *p, expr_ty t); +expr_ty _PyPegen_check_fstring_conversion(Parser *p, Token *, expr_ty t); mod_ty _PyPegen_make_module(Parser *, asdl_stmt_seq *); void *_PyPegen_arguments_parsing_error(Parser *, expr_ty); expr_ty _PyPegen_get_last_comprehension_item(comprehension_ty comprehension); @@ -338,6 +345,9 @@ void *_PyPegen_run_parser(Parser *); mod_ty _PyPegen_run_parser_from_string(const char *, int, PyObject *, PyCompilerFlags *, PyArena *); asdl_stmt_seq *_PyPegen_interactive_exit(Parser *); +// TODO: move to the correct place in this file +expr_ty _PyPegen_joined_str(Parser *p, Token* a, asdl_expr_seq* expr, Token*b); + // Generated function in parse.c - function definition in python.gram void *_PyPegen_parse(Parser *); diff --git a/Parser/pegen_errors.c b/Parser/pegen_errors.c index 6ea7600119b6437..e26bad20a27575c 100644 --- a/Parser/pegen_errors.c +++ b/Parser/pegen_errors.c @@ -192,7 +192,10 @@ _PyPegen_tokenize_full_source_to_check_for_errors(Parser *p) { exit: - if (PyErr_Occurred()) { + // If we're in an f-string, we want the syntax error in the expression part + // to propagate, so that tokenizer errors (like expecting '}') that happen afterwards + // do not swallow it. + if (PyErr_Occurred() && p->tok->tok_mode_stack_index <= 0) { Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(traceback); @@ -205,7 +208,7 @@ _PyPegen_tokenize_full_source_to_check_for_errors(Parser *p) { // PARSER ERRORS void * -_PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...) +_PyPegen_raise_error(Parser *p, PyObject *errtype, int use_mark, const char *errmsg, ...) { if (p->fill == 0) { va_list va; @@ -214,8 +217,13 @@ _PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...) va_end(va); return NULL; } - - Token *t = p->known_err_token != NULL ? p->known_err_token : p->tokens[p->fill - 1]; + if (use_mark && p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + return NULL; + } + Token *t = p->known_err_token != NULL + ? p->known_err_token + : p->tokens[use_mark ? p->mark : p->fill - 1]; Py_ssize_t col_offset; Py_ssize_t end_col_offset = -1; if (t->col_offset == -1) { diff --git a/Parser/string_parser.c b/Parser/string_parser.c index c096bea7426e5c5..be5f0c4a60a663a 100644 --- a/Parser/string_parser.c +++ b/Parser/string_parser.c @@ -135,7 +135,9 @@ decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t) const char *first_invalid_escape; v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape); - if (v != NULL && first_invalid_escape != NULL) { + // HACK: later we can simply pass the line no, since we don't preserve the tokens + // when we are decoding the string but we preserve the line numbers. + if (v != NULL && first_invalid_escape != NULL && t != NULL) { if (warn_invalid_escape_sequence(parser, first_invalid_escape, t) < 0) { /* We have not decref u before because first_invalid_escape points inside u. */ @@ -166,43 +168,43 @@ decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t) return result; } -/* s must include the bracketing quote characters, and r, b, u, - &/or f prefixes (if any), and embedded escape sequences (if any). - _PyPegen_parsestr parses it, and sets *result to decoded Python string object. - If the string is an f-string, set *fstr and *fstrlen to the unparsed - string object. Return 0 if no errors occurred. */ -int -_PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result, - const char **fstr, Py_ssize_t *fstrlen, Token *t) +PyObject * +_PyPegen_decode_string(Parser *p, int raw, const char *s, size_t len, Token *t) +{ + if (raw) { + return PyUnicode_DecodeUTF8Stateful(s, len, NULL, NULL); + } + return decode_unicode_with_escapes(p, s, len, t); +} + +/* s must include the bracketing quote characters, and r, b &/or f prefixes + (if any), and embedded escape sequences (if any). (f-strings are handled by the parser) + _PyPegen_parse_string parses it, and returns the decoded Python string object. */ +PyObject * +_PyPegen_parse_string(Parser *p, Token *t) { const char *s = PyBytes_AsString(t->bytes); if (s == NULL) { - return -1; + return NULL; } size_t len; int quote = Py_CHARMASK(*s); - int fmode = 0; - *bytesmode = 0; - *rawmode = 0; - *result = NULL; - *fstr = NULL; + int bytesmode = 0; + int rawmode = 0; + if (Py_ISALPHA(quote)) { - while (!*bytesmode || !*rawmode) { + while (!bytesmode || !rawmode) { if (quote == 'b' || quote == 'B') { quote =(unsigned char)*++s; - *bytesmode = 1; + bytesmode = 1; } else if (quote == 'u' || quote == 'U') { quote = (unsigned char)*++s; } else if (quote == 'r' || quote == 'R') { quote = (unsigned char)*++s; - *rawmode = 1; - } - else if (quote == 'f' || quote == 'F') { - quote = (unsigned char)*++s; - fmode = 1; + rawmode = 1; } else { break; @@ -210,32 +212,21 @@ _PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result, } } - /* fstrings are only allowed in Python 3.6 and greater */ - if (fmode && p->feature_version < 6) { - p->error_indicator = 1; - RAISE_SYNTAX_ERROR("Format strings are only supported in Python 3.6 and greater"); - return -1; - } - - if (fmode && *bytesmode) { - PyErr_BadInternalCall(); - return -1; - } if (quote != '\'' && quote != '\"') { PyErr_BadInternalCall(); - return -1; + return NULL; } /* Skip the leading quote char. */ s++; len = strlen(s); if (len > INT_MAX) { PyErr_SetString(PyExc_OverflowError, "string to parse is too long"); - return -1; + return NULL; } if (s[--len] != quote) { /* Last quote char must match the first. */ PyErr_BadInternalCall(); - return -1; + return NULL; } if (len >= 4 && s[0] == quote && s[1] == quote) { /* A triple quoted string. We've already skipped one quote at @@ -246,22 +237,13 @@ _PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result, /* And check that the last two match. */ if (s[--len] != quote || s[--len] != quote) { PyErr_BadInternalCall(); - return -1; + return NULL; } } - if (fmode) { - /* Just return the bytes. The caller will parse the resulting - string. */ - *fstr = s; - *fstrlen = len; - return 0; - } - - /* Not an f-string. */ /* Avoid invoking escape decoding routines if possible. */ - *rawmode = *rawmode || strchr(s, '\\') == NULL; - if (*bytesmode) { + rawmode = rawmode || strchr(s, '\\') == NULL; + if (bytesmode) { /* Disallow non-ASCII characters. */ const char *ch; for (ch = s; *ch; ch++) { @@ -269,1014 +251,13 @@ _PyPegen_parsestr(Parser *p, int *bytesmode, int *rawmode, PyObject **result, RAISE_SYNTAX_ERROR( "bytes can only contain ASCII " "literal characters"); - return -1; - } - } - if (*rawmode) { - *result = PyBytes_FromStringAndSize(s, len); - } - else { - *result = decode_bytes_with_escapes(p, s, len, t); - } - } - else { - if (*rawmode) { - *result = PyUnicode_DecodeUTF8Stateful(s, len, NULL, NULL); - } - else { - *result = decode_unicode_with_escapes(p, s, len, t); - } - } - return *result == NULL ? -1 : 0; -} - - - -// FSTRING STUFF - -/* Fix locations for the given node and its children. - - `parent` is the enclosing node. - `expr_start` is the starting position of the expression (pointing to the open brace). - `n` is the node which locations are going to be fixed relative to parent. - `expr_str` is the child node's string representation, including braces. -*/ -static bool -fstring_find_expr_location(Token *parent, const char* expr_start, char *expr_str, int *p_lines, int *p_cols) -{ - *p_lines = 0; - *p_cols = 0; - assert(expr_start != NULL && *expr_start == '{'); - if (parent && parent->bytes) { - const char *parent_str = PyBytes_AsString(parent->bytes); - if (!parent_str) { - return false; - } - // The following is needed, in order to correctly shift the column - // offset, in the case that (disregarding any whitespace) a newline - // immediately follows the opening curly brace of the fstring expression. - bool newline_after_brace = 1; - const char *start = expr_start + 1; - while (start && *start != '}' && *start != '\n') { - if (*start != ' ' && *start != '\t' && *start != '\f') { - newline_after_brace = 0; - break; - } - start++; - } - - // Account for the characters from the last newline character to our - // left until the beginning of expr_start. - if (!newline_after_brace) { - start = expr_start; - while (start > parent_str && *start != '\n') { - start--; - } - *p_cols += (int)(expr_start - start); - if (*start == '\n') { - *p_cols -= 1; - } - } - /* adjust the start based on the number of newlines encountered - before the f-string expression */ - for (const char *p = parent_str; p < expr_start; p++) { - if (*p == '\n') { - (*p_lines)++; - } - } - } - return true; -} - - -/* Compile this expression in to an expr_ty. Add parens around the - expression, in order to allow leading spaces in the expression. */ -static expr_ty -fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end, - Token *t) -{ - expr_ty expr = NULL; - char *str; - Py_ssize_t len; - const char *s; - expr_ty result = NULL; - - assert(expr_end >= expr_start); - assert(*(expr_start-1) == '{'); - assert(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' || - *expr_end == '='); - - /* If the substring is all whitespace, it's an error. We need to catch this - here, and not when we call PyParser_SimpleParseStringFlagsFilename, - because turning the expression '' in to '()' would go from being invalid - to valid. */ - for (s = expr_start; s != expr_end; s++) { - char c = *s; - /* The Python parser ignores only the following whitespace - characters (\r already is converted to \n). */ - if (!(c == ' ' || c == '\t' || c == '\n' || c == '\f')) { - break; - } - } - - if (s == expr_end) { - if (*expr_end == '!' || *expr_end == ':' || *expr_end == '=') { - RAISE_SYNTAX_ERROR("f-string: expression required before '%c'", *expr_end); - return NULL; - } - RAISE_SYNTAX_ERROR("f-string: empty expression not allowed"); - return NULL; - } - - len = expr_end - expr_start; - /* Allocate 3 extra bytes: open paren, close paren, null byte. */ - str = PyMem_Calloc(len + 3, sizeof(char)); - if (str == NULL) { - PyErr_NoMemory(); - return NULL; - } - - // The call to fstring_find_expr_location is responsible for finding the column offset - // the generated AST nodes need to be shifted to the right, which is equal to the number - // of the f-string characters before the expression starts. - memcpy(str+1, expr_start, len); - int lines, cols; - if (!fstring_find_expr_location(t, expr_start-1, str+1, &lines, &cols)) { - PyMem_Free(str); - return NULL; - } - - // The parentheses are needed in order to allow for leading whitespace within - // the f-string expression. This consequently gets parsed as a group (see the - // group rule in python.gram). - str[0] = '('; - str[len+1] = ')'; - - struct tok_state* tok = _PyTokenizer_FromString(str, 1); - if (tok == NULL) { - PyMem_Free(str); - return NULL; - } - tok->filename = Py_NewRef(p->tok->filename); - tok->lineno = t->lineno + lines - 1; - - Parser *p2 = _PyPegen_Parser_New(tok, Py_fstring_input, p->flags, p->feature_version, - NULL, p->arena); - - p2->starting_lineno = t->lineno + lines; - p2->starting_col_offset = lines != 0 ? cols : t->col_offset + cols; - - expr = _PyPegen_run_parser(p2); - - if (expr == NULL) { - goto exit; - } - result = expr; - -exit: - PyMem_Free(str); - _PyPegen_Parser_Free(p2); - _PyTokenizer_Free(tok); - return result; -} - -/* Return -1 on error. - - Return 0 if we reached the end of the literal. - - Return 1 if we haven't reached the end of the literal, but we want - the caller to process the literal up to this point. Used for - doubled braces. -*/ -static int -fstring_find_literal(Parser *p, const char **str, const char *end, int raw, - PyObject **literal, int recurse_lvl, Token *t) -{ - /* Get any literal string. It ends when we hit an un-doubled left - brace (which isn't part of a unicode name escape such as - "\N{EULER CONSTANT}"), or the end of the string. */ - - const char *s = *str; - const char *literal_start = s; - int result = 0; - - assert(*literal == NULL); - while (s < end) { - char ch = *s++; - if (!raw && ch == '\\' && s < end) { - ch = *s++; - if (ch == 'N') { - /* We need to look at and skip matching braces for "\N{name}" - sequences because otherwise we'll think the opening '{' - starts an expression, which is not the case with "\N". - Keep looking for either a matched '{' '}' pair, or the end - of the string. */ - - if (s < end && *s++ == '{') { - while (s < end && *s++ != '}') { - } - continue; - } - - /* This is an invalid "\N" sequence, since it's a "\N" not - followed by a "{". Just keep parsing this literal. This - error will be caught later by - decode_unicode_with_escapes(). */ - continue; - } - if (ch == '{' && warn_invalid_escape_sequence(p, s-1, t) < 0) { - return -1; - } - } - if (ch == '{' || ch == '}') { - /* Check for doubled braces, but only at the top level. If - we checked at every level, then f'{0:{3}}' would fail - with the two closing braces. */ - if (recurse_lvl == 0) { - if (s < end && *s == ch) { - /* We're going to tell the caller that the literal ends - here, but that they should continue scanning. But also - skip over the second brace when we resume scanning. */ - *str = s + 1; - result = 1; - goto done; - } - - /* Where a single '{' is the start of a new expression, a - single '}' is not allowed. */ - if (ch == '}') { - *str = s - 1; - RAISE_SYNTAX_ERROR("f-string: single '}' is not allowed"); - return -1; - } - } - /* We're either at a '{', which means we're starting another - expression; or a '}', which means we're at the end of this - f-string (for a nested format_spec). */ - s--; - break; - } - } - *str = s; - assert(s <= end); - assert(s == end || *s == '{' || *s == '}'); -done: - if (literal_start != s) { - if (raw) { - *literal = PyUnicode_DecodeUTF8Stateful(literal_start, - s - literal_start, - NULL, NULL); - } - else { - *literal = decode_unicode_with_escapes(p, literal_start, - s - literal_start, t); - } - if (!*literal) { - return -1; - } - } - return result; -} - -/* Forward declaration because parsing is recursive. */ -static expr_ty -fstring_parse(Parser *p, const char **str, const char *end, int raw, int recurse_lvl, - Token *first_token, Token* t, Token *last_token); - -/* Parse the f-string at *str, ending at end. We know *str starts an - expression (so it must be a '{'). Returns the FormattedValue node, which - includes the expression, conversion character, format_spec expression, and - optionally the text of the expression (if = is used). - - Note that I don't do a perfect job here: I don't make sure that a - closing brace doesn't match an opening paren, for example. It - doesn't need to error on all invalid expressions, just correctly - find the end of all valid ones. Any errors inside the expression - will be caught when we parse it later. - - *expression is set to the expression. For an '=' "debug" expression, - *expr_text is set to the debug text (the original text of the expression, - including the '=' and any whitespace around it, as a string object). If - not a debug expression, *expr_text set to NULL. */ -static int -fstring_find_expr(Parser *p, const char **str, const char *end, int raw, int recurse_lvl, - PyObject **expr_text, expr_ty *expression, Token *first_token, - Token *t, Token *last_token) -{ - /* Return -1 on error, else 0. */ - - const char *expr_start; - const char *expr_end; - expr_ty simple_expression; - expr_ty format_spec = NULL; /* Optional format specifier. */ - int conversion = -1; /* The conversion char. Use default if not - specified, or !r if using = and no format - spec. */ - - /* 0 if we're not in a string, else the quote char we're trying to - match (single or double quote). */ - char quote_char = 0; - - /* If we're inside a string, 1=normal, 3=triple-quoted. */ - int string_type = 0; - - /* Keep track of nesting level for braces/parens/brackets in - expressions. */ - Py_ssize_t nested_depth = 0; - char parenstack[MAXLEVEL]; - - *expr_text = NULL; - - /* Can only nest one level deep. */ - if (recurse_lvl >= 2) { - RAISE_SYNTAX_ERROR("f-string: expressions nested too deeply"); - goto error; - } - - /* The first char must be a left brace, or we wouldn't have gotten - here. Skip over it. */ - assert(**str == '{'); - *str += 1; - - expr_start = *str; - for (; *str < end; (*str)++) { - char ch; - - /* Loop invariants. */ - assert(nested_depth >= 0); - assert(*str >= expr_start && *str < end); - if (quote_char) { - assert(string_type == 1 || string_type == 3); - } else { - assert(string_type == 0); - } - - ch = **str; - /* Nowhere inside an expression is a backslash allowed. */ - if (ch == '\\') { - /* Error: can't include a backslash character, inside - parens or strings or not. */ - RAISE_SYNTAX_ERROR( - "f-string expression part " - "cannot include a backslash"); - goto error; - } - if (quote_char) { - /* We're inside a string. See if we're at the end. */ - /* This code needs to implement the same non-error logic - as tok_get from tokenizer.c, at the letter_quote - label. To actually share that code would be a - nightmare. But, it's unlikely to change and is small, - so duplicate it here. Note we don't need to catch all - of the errors, since they'll be caught when parsing the - expression. We just need to match the non-error - cases. Thus we can ignore \n in single-quoted strings, - for example. Or non-terminated strings. */ - if (ch == quote_char) { - /* Does this match the string_type (single or triple - quoted)? */ - if (string_type == 3) { - if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) { - /* We're at the end of a triple quoted string. */ - *str += 2; - string_type = 0; - quote_char = 0; - continue; - } - } else { - /* We're at the end of a normal string. */ - quote_char = 0; - string_type = 0; - continue; - } - } - } else if (ch == '\'' || ch == '"') { - /* Is this a triple quoted string? */ - if (*str+2 < end && *(*str+1) == ch && *(*str+2) == ch) { - string_type = 3; - *str += 2; - } else { - /* Start of a normal string. */ - string_type = 1; - } - /* Start looking for the end of the string. */ - quote_char = ch; - } else if (ch == '[' || ch == '{' || ch == '(') { - if (nested_depth >= MAXLEVEL) { - RAISE_SYNTAX_ERROR("f-string: too many nested parenthesis"); - goto error; - } - parenstack[nested_depth] = ch; - nested_depth++; - } else if (ch == '#') { - /* Error: can't include a comment character, inside parens - or not. */ - RAISE_SYNTAX_ERROR("f-string expression part cannot include '#'"); - goto error; - } else if (nested_depth == 0 && - (ch == '!' || ch == ':' || ch == '}' || - ch == '=' || ch == '>' || ch == '<')) { - /* See if there's a next character. */ - if (*str+1 < end) { - char next = *(*str+1); - - /* For "!=". since '=' is not an allowed conversion character, - nothing is lost in this test. */ - if ((ch == '!' && next == '=') || /* != */ - (ch == '=' && next == '=') || /* == */ - (ch == '<' && next == '=') || /* <= */ - (ch == '>' && next == '=') /* >= */ - ) { - *str += 1; - continue; - } - } - /* Don't get out of the loop for these, if they're single - chars (not part of 2-char tokens). If by themselves, they - don't end an expression (unlike say '!'). */ - if (ch == '>' || ch == '<') { - continue; - } - - /* Normal way out of this loop. */ - break; - } else if (ch == ']' || ch == '}' || ch == ')') { - if (!nested_depth) { - RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", ch); - goto error; - } - nested_depth--; - int opening = (unsigned char)parenstack[nested_depth]; - if (!((opening == '(' && ch == ')') || - (opening == '[' && ch == ']') || - (opening == '{' && ch == '}'))) - { - RAISE_SYNTAX_ERROR( - "f-string: closing parenthesis '%c' " - "does not match opening parenthesis '%c'", - ch, opening); - goto error; - } - } else { - /* Just consume this char and loop around. */ - } - } - expr_end = *str; - /* If we leave the above loop in a string or with mismatched parens, we - don't really care. We'll get a syntax error when compiling the - expression. But, we can produce a better error message, so let's just - do that.*/ - if (quote_char) { - RAISE_SYNTAX_ERROR("f-string: unterminated string"); - goto error; - } - if (nested_depth) { - int opening = (unsigned char)parenstack[nested_depth - 1]; - RAISE_SYNTAX_ERROR("f-string: unmatched '%c'", opening); - goto error; - } - - if (*str >= end) { - goto unexpected_end_of_string; - } - - /* Compile the expression as soon as possible, so we show errors - related to the expression before errors related to the - conversion or format_spec. */ - simple_expression = fstring_compile_expr(p, expr_start, expr_end, t); - if (!simple_expression) { - goto error; - } - - /* Check for =, which puts the text value of the expression in - expr_text. */ - if (**str == '=') { - if (p->feature_version < 8) { - RAISE_SYNTAX_ERROR("f-string: self documenting expressions are " - "only supported in Python 3.8 and greater"); - goto error; - } - *str += 1; - - /* Skip over ASCII whitespace. No need to test for end of string - here, since we know there's at least a trailing quote somewhere - ahead. */ - while (Py_ISSPACE(**str)) { - *str += 1; - } - if (*str >= end) { - goto unexpected_end_of_string; - } - /* Set *expr_text to the text of the expression. */ - *expr_text = PyUnicode_FromStringAndSize(expr_start, *str-expr_start); - if (!*expr_text) { - goto error; - } - } - - /* Check for a conversion char, if present. */ - if (**str == '!') { - *str += 1; - const char *conv_start = *str; - while (1) { - if (*str >= end) { - goto unexpected_end_of_string; - } - if (**str == '}' || **str == ':') { - break; - } - *str += 1; - } - if (*str == conv_start) { - RAISE_SYNTAX_ERROR( - "f-string: missed conversion character"); - goto error; - } - - conversion = (unsigned char)*conv_start; - /* Validate the conversion. */ - if ((*str != conv_start + 1) || - !(conversion == 's' || conversion == 'r' || conversion == 'a')) - { - PyObject *conv_obj = PyUnicode_FromStringAndSize(conv_start, - *str-conv_start); - if (conv_obj) { - RAISE_SYNTAX_ERROR( - "f-string: invalid conversion character %R: " - "expected 's', 'r', or 'a'", - conv_obj); - Py_DECREF(conv_obj); - } - goto error; - } - - } - - /* Check for the format spec, if present. */ - assert(*str < end); - if (**str == ':') { - *str += 1; - if (*str >= end) { - goto unexpected_end_of_string; - } - - /* Parse the format spec. */ - format_spec = fstring_parse(p, str, end, raw, recurse_lvl+1, - first_token, t, last_token); - if (!format_spec) { - goto error; - } - } - - if (*str >= end || **str != '}') { - goto unexpected_end_of_string; - } - - /* We're at a right brace. Consume it. */ - assert(*str < end); - assert(**str == '}'); - *str += 1; - - /* If we're in = mode (detected by non-NULL expr_text), and have no format - spec and no explicit conversion, set the conversion to 'r'. */ - if (*expr_text && format_spec == NULL && conversion == -1) { - conversion = 'r'; - } - - /* And now create the FormattedValue node that represents this - entire expression with the conversion and format spec. */ - //TODO: Fix this - *expression = _PyAST_FormattedValue(simple_expression, conversion, - format_spec, first_token->lineno, - first_token->col_offset, - last_token->end_lineno, - last_token->end_col_offset, p->arena); - if (!*expression) { - goto error; - } - - return 0; - -unexpected_end_of_string: - RAISE_SYNTAX_ERROR("f-string: expecting '}'"); - /* Falls through to error. */ - -error: - Py_XDECREF(*expr_text); - return -1; - -} - -/* Return -1 on error. - - Return 0 if we have a literal (possible zero length) and an - expression (zero length if at the end of the string. - - Return 1 if we have a literal, but no expression, and we want the - caller to call us again. This is used to deal with doubled - braces. - - When called multiple times on the string 'a{{b{0}c', this function - will return: - - 1. the literal 'a{' with no expression, and a return value - of 1. Despite the fact that there's no expression, the return - value of 1 means we're not finished yet. - - 2. the literal 'b' and the expression '0', with a return value of - 0. The fact that there's an expression means we're not finished. - - 3. literal 'c' with no expression and a return value of 0. The - combination of the return value of 0 with no expression means - we're finished. -*/ -static int -fstring_find_literal_and_expr(Parser *p, const char **str, const char *end, int raw, - int recurse_lvl, PyObject **literal, - PyObject **expr_text, expr_ty *expression, - Token *first_token, Token *t, Token *last_token) -{ - int result; - - assert(*literal == NULL && *expression == NULL); - - /* Get any literal string. */ - result = fstring_find_literal(p, str, end, raw, literal, recurse_lvl, t); - if (result < 0) { - goto error; - } - - assert(result == 0 || result == 1); - - if (result == 1) { - /* We have a literal, but don't look at the expression. */ - return 1; - } - - if (*str >= end || **str == '}') { - /* We're at the end of the string or the end of a nested - f-string: no expression. The top-level error case where we - expect to be at the end of the string but we're at a '}' is - handled later. */ - return 0; - } - - /* We must now be the start of an expression, on a '{'. */ - assert(**str == '{'); - - if (fstring_find_expr(p, str, end, raw, recurse_lvl, expr_text, - expression, first_token, t, last_token) < 0) { - goto error; - } - - return 0; - -error: - Py_CLEAR(*literal); - return -1; -} - -#ifdef NDEBUG -#define ExprList_check_invariants(l) -#else -static void -ExprList_check_invariants(ExprList *l) -{ - /* Check our invariants. Make sure this object is "live", and - hasn't been deallocated. */ - assert(l->size >= 0); - assert(l->p != NULL); - if (l->size <= EXPRLIST_N_CACHED) { - assert(l->data == l->p); - } -} -#endif - -static void -ExprList_Init(ExprList *l) -{ - l->allocated = EXPRLIST_N_CACHED; - l->size = 0; - - /* Until we start allocating dynamically, p points to data. */ - l->p = l->data; - - ExprList_check_invariants(l); -} - -static int -ExprList_Append(ExprList *l, expr_ty exp) -{ - ExprList_check_invariants(l); - if (l->size >= l->allocated) { - /* We need to alloc (or realloc) the memory. */ - Py_ssize_t new_size = l->allocated * 2; - - /* See if we've ever allocated anything dynamically. */ - if (l->p == l->data) { - Py_ssize_t i; - /* We're still using the cached data. Switch to - alloc-ing. */ - l->p = PyMem_Malloc(sizeof(expr_ty) * new_size); - if (!l->p) { - return -1; - } - /* Copy the cached data into the new buffer. */ - for (i = 0; i < l->size; i++) { - l->p[i] = l->data[i]; - } - } else { - /* Just realloc. */ - expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size); - if (!tmp) { - PyMem_Free(l->p); - l->p = NULL; - return -1; - } - l->p = tmp; - } - - l->allocated = new_size; - assert(l->allocated == 2 * l->size); - } - - l->p[l->size++] = exp; - - ExprList_check_invariants(l); - return 0; -} - -static void -ExprList_Dealloc(ExprList *l) -{ - ExprList_check_invariants(l); - - /* If there's been an error, or we've never dynamically allocated, - do nothing. */ - if (!l->p || l->p == l->data) { - /* Do nothing. */ - } else { - /* We have dynamically allocated. Free the memory. */ - PyMem_Free(l->p); - } - l->p = NULL; - l->size = -1; -} - -static asdl_expr_seq * -ExprList_Finish(ExprList *l, PyArena *arena) -{ - asdl_expr_seq *seq; - - ExprList_check_invariants(l); - - /* Allocate the asdl_seq and copy the expressions in to it. */ - seq = _Py_asdl_expr_seq_new(l->size, arena); - if (seq) { - Py_ssize_t i; - for (i = 0; i < l->size; i++) { - asdl_seq_SET(seq, i, l->p[i]); - } - } - ExprList_Dealloc(l); - return seq; -} - -#ifdef NDEBUG -#define FstringParser_check_invariants(state) -#else -static void -FstringParser_check_invariants(FstringParser *state) -{ - if (state->last_str) { - assert(PyUnicode_CheckExact(state->last_str)); - } - ExprList_check_invariants(&state->expr_list); -} -#endif - -void -_PyPegen_FstringParser_Init(FstringParser *state) -{ - state->last_str = NULL; - state->fmode = 0; - ExprList_Init(&state->expr_list); - FstringParser_check_invariants(state); -} - -void -_PyPegen_FstringParser_Dealloc(FstringParser *state) -{ - FstringParser_check_invariants(state); - - Py_XDECREF(state->last_str); - ExprList_Dealloc(&state->expr_list); -} - -/* Make a Constant node, but decref the PyUnicode object being added. */ -static expr_ty -make_str_node_and_del(Parser *p, PyObject **str, Token* first_token, Token *last_token) -{ - PyObject *s = *str; - PyObject *kind = NULL; - *str = NULL; - assert(PyUnicode_CheckExact(s)); - if (_PyArena_AddPyObject(p->arena, s) < 0) { - Py_DECREF(s); - return NULL; - } - const char* the_str = PyBytes_AsString(first_token->bytes); - if (the_str && the_str[0] == 'u') { - kind = _PyPegen_new_identifier(p, "u"); - } - - if (kind == NULL && PyErr_Occurred()) { - return NULL; - } - - return _PyAST_Constant(s, kind, first_token->lineno, first_token->col_offset, - last_token->end_lineno, last_token->end_col_offset, - p->arena); - -} - - -/* Add a non-f-string (that is, a regular literal string). str is - decref'd. */ -int -_PyPegen_FstringParser_ConcatAndDel(FstringParser *state, PyObject *str) -{ - FstringParser_check_invariants(state); - - assert(PyUnicode_CheckExact(str)); - - if (PyUnicode_GET_LENGTH(str) == 0) { - Py_DECREF(str); - return 0; - } - - if (!state->last_str) { - /* We didn't have a string before, so just remember this one. */ - state->last_str = str; - } else { - /* Concatenate this with the previous string. */ - PyUnicode_AppendAndDel(&state->last_str, str); - if (!state->last_str) { - return -1; - } - } - FstringParser_check_invariants(state); - return 0; -} - -/* Parse an f-string. The f-string is in *str to end, with no - 'f' or quotes. */ -int -_PyPegen_FstringParser_ConcatFstring(Parser *p, FstringParser *state, const char **str, - const char *end, int raw, int recurse_lvl, - Token *first_token, Token* t, Token *last_token) -{ - FstringParser_check_invariants(state); - state->fmode = 1; - - /* Parse the f-string. */ - while (1) { - PyObject *literal = NULL; - PyObject *expr_text = NULL; - expr_ty expression = NULL; - - /* If there's a zero length literal in front of the - expression, literal will be NULL. If we're at the end of - the f-string, expression will be NULL (unless result == 1, - see below). */ - int result = fstring_find_literal_and_expr(p, str, end, raw, recurse_lvl, - &literal, &expr_text, - &expression, first_token, t, last_token); - if (result < 0) { - return -1; - } - - /* Add the literal, if any. */ - if (literal && _PyPegen_FstringParser_ConcatAndDel(state, literal) < 0) { - Py_XDECREF(expr_text); - return -1; - } - /* Add the expr_text, if any. */ - if (expr_text && _PyPegen_FstringParser_ConcatAndDel(state, expr_text) < 0) { - return -1; - } - - /* We've dealt with the literal and expr_text, their ownership has - been transferred to the state object. Don't look at them again. */ - - /* See if we should just loop around to get the next literal - and expression, while ignoring the expression this - time. This is used for un-doubling braces, as an - optimization. */ - if (result == 1) { - continue; - } - - if (!expression) { - /* We're done with this f-string. */ - break; - } - - /* We know we have an expression. Convert any existing string - to a Constant node. */ - if (state->last_str) { - /* Convert the existing last_str literal to a Constant node. */ - expr_ty last_str = make_str_node_and_del(p, &state->last_str, first_token, last_token); - if (!last_str || ExprList_Append(&state->expr_list, last_str) < 0) { - return -1; - } - } - - if (ExprList_Append(&state->expr_list, expression) < 0) { - return -1; - } - } - - /* If recurse_lvl is zero, then we must be at the end of the - string. Otherwise, we must be at a right brace. */ - - if (recurse_lvl == 0 && *str < end-1) { - RAISE_SYNTAX_ERROR("f-string: unexpected end of string"); - return -1; - } - if (recurse_lvl != 0 && **str != '}') { - RAISE_SYNTAX_ERROR("f-string: expecting '}'"); - return -1; - } - - FstringParser_check_invariants(state); - return 0; -} - -/* Convert the partial state reflected in last_str and expr_list to an - expr_ty. The expr_ty can be a Constant, or a JoinedStr. */ -expr_ty -_PyPegen_FstringParser_Finish(Parser *p, FstringParser *state, Token* first_token, - Token *last_token) -{ - asdl_expr_seq *seq; - - FstringParser_check_invariants(state); - - /* If we're just a constant string with no expressions, return - that. */ - if (!state->fmode) { - assert(!state->expr_list.size); - if (!state->last_str) { - /* Create a zero length string. */ - state->last_str = PyUnicode_FromStringAndSize(NULL, 0); - if (!state->last_str) { - goto error; + return NULL; } } - return make_str_node_and_del(p, &state->last_str, first_token, last_token); - } - - /* Create a Constant node out of last_str, if needed. It will be the - last node in our expression list. */ - if (state->last_str) { - expr_ty str = make_str_node_and_del(p, &state->last_str, first_token, last_token); - if (!str || ExprList_Append(&state->expr_list, str) < 0) { - goto error; + if (rawmode) { + return PyBytes_FromStringAndSize(s, len); } + return decode_bytes_with_escapes(p, s, len, t); } - /* This has already been freed. */ - assert(state->last_str == NULL); - - seq = ExprList_Finish(&state->expr_list, p->arena); - if (!seq) { - goto error; - } - - return _PyAST_JoinedStr(seq, first_token->lineno, first_token->col_offset, - last_token->end_lineno, last_token->end_col_offset, - p->arena); - -error: - _PyPegen_FstringParser_Dealloc(state); - return NULL; -} - -/* Given an f-string (with no 'f' or quotes) that's in *str and ends - at end, parse it into an expr_ty. Return NULL on error. Adjust - str to point past the parsed portion. */ -static expr_ty -fstring_parse(Parser *p, const char **str, const char *end, int raw, - int recurse_lvl, Token *first_token, Token* t, Token *last_token) -{ - FstringParser state; - - _PyPegen_FstringParser_Init(&state); - if (_PyPegen_FstringParser_ConcatFstring(p, &state, str, end, raw, recurse_lvl, - first_token, t, last_token) < 0) { - _PyPegen_FstringParser_Dealloc(&state); - return NULL; - } - - return _PyPegen_FstringParser_Finish(p, &state, t, t); + return _PyPegen_decode_string(p, rawmode, s, len, t); } diff --git a/Parser/string_parser.h b/Parser/string_parser.h index 4a22f3d3086f478..0b34de1b4e41e92 100644 --- a/Parser/string_parser.h +++ b/Parser/string_parser.h @@ -5,42 +5,7 @@ #include #include "pegen.h" -#define EXPRLIST_N_CACHED 64 - -typedef struct { - /* Incrementally build an array of expr_ty, so be used in an - asdl_seq. Cache some small but reasonably sized number of - expr_ty's, and then after that start dynamically allocating, - doubling the number allocated each time. Note that the f-string - f'{0}a{1}' contains 3 expr_ty's: 2 FormattedValue's, and one - Constant for the literal 'a'. So you add expr_ty's about twice as - fast as you add expressions in an f-string. */ - - Py_ssize_t allocated; /* Number we've allocated. */ - Py_ssize_t size; /* Number we've used. */ - expr_ty *p; /* Pointer to the memory we're actually - using. Will point to 'data' until we - start dynamically allocating. */ - expr_ty data[EXPRLIST_N_CACHED]; -} ExprList; - -/* The FstringParser is designed to add a mix of strings and - f-strings, and concat them together as needed. Ultimately, it - generates an expr_ty. */ -typedef struct { - PyObject *last_str; - ExprList expr_list; - int fmode; -} FstringParser; - -void _PyPegen_FstringParser_Init(FstringParser *); -int _PyPegen_parsestr(Parser *, int *, int *, PyObject **, - const char **, Py_ssize_t *, Token *); -int _PyPegen_FstringParser_ConcatFstring(Parser *, FstringParser *, const char **, - const char *, int, int, Token *, Token *, - Token *); -int _PyPegen_FstringParser_ConcatAndDel(FstringParser *, PyObject *); -expr_ty _PyPegen_FstringParser_Finish(Parser *, FstringParser *, Token *, Token *); -void _PyPegen_FstringParser_Dealloc(FstringParser *); +PyObject *_PyPegen_parse_string(Parser *, Token *); +PyObject *_PyPegen_decode_string(Parser *, int, const char *, size_t, Token *); #endif diff --git a/Parser/token.c b/Parser/token.c index 6299ad2f5631448..82267fbfcd0c54e 100644 --- a/Parser/token.c +++ b/Parser/token.c @@ -60,12 +60,16 @@ const char * const _PyParser_TokenNames[] = { "RARROW", "ELLIPSIS", "COLONEQUAL", + "EXCLAMATION", "OP", "AWAIT", "ASYNC", "TYPE_IGNORE", "TYPE_COMMENT", "SOFT_KEYWORD", + "FSTRING_START", + "FSTRING_MIDDLE", + "FSTRING_END", "", "", "", @@ -79,6 +83,7 @@ int _PyToken_OneChar(int c1) { switch (c1) { + case '!': return EXCLAMATION; case '%': return PERCENT; case '&': return AMPER; case '(': return LPAR; diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 463c0e00ca1411a..1dfd2d6e5e1717c 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -43,6 +43,28 @@ tok->lineno++; \ tok->col_offset = 0; +#ifdef Py_DEBUG +static inline tokenizer_mode* TOK_GET_MODE(struct tok_state* tok) { + assert(tok->tok_mode_stack_index >= 0); + assert(tok->tok_mode_stack_index < MAXLEVEL); + return &(tok->tok_mode_stack[tok->tok_mode_stack_index]); +} +static inline tokenizer_mode* TOK_NEXT_MODE(struct tok_state* tok) { + assert(tok->tok_mode_stack_index >= 0); + assert(tok->tok_mode_stack_index < MAXLEVEL); + return &(tok->tok_mode_stack[++tok->tok_mode_stack_index]); +} +static inline int *TOK_GET_BRACKET_MARK(tokenizer_mode* mode) { + assert(mode->bracket_mark_index >= 0); + assert(mode->bracket_mark_index < MAX_EXPR_NESTING); + return &(mode->bracket_mark[mode->bracket_mark_index]); +} +#else +#define TOK_GET_MODE(tok) (&(tok->tok_mode_stack[tok->tok_mode_stack_index])) +#define TOK_NEXT_MODE(tok) (&(tok->tok_mode_stack[++tok->tok_mode_stack_index])) +#define TOK_GET_BRACKET_MARK(mode) (&(mode->bracket_mark[mode->bracket_mark_index])) +#endif + /* Forward */ static struct tok_state *tok_new(void); static int tok_nextc(struct tok_state *tok); @@ -98,6 +120,9 @@ tok_new(void) tok->interactive_underflow = IUNDERFLOW_NORMAL; tok->str = NULL; tok->report_warnings = 1; + tok->tok_mode_stack[0] = (tokenizer_mode){.kind =TOK_REGULAR_MODE, .f_string_quote='\0', .f_string_quote_size = 0}; + tok->tok_mode_stack_index = 0; + tok->tok_report_warnings = 1; #ifdef Py_DEBUG tok->debug = _Py_GetConfig()->parser_debug; #endif @@ -346,6 +371,92 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { } +/* Traverse and update all f-string buffers with the value */ +static void +update_fstring_buffers(struct tok_state *tok, char value, int regular, int multiline) +{ + int index; + tokenizer_mode *mode; + + for (index = tok->tok_mode_stack_index; index >= 0; --index) { + mode = &(tok->tok_mode_stack[index]); + if (regular && mode->f_string_start != NULL) { + mode->f_string_start += value; + } + if (multiline && mode->f_string_multi_line_start != NULL) { + mode->f_string_multi_line_start += value; + } + } +} + +static int +update_fstring_expr(struct tok_state *tok, char cur) +{ + assert(tok->cur != NULL); + + Py_ssize_t size = strlen(tok->cur); + tokenizer_mode *tok_mode = TOK_GET_MODE(tok); + + switch (cur) { + case '{': + if (tok_mode->last_expr_buffer != NULL) { + PyMem_Free(tok_mode->last_expr_buffer); + } + tok_mode->last_expr_buffer = PyMem_Malloc(size); + if (tok_mode->last_expr_buffer == NULL) { + tok->done = E_NOMEM; + return 0; + } + tok_mode->last_expr_size = size; + tok_mode->last_expr_end = -1; + strncpy(tok_mode->last_expr_buffer, tok->cur, size); + break; + case 0: + if (!tok_mode->last_expr_buffer || tok_mode->last_expr_end >= 0) { + return 1; + } + char *new_buffer = PyMem_Realloc( + tok_mode->last_expr_buffer, + tok_mode->last_expr_size + size + ); + if (new_buffer == NULL) { + PyMem_Free(tok_mode->last_expr_buffer); + tok->done = E_NOMEM; + return 0; + } + tok_mode->last_expr_buffer = new_buffer; + strncpy(tok_mode->last_expr_buffer + tok_mode->last_expr_size, tok->cur, size); + tok_mode->last_expr_size += size; + break; + case '}': + case '!': + case ':': + if (tok_mode->last_expr_end == -1) { + tok_mode->last_expr_end = strlen(tok->start); + } + break; + } + + return 1; +} + +static void +free_fstring_expressions(struct tok_state *tok) +{ + int index; + tokenizer_mode *mode; + + for (index = tok->tok_mode_stack_index; index >= 0; --index) { + mode = &(tok->tok_mode_stack[index]); + if (mode->last_expr_buffer != NULL) { + PyMem_Free(mode->last_expr_buffer); + mode->last_expr_buffer = NULL; + mode->last_expr_size = 0; + mode->last_expr_end = -1; + } + } +} + /* Read a line of text from TOK into S, using the stream in TOK. Return NULL on failure, else S. @@ -372,6 +483,7 @@ tok_reserve_buf(struct tok_state *tok, Py_ssize_t size) Py_ssize_t start = tok->start == NULL ? -1 : tok->start - tok->buf; Py_ssize_t line_start = tok->start == NULL ? -1 : tok->line_start - tok->buf; Py_ssize_t multi_line_start = tok->multi_line_start - tok->buf; + update_fstring_buffers(tok, -*tok->buf, /*regular=*/1, /*multiline=*/1); newbuf = (char *)PyMem_Realloc(newbuf, newsize); if (newbuf == NULL) { tok->done = E_NOMEM; @@ -384,6 +496,7 @@ tok_reserve_buf(struct tok_state *tok, Py_ssize_t size) tok->start = start < 0 ? NULL : tok->buf + start; tok->line_start = line_start < 0 ? NULL : tok->buf + line_start; tok->multi_line_start = multi_line_start < 0 ? NULL : tok->buf + multi_line_start; + update_fstring_buffers(tok, *tok->buf, /*regular=*/1, /*multiline=*/1); } return 1; } @@ -838,6 +951,7 @@ _PyTokenizer_Free(struct tok_state *tok) if (tok->interactive_src_start != NULL) { PyMem_Free(tok->interactive_src_start); } + free_fstring_expressions(tok); PyMem_Free(tok); } @@ -854,6 +968,9 @@ tok_readline_raw(struct tok_state *tok) if (line == NULL) { return 1; } + if (tok->tok_mode_stack_index && !update_fstring_expr(tok, 0)) { + return 0; + } if (tok->fp_interactive && tok_concatenate_interactive_new_line(tok, line) == -1) { return 0; @@ -941,6 +1058,7 @@ tok_underflow_interactive(struct tok_state *tok) { } else if (tok->start != NULL) { Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf; + update_fstring_buffers(tok, -*tok->buf, /*regular=*/0, /*multiline=*/1); size_t size = strlen(newtok); ADVANCE_LINENO(); if (!tok_reserve_buf(tok, size + 1)) { @@ -953,6 +1071,7 @@ tok_underflow_interactive(struct tok_state *tok) { PyMem_Free(newtok); tok->inp += size; tok->multi_line_start = tok->buf + cur_multi_line_start; + update_fstring_buffers(tok, *tok->buf, /*regular=*/0, /*multiline=*/1); } else { ADVANCE_LINENO(); @@ -969,6 +1088,10 @@ tok_underflow_interactive(struct tok_state *tok) { } return 0; } + + if (tok->tok_mode_stack_index && !update_fstring_expr(tok, 0)) { + return 0; + } return 1; } @@ -1073,7 +1196,7 @@ tok_nextc(struct tok_state *tok) return Py_CHARMASK(*tok->cur++); /* Fast path */ } if (tok->done != E_OK) { - return EOF; + return EOF; } if (tok->fp == NULL) { rc = tok_underflow_string(tok); @@ -1115,7 +1238,7 @@ tok_backup(struct tok_state *tok, int c) if (--tok->cur < tok->buf) { Py_FatalError("tokenizer beginning of buffer"); } - if ((int)(unsigned char)*tok->cur != c) { + if ((int)(unsigned char)*tok->cur != Py_CHARMASK(c)) { Py_FatalError("tok_backup: wrong character"); } tok->col_offset--; @@ -1172,6 +1295,7 @@ _syntaxerror_range(struct tok_state *tok, const char *format, static int syntaxerror(struct tok_state *tok, const char *format, ...) { + // This errors are cleaned on startup. Todo: Fix it. va_list vargs; va_start(vargs, format); int ret = _syntaxerror_range(tok, format, -1, -1, vargs); @@ -1234,6 +1358,41 @@ parser_warn(struct tok_state *tok, PyObject *category, const char *format, ...) return -1; } +static int +warn_invalid_escape_sequence(struct tok_state *tok, int first_invalid_escape_char) +{ + + if (!tok->tok_report_warnings) { + return 0; + } + + PyObject *msg = PyUnicode_FromFormat( + "invalid escape sequence '\\%c'", + (char) first_invalid_escape_char + ); + + if (msg == NULL) { + return -1; + } + + if (PyErr_WarnExplicitObject(PyExc_DeprecationWarning, msg, tok->filename, + tok->lineno, NULL, NULL) < 0) { + Py_DECREF(msg); + + if (PyErr_ExceptionMatches(PyExc_DeprecationWarning)) { + /* Replace the DeprecationWarning exception with a SyntaxError + to get a more accurate error report */ + PyErr_Clear(); + return syntaxerror(tok, "invalid escape sequence '\\%c'", (char) first_invalid_escape_char); + } + + return -1; + } + + Py_DECREF(msg); + return 0; +} + static int lookahead(struct tok_state *tok, const char *test) { @@ -1389,7 +1548,6 @@ tok_decimal_tail(struct tok_state *tok) return c; } -/* Get next token, after space stripping etc. */ static inline int tok_continuation_line(struct tok_state *tok) { @@ -1427,7 +1585,12 @@ token_setup(struct tok_state *tok, struct token *token, int type, const char *st { assert((start == NULL && end == NULL) || (start != NULL && end != NULL)); token->level = tok->level; - token->lineno = type == STRING ? tok->first_lineno : tok->lineno; + if (ISSTRINGLIT(type)) { + token->lineno = tok->first_lineno; + } + else { + token->lineno = tok->lineno; + } token->end_lineno = tok->lineno; token->col_offset = token->end_col_offset = -1; token->start = start; @@ -1441,7 +1604,7 @@ token_setup(struct tok_state *tok, struct token *token, int type, const char *st } static int -tok_get(struct tok_state *tok, struct token *token) +tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct token *token) { int c; int blankline, nonascii; @@ -1602,6 +1765,11 @@ tok_get(struct tok_state *tok, struct token *token) /* Skip comment, unless it's a type comment */ if (c == '#') { + + if (tok->tok_mode_stack_index > 0) { + return MAKE_TOKEN(syntaxerror(tok, "f-string expression part cannot include '#'")); + } + const char *prefix, *p, *type_start; int current_starting_col_offset; @@ -1703,6 +1871,9 @@ tok_get(struct tok_state *tok, struct token *token) } c = tok_nextc(tok); if (c == '"' || c == '\'') { + if (saw_f) { + goto f_string_quote; + } goto letter_quote; } } @@ -1748,7 +1919,9 @@ tok_get(struct tok_state *tok, struct token *token) int ahead_tok_kind; memcpy(&ahead_tok, tok, sizeof(ahead_tok)); - ahead_tok_kind = tok_get(&ahead_tok, &ahead_token); + ahead_tok_kind = tok_get_normal_mode(&ahead_tok, + current_tok, + &ahead_token); if (ahead_tok_kind == NAME && ahead_tok.cur - ahead_tok.start == 3 @@ -2003,6 +2176,67 @@ tok_get(struct tok_state *tok, struct token *token) return MAKE_TOKEN(NUMBER); } + f_string_quote: + if (((tolower(*tok->start) == 'f' || tolower(*tok->start) == 'r') && (c == '\'' || c == '"'))) { + int quote = c; + int quote_size = 1; /* 1 or 3 */ + + /* Nodes of type STRING, especially multi line strings + must be handled differently in order to get both + the starting line number and the column offset right. + (cf. issue 16806) */ + tok->first_lineno = tok->lineno; + tok->multi_line_start = tok->line_start; + + /* Find the quote size and start of string */ + int after_quote = tok_nextc(tok); + if (after_quote == quote) { + int after_after_quote = tok_nextc(tok); + if (after_after_quote == quote) { + quote_size = 3; + } + else { + // TODO: Check this + tok_backup(tok, after_after_quote); + tok_backup(tok, after_quote); + } + } + if (after_quote != quote) { + tok_backup(tok, after_quote); + } + + + p_start = tok->start; + p_end = tok->cur; + tokenizer_mode *current_tok = TOK_NEXT_MODE(tok); + current_tok->kind = TOK_FSTRING_MODE; + current_tok->f_string_quote = quote; + current_tok->f_string_quote_size = quote_size; + current_tok->f_string_start = tok->start; + current_tok->f_string_multi_line_start = tok->line_start; + current_tok->last_expr_buffer = NULL; + current_tok->last_expr_size = 0; + current_tok->last_expr_end = -1; + + switch (*tok->start) { + case 'F': + case 'f': + current_tok->f_string_raw = tolower(*(tok->start + 1)) == 'r'; + break; + case 'R': + case 'r': + current_tok->f_string_raw = 1; + break; + default: + Py_UNREACHABLE(); + } + + current_tok->bracket_stack = 0; + current_tok->bracket_mark[0] = 0; + current_tok->bracket_mark_index = -1; + return MAKE_TOKEN(FSTRING_START); + } + letter_quote: /* String */ if (c == '\'' || c == '"') { @@ -2047,6 +2281,20 @@ tok_get(struct tok_state *tok, struct token *token) tok->line_start = tok->multi_line_start; int start = tok->lineno; tok->lineno = tok->first_lineno; + + if (tok->tok_mode_stack_index > 0) { + /* When we are in an f-string, before raising the + * unterminated string literal error, check whether + * does the initial quote matches with f-strings quotes + * and if it is, then this must be a missing '}' token + * so raise the proper error */ + tokenizer_mode *current_tok = TOK_GET_MODE(tok); + if (current_tok->f_string_quote == quote && + current_tok->f_string_quote_size == quote_size) { + return MAKE_TOKEN(syntaxerror(tok, "f-string: expecting '}'", start)); + } + } + if (quote_size == 3) { syntaxerror(tok, "unterminated triple-quoted string literal" " (detected at line %d)", start); @@ -2089,6 +2337,27 @@ tok_get(struct tok_state *tok, struct token *token) goto again; /* Read next line */ } + /* Punctuation character */ + int is_punctuation = (c == ':' || c == '}' || c == '!' || c == '{'); + if (is_punctuation && tok->tok_mode_stack_index > 0 && current_tok->bracket_mark_index >= 0) { + int mark = *TOK_GET_BRACKET_MARK(current_tok); + /* This code block gets executed before the bracket_stack is incremented + * by the `{` case, so for ensuring that we are on the 0th level, we need + * to adjust it manually */ + int cursor = current_tok->bracket_stack - (c != '{'); + + if (cursor == 0 && !update_fstring_expr(tok, c)) { + return MAKE_TOKEN(ENDMARKER); + } + + if (c == ':' && cursor == mark) { + current_tok->kind = TOK_FSTRING_MODE; + p_start = tok->start; + p_end = tok->cur; + return MAKE_TOKEN(_PyToken_OneChar(c)); + } + } + /* Check for two-character token */ { int c2 = tok_nextc(tok); @@ -2121,11 +2390,18 @@ tok_get(struct tok_state *tok, struct token *token) tok->parenlinenostack[tok->level] = tok->lineno; tok->parencolstack[tok->level] = (int)(tok->start - tok->line_start); tok->level++; + + if (tok->tok_mode_stack_index > 0) { + current_tok->bracket_stack++; + } break; case ')': case ']': case '}': if (!tok->level) { + if (tok->tok_mode_stack_index > 0 && !current_tok->bracket_stack && c == '}') { + return MAKE_TOKEN(syntaxerror(tok, "f-string: single '}' is not allowed")); + } return MAKE_TOKEN(syntaxerror(tok, "unmatched '%c'", c)); } tok->level--; @@ -2134,6 +2410,18 @@ tok_get(struct tok_state *tok, struct token *token) (opening == '[' && c == ']') || (opening == '{' && c == '}'))) { + /* If the opening bracket belongs to an f-string's expression + part (e.g. f"{)}") and the closing bracket is an arbitrary + nested expression, then instead of matching a different + syntactical construct with it; we'll throw an unmatched + parentheses error. */ + if (tok->tok_mode_stack_index > 0 && opening == '{') { + assert(current_tok->bracket_stack >= 0); + int previous_bracket = current_tok->bracket_stack - 1; + if (previous_bracket == *TOK_GET_BRACKET_MARK(current_tok)) { + return MAKE_TOKEN(syntaxerror(tok, "f-string: unmatched '%c'", c)); + } + } if (tok->parenlinenostack[tok->level] != tok->lineno) { return MAKE_TOKEN(syntaxerror(tok, "closing parenthesis '%c' does not match " @@ -2147,6 +2435,14 @@ tok_get(struct tok_state *tok, struct token *token) c, opening)); } } + + if (tok->tok_mode_stack_index > 0) { + current_tok->bracket_stack--; + if (c == '}' && current_tok->bracket_stack == *TOK_GET_BRACKET_MARK(current_tok)) { + current_tok->bracket_mark_index--; + current_tok->kind = TOK_FSTRING_MODE; + } + } break; } @@ -2162,6 +2458,187 @@ tok_get(struct tok_state *tok, struct token *token) return MAKE_TOKEN(_PyToken_OneChar(c)); } +static int +tok_get_fstring_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct token *token) +{ + const char *p_start = NULL; + const char *p_end = NULL; + int end_quote_size = 0; + int unicode_escape = 0; + + tok->start = tok->cur; + tok->first_lineno = tok->lineno; + tok->starting_col_offset = tok->col_offset; + + // If we start with a bracket, we defer to the normal mode as there is nothing for us to tokenize + // before it. + int start_char = tok_nextc(tok); + int peek1 = tok_nextc(tok); + tok_backup(tok, peek1); + tok_backup(tok, start_char); + + if ((start_char == '{' && peek1 != '{') || (start_char == '}' && peek1 != '}')) { + if (start_char == '{') { + current_tok->bracket_mark_index++; + if (current_tok->bracket_mark_index >= MAX_EXPR_NESTING) { + return MAKE_TOKEN(syntaxerror(tok, "f-string: expressions nested too deeply")); + } + *TOK_GET_BRACKET_MARK(current_tok) = current_tok->bracket_stack; + } + TOK_GET_MODE(tok)->kind = TOK_REGULAR_MODE; + return tok_get_normal_mode(tok, current_tok, token); + } + + // Check if we are at the end of the string + for (int i = 0; i < current_tok->f_string_quote_size; i++) { + int quote = tok_nextc(tok); + if (quote != current_tok->f_string_quote) { + tok_backup(tok, quote); + goto f_string_middle; + } + } + + if (current_tok->last_expr_buffer != NULL) { + PyMem_Free(current_tok->last_expr_buffer); + current_tok->last_expr_buffer = NULL; + current_tok->last_expr_size = 0; + current_tok->last_expr_end = -1; + } + + p_start = tok->start; + p_end = tok->cur; + tok->tok_mode_stack_index--; + return MAKE_TOKEN(FSTRING_END); + +f_string_middle: + + while (end_quote_size != current_tok->f_string_quote_size) { + int c = tok_nextc(tok); + if (c == EOF || (current_tok->f_string_quote_size == 1 && c == '\n')) { + assert(tok->multi_line_start != NULL); + // shift the tok_state's location into + // the start of string, and report the error + // from the initial quote character + tok->cur = (char *)current_tok->f_string_start; + tok->cur++; + tok->line_start = current_tok->f_string_multi_line_start; + int start = tok->lineno; + tok->lineno = tok->first_lineno; + + if (current_tok->f_string_quote_size == 3) { + return MAKE_TOKEN(syntaxerror(tok, + "unterminated triple-quoted f-string literal" + " (detected at line %d)", start)); + } + else { + return MAKE_TOKEN(syntaxerror(tok, + "unterminated f-string literal (detected at" + " line %d)", start)); + } + } + + if (c == current_tok->f_string_quote) { + end_quote_size += 1; + continue; + } else { + end_quote_size = 0; + } + + int in_format_spec = current_tok->last_expr_end != -1 && current_tok->bracket_mark_index >= 0; + if (c == '{') { + int peek = tok_nextc(tok); + if (peek != '{' || in_format_spec) { + tok_backup(tok, peek); + tok_backup(tok, c); + current_tok->bracket_mark_index++; + if (current_tok->bracket_mark_index >= MAX_EXPR_NESTING) { + return MAKE_TOKEN(syntaxerror(tok, "f-string: expressions nested too deeply")); + } + *TOK_GET_BRACKET_MARK(current_tok) = current_tok->bracket_stack; + TOK_GET_MODE(tok)->kind = TOK_REGULAR_MODE; + p_start = tok->start; + p_end = tok->cur; + } else { + p_start = tok->start; + p_end = tok->cur - 1; + } + return MAKE_TOKEN(FSTRING_MIDDLE); + } else if (c == '}') { + if (unicode_escape) { + p_start = tok->start; + p_end = tok->cur; + return MAKE_TOKEN(FSTRING_MIDDLE); + } + int peek = tok_nextc(tok); + + // The tokenizer can only be in the format spec if we have already completed the expression + // scanning (indicated by the end of the expression being set) and we are not at the top level + // of the bracket stack (-1 is the top level). Since format specifiers can't legally use double + // brackets, we can bypass it here. + if (peek == '}' && !in_format_spec) { + p_start = tok->start; + p_end = tok->cur - 1; + } else { + tok_backup(tok, peek); + tok_backup(tok, c); + TOK_GET_MODE(tok)->kind = TOK_REGULAR_MODE; + p_start = tok->start; + p_end = tok->cur; + } + return MAKE_TOKEN(FSTRING_MIDDLE); + } else if (c == '\\') { + int peek = tok_nextc(tok); + // Special case when the backslash is right before a curly + // brace. We have to restore and return the control back + // to the loop for the next iteration. + if (peek == '{' || peek == '}') { + if (!current_tok->f_string_raw) { + if (warn_invalid_escape_sequence(tok, peek)) { + return MAKE_TOKEN(ERRORTOKEN); + } + } + tok_backup(tok, peek); + continue; + } + + if (!current_tok->f_string_raw) { + if (peek == 'N') { + /* Handle named unicode escapes (\N{BULLET}) */ + peek = tok_nextc(tok); + if (peek == '{') { + unicode_escape = 1; + } else { + tok_backup(tok, peek); + } + } + } /* else { + skip the escaped character + }*/ + } + } + + // Backup the f-string quotes to emit a final FSTRING_MIDDLE and + // add the quotes to the FSTRING_END in the next tokenizer iteration. + for (int i = 0; i < current_tok->f_string_quote_size; i++) { + tok_backup(tok, current_tok->f_string_quote); + } + p_start = tok->start; + p_end = tok->cur; + return MAKE_TOKEN(FSTRING_MIDDLE); +} + + +static int +tok_get(struct tok_state *tok, struct token *token) +{ + tokenizer_mode *current_tok = TOK_GET_MODE(tok); + if (current_tok->kind == TOK_REGULAR_MODE) { + return tok_get_normal_mode(tok, current_tok, token); + } else { + return tok_get_fstring_mode(tok, current_tok, token); + } +} + int _PyTokenizer_Get(struct tok_state *tok, struct token *token) { diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h index 16a94d5f51d664b..f67e0cd1ac2f4a1 100644 --- a/Parser/tokenizer.h +++ b/Parser/tokenizer.h @@ -33,6 +33,31 @@ struct token { const char *start, *end; }; +enum tokenizer_mode_kind_t { + TOK_REGULAR_MODE, + TOK_FSTRING_MODE, +}; + +#define MAX_EXPR_NESTING 3 + +typedef struct _tokenizer_mode { + enum tokenizer_mode_kind_t kind; + + int bracket_stack; + int bracket_mark[MAX_EXPR_NESTING]; + int bracket_mark_index; + + char f_string_quote; + int f_string_quote_size; + int f_string_raw; + const char* f_string_start; + const char* f_string_multi_line_start; + + Py_ssize_t last_expr_size; + Py_ssize_t last_expr_end; + char* last_expr_buffer; +} tokenizer_mode; + /* Tokenizer state */ struct tok_state { /* Input state; buf <= cur <= inp <= end */ @@ -93,6 +118,10 @@ struct tok_state { /* How to proceed when asked for a new token in interactive mode */ enum interactive_underflow_t interactive_underflow; int report_warnings; + // TODO: Factor this into its own thing + tokenizer_mode tok_mode_stack[MAXLEVEL]; + int tok_mode_stack_index; + int tok_report_warnings; #ifdef Py_DEBUG int debug; #endif diff --git a/Programs/test_frozenmain.h b/Programs/test_frozenmain.h index 4ac472a88261e1a..cd9d1032629f49b 100644 --- a/Programs/test_frozenmain.h +++ b/Programs/test_frozenmain.h @@ -27,12 +27,12 @@ unsigned char M_test_frozenmain[] = { 218,3,107,101,121,169,0,243,0,0,0,0,250,18,116,101, 115,116,95,102,114,111,122,101,110,109,97,105,110,46,112,121, 250,8,60,109,111,100,117,108,101,62,114,18,0,0,0,1, - 0,0,0,115,100,0,0,0,240,3,1,1,1,243,8,0, + 0,0,0,115,102,0,0,0,240,3,1,1,1,243,8,0, 1,11,219,0,24,225,0,5,208,6,26,212,0,27,217,0, 5,128,106,144,35,151,40,145,40,212,0,27,216,9,38,208, 9,26,215,9,38,209,9,38,211,9,40,168,24,209,9,50, 128,6,240,2,6,12,2,242,0,7,1,42,128,67,241,14, - 0,5,10,208,10,40,144,67,209,10,40,152,54,160,35,153, - 59,209,10,40,213,4,41,241,15,7,1,42,114,16,0,0, - 0, + 0,5,10,136,71,144,67,144,53,152,2,152,54,160,35,153, + 59,152,45,208,10,40,213,4,41,241,15,7,1,42,114,16, + 0,0,0, }; diff --git a/Python/Python-tokenize.c b/Python/Python-tokenize.c index 8daa9877254e2e3..416dc5971bca3db 100644 --- a/Python/Python-tokenize.c +++ b/Python/Python-tokenize.c @@ -86,8 +86,8 @@ tokenizeriter_next(tokenizeriterobject *it) Py_DECREF(str); return NULL; } - const char *line_start = type == STRING ? it->tok->multi_line_start : it->tok->line_start; - int lineno = type == STRING ? it->tok->first_lineno : it->tok->lineno; + const char *line_start = ISSTRINGLIT(type) ? it->tok->multi_line_start : it->tok->line_start; + int lineno = ISSTRINGLIT(type) ? it->tok->first_lineno : it->tok->lineno; int end_lineno = it->tok->lineno; int col_offset = -1; int end_col_offset = -1; diff --git a/Tools/build/generate_token.py b/Tools/build/generate_token.py index fc12835b7762ad5..3bd307c17338673 100755 --- a/Tools/build/generate_token.py +++ b/Tools/build/generate_token.py @@ -80,6 +80,8 @@ def update_file(file, content): (x) == NEWLINE || \\ (x) == INDENT || \\ (x) == DEDENT) +#define ISSTRINGLIT(x) ((x) == STRING || \\ + (x) == FSTRING_MIDDLE) // Symbols exported for test_peg_generator diff --git a/Tools/peg_generator/pegen/c_generator.py b/Tools/peg_generator/pegen/c_generator.py index e72ce7afdc4796f..f57b6275f671d39 100644 --- a/Tools/peg_generator/pegen/c_generator.py +++ b/Tools/peg_generator/pegen/c_generator.py @@ -68,6 +68,7 @@ class NodeTypes(Enum): KEYWORD = 4 SOFT_KEYWORD = 5 CUT_OPERATOR = 6 + F_STRING_CHUNK = 7 BASE_NODETYPES = { From 5f7d68e48de19c5c3a241d7126fc2af227c2f74a Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 19 Apr 2023 11:53:34 -0600 Subject: [PATCH 21/82] gh-102856: Skip test_mismatched_parens in WASI builds (#103633) --- Lib/test/test_fstring.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index f571233da07b78d..0e71de85f16b9c0 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -13,6 +13,7 @@ import types import decimal import unittest +from test import support from test.support.os_helper import temp_cwd from test.support.script_helper import assert_python_failure @@ -536,6 +537,7 @@ def test_unterminated_string(self): r"""f'{("x}'""", ]) + @unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI") def test_mismatched_parens(self): self.assertAllRaise(SyntaxError, r"closing parenthesis '\}' " r"does not match opening parenthesis '\('", From d4aa8578b18d12380c841de96e8f80cac52bf61a Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 19 Apr 2023 14:51:31 -0600 Subject: [PATCH 22/82] gh-102856: Clean some of the PEP 701 tokenizer implementation (#103634) --- Parser/tokenizer.c | 136 ++++++++++++++++++++++----------------------- Parser/tokenizer.h | 5 +- 2 files changed, 67 insertions(+), 74 deletions(-) diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 1dfd2d6e5e1717c..f992e55dcac4887 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -11,11 +11,6 @@ #include "tokenizer.h" #include "errcode.h" -#include "unicodeobject.h" -#include "bytesobject.h" -#include "fileobject.h" -#include "abstract.h" - /* Alternate tab spacing */ #define ALTTABSIZE 1 @@ -43,6 +38,8 @@ tok->lineno++; \ tok->col_offset = 0; +#define INSIDE_FSTRING(tok) (tok->tok_mode_stack_index > 0) +#define INSIDE_FSTRING_EXPR(tok) (tok->curly_bracket_expr_start_depth >= 0) #ifdef Py_DEBUG static inline tokenizer_mode* TOK_GET_MODE(struct tok_state* tok) { assert(tok->tok_mode_stack_index >= 0); @@ -54,15 +51,9 @@ static inline tokenizer_mode* TOK_NEXT_MODE(struct tok_state* tok) { assert(tok->tok_mode_stack_index < MAXLEVEL); return &(tok->tok_mode_stack[++tok->tok_mode_stack_index]); } -static inline int *TOK_GET_BRACKET_MARK(tokenizer_mode* mode) { - assert(mode->bracket_mark_index >= 0); - assert(mode->bracket_mark_index < MAX_EXPR_NESTING); - return &(mode->bracket_mark[mode->bracket_mark_index]); -} #else #define TOK_GET_MODE(tok) (&(tok->tok_mode_stack[tok->tok_mode_stack_index])) #define TOK_NEXT_MODE(tok) (&(tok->tok_mode_stack[++tok->tok_mode_stack_index])) -#define TOK_GET_BRACKET_MARK(mode) (&(mode->bracket_mark[mode->bracket_mark_index])) #endif /* Forward */ @@ -398,20 +389,7 @@ update_fstring_expr(struct tok_state *tok, char cur) tokenizer_mode *tok_mode = TOK_GET_MODE(tok); switch (cur) { - case '{': - if (tok_mode->last_expr_buffer != NULL) { - PyMem_Free(tok_mode->last_expr_buffer); - } - tok_mode->last_expr_buffer = PyMem_Malloc(size); - if (tok_mode->last_expr_buffer == NULL) { - tok->done = E_NOMEM; - return 0; - } - tok_mode->last_expr_size = size; - tok_mode->last_expr_end = -1; - strncpy(tok_mode->last_expr_buffer, tok->cur, size); - break; - case 0: + case 0: if (!tok_mode->last_expr_buffer || tok_mode->last_expr_end >= 0) { return 1; } @@ -421,13 +399,24 @@ update_fstring_expr(struct tok_state *tok, char cur) ); if (new_buffer == NULL) { PyMem_Free(tok_mode->last_expr_buffer); - tok->done = E_NOMEM; - return 0; + goto error; } tok_mode->last_expr_buffer = new_buffer; strncpy(tok_mode->last_expr_buffer + tok_mode->last_expr_size, tok->cur, size); tok_mode->last_expr_size += size; break; + case '{': + if (tok_mode->last_expr_buffer != NULL) { + PyMem_Free(tok_mode->last_expr_buffer); + } + tok_mode->last_expr_buffer = PyMem_Malloc(size); + if (tok_mode->last_expr_buffer == NULL) { + goto error; + } + tok_mode->last_expr_size = size; + tok_mode->last_expr_end = -1; + strncpy(tok_mode->last_expr_buffer, tok->cur, size); + break; case '}': case '!': case ':': @@ -435,9 +424,13 @@ update_fstring_expr(struct tok_state *tok, char cur) tok_mode->last_expr_end = strlen(tok->start); } break; + default: + Py_UNREACHABLE(); } - return 1; +error: + tok->done = E_NOMEM; + return 0; } static void @@ -1766,7 +1759,7 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t /* Skip comment, unless it's a type comment */ if (c == '#') { - if (tok->tok_mode_stack_index > 0) { + if (INSIDE_FSTRING(tok)) { return MAKE_TOKEN(syntaxerror(tok, "f-string expression part cannot include '#'")); } @@ -2208,32 +2201,31 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t p_start = tok->start; p_end = tok->cur; - tokenizer_mode *current_tok = TOK_NEXT_MODE(tok); - current_tok->kind = TOK_FSTRING_MODE; - current_tok->f_string_quote = quote; - current_tok->f_string_quote_size = quote_size; - current_tok->f_string_start = tok->start; - current_tok->f_string_multi_line_start = tok->line_start; - current_tok->last_expr_buffer = NULL; - current_tok->last_expr_size = 0; - current_tok->last_expr_end = -1; + tokenizer_mode *the_current_tok = TOK_NEXT_MODE(tok); + the_current_tok->kind = TOK_FSTRING_MODE; + the_current_tok->f_string_quote = quote; + the_current_tok->f_string_quote_size = quote_size; + the_current_tok->f_string_start = tok->start; + the_current_tok->f_string_multi_line_start = tok->line_start; + the_current_tok->last_expr_buffer = NULL; + the_current_tok->last_expr_size = 0; + the_current_tok->last_expr_end = -1; switch (*tok->start) { case 'F': case 'f': - current_tok->f_string_raw = tolower(*(tok->start + 1)) == 'r'; + the_current_tok->f_string_raw = tolower(*(tok->start + 1)) == 'r'; break; case 'R': case 'r': - current_tok->f_string_raw = 1; + the_current_tok->f_string_raw = 1; break; default: Py_UNREACHABLE(); } - current_tok->bracket_stack = 0; - current_tok->bracket_mark[0] = 0; - current_tok->bracket_mark_index = -1; + the_current_tok->curly_bracket_depth = 0; + the_current_tok->curly_bracket_expr_start_depth = -1; return MAKE_TOKEN(FSTRING_START); } @@ -2282,15 +2274,15 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t int start = tok->lineno; tok->lineno = tok->first_lineno; - if (tok->tok_mode_stack_index > 0) { + if (INSIDE_FSTRING(tok)) { /* When we are in an f-string, before raising the * unterminated string literal error, check whether * does the initial quote matches with f-strings quotes * and if it is, then this must be a missing '}' token * so raise the proper error */ - tokenizer_mode *current_tok = TOK_GET_MODE(tok); - if (current_tok->f_string_quote == quote && - current_tok->f_string_quote_size == quote_size) { + tokenizer_mode *the_current_tok = TOK_GET_MODE(tok); + if (the_current_tok->f_string_quote == quote && + the_current_tok->f_string_quote_size == quote_size) { return MAKE_TOKEN(syntaxerror(tok, "f-string: expecting '}'", start)); } } @@ -2339,18 +2331,17 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t /* Punctuation character */ int is_punctuation = (c == ':' || c == '}' || c == '!' || c == '{'); - if (is_punctuation && tok->tok_mode_stack_index > 0 && current_tok->bracket_mark_index >= 0) { - int mark = *TOK_GET_BRACKET_MARK(current_tok); - /* This code block gets executed before the bracket_stack is incremented + if (is_punctuation && INSIDE_FSTRING(tok) && INSIDE_FSTRING_EXPR(current_tok)) { + /* This code block gets executed before the curly_bracket_depth is incremented * by the `{` case, so for ensuring that we are on the 0th level, we need * to adjust it manually */ - int cursor = current_tok->bracket_stack - (c != '{'); + int cursor = current_tok->curly_bracket_depth - (c != '{'); if (cursor == 0 && !update_fstring_expr(tok, c)) { return MAKE_TOKEN(ENDMARKER); } - if (c == ':' && cursor == mark) { + if (c == ':' && cursor == current_tok->curly_bracket_expr_start_depth) { current_tok->kind = TOK_FSTRING_MODE; p_start = tok->start; p_end = tok->cur; @@ -2390,16 +2381,15 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t tok->parenlinenostack[tok->level] = tok->lineno; tok->parencolstack[tok->level] = (int)(tok->start - tok->line_start); tok->level++; - - if (tok->tok_mode_stack_index > 0) { - current_tok->bracket_stack++; + if (INSIDE_FSTRING(tok)) { + current_tok->curly_bracket_depth++; } break; case ')': case ']': case '}': if (!tok->level) { - if (tok->tok_mode_stack_index > 0 && !current_tok->bracket_stack && c == '}') { + if (INSIDE_FSTRING(tok) && !current_tok->curly_bracket_depth && c == '}') { return MAKE_TOKEN(syntaxerror(tok, "f-string: single '}' is not allowed")); } return MAKE_TOKEN(syntaxerror(tok, "unmatched '%c'", c)); @@ -2415,10 +2405,10 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t nested expression, then instead of matching a different syntactical construct with it; we'll throw an unmatched parentheses error. */ - if (tok->tok_mode_stack_index > 0 && opening == '{') { - assert(current_tok->bracket_stack >= 0); - int previous_bracket = current_tok->bracket_stack - 1; - if (previous_bracket == *TOK_GET_BRACKET_MARK(current_tok)) { + if (INSIDE_FSTRING(tok) && opening == '{') { + assert(current_tok->curly_bracket_depth >= 0); + int previous_bracket = current_tok->curly_bracket_depth - 1; + if (previous_bracket == current_tok->curly_bracket_expr_start_depth) { return MAKE_TOKEN(syntaxerror(tok, "f-string: unmatched '%c'", c)); } } @@ -2436,14 +2426,16 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t } } - if (tok->tok_mode_stack_index > 0) { - current_tok->bracket_stack--; - if (c == '}' && current_tok->bracket_stack == *TOK_GET_BRACKET_MARK(current_tok)) { - current_tok->bracket_mark_index--; + if (INSIDE_FSTRING(tok)) { + current_tok->curly_bracket_depth--; + if (c == '}' && current_tok->curly_bracket_depth == current_tok->curly_bracket_expr_start_depth) { + current_tok->curly_bracket_expr_start_depth--; current_tok->kind = TOK_FSTRING_MODE; } } break; + default: + break; } if (!Py_UNICODE_ISPRINTABLE(c)) { @@ -2479,11 +2471,10 @@ tok_get_fstring_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct if ((start_char == '{' && peek1 != '{') || (start_char == '}' && peek1 != '}')) { if (start_char == '{') { - current_tok->bracket_mark_index++; - if (current_tok->bracket_mark_index >= MAX_EXPR_NESTING) { + current_tok->curly_bracket_expr_start_depth++; + if (current_tok->curly_bracket_expr_start_depth >= MAX_EXPR_NESTING) { return MAKE_TOKEN(syntaxerror(tok, "f-string: expressions nested too deeply")); } - *TOK_GET_BRACKET_MARK(current_tok) = current_tok->bracket_stack; } TOK_GET_MODE(tok)->kind = TOK_REGULAR_MODE; return tok_get_normal_mode(tok, current_tok, token); @@ -2544,17 +2535,20 @@ tok_get_fstring_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct end_quote_size = 0; } - int in_format_spec = current_tok->last_expr_end != -1 && current_tok->bracket_mark_index >= 0; + int in_format_spec = ( + current_tok->last_expr_end != -1 + && + INSIDE_FSTRING_EXPR(current_tok) + ); if (c == '{') { int peek = tok_nextc(tok); if (peek != '{' || in_format_spec) { tok_backup(tok, peek); tok_backup(tok, c); - current_tok->bracket_mark_index++; - if (current_tok->bracket_mark_index >= MAX_EXPR_NESTING) { + current_tok->curly_bracket_expr_start_depth++; + if (current_tok->curly_bracket_expr_start_depth >= MAX_EXPR_NESTING) { return MAKE_TOKEN(syntaxerror(tok, "f-string: expressions nested too deeply")); } - *TOK_GET_BRACKET_MARK(current_tok) = current_tok->bracket_stack; TOK_GET_MODE(tok)->kind = TOK_REGULAR_MODE; p_start = tok->start; p_end = tok->cur; diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h index f67e0cd1ac2f4a1..b75e4e8293d3d60 100644 --- a/Parser/tokenizer.h +++ b/Parser/tokenizer.h @@ -43,9 +43,8 @@ enum tokenizer_mode_kind_t { typedef struct _tokenizer_mode { enum tokenizer_mode_kind_t kind; - int bracket_stack; - int bracket_mark[MAX_EXPR_NESTING]; - int bracket_mark_index; + int curly_bracket_depth; + int curly_bracket_expr_start_depth; char f_string_quote; int f_string_quote_size; From 2b1260c55763a952c57b92fe0f274b6ee79efd05 Mon Sep 17 00:00:00 2001 From: Alexander Belopolsky Date: Wed, 19 Apr 2023 17:02:29 -0400 Subject: [PATCH 23/82] gh-83861: Fix datetime.astimezone() method (GH-101545) --- Lib/datetime.py | 5 +++++ Lib/test/datetimetester.py | 4 ++++ ...23-02-06-16-45-18.gh-issue-83861.mMbIU3.rst | 4 ++++ Modules/_datetimemodule.c | 18 ++++++++++++++++-- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-02-06-16-45-18.gh-issue-83861.mMbIU3.rst diff --git a/Lib/datetime.py b/Lib/datetime.py index 637144637485bcd..09a2d2d5381c341 100644 --- a/Lib/datetime.py +++ b/Lib/datetime.py @@ -1965,6 +1965,11 @@ def replace(self, year=None, month=None, day=None, hour=None, def _local_timezone(self): if self.tzinfo is None: ts = self._mktime() + # Detect gap + ts2 = self.replace(fold=1-self.fold)._mktime() + if ts2 != ts: # This happens in a gap or a fold + if (ts2 > ts) == self.fold: + ts = ts2 else: ts = (self - _EPOCH) // timedelta(seconds=1) localtm = _time.localtime(ts) diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index 570f803918c1ef5..477f16f1841f626 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -6212,6 +6212,10 @@ def test_system_transitions(self): ts1 = dt.replace(fold=1).timestamp() self.assertEqual(ts0, s0 + ss / 2) self.assertEqual(ts1, s0 - ss / 2) + # gh-83861 + utc0 = dt.astimezone(timezone.utc) + utc1 = dt.replace(fold=1).astimezone(timezone.utc) + self.assertEqual(utc0, utc1 + timedelta(0, ss)) finally: if TZ is None: del os.environ['TZ'] diff --git a/Misc/NEWS.d/next/Library/2023-02-06-16-45-18.gh-issue-83861.mMbIU3.rst b/Misc/NEWS.d/next/Library/2023-02-06-16-45-18.gh-issue-83861.mMbIU3.rst new file mode 100644 index 000000000000000..e85e7a4ff2e73ab --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-02-06-16-45-18.gh-issue-83861.mMbIU3.rst @@ -0,0 +1,4 @@ +Fix datetime.astimezone method return value when invoked on a naive datetime +instance that represents local time falling in a timezone transition gap. +PEP 495 requires that instances with fold=1 produce earlier times than those +with fold=0 in this case. diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index eda8c5610ba659e..f317dc14e15bf1e 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -6153,17 +6153,31 @@ local_to_seconds(int year, int month, int day, static PyObject * local_timezone_from_local(PyDateTime_DateTime *local_dt) { - long long seconds; + long long seconds, seconds2; time_t timestamp; + int fold = DATE_GET_FOLD(local_dt); seconds = local_to_seconds(GET_YEAR(local_dt), GET_MONTH(local_dt), GET_DAY(local_dt), DATE_GET_HOUR(local_dt), DATE_GET_MINUTE(local_dt), DATE_GET_SECOND(local_dt), - DATE_GET_FOLD(local_dt)); + fold); if (seconds == -1) return NULL; + seconds2 = local_to_seconds(GET_YEAR(local_dt), + GET_MONTH(local_dt), + GET_DAY(local_dt), + DATE_GET_HOUR(local_dt), + DATE_GET_MINUTE(local_dt), + DATE_GET_SECOND(local_dt), + !fold); + if (seconds2 == -1) + return NULL; + /* Detect gap */ + if (seconds2 != seconds && (seconds2 > seconds) == fold) + seconds = seconds2; + /* XXX: add bounds check */ timestamp = seconds - epoch; return local_timezone_from_timestamp(timestamp); From 6be7aee18c5b8e639103df951d0d277f4b46f902 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Wed, 19 Apr 2023 16:09:35 -0600 Subject: [PATCH 24/82] gh-98040: Move the Single-Phase Init Tests Out of test_imp (gh-102561) I recently added some tests to test_imp, but @warsaw is removing that file in gh-98573. The tests are worth keeping so here I'm moving them to test_import. --- Lib/test/test_imp.py | 840 ------------------------------ Lib/test/test_import/__init__.py | 868 ++++++++++++++++++++++++++++++- 2 files changed, 865 insertions(+), 843 deletions(-) diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py index 03e3adba221e57d..80abc720c3251a9 100644 --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -1,5 +1,4 @@ import gc -import json import importlib import importlib.util import os @@ -11,28 +10,15 @@ from test.support import os_helper from test.support import script_helper from test.support import warnings_helper -import textwrap -import types import unittest import warnings imp = warnings_helper.import_deprecated('imp') import _imp -import _testinternalcapi -try: - import _xxsubinterpreters as _interpreters -except ModuleNotFoundError: - _interpreters = None OS_PATH_NAME = os.path.__name__ -def requires_subinterpreters(meth): - """Decorator to skip a test if subinterpreters are not supported.""" - return unittest.skipIf(_interpreters is None, - 'subinterpreters required')(meth) - - def requires_load_dynamic(meth): """Decorator to skip a test if not running under CPython or lacking imp.load_dynamic().""" @@ -41,169 +27,6 @@ def requires_load_dynamic(meth): 'imp.load_dynamic() required')(meth) -class ModuleSnapshot(types.SimpleNamespace): - """A representation of a module for testing. - - Fields: - - * id - the module's object ID - * module - the actual module or an adequate substitute - * __file__ - * __spec__ - * name - * origin - * ns - a copy (dict) of the module's __dict__ (or None) - * ns_id - the object ID of the module's __dict__ - * cached - the sys.modules[mod.__spec__.name] entry (or None) - * cached_id - the object ID of the sys.modules entry (or None) - - In cases where the value is not available (e.g. due to serialization), - the value will be None. - """ - _fields = tuple('id module ns ns_id cached cached_id'.split()) - - @classmethod - def from_module(cls, mod): - name = mod.__spec__.name - cached = sys.modules.get(name) - return cls( - id=id(mod), - module=mod, - ns=types.SimpleNamespace(**mod.__dict__), - ns_id=id(mod.__dict__), - cached=cached, - cached_id=id(cached), - ) - - SCRIPT = textwrap.dedent(''' - {imports} - - name = {name!r} - - {prescript} - - mod = {name} - - {body} - - {postscript} - ''') - IMPORTS = textwrap.dedent(''' - import sys - ''').strip() - SCRIPT_BODY = textwrap.dedent(''' - # Capture the snapshot data. - cached = sys.modules.get(name) - snapshot = dict( - id=id(mod), - module=dict( - __file__=mod.__file__, - __spec__=dict( - name=mod.__spec__.name, - origin=mod.__spec__.origin, - ), - ), - ns=None, - ns_id=id(mod.__dict__), - cached=None, - cached_id=id(cached) if cached else None, - ) - ''').strip() - CLEANUP_SCRIPT = textwrap.dedent(''' - # Clean up the module. - sys.modules.pop(name, None) - ''').strip() - - @classmethod - def build_script(cls, name, *, - prescript=None, - import_first=False, - postscript=None, - postcleanup=False, - ): - if postcleanup is True: - postcleanup = cls.CLEANUP_SCRIPT - elif isinstance(postcleanup, str): - postcleanup = textwrap.dedent(postcleanup).strip() - postcleanup = cls.CLEANUP_SCRIPT + os.linesep + postcleanup - else: - postcleanup = '' - prescript = textwrap.dedent(prescript).strip() if prescript else '' - postscript = textwrap.dedent(postscript).strip() if postscript else '' - - if postcleanup: - if postscript: - postscript = postscript + os.linesep * 2 + postcleanup - else: - postscript = postcleanup - - if import_first: - prescript += textwrap.dedent(f''' - - # Now import the module. - assert name not in sys.modules - import {name}''') - - return cls.SCRIPT.format( - imports=cls.IMPORTS.strip(), - name=name, - prescript=prescript.strip(), - body=cls.SCRIPT_BODY.strip(), - postscript=postscript, - ) - - @classmethod - def parse(cls, text): - raw = json.loads(text) - mod = raw['module'] - mod['__spec__'] = types.SimpleNamespace(**mod['__spec__']) - raw['module'] = types.SimpleNamespace(**mod) - return cls(**raw) - - @classmethod - def from_subinterp(cls, name, interpid=None, *, pipe=None, **script_kwds): - if pipe is not None: - return cls._from_subinterp(name, interpid, pipe, script_kwds) - pipe = os.pipe() - try: - return cls._from_subinterp(name, interpid, pipe, script_kwds) - finally: - r, w = pipe - os.close(r) - os.close(w) - - @classmethod - def _from_subinterp(cls, name, interpid, pipe, script_kwargs): - r, w = pipe - - # Build the script. - postscript = textwrap.dedent(f''' - # Send the result over the pipe. - import json - import os - os.write({w}, json.dumps(snapshot).encode()) - - ''') - _postscript = script_kwargs.get('postscript') - if _postscript: - _postscript = textwrap.dedent(_postscript).lstrip() - postscript += _postscript - script_kwargs['postscript'] = postscript.strip() - script = cls.build_script(name, **script_kwargs) - - # Run the script. - if interpid is None: - ret = support.run_in_subinterp(script) - if ret != 0: - raise AssertionError(f'{ret} != 0') - else: - _interpreters.run_string(interpid, script) - - # Parse the results. - text = os.read(r, 1000) - return cls.parse(text.decode()) - - class LockTests(unittest.TestCase): """Very basic test of import lock functions.""" @@ -620,669 +443,6 @@ def check_get_builtins(): check_get_builtins() -class TestSinglePhaseSnapshot(ModuleSnapshot): - - @classmethod - def from_module(cls, mod): - self = super().from_module(mod) - self.summed = mod.sum(1, 2) - self.lookedup = mod.look_up_self() - self.lookedup_id = id(self.lookedup) - self.state_initialized = mod.state_initialized() - if hasattr(mod, 'initialized_count'): - self.init_count = mod.initialized_count() - return self - - SCRIPT_BODY = ModuleSnapshot.SCRIPT_BODY + textwrap.dedent(f''' - snapshot['module'].update(dict( - int_const=mod.int_const, - str_const=mod.str_const, - _module_initialized=mod._module_initialized, - )) - snapshot.update(dict( - summed=mod.sum(1, 2), - lookedup_id=id(mod.look_up_self()), - state_initialized=mod.state_initialized(), - init_count=mod.initialized_count(), - has_spam=hasattr(mod, 'spam'), - spam=getattr(mod, 'spam', None), - )) - ''').rstrip() - - @classmethod - def parse(cls, text): - self = super().parse(text) - if not self.has_spam: - del self.spam - del self.has_spam - return self - - -@requires_load_dynamic -class SinglephaseInitTests(unittest.TestCase): - - NAME = '_testsinglephase' - - @classmethod - def setUpClass(cls): - if '-R' in sys.argv or '--huntrleaks' in sys.argv: - # /~https://github.com/python/cpython/issues/102251 - raise unittest.SkipTest('unresolved refleaks (see gh-102251)') - fileobj, filename, _ = imp.find_module(cls.NAME) - fileobj.close() - cls.FILE = filename - - # Start fresh. - cls.clean_up() - - def tearDown(self): - # Clean up the module. - self.clean_up() - - @classmethod - def clean_up(cls): - name = cls.NAME - filename = cls.FILE - if name in sys.modules: - if hasattr(sys.modules[name], '_clear_globals'): - assert sys.modules[name].__file__ == filename - sys.modules[name]._clear_globals() - del sys.modules[name] - # Clear all internally cached data for the extension. - _testinternalcapi.clear_extension(name, filename) - - ######################### - # helpers - - def add_module_cleanup(self, name): - def clean_up(): - # Clear all internally cached data for the extension. - _testinternalcapi.clear_extension(name, self.FILE) - self.addCleanup(clean_up) - - def load(self, name): - try: - already_loaded = self.already_loaded - except AttributeError: - already_loaded = self.already_loaded = {} - assert name not in already_loaded - mod = imp.load_dynamic(name, self.FILE) - self.assertNotIn(mod, already_loaded.values()) - already_loaded[name] = mod - return types.SimpleNamespace( - name=name, - module=mod, - snapshot=TestSinglePhaseSnapshot.from_module(mod), - ) - - def re_load(self, name, mod): - assert sys.modules[name] is mod - assert mod.__dict__ == mod.__dict__ - reloaded = imp.load_dynamic(name, self.FILE) - return types.SimpleNamespace( - name=name, - module=reloaded, - snapshot=TestSinglePhaseSnapshot.from_module(reloaded), - ) - - # subinterpreters - - def add_subinterpreter(self): - interpid = _interpreters.create(isolated=False) - _interpreters.run_string(interpid, textwrap.dedent(''' - import sys - import _testinternalcapi - ''')) - def clean_up(): - _interpreters.run_string(interpid, textwrap.dedent(f''' - name = {self.NAME!r} - if name in sys.modules: - sys.modules[name]._clear_globals() - _testinternalcapi.clear_extension(name, {self.FILE!r}) - ''')) - _interpreters.destroy(interpid) - self.addCleanup(clean_up) - return interpid - - def import_in_subinterp(self, interpid=None, *, - postscript=None, - postcleanup=False, - ): - name = self.NAME - - if postcleanup: - import_ = 'import _testinternalcapi' if interpid is None else '' - postcleanup = f''' - {import_} - mod._clear_globals() - _testinternalcapi.clear_extension(name, {self.FILE!r}) - ''' - - try: - pipe = self._pipe - except AttributeError: - r, w = pipe = self._pipe = os.pipe() - self.addCleanup(os.close, r) - self.addCleanup(os.close, w) - - snapshot = TestSinglePhaseSnapshot.from_subinterp( - name, - interpid, - pipe=pipe, - import_first=True, - postscript=postscript, - postcleanup=postcleanup, - ) - - return types.SimpleNamespace( - name=name, - module=None, - snapshot=snapshot, - ) - - # checks - - def check_common(self, loaded): - isolated = False - - mod = loaded.module - if not mod: - # It came from a subinterpreter. - isolated = True - mod = loaded.snapshot.module - # mod.__name__ might not match, but the spec will. - self.assertEqual(mod.__spec__.name, loaded.name) - self.assertEqual(mod.__file__, self.FILE) - self.assertEqual(mod.__spec__.origin, self.FILE) - if not isolated: - self.assertTrue(issubclass(mod.error, Exception)) - self.assertEqual(mod.int_const, 1969) - self.assertEqual(mod.str_const, 'something different') - self.assertIsInstance(mod._module_initialized, float) - self.assertGreater(mod._module_initialized, 0) - - snap = loaded.snapshot - self.assertEqual(snap.summed, 3) - if snap.state_initialized is not None: - self.assertIsInstance(snap.state_initialized, float) - self.assertGreater(snap.state_initialized, 0) - if isolated: - # The "looked up" module is interpreter-specific - # (interp->imports.modules_by_index was set for the module). - self.assertEqual(snap.lookedup_id, snap.id) - self.assertEqual(snap.cached_id, snap.id) - with self.assertRaises(AttributeError): - snap.spam - else: - self.assertIs(snap.lookedup, mod) - self.assertIs(snap.cached, mod) - - def check_direct(self, loaded): - # The module has its own PyModuleDef, with a matching name. - self.assertEqual(loaded.module.__name__, loaded.name) - self.assertIs(loaded.snapshot.lookedup, loaded.module) - - def check_indirect(self, loaded, orig): - # The module re-uses another's PyModuleDef, with a different name. - assert orig is not loaded.module - assert orig.__name__ != loaded.name - self.assertNotEqual(loaded.module.__name__, loaded.name) - self.assertIs(loaded.snapshot.lookedup, loaded.module) - - def check_basic(self, loaded, expected_init_count): - # m_size == -1 - # The module loads fresh the first time and copies m_copy after. - snap = loaded.snapshot - self.assertIsNot(snap.state_initialized, None) - self.assertIsInstance(snap.init_count, int) - self.assertGreater(snap.init_count, 0) - self.assertEqual(snap.init_count, expected_init_count) - - def check_with_reinit(self, loaded): - # m_size >= 0 - # The module loads fresh every time. - pass - - def check_fresh(self, loaded): - """ - The module had not been loaded before (at least since fully reset). - """ - snap = loaded.snapshot - # The module's init func was run. - # A copy of the module's __dict__ was stored in def->m_base.m_copy. - # The previous m_copy was deleted first. - # _PyRuntime.imports.extensions was set. - self.assertEqual(snap.init_count, 1) - # The global state was initialized. - # The module attrs were initialized from that state. - self.assertEqual(snap.module._module_initialized, - snap.state_initialized) - - def check_semi_fresh(self, loaded, base, prev): - """ - The module had been loaded before and then reset - (but the module global state wasn't). - """ - snap = loaded.snapshot - # The module's init func was run again. - # A copy of the module's __dict__ was stored in def->m_base.m_copy. - # The previous m_copy was deleted first. - # The module globals did not get reset. - self.assertNotEqual(snap.id, base.snapshot.id) - self.assertNotEqual(snap.id, prev.snapshot.id) - self.assertEqual(snap.init_count, prev.snapshot.init_count + 1) - # The global state was updated. - # The module attrs were initialized from that state. - self.assertEqual(snap.module._module_initialized, - snap.state_initialized) - self.assertNotEqual(snap.state_initialized, - base.snapshot.state_initialized) - self.assertNotEqual(snap.state_initialized, - prev.snapshot.state_initialized) - - def check_copied(self, loaded, base): - """ - The module had been loaded before and never reset. - """ - snap = loaded.snapshot - # The module's init func was not run again. - # The interpreter copied m_copy, as set by the other interpreter, - # with objects owned by the other interpreter. - # The module globals did not get reset. - self.assertNotEqual(snap.id, base.snapshot.id) - self.assertEqual(snap.init_count, base.snapshot.init_count) - # The global state was not updated since the init func did not run. - # The module attrs were not directly initialized from that state. - # The state and module attrs still match the previous loading. - self.assertEqual(snap.module._module_initialized, - snap.state_initialized) - self.assertEqual(snap.state_initialized, - base.snapshot.state_initialized) - - ######################### - # the tests - - def test_cleared_globals(self): - loaded = self.load(self.NAME) - _testsinglephase = loaded.module - init_before = _testsinglephase.state_initialized() - - _testsinglephase._clear_globals() - init_after = _testsinglephase.state_initialized() - init_count = _testsinglephase.initialized_count() - - self.assertGreater(init_before, 0) - self.assertEqual(init_after, 0) - self.assertEqual(init_count, -1) - - def test_variants(self): - # Exercise the most meaningful variants described in Python/import.c. - self.maxDiff = None - - # Check the "basic" module. - - name = self.NAME - expected_init_count = 1 - with self.subTest(name): - loaded = self.load(name) - - self.check_common(loaded) - self.check_direct(loaded) - self.check_basic(loaded, expected_init_count) - basic = loaded.module - - # Check its indirect variants. - - name = f'{self.NAME}_basic_wrapper' - self.add_module_cleanup(name) - expected_init_count += 1 - with self.subTest(name): - loaded = self.load(name) - - self.check_common(loaded) - self.check_indirect(loaded, basic) - self.check_basic(loaded, expected_init_count) - - # Currently PyState_AddModule() always replaces the cached module. - self.assertIs(basic.look_up_self(), loaded.module) - self.assertEqual(basic.initialized_count(), expected_init_count) - - # The cached module shouldn't change after this point. - basic_lookedup = loaded.module - - # Check its direct variant. - - name = f'{self.NAME}_basic_copy' - self.add_module_cleanup(name) - expected_init_count += 1 - with self.subTest(name): - loaded = self.load(name) - - self.check_common(loaded) - self.check_direct(loaded) - self.check_basic(loaded, expected_init_count) - - # This should change the cached module for _testsinglephase. - self.assertIs(basic.look_up_self(), basic_lookedup) - self.assertEqual(basic.initialized_count(), expected_init_count) - - # Check the non-basic variant that has no state. - - name = f'{self.NAME}_with_reinit' - self.add_module_cleanup(name) - with self.subTest(name): - loaded = self.load(name) - - self.check_common(loaded) - self.assertIs(loaded.snapshot.state_initialized, None) - self.check_direct(loaded) - self.check_with_reinit(loaded) - - # This should change the cached module for _testsinglephase. - self.assertIs(basic.look_up_self(), basic_lookedup) - self.assertEqual(basic.initialized_count(), expected_init_count) - - # Check the basic variant that has state. - - name = f'{self.NAME}_with_state' - self.add_module_cleanup(name) - with self.subTest(name): - loaded = self.load(name) - - self.check_common(loaded) - self.assertIsNot(loaded.snapshot.state_initialized, None) - self.check_direct(loaded) - self.check_with_reinit(loaded) - - # This should change the cached module for _testsinglephase. - self.assertIs(basic.look_up_self(), basic_lookedup) - self.assertEqual(basic.initialized_count(), expected_init_count) - - def test_basic_reloaded(self): - # m_copy is copied into the existing module object. - # Global state is not changed. - self.maxDiff = None - - for name in [ - self.NAME, # the "basic" module - f'{self.NAME}_basic_wrapper', # the indirect variant - f'{self.NAME}_basic_copy', # the direct variant - ]: - self.add_module_cleanup(name) - with self.subTest(name): - loaded = self.load(name) - reloaded = self.re_load(name, loaded.module) - - self.check_common(loaded) - self.check_common(reloaded) - - # Make sure the original __dict__ did not get replaced. - self.assertEqual(id(loaded.module.__dict__), - loaded.snapshot.ns_id) - self.assertEqual(loaded.snapshot.ns.__dict__, - loaded.module.__dict__) - - self.assertEqual(reloaded.module.__spec__.name, reloaded.name) - self.assertEqual(reloaded.module.__name__, - reloaded.snapshot.ns.__name__) - - self.assertIs(reloaded.module, loaded.module) - self.assertIs(reloaded.module.__dict__, loaded.module.__dict__) - # It only happens to be the same but that's good enough here. - # We really just want to verify that the re-loaded attrs - # didn't change. - self.assertIs(reloaded.snapshot.lookedup, - loaded.snapshot.lookedup) - self.assertEqual(reloaded.snapshot.state_initialized, - loaded.snapshot.state_initialized) - self.assertEqual(reloaded.snapshot.init_count, - loaded.snapshot.init_count) - - self.assertIs(reloaded.snapshot.cached, reloaded.module) - - def test_with_reinit_reloaded(self): - # The module's m_init func is run again. - self.maxDiff = None - - # Keep a reference around. - basic = self.load(self.NAME) - - for name in [ - f'{self.NAME}_with_reinit', # m_size == 0 - f'{self.NAME}_with_state', # m_size > 0 - ]: - self.add_module_cleanup(name) - with self.subTest(name): - loaded = self.load(name) - reloaded = self.re_load(name, loaded.module) - - self.check_common(loaded) - self.check_common(reloaded) - - # Make sure the original __dict__ did not get replaced. - self.assertEqual(id(loaded.module.__dict__), - loaded.snapshot.ns_id) - self.assertEqual(loaded.snapshot.ns.__dict__, - loaded.module.__dict__) - - self.assertEqual(reloaded.module.__spec__.name, reloaded.name) - self.assertEqual(reloaded.module.__name__, - reloaded.snapshot.ns.__name__) - - self.assertIsNot(reloaded.module, loaded.module) - self.assertNotEqual(reloaded.module.__dict__, - loaded.module.__dict__) - self.assertIs(reloaded.snapshot.lookedup, reloaded.module) - if loaded.snapshot.state_initialized is None: - self.assertIs(reloaded.snapshot.state_initialized, None) - else: - self.assertGreater(reloaded.snapshot.state_initialized, - loaded.snapshot.state_initialized) - - self.assertIs(reloaded.snapshot.cached, reloaded.module) - - # Currently, for every single-phrase init module loaded - # in multiple interpreters, those interpreters share a - # PyModuleDef for that object, which can be a problem. - # Also, we test with a single-phase module that has global state, - # which is shared by all interpreters. - - @requires_subinterpreters - def test_basic_multiple_interpreters_main_no_reset(self): - # without resetting; already loaded in main interpreter - - # At this point: - # * alive in 0 interpreters - # * module def may or may not be loaded already - # * module def not in _PyRuntime.imports.extensions - # * mod init func has not run yet (since reset, at least) - # * m_copy not set (hasn't been loaded yet or already cleared) - # * module's global state has not been initialized yet - # (or already cleared) - - main_loaded = self.load(self.NAME) - _testsinglephase = main_loaded.module - # Attrs set after loading are not in m_copy. - _testsinglephase.spam = 'spam, spam, spam, spam, eggs, and spam' - - self.check_common(main_loaded) - self.check_fresh(main_loaded) - - interpid1 = self.add_subinterpreter() - interpid2 = self.add_subinterpreter() - - # At this point: - # * alive in 1 interpreter (main) - # * module def in _PyRuntime.imports.extensions - # * mod init func ran for the first time (since reset, at least) - # * m_copy was copied from the main interpreter (was NULL) - # * module's global state was initialized - - # Use an interpreter that gets destroyed right away. - loaded = self.import_in_subinterp() - self.check_common(loaded) - self.check_copied(loaded, main_loaded) - - # At this point: - # * alive in 1 interpreter (main) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy is NULL (claered when the interpreter was destroyed) - # (was from main interpreter) - # * module's global state was updated, not reset - - # Use a subinterpreter that sticks around. - loaded = self.import_in_subinterp(interpid1) - self.check_common(loaded) - self.check_copied(loaded, main_loaded) - - # At this point: - # * alive in 2 interpreters (main, interp1) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp1 - # * module's global state was updated, not reset - - # Use a subinterpreter while the previous one is still alive. - loaded = self.import_in_subinterp(interpid2) - self.check_common(loaded) - self.check_copied(loaded, main_loaded) - - # At this point: - # * alive in 3 interpreters (main, interp1, interp2) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp2 (was from interp1) - # * module's global state was updated, not reset - - @requires_subinterpreters - def test_basic_multiple_interpreters_deleted_no_reset(self): - # without resetting; already loaded in a deleted interpreter - - # At this point: - # * alive in 0 interpreters - # * module def may or may not be loaded already - # * module def not in _PyRuntime.imports.extensions - # * mod init func has not run yet (since reset, at least) - # * m_copy not set (hasn't been loaded yet or already cleared) - # * module's global state has not been initialized yet - # (or already cleared) - - interpid1 = self.add_subinterpreter() - interpid2 = self.add_subinterpreter() - - # First, load in the main interpreter but then completely clear it. - loaded_main = self.load(self.NAME) - loaded_main.module._clear_globals() - _testinternalcapi.clear_extension(self.NAME, self.FILE) - - # At this point: - # * alive in 0 interpreters - # * module def loaded already - # * module def was in _PyRuntime.imports.extensions, but cleared - # * mod init func ran for the first time (since reset, at least) - # * m_copy was set, but cleared (was NULL) - # * module's global state was initialized but cleared - - # Start with an interpreter that gets destroyed right away. - base = self.import_in_subinterp(postscript=''' - # Attrs set after loading are not in m_copy. - mod.spam = 'spam, spam, mash, spam, eggs, and spam' - ''') - self.check_common(base) - self.check_fresh(base) - - # At this point: - # * alive in 0 interpreters - # * module def in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy is NULL (claered when the interpreter was destroyed) - # * module's global state was initialized, not reset - - # Use a subinterpreter that sticks around. - loaded_interp1 = self.import_in_subinterp(interpid1) - self.check_common(loaded_interp1) - self.check_semi_fresh(loaded_interp1, loaded_main, base) - - # At this point: - # * alive in 1 interpreter (interp1) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp1 (was NULL) - # * module's global state was updated, not reset - - # Use a subinterpreter while the previous one is still alive. - loaded_interp2 = self.import_in_subinterp(interpid2) - self.check_common(loaded_interp2) - self.check_copied(loaded_interp2, loaded_interp1) - - # At this point: - # * alive in 2 interpreters (interp1, interp2) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp2 (was from interp1) - # * module's global state was updated, not reset - - @requires_subinterpreters - @requires_load_dynamic - def test_basic_multiple_interpreters_reset_each(self): - # resetting between each interpreter - - # At this point: - # * alive in 0 interpreters - # * module def may or may not be loaded already - # * module def not in _PyRuntime.imports.extensions - # * mod init func has not run yet (since reset, at least) - # * m_copy not set (hasn't been loaded yet or already cleared) - # * module's global state has not been initialized yet - # (or already cleared) - - interpid1 = self.add_subinterpreter() - interpid2 = self.add_subinterpreter() - - # Use an interpreter that gets destroyed right away. - loaded = self.import_in_subinterp( - postscript=''' - # Attrs set after loading are not in m_copy. - mod.spam = 'spam, spam, mash, spam, eggs, and spam' - ''', - postcleanup=True, - ) - self.check_common(loaded) - self.check_fresh(loaded) - - # At this point: - # * alive in 0 interpreters - # * module def in _PyRuntime.imports.extensions - # * mod init func ran for the first time (since reset, at least) - # * m_copy is NULL (claered when the interpreter was destroyed) - # * module's global state was initialized, not reset - - # Use a subinterpreter that sticks around. - loaded = self.import_in_subinterp(interpid1, postcleanup=True) - self.check_common(loaded) - self.check_fresh(loaded) - - # At this point: - # * alive in 1 interpreter (interp1) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp1 (was NULL) - # * module's global state was initialized, not reset - - # Use a subinterpreter while the previous one is still alive. - loaded = self.import_in_subinterp(interpid2, postcleanup=True) - self.check_common(loaded) - self.check_fresh(loaded) - - # At this point: - # * alive in 2 interpreters (interp2, interp2) - # * module def still in _PyRuntime.imports.extensions - # * mod init func ran again - # * m_copy was copied from interp2 (was from interp1) - # * module's global state was initialized, not reset - - class ReloadTests(unittest.TestCase): """Very basic tests to make sure that imp.reload() operates just like diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py index 3ef07203c46c7e9..66ae554f984fa24 100644 --- a/Lib/test/test_import/__init__.py +++ b/Lib/test/test_import/__init__.py @@ -2,6 +2,7 @@ import contextlib import errno import glob +import json import importlib.util from importlib._bootstrap_external import _get_sourcefile from importlib.machinery import ( @@ -18,13 +19,15 @@ import textwrap import threading import time +import types import unittest from unittest import mock +import _testinternalcapi from test.support import os_helper from test.support import ( STDLIB_DIR, swap_attr, swap_item, cpython_only, is_emscripten, - is_wasi, run_in_subinterp_with_config) + is_wasi, run_in_subinterp, run_in_subinterp_with_config) from test.support.import_helper import ( forget, make_legacy_pyc, unlink, unload, DirsOnSysPath, CleanImport) from test.support.os_helper import ( @@ -41,6 +44,10 @@ import _testmultiphase except ImportError: _testmultiphase = None +try: + import _xxsubinterpreters as _interpreters +except ModuleNotFoundError: + _interpreters = None skip_if_dont_write_bytecode = unittest.skipIf( @@ -120,6 +127,182 @@ def _ready_to_import(name=None, source=""): del sys.modules[name] +def requires_subinterpreters(meth): + """Decorator to skip a test if subinterpreters are not supported.""" + return unittest.skipIf(_interpreters is None, + 'subinterpreters required')(meth) + + +def requires_singlephase_init(meth): + """Decorator to skip if single-phase init modules are not supported.""" + meth = cpython_only(meth) + return unittest.skipIf(_testsinglephase is None, + 'test requires _testsinglephase module')(meth) + + +class ModuleSnapshot(types.SimpleNamespace): + """A representation of a module for testing. + + Fields: + + * id - the module's object ID + * module - the actual module or an adequate substitute + * __file__ + * __spec__ + * name + * origin + * ns - a copy (dict) of the module's __dict__ (or None) + * ns_id - the object ID of the module's __dict__ + * cached - the sys.modules[mod.__spec__.name] entry (or None) + * cached_id - the object ID of the sys.modules entry (or None) + + In cases where the value is not available (e.g. due to serialization), + the value will be None. + """ + _fields = tuple('id module ns ns_id cached cached_id'.split()) + + @classmethod + def from_module(cls, mod): + name = mod.__spec__.name + cached = sys.modules.get(name) + return cls( + id=id(mod), + module=mod, + ns=types.SimpleNamespace(**mod.__dict__), + ns_id=id(mod.__dict__), + cached=cached, + cached_id=id(cached), + ) + + SCRIPT = textwrap.dedent(''' + {imports} + + name = {name!r} + + {prescript} + + mod = {name} + + {body} + + {postscript} + ''') + IMPORTS = textwrap.dedent(''' + import sys + ''').strip() + SCRIPT_BODY = textwrap.dedent(''' + # Capture the snapshot data. + cached = sys.modules.get(name) + snapshot = dict( + id=id(mod), + module=dict( + __file__=mod.__file__, + __spec__=dict( + name=mod.__spec__.name, + origin=mod.__spec__.origin, + ), + ), + ns=None, + ns_id=id(mod.__dict__), + cached=None, + cached_id=id(cached) if cached else None, + ) + ''').strip() + CLEANUP_SCRIPT = textwrap.dedent(''' + # Clean up the module. + sys.modules.pop(name, None) + ''').strip() + + @classmethod + def build_script(cls, name, *, + prescript=None, + import_first=False, + postscript=None, + postcleanup=False, + ): + if postcleanup is True: + postcleanup = cls.CLEANUP_SCRIPT + elif isinstance(postcleanup, str): + postcleanup = textwrap.dedent(postcleanup).strip() + postcleanup = cls.CLEANUP_SCRIPT + os.linesep + postcleanup + else: + postcleanup = '' + prescript = textwrap.dedent(prescript).strip() if prescript else '' + postscript = textwrap.dedent(postscript).strip() if postscript else '' + + if postcleanup: + if postscript: + postscript = postscript + os.linesep * 2 + postcleanup + else: + postscript = postcleanup + + if import_first: + prescript += textwrap.dedent(f''' + + # Now import the module. + assert name not in sys.modules + import {name}''') + + return cls.SCRIPT.format( + imports=cls.IMPORTS.strip(), + name=name, + prescript=prescript.strip(), + body=cls.SCRIPT_BODY.strip(), + postscript=postscript, + ) + + @classmethod + def parse(cls, text): + raw = json.loads(text) + mod = raw['module'] + mod['__spec__'] = types.SimpleNamespace(**mod['__spec__']) + raw['module'] = types.SimpleNamespace(**mod) + return cls(**raw) + + @classmethod + def from_subinterp(cls, name, interpid=None, *, pipe=None, **script_kwds): + if pipe is not None: + return cls._from_subinterp(name, interpid, pipe, script_kwds) + pipe = os.pipe() + try: + return cls._from_subinterp(name, interpid, pipe, script_kwds) + finally: + r, w = pipe + os.close(r) + os.close(w) + + @classmethod + def _from_subinterp(cls, name, interpid, pipe, script_kwargs): + r, w = pipe + + # Build the script. + postscript = textwrap.dedent(f''' + # Send the result over the pipe. + import json + import os + os.write({w}, json.dumps(snapshot).encode()) + + ''') + _postscript = script_kwargs.get('postscript') + if _postscript: + _postscript = textwrap.dedent(_postscript).lstrip() + postscript += _postscript + script_kwargs['postscript'] = postscript.strip() + script = cls.build_script(name, **script_kwargs) + + # Run the script. + if interpid is None: + ret = run_in_subinterp(script) + if ret != 0: + raise AssertionError(f'{ret} != 0') + else: + _interpreters.run_string(interpid, script) + + # Parse the results. + text = os.read(r, 1000) + return cls.parse(text.decode()) + + class ImportTests(unittest.TestCase): def setUp(self): @@ -1604,7 +1787,7 @@ def test_frozen_compat(self): with self.subTest(f'{module}: strict, not fresh'): self.check_compatible_here(module, strict=True) - @unittest.skipIf(_testsinglephase is None, "test requires _testsinglephase module") + @requires_singlephase_init def test_single_init_extension_compat(self): module = '_testsinglephase' require_extension(module) @@ -1636,7 +1819,7 @@ def test_python_compat(self): with self.subTest(f'{module}: strict, fresh'): self.check_compatible_fresh(module, strict=True) - @unittest.skipIf(_testsinglephase is None, "test requires _testsinglephase module") + @requires_singlephase_init def test_singlephase_check_with_setting_and_override(self): module = '_testsinglephase' require_extension(module) @@ -1672,6 +1855,685 @@ def check_incompatible(setting, override): check_compatible(False, -1) +class TestSinglePhaseSnapshot(ModuleSnapshot): + + @classmethod + def from_module(cls, mod): + self = super().from_module(mod) + self.summed = mod.sum(1, 2) + self.lookedup = mod.look_up_self() + self.lookedup_id = id(self.lookedup) + self.state_initialized = mod.state_initialized() + if hasattr(mod, 'initialized_count'): + self.init_count = mod.initialized_count() + return self + + SCRIPT_BODY = ModuleSnapshot.SCRIPT_BODY + textwrap.dedent(f''' + snapshot['module'].update(dict( + int_const=mod.int_const, + str_const=mod.str_const, + _module_initialized=mod._module_initialized, + )) + snapshot.update(dict( + summed=mod.sum(1, 2), + lookedup_id=id(mod.look_up_self()), + state_initialized=mod.state_initialized(), + init_count=mod.initialized_count(), + has_spam=hasattr(mod, 'spam'), + spam=getattr(mod, 'spam', None), + )) + ''').rstrip() + + @classmethod + def parse(cls, text): + self = super().parse(text) + if not self.has_spam: + del self.spam + del self.has_spam + return self + + +@requires_singlephase_init +class SinglephaseInitTests(unittest.TestCase): + + NAME = '_testsinglephase' + + @classmethod + def setUpClass(cls): + if '-R' in sys.argv or '--huntrleaks' in sys.argv: + # /~https://github.com/python/cpython/issues/102251 + raise unittest.SkipTest('unresolved refleaks (see gh-102251)') + + spec = importlib.util.find_spec(cls.NAME) + from importlib.machinery import ExtensionFileLoader + cls.FILE = spec.origin + cls.LOADER = type(spec.loader) + assert cls.LOADER is ExtensionFileLoader + + # Start fresh. + cls.clean_up() + + def tearDown(self): + # Clean up the module. + self.clean_up() + + @classmethod + def clean_up(cls): + name = cls.NAME + filename = cls.FILE + if name in sys.modules: + if hasattr(sys.modules[name], '_clear_globals'): + assert sys.modules[name].__file__ == filename + sys.modules[name]._clear_globals() + del sys.modules[name] + # Clear all internally cached data for the extension. + _testinternalcapi.clear_extension(name, filename) + + ######################### + # helpers + + def add_module_cleanup(self, name): + def clean_up(): + # Clear all internally cached data for the extension. + _testinternalcapi.clear_extension(name, self.FILE) + self.addCleanup(clean_up) + + def _load_dynamic(self, name, path): + """ + Load an extension module. + """ + # This is essentially copied from the old imp module. + from importlib._bootstrap import _load + loader = self.LOADER(name, path) + + # Issue bpo-24748: Skip the sys.modules check in _load_module_shim; + # always load new extension. + spec = importlib.util.spec_from_file_location(name, path, + loader=loader) + return _load(spec) + + def load(self, name): + try: + already_loaded = self.already_loaded + except AttributeError: + already_loaded = self.already_loaded = {} + assert name not in already_loaded + mod = self._load_dynamic(name, self.FILE) + self.assertNotIn(mod, already_loaded.values()) + already_loaded[name] = mod + return types.SimpleNamespace( + name=name, + module=mod, + snapshot=TestSinglePhaseSnapshot.from_module(mod), + ) + + def re_load(self, name, mod): + assert sys.modules[name] is mod + assert mod.__dict__ == mod.__dict__ + reloaded = self._load_dynamic(name, self.FILE) + return types.SimpleNamespace( + name=name, + module=reloaded, + snapshot=TestSinglePhaseSnapshot.from_module(reloaded), + ) + + # subinterpreters + + def add_subinterpreter(self): + interpid = _interpreters.create(isolated=False) + _interpreters.run_string(interpid, textwrap.dedent(''' + import sys + import _testinternalcapi + ''')) + def clean_up(): + _interpreters.run_string(interpid, textwrap.dedent(f''' + name = {self.NAME!r} + if name in sys.modules: + sys.modules[name]._clear_globals() + _testinternalcapi.clear_extension(name, {self.FILE!r}) + ''')) + _interpreters.destroy(interpid) + self.addCleanup(clean_up) + return interpid + + def import_in_subinterp(self, interpid=None, *, + postscript=None, + postcleanup=False, + ): + name = self.NAME + + if postcleanup: + import_ = 'import _testinternalcapi' if interpid is None else '' + postcleanup = f''' + {import_} + mod._clear_globals() + _testinternalcapi.clear_extension(name, {self.FILE!r}) + ''' + + try: + pipe = self._pipe + except AttributeError: + r, w = pipe = self._pipe = os.pipe() + self.addCleanup(os.close, r) + self.addCleanup(os.close, w) + + snapshot = TestSinglePhaseSnapshot.from_subinterp( + name, + interpid, + pipe=pipe, + import_first=True, + postscript=postscript, + postcleanup=postcleanup, + ) + + return types.SimpleNamespace( + name=name, + module=None, + snapshot=snapshot, + ) + + # checks + + def check_common(self, loaded): + isolated = False + + mod = loaded.module + if not mod: + # It came from a subinterpreter. + isolated = True + mod = loaded.snapshot.module + # mod.__name__ might not match, but the spec will. + self.assertEqual(mod.__spec__.name, loaded.name) + self.assertEqual(mod.__file__, self.FILE) + self.assertEqual(mod.__spec__.origin, self.FILE) + if not isolated: + self.assertTrue(issubclass(mod.error, Exception)) + self.assertEqual(mod.int_const, 1969) + self.assertEqual(mod.str_const, 'something different') + self.assertIsInstance(mod._module_initialized, float) + self.assertGreater(mod._module_initialized, 0) + + snap = loaded.snapshot + self.assertEqual(snap.summed, 3) + if snap.state_initialized is not None: + self.assertIsInstance(snap.state_initialized, float) + self.assertGreater(snap.state_initialized, 0) + if isolated: + # The "looked up" module is interpreter-specific + # (interp->imports.modules_by_index was set for the module). + self.assertEqual(snap.lookedup_id, snap.id) + self.assertEqual(snap.cached_id, snap.id) + with self.assertRaises(AttributeError): + snap.spam + else: + self.assertIs(snap.lookedup, mod) + self.assertIs(snap.cached, mod) + + def check_direct(self, loaded): + # The module has its own PyModuleDef, with a matching name. + self.assertEqual(loaded.module.__name__, loaded.name) + self.assertIs(loaded.snapshot.lookedup, loaded.module) + + def check_indirect(self, loaded, orig): + # The module re-uses another's PyModuleDef, with a different name. + assert orig is not loaded.module + assert orig.__name__ != loaded.name + self.assertNotEqual(loaded.module.__name__, loaded.name) + self.assertIs(loaded.snapshot.lookedup, loaded.module) + + def check_basic(self, loaded, expected_init_count): + # m_size == -1 + # The module loads fresh the first time and copies m_copy after. + snap = loaded.snapshot + self.assertIsNot(snap.state_initialized, None) + self.assertIsInstance(snap.init_count, int) + self.assertGreater(snap.init_count, 0) + self.assertEqual(snap.init_count, expected_init_count) + + def check_with_reinit(self, loaded): + # m_size >= 0 + # The module loads fresh every time. + pass + + def check_fresh(self, loaded): + """ + The module had not been loaded before (at least since fully reset). + """ + snap = loaded.snapshot + # The module's init func was run. + # A copy of the module's __dict__ was stored in def->m_base.m_copy. + # The previous m_copy was deleted first. + # _PyRuntime.imports.extensions was set. + self.assertEqual(snap.init_count, 1) + # The global state was initialized. + # The module attrs were initialized from that state. + self.assertEqual(snap.module._module_initialized, + snap.state_initialized) + + def check_semi_fresh(self, loaded, base, prev): + """ + The module had been loaded before and then reset + (but the module global state wasn't). + """ + snap = loaded.snapshot + # The module's init func was run again. + # A copy of the module's __dict__ was stored in def->m_base.m_copy. + # The previous m_copy was deleted first. + # The module globals did not get reset. + self.assertNotEqual(snap.id, base.snapshot.id) + self.assertNotEqual(snap.id, prev.snapshot.id) + self.assertEqual(snap.init_count, prev.snapshot.init_count + 1) + # The global state was updated. + # The module attrs were initialized from that state. + self.assertEqual(snap.module._module_initialized, + snap.state_initialized) + self.assertNotEqual(snap.state_initialized, + base.snapshot.state_initialized) + self.assertNotEqual(snap.state_initialized, + prev.snapshot.state_initialized) + + def check_copied(self, loaded, base): + """ + The module had been loaded before and never reset. + """ + snap = loaded.snapshot + # The module's init func was not run again. + # The interpreter copied m_copy, as set by the other interpreter, + # with objects owned by the other interpreter. + # The module globals did not get reset. + self.assertNotEqual(snap.id, base.snapshot.id) + self.assertEqual(snap.init_count, base.snapshot.init_count) + # The global state was not updated since the init func did not run. + # The module attrs were not directly initialized from that state. + # The state and module attrs still match the previous loading. + self.assertEqual(snap.module._module_initialized, + snap.state_initialized) + self.assertEqual(snap.state_initialized, + base.snapshot.state_initialized) + + ######################### + # the tests + + def test_cleared_globals(self): + loaded = self.load(self.NAME) + _testsinglephase = loaded.module + init_before = _testsinglephase.state_initialized() + + _testsinglephase._clear_globals() + init_after = _testsinglephase.state_initialized() + init_count = _testsinglephase.initialized_count() + + self.assertGreater(init_before, 0) + self.assertEqual(init_after, 0) + self.assertEqual(init_count, -1) + + def test_variants(self): + # Exercise the most meaningful variants described in Python/import.c. + self.maxDiff = None + + # Check the "basic" module. + + name = self.NAME + expected_init_count = 1 + with self.subTest(name): + loaded = self.load(name) + + self.check_common(loaded) + self.check_direct(loaded) + self.check_basic(loaded, expected_init_count) + basic = loaded.module + + # Check its indirect variants. + + name = f'{self.NAME}_basic_wrapper' + self.add_module_cleanup(name) + expected_init_count += 1 + with self.subTest(name): + loaded = self.load(name) + + self.check_common(loaded) + self.check_indirect(loaded, basic) + self.check_basic(loaded, expected_init_count) + + # Currently PyState_AddModule() always replaces the cached module. + self.assertIs(basic.look_up_self(), loaded.module) + self.assertEqual(basic.initialized_count(), expected_init_count) + + # The cached module shouldn't change after this point. + basic_lookedup = loaded.module + + # Check its direct variant. + + name = f'{self.NAME}_basic_copy' + self.add_module_cleanup(name) + expected_init_count += 1 + with self.subTest(name): + loaded = self.load(name) + + self.check_common(loaded) + self.check_direct(loaded) + self.check_basic(loaded, expected_init_count) + + # This should change the cached module for _testsinglephase. + self.assertIs(basic.look_up_self(), basic_lookedup) + self.assertEqual(basic.initialized_count(), expected_init_count) + + # Check the non-basic variant that has no state. + + name = f'{self.NAME}_with_reinit' + self.add_module_cleanup(name) + with self.subTest(name): + loaded = self.load(name) + + self.check_common(loaded) + self.assertIs(loaded.snapshot.state_initialized, None) + self.check_direct(loaded) + self.check_with_reinit(loaded) + + # This should change the cached module for _testsinglephase. + self.assertIs(basic.look_up_self(), basic_lookedup) + self.assertEqual(basic.initialized_count(), expected_init_count) + + # Check the basic variant that has state. + + name = f'{self.NAME}_with_state' + self.add_module_cleanup(name) + with self.subTest(name): + loaded = self.load(name) + + self.check_common(loaded) + self.assertIsNot(loaded.snapshot.state_initialized, None) + self.check_direct(loaded) + self.check_with_reinit(loaded) + + # This should change the cached module for _testsinglephase. + self.assertIs(basic.look_up_self(), basic_lookedup) + self.assertEqual(basic.initialized_count(), expected_init_count) + + def test_basic_reloaded(self): + # m_copy is copied into the existing module object. + # Global state is not changed. + self.maxDiff = None + + for name in [ + self.NAME, # the "basic" module + f'{self.NAME}_basic_wrapper', # the indirect variant + f'{self.NAME}_basic_copy', # the direct variant + ]: + self.add_module_cleanup(name) + with self.subTest(name): + loaded = self.load(name) + reloaded = self.re_load(name, loaded.module) + + self.check_common(loaded) + self.check_common(reloaded) + + # Make sure the original __dict__ did not get replaced. + self.assertEqual(id(loaded.module.__dict__), + loaded.snapshot.ns_id) + self.assertEqual(loaded.snapshot.ns.__dict__, + loaded.module.__dict__) + + self.assertEqual(reloaded.module.__spec__.name, reloaded.name) + self.assertEqual(reloaded.module.__name__, + reloaded.snapshot.ns.__name__) + + self.assertIs(reloaded.module, loaded.module) + self.assertIs(reloaded.module.__dict__, loaded.module.__dict__) + # It only happens to be the same but that's good enough here. + # We really just want to verify that the re-loaded attrs + # didn't change. + self.assertIs(reloaded.snapshot.lookedup, + loaded.snapshot.lookedup) + self.assertEqual(reloaded.snapshot.state_initialized, + loaded.snapshot.state_initialized) + self.assertEqual(reloaded.snapshot.init_count, + loaded.snapshot.init_count) + + self.assertIs(reloaded.snapshot.cached, reloaded.module) + + def test_with_reinit_reloaded(self): + # The module's m_init func is run again. + self.maxDiff = None + + # Keep a reference around. + basic = self.load(self.NAME) + + for name in [ + f'{self.NAME}_with_reinit', # m_size == 0 + f'{self.NAME}_with_state', # m_size > 0 + ]: + self.add_module_cleanup(name) + with self.subTest(name): + loaded = self.load(name) + reloaded = self.re_load(name, loaded.module) + + self.check_common(loaded) + self.check_common(reloaded) + + # Make sure the original __dict__ did not get replaced. + self.assertEqual(id(loaded.module.__dict__), + loaded.snapshot.ns_id) + self.assertEqual(loaded.snapshot.ns.__dict__, + loaded.module.__dict__) + + self.assertEqual(reloaded.module.__spec__.name, reloaded.name) + self.assertEqual(reloaded.module.__name__, + reloaded.snapshot.ns.__name__) + + self.assertIsNot(reloaded.module, loaded.module) + self.assertNotEqual(reloaded.module.__dict__, + loaded.module.__dict__) + self.assertIs(reloaded.snapshot.lookedup, reloaded.module) + if loaded.snapshot.state_initialized is None: + self.assertIs(reloaded.snapshot.state_initialized, None) + else: + self.assertGreater(reloaded.snapshot.state_initialized, + loaded.snapshot.state_initialized) + + self.assertIs(reloaded.snapshot.cached, reloaded.module) + + # Currently, for every single-phrase init module loaded + # in multiple interpreters, those interpreters share a + # PyModuleDef for that object, which can be a problem. + # Also, we test with a single-phase module that has global state, + # which is shared by all interpreters. + + @requires_subinterpreters + def test_basic_multiple_interpreters_main_no_reset(self): + # without resetting; already loaded in main interpreter + + # At this point: + # * alive in 0 interpreters + # * module def may or may not be loaded already + # * module def not in _PyRuntime.imports.extensions + # * mod init func has not run yet (since reset, at least) + # * m_copy not set (hasn't been loaded yet or already cleared) + # * module's global state has not been initialized yet + # (or already cleared) + + main_loaded = self.load(self.NAME) + _testsinglephase = main_loaded.module + # Attrs set after loading are not in m_copy. + _testsinglephase.spam = 'spam, spam, spam, spam, eggs, and spam' + + self.check_common(main_loaded) + self.check_fresh(main_loaded) + + interpid1 = self.add_subinterpreter() + interpid2 = self.add_subinterpreter() + + # At this point: + # * alive in 1 interpreter (main) + # * module def in _PyRuntime.imports.extensions + # * mod init func ran for the first time (since reset, at least) + # * m_copy was copied from the main interpreter (was NULL) + # * module's global state was initialized + + # Use an interpreter that gets destroyed right away. + loaded = self.import_in_subinterp() + self.check_common(loaded) + self.check_copied(loaded, main_loaded) + + # At this point: + # * alive in 1 interpreter (main) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy is NULL (claered when the interpreter was destroyed) + # (was from main interpreter) + # * module's global state was updated, not reset + + # Use a subinterpreter that sticks around. + loaded = self.import_in_subinterp(interpid1) + self.check_common(loaded) + self.check_copied(loaded, main_loaded) + + # At this point: + # * alive in 2 interpreters (main, interp1) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp1 + # * module's global state was updated, not reset + + # Use a subinterpreter while the previous one is still alive. + loaded = self.import_in_subinterp(interpid2) + self.check_common(loaded) + self.check_copied(loaded, main_loaded) + + # At this point: + # * alive in 3 interpreters (main, interp1, interp2) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp2 (was from interp1) + # * module's global state was updated, not reset + + @requires_subinterpreters + def test_basic_multiple_interpreters_deleted_no_reset(self): + # without resetting; already loaded in a deleted interpreter + + # At this point: + # * alive in 0 interpreters + # * module def may or may not be loaded already + # * module def not in _PyRuntime.imports.extensions + # * mod init func has not run yet (since reset, at least) + # * m_copy not set (hasn't been loaded yet or already cleared) + # * module's global state has not been initialized yet + # (or already cleared) + + interpid1 = self.add_subinterpreter() + interpid2 = self.add_subinterpreter() + + # First, load in the main interpreter but then completely clear it. + loaded_main = self.load(self.NAME) + loaded_main.module._clear_globals() + _testinternalcapi.clear_extension(self.NAME, self.FILE) + + # At this point: + # * alive in 0 interpreters + # * module def loaded already + # * module def was in _PyRuntime.imports.extensions, but cleared + # * mod init func ran for the first time (since reset, at least) + # * m_copy was set, but cleared (was NULL) + # * module's global state was initialized but cleared + + # Start with an interpreter that gets destroyed right away. + base = self.import_in_subinterp(postscript=''' + # Attrs set after loading are not in m_copy. + mod.spam = 'spam, spam, mash, spam, eggs, and spam' + ''') + self.check_common(base) + self.check_fresh(base) + + # At this point: + # * alive in 0 interpreters + # * module def in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy is NULL (claered when the interpreter was destroyed) + # * module's global state was initialized, not reset + + # Use a subinterpreter that sticks around. + loaded_interp1 = self.import_in_subinterp(interpid1) + self.check_common(loaded_interp1) + self.check_semi_fresh(loaded_interp1, loaded_main, base) + + # At this point: + # * alive in 1 interpreter (interp1) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp1 (was NULL) + # * module's global state was updated, not reset + + # Use a subinterpreter while the previous one is still alive. + loaded_interp2 = self.import_in_subinterp(interpid2) + self.check_common(loaded_interp2) + self.check_copied(loaded_interp2, loaded_interp1) + + # At this point: + # * alive in 2 interpreters (interp1, interp2) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp2 (was from interp1) + # * module's global state was updated, not reset + + @requires_subinterpreters + def test_basic_multiple_interpreters_reset_each(self): + # resetting between each interpreter + + # At this point: + # * alive in 0 interpreters + # * module def may or may not be loaded already + # * module def not in _PyRuntime.imports.extensions + # * mod init func has not run yet (since reset, at least) + # * m_copy not set (hasn't been loaded yet or already cleared) + # * module's global state has not been initialized yet + # (or already cleared) + + interpid1 = self.add_subinterpreter() + interpid2 = self.add_subinterpreter() + + # Use an interpreter that gets destroyed right away. + loaded = self.import_in_subinterp( + postscript=''' + # Attrs set after loading are not in m_copy. + mod.spam = 'spam, spam, mash, spam, eggs, and spam' + ''', + postcleanup=True, + ) + self.check_common(loaded) + self.check_fresh(loaded) + + # At this point: + # * alive in 0 interpreters + # * module def in _PyRuntime.imports.extensions + # * mod init func ran for the first time (since reset, at least) + # * m_copy is NULL (claered when the interpreter was destroyed) + # * module's global state was initialized, not reset + + # Use a subinterpreter that sticks around. + loaded = self.import_in_subinterp(interpid1, postcleanup=True) + self.check_common(loaded) + self.check_fresh(loaded) + + # At this point: + # * alive in 1 interpreter (interp1) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp1 (was NULL) + # * module's global state was initialized, not reset + + # Use a subinterpreter while the previous one is still alive. + loaded = self.import_in_subinterp(interpid2, postcleanup=True) + self.check_common(loaded) + self.check_fresh(loaded) + + # At this point: + # * alive in 2 interpreters (interp2, interp2) + # * module def still in _PyRuntime.imports.extensions + # * mod init func ran again + # * m_copy was copied from interp2 (was from interp1) + # * module's global state was initialized, not reset + + if __name__ == '__main__': # Test needs to be a package, so we can do relative imports. unittest.main() From e4466a7a0e16393c6bf0c0d2ed7ae03cb0d8b0e1 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Wed, 19 Apr 2023 15:58:53 -0700 Subject: [PATCH 25/82] simplify oparg & 2 handling --- Doc/library/dis.rst | 4 +- Python/bytecodes.c | 9 +- Python/compile.c | 6 +- Python/generated_cases.c.h | 454 ++++++++++++++++++------------------- 4 files changed, 232 insertions(+), 241 deletions(-) diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index c8897b34f0ddfd5..3894837127877c5 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -1048,8 +1048,8 @@ iterations of the loop. The low bit of ``namei`` signals to attempt a method load, as with :opcode:`LOAD_ATTR`. - The second-low bit of ``namei``, if set, means that this was a zero-argument - call to :func:`super`. + The second-low bit of ``namei``, if set, means that this was a two-argument + call to :func:`super` (unset means zero-argument). .. versionadded:: 3.12 diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 0ad9f326cec8a6d..437868653cc0249 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -1574,13 +1574,8 @@ dummy_func( Py_DECREF(self); } } else { - PyObject *super; - if (oparg & 2) { - super = PyObject_CallNoArgs(global_super); - } else { - PyObject *stack[] = {class, self}; - super = PyObject_Vectorcall(global_super, stack, 2, NULL); - } + PyObject *stack[] = {class, self}; + PyObject *super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); DECREF_INPUTS(); ERROR_IF(super == NULL, error); res = PyObject_GetAttr(super, name); diff --git a/Python/compile.c b/Python/compile.c index bcef92665bcb9c6..a6ef25901973a8d 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -1053,21 +1053,21 @@ compiler_addop_name(struct compiler_unit *u, location loc, } if (opcode == LOAD_SUPER_ATTR) { arg <<= 2; + arg |= 2; } if (opcode == LOAD_SUPER_METHOD) { opcode = LOAD_SUPER_ATTR; arg <<= 2; - arg |= 1; + arg |= 3; } if (opcode == LOAD_ZERO_SUPER_ATTR) { opcode = LOAD_SUPER_ATTR; arg <<= 2; - arg |= 2; } if (opcode == LOAD_ZERO_SUPER_METHOD) { opcode = LOAD_SUPER_ATTR; arg <<= 2; - arg |= 3; + arg |= 1; } return codegen_addop_i(&u->u_instr_sequence, opcode, arg, loc); } diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 0cd7137669012b7..0d8ce579209fd99 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -2194,23 +2194,19 @@ } } else { PyObject *super; - if (oparg & 2) { - super = PyObject_CallNoArgs(global_super); - } else { - PyObject *stack[] = {class, self}; - super = PyObject_Vectorcall(global_super, stack, 2, NULL); - } - #line 2204 "Python/generated_cases.c.h" + PyObject *stack[] = {class, self}; + super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); + #line 2200 "Python/generated_cases.c.h" Py_DECREF(global_super); Py_DECREF(class); Py_DECREF(self); - #line 1585 "Python/bytecodes.c" + #line 1581 "Python/bytecodes.c" if (super == NULL) goto pop_3_error; res = PyObject_GetAttr(super, name); Py_DECREF(super); if (res == NULL) goto pop_3_error; } - #line 2214 "Python/generated_cases.c.h" + #line 2210 "Python/generated_cases.c.h" STACK_SHRINK(2); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2224,7 +2220,7 @@ PyObject *owner = stack_pointer[-1]; PyObject *res2 = NULL; PyObject *res; - #line 1607 "Python/bytecodes.c" + #line 1603 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyAttrCache *cache = (_PyAttrCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2258,9 +2254,9 @@ NULL | meth | arg1 | ... | argN */ - #line 2262 "Python/generated_cases.c.h" + #line 2258 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1641 "Python/bytecodes.c" + #line 1637 "Python/bytecodes.c" if (meth == NULL) goto pop_1_error; res2 = NULL; res = meth; @@ -2269,12 +2265,12 @@ else { /* Classic, pushes one value. */ res = PyObject_GetAttr(owner, name); - #line 2273 "Python/generated_cases.c.h" + #line 2269 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1650 "Python/bytecodes.c" + #line 1646 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; } - #line 2278 "Python/generated_cases.c.h" + #line 2274 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -2288,7 +2284,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1655 "Python/bytecodes.c" + #line 1651 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2301,7 +2297,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2305 "Python/generated_cases.c.h" + #line 2301 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2316,7 +2312,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1671 "Python/bytecodes.c" + #line 1667 "Python/bytecodes.c" DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; assert(dict != NULL); @@ -2329,7 +2325,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2333 "Python/generated_cases.c.h" + #line 2329 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2344,7 +2340,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1687 "Python/bytecodes.c" + #line 1683 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2371,7 +2367,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2375 "Python/generated_cases.c.h" + #line 2371 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2386,7 +2382,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1717 "Python/bytecodes.c" + #line 1713 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2396,7 +2392,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2400 "Python/generated_cases.c.h" + #line 2396 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2411,7 +2407,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 1730 "Python/bytecodes.c" + #line 1726 "Python/bytecodes.c" DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, @@ -2423,7 +2419,7 @@ res = descr; assert(res != NULL); Py_INCREF(res); - #line 2427 "Python/generated_cases.c.h" + #line 2423 "Python/generated_cases.c.h" Py_DECREF(cls); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2437,7 +2433,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *fget = read_obj(&next_instr[5].cache); - #line 1745 "Python/bytecodes.c" + #line 1741 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); @@ -2461,7 +2457,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 2465 "Python/generated_cases.c.h" + #line 2461 "Python/generated_cases.c.h" } TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { @@ -2469,7 +2465,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *getattribute = read_obj(&next_instr[5].cache); - #line 1771 "Python/bytecodes.c" + #line 1767 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); @@ -2495,7 +2491,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 2499 "Python/generated_cases.c.h" + #line 2495 "Python/generated_cases.c.h" } TARGET(STORE_ATTR_INSTANCE_VALUE) { @@ -2503,7 +2499,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1799 "Python/bytecodes.c" + #line 1795 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2521,7 +2517,7 @@ Py_DECREF(old_value); } Py_DECREF(owner); - #line 2525 "Python/generated_cases.c.h" + #line 2521 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2532,7 +2528,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t hint = read_u16(&next_instr[3].cache); - #line 1819 "Python/bytecodes.c" + #line 1815 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2571,7 +2567,7 @@ /* PEP 509 */ dict->ma_version_tag = new_version; Py_DECREF(owner); - #line 2575 "Python/generated_cases.c.h" + #line 2571 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2582,7 +2578,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1860 "Python/bytecodes.c" + #line 1856 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2592,7 +2588,7 @@ *(PyObject **)addr = value; Py_XDECREF(old_value); Py_DECREF(owner); - #line 2596 "Python/generated_cases.c.h" + #line 2592 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2604,7 +2600,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1879 "Python/bytecodes.c" + #line 1875 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2617,12 +2613,12 @@ #endif /* ENABLE_SPECIALIZATION */ assert((oparg >> 4) <= Py_GE); res = PyObject_RichCompare(left, right, oparg>>4); - #line 2621 "Python/generated_cases.c.h" + #line 2617 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1892 "Python/bytecodes.c" + #line 1888 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 2626 "Python/generated_cases.c.h" + #line 2622 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2633,7 +2629,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1896 "Python/bytecodes.c" + #line 1892 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -2645,7 +2641,7 @@ _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); res = (sign_ish & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2649 "Python/generated_cases.c.h" + #line 2645 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2656,7 +2652,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1911 "Python/bytecodes.c" + #line 1907 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); @@ -2672,7 +2668,7 @@ _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); res = (sign_ish & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2676 "Python/generated_cases.c.h" + #line 2672 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2683,7 +2679,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1930 "Python/bytecodes.c" + #line 1926 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -2696,7 +2692,7 @@ assert(COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS); res = ((COMPARISON_NOT_EQUALS + eq) & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2700 "Python/generated_cases.c.h" + #line 2696 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2707,14 +2703,14 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1945 "Python/bytecodes.c" + #line 1941 "Python/bytecodes.c" int res = Py_Is(left, right) ^ oparg; - #line 2713 "Python/generated_cases.c.h" + #line 2709 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1947 "Python/bytecodes.c" + #line 1943 "Python/bytecodes.c" b = Py_NewRef(res ? Py_True : Py_False); - #line 2718 "Python/generated_cases.c.h" + #line 2714 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = b; DISPATCH(); @@ -2724,15 +2720,15 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1951 "Python/bytecodes.c" + #line 1947 "Python/bytecodes.c" int res = PySequence_Contains(right, left); - #line 2730 "Python/generated_cases.c.h" + #line 2726 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1953 "Python/bytecodes.c" + #line 1949 "Python/bytecodes.c" if (res < 0) goto pop_2_error; b = Py_NewRef((res^oparg) ? Py_True : Py_False); - #line 2736 "Python/generated_cases.c.h" + #line 2732 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = b; DISPATCH(); @@ -2743,12 +2739,12 @@ PyObject *exc_value = stack_pointer[-2]; PyObject *rest; PyObject *match; - #line 1958 "Python/bytecodes.c" + #line 1954 "Python/bytecodes.c" if (check_except_star_type_valid(tstate, match_type) < 0) { - #line 2749 "Python/generated_cases.c.h" + #line 2745 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 1960 "Python/bytecodes.c" + #line 1956 "Python/bytecodes.c" if (true) goto pop_2_error; } @@ -2756,10 +2752,10 @@ rest = NULL; int res = exception_group_match(exc_value, match_type, &match, &rest); - #line 2760 "Python/generated_cases.c.h" + #line 2756 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 1968 "Python/bytecodes.c" + #line 1964 "Python/bytecodes.c" if (res < 0) goto pop_2_error; assert((match == NULL) == (rest == NULL)); @@ -2768,7 +2764,7 @@ if (!Py_IsNone(match)) { PyErr_SetHandledException(match); } - #line 2772 "Python/generated_cases.c.h" + #line 2768 "Python/generated_cases.c.h" stack_pointer[-1] = match; stack_pointer[-2] = rest; DISPATCH(); @@ -2778,21 +2774,21 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1979 "Python/bytecodes.c" + #line 1975 "Python/bytecodes.c" assert(PyExceptionInstance_Check(left)); if (check_except_type_valid(tstate, right) < 0) { - #line 2785 "Python/generated_cases.c.h" + #line 2781 "Python/generated_cases.c.h" Py_DECREF(right); - #line 1982 "Python/bytecodes.c" + #line 1978 "Python/bytecodes.c" if (true) goto pop_1_error; } int res = PyErr_GivenExceptionMatches(left, right); - #line 2792 "Python/generated_cases.c.h" + #line 2788 "Python/generated_cases.c.h" Py_DECREF(right); - #line 1987 "Python/bytecodes.c" + #line 1983 "Python/bytecodes.c" b = Py_NewRef(res ? Py_True : Py_False); - #line 2796 "Python/generated_cases.c.h" + #line 2792 "Python/generated_cases.c.h" stack_pointer[-1] = b; DISPATCH(); } @@ -2801,15 +2797,15 @@ PyObject *fromlist = stack_pointer[-1]; PyObject *level = stack_pointer[-2]; PyObject *res; - #line 1991 "Python/bytecodes.c" + #line 1987 "Python/bytecodes.c" PyObject *name = GETITEM(frame->f_code->co_names, oparg); res = import_name(tstate, frame, name, fromlist, level); - #line 2808 "Python/generated_cases.c.h" + #line 2804 "Python/generated_cases.c.h" Py_DECREF(level); Py_DECREF(fromlist); - #line 1994 "Python/bytecodes.c" + #line 1990 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 2813 "Python/generated_cases.c.h" + #line 2809 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; DISPATCH(); @@ -2818,29 +2814,29 @@ TARGET(IMPORT_FROM) { PyObject *from = stack_pointer[-1]; PyObject *res; - #line 1998 "Python/bytecodes.c" + #line 1994 "Python/bytecodes.c" PyObject *name = GETITEM(frame->f_code->co_names, oparg); res = import_from(tstate, from, name); if (res == NULL) goto error; - #line 2826 "Python/generated_cases.c.h" + #line 2822 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; DISPATCH(); } TARGET(JUMP_FORWARD) { - #line 2004 "Python/bytecodes.c" + #line 2000 "Python/bytecodes.c" JUMPBY(oparg); - #line 2835 "Python/generated_cases.c.h" + #line 2831 "Python/generated_cases.c.h" DISPATCH(); } TARGET(JUMP_BACKWARD) { PREDICTED(JUMP_BACKWARD); - #line 2008 "Python/bytecodes.c" + #line 2004 "Python/bytecodes.c" assert(oparg < INSTR_OFFSET()); JUMPBY(-oparg); - #line 2844 "Python/generated_cases.c.h" + #line 2840 "Python/generated_cases.c.h" CHECK_EVAL_BREAKER(); DISPATCH(); } @@ -2848,7 +2844,7 @@ TARGET(POP_JUMP_IF_FALSE) { PREDICTED(POP_JUMP_IF_FALSE); PyObject *cond = stack_pointer[-1]; - #line 2014 "Python/bytecodes.c" + #line 2010 "Python/bytecodes.c" if (Py_IsTrue(cond)) { _Py_DECREF_NO_DEALLOC(cond); } @@ -2858,9 +2854,9 @@ } else { int err = PyObject_IsTrue(cond); - #line 2862 "Python/generated_cases.c.h" + #line 2858 "Python/generated_cases.c.h" Py_DECREF(cond); - #line 2024 "Python/bytecodes.c" + #line 2020 "Python/bytecodes.c" if (err == 0) { JUMPBY(oparg); } @@ -2868,14 +2864,14 @@ if (err < 0) goto pop_1_error; } } - #line 2872 "Python/generated_cases.c.h" + #line 2868 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_TRUE) { PyObject *cond = stack_pointer[-1]; - #line 2034 "Python/bytecodes.c" + #line 2030 "Python/bytecodes.c" if (Py_IsFalse(cond)) { _Py_DECREF_NO_DEALLOC(cond); } @@ -2885,9 +2881,9 @@ } else { int err = PyObject_IsTrue(cond); - #line 2889 "Python/generated_cases.c.h" + #line 2885 "Python/generated_cases.c.h" Py_DECREF(cond); - #line 2044 "Python/bytecodes.c" + #line 2040 "Python/bytecodes.c" if (err > 0) { JUMPBY(oparg); } @@ -2895,67 +2891,67 @@ if (err < 0) goto pop_1_error; } } - #line 2899 "Python/generated_cases.c.h" + #line 2895 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_NOT_NONE) { PyObject *value = stack_pointer[-1]; - #line 2054 "Python/bytecodes.c" + #line 2050 "Python/bytecodes.c" if (!Py_IsNone(value)) { - #line 2908 "Python/generated_cases.c.h" + #line 2904 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2056 "Python/bytecodes.c" + #line 2052 "Python/bytecodes.c" JUMPBY(oparg); } else { _Py_DECREF_NO_DEALLOC(value); } - #line 2916 "Python/generated_cases.c.h" + #line 2912 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_NONE) { PyObject *value = stack_pointer[-1]; - #line 2064 "Python/bytecodes.c" + #line 2060 "Python/bytecodes.c" if (Py_IsNone(value)) { _Py_DECREF_NO_DEALLOC(value); JUMPBY(oparg); } else { - #line 2929 "Python/generated_cases.c.h" + #line 2925 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2070 "Python/bytecodes.c" + #line 2066 "Python/bytecodes.c" } - #line 2933 "Python/generated_cases.c.h" + #line 2929 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(JUMP_BACKWARD_NO_INTERRUPT) { - #line 2074 "Python/bytecodes.c" + #line 2070 "Python/bytecodes.c" /* This bytecode is used in the `yield from` or `await` loop. * If there is an interrupt, we want it handled in the innermost * generator or coroutine, so we deliberately do not check it here. * (see bpo-30039). */ JUMPBY(-oparg); - #line 2946 "Python/generated_cases.c.h" + #line 2942 "Python/generated_cases.c.h" DISPATCH(); } TARGET(GET_LEN) { PyObject *obj = stack_pointer[-1]; PyObject *len_o; - #line 2083 "Python/bytecodes.c" + #line 2079 "Python/bytecodes.c" // PUSH(len(TOS)) Py_ssize_t len_i = PyObject_Length(obj); if (len_i < 0) goto error; len_o = PyLong_FromSsize_t(len_i); if (len_o == NULL) goto error; - #line 2959 "Python/generated_cases.c.h" + #line 2955 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = len_o; DISPATCH(); @@ -2966,16 +2962,16 @@ PyObject *type = stack_pointer[-2]; PyObject *subject = stack_pointer[-3]; PyObject *attrs; - #line 2091 "Python/bytecodes.c" + #line 2087 "Python/bytecodes.c" // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or // None on failure. assert(PyTuple_CheckExact(names)); attrs = match_class(tstate, subject, type, oparg, names); - #line 2975 "Python/generated_cases.c.h" + #line 2971 "Python/generated_cases.c.h" Py_DECREF(subject); Py_DECREF(type); Py_DECREF(names); - #line 2096 "Python/bytecodes.c" + #line 2092 "Python/bytecodes.c" if (attrs) { assert(PyTuple_CheckExact(attrs)); // Success! } @@ -2983,7 +2979,7 @@ if (_PyErr_Occurred(tstate)) goto pop_3_error; attrs = Py_NewRef(Py_None); // Failure! } - #line 2987 "Python/generated_cases.c.h" + #line 2983 "Python/generated_cases.c.h" STACK_SHRINK(2); stack_pointer[-1] = attrs; DISPATCH(); @@ -2992,10 +2988,10 @@ TARGET(MATCH_MAPPING) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2106 "Python/bytecodes.c" + #line 2102 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; res = Py_NewRef(match ? Py_True : Py_False); - #line 2999 "Python/generated_cases.c.h" + #line 2995 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; PREDICT(POP_JUMP_IF_FALSE); @@ -3005,10 +3001,10 @@ TARGET(MATCH_SEQUENCE) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2112 "Python/bytecodes.c" + #line 2108 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; res = Py_NewRef(match ? Py_True : Py_False); - #line 3012 "Python/generated_cases.c.h" + #line 3008 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; PREDICT(POP_JUMP_IF_FALSE); @@ -3019,11 +3015,11 @@ PyObject *keys = stack_pointer[-1]; PyObject *subject = stack_pointer[-2]; PyObject *values_or_none; - #line 2118 "Python/bytecodes.c" + #line 2114 "Python/bytecodes.c" // On successful match, PUSH(values). Otherwise, PUSH(None). values_or_none = match_keys(tstate, subject, keys); if (values_or_none == NULL) goto error; - #line 3027 "Python/generated_cases.c.h" + #line 3023 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = values_or_none; DISPATCH(); @@ -3032,14 +3028,14 @@ TARGET(GET_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2124 "Python/bytecodes.c" + #line 2120 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ iter = PyObject_GetIter(iterable); - #line 3039 "Python/generated_cases.c.h" + #line 3035 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2127 "Python/bytecodes.c" + #line 2123 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; - #line 3043 "Python/generated_cases.c.h" + #line 3039 "Python/generated_cases.c.h" stack_pointer[-1] = iter; DISPATCH(); } @@ -3047,7 +3043,7 @@ TARGET(GET_YIELD_FROM_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2131 "Python/bytecodes.c" + #line 2127 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ if (PyCoro_CheckExact(iterable)) { /* `iterable` is a coroutine */ @@ -3070,11 +3066,11 @@ if (iter == NULL) { goto error; } - #line 3074 "Python/generated_cases.c.h" + #line 3070 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2154 "Python/bytecodes.c" + #line 2150 "Python/bytecodes.c" } - #line 3078 "Python/generated_cases.c.h" + #line 3074 "Python/generated_cases.c.h" stack_pointer[-1] = iter; PREDICT(LOAD_CONST); DISPATCH(); @@ -3085,7 +3081,7 @@ static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2173 "Python/bytecodes.c" + #line 2169 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyForIterCache *cache = (_PyForIterCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -3116,7 +3112,7 @@ DISPATCH(); } // Common case: no jump, leave it to the code generator - #line 3120 "Python/generated_cases.c.h" + #line 3116 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3124,7 +3120,7 @@ } TARGET(INSTRUMENTED_FOR_ITER) { - #line 2206 "Python/bytecodes.c" + #line 2202 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr-1; _Py_CODEUNIT *target; PyObject *iter = TOP(); @@ -3150,14 +3146,14 @@ target = next_instr + INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1; } INSTRUMENTED_JUMP(here, target, PY_MONITORING_EVENT_BRANCH); - #line 3154 "Python/generated_cases.c.h" + #line 3150 "Python/generated_cases.c.h" DISPATCH(); } TARGET(FOR_ITER_LIST) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2234 "Python/bytecodes.c" + #line 2230 "Python/bytecodes.c" DEOPT_IF(Py_TYPE(iter) != &PyListIter_Type, FOR_ITER); _PyListIterObject *it = (_PyListIterObject *)iter; STAT_INC(FOR_ITER, hit); @@ -3177,7 +3173,7 @@ DISPATCH(); end_for_iter_list: // Common case: no jump, leave it to the code generator - #line 3181 "Python/generated_cases.c.h" + #line 3177 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3187,7 +3183,7 @@ TARGET(FOR_ITER_TUPLE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2256 "Python/bytecodes.c" + #line 2252 "Python/bytecodes.c" _PyTupleIterObject *it = (_PyTupleIterObject *)iter; DEOPT_IF(Py_TYPE(it) != &PyTupleIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3207,7 +3203,7 @@ DISPATCH(); end_for_iter_tuple: // Common case: no jump, leave it to the code generator - #line 3211 "Python/generated_cases.c.h" + #line 3207 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3217,7 +3213,7 @@ TARGET(FOR_ITER_RANGE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2278 "Python/bytecodes.c" + #line 2274 "Python/bytecodes.c" _PyRangeIterObject *r = (_PyRangeIterObject *)iter; DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3235,7 +3231,7 @@ if (next == NULL) { goto error; } - #line 3239 "Python/generated_cases.c.h" + #line 3235 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3244,7 +3240,7 @@ TARGET(FOR_ITER_GEN) { PyObject *iter = stack_pointer[-1]; - #line 2298 "Python/bytecodes.c" + #line 2294 "Python/bytecodes.c" PyGenObject *gen = (PyGenObject *)iter; DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER); DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, FOR_ITER); @@ -3259,14 +3255,14 @@ assert(next_instr[oparg].op.code == END_FOR || next_instr[oparg].op.code == INSTRUMENTED_END_FOR); DISPATCH_INLINED(gen_frame); - #line 3263 "Python/generated_cases.c.h" + #line 3259 "Python/generated_cases.c.h" } TARGET(BEFORE_ASYNC_WITH) { PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2315 "Python/bytecodes.c" + #line 2311 "Python/bytecodes.c" PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__aenter__)); if (enter == NULL) { if (!_PyErr_Occurred(tstate)) { @@ -3289,16 +3285,16 @@ Py_DECREF(enter); goto error; } - #line 3293 "Python/generated_cases.c.h" + #line 3289 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2338 "Python/bytecodes.c" + #line 2334 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { Py_DECREF(exit); if (true) goto pop_1_error; } - #line 3302 "Python/generated_cases.c.h" + #line 3298 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; stack_pointer[-2] = exit; @@ -3310,7 +3306,7 @@ PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2348 "Python/bytecodes.c" + #line 2344 "Python/bytecodes.c" /* pop the context manager, push its __exit__ and the * value returned from calling its __enter__ */ @@ -3336,16 +3332,16 @@ Py_DECREF(enter); goto error; } - #line 3340 "Python/generated_cases.c.h" + #line 3336 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2374 "Python/bytecodes.c" + #line 2370 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { Py_DECREF(exit); if (true) goto pop_1_error; } - #line 3349 "Python/generated_cases.c.h" + #line 3345 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; stack_pointer[-2] = exit; @@ -3357,7 +3353,7 @@ PyObject *lasti = stack_pointer[-3]; PyObject *exit_func = stack_pointer[-4]; PyObject *res; - #line 2383 "Python/bytecodes.c" + #line 2379 "Python/bytecodes.c" /* At the top of the stack are 4 values: - val: TOP = exc_info() - unused: SECOND = previous exception @@ -3378,7 +3374,7 @@ res = PyObject_Vectorcall(exit_func, stack + 1, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); if (res == NULL) goto error; - #line 3382 "Python/generated_cases.c.h" + #line 3378 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; DISPATCH(); @@ -3387,7 +3383,7 @@ TARGET(PUSH_EXC_INFO) { PyObject *new_exc = stack_pointer[-1]; PyObject *prev_exc; - #line 2406 "Python/bytecodes.c" + #line 2402 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value != NULL) { prev_exc = exc_info->exc_value; @@ -3397,7 +3393,7 @@ } assert(PyExceptionInstance_Check(new_exc)); exc_info->exc_value = Py_NewRef(new_exc); - #line 3401 "Python/generated_cases.c.h" + #line 3397 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = new_exc; stack_pointer[-2] = prev_exc; @@ -3411,7 +3407,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t keys_version = read_u32(&next_instr[3].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2418 "Python/bytecodes.c" + #line 2414 "Python/bytecodes.c" /* Cached method object */ PyTypeObject *self_cls = Py_TYPE(self); assert(type_version != 0); @@ -3428,7 +3424,7 @@ assert(_PyType_HasFeature(Py_TYPE(res2), Py_TPFLAGS_METHOD_DESCRIPTOR)); res = self; assert(oparg & 1); - #line 3432 "Python/generated_cases.c.h" + #line 3428 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3442,7 +3438,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2437 "Python/bytecodes.c" + #line 2433 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); assert(self_cls->tp_dictoffset == 0); @@ -3452,7 +3448,7 @@ res2 = Py_NewRef(descr); res = self; assert(oparg & 1); - #line 3456 "Python/generated_cases.c.h" + #line 3452 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3466,7 +3462,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2449 "Python/bytecodes.c" + #line 2445 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); Py_ssize_t dictoffset = self_cls->tp_dictoffset; @@ -3480,7 +3476,7 @@ res2 = Py_NewRef(descr); res = self; assert(oparg & 1); - #line 3484 "Python/generated_cases.c.h" + #line 3480 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3489,16 +3485,16 @@ } TARGET(KW_NAMES) { - #line 2465 "Python/bytecodes.c" + #line 2461 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg < PyTuple_GET_SIZE(frame->f_code->co_consts)); kwnames = GETITEM(frame->f_code->co_consts, oparg); - #line 3497 "Python/generated_cases.c.h" + #line 3493 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_CALL) { - #line 2471 "Python/bytecodes.c" + #line 2467 "Python/bytecodes.c" int is_meth = PEEK(oparg+2) != NULL; int total_args = oparg + is_meth; PyObject *function = PEEK(total_args + 1); @@ -3511,7 +3507,7 @@ _PyCallCache *cache = (_PyCallCache *)next_instr; INCREMENT_ADAPTIVE_COUNTER(cache->counter); GO_TO_INSTRUCTION(CALL); - #line 3515 "Python/generated_cases.c.h" + #line 3511 "Python/generated_cases.c.h" } TARGET(CALL) { @@ -3521,7 +3517,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2516 "Python/bytecodes.c" + #line 2512 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -3603,7 +3599,7 @@ Py_DECREF(args[i]); } if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3607 "Python/generated_cases.c.h" + #line 3603 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3615,7 +3611,7 @@ TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2604 "Python/bytecodes.c" + #line 2600 "Python/bytecodes.c" DEOPT_IF(method != NULL, CALL); DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); STAT_INC(CALL, hit); @@ -3625,7 +3621,7 @@ PEEK(oparg + 2) = Py_NewRef(meth); // method Py_DECREF(callable); GO_TO_INSTRUCTION(CALL_PY_EXACT_ARGS); - #line 3629 "Python/generated_cases.c.h" + #line 3625 "Python/generated_cases.c.h" } TARGET(CALL_PY_EXACT_ARGS) { @@ -3634,7 +3630,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2616 "Python/bytecodes.c" + #line 2612 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -3660,7 +3656,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 3664 "Python/generated_cases.c.h" + #line 3660 "Python/generated_cases.c.h" } TARGET(CALL_PY_WITH_DEFAULTS) { @@ -3668,7 +3664,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2644 "Python/bytecodes.c" + #line 2640 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -3704,7 +3700,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 3708 "Python/generated_cases.c.h" + #line 3704 "Python/generated_cases.c.h" } TARGET(CALL_NO_KW_TYPE_1) { @@ -3712,7 +3708,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2682 "Python/bytecodes.c" + #line 2678 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3722,7 +3718,7 @@ res = Py_NewRef(Py_TYPE(obj)); Py_DECREF(obj); Py_DECREF(&PyType_Type); // I.e., callable - #line 3726 "Python/generated_cases.c.h" + #line 3722 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3735,7 +3731,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2694 "Python/bytecodes.c" + #line 2690 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3746,7 +3742,7 @@ Py_DECREF(arg); Py_DECREF(&PyUnicode_Type); // I.e., callable if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3750 "Python/generated_cases.c.h" + #line 3746 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3760,7 +3756,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2708 "Python/bytecodes.c" + #line 2704 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3771,7 +3767,7 @@ Py_DECREF(arg); Py_DECREF(&PyTuple_Type); // I.e., tuple if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3775 "Python/generated_cases.c.h" + #line 3771 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3785,7 +3781,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2722 "Python/bytecodes.c" + #line 2718 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -3807,7 +3803,7 @@ } Py_DECREF(tp); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3811 "Python/generated_cases.c.h" + #line 3807 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3821,7 +3817,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2747 "Python/bytecodes.c" + #line 2743 "Python/bytecodes.c" /* Builtin METH_O functions */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -3849,7 +3845,7 @@ Py_DECREF(arg); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3853 "Python/generated_cases.c.h" + #line 3849 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3863,7 +3859,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2778 "Python/bytecodes.c" + #line 2774 "Python/bytecodes.c" /* Builtin METH_FASTCALL functions, without keywords */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -3895,7 +3891,7 @@ 'invalid'). In those cases an exception is set, so we must handle it. */ - #line 3899 "Python/generated_cases.c.h" + #line 3895 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3909,7 +3905,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2813 "Python/bytecodes.c" + #line 2809 "Python/bytecodes.c" /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ int is_meth = method != NULL; int total_args = oparg; @@ -3941,7 +3937,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3945 "Python/generated_cases.c.h" + #line 3941 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3955,7 +3951,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2848 "Python/bytecodes.c" + #line 2844 "Python/bytecodes.c" assert(kwnames == NULL); /* len(o) */ int is_meth = method != NULL; @@ -3980,7 +3976,7 @@ Py_DECREF(callable); Py_DECREF(arg); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3984 "Python/generated_cases.c.h" + #line 3980 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3993,7 +3989,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2875 "Python/bytecodes.c" + #line 2871 "Python/bytecodes.c" assert(kwnames == NULL); /* isinstance(o, o2) */ int is_meth = method != NULL; @@ -4020,7 +4016,7 @@ Py_DECREF(cls); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4024 "Python/generated_cases.c.h" + #line 4020 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4032,7 +4028,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *self = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2905 "Python/bytecodes.c" + #line 2901 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); assert(method != NULL); @@ -4050,14 +4046,14 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL + 1); assert(next_instr[-1].op.code == POP_TOP); DISPATCH(); - #line 4054 "Python/generated_cases.c.h" + #line 4050 "Python/generated_cases.c.h" } TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_O) { PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2925 "Python/bytecodes.c" + #line 2921 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4088,7 +4084,7 @@ Py_DECREF(arg); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4092 "Python/generated_cases.c.h" + #line 4088 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4101,7 +4097,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2959 "Python/bytecodes.c" + #line 2955 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -4130,7 +4126,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4134 "Python/generated_cases.c.h" + #line 4130 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4143,7 +4139,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2991 "Python/bytecodes.c" + #line 2987 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 0 || oparg == 1); int is_meth = method != NULL; @@ -4172,7 +4168,7 @@ Py_DECREF(self); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4176 "Python/generated_cases.c.h" + #line 4172 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4185,7 +4181,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3023 "Python/bytecodes.c" + #line 3019 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4213,7 +4209,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4217 "Python/generated_cases.c.h" + #line 4213 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4223,9 +4219,9 @@ } TARGET(INSTRUMENTED_CALL_FUNCTION_EX) { - #line 3054 "Python/bytecodes.c" + #line 3050 "Python/bytecodes.c" GO_TO_INSTRUCTION(CALL_FUNCTION_EX); - #line 4229 "Python/generated_cases.c.h" + #line 4225 "Python/generated_cases.c.h" } TARGET(CALL_FUNCTION_EX) { @@ -4234,7 +4230,7 @@ PyObject *callargs = stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))]; PyObject *func = stack_pointer[-(2 + ((oparg & 1) ? 1 : 0))]; PyObject *result; - #line 3058 "Python/bytecodes.c" + #line 3054 "Python/bytecodes.c" // DICT_MERGE is called before this opcode if there are kwargs. // It converts all dict subtypes in kwargs into regular dicts. assert(kwargs == NULL || PyDict_CheckExact(kwargs)); @@ -4277,14 +4273,14 @@ else { result = PyObject_Call(func, callargs, kwargs); } - #line 4281 "Python/generated_cases.c.h" + #line 4277 "Python/generated_cases.c.h" Py_DECREF(func); Py_DECREF(callargs); Py_XDECREF(kwargs); - #line 3101 "Python/bytecodes.c" + #line 3097 "Python/bytecodes.c" assert(PEEK(3 + (oparg & 1)) == NULL); if (result == NULL) { STACK_SHRINK(((oparg & 1) ? 1 : 0)); goto pop_3_error; } - #line 4288 "Python/generated_cases.c.h" + #line 4284 "Python/generated_cases.c.h" STACK_SHRINK(((oparg & 1) ? 1 : 0)); STACK_SHRINK(2); stack_pointer[-1] = result; @@ -4299,7 +4295,7 @@ PyObject *kwdefaults = (oparg & 0x02) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0))] : NULL; PyObject *defaults = (oparg & 0x01) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x01) ? 1 : 0))] : NULL; PyObject *func; - #line 3111 "Python/bytecodes.c" + #line 3107 "Python/bytecodes.c" PyFunctionObject *func_obj = (PyFunctionObject *) PyFunction_New(codeobj, GLOBALS()); @@ -4328,14 +4324,14 @@ func_obj->func_version = ((PyCodeObject *)codeobj)->co_version; func = (PyObject *)func_obj; - #line 4332 "Python/generated_cases.c.h" + #line 4328 "Python/generated_cases.c.h" STACK_SHRINK(((oparg & 0x01) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x08) ? 1 : 0)); stack_pointer[-1] = func; DISPATCH(); } TARGET(RETURN_GENERATOR) { - #line 3142 "Python/bytecodes.c" + #line 3138 "Python/bytecodes.c" assert(PyFunction_Check(frame->f_funcobj)); PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); @@ -4356,7 +4352,7 @@ frame = cframe.current_frame = prev; _PyFrame_StackPush(frame, (PyObject *)gen); goto resume_frame; - #line 4360 "Python/generated_cases.c.h" + #line 4356 "Python/generated_cases.c.h" } TARGET(BUILD_SLICE) { @@ -4364,15 +4360,15 @@ PyObject *stop = stack_pointer[-(1 + ((oparg == 3) ? 1 : 0))]; PyObject *start = stack_pointer[-(2 + ((oparg == 3) ? 1 : 0))]; PyObject *slice; - #line 3165 "Python/bytecodes.c" + #line 3161 "Python/bytecodes.c" slice = PySlice_New(start, stop, step); - #line 4370 "Python/generated_cases.c.h" + #line 4366 "Python/generated_cases.c.h" Py_DECREF(start); Py_DECREF(stop); Py_XDECREF(step); - #line 3167 "Python/bytecodes.c" + #line 3163 "Python/bytecodes.c" if (slice == NULL) { STACK_SHRINK(((oparg == 3) ? 1 : 0)); goto pop_2_error; } - #line 4376 "Python/generated_cases.c.h" + #line 4372 "Python/generated_cases.c.h" STACK_SHRINK(((oparg == 3) ? 1 : 0)); STACK_SHRINK(1); stack_pointer[-1] = slice; @@ -4383,7 +4379,7 @@ PyObject *fmt_spec = ((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? stack_pointer[-((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))] : NULL; PyObject *value = stack_pointer[-(1 + (((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))]; PyObject *result; - #line 3171 "Python/bytecodes.c" + #line 3167 "Python/bytecodes.c" /* Handles f-string value formatting. */ PyObject *(*conv_fn)(PyObject *); int which_conversion = oparg & FVC_MASK; @@ -4418,7 +4414,7 @@ Py_DECREF(value); Py_XDECREF(fmt_spec); if (result == NULL) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } - #line 4422 "Python/generated_cases.c.h" + #line 4418 "Python/generated_cases.c.h" STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); stack_pointer[-1] = result; DISPATCH(); @@ -4427,10 +4423,10 @@ TARGET(COPY) { PyObject *bottom = stack_pointer[-(1 + (oparg-1))]; PyObject *top; - #line 3208 "Python/bytecodes.c" + #line 3204 "Python/bytecodes.c" assert(oparg > 0); top = Py_NewRef(bottom); - #line 4434 "Python/generated_cases.c.h" + #line 4430 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = top; DISPATCH(); @@ -4442,7 +4438,7 @@ PyObject *rhs = stack_pointer[-1]; PyObject *lhs = stack_pointer[-2]; PyObject *res; - #line 3213 "Python/bytecodes.c" + #line 3209 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -4457,12 +4453,12 @@ assert((unsigned)oparg < Py_ARRAY_LENGTH(binary_ops)); assert(binary_ops[oparg]); res = binary_ops[oparg](lhs, rhs); - #line 4461 "Python/generated_cases.c.h" + #line 4457 "Python/generated_cases.c.h" Py_DECREF(lhs); Py_DECREF(rhs); - #line 3228 "Python/bytecodes.c" + #line 3224 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 4466 "Python/generated_cases.c.h" + #line 4462 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -4472,16 +4468,16 @@ TARGET(SWAP) { PyObject *top = stack_pointer[-1]; PyObject *bottom = stack_pointer[-(2 + (oparg-2))]; - #line 3233 "Python/bytecodes.c" + #line 3229 "Python/bytecodes.c" assert(oparg >= 2); - #line 4478 "Python/generated_cases.c.h" + #line 4474 "Python/generated_cases.c.h" stack_pointer[-1] = bottom; stack_pointer[-(2 + (oparg-2))] = top; DISPATCH(); } TARGET(INSTRUMENTED_LINE) { - #line 3237 "Python/bytecodes.c" + #line 3233 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr-1; _PyFrame_SetStackPointer(frame, stack_pointer); int original_opcode = _Py_call_instrumentation_line( @@ -4501,11 +4497,11 @@ } opcode = original_opcode; DISPATCH_GOTO(); - #line 4505 "Python/generated_cases.c.h" + #line 4501 "Python/generated_cases.c.h" } TARGET(INSTRUMENTED_INSTRUCTION) { - #line 3259 "Python/bytecodes.c" + #line 3255 "Python/bytecodes.c" int next_opcode = _Py_call_instrumentation_instruction( tstate, frame, next_instr-1); if (next_opcode < 0) goto error; @@ -4517,26 +4513,26 @@ assert(next_opcode > 0 && next_opcode < 256); opcode = next_opcode; DISPATCH_GOTO(); - #line 4521 "Python/generated_cases.c.h" + #line 4517 "Python/generated_cases.c.h" } TARGET(INSTRUMENTED_JUMP_FORWARD) { - #line 3273 "Python/bytecodes.c" + #line 3269 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr+oparg, PY_MONITORING_EVENT_JUMP); - #line 4527 "Python/generated_cases.c.h" + #line 4523 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_JUMP_BACKWARD) { - #line 3277 "Python/bytecodes.c" + #line 3273 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr-oparg, PY_MONITORING_EVENT_JUMP); - #line 4534 "Python/generated_cases.c.h" + #line 4530 "Python/generated_cases.c.h" CHECK_EVAL_BREAKER(); DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE) { - #line 3282 "Python/bytecodes.c" + #line 3278 "Python/bytecodes.c" PyObject *cond = POP(); int err = PyObject_IsTrue(cond); Py_DECREF(cond); @@ -4545,12 +4541,12 @@ assert(err == 0 || err == 1); int offset = err*oparg; INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4549 "Python/generated_cases.c.h" + #line 4545 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE) { - #line 3293 "Python/bytecodes.c" + #line 3289 "Python/bytecodes.c" PyObject *cond = POP(); int err = PyObject_IsTrue(cond); Py_DECREF(cond); @@ -4559,12 +4555,12 @@ assert(err == 0 || err == 1); int offset = (1-err)*oparg; INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4563 "Python/generated_cases.c.h" + #line 4559 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_NONE) { - #line 3304 "Python/bytecodes.c" + #line 3300 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -4577,12 +4573,12 @@ offset = 0; } INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4581 "Python/generated_cases.c.h" + #line 4577 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) { - #line 3319 "Python/bytecodes.c" + #line 3315 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -4595,30 +4591,30 @@ offset = oparg; } INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4599 "Python/generated_cases.c.h" + #line 4595 "Python/generated_cases.c.h" DISPATCH(); } TARGET(EXTENDED_ARG) { - #line 3334 "Python/bytecodes.c" + #line 3330 "Python/bytecodes.c" assert(oparg); opcode = next_instr->op.code; oparg = oparg << 8 | next_instr->op.arg; PRE_DISPATCH_GOTO(); DISPATCH_GOTO(); - #line 4610 "Python/generated_cases.c.h" + #line 4606 "Python/generated_cases.c.h" } TARGET(CACHE) { - #line 3342 "Python/bytecodes.c" + #line 3338 "Python/bytecodes.c" assert(0 && "Executing a cache."); Py_UNREACHABLE(); - #line 4617 "Python/generated_cases.c.h" + #line 4613 "Python/generated_cases.c.h" } TARGET(RESERVED) { - #line 3347 "Python/bytecodes.c" + #line 3343 "Python/bytecodes.c" assert(0 && "Executing RESERVED instruction."); Py_UNREACHABLE(); - #line 4624 "Python/generated_cases.c.h" + #line 4620 "Python/generated_cases.c.h" } From f16126880434ee8ee005a6a00dcac9d86ff20720 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Wed, 19 Apr 2023 20:37:31 -0700 Subject: [PATCH 26/82] cleanup and clarification --- Objects/typeobject.c | 24 +- Python/bytecodes.c | 6 +- Python/generated_cases.c.h | 455 ++++++++++++++++++------------------- 3 files changed, 242 insertions(+), 243 deletions(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 403b09c39eb9634..c52437a2c18e3e6 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -9357,17 +9357,17 @@ super_repr(PyObject *self) su->type ? su->type->tp_name : "NULL"); } +// if `method` is non-NULL, we are looking for a method descriptor, +// and setting `*method` to 1 means we found one. static PyObject * do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, - PyTypeObject *su_obj_type, PyObject *name, int *meth_found) + PyTypeObject *su_obj_type, PyObject *name, int *method) { - PyTypeObject *starttype; PyObject *mro, *res; Py_ssize_t i, n; int temp_su = 0; - starttype = su_obj_type; - if (starttype == NULL) + if (su_obj_type == NULL) goto skip; /* We want __class__ to return the class of the super object @@ -9377,7 +9377,7 @@ do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, _PyUnicode_Equal(name, &_Py_ID(__class__))) goto skip; - mro = starttype->tp_mro; + mro = su_obj_type->tp_mro; if (mro == NULL) goto skip; @@ -9393,7 +9393,7 @@ do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, if (i >= n) goto skip; - /* keep a strong reference to mro because starttype->tp_mro can be + /* keep a strong reference to mro because su_obj_type->tp_mro can be replaced during PyDict_GetItemWithError(dict, name) */ Py_INCREF(mro); do { @@ -9404,8 +9404,8 @@ do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, res = PyDict_GetItemWithError(dict, name); if (res != NULL) { Py_INCREF(res); - if (meth_found && _PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)) { - *meth_found = 1; + if (method && _PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)) { + *method = 1; } else { descrgetfunc f = Py_TYPE(res)->tp_descr_get; @@ -9414,8 +9414,8 @@ do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, res2 = f(res, /* Only pass 'obj' param if this is instance-mode super (See SF ID #743627) */ - (su_obj == (PyObject *)starttype) ? NULL : su_obj, - (PyObject *)starttype); + (su_obj == (PyObject *)su_obj_type) ? NULL : su_obj, + (PyObject *)su_obj_type); Py_SETREF(res, res2); } } @@ -9509,13 +9509,13 @@ supercheck(PyTypeObject *type, PyObject *obj) } PyObject * -_PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, PyObject *name, int *meth_found) +_PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, PyObject *name, int *method) { PyTypeObject *su_obj_type = supercheck(su_type, su_obj); if (su_obj_type == NULL) { return NULL; } - PyObject *res = do_super_lookup(NULL, su_type, su_obj, su_obj_type, name, meth_found); + PyObject *res = do_super_lookup(NULL, su_type, su_obj, su_obj_type, name, method); Py_DECREF(su_obj_type); return res; } diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 437868653cc0249..dc66059cc81cc0d 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -1557,16 +1557,16 @@ dummy_func( inst(LOAD_SUPER_ATTR, (global_super, class, self -- res2 if (oparg & 1), res)) { PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 2); if (global_super == (PyObject *)&PySuper_Type && PyType_Check(class)) { - int meth_found = 0; + int method = 0; Py_DECREF(global_super); - res = _PySuper_Lookup((PyTypeObject *)class, self, name, oparg & 1 ? &meth_found : NULL); + res = _PySuper_Lookup((PyTypeObject *)class, self, name, oparg & 1 ? &method : NULL); Py_DECREF(class); if (res == NULL) { Py_DECREF(self); ERROR_IF(true, error); } // Works with CALL, pushes two values: either `meth | self` or `NULL | meth`. - if (meth_found) { + if (method) { res2 = res; res = self; // transfer ownership } else { diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 0d8ce579209fd99..0b5a91f7a1d94ad 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -2176,16 +2176,16 @@ #line 1558 "Python/bytecodes.c" PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 2); if (global_super == (PyObject *)&PySuper_Type && PyType_Check(class)) { - int meth_found = 0; + int method = 0; Py_DECREF(global_super); - res = _PySuper_Lookup((PyTypeObject *)class, self, name, oparg & 1 ? &meth_found : NULL); + res = _PySuper_Lookup((PyTypeObject *)class, self, name, oparg & 1 ? &method : NULL); Py_DECREF(class); if (res == NULL) { Py_DECREF(self); if (true) goto pop_3_error; } // Works with CALL, pushes two values: either `meth | self` or `NULL | meth`. - if (meth_found) { + if (method) { res2 = res; res = self; // transfer ownership } else { @@ -2193,20 +2193,19 @@ Py_DECREF(self); } } else { - PyObject *super; PyObject *stack[] = {class, self}; - super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); - #line 2200 "Python/generated_cases.c.h" + PyObject *super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); + #line 2199 "Python/generated_cases.c.h" Py_DECREF(global_super); Py_DECREF(class); Py_DECREF(self); - #line 1581 "Python/bytecodes.c" + #line 1580 "Python/bytecodes.c" if (super == NULL) goto pop_3_error; res = PyObject_GetAttr(super, name); Py_DECREF(super); if (res == NULL) goto pop_3_error; } - #line 2210 "Python/generated_cases.c.h" + #line 2209 "Python/generated_cases.c.h" STACK_SHRINK(2); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2220,7 +2219,7 @@ PyObject *owner = stack_pointer[-1]; PyObject *res2 = NULL; PyObject *res; - #line 1603 "Python/bytecodes.c" + #line 1602 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyAttrCache *cache = (_PyAttrCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2254,9 +2253,9 @@ NULL | meth | arg1 | ... | argN */ - #line 2258 "Python/generated_cases.c.h" + #line 2257 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1637 "Python/bytecodes.c" + #line 1636 "Python/bytecodes.c" if (meth == NULL) goto pop_1_error; res2 = NULL; res = meth; @@ -2265,12 +2264,12 @@ else { /* Classic, pushes one value. */ res = PyObject_GetAttr(owner, name); - #line 2269 "Python/generated_cases.c.h" + #line 2268 "Python/generated_cases.c.h" Py_DECREF(owner); - #line 1646 "Python/bytecodes.c" + #line 1645 "Python/bytecodes.c" if (res == NULL) goto pop_1_error; } - #line 2274 "Python/generated_cases.c.h" + #line 2273 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -2284,7 +2283,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1651 "Python/bytecodes.c" + #line 1650 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2297,7 +2296,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2301 "Python/generated_cases.c.h" + #line 2300 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2312,7 +2311,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1667 "Python/bytecodes.c" + #line 1666 "Python/bytecodes.c" DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; assert(dict != NULL); @@ -2325,7 +2324,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2329 "Python/generated_cases.c.h" + #line 2328 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2340,7 +2339,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1683 "Python/bytecodes.c" + #line 1682 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2367,7 +2366,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2371 "Python/generated_cases.c.h" + #line 2370 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2382,7 +2381,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1713 "Python/bytecodes.c" + #line 1712 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); @@ -2392,7 +2391,7 @@ STAT_INC(LOAD_ATTR, hit); Py_INCREF(res); res2 = NULL; - #line 2396 "Python/generated_cases.c.h" + #line 2395 "Python/generated_cases.c.h" Py_DECREF(owner); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2407,7 +2406,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 1726 "Python/bytecodes.c" + #line 1725 "Python/bytecodes.c" DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, @@ -2419,7 +2418,7 @@ res = descr; assert(res != NULL); Py_INCREF(res); - #line 2423 "Python/generated_cases.c.h" + #line 2422 "Python/generated_cases.c.h" Py_DECREF(cls); STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; @@ -2433,7 +2432,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *fget = read_obj(&next_instr[5].cache); - #line 1741 "Python/bytecodes.c" + #line 1740 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); @@ -2457,7 +2456,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 2461 "Python/generated_cases.c.h" + #line 2460 "Python/generated_cases.c.h" } TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { @@ -2465,7 +2464,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t func_version = read_u32(&next_instr[3].cache); PyObject *getattribute = read_obj(&next_instr[5].cache); - #line 1767 "Python/bytecodes.c" + #line 1766 "Python/bytecodes.c" DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); PyTypeObject *cls = Py_TYPE(owner); DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); @@ -2491,7 +2490,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 2495 "Python/generated_cases.c.h" + #line 2494 "Python/generated_cases.c.h" } TARGET(STORE_ATTR_INSTANCE_VALUE) { @@ -2499,7 +2498,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1795 "Python/bytecodes.c" + #line 1794 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2517,7 +2516,7 @@ Py_DECREF(old_value); } Py_DECREF(owner); - #line 2521 "Python/generated_cases.c.h" + #line 2520 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2528,7 +2527,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t hint = read_u16(&next_instr[3].cache); - #line 1815 "Python/bytecodes.c" + #line 1814 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2567,7 +2566,7 @@ /* PEP 509 */ dict->ma_version_tag = new_version; Py_DECREF(owner); - #line 2571 "Python/generated_cases.c.h" + #line 2570 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2578,7 +2577,7 @@ PyObject *value = stack_pointer[-2]; uint32_t type_version = read_u32(&next_instr[1].cache); uint16_t index = read_u16(&next_instr[3].cache); - #line 1856 "Python/bytecodes.c" + #line 1855 "Python/bytecodes.c" PyTypeObject *tp = Py_TYPE(owner); assert(type_version != 0); DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); @@ -2588,7 +2587,7 @@ *(PyObject **)addr = value; Py_XDECREF(old_value); Py_DECREF(owner); - #line 2592 "Python/generated_cases.c.h" + #line 2591 "Python/generated_cases.c.h" STACK_SHRINK(2); next_instr += 4; DISPATCH(); @@ -2600,7 +2599,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1875 "Python/bytecodes.c" + #line 1874 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -2613,12 +2612,12 @@ #endif /* ENABLE_SPECIALIZATION */ assert((oparg >> 4) <= Py_GE); res = PyObject_RichCompare(left, right, oparg>>4); - #line 2617 "Python/generated_cases.c.h" + #line 2616 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1888 "Python/bytecodes.c" + #line 1887 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 2622 "Python/generated_cases.c.h" + #line 2621 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2629,7 +2628,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1892 "Python/bytecodes.c" + #line 1891 "Python/bytecodes.c" DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -2641,7 +2640,7 @@ _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); res = (sign_ish & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2645 "Python/generated_cases.c.h" + #line 2644 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2652,7 +2651,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1907 "Python/bytecodes.c" + #line 1906 "Python/bytecodes.c" DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); @@ -2668,7 +2667,7 @@ _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); res = (sign_ish & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2672 "Python/generated_cases.c.h" + #line 2671 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2679,7 +2678,7 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *res; - #line 1926 "Python/bytecodes.c" + #line 1925 "Python/bytecodes.c" DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); STAT_INC(COMPARE_OP, hit); @@ -2692,7 +2691,7 @@ assert(COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS); res = ((COMPARISON_NOT_EQUALS + eq) & oparg) ? Py_True : Py_False; Py_INCREF(res); - #line 2696 "Python/generated_cases.c.h" + #line 2695 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -2703,14 +2702,14 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1941 "Python/bytecodes.c" + #line 1940 "Python/bytecodes.c" int res = Py_Is(left, right) ^ oparg; - #line 2709 "Python/generated_cases.c.h" + #line 2708 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1943 "Python/bytecodes.c" + #line 1942 "Python/bytecodes.c" b = Py_NewRef(res ? Py_True : Py_False); - #line 2714 "Python/generated_cases.c.h" + #line 2713 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = b; DISPATCH(); @@ -2720,15 +2719,15 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1947 "Python/bytecodes.c" + #line 1946 "Python/bytecodes.c" int res = PySequence_Contains(right, left); - #line 2726 "Python/generated_cases.c.h" + #line 2725 "Python/generated_cases.c.h" Py_DECREF(left); Py_DECREF(right); - #line 1949 "Python/bytecodes.c" + #line 1948 "Python/bytecodes.c" if (res < 0) goto pop_2_error; b = Py_NewRef((res^oparg) ? Py_True : Py_False); - #line 2732 "Python/generated_cases.c.h" + #line 2731 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = b; DISPATCH(); @@ -2739,12 +2738,12 @@ PyObject *exc_value = stack_pointer[-2]; PyObject *rest; PyObject *match; - #line 1954 "Python/bytecodes.c" + #line 1953 "Python/bytecodes.c" if (check_except_star_type_valid(tstate, match_type) < 0) { - #line 2745 "Python/generated_cases.c.h" + #line 2744 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 1956 "Python/bytecodes.c" + #line 1955 "Python/bytecodes.c" if (true) goto pop_2_error; } @@ -2752,10 +2751,10 @@ rest = NULL; int res = exception_group_match(exc_value, match_type, &match, &rest); - #line 2756 "Python/generated_cases.c.h" + #line 2755 "Python/generated_cases.c.h" Py_DECREF(exc_value); Py_DECREF(match_type); - #line 1964 "Python/bytecodes.c" + #line 1963 "Python/bytecodes.c" if (res < 0) goto pop_2_error; assert((match == NULL) == (rest == NULL)); @@ -2764,7 +2763,7 @@ if (!Py_IsNone(match)) { PyErr_SetHandledException(match); } - #line 2768 "Python/generated_cases.c.h" + #line 2767 "Python/generated_cases.c.h" stack_pointer[-1] = match; stack_pointer[-2] = rest; DISPATCH(); @@ -2774,21 +2773,21 @@ PyObject *right = stack_pointer[-1]; PyObject *left = stack_pointer[-2]; PyObject *b; - #line 1975 "Python/bytecodes.c" + #line 1974 "Python/bytecodes.c" assert(PyExceptionInstance_Check(left)); if (check_except_type_valid(tstate, right) < 0) { - #line 2781 "Python/generated_cases.c.h" + #line 2780 "Python/generated_cases.c.h" Py_DECREF(right); - #line 1978 "Python/bytecodes.c" + #line 1977 "Python/bytecodes.c" if (true) goto pop_1_error; } int res = PyErr_GivenExceptionMatches(left, right); - #line 2788 "Python/generated_cases.c.h" + #line 2787 "Python/generated_cases.c.h" Py_DECREF(right); - #line 1983 "Python/bytecodes.c" + #line 1982 "Python/bytecodes.c" b = Py_NewRef(res ? Py_True : Py_False); - #line 2792 "Python/generated_cases.c.h" + #line 2791 "Python/generated_cases.c.h" stack_pointer[-1] = b; DISPATCH(); } @@ -2797,15 +2796,15 @@ PyObject *fromlist = stack_pointer[-1]; PyObject *level = stack_pointer[-2]; PyObject *res; - #line 1987 "Python/bytecodes.c" + #line 1986 "Python/bytecodes.c" PyObject *name = GETITEM(frame->f_code->co_names, oparg); res = import_name(tstate, frame, name, fromlist, level); - #line 2804 "Python/generated_cases.c.h" + #line 2803 "Python/generated_cases.c.h" Py_DECREF(level); Py_DECREF(fromlist); - #line 1990 "Python/bytecodes.c" + #line 1989 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 2809 "Python/generated_cases.c.h" + #line 2808 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; DISPATCH(); @@ -2814,29 +2813,29 @@ TARGET(IMPORT_FROM) { PyObject *from = stack_pointer[-1]; PyObject *res; - #line 1994 "Python/bytecodes.c" + #line 1993 "Python/bytecodes.c" PyObject *name = GETITEM(frame->f_code->co_names, oparg); res = import_from(tstate, from, name); if (res == NULL) goto error; - #line 2822 "Python/generated_cases.c.h" + #line 2821 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; DISPATCH(); } TARGET(JUMP_FORWARD) { - #line 2000 "Python/bytecodes.c" + #line 1999 "Python/bytecodes.c" JUMPBY(oparg); - #line 2831 "Python/generated_cases.c.h" + #line 2830 "Python/generated_cases.c.h" DISPATCH(); } TARGET(JUMP_BACKWARD) { PREDICTED(JUMP_BACKWARD); - #line 2004 "Python/bytecodes.c" + #line 2003 "Python/bytecodes.c" assert(oparg < INSTR_OFFSET()); JUMPBY(-oparg); - #line 2840 "Python/generated_cases.c.h" + #line 2839 "Python/generated_cases.c.h" CHECK_EVAL_BREAKER(); DISPATCH(); } @@ -2844,7 +2843,7 @@ TARGET(POP_JUMP_IF_FALSE) { PREDICTED(POP_JUMP_IF_FALSE); PyObject *cond = stack_pointer[-1]; - #line 2010 "Python/bytecodes.c" + #line 2009 "Python/bytecodes.c" if (Py_IsTrue(cond)) { _Py_DECREF_NO_DEALLOC(cond); } @@ -2854,9 +2853,9 @@ } else { int err = PyObject_IsTrue(cond); - #line 2858 "Python/generated_cases.c.h" + #line 2857 "Python/generated_cases.c.h" Py_DECREF(cond); - #line 2020 "Python/bytecodes.c" + #line 2019 "Python/bytecodes.c" if (err == 0) { JUMPBY(oparg); } @@ -2864,14 +2863,14 @@ if (err < 0) goto pop_1_error; } } - #line 2868 "Python/generated_cases.c.h" + #line 2867 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_TRUE) { PyObject *cond = stack_pointer[-1]; - #line 2030 "Python/bytecodes.c" + #line 2029 "Python/bytecodes.c" if (Py_IsFalse(cond)) { _Py_DECREF_NO_DEALLOC(cond); } @@ -2881,9 +2880,9 @@ } else { int err = PyObject_IsTrue(cond); - #line 2885 "Python/generated_cases.c.h" + #line 2884 "Python/generated_cases.c.h" Py_DECREF(cond); - #line 2040 "Python/bytecodes.c" + #line 2039 "Python/bytecodes.c" if (err > 0) { JUMPBY(oparg); } @@ -2891,67 +2890,67 @@ if (err < 0) goto pop_1_error; } } - #line 2895 "Python/generated_cases.c.h" + #line 2894 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_NOT_NONE) { PyObject *value = stack_pointer[-1]; - #line 2050 "Python/bytecodes.c" + #line 2049 "Python/bytecodes.c" if (!Py_IsNone(value)) { - #line 2904 "Python/generated_cases.c.h" + #line 2903 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2052 "Python/bytecodes.c" + #line 2051 "Python/bytecodes.c" JUMPBY(oparg); } else { _Py_DECREF_NO_DEALLOC(value); } - #line 2912 "Python/generated_cases.c.h" + #line 2911 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(POP_JUMP_IF_NONE) { PyObject *value = stack_pointer[-1]; - #line 2060 "Python/bytecodes.c" + #line 2059 "Python/bytecodes.c" if (Py_IsNone(value)) { _Py_DECREF_NO_DEALLOC(value); JUMPBY(oparg); } else { - #line 2925 "Python/generated_cases.c.h" + #line 2924 "Python/generated_cases.c.h" Py_DECREF(value); - #line 2066 "Python/bytecodes.c" + #line 2065 "Python/bytecodes.c" } - #line 2929 "Python/generated_cases.c.h" + #line 2928 "Python/generated_cases.c.h" STACK_SHRINK(1); DISPATCH(); } TARGET(JUMP_BACKWARD_NO_INTERRUPT) { - #line 2070 "Python/bytecodes.c" + #line 2069 "Python/bytecodes.c" /* This bytecode is used in the `yield from` or `await` loop. * If there is an interrupt, we want it handled in the innermost * generator or coroutine, so we deliberately do not check it here. * (see bpo-30039). */ JUMPBY(-oparg); - #line 2942 "Python/generated_cases.c.h" + #line 2941 "Python/generated_cases.c.h" DISPATCH(); } TARGET(GET_LEN) { PyObject *obj = stack_pointer[-1]; PyObject *len_o; - #line 2079 "Python/bytecodes.c" + #line 2078 "Python/bytecodes.c" // PUSH(len(TOS)) Py_ssize_t len_i = PyObject_Length(obj); if (len_i < 0) goto error; len_o = PyLong_FromSsize_t(len_i); if (len_o == NULL) goto error; - #line 2955 "Python/generated_cases.c.h" + #line 2954 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = len_o; DISPATCH(); @@ -2962,16 +2961,16 @@ PyObject *type = stack_pointer[-2]; PyObject *subject = stack_pointer[-3]; PyObject *attrs; - #line 2087 "Python/bytecodes.c" + #line 2086 "Python/bytecodes.c" // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or // None on failure. assert(PyTuple_CheckExact(names)); attrs = match_class(tstate, subject, type, oparg, names); - #line 2971 "Python/generated_cases.c.h" + #line 2970 "Python/generated_cases.c.h" Py_DECREF(subject); Py_DECREF(type); Py_DECREF(names); - #line 2092 "Python/bytecodes.c" + #line 2091 "Python/bytecodes.c" if (attrs) { assert(PyTuple_CheckExact(attrs)); // Success! } @@ -2979,7 +2978,7 @@ if (_PyErr_Occurred(tstate)) goto pop_3_error; attrs = Py_NewRef(Py_None); // Failure! } - #line 2983 "Python/generated_cases.c.h" + #line 2982 "Python/generated_cases.c.h" STACK_SHRINK(2); stack_pointer[-1] = attrs; DISPATCH(); @@ -2988,10 +2987,10 @@ TARGET(MATCH_MAPPING) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2102 "Python/bytecodes.c" + #line 2101 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; res = Py_NewRef(match ? Py_True : Py_False); - #line 2995 "Python/generated_cases.c.h" + #line 2994 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; PREDICT(POP_JUMP_IF_FALSE); @@ -3001,10 +3000,10 @@ TARGET(MATCH_SEQUENCE) { PyObject *subject = stack_pointer[-1]; PyObject *res; - #line 2108 "Python/bytecodes.c" + #line 2107 "Python/bytecodes.c" int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; res = Py_NewRef(match ? Py_True : Py_False); - #line 3008 "Python/generated_cases.c.h" + #line 3007 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; PREDICT(POP_JUMP_IF_FALSE); @@ -3015,11 +3014,11 @@ PyObject *keys = stack_pointer[-1]; PyObject *subject = stack_pointer[-2]; PyObject *values_or_none; - #line 2114 "Python/bytecodes.c" + #line 2113 "Python/bytecodes.c" // On successful match, PUSH(values). Otherwise, PUSH(None). values_or_none = match_keys(tstate, subject, keys); if (values_or_none == NULL) goto error; - #line 3023 "Python/generated_cases.c.h" + #line 3022 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = values_or_none; DISPATCH(); @@ -3028,14 +3027,14 @@ TARGET(GET_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2120 "Python/bytecodes.c" + #line 2119 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ iter = PyObject_GetIter(iterable); - #line 3035 "Python/generated_cases.c.h" + #line 3034 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2123 "Python/bytecodes.c" + #line 2122 "Python/bytecodes.c" if (iter == NULL) goto pop_1_error; - #line 3039 "Python/generated_cases.c.h" + #line 3038 "Python/generated_cases.c.h" stack_pointer[-1] = iter; DISPATCH(); } @@ -3043,7 +3042,7 @@ TARGET(GET_YIELD_FROM_ITER) { PyObject *iterable = stack_pointer[-1]; PyObject *iter; - #line 2127 "Python/bytecodes.c" + #line 2126 "Python/bytecodes.c" /* before: [obj]; after [getiter(obj)] */ if (PyCoro_CheckExact(iterable)) { /* `iterable` is a coroutine */ @@ -3066,11 +3065,11 @@ if (iter == NULL) { goto error; } - #line 3070 "Python/generated_cases.c.h" + #line 3069 "Python/generated_cases.c.h" Py_DECREF(iterable); - #line 2150 "Python/bytecodes.c" + #line 2149 "Python/bytecodes.c" } - #line 3074 "Python/generated_cases.c.h" + #line 3073 "Python/generated_cases.c.h" stack_pointer[-1] = iter; PREDICT(LOAD_CONST); DISPATCH(); @@ -3081,7 +3080,7 @@ static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2169 "Python/bytecodes.c" + #line 2168 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyForIterCache *cache = (_PyForIterCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -3112,7 +3111,7 @@ DISPATCH(); } // Common case: no jump, leave it to the code generator - #line 3116 "Python/generated_cases.c.h" + #line 3115 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3120,7 +3119,7 @@ } TARGET(INSTRUMENTED_FOR_ITER) { - #line 2202 "Python/bytecodes.c" + #line 2201 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr-1; _Py_CODEUNIT *target; PyObject *iter = TOP(); @@ -3146,14 +3145,14 @@ target = next_instr + INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1; } INSTRUMENTED_JUMP(here, target, PY_MONITORING_EVENT_BRANCH); - #line 3150 "Python/generated_cases.c.h" + #line 3149 "Python/generated_cases.c.h" DISPATCH(); } TARGET(FOR_ITER_LIST) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2230 "Python/bytecodes.c" + #line 2229 "Python/bytecodes.c" DEOPT_IF(Py_TYPE(iter) != &PyListIter_Type, FOR_ITER); _PyListIterObject *it = (_PyListIterObject *)iter; STAT_INC(FOR_ITER, hit); @@ -3173,7 +3172,7 @@ DISPATCH(); end_for_iter_list: // Common case: no jump, leave it to the code generator - #line 3177 "Python/generated_cases.c.h" + #line 3176 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3183,7 +3182,7 @@ TARGET(FOR_ITER_TUPLE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2252 "Python/bytecodes.c" + #line 2251 "Python/bytecodes.c" _PyTupleIterObject *it = (_PyTupleIterObject *)iter; DEOPT_IF(Py_TYPE(it) != &PyTupleIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3203,7 +3202,7 @@ DISPATCH(); end_for_iter_tuple: // Common case: no jump, leave it to the code generator - #line 3207 "Python/generated_cases.c.h" + #line 3206 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3213,7 +3212,7 @@ TARGET(FOR_ITER_RANGE) { PyObject *iter = stack_pointer[-1]; PyObject *next; - #line 2274 "Python/bytecodes.c" + #line 2273 "Python/bytecodes.c" _PyRangeIterObject *r = (_PyRangeIterObject *)iter; DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); STAT_INC(FOR_ITER, hit); @@ -3231,7 +3230,7 @@ if (next == NULL) { goto error; } - #line 3235 "Python/generated_cases.c.h" + #line 3234 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = next; next_instr += 1; @@ -3240,7 +3239,7 @@ TARGET(FOR_ITER_GEN) { PyObject *iter = stack_pointer[-1]; - #line 2294 "Python/bytecodes.c" + #line 2293 "Python/bytecodes.c" PyGenObject *gen = (PyGenObject *)iter; DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER); DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, FOR_ITER); @@ -3255,14 +3254,14 @@ assert(next_instr[oparg].op.code == END_FOR || next_instr[oparg].op.code == INSTRUMENTED_END_FOR); DISPATCH_INLINED(gen_frame); - #line 3259 "Python/generated_cases.c.h" + #line 3258 "Python/generated_cases.c.h" } TARGET(BEFORE_ASYNC_WITH) { PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2311 "Python/bytecodes.c" + #line 2310 "Python/bytecodes.c" PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__aenter__)); if (enter == NULL) { if (!_PyErr_Occurred(tstate)) { @@ -3285,16 +3284,16 @@ Py_DECREF(enter); goto error; } - #line 3289 "Python/generated_cases.c.h" + #line 3288 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2334 "Python/bytecodes.c" + #line 2333 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { Py_DECREF(exit); if (true) goto pop_1_error; } - #line 3298 "Python/generated_cases.c.h" + #line 3297 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; stack_pointer[-2] = exit; @@ -3306,7 +3305,7 @@ PyObject *mgr = stack_pointer[-1]; PyObject *exit; PyObject *res; - #line 2344 "Python/bytecodes.c" + #line 2343 "Python/bytecodes.c" /* pop the context manager, push its __exit__ and the * value returned from calling its __enter__ */ @@ -3332,16 +3331,16 @@ Py_DECREF(enter); goto error; } - #line 3336 "Python/generated_cases.c.h" + #line 3335 "Python/generated_cases.c.h" Py_DECREF(mgr); - #line 2370 "Python/bytecodes.c" + #line 2369 "Python/bytecodes.c" res = _PyObject_CallNoArgs(enter); Py_DECREF(enter); if (res == NULL) { Py_DECREF(exit); if (true) goto pop_1_error; } - #line 3345 "Python/generated_cases.c.h" + #line 3344 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; stack_pointer[-2] = exit; @@ -3353,7 +3352,7 @@ PyObject *lasti = stack_pointer[-3]; PyObject *exit_func = stack_pointer[-4]; PyObject *res; - #line 2379 "Python/bytecodes.c" + #line 2378 "Python/bytecodes.c" /* At the top of the stack are 4 values: - val: TOP = exc_info() - unused: SECOND = previous exception @@ -3374,7 +3373,7 @@ res = PyObject_Vectorcall(exit_func, stack + 1, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); if (res == NULL) goto error; - #line 3378 "Python/generated_cases.c.h" + #line 3377 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = res; DISPATCH(); @@ -3383,7 +3382,7 @@ TARGET(PUSH_EXC_INFO) { PyObject *new_exc = stack_pointer[-1]; PyObject *prev_exc; - #line 2402 "Python/bytecodes.c" + #line 2401 "Python/bytecodes.c" _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value != NULL) { prev_exc = exc_info->exc_value; @@ -3393,7 +3392,7 @@ } assert(PyExceptionInstance_Check(new_exc)); exc_info->exc_value = Py_NewRef(new_exc); - #line 3397 "Python/generated_cases.c.h" + #line 3396 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = new_exc; stack_pointer[-2] = prev_exc; @@ -3407,7 +3406,7 @@ uint32_t type_version = read_u32(&next_instr[1].cache); uint32_t keys_version = read_u32(&next_instr[3].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2414 "Python/bytecodes.c" + #line 2413 "Python/bytecodes.c" /* Cached method object */ PyTypeObject *self_cls = Py_TYPE(self); assert(type_version != 0); @@ -3424,7 +3423,7 @@ assert(_PyType_HasFeature(Py_TYPE(res2), Py_TPFLAGS_METHOD_DESCRIPTOR)); res = self; assert(oparg & 1); - #line 3428 "Python/generated_cases.c.h" + #line 3427 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3438,7 +3437,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2433 "Python/bytecodes.c" + #line 2432 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); assert(self_cls->tp_dictoffset == 0); @@ -3448,7 +3447,7 @@ res2 = Py_NewRef(descr); res = self; assert(oparg & 1); - #line 3452 "Python/generated_cases.c.h" + #line 3451 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3462,7 +3461,7 @@ PyObject *res; uint32_t type_version = read_u32(&next_instr[1].cache); PyObject *descr = read_obj(&next_instr[5].cache); - #line 2445 "Python/bytecodes.c" + #line 2444 "Python/bytecodes.c" PyTypeObject *self_cls = Py_TYPE(self); DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); Py_ssize_t dictoffset = self_cls->tp_dictoffset; @@ -3476,7 +3475,7 @@ res2 = Py_NewRef(descr); res = self; assert(oparg & 1); - #line 3480 "Python/generated_cases.c.h" + #line 3479 "Python/generated_cases.c.h" STACK_GROW(((oparg & 1) ? 1 : 0)); stack_pointer[-1] = res; if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } @@ -3485,16 +3484,16 @@ } TARGET(KW_NAMES) { - #line 2461 "Python/bytecodes.c" + #line 2460 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg < PyTuple_GET_SIZE(frame->f_code->co_consts)); kwnames = GETITEM(frame->f_code->co_consts, oparg); - #line 3493 "Python/generated_cases.c.h" + #line 3492 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_CALL) { - #line 2467 "Python/bytecodes.c" + #line 2466 "Python/bytecodes.c" int is_meth = PEEK(oparg+2) != NULL; int total_args = oparg + is_meth; PyObject *function = PEEK(total_args + 1); @@ -3507,7 +3506,7 @@ _PyCallCache *cache = (_PyCallCache *)next_instr; INCREMENT_ADAPTIVE_COUNTER(cache->counter); GO_TO_INSTRUCTION(CALL); - #line 3511 "Python/generated_cases.c.h" + #line 3510 "Python/generated_cases.c.h" } TARGET(CALL) { @@ -3517,7 +3516,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2512 "Python/bytecodes.c" + #line 2511 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -3599,7 +3598,7 @@ Py_DECREF(args[i]); } if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3603 "Python/generated_cases.c.h" + #line 3602 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3611,7 +3610,7 @@ TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2600 "Python/bytecodes.c" + #line 2599 "Python/bytecodes.c" DEOPT_IF(method != NULL, CALL); DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); STAT_INC(CALL, hit); @@ -3621,7 +3620,7 @@ PEEK(oparg + 2) = Py_NewRef(meth); // method Py_DECREF(callable); GO_TO_INSTRUCTION(CALL_PY_EXACT_ARGS); - #line 3625 "Python/generated_cases.c.h" + #line 3624 "Python/generated_cases.c.h" } TARGET(CALL_PY_EXACT_ARGS) { @@ -3630,7 +3629,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2612 "Python/bytecodes.c" + #line 2611 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -3656,7 +3655,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 3660 "Python/generated_cases.c.h" + #line 3659 "Python/generated_cases.c.h" } TARGET(CALL_PY_WITH_DEFAULTS) { @@ -3664,7 +3663,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2640 "Python/bytecodes.c" + #line 2639 "Python/bytecodes.c" assert(kwnames == NULL); DEOPT_IF(tstate->interp->eval_frame, CALL); int is_meth = method != NULL; @@ -3700,7 +3699,7 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL); frame->return_offset = 0; DISPATCH_INLINED(new_frame); - #line 3704 "Python/generated_cases.c.h" + #line 3703 "Python/generated_cases.c.h" } TARGET(CALL_NO_KW_TYPE_1) { @@ -3708,7 +3707,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2678 "Python/bytecodes.c" + #line 2677 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3718,7 +3717,7 @@ res = Py_NewRef(Py_TYPE(obj)); Py_DECREF(obj); Py_DECREF(&PyType_Type); // I.e., callable - #line 3722 "Python/generated_cases.c.h" + #line 3721 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3731,7 +3730,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2690 "Python/bytecodes.c" + #line 2689 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3742,7 +3741,7 @@ Py_DECREF(arg); Py_DECREF(&PyUnicode_Type); // I.e., callable if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3746 "Python/generated_cases.c.h" + #line 3745 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3756,7 +3755,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *null = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2704 "Python/bytecodes.c" + #line 2703 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); DEOPT_IF(null != NULL, CALL); @@ -3767,7 +3766,7 @@ Py_DECREF(arg); Py_DECREF(&PyTuple_Type); // I.e., tuple if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3771 "Python/generated_cases.c.h" + #line 3770 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3781,7 +3780,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2718 "Python/bytecodes.c" + #line 2717 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -3803,7 +3802,7 @@ } Py_DECREF(tp); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3807 "Python/generated_cases.c.h" + #line 3806 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3817,7 +3816,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2743 "Python/bytecodes.c" + #line 2742 "Python/bytecodes.c" /* Builtin METH_O functions */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -3845,7 +3844,7 @@ Py_DECREF(arg); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3849 "Python/generated_cases.c.h" + #line 3848 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3859,7 +3858,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2774 "Python/bytecodes.c" + #line 2773 "Python/bytecodes.c" /* Builtin METH_FASTCALL functions, without keywords */ assert(kwnames == NULL); int is_meth = method != NULL; @@ -3891,7 +3890,7 @@ 'invalid'). In those cases an exception is set, so we must handle it. */ - #line 3895 "Python/generated_cases.c.h" + #line 3894 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3905,7 +3904,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2809 "Python/bytecodes.c" + #line 2808 "Python/bytecodes.c" /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ int is_meth = method != NULL; int total_args = oparg; @@ -3937,7 +3936,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3941 "Python/generated_cases.c.h" + #line 3940 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3951,7 +3950,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2844 "Python/bytecodes.c" + #line 2843 "Python/bytecodes.c" assert(kwnames == NULL); /* len(o) */ int is_meth = method != NULL; @@ -3976,7 +3975,7 @@ Py_DECREF(callable); Py_DECREF(arg); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3980 "Python/generated_cases.c.h" + #line 3979 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -3989,7 +3988,7 @@ PyObject *callable = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2871 "Python/bytecodes.c" + #line 2870 "Python/bytecodes.c" assert(kwnames == NULL); /* isinstance(o, o2) */ int is_meth = method != NULL; @@ -4016,7 +4015,7 @@ Py_DECREF(cls); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4020 "Python/generated_cases.c.h" + #line 4019 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4028,7 +4027,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *self = stack_pointer[-(1 + oparg)]; PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2901 "Python/bytecodes.c" + #line 2900 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 1); assert(method != NULL); @@ -4046,14 +4045,14 @@ JUMPBY(INLINE_CACHE_ENTRIES_CALL + 1); assert(next_instr[-1].op.code == POP_TOP); DISPATCH(); - #line 4050 "Python/generated_cases.c.h" + #line 4049 "Python/generated_cases.c.h" } TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_O) { PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2921 "Python/bytecodes.c" + #line 2920 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4084,7 +4083,7 @@ Py_DECREF(arg); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4088 "Python/generated_cases.c.h" + #line 4087 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4097,7 +4096,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2955 "Python/bytecodes.c" + #line 2954 "Python/bytecodes.c" int is_meth = method != NULL; int total_args = oparg; if (is_meth) { @@ -4126,7 +4125,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4130 "Python/generated_cases.c.h" + #line 4129 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4139,7 +4138,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 2987 "Python/bytecodes.c" + #line 2986 "Python/bytecodes.c" assert(kwnames == NULL); assert(oparg == 0 || oparg == 1); int is_meth = method != NULL; @@ -4168,7 +4167,7 @@ Py_DECREF(self); Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4172 "Python/generated_cases.c.h" + #line 4171 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4181,7 +4180,7 @@ PyObject **args = (stack_pointer - oparg); PyObject *method = stack_pointer[-(2 + oparg)]; PyObject *res; - #line 3019 "Python/bytecodes.c" + #line 3018 "Python/bytecodes.c" assert(kwnames == NULL); int is_meth = method != NULL; int total_args = oparg; @@ -4209,7 +4208,7 @@ } Py_DECREF(callable); if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4213 "Python/generated_cases.c.h" + #line 4212 "Python/generated_cases.c.h" STACK_SHRINK(oparg); STACK_SHRINK(1); stack_pointer[-1] = res; @@ -4219,9 +4218,9 @@ } TARGET(INSTRUMENTED_CALL_FUNCTION_EX) { - #line 3050 "Python/bytecodes.c" + #line 3049 "Python/bytecodes.c" GO_TO_INSTRUCTION(CALL_FUNCTION_EX); - #line 4225 "Python/generated_cases.c.h" + #line 4224 "Python/generated_cases.c.h" } TARGET(CALL_FUNCTION_EX) { @@ -4230,7 +4229,7 @@ PyObject *callargs = stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))]; PyObject *func = stack_pointer[-(2 + ((oparg & 1) ? 1 : 0))]; PyObject *result; - #line 3054 "Python/bytecodes.c" + #line 3053 "Python/bytecodes.c" // DICT_MERGE is called before this opcode if there are kwargs. // It converts all dict subtypes in kwargs into regular dicts. assert(kwargs == NULL || PyDict_CheckExact(kwargs)); @@ -4273,14 +4272,14 @@ else { result = PyObject_Call(func, callargs, kwargs); } - #line 4277 "Python/generated_cases.c.h" + #line 4276 "Python/generated_cases.c.h" Py_DECREF(func); Py_DECREF(callargs); Py_XDECREF(kwargs); - #line 3097 "Python/bytecodes.c" + #line 3096 "Python/bytecodes.c" assert(PEEK(3 + (oparg & 1)) == NULL); if (result == NULL) { STACK_SHRINK(((oparg & 1) ? 1 : 0)); goto pop_3_error; } - #line 4284 "Python/generated_cases.c.h" + #line 4283 "Python/generated_cases.c.h" STACK_SHRINK(((oparg & 1) ? 1 : 0)); STACK_SHRINK(2); stack_pointer[-1] = result; @@ -4295,7 +4294,7 @@ PyObject *kwdefaults = (oparg & 0x02) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0))] : NULL; PyObject *defaults = (oparg & 0x01) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x01) ? 1 : 0))] : NULL; PyObject *func; - #line 3107 "Python/bytecodes.c" + #line 3106 "Python/bytecodes.c" PyFunctionObject *func_obj = (PyFunctionObject *) PyFunction_New(codeobj, GLOBALS()); @@ -4324,14 +4323,14 @@ func_obj->func_version = ((PyCodeObject *)codeobj)->co_version; func = (PyObject *)func_obj; - #line 4328 "Python/generated_cases.c.h" + #line 4327 "Python/generated_cases.c.h" STACK_SHRINK(((oparg & 0x01) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x08) ? 1 : 0)); stack_pointer[-1] = func; DISPATCH(); } TARGET(RETURN_GENERATOR) { - #line 3138 "Python/bytecodes.c" + #line 3137 "Python/bytecodes.c" assert(PyFunction_Check(frame->f_funcobj)); PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); @@ -4352,7 +4351,7 @@ frame = cframe.current_frame = prev; _PyFrame_StackPush(frame, (PyObject *)gen); goto resume_frame; - #line 4356 "Python/generated_cases.c.h" + #line 4355 "Python/generated_cases.c.h" } TARGET(BUILD_SLICE) { @@ -4360,15 +4359,15 @@ PyObject *stop = stack_pointer[-(1 + ((oparg == 3) ? 1 : 0))]; PyObject *start = stack_pointer[-(2 + ((oparg == 3) ? 1 : 0))]; PyObject *slice; - #line 3161 "Python/bytecodes.c" + #line 3160 "Python/bytecodes.c" slice = PySlice_New(start, stop, step); - #line 4366 "Python/generated_cases.c.h" + #line 4365 "Python/generated_cases.c.h" Py_DECREF(start); Py_DECREF(stop); Py_XDECREF(step); - #line 3163 "Python/bytecodes.c" + #line 3162 "Python/bytecodes.c" if (slice == NULL) { STACK_SHRINK(((oparg == 3) ? 1 : 0)); goto pop_2_error; } - #line 4372 "Python/generated_cases.c.h" + #line 4371 "Python/generated_cases.c.h" STACK_SHRINK(((oparg == 3) ? 1 : 0)); STACK_SHRINK(1); stack_pointer[-1] = slice; @@ -4379,7 +4378,7 @@ PyObject *fmt_spec = ((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? stack_pointer[-((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))] : NULL; PyObject *value = stack_pointer[-(1 + (((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))]; PyObject *result; - #line 3167 "Python/bytecodes.c" + #line 3166 "Python/bytecodes.c" /* Handles f-string value formatting. */ PyObject *(*conv_fn)(PyObject *); int which_conversion = oparg & FVC_MASK; @@ -4414,7 +4413,7 @@ Py_DECREF(value); Py_XDECREF(fmt_spec); if (result == NULL) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } - #line 4418 "Python/generated_cases.c.h" + #line 4417 "Python/generated_cases.c.h" STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); stack_pointer[-1] = result; DISPATCH(); @@ -4423,10 +4422,10 @@ TARGET(COPY) { PyObject *bottom = stack_pointer[-(1 + (oparg-1))]; PyObject *top; - #line 3204 "Python/bytecodes.c" + #line 3203 "Python/bytecodes.c" assert(oparg > 0); top = Py_NewRef(bottom); - #line 4430 "Python/generated_cases.c.h" + #line 4429 "Python/generated_cases.c.h" STACK_GROW(1); stack_pointer[-1] = top; DISPATCH(); @@ -4438,7 +4437,7 @@ PyObject *rhs = stack_pointer[-1]; PyObject *lhs = stack_pointer[-2]; PyObject *res; - #line 3209 "Python/bytecodes.c" + #line 3208 "Python/bytecodes.c" #if ENABLE_SPECIALIZATION _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { @@ -4453,12 +4452,12 @@ assert((unsigned)oparg < Py_ARRAY_LENGTH(binary_ops)); assert(binary_ops[oparg]); res = binary_ops[oparg](lhs, rhs); - #line 4457 "Python/generated_cases.c.h" + #line 4456 "Python/generated_cases.c.h" Py_DECREF(lhs); Py_DECREF(rhs); - #line 3224 "Python/bytecodes.c" + #line 3223 "Python/bytecodes.c" if (res == NULL) goto pop_2_error; - #line 4462 "Python/generated_cases.c.h" + #line 4461 "Python/generated_cases.c.h" STACK_SHRINK(1); stack_pointer[-1] = res; next_instr += 1; @@ -4468,16 +4467,16 @@ TARGET(SWAP) { PyObject *top = stack_pointer[-1]; PyObject *bottom = stack_pointer[-(2 + (oparg-2))]; - #line 3229 "Python/bytecodes.c" + #line 3228 "Python/bytecodes.c" assert(oparg >= 2); - #line 4474 "Python/generated_cases.c.h" + #line 4473 "Python/generated_cases.c.h" stack_pointer[-1] = bottom; stack_pointer[-(2 + (oparg-2))] = top; DISPATCH(); } TARGET(INSTRUMENTED_LINE) { - #line 3233 "Python/bytecodes.c" + #line 3232 "Python/bytecodes.c" _Py_CODEUNIT *here = next_instr-1; _PyFrame_SetStackPointer(frame, stack_pointer); int original_opcode = _Py_call_instrumentation_line( @@ -4497,11 +4496,11 @@ } opcode = original_opcode; DISPATCH_GOTO(); - #line 4501 "Python/generated_cases.c.h" + #line 4500 "Python/generated_cases.c.h" } TARGET(INSTRUMENTED_INSTRUCTION) { - #line 3255 "Python/bytecodes.c" + #line 3254 "Python/bytecodes.c" int next_opcode = _Py_call_instrumentation_instruction( tstate, frame, next_instr-1); if (next_opcode < 0) goto error; @@ -4513,26 +4512,26 @@ assert(next_opcode > 0 && next_opcode < 256); opcode = next_opcode; DISPATCH_GOTO(); - #line 4517 "Python/generated_cases.c.h" + #line 4516 "Python/generated_cases.c.h" } TARGET(INSTRUMENTED_JUMP_FORWARD) { - #line 3269 "Python/bytecodes.c" + #line 3268 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr+oparg, PY_MONITORING_EVENT_JUMP); - #line 4523 "Python/generated_cases.c.h" + #line 4522 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_JUMP_BACKWARD) { - #line 3273 "Python/bytecodes.c" + #line 3272 "Python/bytecodes.c" INSTRUMENTED_JUMP(next_instr-1, next_instr-oparg, PY_MONITORING_EVENT_JUMP); - #line 4530 "Python/generated_cases.c.h" + #line 4529 "Python/generated_cases.c.h" CHECK_EVAL_BREAKER(); DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE) { - #line 3278 "Python/bytecodes.c" + #line 3277 "Python/bytecodes.c" PyObject *cond = POP(); int err = PyObject_IsTrue(cond); Py_DECREF(cond); @@ -4541,12 +4540,12 @@ assert(err == 0 || err == 1); int offset = err*oparg; INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4545 "Python/generated_cases.c.h" + #line 4544 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE) { - #line 3289 "Python/bytecodes.c" + #line 3288 "Python/bytecodes.c" PyObject *cond = POP(); int err = PyObject_IsTrue(cond); Py_DECREF(cond); @@ -4555,12 +4554,12 @@ assert(err == 0 || err == 1); int offset = (1-err)*oparg; INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4559 "Python/generated_cases.c.h" + #line 4558 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_NONE) { - #line 3300 "Python/bytecodes.c" + #line 3299 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -4573,12 +4572,12 @@ offset = 0; } INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4577 "Python/generated_cases.c.h" + #line 4576 "Python/generated_cases.c.h" DISPATCH(); } TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) { - #line 3315 "Python/bytecodes.c" + #line 3314 "Python/bytecodes.c" PyObject *value = POP(); _Py_CODEUNIT *here = next_instr-1; int offset; @@ -4591,30 +4590,30 @@ offset = oparg; } INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4595 "Python/generated_cases.c.h" + #line 4594 "Python/generated_cases.c.h" DISPATCH(); } TARGET(EXTENDED_ARG) { - #line 3330 "Python/bytecodes.c" + #line 3329 "Python/bytecodes.c" assert(oparg); opcode = next_instr->op.code; oparg = oparg << 8 | next_instr->op.arg; PRE_DISPATCH_GOTO(); DISPATCH_GOTO(); - #line 4606 "Python/generated_cases.c.h" + #line 4605 "Python/generated_cases.c.h" } TARGET(CACHE) { - #line 3338 "Python/bytecodes.c" + #line 3337 "Python/bytecodes.c" assert(0 && "Executing a cache."); Py_UNREACHABLE(); - #line 4613 "Python/generated_cases.c.h" + #line 4612 "Python/generated_cases.c.h" } TARGET(RESERVED) { - #line 3343 "Python/bytecodes.c" + #line 3342 "Python/bytecodes.c" assert(0 && "Executing RESERVED instruction."); Py_UNREACHABLE(); - #line 4620 "Python/generated_cases.c.h" + #line 4619 "Python/generated_cases.c.h" } From df442c0deb2f3dec8bfbd01fd97a5e00080b4096 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Wed, 19 Apr 2023 21:14:48 -0700 Subject: [PATCH 27/82] move __class__ special case out of the fast path --- Lib/test/test_super.py | 17 +++++++++++++++++ Objects/typeobject.c | 15 ++++++++------- Python/compile.c | 10 ++++++---- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/Lib/test/test_super.py b/Lib/test/test_super.py index 2cdfd342f320f1e..ed773a3cff2a6d1 100644 --- a/Lib/test/test_super.py +++ b/Lib/test/test_super.py @@ -393,6 +393,23 @@ def method(self): with self.assertRaisesRegex(TypeError, "argument 1 must be a type"): C().method() + def test_super___class__(self): + class C: + def method(self): + return super().__class__ + + self.assertEqual(C().method(), super) + + def test_super_subclass___class__(self): + class mysuper(super): + pass + + class C: + def method(self): + return mysuper(C, self).__class__ + + self.assertEqual(C().method(), mysuper) + if __name__ == "__main__": unittest.main() diff --git a/Objects/typeobject.c b/Objects/typeobject.c index c52437a2c18e3e6..fc4de6da8f273ba 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -9370,13 +9370,6 @@ do_super_lookup(superobject *su, PyTypeObject *su_type, PyObject *su_obj, if (su_obj_type == NULL) goto skip; - /* We want __class__ to return the class of the super object - (i.e. super, or a subclass), not the class of su->obj. */ - if (PyUnicode_Check(name) && - PyUnicode_GET_LENGTH(name) == 9 && - _PyUnicode_Equal(name, &_Py_ID(__class__))) - goto skip; - mro = su_obj_type->tp_mro; if (mro == NULL) goto skip; @@ -9452,6 +9445,14 @@ static PyObject * super_getattro(PyObject *self, PyObject *name) { superobject *su = (superobject *)self; + + /* We want __class__ to return the class of the super object + (i.e. super, or a subclass), not the class of su->obj. */ + if (PyUnicode_Check(name) && + PyUnicode_GET_LENGTH(name) == 9 && + _PyUnicode_Equal(name, &_Py_ID(__class__))) + return PyObject_GenericGetAttr(self, name); + return do_super_lookup(su, su->type, su->obj, su->obj_type, name, NULL); } diff --git a/Python/compile.c b/Python/compile.c index a6ef25901973a8d..966b28a11d35267 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -4237,18 +4237,20 @@ is_import_originated(struct compiler *c, expr_ty e) } static int -can_optimize_super_call(struct compiler *c, expr_ty e) +can_optimize_super_call(struct compiler *c, expr_ty attr) { + expr_ty e = attr->v.Attribute.value; if (e->kind != Call_kind || e->v.Call.func->kind != Name_kind || !_PyUnicode_EqualToASCIIString(e->v.Call.func->v.Name.id, "super") || + _PyUnicode_EqualToASCIIString(attr->v.Attribute.attr, "__class__") || asdl_seq_LEN(e->v.Call.keywords) != 0) { return 0; } Py_ssize_t num_args = asdl_seq_LEN(e->v.Call.args); PyObject *super_name = e->v.Call.func->v.Name.id; - // try to detect statically-visible shadowing of 'super' name + // detect statically-visible shadowing of 'super' name int scope = _PyST_GetScope(c->u->u_ste, super_name); if (scope != GLOBAL_IMPLICIT) { return 0; @@ -4388,7 +4390,7 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) /* Alright, we can optimize the code. */ location loc = LOC(meth); - if (can_optimize_super_call(c, meth->v.Attribute.value)) { + if (can_optimize_super_call(c, meth)) { RETURN_IF_ERROR(load_args_for_super(c, meth->v.Attribute.value)); int opcode = asdl_seq_LEN(meth->v.Attribute.value->v.Call.args) ? LOAD_SUPER_METHOD : LOAD_ZERO_SUPER_METHOD; @@ -5406,7 +5408,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) return compiler_formatted_value(c, e); /* The following exprs can be assignment targets. */ case Attribute_kind: - if (e->v.Attribute.ctx == Load && can_optimize_super_call(c, e->v.Attribute.value)) { + if (e->v.Attribute.ctx == Load && can_optimize_super_call(c, e)) { RETURN_IF_ERROR(load_args_for_super(c, e->v.Attribute.value)); int opcode = asdl_seq_LEN(e->v.Attribute.value->v.Call.args) ? LOAD_SUPER_ATTR : LOAD_ZERO_SUPER_ATTR; From 4898415df724380d4c8b0ec08e8cb92f126193c3 Mon Sep 17 00:00:00 2001 From: Adrien Date: Thu, 20 Apr 2023 16:07:41 +0200 Subject: [PATCH 28/82] gh-98641: Document difference between task group and gather (#103644) The purpose of the comments is to rule out the implication that asyncio.TaskGroup is a drop-in replacement / better alternative to asyncio.gather(). --- Doc/library/asyncio-task.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index b81d89acf7fd880..ba0f909c405a342 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -256,8 +256,9 @@ Creating Tasks .. note:: - :meth:`asyncio.TaskGroup.create_task` is a newer alternative - that allows for convenient waiting for a group of related tasks. + :meth:`asyncio.TaskGroup.create_task` is a new alternative + leveraging structural concurrency; it allows for waiting + for a group of related tasks with strong safety guarantees. .. important:: @@ -340,7 +341,7 @@ Example:: async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) - print("Both tasks have completed now.") + print(f"Both tasks have completed now: {task1.result()}, {task2.result()}") The ``async with`` statement will wait for all tasks in the group to finish. While waiting, new tasks may still be added to the group @@ -459,8 +460,12 @@ Running Tasks Concurrently Tasks/Futures to be cancelled. .. note:: - A more modern way to create and run tasks concurrently and - wait for their completion is :class:`asyncio.TaskGroup`. + A new alternative to create and run tasks concurrently and + wait for their completion is :class:`asyncio.TaskGroup`. *TaskGroup* + provides stronger safety guarantees than *gather* for scheduling a nesting of subtasks: + if a task (or a subtask, a task scheduled by a task) + raises an exception, *TaskGroup* will, while *gather* will not, + cancel the remaining scheduled tasks). .. _asyncio_example_gather: From 5c00a6224d55f8818ef567b93f484b5429e2ae80 Mon Sep 17 00:00:00 2001 From: Wheeler Law Date: Thu, 20 Apr 2023 21:04:25 -0500 Subject: [PATCH 29/82] gh-99352: Respect `http.client.HTTPConnection.debuglevel` in `urllib.request.AbstractHTTPHandler` (#99353) * bugfix: let the HTTP- and HTTPSHandlers respect the value of http.client.HTTPConnection.debuglevel * add tests * add news * ReSTify NEWS and reword a bit. * Address Review Comments. * Use mock.patch.object instead of settting the module level value. * Used test values to assert the debuglevel. --------- Co-authored-by: Gregory P. Smith Co-authored-by: Senthil Kumaran --- Lib/test/test_urllib2.py | 65 ++++++++++++++----- Lib/urllib/request.py | 7 +- ...2-11-10-16-26-47.gh-issue-99353.DQFjnt.rst | 3 + 3 files changed, 57 insertions(+), 18 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2022-11-10-16-26-47.gh-issue-99353.DQFjnt.rst diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 633d596ac3de3fe..b7c6f6dd8f1b99b 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -3,6 +3,7 @@ from test.support import os_helper from test.support import warnings_helper from test import test_urllib +from unittest import mock import os import io @@ -484,7 +485,18 @@ def build_test_opener(*handler_instances): return opener -class MockHTTPHandler(urllib.request.BaseHandler): +class MockHTTPHandler(urllib.request.HTTPHandler): + # Very simple mock HTTP handler with no special behavior other than using a mock HTTP connection + + def __init__(self, debuglevel=None): + super(MockHTTPHandler, self).__init__(debuglevel=debuglevel) + self.httpconn = MockHTTPClass() + + def http_open(self, req): + return self.do_open(self.httpconn, req) + + +class MockHTTPHandlerRedirect(urllib.request.BaseHandler): # useful for testing redirections and auth # sends supplied headers and code as first response # sends 200 OK as second response @@ -512,12 +524,12 @@ def http_open(self, req): return MockResponse(200, "OK", msg, "", req.get_full_url()) -class MockHTTPSHandler(urllib.request.AbstractHTTPHandler): +class MockHTTPSHandler(urllib.request.HTTPSHandler): # Useful for testing the Proxy-Authorization request by verifying the # properties of httpcon - def __init__(self, debuglevel=0): - urllib.request.AbstractHTTPHandler.__init__(self, debuglevel=debuglevel) + def __init__(self, debuglevel=None, context=None, check_hostname=None): + super(MockHTTPSHandler, self).__init__(debuglevel, context, check_hostname) self.httpconn = MockHTTPClass() def https_open(self, req): @@ -1048,12 +1060,35 @@ def test_http_body_array(self): newreq = h.do_request_(req) self.assertEqual(int(newreq.get_header('Content-length')),16) - def test_http_handler_debuglevel(self): + def test_http_handler_global_debuglevel(self): + with mock.patch.object(http.client.HTTPConnection, 'debuglevel', 6): + o = OpenerDirector() + h = MockHTTPHandler() + o.add_handler(h) + o.open("http://www.example.com") + self.assertEqual(h._debuglevel, 6) + + def test_http_handler_local_debuglevel(self): + o = OpenerDirector() + h = MockHTTPHandler(debuglevel=5) + o.add_handler(h) + o.open("http://www.example.com") + self.assertEqual(h._debuglevel, 5) + + def test_https_handler_global_debuglevel(self): + with mock.patch.object(http.client.HTTPSConnection, 'debuglevel', 7): + o = OpenerDirector() + h = MockHTTPSHandler() + o.add_handler(h) + o.open("https://www.example.com") + self.assertEqual(h._debuglevel, 7) + + def test_https_handler_local_debuglevel(self): o = OpenerDirector() - h = MockHTTPSHandler(debuglevel=1) + h = MockHTTPSHandler(debuglevel=4) o.add_handler(h) o.open("https://www.example.com") - self.assertEqual(h._debuglevel, 1) + self.assertEqual(h._debuglevel, 4) def test_http_doubleslash(self): # Checks the presence of any unnecessary double slash in url does not @@ -1289,7 +1324,7 @@ def test_cookie_redirect(self): cj = CookieJar() interact_netscape(cj, "http://www.example.com/", "spam=eggs") - hh = MockHTTPHandler(302, "Location: http://www.cracker.com/\r\n\r\n") + hh = MockHTTPHandlerRedirect(302, "Location: http://www.cracker.com/\r\n\r\n") hdeh = urllib.request.HTTPDefaultErrorHandler() hrh = urllib.request.HTTPRedirectHandler() cp = urllib.request.HTTPCookieProcessor(cj) @@ -1299,7 +1334,7 @@ def test_cookie_redirect(self): def test_redirect_fragment(self): redirected_url = 'http://www.example.com/index.html#OK\r\n\r\n' - hh = MockHTTPHandler(302, 'Location: ' + redirected_url) + hh = MockHTTPHandlerRedirect(302, 'Location: ' + redirected_url) hdeh = urllib.request.HTTPDefaultErrorHandler() hrh = urllib.request.HTTPRedirectHandler() o = build_test_opener(hh, hdeh, hrh) @@ -1484,7 +1519,7 @@ def check_basic_auth(self, headers, realm): password_manager = MockPasswordManager() auth_handler = urllib.request.HTTPBasicAuthHandler(password_manager) body = '\r\n'.join(headers) + '\r\n\r\n' - http_handler = MockHTTPHandler(401, body) + http_handler = MockHTTPHandlerRedirect(401, body) opener.add_handler(auth_handler) opener.add_handler(http_handler) self._test_basic_auth(opener, auth_handler, "Authorization", @@ -1544,7 +1579,7 @@ def test_proxy_basic_auth(self): password_manager = MockPasswordManager() auth_handler = urllib.request.ProxyBasicAuthHandler(password_manager) realm = "ACME Networks" - http_handler = MockHTTPHandler( + http_handler = MockHTTPHandlerRedirect( 407, 'Proxy-Authenticate: Basic realm="%s"\r\n\r\n' % realm) opener.add_handler(auth_handler) opener.add_handler(http_handler) @@ -1588,7 +1623,7 @@ def http_error_401(self, *args, **kwds): digest_handler = TestDigestAuthHandler(password_manager) basic_handler = TestBasicAuthHandler(password_manager) realm = "ACME Networks" - http_handler = MockHTTPHandler( + http_handler = MockHTTPHandlerRedirect( 401, 'WWW-Authenticate: Basic realm="%s"\r\n\r\n' % realm) opener.add_handler(basic_handler) opener.add_handler(digest_handler) @@ -1608,7 +1643,7 @@ def test_unsupported_auth_digest_handler(self): opener = OpenerDirector() # While using DigestAuthHandler digest_auth_handler = urllib.request.HTTPDigestAuthHandler(None) - http_handler = MockHTTPHandler( + http_handler = MockHTTPHandlerRedirect( 401, 'WWW-Authenticate: Kerberos\r\n\r\n') opener.add_handler(digest_auth_handler) opener.add_handler(http_handler) @@ -1618,7 +1653,7 @@ def test_unsupported_auth_basic_handler(self): # While using BasicAuthHandler opener = OpenerDirector() basic_auth_handler = urllib.request.HTTPBasicAuthHandler(None) - http_handler = MockHTTPHandler( + http_handler = MockHTTPHandlerRedirect( 401, 'WWW-Authenticate: NTLM\r\n\r\n') opener.add_handler(basic_auth_handler) opener.add_handler(http_handler) @@ -1705,7 +1740,7 @@ def test_basic_prior_auth_send_after_first_success(self): opener = OpenerDirector() opener.add_handler(auth_prior_handler) - http_handler = MockHTTPHandler( + http_handler = MockHTTPHandlerRedirect( 401, 'WWW-Authenticate: Basic realm="%s"\r\n\r\n' % None) opener.add_handler(http_handler) diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 151034e6a81bf92..19e2e5bd3356272 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -1251,8 +1251,8 @@ def http_error_407(self, req, fp, code, msg, headers): class AbstractHTTPHandler(BaseHandler): - def __init__(self, debuglevel=0): - self._debuglevel = debuglevel + def __init__(self, debuglevel=None): + self._debuglevel = debuglevel if debuglevel is not None else http.client.HTTPConnection.debuglevel def set_http_debuglevel(self, level): self._debuglevel = level @@ -1378,7 +1378,8 @@ def http_open(self, req): class HTTPSHandler(AbstractHTTPHandler): - def __init__(self, debuglevel=0, context=None, check_hostname=None): + def __init__(self, debuglevel=None, context=None, check_hostname=None): + debuglevel = debuglevel if debuglevel is not None else http.client.HTTPSConnection.debuglevel AbstractHTTPHandler.__init__(self, debuglevel) if context is None: http_version = http.client.HTTPSConnection._http_vsn diff --git a/Misc/NEWS.d/next/Library/2022-11-10-16-26-47.gh-issue-99353.DQFjnt.rst b/Misc/NEWS.d/next/Library/2022-11-10-16-26-47.gh-issue-99353.DQFjnt.rst new file mode 100644 index 000000000000000..1ad42d5c9aa53df --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-11-10-16-26-47.gh-issue-99353.DQFjnt.rst @@ -0,0 +1,3 @@ +Respect the :class:`http.client.HTTPConnection` ``.debuglevel`` flag +in :class:`urllib.request.AbstractHTTPHandler` when its constructor +parameter ``debuglevel`` is not set. And do the same for ``*HTTPS*``. From 3e0fec7e07a71bdeeab7554e980110fbc47763b9 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Thu, 20 Apr 2023 22:12:48 -0400 Subject: [PATCH 30/82] Sync with importlib_metadata 6.5 (GH-103584) --- Doc/library/importlib.metadata.rst | 4 + Lib/importlib/metadata/__init__.py | 98 +++++++++-- Lib/importlib/metadata/_adapters.py | 21 +++ Lib/importlib/metadata/_meta.py | 28 +++- Lib/test/test_importlib/_context.py | 13 ++ Lib/test/test_importlib/_path.py | 109 +++++++++++++ Lib/test/test_importlib/fixtures.py | 153 +++++++++++++----- Lib/test/test_importlib/test_main.py | 109 ++++++++++++- Lib/test/test_importlib/test_metadata_api.py | 56 ++++++- ...-04-16-19-48-21.gh-issue-103584.3mBTuM.rst | 12 ++ 10 files changed, 531 insertions(+), 72 deletions(-) create mode 100644 Lib/test/test_importlib/_context.py create mode 100644 Lib/test/test_importlib/_path.py create mode 100644 Misc/NEWS.d/next/Library/2023-04-16-19-48-21.gh-issue-103584.3mBTuM.rst diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst index 6e084101995e259..b306d5f55a714f2 100644 --- a/Doc/library/importlib.metadata.rst +++ b/Doc/library/importlib.metadata.rst @@ -308,6 +308,10 @@ Python module or `Import Package >> packages_distributions() {'importlib_metadata': ['importlib-metadata'], 'yaml': ['PyYAML'], 'jaraco': ['jaraco.classes', 'jaraco.functools'], ...} +Some editable installs, `do not supply top-level names +`_, and thus this +function is not reliable with such installs. + .. versionadded:: 3.10 .. _distributions: diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index 40ab1a1aaac3289..b8eb19d05dccaeb 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -12,7 +12,9 @@ import functools import itertools import posixpath +import contextlib import collections +import inspect from . import _adapters, _meta from ._collections import FreezableDefaultDict, Pair @@ -24,7 +26,7 @@ from importlib import import_module from importlib.abc import MetaPathFinder from itertools import starmap -from typing import List, Mapping, Optional +from typing import List, Mapping, Optional, cast __all__ = [ @@ -341,11 +343,30 @@ def __repr__(self): return f'' -class Distribution: +class DeprecatedNonAbstract: + def __new__(cls, *args, **kwargs): + all_names = { + name for subclass in inspect.getmro(cls) for name in vars(subclass) + } + abstract = { + name + for name in all_names + if getattr(getattr(cls, name), '__isabstractmethod__', False) + } + if abstract: + warnings.warn( + f"Unimplemented abstract methods {abstract}", + DeprecationWarning, + stacklevel=2, + ) + return super().__new__(cls) + + +class Distribution(DeprecatedNonAbstract): """A Python distribution package.""" @abc.abstractmethod - def read_text(self, filename): + def read_text(self, filename) -> Optional[str]: """Attempt to load metadata file given by the name. :param filename: The name of the file in the distribution info. @@ -419,7 +440,7 @@ def metadata(self) -> _meta.PackageMetadata: The returned object will have keys that name the various bits of metadata. See PEP 566 for details. """ - text = ( + opt_text = ( self.read_text('METADATA') or self.read_text('PKG-INFO') # This last clause is here to support old egg-info files. Its @@ -427,6 +448,7 @@ def metadata(self) -> _meta.PackageMetadata: # (which points to the egg-info file) attribute unchanged. or self.read_text('') ) + text = cast(str, opt_text) return _adapters.Message(email.message_from_string(text)) @property @@ -455,8 +477,8 @@ def files(self): :return: List of PackagePath for this distribution or None Result is `None` if the metadata file that enumerates files - (i.e. RECORD for dist-info or SOURCES.txt for egg-info) is - missing. + (i.e. RECORD for dist-info, or installed-files.txt or + SOURCES.txt for egg-info) is missing. Result may be empty if the metadata exists but is empty. """ @@ -469,9 +491,19 @@ def make_file(name, hash=None, size_str=None): @pass_none def make_files(lines): - return list(starmap(make_file, csv.reader(lines))) + return starmap(make_file, csv.reader(lines)) - return make_files(self._read_files_distinfo() or self._read_files_egginfo()) + @pass_none + def skip_missing_files(package_paths): + return list(filter(lambda path: path.locate().exists(), package_paths)) + + return skip_missing_files( + make_files( + self._read_files_distinfo() + or self._read_files_egginfo_installed() + or self._read_files_egginfo_sources() + ) + ) def _read_files_distinfo(self): """ @@ -480,10 +512,43 @@ def _read_files_distinfo(self): text = self.read_text('RECORD') return text and text.splitlines() - def _read_files_egginfo(self): + def _read_files_egginfo_installed(self): + """ + Read installed-files.txt and return lines in a similar + CSV-parsable format as RECORD: each file must be placed + relative to the site-packages directory, and must also be + quoted (since file names can contain literal commas). + + This file is written when the package is installed by pip, + but it might not be written for other installation methods. + Hence, even if we can assume that this file is accurate + when it exists, we cannot assume that it always exists. """ - SOURCES.txt might contain literal commas, so wrap each line - in quotes. + text = self.read_text('installed-files.txt') + # We need to prepend the .egg-info/ subdir to the lines in this file. + # But this subdir is only available in the PathDistribution's self._path + # which is not easily accessible from this base class... + subdir = getattr(self, '_path', None) + if not text or not subdir: + return + with contextlib.suppress(Exception): + ret = [ + str((subdir / line).resolve().relative_to(self.locate_file(''))) + for line in text.splitlines() + ] + return map('"{}"'.format, ret) + + def _read_files_egginfo_sources(self): + """ + Read SOURCES.txt and return lines in a similar CSV-parsable + format as RECORD: each file name must be quoted (since it + might contain literal commas). + + Note that SOURCES.txt is not a reliable source for what + files are installed by a package. This file is generated + for a source archive, and the files that are present + there (e.g. setup.py) may not correctly reflect the files + that are present after the package has been installed. """ text = self.read_text('SOURCES.txt') return text and map('"{}"'.format, text.splitlines()) @@ -886,8 +951,13 @@ def _top_level_declared(dist): def _top_level_inferred(dist): - return { - f.parts[0] if len(f.parts) > 1 else f.with_suffix('').name + opt_names = { + f.parts[0] if len(f.parts) > 1 else inspect.getmodulename(f) for f in always_iterable(dist.files) - if f.suffix == ".py" } + + @pass_none + def importable_name(name): + return '.' not in name + + return filter(importable_name, opt_names) diff --git a/Lib/importlib/metadata/_adapters.py b/Lib/importlib/metadata/_adapters.py index aa460d3eda50fbb..6aed69a30857e42 100644 --- a/Lib/importlib/metadata/_adapters.py +++ b/Lib/importlib/metadata/_adapters.py @@ -1,3 +1,5 @@ +import functools +import warnings import re import textwrap import email.message @@ -5,6 +7,15 @@ from ._text import FoldedCase +# Do not remove prior to 2024-01-01 or Python 3.14 +_warn = functools.partial( + warnings.warn, + "Implicit None on return values is deprecated and will raise KeyErrors.", + DeprecationWarning, + stacklevel=2, +) + + class Message(email.message.Message): multiple_use_keys = set( map( @@ -39,6 +50,16 @@ def __init__(self, *args, **kwargs): def __iter__(self): return super().__iter__() + def __getitem__(self, item): + """ + Warn users that a ``KeyError`` can be expected when a + mising key is supplied. Ref python/importlib_metadata#371. + """ + res = super().__getitem__(item) + if res is None: + _warn() + return res + def _repair_headers(self): def redent(value): "Correct for RFC822 indentation" diff --git a/Lib/importlib/metadata/_meta.py b/Lib/importlib/metadata/_meta.py index d5c0576194ece23..c9a7ef906a8a8c2 100644 --- a/Lib/importlib/metadata/_meta.py +++ b/Lib/importlib/metadata/_meta.py @@ -1,4 +1,5 @@ -from typing import Any, Dict, Iterator, List, Protocol, TypeVar, Union +from typing import Protocol +from typing import Any, Dict, Iterator, List, Optional, TypeVar, Union, overload _T = TypeVar("_T") @@ -17,7 +18,21 @@ def __getitem__(self, key: str) -> str: def __iter__(self) -> Iterator[str]: ... # pragma: no cover - def get_all(self, name: str, failobj: _T = ...) -> Union[List[Any], _T]: + @overload + def get(self, name: str, failobj: None = None) -> Optional[str]: + ... # pragma: no cover + + @overload + def get(self, name: str, failobj: _T) -> Union[str, _T]: + ... # pragma: no cover + + # overload per python/importlib_metadata#435 + @overload + def get_all(self, name: str, failobj: None = None) -> Optional[List[Any]]: + ... # pragma: no cover + + @overload + def get_all(self, name: str, failobj: _T) -> Union[List[Any], _T]: """ Return all values associated with a possibly multi-valued key. """ @@ -29,18 +44,19 @@ def json(self) -> Dict[str, Union[str, List[str]]]: """ -class SimplePath(Protocol): +class SimplePath(Protocol[_T]): """ A minimal subset of pathlib.Path required by PathDistribution. """ - def joinpath(self) -> 'SimplePath': + def joinpath(self) -> _T: ... # pragma: no cover - def __truediv__(self) -> 'SimplePath': + def __truediv__(self, other: Union[str, _T]) -> _T: ... # pragma: no cover - def parent(self) -> 'SimplePath': + @property + def parent(self) -> _T: ... # pragma: no cover def read_text(self) -> str: diff --git a/Lib/test/test_importlib/_context.py b/Lib/test/test_importlib/_context.py new file mode 100644 index 000000000000000..8a53eb55d1503bc --- /dev/null +++ b/Lib/test/test_importlib/_context.py @@ -0,0 +1,13 @@ +import contextlib + + +# from jaraco.context 4.3 +class suppress(contextlib.suppress, contextlib.ContextDecorator): + """ + A version of contextlib.suppress with decorator support. + + >>> @suppress(KeyError) + ... def key_error(): + ... {}[''] + >>> key_error() + """ diff --git a/Lib/test/test_importlib/_path.py b/Lib/test/test_importlib/_path.py new file mode 100644 index 000000000000000..71a704389b986ea --- /dev/null +++ b/Lib/test/test_importlib/_path.py @@ -0,0 +1,109 @@ +# from jaraco.path 3.5 + +import functools +import pathlib +from typing import Dict, Union + +try: + from typing import Protocol, runtime_checkable +except ImportError: # pragma: no cover + # Python 3.7 + from typing_extensions import Protocol, runtime_checkable # type: ignore + + +FilesSpec = Dict[str, Union[str, bytes, 'FilesSpec']] # type: ignore + + +@runtime_checkable +class TreeMaker(Protocol): + def __truediv__(self, *args, **kwargs): + ... # pragma: no cover + + def mkdir(self, **kwargs): + ... # pragma: no cover + + def write_text(self, content, **kwargs): + ... # pragma: no cover + + def write_bytes(self, content): + ... # pragma: no cover + + +def _ensure_tree_maker(obj: Union[str, TreeMaker]) -> TreeMaker: + return obj if isinstance(obj, TreeMaker) else pathlib.Path(obj) # type: ignore + + +def build( + spec: FilesSpec, + prefix: Union[str, TreeMaker] = pathlib.Path(), # type: ignore +): + """ + Build a set of files/directories, as described by the spec. + + Each key represents a pathname, and the value represents + the content. Content may be a nested directory. + + >>> spec = { + ... 'README.txt': "A README file", + ... "foo": { + ... "__init__.py": "", + ... "bar": { + ... "__init__.py": "", + ... }, + ... "baz.py": "# Some code", + ... } + ... } + >>> target = getfixture('tmp_path') + >>> build(spec, target) + >>> target.joinpath('foo/baz.py').read_text(encoding='utf-8') + '# Some code' + """ + for name, contents in spec.items(): + create(contents, _ensure_tree_maker(prefix) / name) + + +@functools.singledispatch +def create(content: Union[str, bytes, FilesSpec], path): + path.mkdir(exist_ok=True) + build(content, prefix=path) # type: ignore + + +@create.register +def _(content: bytes, path): + path.write_bytes(content) + + +@create.register +def _(content: str, path): + path.write_text(content, encoding='utf-8') + + +@create.register +def _(content: str, path): + path.write_text(content, encoding='utf-8') + + +class Recording: + """ + A TreeMaker object that records everything that would be written. + + >>> r = Recording() + >>> build({'foo': {'foo1.txt': 'yes'}, 'bar.txt': 'abc'}, r) + >>> r.record + ['foo/foo1.txt', 'bar.txt'] + """ + + def __init__(self, loc=pathlib.PurePosixPath(), record=None): + self.loc = loc + self.record = record if record is not None else [] + + def __truediv__(self, other): + return Recording(self.loc / other, self.record) + + def write_text(self, content, **kwargs): + self.record.append(str(self.loc)) + + write_bytes = write_text + + def mkdir(self, **kwargs): + return diff --git a/Lib/test/test_importlib/fixtures.py b/Lib/test/test_importlib/fixtures.py index e7be77b3957c670..a364a977bce781e 100644 --- a/Lib/test/test_importlib/fixtures.py +++ b/Lib/test/test_importlib/fixtures.py @@ -10,7 +10,10 @@ from test.support.os_helper import FS_NONASCII from test.support import requires_zlib -from typing import Dict, Union + +from . import _path +from ._path import FilesSpec + try: from importlib import resources # type: ignore @@ -83,13 +86,8 @@ def setUp(self): self.fixtures.enter_context(self.add_sys_path(self.site_dir)) -# Except for python/mypy#731, prefer to define -# FilesDef = Dict[str, Union['FilesDef', str]] -FilesDef = Dict[str, Union[Dict[str, Union[Dict[str, str], str]], str]] - - class DistInfoPkg(OnSysPath, SiteDir): - files: FilesDef = { + files: FilesSpec = { "distinfo_pkg-1.0.0.dist-info": { "METADATA": """ Name: distinfo-pkg @@ -131,7 +129,7 @@ def make_uppercase(self): class DistInfoPkgWithDot(OnSysPath, SiteDir): - files: FilesDef = { + files: FilesSpec = { "pkg_dot-1.0.0.dist-info": { "METADATA": """ Name: pkg.dot @@ -146,7 +144,7 @@ def setUp(self): class DistInfoPkgWithDotLegacy(OnSysPath, SiteDir): - files: FilesDef = { + files: FilesSpec = { "pkg.dot-1.0.0.dist-info": { "METADATA": """ Name: pkg.dot @@ -173,7 +171,7 @@ def setUp(self): class EggInfoPkg(OnSysPath, SiteDir): - files: FilesDef = { + files: FilesSpec = { "egginfo_pkg.egg-info": { "PKG-INFO": """ Name: egginfo-pkg @@ -212,8 +210,99 @@ def setUp(self): build_files(EggInfoPkg.files, prefix=self.site_dir) +class EggInfoPkgPipInstalledNoToplevel(OnSysPath, SiteDir): + files: FilesSpec = { + "egg_with_module_pkg.egg-info": { + "PKG-INFO": "Name: egg_with_module-pkg", + # SOURCES.txt is made from the source archive, and contains files + # (setup.py) that are not present after installation. + "SOURCES.txt": """ + egg_with_module.py + setup.py + egg_with_module_pkg.egg-info/PKG-INFO + egg_with_module_pkg.egg-info/SOURCES.txt + egg_with_module_pkg.egg-info/top_level.txt + """, + # installed-files.txt is written by pip, and is a strictly more + # accurate source than SOURCES.txt as to the installed contents of + # the package. + "installed-files.txt": """ + ../egg_with_module.py + PKG-INFO + SOURCES.txt + top_level.txt + """, + # missing top_level.txt (to trigger fallback to installed-files.txt) + }, + "egg_with_module.py": """ + def main(): + print("hello world") + """, + } + + def setUp(self): + super().setUp() + build_files(EggInfoPkgPipInstalledNoToplevel.files, prefix=self.site_dir) + + +class EggInfoPkgPipInstalledNoModules(OnSysPath, SiteDir): + files: FilesSpec = { + "egg_with_no_modules_pkg.egg-info": { + "PKG-INFO": "Name: egg_with_no_modules-pkg", + # SOURCES.txt is made from the source archive, and contains files + # (setup.py) that are not present after installation. + "SOURCES.txt": """ + setup.py + egg_with_no_modules_pkg.egg-info/PKG-INFO + egg_with_no_modules_pkg.egg-info/SOURCES.txt + egg_with_no_modules_pkg.egg-info/top_level.txt + """, + # installed-files.txt is written by pip, and is a strictly more + # accurate source than SOURCES.txt as to the installed contents of + # the package. + "installed-files.txt": """ + PKG-INFO + SOURCES.txt + top_level.txt + """, + # top_level.txt correctly reflects that no modules are installed + "top_level.txt": b"\n", + }, + } + + def setUp(self): + super().setUp() + build_files(EggInfoPkgPipInstalledNoModules.files, prefix=self.site_dir) + + +class EggInfoPkgSourcesFallback(OnSysPath, SiteDir): + files: FilesSpec = { + "sources_fallback_pkg.egg-info": { + "PKG-INFO": "Name: sources_fallback-pkg", + # SOURCES.txt is made from the source archive, and contains files + # (setup.py) that are not present after installation. + "SOURCES.txt": """ + sources_fallback.py + setup.py + sources_fallback_pkg.egg-info/PKG-INFO + sources_fallback_pkg.egg-info/SOURCES.txt + """, + # missing installed-files.txt (i.e. not installed by pip) and + # missing top_level.txt (to trigger fallback to SOURCES.txt) + }, + "sources_fallback.py": """ + def main(): + print("hello world") + """, + } + + def setUp(self): + super().setUp() + build_files(EggInfoPkgSourcesFallback.files, prefix=self.site_dir) + + class EggInfoFile(OnSysPath, SiteDir): - files: FilesDef = { + files: FilesSpec = { "egginfo_file.egg-info": """ Metadata-Version: 1.0 Name: egginfo_file @@ -233,38 +322,22 @@ def setUp(self): build_files(EggInfoFile.files, prefix=self.site_dir) -def build_files(file_defs, prefix=pathlib.Path()): - """Build a set of files/directories, as described by the +# dedent all text strings before writing +orig = _path.create.registry[str] +_path.create.register(str, lambda content, path: orig(DALS(content), path)) - file_defs dictionary. Each key/value pair in the dictionary is - interpreted as a filename/contents pair. If the contents value is a - dictionary, a directory is created, and the dictionary interpreted - as the files within it, recursively. - For example: +build_files = _path.build - {"README.txt": "A README file", - "foo": { - "__init__.py": "", - "bar": { - "__init__.py": "", - }, - "baz.py": "# Some code", - } - } - """ - for name, contents in file_defs.items(): - full_name = prefix / name - if isinstance(contents, dict): - full_name.mkdir() - build_files(contents, prefix=full_name) - else: - if isinstance(contents, bytes): - with full_name.open('wb') as f: - f.write(contents) - else: - with full_name.open('w', encoding='utf-8') as f: - f.write(DALS(contents)) + +def build_record(file_defs): + return ''.join(f'{name},,\n' for name in record_names(file_defs)) + + +def record_names(file_defs): + recording = _path.Recording() + _path.build(file_defs, recording) + return recording.record class FileBuilder: diff --git a/Lib/test/test_importlib/test_main.py b/Lib/test/test_importlib/test_main.py index 30b68b6ae7d86ed..46cd2b696d4cc8c 100644 --- a/Lib/test/test_importlib/test_main.py +++ b/Lib/test/test_importlib/test_main.py @@ -1,7 +1,10 @@ import re import pickle import unittest +import warnings import importlib.metadata +import contextlib +import itertools try: import pyfakefs.fake_filesystem_unittest as ffs @@ -9,6 +12,7 @@ from .stubs import fake_filesystem_unittest as ffs from . import fixtures +from ._context import suppress from importlib.metadata import ( Distribution, EntryPoint, @@ -22,6 +26,13 @@ ) +@contextlib.contextmanager +def suppress_known_deprecation(): + with warnings.catch_warnings(record=True) as ctx: + warnings.simplefilter('default', category=DeprecationWarning) + yield ctx + + class BasicTests(fixtures.DistInfoPkg, unittest.TestCase): version_pattern = r'\d+\.\d+(\.\d)?' @@ -37,7 +48,7 @@ def test_for_name_does_not_exist(self): def test_package_not_found_mentions_metadata(self): """ When a package is not found, that could indicate that the - packgae is not installed or that it is installed without + package is not installed or that it is installed without metadata. Ensure the exception mentions metadata to help guide users toward the cause. See #124. """ @@ -46,8 +57,12 @@ def test_package_not_found_mentions_metadata(self): assert "metadata" in str(ctx.exception) - def test_new_style_classes(self): - self.assertIsInstance(Distribution, type) + # expected to fail until ABC is enforced + @suppress(AssertionError) + @suppress_known_deprecation() + def test_abc_enforced(self): + with self.assertRaises(TypeError): + type('DistributionSubclass', (Distribution,), {})() @fixtures.parameterize( dict(name=None), @@ -172,11 +187,21 @@ def test_metadata_loads_egg_info(self): assert meta['Description'] == 'pôrˈtend' -class DiscoveryTests(fixtures.EggInfoPkg, fixtures.DistInfoPkg, unittest.TestCase): +class DiscoveryTests( + fixtures.EggInfoPkg, + fixtures.EggInfoPkgPipInstalledNoToplevel, + fixtures.EggInfoPkgPipInstalledNoModules, + fixtures.EggInfoPkgSourcesFallback, + fixtures.DistInfoPkg, + unittest.TestCase, +): def test_package_discovery(self): dists = list(distributions()) assert all(isinstance(dist, Distribution) for dist in dists) assert any(dist.metadata['Name'] == 'egginfo-pkg' for dist in dists) + assert any(dist.metadata['Name'] == 'egg_with_module-pkg' for dist in dists) + assert any(dist.metadata['Name'] == 'egg_with_no_modules-pkg' for dist in dists) + assert any(dist.metadata['Name'] == 'sources_fallback-pkg' for dist in dists) assert any(dist.metadata['Name'] == 'distinfo-pkg' for dist in dists) def test_invalid_usage(self): @@ -324,3 +349,79 @@ def test_packages_distributions_neither_toplevel_nor_files(self): prefix=self.site_dir, ) packages_distributions() + + def test_packages_distributions_all_module_types(self): + """ + Test top-level modules detected on a package without 'top-level.txt'. + """ + suffixes = importlib.machinery.all_suffixes() + metadata = dict( + METADATA=""" + Name: all_distributions + Version: 1.0.0 + """, + ) + files = { + 'all_distributions-1.0.0.dist-info': metadata, + } + for i, suffix in enumerate(suffixes): + files.update( + { + f'importable-name {i}{suffix}': '', + f'in_namespace_{i}': { + f'mod{suffix}': '', + }, + f'in_package_{i}': { + '__init__.py': '', + f'mod{suffix}': '', + }, + } + ) + metadata.update(RECORD=fixtures.build_record(files)) + fixtures.build_files(files, prefix=self.site_dir) + + distributions = packages_distributions() + + for i in range(len(suffixes)): + assert distributions[f'importable-name {i}'] == ['all_distributions'] + assert distributions[f'in_namespace_{i}'] == ['all_distributions'] + assert distributions[f'in_package_{i}'] == ['all_distributions'] + + assert not any(name.endswith('.dist-info') for name in distributions) + + +class PackagesDistributionsEggTest( + fixtures.EggInfoPkg, + fixtures.EggInfoPkgPipInstalledNoToplevel, + fixtures.EggInfoPkgPipInstalledNoModules, + fixtures.EggInfoPkgSourcesFallback, + unittest.TestCase, +): + def test_packages_distributions_on_eggs(self): + """ + Test old-style egg packages with a variation of 'top_level.txt', + 'SOURCES.txt', and 'installed-files.txt', available. + """ + distributions = packages_distributions() + + def import_names_from_package(package_name): + return { + import_name + for import_name, package_names in distributions.items() + if package_name in package_names + } + + # egginfo-pkg declares one import ('mod') via top_level.txt + assert import_names_from_package('egginfo-pkg') == {'mod'} + + # egg_with_module-pkg has one import ('egg_with_module') inferred from + # installed-files.txt (top_level.txt is missing) + assert import_names_from_package('egg_with_module-pkg') == {'egg_with_module'} + + # egg_with_no_modules-pkg should not be associated with any import names + # (top_level.txt is empty, and installed-files.txt has no .py files) + assert import_names_from_package('egg_with_no_modules-pkg') == set() + + # sources_fallback-pkg has one import ('sources_fallback') inferred from + # SOURCES.txt (top_level.txt and installed-files.txt is missing) + assert import_names_from_package('sources_fallback-pkg') == {'sources_fallback'} diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index 71c47e62d271248..33c6e85ee947535 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -27,12 +27,14 @@ def suppress_known_deprecation(): class APITests( fixtures.EggInfoPkg, + fixtures.EggInfoPkgPipInstalledNoToplevel, + fixtures.EggInfoPkgPipInstalledNoModules, + fixtures.EggInfoPkgSourcesFallback, fixtures.DistInfoPkg, fixtures.DistInfoPkgWithDot, fixtures.EggInfoFile, unittest.TestCase, ): - version_pattern = r'\d+\.\d+(\.\d)?' def test_retrieves_version_of_self(self): @@ -63,15 +65,28 @@ def test_prefix_not_matched(self): distribution(prefix) def test_for_top_level(self): - self.assertEqual( - distribution('egginfo-pkg').read_text('top_level.txt').strip(), 'mod' - ) + tests = [ + ('egginfo-pkg', 'mod'), + ('egg_with_no_modules-pkg', ''), + ] + for pkg_name, expect_content in tests: + with self.subTest(pkg_name): + self.assertEqual( + distribution(pkg_name).read_text('top_level.txt').strip(), + expect_content, + ) def test_read_text(self): - top_level = [ - path for path in files('egginfo-pkg') if path.name == 'top_level.txt' - ][0] - self.assertEqual(top_level.read_text(), 'mod\n') + tests = [ + ('egginfo-pkg', 'mod\n'), + ('egg_with_no_modules-pkg', '\n'), + ] + for pkg_name, expect_content in tests: + with self.subTest(pkg_name): + top_level = [ + path for path in files(pkg_name) if path.name == 'top_level.txt' + ][0] + self.assertEqual(top_level.read_text(), expect_content) def test_entry_points(self): eps = entry_points() @@ -137,6 +152,28 @@ def test_metadata_for_this_package(self): classifiers = md.get_all('Classifier') assert 'Topic :: Software Development :: Libraries' in classifiers + def test_missing_key_legacy(self): + """ + Requesting a missing key will still return None, but warn. + """ + md = metadata('distinfo-pkg') + with suppress_known_deprecation(): + assert md['does-not-exist'] is None + + def test_get_key(self): + """ + Getting a key gets the key. + """ + md = metadata('egginfo-pkg') + assert md.get('Name') == 'egginfo-pkg' + + def test_get_missing_key(self): + """ + Requesting a missing key will return None. + """ + md = metadata('distinfo-pkg') + assert md.get('does-not-exist') is None + @staticmethod def _test_files(files): root = files[0].root @@ -159,6 +196,9 @@ def test_files_dist_info(self): def test_files_egg_info(self): self._test_files(files('egginfo-pkg')) + self._test_files(files('egg_with_module-pkg')) + self._test_files(files('egg_with_no_modules-pkg')) + self._test_files(files('sources_fallback-pkg')) def test_version_egg_info_file(self): self.assertEqual(version('egginfo-file'), '0.1') diff --git a/Misc/NEWS.d/next/Library/2023-04-16-19-48-21.gh-issue-103584.3mBTuM.rst b/Misc/NEWS.d/next/Library/2023-04-16-19-48-21.gh-issue-103584.3mBTuM.rst new file mode 100644 index 000000000000000..6d7c93ade9cd94d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-16-19-48-21.gh-issue-103584.3mBTuM.rst @@ -0,0 +1,12 @@ +Updated ``importlib.metadata`` with changes from ``importlib_metadata`` 5.2 +through 6.5.0, including: Support ``installed-files.txt`` for +``Distribution.files`` when present. ``PackageMetadata`` now stipulates an +additional ``get`` method allowing for easy querying of metadata keys that +may not be present. ``packages_distributions`` now honors packages and +modules with Python modules that not ``.py`` sources (e.g. ``.pyc``, +``.so``). Expand protocol for ``PackageMetadata.get_all`` to match the +upstream implementation of ``email.message.Message.get_all`` in +python/typeshed#9620. Deprecated use of ``Distribution`` without defining +abstract methods. Deprecated expectation that +``PackageMetadata.__getitem__`` will return ``None`` for missing keys. In +the future, it will raise a ``KeyError``. From a4967d9d5974562dc0b3d2fcb494483cce9b8122 Mon Sep 17 00:00:00 2001 From: Oleg Iarygin Date: Fri, 21 Apr 2023 17:27:50 +0400 Subject: [PATCH 31/82] gh-103082: Fix shifted field initialization in `instrumentation.c` (GH-103561) Fix shifted field initialization in instrumentation.c --- Python/instrumentation.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Python/instrumentation.c b/Python/instrumentation.c index 853e8a10e81463d..2a3b2b8ebeead79 100644 --- a/Python/instrumentation.c +++ b/Python/instrumentation.c @@ -16,14 +16,14 @@ static PyObject DISABLE = { - _PyObject_IMMORTAL_REFCNT, - &PyBaseObject_Type + .ob_refcnt = _PyObject_IMMORTAL_REFCNT, + .ob_type = &PyBaseObject_Type }; PyObject _PyInstrumentation_MISSING = { - _PyObject_IMMORTAL_REFCNT, - &PyBaseObject_Type + .ob_refcnt = _PyObject_IMMORTAL_REFCNT, + .ob_type = &PyBaseObject_Type }; static const int8_t EVENT_FOR_OPCODE[256] = { From dc328d398d8f65ec6d2fa493e16ceee75f6d774a Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 21 Apr 2023 11:30:30 -0400 Subject: [PATCH 32/82] gh-103661: Skip failing test on Windows. (#103662) --- Lib/test/test_importlib/test_metadata_api.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index 33c6e85ee947535..d9027861848efc1 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -76,12 +76,23 @@ def test_for_top_level(self): expect_content, ) + @staticmethod + def _workaround_103661(tests): + """ + Skip failing test for now is it's failing on buildbot workers. + See /~https://github.com/python/cpython/issues/103661. + """ + import platform + if platform.system() == 'Windows': + tests.remove(('egg_with_no_modules-pkg', '\n')) + return tests + def test_read_text(self): tests = [ ('egginfo-pkg', 'mod\n'), ('egg_with_no_modules-pkg', '\n'), ] - for pkg_name, expect_content in tests: + for pkg_name, expect_content in self._workaround_103661(tests): with self.subTest(pkg_name): top_level = [ path for path in files(pkg_name) if path.name == 'top_level.txt' From 0cb0871584d2288e436445ee32e585bf5af7c9de Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 21 Apr 2023 20:52:37 -0500 Subject: [PATCH 33/82] GH-103415: Document itertools.batched() in whatsnew.3.12 (#103670) --- Doc/whatsnew/3.12.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index b3bb065741d0374..f9406653e625b51 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -309,6 +309,13 @@ fractions * Objects of type :class:`fractions.Fraction` now support float-style formatting. (Contributed by Mark Dickinson in :gh:`100161`.) +itertools +--------- + +* Added :class:`itertools.batched()` for collecting into even-sized + tuples where the last batch may be shorter than the rest. + (Contributed by Raymond Hettinger in :gh:`98363`.) + math ---- From 7d20783d45a9c78379fe79229b57e4c31610a623 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 21 Apr 2023 20:53:50 -0500 Subject: [PATCH 34/82] Minor improvements to the functools docs (#103672) * Use an f-string for improved readability * Put version notes in chronological order --- Doc/library/functools.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index d467e50bc7a424c..d1289ce836210a4 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -118,6 +118,7 @@ The :mod:`functools` module defines the following functions: def stdev(self): return statistics.stdev(self._data) + .. versionadded:: 3.8 .. versionchanged:: 3.12 Prior to Python 3.12, ``cached_property`` included an undocumented lock to @@ -126,8 +127,6 @@ The :mod:`functools` module defines the following functions: per-instance, which could result in unacceptably high lock contention. In Python 3.12+ this locking is removed. - .. versionadded:: 3.8 - .. function:: cmp_to_key(func) @@ -233,7 +232,7 @@ The :mod:`functools` module defines the following functions: @lru_cache(maxsize=32) def get_pep(num): 'Retrieve text of a Python Enhancement Proposal' - resource = 'https://peps.python.org/pep-%04d/' % num + resource = f'https://peps.python.org/pep-{num:04d}' try: with urllib.request.urlopen(resource) as s: return s.read() From 6b58d419a1bd62ac94274d108d59980a3eb6f6e0 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 22 Apr 2023 08:45:10 +0300 Subject: [PATCH 35/82] gh-103556: [inspect.Signature] disallow pos-or-kw params without default after pos-only with default (#103557) --- Lib/inspect.py | 10 ++--- Lib/test/test_inspect.py | 40 ++++++++++++++++--- ...-04-15-12-19-14.gh-issue-103556.TEf-2m.rst | 3 ++ 3 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-04-15-12-19-14.gh-issue-103556.TEf-2m.rst diff --git a/Lib/inspect.py b/Lib/inspect.py index 4242b40c2a08dfb..6d1d7b766cb3bb6 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -3006,7 +3006,7 @@ def __init__(self, parameters=None, *, return_annotation=_empty, if __validate_parameters__: params = OrderedDict() top_kind = _POSITIONAL_ONLY - kind_defaults = False + seen_default = False for param in parameters: kind = param.kind @@ -3021,21 +3021,19 @@ def __init__(self, parameters=None, *, return_annotation=_empty, kind.description) raise ValueError(msg) elif kind > top_kind: - kind_defaults = False top_kind = kind if kind in (_POSITIONAL_ONLY, _POSITIONAL_OR_KEYWORD): if param.default is _empty: - if kind_defaults: + if seen_default: # No default for this parameter, but the - # previous parameter of the same kind had - # a default + # previous parameter of had a default msg = 'non-default argument follows default ' \ 'argument' raise ValueError(msg) else: # There is a default for this parameter. - kind_defaults = True + seen_default = True if name in params: msg = 'duplicate parameter name: {!r}'.format(name) diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 6b342b1f00d654a..42e3d709bd683f5 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -2463,18 +2463,43 @@ def test_signature_object(self): self.assertEqual(str(S()), '()') self.assertEqual(repr(S().parameters), 'mappingproxy(OrderedDict())') - def test(po, pk, pod=42, pkd=100, *args, ko, **kwargs): + def test(po, /, pk, pkd=100, *args, ko, kod=10, **kwargs): pass + sig = inspect.signature(test) - po = sig.parameters['po'].replace(kind=P.POSITIONAL_ONLY) - pod = sig.parameters['pod'].replace(kind=P.POSITIONAL_ONLY) + self.assertTrue(repr(sig).startswith(' {42:'ham'}: pass foo_partial = functools.partial(foo, a=1) diff --git a/Misc/NEWS.d/next/Library/2023-04-15-12-19-14.gh-issue-103556.TEf-2m.rst b/Misc/NEWS.d/next/Library/2023-04-15-12-19-14.gh-issue-103556.TEf-2m.rst new file mode 100644 index 000000000000000..fe2267b7b790196 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-15-12-19-14.gh-issue-103556.TEf-2m.rst @@ -0,0 +1,3 @@ +Now creating :class:`inspect.Signature` objects with positional-only +parameter with a default followed by a positional-or-keyword parameter +without one is impossible. From b2862950dc05d313b228f02a8efdd8c9c59a8ff4 Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Sat, 22 Apr 2023 12:19:23 +0100 Subject: [PATCH 36/82] gh-103559: Update bundled pip version to 23.1.1 (gh-103560) * Update bundled pip version to 23.1 * Update to pip 23.1.1 --- Lib/ensurepip/__init__.py | 2 +- ...ne-any.whl => pip-23.1.1-py3-none-any.whl} | Bin 2055563 -> 2064386 bytes ...-04-15-11-21-38.gh-issue-103559.a9rYHG.rst | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) rename Lib/ensurepip/_bundled/{pip-23.0.1-py3-none-any.whl => pip-23.1.1-py3-none-any.whl} (76%) create mode 100644 Misc/NEWS.d/next/Library/2023-04-15-11-21-38.gh-issue-103559.a9rYHG.rst diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 69b23de9e050253..4278422dfacc9f8 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -10,7 +10,7 @@ __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('pip',) -_PIP_VERSION = "23.0.1" +_PIP_VERSION = "23.1.1" _PROJECTS = [ ("pip", _PIP_VERSION, "py3"), ] diff --git a/Lib/ensurepip/_bundled/pip-23.0.1-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-23.1.1-py3-none-any.whl similarity index 76% rename from Lib/ensurepip/_bundled/pip-23.0.1-py3-none-any.whl rename to Lib/ensurepip/_bundled/pip-23.1.1-py3-none-any.whl index a855dc40e8630d1e3953e162af76cc5b0a11952b..dee4c0304b2c364ddf7147b0ec6a206631302426 100644 GIT binary patch delta 470130 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

9>f+`sUO!`caGrD}z`)DCSYNnM!t&qeS^P*5HF= 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

e>#3aY zb@nODmb~1KC@u*4*OERrqlPb9E)a^mj*yl~Pj}Ilwn+M}Rihh`-a#8@)LU(arxaEh ziPd^b;>;R@C9Ro)yG|23Rt1ls9L>md7Ei>|2^xSTk3R25N0PTgOT81Ll1`8yJ!E32 z5@B>#35K3^y;ZQ<(Gpj{{nxkmWR54<>EB<`8fq!bbK|eb0Ggq=~N6= zlP0U#1BJO8?ZaA_a|R?!u=dqlUF%(M0+R#mn@Wq|6ymdIH4JVXh2aWi8B2xMVpau` zHDd@^X|(3(yYxBh2G^7f(f1fG0b8@zXHx}np$(VMOvD2D%YuUz{ zpOv2WQ5I>q3@L&fr35qDT&iD!$TsB0cs<;EO>aHKEn0~S5QYkXk~Af$#D{KP`Ck&8 zjb=Ji-u+$Y()>yc3jZ$2%LbI#t|drI1wahk`$x-XKVPwT@{=N>Z)i#ChPo#~Q9p&c zHmzN)DE)hL*{y+Grn`+khhM`$nA3%9nMwl7Z!zrv)YO6n*{Y^m!Sz{V&J*xm2XjcY z#iYbks403%vzfDs*2LG+vmvzv^zWPW#4VzgdA|is-RytYf{#1cTtJUEUxb%DbUh3M zW4#_acbZ!lz3OtlbjR-=XFWJhovt))PBWd%9P@>kMevyqA*BS~VsisZ!aW{w#B8R7 zteU)v$1!xUc>D9#eY*4(CnWWY3yBW%SMI>%0Dl-~*T+0Ru3$ZxOmDi@j%Sb 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ⅈOxTyMS#^??5!Z;)z|}rzRL}?IpAA(vmvvt+c(=JYZC})^|sTPj|3G`}no+ zUf+b;a$p_w5Q`(hViJ3D1$ouSUG&8^k<-Y1oR6l4yNFYq$mt=~@3Wc%62QgxAB|0F zLw4EKxpd(S6d0C`2pnVLlWO%pMv5jIoZ%3~Hla|NS%BGVW9kVtcc{f=?!D>_y8?0> z+|aU4_Dmts-Rg!CVAwu+XJg)as6@!K$;qH_ip1U#gE%j6xL_;1@Xbj$6d2(8gR%9% zN4#poOK5VagM~h#^_VD0a!)i-Sl{(P;=?d;3t#)WJ4rRwsdsn+{u_?S_o!lS5mKIi z2$4;$et??-%3mYfM72ah*zlB0hUNAAl^u8~eg@g01?OQmYO-U72ia+}n2o+Vc-Qbv zE+xuLkuOws{gB7LiWvcnq7n-M%MyqcckaF17I8O84|<>*FB$ z(e-XzX|!=7iA>()b<4a;WItbywG?iVzXJYLYygimXZrEzlrhAu&kM z(W+U)WB%y2>#%sr0r$g+VH+l&3gzvQ>G7T zRKj6r$Yjweqw&fF;%KeG*Lx$6|-OYD2NMi2ta>qY+Dj~t*?XJH-uxG69}9NP18ARy_tMsi+nMK-4Q?sbo^YZk#Reve;!?*}#Cx6$o$j$*ha zwdg!~olMH4MFy|HngF*)b1DeR;=jP8!7V{y5;4sAAAib<2u$~6GCc_FIBDIZMQU-e zSvrKk1`IJV8k04M9=%~<+&NCYD9hagFXtWP^Q!s6%v*I0oKF>X3P3_=zbSYN69T<- z<5u;v`vSo$&ENLHsE=LKanEdqk|122=f%Bsc(lJy(}h>-U;1B^{Xi)LS~3tEj3B_k zJA5MYVInLAK4||a5lIZ(fo2acR(zEI8ZSA^_Ya<7QGQKoGX~{Q;FCQ%9zR2ZIwpOM z2BK7-9NxEKDu)(TS%3$3*>6(-Km3hsdgkvtzK!cMe~F>iUs^#1rj1mF4Vl9d)L1pQ zpyv&!eJtcJx#rX9TLnvvlPk~JFWwlU956xl2$(?;Vckb3CnE#zPvXmLp#b&OaShrApM+Fos6T{{#dC&yBU=PU&kN*<@8Grk}Pn0aVvQ~+fo>lFo>bC z6aXJ%*qX_M+e==$6W@*6GUG`fjx0@RvkHb6V_zA*)PjT4mZKEwnwX;z?#9{}h!ykF zcg5NA;K-;e+FmjZenAJt}ggEK-L5bQvffBt||2QLZ^3#fv$L5X0OU_?d_VCs5Oc;h}Vo9$h}e8W-G# zTh1#x^jD$BpEVl<{2qTfPy(kX6#TH$qao5Pc=hNEneDhq;UKXjI7ejgA))-kB}=X) z3UqT6FaRa{0?zBOtoo2+PTiS=lWJ5-Yg&O3Lt~71FO9VWjEeC~9Xe&G-=6_K;cHf; zB5oC)7hf?F>$;1yKPeRBU4p;b6D~lc`|tWMzp*N7FD_Jx@3_-VKn$1}co}$+hZ!^D zM9IbT`s1G)LhWQ9#2iCP$ecElCDBwONm*=t(6~tSAf5L!6LQuQr+~>h$XxN|k zGYCv395Np7RHL}*wXp80S_-mk2~4E1XN_KM4>>;%jb}Mon+!=mjW_Gh4qEY}m0*_l z3{e)Rh>Gg5*a5f{`)hDbp2+nJOh8K=X@Jt__4Bz9KJ~5JNu{g|a`EK+qxNHYCzF}| zo{NE}{U&X3UKP-A&^=E?2Ip)H3$9xb&8GE+G&}f&RNCeDR{A^}PJsa0E_huP#=J~AksI7`YM)#J%_M4@cbT*d#=R@2q1R) z@ooX^<-YsJ%h|zWYL)DujBykQXQg;sdht{%JELt&fv}UoMNI2Lh!Q?c+QXD-ZcAH% zTp@RZzWi`oOR0peM9b$upaxs`?x4wf^Md3BVt|)S-nJVZuX&Qi{%~@%A9j0UwI6p; z_HX3o8@H{*uSu%6_DyZYaUz+Q7l3o^uWwCP8K<*cp0-DuG;^>W0rz-nk^*XO1-hu4 zl@DVf%BBn2z>agdR=g_D>aDjyRLUL3xB!UHFp8d;YkYJ=TjnrsC#2j<-SNdn-BX7F z6KBtjszBcyjr6XiG>2p2p+y;ppHmBk@4stWXLAyYE=6{3CpT_n5M0B+jex2p#~N7z z-ZAarAbIqJGg33e4?R%d>WpB<_I2zCZM4C#O=3ReepM%37DrK*ZJUJZeG;f)-fg!o zslWch<0ldQ(kA>6f4HCSxhYA?8`~%LXbYq{3RL8VdG#wGGME!6+l<24HV?k1!^TlU zTW}B-0@8ZXPHy)NpP+x6P66g5av}DIp+aAdg{^S$;!$EiqMBmN|+Wn)MC<-uN zMVFe0oKoID%R)}Qcn+%VRpac~!M2vS?Ma+6_2`POL(cjm_Y6Q*k7+T{PPKlb(G^lo z@1PI!_4js+|(8YWZ|NT3AHgix^5Is5qNC&xCL0E91$^eVea&Fl`$+uz!Ka z5pgG0j;_}uVYu_b93CX^8%2BEK228lKLDRr2k+G zDpnA@z!7q4D%dT4h18a4T+Ep$D18;zmabMb@$&oDAjld#YZNqr9pt?T8h7>5TcEh> z`0#pmkf`3R$&-hEFnW@t3I^QfAc=l8zbYE@CT z92nQtqz=v=g)3<|Ie%HXKyu&b>h`l=)T3%Z3e8I?4NvS7nM_U&VMtNwt7Ru!yxn;{ z?EtTEuJF~I6~w6T_SMaw<)|9H^iBHUXI#y=nwR{_{otqJ4|mzDeB=INZ4b^RAeO?w z=eSmiS~e&PA;;r)ZHe&hQBOyX_E$pcC4^CXnwt!xt9O~p?I=^lkh5Y%al2iS z>YDYOale)S>HcF)MBn(?+OI5MU_psBGZ&V=0c3zb=b*8v5j5#(RaUmfvx|e$)Tt7u z2Eh(-+45ptS{ASSs$%c=n%T4kQ_EfYG>1i;Zn>@C4-5XDM%y|8|JUK)^F`!G5f!Y4 zoxuIUWtTgTxT%`^Se%tyh~V&ki>P6ZsM>ES;H~LY^&87h7*g8_CeT_U$5{CLdhcd@zoTb zX}srU19gX2^ko=_AnJ(SY$|nXUSWrf)cxKfJ!TaiHiDGLz6eyGpkJN=;7r8=H#GGU z5zeANVQ`=uvR`ta;cp3=;B5?iqTvfFZ0{Yab^))2$jpd^@*pd0@eFP+>AJ8w!i zXMTI@p7Wzq+|Rc&!=Jn9$0NOa0#ZOgm(?yG^$x6+6s3Butf;cJ2GRpbZ#zm-W~up| zic0dcbxA0T2e;={_6J0g0&rHbU)1)&yXWz`Hlj@p4ZKK`VuzVJCiZj5WRv)98@ zl!E>+2tgF_-3OE(guv0H8C$6T^yC}ip83OxpBsR}^T7&8OF;cOPA0Z%0u7*3X>-I_ zUI9z*b{D_BECR3a2=7pGM&nbBP@TGGRwCV|avTU)fDXviK+D(U znHr64voi7`9ZOYOrDPM5eMop%Aph9C`S#vbW1^4_aCE~M2>f_6dswabj`Qi%r~hDm z(tKB2Cha`dLU`}~QJwTM2?5+z9^<7+!3IvmYE`orc$pLvuEXGRO8=F{XZk5hn{G+`I=bidEEvk6u#V?{Go}IK zi=gz{LlpvYy*+=~20W-{-}Uy${ftIjy!~T_PFBBvAM2H>e0~m9og@B#exuesE*y;i z3ew+raDKr5BS`-c!XbzHkJxVIVQ2^OpT;&Jm0lW$2B7nMlO4_PwHB!h6IU^W{Ct7l zpD?m{7{UdUXnl|o4uo!z88cE)z_TRWl;rBc3$+2mcJp9(Yc7~xh)WSRLIeA7v}>DTfJY5@w5 zrM&wgQvnj$ut$>-4=tq;ry_9B>-;}OSy>;V=9r*Jzg7S;K4MVeSU2R24@l?}!Myl( z1cZA-HPNwb0!lY<}rD=QWQQcmbLn6@m(<97)a1X{v<|*0Cjrn<$K0i1{Cy zS6$qX8OYna7Al3dnO{gPr$*3`nnwGvl8gg^*t}t$U;@W@9!FSr=^;dsedK&X@`;-F z;A-k}U21d2VikF+=~M7Bp`jX@(v)F~@76^KiApGK7)CuKgTL#*VDMD#B|~AGE&#dv z)*^96;5X!V+_CR7{P0)T|h)G!Z=tu3#%>tFx-bOF_9fbcDlT&9^cKP z)XJucg@v>4LPwa;PRuLYc@j$lE6(T0se!;FR@gd#fg981XY-!wWm@J#qGPuim9!hU zq-Qcmv%plY$EIYf%3Jo==k0AMv;h=o{*aX!2c@Uf(h0XH(DY6m(5I{#BuyieNtTl= zcdy!C!62Q3rDr#;RtvGfmB=Dlp9Ef6XD3yhjry$c&>idQa=9X?s@qj^naB!cwL}Uo zO%QDqXu0)=Uh<&FyPf7!H@?y8f2D>MVgRHTr7-2gUA(an-%$@^bI%32$p8tu%j3;? z%Ds5El}#o+(KT1e~Hr$dEfxdoGgY_#m~tn(6G(Vk^{<8d5C2b#veos$mK!rL&%G z=Z>ak%(kSc)~Oi4A}0x?^TmoUS{VJJ_h5QN>z2!t|j5 zRu=i(I;Oa=W@R4rDonmq;ww$~3_9iSx^s-JJ$-uJf9qJtHHtaNO5`}@DdRKLrqEBl zpzq^GP_|Z1atIV@+%7~#aoEH*Qv4YcIU6Ndg_mSTgg#mmmkt&KBmMaUV zCpcU_EU=UXVU)+p-g41Vym?jnW-9U4el%?dSilJ z^+@F@=e;w+J92nY4g;2T(OnE@&W<$(OZBp-H+e(nsL4fneNfN3hbGt>8BkNr(AV;aLbCYG%ksZ2+jMzuq+}U*C-Jv z*2P0NSo^S#ivXXCDyi&a#I)a5>sjnTD{P*>+22f%p%q&u`#)}E z<`E?8Pm|L-Q4QsNCcU`h*4KT^O`FGM$+ao9`uM71#3N;Ma{Ul9g!FaYp(PQ1AG@>y z{8|=cN2Q$x{1oQHGL@)kQfX~!cHi?8W<13!zKLg1~_)13S3=3K(ErqbB6?&;}cF*m)4{JE=Z4ljhvg$v-aOOOEkCb3Lqyl=wL?A&i_a?!;}18_D6RES;We1oE03&Z0vsT>3*wzhrPxv78sq(Nd0k zS#v!^KFY|HcuEh|C0T#7zqYwM@7qKLcTh^ljxzha(RDsBtT@_*pi7&dGqfWyYcqij z2PdM9bRw8#7gK#y2TuiV;qAN~ev(iEvKlMIZpiICgR4EsCXpD6JcCq!{WM+~I8Y5t z)1cpKf^oxi=Dxg;z;8qA-TF9dNIB4;`3AVm(nO66Y<^%%2Z&qMrie3^_3U-fx_9|- z%Qs;|cbkx=`YYgh>b%2*@FI#{h?$w9LMR?>vY7T&j!0 zo1_UVB3?AmpP913y0h2!HhZ5bAC0f|r=oae79}x_0m?~| z!xgjYCrqrcghdfUeQ+u>CL7cwJ+DI}YL!|l3@|hnI;4W`|1gk27;pP;D+O>z5E6>( z9K+F!dcoOIG-$Fs$nId#_t)2zF42`Tt*s`;UsIzQ6DP&jO9$xbDLSHT={s=)lH1v+ zkP=j5f~Nb*0`u`qkq%Wg!B-utW@r+M>U*(7G#~HU+8u>TNL{xxaY-ut(a@9e&K!eT zlA;~@vC5^R3tj-e>7FWr4+~R%<><5V9HlRU?kSJ?^vZ>v@$_T^3z%!gPm@G$0eUR`r>g0{kFW8h117>Z1v~ZOk9+hyc6Jn{k~pw}nQ?l5Y@CcS5|wyY4B&=(+T2gqkNpKHr4F7XsSK+WzUc!4pwF z3o{;Jq(v~u@)k$;OMqmeFHis4J1 zNs>`wdz+v@z=HO3QIL9mSA56y+w1+{kFbRcSUFE@65D}};=C^hoGy)M!cRE#87v*C zBNPNKurIM5)#fB+x$GE9SQV`vSP;;#Y1dePRT#1@E0}r`<8}f8`uxr*alcavUp>p% z@kF+=`iSt)qK$U%apU*_Q2&DApl(1QSt~zHvF`niq4`q?Pwc-Pb=UABh3Te;Ce2$O zyEhKhhV9^RHzF1fz)ewto2WS%T??LVEW3Qz9q=r;jyUTo)(gMy@9P~GPMx@Mc((@Q zSb<_=0tJ@SJWfy__F_0?MRdf@Z!EM@82!2pnE#q(EQ83kt^8Bro)h*u;?CNuR$D#k z09t#xKQ|v;Su79SG;0uke12Z06Ez@3scpWTA0}k-REmt3_rS9};t}m)Vy{6#4mS{C zS!@!pr-HknjZGK=mXBJ+;I4T}gX3;KF5T-`uNWUos;Qe0YXKeK`(L#hwSGWXJRy{F z1)RveC7&5oh^{t(MG6dwkJXaFWIhA*EFO!!GNQFPPb~WnN0z8YJuTk#F=IVd#XxcVi`QRl24xJBFk09&SZKGgQUer9C2M?4 zd6N@jaDF}{tU)^>p>jv54ISsY0CZL&Hd?bxAu|nhM7t&FX7e1GJ$$jn7NobGv_yyx zHS^k2|7|@065ZL#5oPhtX@lF>)A#jo`uexZv|Wsh4?~bVN7`b6DE8YvQp@9<)?(5? z&IU=>jc~aheX4lY0uZ%Cahdyj7V12c4+_1-40%pk^F~v z1r>^g{k0j*3^tP#)MJ5-b> zc!ims&hu`~8mvI;IFp-6FqleXqA4^pTStU1;*L?I+PyT#Uyx&si=6JG!Fybyw9;Ab%7m39PS%>>!iB5q7+)2AE_0< z5yias)BaAYyaC$AShp;elNro5sb26xNXlO)WAV#%B8;bi``qXC0FqzHo^5qfa_FMH6JC5G0Q+JIN;3K$|efwqDKi4bF<*$wQJOQbOBXwwwH&jX7m z;!BQqCd4jwk{q&i2yXG`W=tJ#-H?i0O>YWD9Z3`1ex)F5MuPt+c!HW=2yYSLvwE|JoFAL0g{ms)ph%n5z z8ge2d!#9Mc!oMe_Tbbn#!h0FOPAwll-nVLTUaHA{96M=)P(5@@)3~gK}Im_R-e{M8~SJx;Y*YzYnI}>eR8)KW$cGkH_u-yXZ>C#?Kee$9be5J!W2}^n+vZd#&p@p z4D3U+Q`Ej*%1Dg7cG`Aw3d3IHVF;Y*YQ8-&$;;-&2o-~~=6l@p*=#m;b%j%T=r&r_ zaT&^VGpkzixsE2JP8B}d1BXA`*Y^4ay zt;euiv+JbBAkVv{V3%?QLe-9>dy_sm3(`jWDi41eb8Nvl;ah(elWQ2W19Lg;+qmKI zA4%IPucRP$2L8Cl{XE<(9}9E5Q2CRz)9JE(!Ek|=lvf=A&qV+|JHk-uzI zg2e#VC+Q3gyhVM7M`g-6{N`D*M2kQ4k`OX2VB|7?Mbw31hNe&}-5GG{y1@>B-%J`6 zn>c&`~AID%X5^|rRJl!V>t z)M`DeRaQdI;zGo~REPKp2zt8woU5ay^^<+Ol`5yGaz#R;yj%=Xru7KFm45GP{6;qV zg+q;Selt>E*}ro(re4keIMAUAv`7OmVsk7ZM1Hs1H=HkqFm{Q`2)wG|q~2{941d?@ zD0R=K+W2w1f>OMDpEpUWfW5At+?^x)8fwAhNT(j z0Q>B^AaRd;;UbEZl0Bw?Dk<9h=0fx3dHl_U_156=<$$I*XaiBSb6~J_)5HrX0D4Ua zk?9d2L+RYF!%)yA@U@w1THaOx^m|TfhFWE}%7&nY;uB3fkH2z;?SI9_@BI)$2QK+| zvvaETvXW-a^X6c1t6dXe-e4(Q;CP}V3!8*px;$O;3G8emlKr)#vrIMB$vKTPLppv- zflfbN!{2Usp~*gX9cW@lM_GGI^W;?cu{n_T0`V-weH;}B2u^rR1xGhw0 zJ|;ae!EAB;0z8ZS<%SH8Ely&n09AM9=J?~+)U)rJ$Yn;oCe6ve!06m%WlLpR`T2W? z3-#CJyzR+9hXkg3Yt&_CXM8ZXH2H|w2_J4pixt)bI}`50TEsEJhlUB@_qoc=lGj?5_+~i5RM6d1!blry3>6KD(8gufpB=@do?$5S~@-^H0@CWKkvYe_>#& zXQMvMz=%&Ny-#SlMoLnNu+5hbi2cNlKSddhPO28Fp{cF&wd#&PDdn44sA)W_xv)E$ zZH|~=c#Ma!ENO7^soX?TBWh3cv3yXt%+Ln!?w>`y-yjBCCAIUGFA_g*jdk}|r&dVQ zD54;&@Si!+L|)rsGXfA$ zKgYi_H#Hyu2P<_X2nPwkTx`X4pIDMwPQuk8%}=r0Zup(V3(> zZUx`5sk{@U*DNOWJM!TMrU&5>BfC+7imS$*ii@hEqOIIgnx7efkR)ISZgWupa`2=? zgq0vErRCt5M`^|vuS5ONQ0}R6&c@7l0W817c>U8>^qkOQ&Gp!-Ef~GaF`b=Hwo%ex zxv!{Dqbc@ix5<0+{_juSB)H!kQm@-)cAlNUS0T>#5P?=TF}0h*qdNVjh;Oh$WPH-6 ztWN(#!MlsXrrI)q_fvGZV?HeVzM;73W}bgCJ_p6YJ_v8`HYg~lftr)zjZCjOsWy4Z z_?d=_o9GTzY`#8){gWCj%U#WJf%*?8@m+awtDYKAEt~C8PnidVCM1fllm_Xn*0gBO zXqI|q(%wysWH3+ULXKijvE2+6-t|LxUkOZnTx_iX2pA}F1DC?Q1~iy+9AYIEe4F+8s^Z$x*lk3tF}V|lDe8ztKK{vn$;}n&)Cj&q z_(EKB4G|pm-sXY2X?!S821T}NTFA^3{N+q|4^byt-H12UR$eGOXcnR!aU#g+j~!VH z-3Vp;`-l`kDX{=`deXj=7Hp$C=``WqPVJxA7Q`RFJ>)l=6{N`2(m8%>>lUMBi4 z#SD>d66Ja*$>bajk6^ZQ8s0;44!fTn$rvcZ(sGcEldePJ;P+HScuN@~)e*V5%WcQK92JAz4?2VuCAU;Zt@==)FxZ&*&s(e|XuRa4k zSs09J-li%7X1!LS6gc;C=7c(5VXQObVd?=GFztIm_cdn9Wf6|? zX$iyAf2-EqQU&VBvP#4dsj&oL<=3(STo@b}0hHQ8sWrgujO4~tiGq$c?UK-lk1F?+ z+bW*j!>u~de_QXCcsGYL#6#DY93*UGcwcQz%T0*2)E1|x)BbGY8|ra8Cdg~0hompI ze+uMH1YJjN@0~G4s4KHT^GnZif``LW*uYGHB{-oN$P(KtI%N1)<#|=5MAlRT^tu`M z&6?7U%vOy&A5XCF@#OjW@gc#~rYP_xyE*Takw^KbxF_ZbuAeH%+|ZIgR>+Px#icgy z{u*))&4!oEXwQ$pbt-^I$8;2j7*i(U5^8Ko|C469wZO^goluR3id;wgDTkCFro&Xu z2IhGrLgWqIB3G1D@rfC_CgaNjFkU^r#t+Qd)y16BmR%p?QuQV?+0_Fd>txJ8tPenJ z4){o0@!JT9-Y6T4SrUnn-Vb2?U&x(==0H5aOhejhW;Aqd3R*4g90B>lwbeyjJE*015k5jI=aX7aWwZy|(6ouH~ zfzCb#s>uEHiycfM&8e|JtzbvKB5#h`f$iKyNG(6hq)PCV$|xR53(}pe6s{ z=xOotG&sd+YQUb{!x-qcW(fpvHgC!~XE}}#Ido2a(S7gQH|P8l@ukOw_kv*&`nGZT zXD^MpYkl5p=hbthmA(ipt8xW=JDUN7T^^0DS#5-7yMCkI*L-6DLfe+nGEF{p3x+KG z{*wL~W0$ET)HkeQ6@1cHdShu|iJMsi9RvHJ#4PU1D2ncT)1MkSts~W(pd{HaLji+O zguhv#K|XWBt#*!`R55jz>IJUr(-@KP>b{#qUu7NESgt3@x69W2nP}@6vx#`<0omY$ zudePyq9-2U=4x7iwAk5R22OnDu;Br*HppzYJNmQmr)asg9z7i}9aOg?){na)-F-z? zdn92}oQwnyjePD9H^mF|L6e-c3xRPtcyhKIh9_yn88!DslWc);@^c69)ArpvHZ;b5 z{JB!BK{PjQB8;KA^w= z>Z5+xwUuFA@^vH}Y~EObTp$ltGmMKLBxTEIj(R(9HENCLw!x0p>RPw@Q|>^|1WKK& zL9~c0W77+7H&Uj#rq9Osq)%y4D;7-p4w#h>T)!7UxCfo9b1mW@>;8-Xxe}QV?og84!v^H-np?f(pz{N&rnxj14n}?VbVj`bb-+koBfrR zU6}+PdAmdvy(|;k;8(>J{T>ffOaz1dy;-l=c`#RT#RNp|P(RBLpoNcrWZ_ojjD#yobP@TuvKthYD66qlX zwMUa!Pp_WG2S}9ueHwg2IKV>JpJaPN)#P3RmPdypQ&DFyk;8MpN(b+wt`*)QO&1Qp z7XbY)cSU!Pojyq?SYhTXUrIwKJI&KPXQ5*;#@yV*SU~fk(xWtjFscukIs|GJyR|`h zW0ke0eFq5%3Fi&#TA%MJZ_a{p{8nP#=To#ZYGNR8_!Q$3Vn^7wFPX zLu0e!8}B_KJufiOebM4eUcHlqf!+zg*Uuz4?8|r(=x7EqW!UuEk92#g2dtF~wus4v zmHz9l>c}@|6nn4m7JM|K4jeroX(U#f6!i$cuvV5JPoRg#?^uQ9ExlOeCM@@&Fd62e z)a4qd>zVL&G1bES9%L!CW@<4O=rWiH4s^**HKK;^M3q6HmVb2?HxnQQ>`eeL(H{1* zmL%4LQe@x}kcTrWmje{=tn`zRxv_U!ieIbF+X5l)aQ->l3-TOXGD0yCBY93!COb$4 zQ_!f?H~(Pm;TJ9|3xML#5uQxQ(zv|cS%5)+Fw)gq(x7Twx+1c>K5Fx$AF(_-NJgoh z2@6*U;#FrrP(PlPST5K8h(`c`CnJxUe`khqdPO(x?g{LQXDAZpJjA0iW_>NVQ1hd? zFSYNI_`qvRs`KmG>r_Wt`F1nT2-1vfjB9U?E_Qx|sI(_0soYS7afcKYMidROZl z_E0YJc9Dy4x9lCZG<*706?wW)I{tdNaXs^N3zjS$DqYSs67e*eRrq@<6)8Q&)MtSo z9Zjm`7e={PQaECo-^ccl){`=v=xexsg_!XD<=~*Ha;nK@g8>Xc5^f-y=BPIza^?Px zO{;AgyN21YaU;)rcR$nB{IK}Tif?DG&g&`kAO3gDqN~6Km(cuoNjj#Rn5lW(J_9Wz zg37}?BQb!YHb|yCs{VvM1-O6%diHo$mG#l1Dc1!^T9J7dk03!KV2iDV(~jLyxQBe# z547q#y30>ECZZNlNehjgg7UB}>2_ph`KV&smH&rEGMG21k*DKOQDYhrQ^jwK@>d#= zTI|kCU@sUB??cjG@{1(7WxET`_bnGYsd1^*Kv-&bB||F6Q#5O8D3*uhkwzqZ2;a~A zf>EYa-eN@=r}(0qda{;poiK3hfzYt;)(BkN!E2~y`?h2~kk4QXCbv+l$!)P-t}H^c z-|D>*Mv(~=^&;~vNO88CDSs`^*Yl~13v_6kU;deURS1Z&IMUBYT4VHlV~vs|rt^-wT9X`VE>J6Z7$b)TuhZk60}-XNJt&LX8~2&?#RVaA-{%c8xy zEMDZAeG?)LC?;giUaob{Rqt$=zKHm%leoNlJgMIE6~}ScGO==AW2uqUHSyg(Y03vj zH9zc3vf`;;wYS?PC0jvT%D8Iw5PAxXVW);3Jx%veY+bkg+fGHGWYbPxzpJY9^@AhM zNRUWraOfBCZ03*m8?ER2zr~H8_s`*1RB12eo8!qvKojMHSp2xb?s(1u&=}a`3m#IV zKP%(Y%OVCOGu=_`Dkt|b^I|XBT;{fV>ZcC$UgEq5>HYS}rqu&IjfNUu_2cnz(@aaV z_zya1SKw}K14JE8^oAEeJo${vZd1D`TJnx;UA0m#J{pRsT^3i`Zb-I|r)LDumZZQ3 zIa*>J@L|?sH|$(-r=_RyoQ~u^)FRKoex6QAlb7PIb*=GU+GNSR98oTQMq-ml7N@3G zcAiEqre^2L-b2B-T0OIMGD(viaXSuDqHk6bRm_8MEIs2tVPGCojPezhISvS6hcI@_j zSSHo#Q70{yag#t!6>Am9r8AwAOD5RZa$jQBfMwpN>MfpJe#L5eYgOAmC@>aY7IfT{ zOy)>iCzcDA{L=g;89$z)SU#Ym-NyRn8Wdy2a3_S#VqMRtjLgwD=Pb2}PZ0)*vLTuW z{ELa$wV5MNW74v&G>z10iBN5tfjjygIn!andi zS$l!pz8SBYp8|2lo{?qHeJ6|*`bb|)cn~+mb~OHMe1eFV4vt10(3ywD8?bg*`!1ptNfdzY`vJ!Yje6k zg|@^Fn9$OCWSkdFORAWHK%QWi$jXqdXC}!10V_Wuv}hUQGt@x;SrDrM)fi2+bn;eu z*Yxyu%Q~uScVa52(W0}Oo}%m6T%8lD@GQOBgKVuIrpX+eB-<3JYOZ9($DK`UW)|v| zDkRTSmKLY+3EA_y(=A|CNu<1}@ib_^fTA9v8Y+yS$GI=9y~SP1nhDc$f~IIUkBn1m z8_2=xq;?Cfo#yqKef-M-?P)~+4`4u_zf=Q4sk}G_wE{9bSXK6Z3&fQGXY8Uw3!601 zb7*TqWt8l@Bg!mW0fi7L0{`9C8R(^;TIKa}SEO1;I-t3zA!hoLsyQvL(|seFt9&a^ z$pt;J1PIgzv;tO}LLh5vLQKx8Br}wxO}frNYHIcqQ+7a08)F5OiAxD<@_!gQEq6{S z#8TxO6lQ8{JeF{zx2Uw~GTlNokcY~*`oY)u5^NY)v`(iQSXaeL0Pbk4ks!*hMUj`5 z?;q%-H?)kWux?DTzIZ(9CU1eR+Sn;U6+0;hns*iOu~UrHnwK!J?cQy{v@-FM^|G7k z7azn~Rx{_94{Vp%%)W-fC&2($yy7U2&o%abwX0(OmQw$uqV=_R`1j4bUq*XT8ph5&?&_lh680@oz@u%KJ-$+ za?jqUs0S+d0?j6S|Larqa8#(eqKJPLW5>jpW$Z9P z&*iX*bO)*)DDz9CQh(q`f;gWxDnM&gia#n)L8C}Zfmj>gqEZNgp88bFJEH;D;^&_c zk)MA?kqIiOxG1VcS{Tl&T}ln+Bc#=#^rV5xsK>yayt&i3&J!ETbZgdgY-`7PW;Npg zy7fIPk(U!3xy*nS6czl7oT71Sr(w5MJES6FtU6S)1S88zNPpOawOaZTG0d4$9MlQ&D3@V7+qMlV6leB=O-hMO#5E|Mf} zvSK|E9p(W4o`u#10#8-_!5P=S=dddz^c+|fG$e8r&m0EW4?b`qQFl&VO!%Czpfvcv zMWw+9Ei8NnE-rk+%gw8%DdW~5;3kZTxr^^DcxD79;>MEjl#IQjmC8#md7ehw_C8J;iZ;)W{&37 z*?)07q<*QD(d7Tie6{a|QJI=8&;{*r$O3Mak8FK!<-VVY-3>rqtIAQ7SbeYB1`Kc?=pdVoPQ`$StoB_pbO6_m-&qKCRnv=x4RZ2Jj4cS z&C!jeVfy=sc7!otk|Zzl7PJ)0%~4(HGF7&_(qWw3J=I~M9XAy|Urj<>?+kZ&0rt_P z%foo>4mS(bZQWqDOvfMQ7g9`yl_4hMI=?)=5%Q3^Y~YY<%Uz#CAdh;>+-1;@9)FUp z9_@RR5dDS92FzK~Q?kYdp@Mmau^WUezyGcE{Ylru&y-Fk?(%@nnCduAEc zjFS!LD5NkdQ^Mmc)~#*4*_zokHh)b8IYpNIA|9R;SwfVW9gYYfq<)ZU?FdRvuC4}; zLq#lnrjVGL6mgf2h+B+NCCtfr!1Myr2BBvgmI_6vo~aIm(J98_lwvd zlC?3TptUK=wj?c^+#N_e+-`enjm`L~#AU7rRVBHFj4kP`NM0;#WU56sGk-yYF<+I2 zoOD9Rnr+%Wn7fheiMM^`4@ZEK7%z(%uxkZ^kY;)A?4TzLhuOE<*U=5dka3C~-gj>S+j1ww8aEu#UShboDDN?7PcXl#OyJYj+=2aD z%Q6-f{=jK+!>LVvZ;XyC?R|b4OSiofRe%VBW zV39Y$^0G_#=X}l){NV)n9@K1K986Sfiw_?oDB*8`yN6yv<$pF3W{WU<6x?)4bGM`9 z=}#}-JbC`&*{jz;$})^tt%m7UwnqjyN`8Fu^5ydv-@CA}JP^d_e&XS04-{!GkT;2B z;JCC-J4did_ZWX9i-Z2N*t=fcPH?_uf8KT@#pZk$F*2ih6l1M29 zQa6iS(7>sQv44{LTBTBlpJdi(^hbMCO1jKn0GDDe@)CZ^t#S%`ZtE5>w(E6EYE~gDb!%m{zE9E+GeHXEuD;IQ8igGhZNFI8Xos?JqnZzBcljE zlx0JO1NqC#yjay)$?SGqo#zpbRW#Rb5!2}=+om-Pj(_bS2phFfyE!nSR^P+3Xh~aL z0qY=ToQPDP13S0kNX^doDyUV+BBWbT=p0U3ckiAw88amTmDB+^ly5rWRnMljuL28V zok)c)uLrt6#Gni5Z+Ee_EJ1ltMtxUQVU~wZW#y$aa zH=pt;_J4QqZ0TqcdAa@jdpPsd3NF-lzh4g0I{|1 znXd;Yn^=KeN=xMC%2rU@;S|$qe5K@S=gw0M8*+sLK1ML0^ILh%*0~CjA--7Tn_TY> z;^XcR;=>!(;YqJC4ZUl2M}%4+cf7QRCMayy`G0%Be7A;w$L>ZY5&XBD` zgD$>KgzKDr00(o56vHMh9ngU|rR}g2efank zZvB_Nn{YB)kvUc9Y!-cU&!z5z8`Q5cl@975P}93BjnB}XI*KO`?_eEXM>vq;iByl2 z$6WQYs`HB+8Zr?CY`D!k8T~Ll=gALvlz#%pekP|Iq)=T|G75h@cM2qBg}W&x?fMdr zG3lH?2<>lZI%`Nd(JAX(fzP`u2h*okWj3ObrDv;PBoP~H+DTPq9A0clWgHe94sPPi zbn0tyf38qhNW_dr#$Gq642bBFyF8WJ^^a1oPtdD<&x{tnR!0`O_KPNRXIvErwgU?`cDh<27d6&EMJFk87};yNG@X&9zRheG zx&zSLcRSd+xJ?OFV#tZxJ(LkPtMp+is9ox*lEZsk4<~lEj&7W)ZtYK_H-D=%Yu4Nb zHeqZZX7;sjAI8_Jdypm^JFQQ`ZL!0EI9|!2VFq%J;J>eeyY2F*c(qO{LWf#+>@{2j z?m8!<%uz3qUrnrSWG)2h6zqs}J>q1cN5r2vGUSn`3c@yx8o-|UmfU})N7|o4(g6sy zgVWm`-oS<&F^8E!(ucsIn1A6PBjtHV55;Lq>ahFpHZ9O?OFqoLb88fEn=B!?c-vH@+`Q>eNV4-!-_4Ut~nlwY<^r4zB($t`SinFnqFV<=o+?waKe&yrp0dm*U0OT2QRMA@+` z@e+?xYDmSt|2h&GxclZZV?nks?Cs!NA?)b5BO>pGFs8D5c*r@~scwIvg9+TvE7K!+ zX#UvA&O74U3_JcVtAF?Q&INH7(Yz+B9v3&XKuFU)PVfSTcPk|$N4~2aSnaRp5UMHE0U$y7;#ZJh#&jp7e}sNZKj^r?c(n8W*xLQhXCc1hnIK*z9bWB38pIsX5>sc_fdp)W>VFWOa+=|dFfurwd?_9O ziDm#s7_}9<2uJhbu3rZ4hvL2kbxD*yu?{>ET5kb|46j{jx^90jAVE)a-|0NM11q?F z6)*NJjxba(9(!d_8N)p##f zU*DJt56WDJ?SBSp*R#>NZ=%C=@eU3e?1Oc!qd(x=U4j%h=x3nUG2r{yGih}}NgVHB z=%Fu3zG}|!PCw1HXd7305O&RFqQLN+oGmZ~>q&xurW=N+vrYAmdo>MH)|5CAzUyHk z6faewydCC=576G<)8dNDMY&MdIcO%<|DlH}N6hk-JAdT)TIYej&PT!-?K`kqm%F;b z`B-HwG?lGF`V}G=+fAogG@VYPv5N*qU*J}>zDLb9U})oy_WQ`u!e%Z7^<|X=gJ3baMhIv!Gd)JA5fg#iKs3LcEe2!>kpoXhNBkJ10~o;O=zd{`R!71LE|yqjJt zz1!H5IK%rfySZdV;=Xb11JWsr<8L1-7`P%h(D4Q z#F`zS4w`F?s2x^4K+Sd)so&-HBE8yC)~)Nr_-R^L~zm*ZQ^6 z)r*G!rI%b$9IgR*J*?wl>po<0V}G%{JWPH3QItCMw~#|m&?X5z^75q4wgNSTq;i;_ z;&X!EEA-%%>809|fp&{UmbY{hW^q_H=|@_uu|aqu8|T|02eCgYd^!ycg2l&TG`Pr- z`;dYy$ZN*eVyS35HmPGNJzjV_w0%#{BDC67EC*O!ibfWgZg%XdU3}3VR)4>oT24>{ zx@;Cbr%qk!2BYyWpm?YO7_54nsCI;vH5~h)MTTl>pFz3l6+n3QhpQ}BM0~7v;$r2U zn(25dq|y@J%Rpam7`~(AcrfA5Xs`gRUtTS824RpE^GP(A4k@Yb9l1AkPak zFk8>DLdTfo2XMOpr#s!`af4!{#dGZ2B_}WR0p3dvKWt^+5zjHe)M46LN9G zbH$xrew>P85TK*ikADXbAg*OHvRI84}+ts}1_1&VtYkomFVU)eD4 z?y+df=)dmuKkd^(Cg?YcqL=c69D66~cd=JhsIQ8)mA!SBE&|Tm?rB6ClGB3KZJe?* zu6`KycUhC;lHuC(}~m%sg;I}AtPpj zSMxh|HL=UX6@YsRrn4@&PQX7%(evSn&<7^0H(GI5d2n4H^CrgLy<@^&-)OIGbgpW2 zZpsXPsDEO_o9rH$C#KH6+tbU>2Y-Yvd_T7RXyJbvmv=rO_XPV1d^*REg^M+;YNAA3 zVx2F^oyNn%pPe}AD{~Ix!B5N$_;SL31rKgM$qD7|j0<<(!a3?ctk=51`jxEzK=5_SyjW?APlV&2IBGQ#^$V0csOdd8z<7gfD? zL6HY#*Nr+2gfT|y43#k74<|=E-h3f5&ZBizk<|LFOu&_{?{CG2^3Q}D@^s&w{pinG zQB>mZRb8yU=kcIT-ob<60GU)l@6d}N%q@dUs`+(gS7RDKZdFbolX z-w1E9j_S)Dw6(z3#ST9LMc0__F6dN21hciPqxo%U8AMBYscdwnFQavv^~1|_tABn* zRj1`eFlU<~CVu+WZu8Gw+MbxT+SPel;zbxRp>F;>*hhKwCUh}YXY**u%g`tWW)1b| z%wIY#mA&4k^%Z@+`P({g^X5{#-jewIdrHIaLO+Gc0U>~LsgYpU0kC`1-*w7`pw1)Q zeM~p$zo4EkaDMSOz}0w}z!%Xx$bar4$(^8MmQCre$laRNrdFWxM8}xqfAcT!LBWHc z_axDyzcnxAkP<&w|D?nF<RYhu{4Ex4(bz z@OK-{E7WaM96@R;#^9-c15ir?1QY-O00;oJN|sie(`0^OE&u>J=>Py60GDJ@8WWeT z?HUb#?Q$DOlHh+nMGqVoYG^=+v}Z3a7~5XUl1Ix~%XUbbb?h-1U=wJNZ35kx?uIC= zLKksQaqn>#aS{7>?@jJWE!SfsqCB2GB5bj{t19a&D=RZAGpk&#>ZVJ|`k>^e zcGK#|ZnG+@EB$txHx<0L2lJ+0Ci&$wQ3+3fzkN1>_qJ>DX}2u8>w3m{ruAY`OuMqK zTAg=R{AFEm>MZZ_=^}62!lvp^qhwwdibEV`VN%UUPA%5P79{5Efk zQS#@iU9a$CG5c{(V81VKpz5~ERcd$L6!{FsOlSJ;ZBccjX37^2H**Tomf9uDaq~_cE{YtD@m=&v6peV>#{k z=|xc$O*!S4(+)arV0>S;D$@@+4E>vb^-8DwP~2i0`Q^tIj&i=>x7S!nHC1VEpbff# zqP#7PPyd{&2L8DMK%;}23U~&pcj1yx6 zY;rmnY0Nc?41gXGjY=lCPH%V>r~F5umNP7>2GXi*14F)3&8(F_U$op41b+%44>{2??m;m}e2 z=w?uGaUl4~O?K*lOwPNTbyin6)I{#m;enett(UO=fiOdkBb&4aK*NQ3ZF^?hEW2QTlJnWy9B7bEHiNFdn|yxX!Va6PF!i|BV|}>I%T5=@AsFKa zn|cl80%%D``BDeEm@E8A@a~v7*?>5Dt@&MM%eo-NXryYCMxvfW57ICw9Q50^DUN4q z{8BkFqRPze*eGd=ITX9j-ZblCD3=5vQPHS1K`1bgD{tVTIc&dw4I-WX*c9EmsVL0> z`i`*7DLXQ6#k=VQx8xJEshuHJI78;*yLZ!qKAxYu1>WWhk>AbgfxeW0Rs!jNWx70JeDW6F?33O2J_wIMqm|4+Io06J)0^Cgl zb3gdGZf=lPj>iLk&eYYN(|x9_NWr1WoF!j(^+e6`Npe}&3#8nQW<}JFDPX8g(}e=P zgAE&S!hrZ=4%<8@;y#S*p#&1rdl#T;5w65ZTR4ZZBmOsOhoY%@TAIyF94^I5hyAhGdluj|`M zyDETsxD!MO8OIW{<~Vq)nikMK;|R`WF7&N&zJ(>pNqtLPMZr2Nm3!N zf;+kC9E>@CWS{5jMb~1AUJ(OZm0A)hO@LF+8%#;6_3{!%1uAO0V$~XWN!g;Lk?O7v zEl9b9k`!mif%_DaLB1)c8mUKmvayNtx`A=aby||ok#Q{Y>9wAyx^fzUQ!lz>7hYKN zvqb@HWOr>Dn*_!XiL5(JgliV2=8{vxA4`}j5sKY^Hqb(Nu+5tS?e9=z!p#Blo7`mu zI{=}W-2wasuI2>l_`%Epl8qKwwM6BCYV}At{X!X}S-PV|eLFs~buw$5nsw@QjK1P@ z5MboLk&aw}WKhjKtTIGKj+rDh`_*Ch?GSMt+GMM7>C^6Na#NzG4nxmu9fGFqt^hM5 zDFIl2Z3H}1KnvSt=^~5pCA4R`Ued%TX<4axZ->cc(cKnBl_0}T6(~+-=vE5^RnQf+ z&cdbfT%|yc)gs>@t{E1|;)@}?5eTo51aTs;d_-1Yc~+0QvTB-Vj{c!C;&Gb5w0v^T(Q)-qUUC`fTiIyf^U zAn5V=dnCB>%ZI`69J?%uHp=wL**UXGvK3>J+KS?)$Obi(O0lG|S+L&vr`OJi7j8!XjwDKF;@K1Bv$zZ@ zbP%sV1OmZXs6LINLg*qI$^~l~I6-QEV{2!U<fnp;fU}j39B*$S}bZ<3>s!2Ec6LTTmZ82!$)X9l={QdS%}u4=qp~`j1x+l zX|8&Q7|WCAORx-gY)kwH6=rFuQb*J;y&=-Lbh2v%kU^IPFE_v(+ER;>6jGRfD-~lr zjN^w^4_Vd4Nb62AWXuuTFqjnl%1!zP0KtmwHl~4$6{2~7&(S_<1hRcYC398VqQLOR zODeQc`NgmTN$a}JK9wsFs=%v zvqOM7BFVfdXT`axzKV2@D!v>B&;UmpgagZNc7FHXS3##Mx5K!ecg;_w}(f#;T9H;8ekzMQ+%vh8Ven_kli%$*zEu9qp`MGB1{aSg+G`&-)q z-XVHa|9CX$@6E2xTee?sHcpz|t&y{EX@VNFdOmLp9<@<|Z1U7#!cj<%SG7NG1d4&^ z@_mEn>&vCG8~_J{1>bCcle=QE*ng9t+#dBZ$c_TxCITieLGp?ntfvDiKk(R6b@ZIN zN6=@J)ANx&ZN?YLr>?tlQFfbzp@1~2Sgst!1UfK8O~7Rh40*1ZTF3z}pKzYWa88oR zX&3#}GJcygjpU zo)a1@?w5mX>$9*52dv~>@@om&wbnVdJM8%CQVpjN0Wqq3ws&S#@U zDMlB?;R1>$_2n;r#k51U+9iP?R@yr;KwV@PIV9jNDagOVfri5V!Ncjp!|B7r>BAjQ zA3otYAW+-)QoQ7;VT+cW$Vy3Ur{#zgKk}fv|1Ie5pVzk)EdH75&K@fI2SvP5#4Cp1 zGT~#(@8LiDsn~}K7V*`NprXNQkpQ{MZbU<=_FgA8`AxAs8y`zJKa{=~C~I zm}5Vh!2{ZVKcM|*L3_r>KI9+ukocBKsq&v-jN2zvJsQMYej#?CXiC5#mHMOZC z?e5OFO0W|e`>jT^u0AYziRQqUq$zn@&e&8=kEBFwbpm2kIjlV(lq}n%CJlT?;=~Xh zCwN5nplo|kwmm4@{zEF;?vX^Rt?@y9mprKN9@KYxsqd^L#`7nejY}#cZXsmMGV?SF zR&l0(A4C!{H<{vbe0C;Nf5nIiEn;lzcMNvLr0%6t3`~Z&)FD~ik0=SAn{#7J;hB0r z{q~u)n7|`>Wh}vj`L>+FOln#MkD6jdDI6cBH5xh@wo;s;yKL6czDnXvwJh6ZL-QxQ26=$0a8 z02h!R# zL9RE&<_yWPL;=T*j_IOgs-T{$yy4vys_=jZJ1Kv3x`(Dp-8EaSn`bX#%I#K02^gZP5T# z0r1Ubmu~zTC4Wx5Awy->V3a)GbI0Jl)Y~o`>=E;7GWn4sWL24bks&2MYTjLAJd0s! zmQ{3=eW#fGit^-aHE!NqDtD zJy6zkkCP=>_GAp5E?-l^92R2T^g=!!A4P;y5|mOMBY(z~(=ds4TawOb4+0{si+b%& z2K(c7bo7lvoCb5`4yHhEGpck35DeGI9WJ4x9t)1z>Hmp|k%JHu$BSx@^)-qvFpV;q zM&ML-cI3!tiE=U||3VjxJ5iY@17f?!sE3;@^X6u~N}cR(xRDZlR@0Xzc8X+exlctIvFxv5WcMiw1Ge4wl|v{6QP@A42fV6)mh3N3-sKN@ol$*r3dQ zLo45mjwy3Xu= za5GCB%H*(oP8nRpBJ~xmtvnvXwXL+?yhez>i6~eFK$pv6b^kJdmmYCD#`I-q_$wW8 z$7=nExpEl*iJ3D8nhmPx=BDY*2%e_z76YI*TN6S%9(h?jXf!QRosd z)&$;$&~yg%O>3AfGfx4nJqDgk^|776l%B(fI@O&G6shyhxp$>Ga6R1QZNRV zA)rXw*gPFoJ5_Oiuri>~IzUk9sZA9Dcb-z2;kKI09EEXO!Z&K{84tm=H+emMF1tMSqN!+(MFPUgSE~hC<;D7sD@M$flulBAvvx;;+WyRF<=1Vo z4f00>a*I#9FrWG)@frD*yPSYL>-5mdXL%T)voQ?-0 zoi5su){c6I`0*{8_k0dz$g8iic97B%@D4}Yw4Ld*z8#0wZ;a|bavrWvzPV{}9VPOI z-0+=ye`M3Q$R_svHQ*0qUC-y`JL3QOE`#x^oZd`-FmaMsz?xCIi)F|c!~zVSVcmoO z^FNM{{{4UHr~muk|F?boH&%D;Jqzy zGCrPvc+Xw<02BVC-8DEL#RCRnf-wy6mUML1#9^XBZbIEL;4bNG42dF) zFJGR#eyz?<9dI0q8bk41qZvY#T-WPntC@E+qG*53Qf^WW(B!c905`@NeZlS>#)|v4 zB>Q)3-@R%Iyp1CHrR=m4TUxkac=W&9pUF~xBO2oldIzB|^Cz6#>WR&CgWTl!Tx9X) zeNJ7@7Ma;%uD{>)_W((&LnOm}+A-^Lgzk_Ra*koO*t(6N`0(+0Vmh*;0+VlWAiEpV z;(hjb`ga%rQrd;xdIHiC*hp#$ooEvXln8!ZUnFRKIz#7=>#ke1Cr_SSmEHCF65%|5 z>HacP|6DHW%O}gcg=NPd+HN*p*<-3@S*^Q*e2+-)0HZZ4-!AJJdH|)SJHt`(pN}jd zMM4B+RAF1jK*P)dKItB6t386^4iN8Re8mZH6AIqR(U-FiC+}4g>1`W|ctE%s1h5TU zoT1T>{Ao~|#~*=jdkuWsp8JM9r7#SC-zV$7km0g`opsE-7}O#;%vmvoy=!5nS13s1 zY9<3ES z0T?<5DX%`2MK+K&D4H>jqwnd>o@_lsQ&AXo#YWZgWU#N@y>H)T`jA<$zy5Y_hKKRQ zSrqbKsR&uHyb=wn$g|%`&EOw@1}+G5%trUDbWN((TXZ$Klzs5tT6w=0z&^}C)O3dX z11EnN#PlzAMb4B@(I9rN;W-@bT9M@8O2kD&mDs44Ca}6sz8rs*y!iG}{Oq1w)JO@? zMp*Yh!-y(>Y|1i9{;B+Sl)NmzO^R;%Nm@*&YL8*QiwSYx0jum-=2Z57tFDJ<`C__W zD4MYZ1`3-%v@t?M?zB)G^^VZspwkFdiHCoe=r!c43+}k2!W-#AaoL$nr?QV%KJC-D z(AV#5K;Gi0e*#>^KQH;u3;y$l|NO*%zT-dtmH+$;{5cOn9v^-A2hUe<3q$xj3vhhA?8jj`o3og~a-n#(1;rrK<#siIWa%zg}!P;kGp45Omt z6AVnSZvF9q5+9ztH>E!$TH!eeAxKr22R7ss&At@uiVi%>ccXV1>AYyj8h6kA>UzD* zD-+3|T~+6(jVD$3{g)yJ8z+Aus^WHP_1#Ke=ZHzEz1dlu#8Z-VnpY+^$`=r%ayv)H zflOJfYanloV;Ndz6GSrymXmVJ{NUb<=Sflr2j7^B!i8ypY4&NUD}L22al zIS3|gJuOLzOF~eGZQ(;E@?|Nl%~Hb0VeL?^2{%BKhK`qL1ffW@bETcF=yjbMhWEMW z!a}|sOtsm9?weG4kzqKzxitVLHs+IeeX|B-u5$(sliZzAJY?5E4=WwjU$4ur+d{07 z=ixRNI%os)Es%2=jfsEm4p1QI(vRe{!rPuHX31PkEBsYu^~Gxa-q~}E1koygXA(W1 zR-1Do5Rj10n8%*5)59i%`qU`{K){z1;OVu~Aj2YOP)4h_Wo}SQT{~cFCd;wj@p7ss z<2AgJyX-Q>q&LN?;pbsLHqii^VZl+>=4!?Y7zPeEZuMQZu3mrr`i-kst7zlsdj#9! zhtnRqg;fJa;5Ex?i}6f;-BmWRcNsj#8^+FDdTvLN;gb=j<=pgPKFhMn(jP7sK@%^Pz><805XQts_)oxX^y zd~CW_B=>vS3qOBv$`D>mr0}lqHXpOnpIsNw|I(7!#3FNV{dR>({X7l zt^lj_F!|Kmz#U=xb7)6(NZ8GcE+Kx=MUQ26pHmn-_xsL84_%YxSzq7PY0O9V{Ea+Z zY)iZ~I7)CXF0i>57tTCh=XAqnY%cXMxbwK*SlF_Pj`e?wC@#wA?1z5c(P6e29x2c> z*qYL8LHZEgul+4D)*8?1bvMpiJB2;zfDJ`9H_Om58BI^XaNnA$0$!KXcLaacfSD= zRF)j=-v+t>QS=kvO$;GdJ3*HjI{9PT3yEBK1(%Y*#5o`kK>nz$;(Fj2VcCQGMD#XF zzes@Y!B6+-{1Xt>Gl&7fK(!EKH2Flns!8aMVr_rirXaH5jZGT+*m_z5q8`0QU*7hp zt!+$n6yKDf6l}o$i%E|O>e`BOky;Q>63>uK71t$%q8<>T==$zpBUMf-=&!3@aTe)# zih(2jE1uk~A#*$6xrwL&=Z(WtW2AptuQq_ZFUxmj%yF@z7;1+k?8tz&=s%Q#TphQY z+7f@VQe$BljnV|Jye$_CthqOEB?Y@wu?5?1R6Zs?- z5a1_u>ASqtT?gZunzI*c4y<9iwSOg?O+SA}MAW93l}$12COq{q$ZD2#PNmM_{3AR8 zzqnX6fL=h>miY!%SJ=&ME*7%VqG|3_DdgV<+Ny0*t)Ouu4-p2k-Ubiuuh5e(6yQAU zP;16;wA(ObcOcL};Sx@eC7!2Z40r)4Tfg^O1i~ zs&<81_X$gnhs8bt)VHiio%O3D8OUa9nD^*<=xLjWz|mZhu<@QQF&vnlDC;gd>~IJ% zgWOW=t_WfMIyu6?<6**51+az;{uZh({v{QPzkw<=q4P9;LWWMufLaTq()_~F3DkD> z{&&yYMK88Y51gB zCFAkfl_a!;t2q$8f{0gO^(zKc`pGge%(pqL_aXY6?_NKexK+H%X{&kk{}4y{a}y&)s+2o}oe+>IS-I9U)%I8Hks zW&xtoc>|xk>2b}QtM$@B_}G8wt2@1u>!K-`gVlVEr9l4z%ZAwxr%orBnzKE{B4cntbcA?z+q@&@z@;3 z1oS%0JWzh_Cxb98bb}xIrW@v!jy|V&Wd>rC;>2(y6~iZnQ!z^;;kJKfN6&;DR5yB{ zE9WRSu_JX=Gi<-bf}Gu57k45mI>4prZKzTV1Iyh#wz)ehHUN$v(K~cmziZ6z9>s^= zcZ^`I__cVjN!-;mS?pD%;FfCPQCxW1QX_GS7m$c^Oh?grvADwfR!y9_uDxZ|fZEW< zZ0?#4d%MkB`7GAX)8~I~OP`unc6?xd5AC}tHrrZv7Y#TH(<}j8=fHAY7KKp9?%z_W zXjWWNpR&-LGkf2mC9cmPZ$Uh@$(HFc2VGm#JFhXl|ExOJ4b4Zp+CziJT%+c#C=i%z zPQBXNntHXnF|sb_QgPWz&197Ag!D5xNV;!hjdpkz@5*)mUUz?ct-No8-G8n7-~Ju$ zYLx9F$6KR%BWB`pGxAVMu08FT^)%d?iW&J@<#WG_CdW-!BCh{Lab(w+*o5+5*mI}@(h0}io7rG9*vL1IK}(rU^9-fh;nkd(N5{Wvf%ZLK_lIZ z$pi$I=>Tg8^NN4G7`Wy_)r;Brz+(s8nU=Y zj0LvFfrE@W8*)hy&K&M@LlYf-YgmGdb-_9_9_#l@Aic}=l6e?M?|4~sx3o6^nI?r0 z!%96>Cm_$RC;~kgg;Dm)PRAZMliTGtP%GVhr3fZpi)DW?N?@X-kXsJ-wb3l~KV^TL z$u(Ih>KPqs{axskSoT;=>O>{|<+B-WSE;;ZL*B`;&CZ%2s1a6hy|S`dcB62VVh%*w zy(hF(*=R+Wpb~TkH-_YHgqbHDUbFBF~=2ld$E^3_iQnIt*5?dsei`^ zF1^IxLuE*UCxhbXW^jK$d%-7e1>5PenNk>QW6Hks5=#p+ zFWbTc`Omms_)d@HXN-za)zYDmR39+JAo?QTiX6YD^IFA1YG8Y*ia<8={6&I}#mkkt z`ejO6KNVqbSPc>(xNB%a^S;%-5r1+s+2V!4(6nWNAYAUo5r?oMXyAZ!{O)6V>Pi`H4}Up_(yW2+iwTobtkyX(tV~I zza3<`k6XVbf_>hbzb%S>?%Tfwntz@f!0$r>IYkX`rEV)6nd`g}yUcao6mqroRXl$W z@`jW*$Z8Q}4HytwW6(NJMsp>J3XS^~IJli&mTA7Y%{Oh*T#k}Pgut6nD#nf-|5BG# z+ScT0!)Sp~+L~6gcaG+s%b^qiT}ua-yqr7wcQD++pAVegy#HPEVW8s`;+LVrUjw#G zuf^KutJ_hSWt%~~GwHIp&fk{xx*>ms50Q#;(Lu{D+}rFC_a_!qCctJ=O=CKk;r#;5 zfON2KUQh7J8$5Ds$M_J+9|Kyaf~eWcbB~8Go#flXq%lwhxTm*VkfVyo)A-2o^Q(1* z3ecaqX?;Nh@Fz#)P%5j;IM5{bOfO_|h9+iUA7B8;%+O~#tXo%H94$hTB%Oag`ElU3 zj~cRV_#>T&3)ZgiN8;**B1;!?_V-Y`5-G!lZb;d0Nh-W2wd@z}F7BhI$;Waax=8T$ zp=3tf;775WqUG6}x`$dzn+$5ZyeZBpxs|Aeq*f|$CEfyh!OYapkhUrsb|}+(o*a0A z;fjj+1dQcj=$ivET<2VSxDHX6s&-VA91ry$d#90Mu1;Fv6m(1zNvmM6=fWnQh}MFhl#8QhQo z65XeKaiQ17#f4hn7t|fz#V#&(MwNE?j??FQ`NntKttv0-aa_;klTd#SZ?VHkOT&~I zGvCM1J-`2mS*%y#B$6_jHk^4=6kMHCa3JB@Zj;Hxwr$(CZDW#5Y^!5)V%v5mHYc`? ziH(W=)ZQ1T_NnU2uW#S#e%|L>E3z>@F;wC)!MYG&6+Pc%x` zRt^3w>GM?Lz-ZiZOlJ@rx{|D(4Sz9p0@b}(R3XDWJ^!<1`}cZD4&=vNiQ%2&7I_B*(Qw~-KF0;mdlaA6bKMyGpbrGw%0?|+?ox*%k7la$J zk7D%6_gMJX0as2sGl0y(Z%-WIDGif0vae3V$OhwDq>{PEcm^~myBXPR*fQK}lzC1k zDTo#J!*k!2ToMtv2`h2qvfR0+_l^ zitgw|t)KSsM~J-qPVM}&p$c(nFnbkR<@k?Fx`U)K+x#0}&+q*z8xqsFE@H0xgyEqC z-t+8-Z$$C7ZZ<$F>n>se0X<5rONTie%jIE>K%+r^1nW5BBMS7#5zI*uTeA}Kz+~n= zf6iOic7%hS8a%N8r0Bb=9A1mOICnut`lt=fTPj|IGKe$Q0uBs`6CpAv!J7?*TZcuR z-t{|pAQ1}an=zuytHAKRvTm+yiGURd8NHDTPP4=AgF4ZR`Mfnz|h~{)g`Bt=1M8qJ1cPi#M*UxfObcx5JQbmd>Q<;Bzve zQmIG;2N4dn8$Y4O{*KIzUMp7}k24NU&+Go4XG^d*3)}d-=Bg5J!k!!47-gd#FGQac zkI#xTViqu!qdVTkB=(Ls>h?D#8UXnuBX^1_^8GpJaPH5hyg2_af zD|NaLRh%=F=~*oJ(zk7x3wJR~`mqiyhldi{w#u>&HhoQjd34mrqI!4he;@t4?o38koit$f z7)!2Ji0VeH0hPlJqVm4hFN?Ax->Ln;DZ?H;Dsb!q*~K}zJtx3aEK>gji%Gt`Ydm~c z1Ygw7&xKw>t&^zOQrq^6)L=C>*!xh!*fL0M!^A}dwzYTzDn9Un$=RG{iDGIqoKghb zhK+)kuV)-dz9L*cyz(-Fbf^d7spq0k>Ozg)A(#?o35I(7ve{5egfLtnZa?>CIX6&{ zz3e?zec11E!#11eMU~TRrpUIoNHD}6e3d6*9W*3Wv7OAA#d7>_^S#NYNTlJncZ&Nc-q|<48B^% zY*Rufr-GVP-eU|wFd6+BJVv45c@(~y5Y2^>j-O_WGUeVfkp%CNj;{dXNgq8_(jZ1qY1KR86IAq^kLC>>X50(QgI@5Xl1$_1f}Wu+JWZ8 z+joArF)*ecl}_Q`V*4{ipi4Cdb6#nIQoPdbjK7SzgO^lTiMy-_gZDC)i2j9`*F?SuyKEyPdB$< zE9YpL5fs&>0eZ5RG|!)!3yx6`kTJr|6(M!(l&}IST0tN5f%I)G%nozXH;WA5+eNtU z6ymC_-cRk4ygYp93>n9>_~{#_Oi0ClX0S{gtgxY{84#`iJ~UQM85HDVQ{gFkRdV{Q z=Jl78>rg1bgfRlv|FB3$jyRjfyD-&SH$`{;!Tq?a9T!?ghldzR`$zt9w## z1bUfni@mu~zE`ZGhRK3RR*E_XU<++xHB=$tW}Uzjd+~5pqjc_?BxNNZdp2`>tK`T| zg4J`jx;m4JD!?0j39v0V{aS(-A*6g1x~!&ivN{4JcsMDxcPP`2?S8Dm>E3(6pc*#W z)jxqnqkv6#=LM$hKIh@n_&FKF35=T0209tvST$a?h0gcEMmK2vBFI|>-V~lL^pwB{ zI}tE6DmAZNSQlxvnj=j#_LkW=%tU=Nk;1J1xcFD0@h4}dvyB#`V}}}^!FQMsREvw6 zu0`t(lzW1b4^^c@#VJH9rP<>q8pt_%JAd7My<3{{a)5wa`rQqJ#t64eG4CQB1-3gu z0Ck;THkIEoA82x83womtAco7=Yb~@M+t*B-N{HlTn%fF`ypQ(2@+U0FH!wj8a*R-{ z&OTp-^4^x3XceSStG| zLKx&H;{W30c2?5ZV80k|hhH=|qAy#8gQWvws{kG@GxUEDa9;uk?L!z45K6lLg5G*X z387oF$#Jh>{zHw6W5RX#_Me0L{WZ(3U+&VjXiD>FQA0OAYOh`DZF;%L z9N(?TbY{XJGsMRq$Vg5zb$yFG-c4sxK1tYW3Oxp3qkWEsMD)9?K3ymE^pdJZ1;z@4 zkh;c91&N1SVUk+k>Ud9cAv498v}QItXpBvh1ze9SLO; zl~ANGRNgi>XIBu#(JH7E&_;W3KF%d)4&R7&%kwX zO*>0KnHg;N(sqkP5}_q%y#RZyP9Efq2s~=EemDhIofl*Jqy=+9N|G_7!GhG=HZZqQ zj;4aR7imO}xdK~S70xsRFVR|b~Jx}_7@=@ENnw6gMpTU4AaQR*2`nk{-M7!aHI6@hmW%iDrhJK=hZpdmMq z*yJ{XPfD`K`N!`d2lfTW8YB~`8%3p_JF+_f#G&uDhF!J|t0GSWYAy_+e+*M-H;xgy zHc!QpW@iqBiv%Z;BkNuZ_c0Lq09N`}ynWbj1ZCJio1m|6PROA_f8f3`A>1VhuX>aK z;xYDwop~)rAbVv{D^MysDW1CfGo>0h^rR9woK3UmUm>(f276mQGz;=3Err zFb_yRRGpC9nxLQTJ61VubYKM{@y{860s)T`Z?NKl!_Z2?meDjClT3x$c)b8T(^`Lx zpR|TxyA_7up5lFC5(g-;zjxXVwVKu*`FW)%?6|^pGicE;YJs?~NDv541lvq|b8o08 zWNM4g(t~9A@dL zM3h62$bU_dn>Vx*c)Q_x=jI_@sKZ_l^OXDw38i)Q^wb=(u-b;4Z|eH@mHW0|R7?^O zwPxE=%Fcv1hyJ{YtuaT=j4LRDc}jW?#Y)r)-=%!eAAA;4plyup)o9;hMxyWyYW7ap}RHW-cqDun_7sxCfcsmQGm8+CFF4r|&R*G@}~My{+q=biYcp^RgjG<-~4<6?|yeLp+0x0~|wy zL_ID^f*P-il+UcGrUJ|c0PQ6h^uToe?CMd}Au@}z=x_g`td-*%gmm208`M3G@k^|2 zd=+_vXjdcM=eOdd52W|8FQ#sf&IC$Nda5ZGE)}SEY77@HmU+)+K17aOg*g z)ni7*^XJMZ=l>4PUzT9D;$JiE-~XFwJ7R>8K$n)X{Q(=2-*hcjzi2k;q_T@5ZJ-*y z6y#ih8iEIxLW2GNIgVMPk@xy$W&AVpn}{Fu58l`d({+^xBF4?ZeS7on7xTR)v4Ynl0b6g`&y@3Pzbii@K3 zC-6!ukAc7muedG})VHET{E5gxn;tY=z%t;zxNQz1^tM$cVq@@{A#7_#c-_V<$HL_d z)&tUN0?rB4urZWGQKh!jl6kkLRc(e{f*}BF1>~w&my{)_%k%-QeR#2c%Hi|lY#L;Z zMH(*5J{ByhZc_CGcVG){SgdLnj7jcq4oCpa59ZxP;;mW_*T3J*lG{PN7q=~}fsP7P zwxmMopL=q;OJ!_fE-^aB-++g2qKBE)GCyzPFhW!VswqRis}J$kR786G(po=oOx9$o zWl4hCug*E79B&or4&hi3AKfPr3lH@K`|CL+nnOuOMjxlG87j##<<9#qO zk;19kh)QS;Vb~wSIhUHJ$MT%s0(d{hAaxPVRuJF*0m}kK&+NL?S-B_%DuSr^VqL^8HN{IrZU@u+TxNWUdG0By{SniBGpAU8PGww`7xnw zc?Ug2ze1$6u{LS}>U!XbDt93cDQ|UjSRIGY`e)Y-qfUX>3a@W@-72dj3c~4!+u=4w zOXH!{JonhhqU@JCjbUUH3rKK`C2l?wU6`7`&c8qRm zmp%!U-I5mXU?<&5%(iHBW1&s<>`M_=^P?gLeLBaAGF*8w2&wqus~D%ct^LKf6iOeV z4o$h8dQiTGGQMG?Fg_wKiZ?H9`Jwqkn^t^V7KIDx{D~j4s^-8Sz=HY|QAKS@$Sr7@ zG4yb$zgkkOACEv8k`f^N8+M2NSkQU%7-wkGXipcwKqLH5mXou1@->r1-1Sb_DSen&#=yHJeBbgk#M817E=Ld%YB@D$j3Ga7K6f{uFKC}(+a|Yf zsLGfwedElpItnATs>7|Ervkk&`tgpSH8h|6z#qOd7FP4P1TQQS4g>r^~H zv3*|<%`FT?Z)B&^mv0X5=9!XX*`9GLo!m{UQMj+wLytS{Dr_kB9z7**dN4Z^Ztwr;FkTDaqKFJ8}{F? z&L8T`!z^eZAgu=fAseR>OWG-$_vvj$Azdv9sJ>HHfJCSd+36Nq!ro zRvZ=B%#p;gez=l9Ep`D)EC`e|GZzmwN_HKi42vc`{cx zNhO@J*MW*8F%3I0U7IB*?(L9t6~>ew=CmZ^2@D154Uq^qnt58*sU65)D5rI7Me#(% z+2^2f#Y-yJ3eVGmhY5O_%jsy(EYUl!DcBCL%*<^`JEnrHqbV(Ful zQ1atJM5xsJJ%mXk0_9-j*yJa%_sY_U=>aF{bMJ(1Y^TAMVDw;M-N23^EJT$?Smvq6lY<8K*9ZGdF)Q{Z6 zavpz)L>D0l(=fjzBLOso3&p{yHIIvoH^sfzu`tkX9!3p3Ew{)ueJB%zIYt`>XS zN!_jqm#PWU_>?SQWNqAD;40oU#IgKuuvQQ%a)1vw+ZWbB{c1B=I$@ z!qGaw|3?6^TVf;~^Zwl73_N;8w@~-!H3(iX>=x`=MN-kK zXm<$T2m$?v8=0RIBL-o-9b0Jzddf3)spsUQS(Jnm{%mlDwQ3T(l4BHdbRJKTlthrYQz3XJ$Pe zu;2n~0?x5u*aAZ1@Zuev9btqo+G>ElMv>=S4Rz2jB{6jo?r;AM_~CC`bZwZ)SX#4F zZl)(Bg!|2E%R9EUNHLG&S)?3@Av6J<4aPnCk>c%g#N1kFt6s^ve|xFD-R?onK;I#m zW{0&c6ox9`tIvTN@^!KSbhGO1cn==B$)}K4F-wGvcA)~ZV^u#rFlOi>j;c`NCx*rE=I54qwt2d4yn!KR;Tz zr*&(!h^xyFI34L1n%-ixhMAIy=tk8rLx>l{j>ogNFitFFqa@#bZQKnnW|y2ZLIOy< z!I8fuyLx5bsEFX#28ZJQ%hnU0FO~W+lWu9-!KEP(#zJtCfTx8vB#k0Y4>>Qf`M_>r zcm6X0H~Tk{D+3kkO3&lfzEhN~6VA*(HD)k}b43bWwwQ|?JPywJ%f zRsHv$Jzf|2%C>+kwxKjU&8XKAFKQPR&xR)C59(AW+5w8}t4-2hTKE z>})5s@E_11T!sS5TTN&r^}H|0%QgR80)|Vx(s0dJl#$CJWAo1#`^@W5fwcY%>7Bgq z6ItopjAAgLH1303&#A;{UGePDb0}7&YiTdqAWb}>vR6$s#i=$v;}N-E@KL@A(bN58 zFdeB!MSg75V9&WqWX7pGJpk@5mqL6$*|P!>wEe~JJ`^x4t1~v8b z4=bW`FgmHIDI3cnw47DFD;3JC+$Gy2e!|cQu__r=K~?N4NV}eT=Fv2Ae?l#kb>iWo zUtOKSW@vgQCMF}$40$=LPtF)FCs-*B9m~jJHutXk0KI^yU*F4;sf* z-xD$?F9|%llZ?RordiJzG;GKa+(BgELT>uzau$@lBhAT(w~79pasl9_(Rfn1w)3J< z9FnUoMY9}6Lp0{IB*=H0mL(uKn(9+`6$tC^LdSlu^4_*|*+#`|B(Qcg27mnCu*rIJ z)pw?2qun&3*|!U^E4ZLoQO+zd5 zoB=KSWMrpJP#fbW@ZRV95D{?vQ{!%}#`YlXOV+kC8t{m0kbB63xH^iZ;#44DwhpE(S?1+OoeHfa0lHq z1wO{^OlmJLK8VwEB7&J|5+v5hAIYg-U1eI$WoZ9zH-{%RAO_s71TF58c_J$Y>xcX# z+%`X6RC2G%-AcciSLq{eaxM%MYNTdk_<8O=oh*p5lOUaCmFOuv(9E_dXC$xq-U4B| zqwj(?+9s<7fld$N!Zr~K9%6k6@=fh~F=AT-O54y|>uja%Yj)n&a74GFBX41AoDq14 zO=MWge{iA=M4^r8&XRiv==!dJK*rCm<{nPG3+JWNwfs(80-LbXxM!VGnzc6xPORTQ zE31Z9FW2bcQRfE>EVIe}Cae1rrULy^_YI2NpAN3z1bV1+c^Host5x8; zA_Z^USbO`njn_@6$`aDFv*?z*%6!Zw*FkF6#!;*W52QuxnqAS=CVB(|&H+^@Fme5s zIjN)UWXTdfTGz%={=~^k8tCfFR_Cb;S+ZC!H}u)s`doSb%|G(y9hZR+=#KNeEtKg@uJi1+Le*ZDck+TuFJxVBfSq`WfErLBm&EAYm;_w$u^TQ4K# zveB#Y2cCAd1_>-rD^ehOpopJU#fsVnhP-OkW3K3@j_;cNd}0Dq^C~X}Np^Z*5_j%m zZ-;kK+~K=ngN~ zO)n4$xD{^Kdp$C80@tukVEjjj_1}p+W^q5GU^>M#J&5(k0Fk9)DXSfmFv6ym>57i!-9N zpFi{ot{UPm0FqAlqrSQ!^Gq7@xa-}UV?pmfk1ADED|^Wsb6L zC%hZfy1FCcV}e8pdG%5*d#&ZZ(^pMuQ(G1DnzAk1BbP86wd9w^lOMEQ41U(B(R#b> za(fc-_o7ACW%jZTGX)LV;{ye6kQRufkCoE`-bR9{z&B~0!(w6vX9nRW*YYQs0K>+$ z{zCZx-ra$)|4f`5>sVb>qGL!zd0yJG1eD<;f|B%R5E`R)nkPVPci{crC8|K7T$ z*9WZBLNSS)ffct2i9-+F`R^r><)0fGT>?Yf;CCR{s#Ule@PI6tnFcLJ6VinX6a90} zy5hPBu!DNfFD+OS;jxjNKD1Wef5FWPy?M28gL~TY8AwbhI$WB6ja^pF5wM{37~epj zwS%rZiuJd%xVuhk^yacIQhSz$F6P7ME-2h_SZ^!j8 zr^EGJ9pVf~=)Iu-{3Lw~J~71Vcq_~G z=fy>v}y=laX3Kz&6tL8Y$>>hW?$cwFX<5M18-K*dI zMohVvJMw9g_Z;Qlmbo#KPLQmj~^5 z*GsQ3^l~umP-x%B0Y#e9oJ>W%T1BVIy&81>W>GITuE<-D5J!;y6QW3sFAoV@+K#h~ z8Txkh9<=Q-IwAP+`$DJOgyTK3hnCt8ui}Nz{_7No2MD>-M8APFKU>gJ0NobaCk9aw zX*V;8f1f7dk{Q=CK|{3(+8;aEon@MCFyWEAC-G$R z#?-rQ_)wVjv~To^@L8C0xuNQ@<+5e^%r#3&686k-i$!iHAWX``6mgSxNbH2JBR?BX zC6Z3l>t%i7em{`a_Jw2=8lt@3HvV|Kn;7%HBiNq5T{F&o! z%+KkPI~H?ueATRY} zn3hn$&XItn59KJ7zmrpSLjdC==`-At!tNQ}vjy~cu*-Ke3es;8lMki=E24lYlFejV z35xlSxYZS&G<`Pj6Y_ueKBF|n`&wUnpF5=g#*H81gfPIQrfl3g2U7Q|rkpxja!cgi zy+tp0;6(xaFT0@4$$Tcb0Bcna)sr6r3?ayH*^Y-hZ;8$Y4tvg1bI$ z;>=#qcW}7~J$&BfD3op6cbZtlUmjVCCe^v$UAP;~<|y4c&w`%2S&Bl2r<8>HqRv!9h_qPME?lh~3MfsPw>W-3wFBCD^jbkc) z$gib#%XW#r=a#C zNT_ltlS7N$fUIE$Eevpx{9FouB`?HWuMrG1ryj~v@Lna%K_S1(U3M!2=Hh`G>_jFn zrtI>T<3sFyiIfwwF5>JuglS&DxwDfBh)U3mh}FPB==$$pGmQSNSokqrsnSR>{X1+m zq8q8G57jdc`mvc>W(uUbn3Y33&FFIu4*|`E5AhvaPDzEfR^g5`s<@8fh$}jAlDxoT z=`Wr3th8_&S2}$Ny%in$j&^IDNqMO_Pj*H2vmZTXq05D=D&bDqZDj;lk95bzNITL9 zrkOE^l>-|>z1pMWbR~OqWQ)?*ZfE^Yaw&+gYP^?B6H$9~?YlWIRfjp76 z1PU6C&T1?zMd2eS?-j+as24`p2mOF6w=p7(#MqrU6vWHu7z$168x-$Nfb5yIk=Vat z&4kUkyt7gI7Jo<_=!o@!_*R~V&PLu$tkM8^27-GdEETdAj2y|nqaWz@y}*xm1sJe1 zPZ2%L3P{ADj}WPmB+9MP>fy$6c~DK|L$qt3ekMyZ!7$7_Pd!HPH;4N6IV8Zr*Q5eA z2S2mQA;9Nesn>nRDP8h55Gp*<7kg2V!1lW~Gp{Hk^*(H`yvQ)oNILNC_V>6H|4-}O zGl4NC(YFTH+2Z&urkWa?vRwr$)$ym6;tTVQcV#q8{#D-Z>s)@lYObY9A`nt=Te8UX zMU>npJWIva8kN~7>zzN>>5qVax8ja9+WA!)n(PWVo0^-8ZRf?$f|~~_zr&+t zun%&0hf^n!+GE#4R7avpM(fJ(AR90Jf?u+mu-JTks;UhRStf-3uJXX7sr~?pYR9le zNY$AQ=r#R)=qIlLe5bej0CaVMT{D2oBPH-SOoi;=PWNqcZ{ml)cWsxh+x!m5JtyQ#Pgx$@)U zWpfa@IU(oE%C6?si!^YYu*rkg4OV0qJcs4aBaziBNQ|{^;nWr^0MppIj;PxtbjXaf zuz>~RwNfk5?|Y7xV#9xaRL_4~1vNpvMOE|Usz}p9tNn38$RS1W-A^hv&O5+TqF!Dl zQh_g5Q)&tT{of&+MaAs=_$9!U{#w4{e64=|8RFuC|EGi0&Ba$(g#iN6XPHV^h>e*V zCqW4HWu>%sUYGdwWu>IpsK8p7<%?*+%S341b8YgjndhOF?yjU27Z*KH5`+7u2hudT zc7?h^VpZk#Eple4ts6TZtPh zz^Ug%XWYw7id)fE>AzE4rx|PH!mpor$I#g}yXG>9YO6x{UQyrQA4S4Q_VR5Sfei6zr>*ovF3x2~$&rkciXxM+xVN5?jK*dJRU$4lU zV&Jsq+HNxqORdE2zgG;D7Qt&;<%x+|jxWNWoHrAvR$W)$;0<#v|DauM%|HZ;1OV__ zH*pFB=)gvM^YfEluo2|IHh>9+giH}mr$7^i)RZ41=rMEkTM2$sPq1Z}C2|E`S1GWK zC^_ST$|$gb@q%zK{;;)?;b#%6-Lk%M9jJ6-9If?Rw<^LyuOX99KUPa+$g;txQzshR zq6B<$=|*xY2Sk;bPad1xDiP(I7+g>1G#A#YOQwf=GZ33F^N^z2pf#dq#6AhJnENviQzZ=8fPaqmK{PRy5VbS)@#s6uBuWgE2_b3+a8MBH z3^M$yWVhJAX#eDEfwE1%vYUGsJ#tnb%*4Pb@4$tf#*nU;(nX>Ux6^wWVQ^JP+H4DM z_yszY>%Rx5yOo_AvZbO6w6n!F^~uG+7jzxy+>c$9<}cf{nlg$PT31%Zy6V-?i_I|1 zns%^dvm^z2Y+ci|fY?9!AM+TEJzPVYzy&2Nl5o3!l{gg|C+g=z=Bn8LBo;?u(B(uS z(eG|N3oB4Y_F4As^1^fZtrCU3^Ezm?l6&DAX|iUGMG0m%+D7XDu)N)9e9GWL@srsS z?%xSU>q9=UawwPXzUSm>O)Kuals~+o)*yS}2-f|24i~Tp4toa<0 z{qOh0(=}*H^d?jVDznd7H)pB#73kum22>?#W6C^AvxQ$c(La@#b%_fuG*`Fg%kweM zemTPKKY{obE?@srmeEtndvoRh@CI#P~3?c5`*Ad4vhmpCPjDFFXNMM`Z1TQnn<@2hWw zTJA;fAOjh))eJ%do+PvUjk;OUN-tMfG3m>!4%?;LzVxjuS%F#ywrYv1*bKgI0OD{! zaD`g*703Y-)jduqZp@jR%bFS`^5VDntm026$c9h9{X}kgr4=6bZZ@mK*%%WIII$Qs znAyJmKnUs>MZ(`gj5iXi3Q#MPj}N}?V1T(XCsIPl)QiT;hfMWEW5X3vNh5q#)FyeJ zHkJ&(fgFDk8Q?Lr0x)kRqngN2=}?!3p%5X0fMxJF+ANPpC}YA1yzB6rp7UREj^mAy zCh9iPp`;LU_3{P|Er&xij2w;>zwTiQWu$s|c{5dAmiuuDOr%h)I(wS%7WwQG>XZ}| zdMDgKf>9UP4N`6tS+?J)%a;O6xWLAoXkqy|c)S#T(CQOP9J%ppgsMJ9iW3nrptOln z0Qflmly$^FxP5zwYb^B+*k6kq^H}$w#?+s-4kC0*_ z3%gVk9*`EO&l8aFc?i#dq&lLzSA%?u25|ls{9?$5_m1KxaKQRw*rO2oZv$!fsw__B zIIv`Dc}3&Qd?vv2tS|v|((Uh)+A7~!VWn58AfMg?l9l=D0ZvP}xw~eru~9W* zX4!N_!I4bcaeXs};#lMa=K4%Jfj^^c$E#U6bge`DLgxnXQ`mi#a)Prkv(^K<%YcO4 zK_5xdNYXp+HZTr*JsY*Y2@&1QRagBVAWZa^y( zvr=uYEpJ+ zd@4FFy(x`5A7bdZB-nL$_4?FoF^`+#-Du8Xn`WcDE^kh}oUo>*hvM<405{+>!D_Ih z^8~9tinHdIDZe~O@o~xMImfx&GXY3eo0Z_Zd+MLKhoz^9zm%Oi|{_ z9fHYilid6--F9Mf&F+_mEh%YZfk!rR<4QQ@+07t@ z<&Q!|Xm)B_P0SM zM;rZ#@Vrp;am9IBt;lBUNV&zz=7t`62F!6t95}E(Gbpu9tB#TOt&ljNxX+EBEo?Nw z;`VF|!E*6`ioWy`0n_LhsB@s|;0zXjDZ)+LEAZ+$QYDj!Dx!0Tpt4Exx7j3n%9G4W zgPjaiY_As>(Cn^K`AzF1>PIO`Dp14?HLv|`0%l;U z0)sA^B8AWIog*ySq6~v1&rm#Lg@0Cc(*N@`2ElUb$tu9n1sL;+`_AV5A7C~RAg6Be zL|>zWYByb3qES2Aq2unksq`o!wVnBdQb9784Uu*J<&4 z@mMt_5R)WSz}kCK@_qLxT_)mz^Kn38lsIo21KxWGhD56{7(_pQ-_kF$d?syT+^FPi zPF$FC4V!pd1FyIr7-!}Q2negqHvHUHXgOn-(`9RXP+H5O@m+~8<9)K0`$j|$3mKs{ zqqXmOjH624rR9Tq1ahyYvKqB=IX|p@Hok>Fgk{lb?1)hL5>l$v&xZt z%FUr=Sw5YMk&HCT-L<%~4X{gjE#QpYSkR2Lnw*M(09VSe3d8DgajH5>P#^WWQA%~} z08ZP7KKiRs7mSe@^tcLIzgao`XXlQtE53!Cz~B(U@JqVgI~$Q0Y7EMn#DHT4uqVFY zR@N$yL3mVIL`BP-7?wmtTOC}{ok4p0@ozSLHy0G1lr0Zu^~d-uw1y4!jzkfv!>{-r z2{T|FSW6NmmnsBz{1&?i7~x7oX1z@7&fs?kcSRTD!JZ}1rgrtsxEd%b#j3e6`soYC0?Vh^^u-Xn7d`j>=dYlKU%crwg5yb2T> z_Xe36ul48isA&1l7x9)fm%6nP=?G7}Ds+o15qYs-me7ZphKCwbnsmWk(Bt2faO8f>1kNISl%d80AWuis(A=vgDU3A`xGOSP!bjeykV>8Pc zB+7l6G!@s=cB{tA8V?_=~U@ep4EUE>S$W5l1pKq8r#AD85y8O?D zviu!FD6t1M#u{kx{1n@^GjR|PLqdM+n5yFz!>G*?qOH37j%;CiTHKf%$f=iWV9W0i z5Cy(W;%wD^!s%O(sDbW;rlUEBYN1N7V*5son01Du{L-r#9`XoCzrjT*7Q<1AeGYw~ zGv02uH)Ok3<79tRb7WyoT$M!kJ#isZxR4{uLO`r`zTrr%IEx2S6kJ-QXbvnxF1(V} zmY9A?N@4-%Ljr3V84h|Qvr`Q)a%(ci0AYgNX-({TLk`TtzlBC1Dw2IQ(|LL(PZR;G zCKtUm81ZGef2IJjcIO{8)X`d4&;|!?NNEe92vnyq(sS6$LIdu4;)Bts(8eT~0XW1K z9o@wiQQ%VKO(#dib$841zy4`xA2^e#o7sTxH@sW;%!zFgh;yw=NNswPZ0;vQW>yB= zgI&?l?X!RS2wM1$n2zt06ERSs0UP_iPZr7u7^`cO^KgtnXb?3ZFlsbHG6vVcq0>n;`6*weX*|2GAi<(2c4iXT5oaf+0y_< z+10O(i=AQ`^+4OQ3oQEtdpnRI^qT&ql5U|BKYa#|zrvk0Q${yOI8>+(0g{HBj@Dx& z@=e&G7tmFs<2r=tCL2Z(SjN((s zriGXWsG4lf!^OT|Wym(ku<`i|Nz~_y&3ex|${hjtoMfBM;JG6}T2`SPLFm+$7bUrT z#cROS?ZNMxWK8NfSdnju-DEivjJhZywGWi=R;8dcid*)For}Dpes{FrBR=(T4JXz- zPU!bP;nlCC8VX6GXg!>L54fzxoE~Rw=Z@0o6Bi@rq4R#vgoW$c7C#V+oz;+4G=&xY zZ43vVzqk!^XInRd$?wMFA43#*BS+g#yf2*guWckk*2L!)|77qaz+7^~qFP?g9NPo8 z>Hm+ba|+I^3%7NWj&0lN*tTukw)w@j&5mu`cG9uYv5lSmU+k)LYF)3JS*zxnbG&0b zg935+arO5)dfdU}y?bdbfb0F=<{J}cZw$u!YbmMrah}v|fGn%fYklnvucS#Xe6$ri z$Xi<_N7ozjQmIzmCMdi)7(DouuIaOypaK9W;F>_%qfdQI@Q^Mef5>auKUD5Wf@eSl zyoRc5he=o3NO8wlkp$+rt5|LihMW^@ve@MbT=!6+6LcSyR68>gdC%zfq4_$)Sl z+x{wkftM98Vlq7tyP7BrX0;z#pS#?L_kN_Xe1%ysFz)<>KI!OUhA{kXsE#9G?GFaXSL|3n0O?!evR|sZrqzRf$ z`n!i~5jqlV;xIJx(po=u(kkP+;ub)GDgfG9J7u}R7iJHC4H#Fkv^CH4z^6}h0{@e; z^vhaar|g$$>B8v6PK>G>f`j(3S`GHR4u4;~^^HSF_%a^Dk!=1t-A0_(W2f4>*EG|q zU69{0`z_n^48$(TbH*39#eUd@{nyF9)k_bYH^f_YK8v>}vOpJJbBIDn)(RjgHR{02 z;~MgL(Ar^ps1_MiFZC>O~*Bi^^0^q3O$W~qgj zGaRm|9Xn~@eE3T^WBqp3=jCe=YuXx*yRxiC-f)@={)X+Fd9E0GUIM@!;kQPBdU2~7 zG1WB)D2@rXPojU$ZN}tyPkRMl=%=gLF)#USkZhO@h9^A|j zLt;3g1EQ0X;TsQ>CL{ylxFN!L*ik*R#y<%DUse1TxM;ZT7#sACk>bsfR zrNs*4K&Qov5rDRyd*d7c|0k3W7-Bx{{sev%BmOt6i9i^4^!!lcPtI(F~yWG~(zA#_|eWOTq z!=`ZG3uzpo6rj&1yW4)gVKi?q(rcFr8zif8)Ewv?M7t2?*Gqej^XTV>+V84$jnd(% zM(5SzJs;K5Rs+i4O~d{AMxi<8&%a}TwB^o< zDieDwj=blTb$l(_ZL{vu*}E3ralIhrgIGQANXCZ?0=Pnbh&grkO47f+$F7qr%*r|C zdPSDVt(}nCO^e{_^wWn@J;LHe)qN22E5Qhp(#D*}37Hoe@A0It@{Z4C!}%B)^4@Nd zoov;Q(rP*iB=DnuYL)H89g*6;WLqs%B>^Yds9Z4jg}ERc1;;tsxL!4-@30LJ=FIDJ zUQJ680^D1wx@?`7d{?Y3Pxh68B%Zs>FZn92j0kiGm)e1PY15>ExAyFfifr*v14qIC zElZj%_FQJs28(@W7_(iStc6ij?a=iBGAmndEwN&$t)8{$ z-I6Hjg17{Z2ryIpykDYhfDb|O0byPkEO=WeFthh{8m<9MR2Xf34HlkG`V$nqJ3W2J zsLk_z|HSf98lVQ#T#lNy!8g@J1?UezZoA#iH=gL{_&wk8@P8k_R-ORi+h=xoswdw9 z=I4V>eP|0+l~t!{W9zbigFU=-oDMNromp%>Z(JSD7iBf*U)Kb@Wr;`LhGv~twEHzt z<-fXlL~x+-cAeq(^JgK0qTbN3cwtu$**00G9#!a|vgpiL`-`y;E8*hh^zeBn^!nUB zvY$|p!qBtekRN?{^*I29S{+L~ewra4=Q@017g^ zM9b^(TYEmWj4MZ}T0^V3XznyB070xz&O3f?wbRcE2 z0sU-3LS4ooMTJ8kSL$KlfZuNEG&B&P=wA2;qw$e%(2F#@Ah1;22*SOgTWdQOB>X3` z2Y9^o5`k5~>&XB?SmA}UFXSgYMs$DiaCyyN9X(&9OSA0@tw?g-88mdeW+QY1T9K2; zkNk0EM5*wd%#yh4jv;0C`J5uFW=ud*IPybVDF1<~%NxA<@R7BO<&O@nYRLO(QXQ*5 zMucdF=kTS-aC4*sJm;UDh8OMc8oxb!{obx^9tsj(jCK4Ia@93leURY*Y--52X{Pf% z$^;5@UoH=Co$C600PobFa)u-KTD_BrSRd!Ni?yg#ec_xu0z5oghfq;-Z^97>26A>I z@a>zA;JMg?7ik6(l2Bl0hTna8Vq<0EbErVEkazlc*H}BW!xJ|vbE>2Oo0SNw6cLx7 zLcaB;i(K(heTEcF;D{l>YT;<=IJh~Dos@$^6U2B55?h6ecCtUmiy}RnfjddE#sa0t ze2~QkI(ybWX+@UBd>4fKivdB6Al_!vX`-Wh84Ai@5YNH_84=+x=bNO#Ke}edZPD+B ze`lf<0|8O^UP=*JAj$ZMlZ4s4(SNsi=+7Hwomu4|9S0o2-Siy*`E)cVpLdB8w;knh zQUNq>WXVAq_`MHV$~E3510RI{qNb@pbsTa`7T^1pD^{?^{39$ zZiZCCYC-vG+=vLM0`sW8o%{KY3|F}|DGa?1<5zYi-8vg1q?9ncx|nj!Gmw4QX=(>- zXX5DbZuzWP8eRl(d6OyoVNY;| zxFZR8N~q-mhtb|0!Jx&G|cnH5W%|i<=QMF`t(NWSa&JK?>l_BA3Fp{%r5**+*Wc zuVX56cH|QyZgVf#DZAwx+ued#f&iCk%KfUHwW zU&AVe&1+|WB^Y><)MpAoZgedZh-e0EvgEoIxt{}g7Inw{*2~7_Z~wpwgsRmSht^Q3#KGZ zlv8>HTDzWGNI03(jKH0g=8Cpxz0%wyHd0sIlL6&av4&5A{!8a&+P`)mKUgTsyh((gM}4+wQavxrI>$yftaK{ zbV+P<3iT?f!dQ+~OPtm^5oluT=os+R)h)+TRZ;!Z&Q`b{hW@_Kbv?l!5{kJ)>>6cl z&H-RX9nJTMjleya3L``cB#c5J<4s%38u*Pe7`3fHZ+T&Ypb73^GCF`75DFky1X=a< zYotyiX3?HmnXU$n#I$hoD{KD9X!SsF9e3A&_0qc(d{%%6SC_0=cjX^(R8{SeB062p z4KCz|rTZls%1k(DrNV%yTm;f63O0c_NU9b+UKRr9dmu`wXTXK?+rvb&+f5^aS<|Oi zRCi%1{{dP0c;l1#x41%fl^@_@1&SImGUG(}^@y%+VzN9wp@JF}ZD>GPbB%x`+Qd^Q z6(va{a1WGK)TmO4Rq2lq6^FS;LmnC3uvjP>Vk;94vbcMW2!}dQq?rKn5}z?c5IQH( zZLX+%qCXpE$vapj*k`yAOGMSE^iVp>NIEE6g>vCvdSfZ=NiQUt6G1-=epwc$|4V2E25(M-gEa^O z6&hG{+!1gYgg;mlG@u83NGEW#DngHsAGzsf2qSCLnz8*_&zCwfjRf8jXiE%wV6i}_ z=;D8=5?CWcps(X1H`N2>70M>VNJEi=%_+xK7J*1CU}HXpk#myvi^LAiJ4Wmp(W%kx z<@!4Li&E#+;+4ooNbzN41zHV<6q*y747%EIZe`kM1P(Faar##2VUDpr+QsOJL{aNVrW*uZDvsobrM&3#at@i{Oo5h56h*k`>jm|+@D)8oP@0{RQ43SK6yh> zME5UPC?JE~5V`kiDD4z0>dGH;`bD1UHwg1R5s(-N1&&=3l3^NL>v%Hcc=m~jh?vQs zEpql;Mu+4;66>P-_#w}O&9jNmm&po1895UzAHmetdAEye)tl1s?_`duNDaj z{K4mGSIxy^h>%}sijz!M+NgzrEihMkgb{3*$%W^%E{mts54n7(>ByW2+j$9OQQnp<3y^LAN$Cc?nA@H;U}QYto=U-b*tURjW9tONgx^)5mo<$( z?2^IUM}6@SzknzhU`!~~jN+|Dr7V7A1#|Zf5@aV|ZKkhflhy)CNBB?U6fScs(nQRbI#@DmDmc~_!+8Z&f+SEtTS%?DVzS`o z9cTt>eA2tdB0QzUdU{hMe-m{u0{xw}UD(+!U-g)C`miOBeC08^NR57;D1m$2iOlMY zb`|MP2B^uH4$G47WMtdV8e=bp)$=M8t+DeRuf3Hl=Lvq?5=OQd2nnj<%b8*vV z%Mp~C_n?>HF(Ci_G z=V^6;j;?|CM`!_54RsRk8rr&AP3$nzj$TcfREcX#qf*^2*26==oKZ&NHX@W*nwQ{6 zKJ!jJ25HUh56q+gQvT?}`73{sbFqya)#B*ED5{$LG&gIf-EZw+`2Ccl1MR~1ACmfbo#K4s%qAP5)Q8-@ zsF!M`vn8=1I0R1AdhA)c^1$biHB;p(4qTvgq1GnA33hy@2}~a-9c$N;V!bqv z8!Xivc@eF))$L+r`0;Nc>+u}-d~#DtlR*J^3m99YLUeBhLYKG%MOhkP5?rREuVdy-|R8sV6O3Qfw;?ZRd~u4;I3`9bRESEZT$$+7ju z*1G~A%YDcPYJQ9G@E=Sjzm!grfiqwjxCWZfjO4%2Hs`m#$xF z+SiBO-WpjAgAKaNN|Aytw^3R{7j3#XH1KveAv>-S+Z>qZ=Z2$JMmkhGQ3iiqWf(`C z7)seUeIhqBp_APRqVD4MSF))h6NDA;cJM$DzD2ph3@c9v1_6$!{}!N?a8vV@3V0P@cG6F62|@sKitFC68>t*W@gD_%#rR z$SwJRa2n^e*ygww<@Plcd@TaH-MEDIu^kqV3~L%iq*tdIxFm|SB1$Eq8+%t$Sk_3; z5iX8-;s`|$a3%#39!bhBo|re4Z4J(^!khV75z^xcylWE&s;1YyI`C8#7TxbSlI+R$L_rD;b%No_*A=sk0PE>N zkLesfCT-Hilam?nj6u3hn>`k$=ZK<)ecBEO7BRViIVnPRO5SzAMcprdO^eAXo0}P> z7)M1}F0=59QdyHhHs|o_-e|-vjoQUqP06jvy2)x9Nmg*L>1`>pVOZ1@f1RawNaNO{ z!ZQ5otdAe>nJ2BRI*0+l-SULP!XuY|Xd9+St)82w@`-ConJIq2_VfaWZ>0X>WJb*bN0q-i z=p~*Fb7#ZQ7TC!N(0kSu2i%KEJcn#sm!*w$zC^kvVb^p_kBs)=nU}{LOA^IEXrvqfi(Bldh!N@-J}f=}&eaMQ z^#pyZkj7aj19lM$BR_r>rW zMM*EtN#4U_P|-w0@H|!K5zwlO-ksh~wHhYWzvs^e@x!ZfyBHFKFSA2@W$~dV1q3k*ey;)=|sZJOD=PTRVv6aQKIW&FpO>i#$_Oh zkvHoFCcP)N$P0<7d+ z-3?V-3s1fO)f)O_1HFBd$D;lF_)-v)^HAmgETCEjdL;mq$lxE*^iGB@AY>~3oTjBkzf@s-o7t&3Ljxj>IxgtU85r5w03o+#ptsPa~6cJm51w$VdBAfs<*3GDI2M zj>Z71(9S%Z?)4BZ|1daBz*oM%p1(!JjQ(0|auGUK_YLBK;ES28H`HGGmo5p5wI)Yp zuF4krssa~VfaPG(-NH+HSU|_MQ)t>)&!$l{@hZ^p3-P{XRVTaIv752NfK zaGM|k<1pfcg=ezED?w6NiGGUOV~jcw*xdx|N@Un#tQ1^9>Xey%{?Zw=0H=l$+AAhk z)uM4ksi|>L8aPsPIF5$!yJ0HNC80R+ zPo`=MlpVg=F*i*3MC2#W<>@GT6%$7xM^{6=THuFbZTxFOS`DU-jpV_D7Schjo_7m~ zM$dp(W4~__&CQJQc+8t^4=O@SqZThejV!%4`U|_P!u}|1M9XkPKfOt&I9n6V&4lin zEAbCIr;en07%BGKH;Xg)X-}&J>8K-U({GHH0Y|u0Jf~d5U#_sk}Q2nTf0}go5 zK`m~xSy=PDX~>yyG}JA>Qi@|f2$|u>P<`NwXxJ%dYjNnybLInLUHZEg_Y~Bud%2r^ zL9gWb%iw_dtS_P)U{KYdaBWf-)%C{~%q`FIhgd72J*=*bP?!di6dZZPWaVbDsapg~ zV__{bFaD!-7QxF{rH}+^tz8Ws43*!yzM2017p7(+!ntOOVe6)_8tEql$D9GMf@(za zHKaLohg5Y@{Lp9g`g2S0#oV&-KBeB&w3uf`aVshIqhX1Osf_-O39y6Qa6T8Y9SaJYHLa|CA^q^@#c4>?dZKyY(WRMQWL zI&1msj`|)m*B)}$RU1Z(6v49)0Bw-2VIVEq8P@X{<-$kiFqI>Il6(g+D=@uEnL8T5 z3Dv2%p_BJO7q!Lx>(z4ae-!a$vhouXJk&;|$(< zvgU|rKMe4>JUl&>pkD=SiGsJ?e~EmH)oxmq_I1N*dY77)uU;%ENL>{fo(y(O50a8< z|Mj+0)z-a{v5}{kp;0*+icb)1>1d0o$984VZ%wsowZZ)ceJMV_W$19GUe`UZr6)y@=gP~Z;oIm-A9p5T3s=tdIM zjI5e^-q>)ePc4@b6QraO5S>~ckfu%0Tah+P37 zht7ooiK&tx(05^!bK@M;Xg<=dL&OjA88WuYCjl&AJgdl)abg)Z{WTp4Hoav6`S?nP zM>rD7VC6TvzBpq=pqS53(68wj<7#b{;1oBJkdE!r+DOd(V9x#wQ-*sJANWe#_h%fp zJzg2SJFT1xdvsY&LkwZ(T?J33hDnyx_6OzmV#keIJ%AJ1DVkw!8z;xQx}*ee0M|3h zfdjaeE)(`QzcdM5!zus51K3;T2J0xnAl+SD*jxj?3@8{(Q+w_mJC4|<`z7=O17h0? z%a!gIlH;)=#22vl?K8Z1ji<|#wL_OnL)lWW%0ISs?uSV%Zt$qQn>=D;4ALhYHxA^f z2EykeQjW*ZY|>25D8jk~1lXMFNDmlqHUUEg39y!3Slq!0o#=cK32`-~;eD?u+nh0= z9(jY<<$ZW^Hpze7Vr@ykoMvi15(F+=`P(;&E;Krru`PFPT)G|{zHN2<${iKYFI~7U zWOA^Jm&w>m2~NcS|Fp9iSzD0Fk4peF3kV47|11TqyE!-k1pm>$O}cToLH~n%4@y;4 z<4^zrE!Y1a>5d{?^0i!-0ZGi&MIs? zzNV`|DDW#^4M((G#ZUO>(eRUeV~op%5V(4Cj4)1?k_KY_&sM-exdC8o;zl~T)%Rmz`{ zR~>iyuzy^YpTU6aY+vd3YEbMqN|K*rkBYms10}n8Eb!t3B6t)LO2ryE1O`8aHyd zIH~A;139J}c1${3+SbuaHMdO8k7*H6Fu#z8!ylV z+N&~gc(Ew*_`mnp@_Kl*KX2u0XZ3t;a)%2*nd<74on$5 zK_Qzxidiu+1e!di-ykozk%3$1=DvxW@aW4+LXsWGx$DqpF(b*a3+zi zm-Y(h@@{Bp$JtWlLqv5j;<3s$D|3t)r1W%KNme>-T}puG9@Nd;H(K&avVNb=fsg)X zXqme)U`5ZBuaJe<+2(-7yM0FwXw;Uj@zHf2{T$zuN5-;#ZI_^y2>8hwTLB0Q3*7C6 z#XA+Sd^WOuzfZ-s1FRiX++^K>3}r(X=K5h`sngLufq%xRNb6Wi(NEk#TU%pjZ=JPu zd-??{wc(nF#{1brQIltCA7xeB0JFS9sk#H#j$F@~Uq?+}u~D@FLZNnD#+v&}zcOnf?SLZ=XDF-CHA-T%>9sN8W#=3<4r@7`rR%DbrT*-|`><#sNm`_yMl zVT~xQ64guhtQrD{;Gyut85`4~j@kZqU=|I#yDrE?aY_l@ryqYhp{wpz1h)himCOmS zW8e#&jD7MO;7=7a#FlCT4Pf|Vn#}mp##ht>FvCPh9YyXg2m{*L=~IRI^E?a&RnACH z;#fNA2HDt_Z|C<;>vptZkFuZx9YALJMe>2?f#R@NizYh zXVA&bQCudC7{i|FRJM;Ob^+e5<*Eu;bgx9CnRadsR}T*#pW-D090HEalrRn=-GuSg@bry_uhJQ!$%V74d3 zjV2UHPiw3za!aGd+8{^BJetBXA%dra?8uqO{@CZwVUFYo4Jl9zx$DlHS0e&|5;yRZ zZsOjnHV)PW#)NpmDMUW}cUwro$%^;bu{{{2`4!|=yM zC@byM(o1cE{oK_Ne+!L~AqA;GST0DICoU_ky8-qIu+{?zVFd6*zwT9$R^sfxRL|M=HcX@-16>^3)|gT;Jnv~nBZ49`g5&yqoa zcOd3+Zec?R7(JJDhnfH>RVOmreW6}uHuUVnNB~*sqJr2zhv!xCAlJsu>Cy-g=fBPV zLYR6Q{-MK11N}WVZy4Gfgazb+wukXc&wJsSQP)cy@>5u_<#umFbru2u$qZ@>cZa)% z;lQlbR!YUl2#4BNJ$M0Xw~kI&5_}LD886U>T=>V>1sNn&GDEl`VR%M3C5(^4GA=T4 z&tk77@O42q)%KPRcpB+XlZ-#2puj*Dp0$yDaqw`0o?U7#7kiBb&qB=l$f4aB9_>gu z&LoqXI^gCGj`+N-)yHuF^R=W?px^Y#%lpCs{beNyDx&H1YV_fa9RDx}0wer{heI|O zZl&l1hvvqC+UIGeA@3!j6Bb2GO9R)rj#lR>Pv6YKzNt60$`-n+*l$WFBf2*@Gv2mB zavh6BpAK2D>8uR72jexEv+|&^7--FVg-67;2&0!TmWrDaUu5CX(CvfC5X$e_VlfWk0WG&_4S z5Vhub?$ISG4kiy@PVflX0Y!EgGYukBY7F2->mWM3EeM)t0{yAvLefNb&{->1RV!#f zea_8C;|&m{M8BAP{w2i}KM> zXy_nBV*;=s<4&HASo&CVK8|--%jAe%M5R>dO4I26rD~iQs?*m*r05N_+;yBGkIo+= z-H!=VVKvH0@(keNjgJFby(UL!9XAu$YF}txopWrH%vb)<2tzCEibi5;nX&!w>dDVEmo@b!P0??v&d)U**nBMb;{xU6#^p=?EGoZ{ zq)ko!tc~}AwgoxIfu!EtH#5MLwyV<;yFyWevhm8hJR^yyn_-UU?(+$>rTmQ&YNkrok|^EFxorHR(02|Qm4Tt(l#+An9Kf7t z0fVxb;-|RM0lcBSf9+!LPM#9jkux>`uVwbkliq5rv!I`!``#J)DdN zGjM4LP&8d5&%XJi?L@w(Khmp+yCY1cw|D}I)||weg$(#f~9!oSvF9;r88IA$xuVj9gA)G{4l}GQGu>e zMnX6JkWE6FQ2U{TN^5l}txfk7h9 zMRA4}<7^w){C^x;p&zz4AZZ;lI6pDUwEYvMP21#ur8XA0;Z|h zT=93au%j`k=)RWvdo|@7;Cb{5EbuT^PRd>9WB=nHy-)Q4ObUKKF@fGD#OjmUnT+4= zcDB-7{GP$DI7DbPN`N)tk?o#1>4HB%F^aJrTQ(hnv5J#hZdeL}di;kylzSWEOd_Tm zOPD{By%x6!WsZQagYj6RWXq0=YG5hSEt;mLOf)$^68vUJ(;HSqmaQ@Ftqc41+6m%o z==+Gsp{$X5kf4lTDv>oBnYh?XmxSsOz0pSW`Yo~Cqm0(YIVV8Eqjk3h|`UzS-G*q48 zHJTBscd%A=!9rrhjA$L&XzLiYaruUgA`aUIIZueb_KqNiVWz>t4ZV+2d*RdjYdin$ zIW1|Y_vZ(~50H^_m7%Qx@?cnO?c==^nA2^XEF}Pk@E}AcdHL78uBOv(6HPR2)opgwM;v|>(!nFIc~qGP#EoN(Gbods#e0^2k~cy4S| z6*JBL&A!E@h4j#f6Mq?9tr-QVpT*Ym%YUNoIXDEjagNojKNt)nZq*d?Lk|!6=lL${ z_H=fyUV5>nU+C5H`#rZpli(|(C4-%nL3r?Et`CK?ZM+I50JJC%CSg)+X2Z#CV%{V_ zhU7`J2@vs@z5S*FzNo%%7X?v9tsF90LNpJSS5h(v^1NUbZ)0St4W5=fsj2wy{5va6 zcqF=LWzAA&0g6JUT8qj0^Prudj|${sxrf`q7(7nLXLY(~Sbx*_TtqMXr;`|q(zxDb zCCFijyT`;o28;wf3U%AY9aGnO)h2lj1z(tZMSvnUsuWbe+j0UKmE-;<>wc&>F3U(A ziz|mKg`l;5XS*3fyq|CN(MWSB()`3UtIdaIyERn*FXWhj5sw`gVlP9QiFpK6_sqV3o)JQX&2<(1V zIe>0I+19{zB(N$bEzv)r^Vy*4aCF*MF~nnCOhI;B@7=$VhGHJ45ym)>bw}1y#2gHP zn$SQRa#R+Ai!o0$h8aUAzJ=<@HsgjWq~qx{wDMsbY77{!Qur(3lF)O?^&4%LU~bPt z-ZEyU`6Tc}f+EPad;Ju7GlB{r0jCa4HFtaBqeR!Xh=e_$ZSz!~;BYRxPW2fm@pLI023)SrKpomG*QcDL!A zv0+|D96*=D1bRJhZ?ERFdi<@sLP&ZwI-{KTqhAB8#&T7BgStFY;Th6iP%S1H?rN=n z4!3%xbbSLIH5K3cc0xh9j)D53uB1P6c*2r{EG$6{74)8mTxs zY29w-o4EGS$hqRDHZ6*HU}X!=2ojN*RCb;s2wHkxqPcexzS9extYfO{j3cN%$)1w* zH%>+RjMH>X{EE9>%A%b;PeP_-K&R56!Zx0a_ZY>~fdfdP0v<^qg)yyJH-P9!sVT%W z8RI@?W6B_?JrUvt4_I%={PyirTl$dSPP!>tP(gB{Sutvp86GBa@uMfoy&-TaF26;Z z=pOzVU`64bPDL^#cNQ{ylCy@3Q%TYn2jlw-a(L*4BB^9mKm6#*pGhmw4pK7DGACo% zZMutBPF${~H@~5D<%I#fOn@d2P5s^eYa3S#2y)qL4Ka6VKIlZJNDC_rvg3>sGTc`h znZN%CJvl+<{PG~C(iS7$O5L^wT0B~b#U2kl&qaIOgS(qn17tmQOLydxV9fuKP zu*sjxi~;1lNMR`13Pu}UpS$E=bgi5)bq`BXW`?LpL4$ zH1m*(&EpHi)RnB9`x$jKZxY_5zHg<2F&vW5D)aIfE@=AhJ10b#ktCTCLY(Tr%^)dZ z;I7(em>O4EM?ZRbyn?Ra&!ncwtm4ps$mOPat>WN_`Vjo(FYZyIfS)DlE?xv~IPTq6 zSEY+vuGqF`Ole!!uorMqo4UN$iC&!j?mJnfEvE98&)i=WK%in)QwYeA)%n4&5T&iJ z;?M!+`3lz=XdAosHc}oLN;hsK#!TI&XV49Vrz9El&y9Smo2s*mg7ug`r%&#SA%A%h z$g!vn{ZSR;9hQ#|9&Sf9Hq5?M+v()POq%xE0TE{aO==k4Jqp=A{Y}mW_NhR1>Jjp7JXw|>Ahg0C$M-02xY zgGvuxG8rs%KKZ~uSqO?ZP!$CJ=?cC-QLFGcZ|DPB_kR&A0hmwOHU99NO2VfA{mSh3 zL~e6FP953gGl-xJ5+h^ zxTS4FQD~fe2IE)BQ!v-4DkI~jtnOaa~X^~he&7(F-2c}E6e;Tr3i+9^sEiR`v07BW12js#r^Q>aTUt+ zg;G6Mi$=5$X7U|t7Q^SH(;C)rEZN-W=m>k-7?9`(%at7~?3F6aM$KtF9 z;2V2swm~bVoEe}PTz%g`MPO-0jP^#tTIo>W#$kW z2@U+eKd--8+XwG@t-0rS6CmgK2Qw4J;tkeHFWiV32Hd6^2wisSwq9?(4lax*vH3|k zzJRw)GGbvR@muJvJL$CcvfwfuBHz@g2Rz1&|IBJv-@?Uo>ImrG2A(D7PRE;urhh zrvSbr4PGVRA<@Ye{_tO|Od77c1b=y^eJ8H7Ae4KFNf*9^>SGe7C?)w` z4pF=jV|~Vce{@Yy!`>zq>HVVPi~#QNRJedN1e~#2H_sSH%y?z((g>Qne|Kby7gB2{ zWZAMvqUkwOYN?R!;duj#qwkYXbA=Z>F<~HaeoqW9tPW zFKvlU96p*y$D6)ktEk?Ul6$g?r(=|vEiMO?SqmOG82dt*`ZU5Y@9{;YSz~-*B@G}uie1^9sB+LPDO%$C6(BmGCap@|5 z&E8^|xviC_79O1Ex(b-vaha_RZ{w9x#iI9SEF+oC_=tZK^bmR6W7O=Eqz)!b5(<7j z|G7&}F^rB!K)OL7-{eLjv-w-=jbd>xwru#bxbh*r;SxZ$!{kWwow#X9=@rFU5LZtR zU}=FnIFu0Rc%wScfXKA^9UNr?g*Vg^Bnj<@w>z*5t7)^76Hw=o7pMv26v+*IWkkQlIK#4#q=7j(PVqYpdmJEZT zptpsJb{RIKQ)76)`%fIeSrtr7I-O-K7svP?*q@AZK3{B(0obA2k|U4HKj|OfwcgjB zB$Chp_HfW~ zdSXr{P`e;tFprt*jQ0QWYq*%6BR5RMN;h z(4)Dfd}oBx4TQ%Z z6ohD4v2-0gyXSj&z%E);UnT5c_)W~;I5-j@_9BYXXgJ+jhscZ95&?&YPrT z+qP}n>DabyPtW}@Yuz>VBTm(+r}o~zL`^)3&!WyfA3QjuS$L5z3X&qIX1d37gMAhL zafnmk_q<@pxO@XqO3>#T-_eC z@qN3nQZ++Y9u_2`mXG}1zYBx=JBtwo$ir&&rGE?6-5|8>{^%Ou;JqpC{vssC1u{_XBlt$)HSm|D>3`v{m>{%jvW7w2C(0sO4_{M5AN zEvgmn?DBkKTfTswd6!+j23_TTE=X9~n4$YxZjbOq{l>T_+T?K~(bY)<9;7&{KlAvs z;mgVjMZp}egT%K*rlfgi9@An$>ZU;BDGy^q{Vtsev&1%G5W%+{QimG7jW253eaU#f zKKjL=E)UqrO9n$P1+w6RjeVxbGL?LaG@Qrq`c(vuwLprKw=A!f97&hO+lxRX{ku;_ z0w6ho*Plc@*K`pe*H{E;-vo)$_G(xgngX@^1$n_khQM|@crs@x6Jtxn3=BE2W@?#* zy6MJUNA9Z>VUN(zq1YBNA8K8TE00YX#dv@%paS@1?pLIh&yioKiS_ksS^JS2W9ucg zof@~+4fkYX3(=+ww2LUeJ3BJT2RdTO4x(upVQNnN$!e>XsSpkhj;l8k2_~_Yf8%AE zv?eYbrm6KH#HSUmm|J?n!WKIZf=uZm$YPFyEIR8WT)9K zbu*Yyori|&3cRz40ZiD-^|YvSdta&PF74)?vg#-vP%Mo~jJ9wojlsMjN>!MY;}`x+ zb_aFO$Hddh(dh6baq*33yD}3CJa=TYxX4g^N(q0Fd*dDHj>5LCHf&c82{%FL4IcPn zAWE=p-PnZ~xEUc*;hF&N@3*WeasyZyzyr&&ln8MOHd|m8iN+5CR#J##^M;86Wi&l7 zQC>yvj`2Q@x8)iaOyNLR8ebz85412ABaS8Wd}O_r?(yRb{5cZE>&{RhXm*E{-;u=j zO{ut%G_{}GhICD2yLeZ6NR^UZOgiSS!WxyIXh4y6kAcIxn;(jHsNpF0Uy)VhY_%_{!T8|kSh_anhsAX-0F(7nSYssb?5w88D3uXw%X zjT6>MaeyJGz4WL!u}m+%YKCf0@;4Ns3598&XjU6-TDCPhK}MrTH=Xn_(u#GPU)?rT zSEE6YRYAD9qgTG%5Q<7>pjCLLA8s3APf#-spf9HrVcnq!sAQ4^O@WWp+S!5WLOL)) z>YRRtyS4@!!?^%{QM%H#v92m5V>R@yG+d2;DTtaWV533J<<^mRo2krWhs7b?Unr#1 z+(jcXm-NRWw1(YZo*fuD3%E2DsTRjDq}tQ$ZUI35E$g`aogXv(Pt?($N__TjhpE<( zvp--*>i*DxTZ~Mi0eQCS6I-y;ri-%+jDAsU3rLASO{*4#A?xl8+55W6CN5``fu1*Z zt>c$OFyHRtz>DlqS{KegROe-r#jU~AskW*M6(6HS^82i&vVq|k*uCl8K>Id?hc9*5 z(99>R#PCy7zo*~OVCQ&NbX=hC1$G*P)>Gq6cq^l)mOH9C!N71ItwV*CK$+3c(S? zcw?`Rc5u(*{BEs<3kBk?5ny++{l12<)<_dAf z#i#B;W#H_1E45&^Smb0pFmeI`;sg0gJa(%!bs#6&UDS2%R567FS&GjBIrpWZNel_L z150+6NfLv{ZC(Kkni3$#a0!794tJ8@-#QL2x^R(948B<@&^vA@`yOO&A9eVy<%X}xJLGN=SPCT%Q}$4lHUY7!y1pWqHS_M{V3oJ!)1eD87w`lmZ) z=-J9BUHY^GANn5KgP$@_14X|l;kJgHXm}*Z1SY;kDR)TiBMykA@ST0VnLaCd{C%C1 z5~6oBD5bFE01P9X(*}&w%-Pde&(G$^M{T$%+QvdN>Z}5L4k$a> z%4$_8Du@=~`8Vp){|+j>v9hsremf56d9h>jZk(*H1)!pi9;@*kFo=7FhHy92oGEF@ zO`0Hn$xLJub@+wUp$a)sn6qI=RMO%P>sy26yHdBYlm?i0F5Q8FnQR8(F)~nSmO428 znwqto*FcaEx#3!fjDj;?1$EX6>B#xaEvht&doaHb7aW#NQG`)p(xb2yXS6oGl${BQ z-y0{4HEEGIY!2iwKMH`3`q15+lQ@fDK1c8VBe86Z$`=YEANeD53oArYl*l?WUQIP) z{fU@*GKaDYX~F7Uv6k?SgnrKQ4SdD5Mo{F}Dh_LDLfBhtHNJ1~U!T0x&nsM?|G0-v zSO103)u@6bOkns8TXU0+H{}P8&`3D6Pw;y zC`lgA8(yA$cK)ALaem(8s$ySAr}Lt>Q%4s$aaCj2L1obLRC1#^0@$HMz4KL3w@I#z zN&i%Ays7iNhcLo{YZyBFt1WUll-Dr#s2Ps_nogrpgQwkgeQ3Y z*1lJ-!3;sqzs8mA(`%NkFFkVKckHhqhW7i72wj`Qu(SV14PcXMUkT}Yd8^aa06ow= zoNkk?>f(9dq^0~Ko34KcTlGqG4+hLlr#XZCu>yt`$)W`I%#{IfOKi9F;Y*|eB{Brq zF}Ljnh9G2f?PZAzoJvU!PvM91Ke#{j0Q~{&Pat|(L+0^T07!gxj=U08T;E4fBlw0f z7UbzI@hruL04yd?GwE)gJ8}_k#V{@_83a_wA1NZZ@ytxdj!sNk)XE6|%9#-*kBCo>L#+5ko9?1C1_-KgXQd;)SXmoSpIVc}`8oTn zAbT@gFQ3;Ukb^@X#=LT^C+LR(Q2u%Qh?tA(F5KONrqmOKCA#>yk&}-4=(x*ds5M(c zsWR;*d7KYcwMIHfw1V}&^FsYC)cd^M@xsfC03{qXZ2n0cLCz#Mx42Dx8ac;hN58S} z@rHAFX9~4_GU$saB09LaZ6{&^fM5~&O36Bgm$|5l%1YJHC9U%^Dn$R;=*cV8G6=*o zIr*xd`S*eHrqoBd9toLR8q4&p&C0}e$Y8`3OgJbo3r^{#TI-qigZ=H*FsHdVkr)k#!!RU7`Roor?>wT%g%VUNu>@kJqnwTDn5#~47dYbFkZyxa z`x@29thB}4Va8cFZU(eTCLrNRK~qSlk0l{LD6ls7k}4L9Aae)OjXO+n!h)p0i!X>M`o(uNtirK(9y^zHqD7Nvgo)pP~N-vx^ zs>m3-BbLxhrft>F_qNTm?eQ&H@hy)pb$E_-lKy)`q3KdyQ437VgzaFW^-ZCnfE539 zeX9cXzI`k^=#pXNjiaq!&A>Ev3!v~V97JeOz7P!3rc}!9R&=xMLLqz%7d>o`MT(D1 z(aw+L+Dxg2`&F96OamnS@IY(I6t2!RY?hmDefJc@+cO1D)lKeePC_Pqo^OuKb*uX{ zWo6>BUPa4Fm(4jzw$F~e8-+_{0Et0iD(zfL@TlLf{;K>3F8RL0p3b@}lo>>il?`HO z+MeiB2R;j+xmUrOCUJb4aMjazDa&3(-g_Eq*`>kkEiR!0$$5sqt^94NmQvea(#Ku| zDo4IZv>8<1R~T860l|BYmItSxqeR15m~cR zY4si4N8tsn<7@Vjm_t{Te4Ar8*llR5AdGAeQ)r!H`UckC8&?6d;n5wQh`^00Yr8ky za%X*Bw*qIdMT-ceJ)VM)0tEC7eS@7UU~L2(>okg2=qu?={tSuAW|L{D9NjhJ$!Wsm zi>}mUXH~59C5=F`(qc?`^ovv~J|v@BphIwt zd=z)GK423^(f`53&`$i7*V1mX`x?ML+N25Ja2>;R!r_hM$^^o?0I;z9^zi`!{>vSu z;}|d=qZulky~i{J0ejmHVuoONku)bICr(s202w%3ZLn* zG44_71+{y$^&4`L(J0cx;ChGa)=a_teb<=*dMxH!@!Dy|1sJK-nf=;53@Fy9GX=N= z$%DMlxH=m*E#rgc?*16P=EK>FsH&i-Db>y@>MDsg6E&jAE;)5WDnc0VFj6~2ms#cn zmg@4GA;zTttHixYvC!wq!d2W0dqi2(4J5?h)JbfEJvUk4%&su7=326<0sAG|r-~79 zb=W%^xtd#W0~#XP5ZuQvGrnGxJ;1>+&4ES~-+-pZ^9`QrSZyX1 zS*!Al@=ztv>8K&Gcmen>oEFjhvt^uhKGtuxW0QT;k)k5UIRm69XH z3{9fPLW+|H1Lu0FV37$5fY9%m03h0cqVkr+xzc5O0L3jD6p!|g3|9E^wVPU+d8pH0 z=(|d4DvB}NU&>yfC_^Nqf3l^=4=`ZdKRufG+hJjz6|Fvygs>3>cErOET^y%N%Appx zWS?62_JaeK30zJy$AqTZ@+3uH#o9RTQB$v?jw9#f5-pavP%7DVj+kzrJ7zkGNpjjU zT?7aH0c@5tv?&zhII5CcmkaQHQ^Jo6Bok-$^|UC2Pp~O6z|X{Ob0gxymv(GnrXphW zI(dhA=_5Ozx77ukJ=wb6CLz74L<;tlwbLayjoQO%4o@X8Z0uH*K_6?M-NR`a2Ynkx ziaqbcLF*Cnn^6RFqY_HppI90ndMcQF9#=j~03T6;l?w0Qp_Ei!^npHDsLhyUvo~!j zMJAxBP*L}MtS}+veN^m9hK;#AoL-Go(#ZJrBt>DtjrU!e)N;I_2YiZk@Zt$>Ze>Z5 zEg;1|JER!~f>{@>LJPIhvyYL{78B~Oj{zaGSZ&hf_)0O?_rKP=lFM~Y=3J>Ibo5#B z0O6`liGE#xkIvSc1B7c-u@RS!u#z@d-X)w3^-Y^Kv#TI1z25ol=Ao1I&E*TykN#J<8)%ixlPg#i78CEm#n`(q zBXe#8i&)MwkiTpHrqx@0$95k3@bP}z0QGvVMuuiR8wCXGNvudX%r-QgB%>P*93N-f z(`nKLZxfh{V%2^G?ItHy=DZiJ-HZ!0rxtJwK%_5oLp+)*{mLE$=X2t zTPXwfHm_Q04AMa1Jg7E4P@hm_o^-EQywf7AoQaJroVM>ilSabZql~n|K?@A zZpf`Y%KSQ4Bnvju)8*$xlm`^((DYc<R2tT~;!;1(}KEB55t&%6##*NDF>a zg^HojQ|w~O-ukO~JyP-SIEHl*n!_pvz+jbW7cT!egTdr=Me_Q}!#c@n`(`H?HP1Xf z`y_MdG+^rqyI7E_^A1$Rqb?g$0D;J*YIY$TD%2mNgna2&XF^Dc1f>l8W8Rj;#i{dd?=sL$Fw&o@isM$-saKarZ61E&re0M400>ZLDb?_P)fuk3q8&>t3h1Njzfto1g5JWk(mc;b5jJR$Zrjw>(#76Fp8HEj7?L(i zjTOlLdJ3qxI{R{-YG_~TfLyWL;hLXw6Y{@Fp5=EaY^b0FIEr8AZI|{Oib=VytNZ@f})gw+4X$`kJg)!^{n1wnK7zE{$Ad-?TQ1MK_oj^<2F=*7IvWJ!bpKe=t5scE-|qhDgu@g>H`=g9#>B#?uT0D63VL7PU4Y!ih24Tw;q zIKxk+8XMLjPq;*PedW}=fJfsBEQ($-t&sk4I@lsp+Gq=nLWO)fyI*bpjwNQgokE7B zKsGkwSeBdtNKCG*zf?T(R?N=jIXR~uVwIO;a_2AM6L zQdHd(AWwVwtBs*@RTKII#sY(E^Q;Q$SgFI?jHg?xo1Q267a@gobpFh4$b!^atkG4a z%b6)_8P*9C+$cL!jwYvn#>b)p#2bQBTbyN0U+$=(8T_LZKWOO8)QMAR%Vq|qKnFRY z0m0z`EsjV!q9j~dfi3RLfMhO$)R*G5zmJ6pV0Ie{m%^Y*S9JFT!A|RJ{ltmVQ^f&a&5kpjdgf)Aq`WRX_`ti-gGb}J?M$3#$T-R zBP(967Y#2~(xE5{BDb}$PsH0NnmRY(kS|ch(LKi(i2XQgNIKmGr2`(cV zKoYW>9Lg43RY0E)H{;U;T30cJW9*-{OK{0 zb#t5KfdFyi6)1GWqn||h>(){$(hr3ofvaLd0eC)Kb5^Nvw;z$`-;grH#0wHTkNPLp z9qZ2te7T|S2xS!~)8!G|IjqSdy}+g`;2#*_D!@JTd;89$s4Q}kB-^|wBJRNhT~Y1# z=RkInh{|`ojzv-O9Jy2g&0}zl9|=^b0_)!doQ|+jeW%YOtBKUIvjLl5>MNY!S&ijA zW6%$R*%2q|`!X>q(f@!+ZTl?^T0FQ?3Vnm*F4_rk$4PM5zo?5x5eO69~Mm5F_q8! z^=icw2XVam7O%oYPKP(wXccuQU=jKP*RRWSMe|&r#>|39cj=C9N;fE|Z%Bosd>Eee zPfM8Vwi!v%{glic%T;awr)-G=B>iXSlD~Y%nhlX2qSV+Syg6FSetdYH-bV6PNbv$_ zH@2(+f~(CJkftw|{Y6R&gREtrsJ8KlP2WOZyo{bNLCDelIPrWrg~*sKpbdp*BVZ|h z-JA5daWWF5`s4MTw*&dK!~Uux3Ntl*w%es%hm&L8!B-VcIR(=>ZNvd zTr8)k&Kw>+qoo8EL3@NB!iz;s!5@b8Yojbr=+zzC%s=^jH-pn*>< zPFiFSS!nv({^8EKr9@KA5K4Mj_6}*+cii6w-0Uii${tJ2U*dee-xyobG_vqci-GI$ zKCB;M&Fy?F`>}e9L;V&OW}uzsg=|bP(OmXwVE5LRtiF|3f=AtaPd0?u&Zg$38_kYL zB8JEX)tQfh&Rkw708ts0;ipcB5@%jL&Dq0s`2PLp>?M-e#=plst!)0nRpM^WnDtt1 zvYiJQCcXzj0YW+yoR(*_sn111*OybXMWLWRD4rl=Fbw6^hAkFs>1kr)7jw~EW_Uvc z6LZILVn?NPIR%NMFK6+pSmZGp-|kf#wZ$j0fV6uR2d0u+0AS^}!tPRC^xNp*&+CH$ zUYFx3+#FY788s?Kj?9iEfts1F3%&_LvhNHiBJZ36AT|fFEz9G|PQ}>7tM+jB2{-h( zYQz-;=u%2jh~agjB4u$4f^lWcaRK6YFgpenX3`x`1a}7oM3R|z*HkpBI*LlD#KEC0 zv)WLEU-AJtpng#XU4Du*it5k8=%)V$z7;6P-3C|rLC5-KVF5q*xd%{9;>yBUSQdsy zQ}vl~UbOF2sc~tNO`1{C0h~xk+l3J0FPIR%kFonZ>EWGsJ=nWL)P40KE&0`2Zr9ia%i~*)=7+UPFy& zSmX{}eapM3TZpTaXPug#-+Nba+(*3+e37-3hxo`?g?srD9a4j;sief9li!b;ja*lM zRN9Bf4@zK*GY)sh2Vq@Pl2Q-{!0g(e{#CvtJ8>7B1A#9yfQC}U z`&lvci-@ft3_~x=J;}o$mQSXX(VHZy8GMrVvuZ>(R=ISq zp5SC*HP;i!!gF>FS3S%Xj()`+Gyq}80@)dA`)s!AwQrZIz#$?)Ty^D5DyEU|F1M3j z0T@SU5XGu?h`QL3&^xqfrI;kduCFGA1d211dRb>G8BXe?n1@P6So~Z|eLSYgHoypvcV6uTQ z4l(R8tqLEPIAC+>%TWOhCnuSB-^Lzd0l45}IM{=7?x8@};7I3l9*tB)bhQI>whZIWVMgiY2l5%4w_Lr`M-3w4a7x%GFF}=g9!|Hvkh2PM z9L064<0dSB{ zNW%`hx(h6DEM6S#!lKk}tQ+gjZctE3Q)Mnb2SZs)^NKj#V!n0v)~RK@4byq*IF9-^ z;cH_HdtUEJIlk#r4)A!*QTEYYZ^ullk=Q4%{-(f&*9`T;p}Q-2`vaqVnf~q<%)Zv< zSTo@2m_Ei$YdJ{l9G?o$i+yo=0Dg6T*}zv)qXQ6cChZ8s+?Ioc$eHH2b%I(qPJOzU zL%S}?hSGyXgaM_z&=*HTQHn&Ahktr)^67PWYdLP@V+4PONB;9sGl3h+ifg> zv0|`hiYMwxfcLAw$4jrzH|C7r*JUo?iBZ7w8?pEGa%~6j+;}7K(`Y^e06aqWzKs*| z{frX&JztLgynP9L*5-c0_woL$83_Dr^IEr-iP^&-}fgZpdd|2MC>4pO^H(g^?#tV`%`^b~oMb&DG+MUWl=?d<}2=;W_W`H_nNzhPQ z(t4YuhrUI9f3QyN-gL@3I+^{3K{${1P^IFi*OLfe$P#85G~H_^j4KU6>xwniY#2xZ zj}YqY+}Wl$jRbKogjh?5xX>@UG=4 z3mftn3Ue~^7!3(X%Ro647NkC)JgORX!n&Piffm;@S_ZVyXAyNo7EyQC|6N-h{+Ro& z?b~W=PD^363O(;zzdj#s_7yUDRf0W8BV&(_PsN}f?Du(RteR1Os3R3jJ73)Q0f3*< zfc{{VT2-~lCfM8327TM2SABKQc3bx!259Zv;^HXsD&$!}>vL#&`7z>nX z>F~y8**$?R7G%JmwT1>HgHcKnVgLARoai4QEVm=^P2l+go1qeQf0D{!lF4L6#Byy8 z5?WF1?dk_vjB=EXDy=zI94R;|fZsgTgcd2VHpnMV4hDZ#96WNDRmRifBxCD_EnWC* zTUCm|F`O#kZE*PFVY2eUgeavCKuGQ6@o&qM}w|5ma2d2Bgx)L+dct!dSV`K*LcN z5HS`qjNh-!*rsvZo@U$7#TDXPqpETRCcj!{T4J?dkl+dtwYt~`=t?sW!&X!fL>!j| zSs8|ndjpIaQDt5KE3<7bLH40{o&+?A4TK`hT$l?{)@eb~QDY@YbKZm^f`Q*T|N9-U z+sf?Xg8EdP749GRAg~d6KS;ehLtxr9`t+e_mIx`(9eX0ak2E|!JeIE3acSyIl!K>a z1%5`G?i+fBTaxnxAVGtfQv~dU>#|lz|6VBTboFk8@IRqRy&|0jzrt&0kUSxB6@33) z2->7q9@w6=c&;UHYr2d#KpogP!EBx25=`-{s2Emtds^^_4-(=Z?d-oR+tR)WtoIwy za3TkIBBDvzJq&5_lci4Vjn@|)i{g|M>f9M)fdwQArPetSa56p$2Ug#`_tCaO@T=~O z1$?6lVa*M`y!4=yjB!Kv3LG@K{+`3oAB$Tobaues3xVHTPuk1h&zAe~Uei2S#!QTD zD3?#f%fhF2xgBg2t^2QWPX0Fd8xwBqb_E)()^zNG6N1D(%269b|3iGVrn&Vm#(qps zq3hZ?^IgdV0Hv;aa8@cva?ltC$Wb}Q>1;fQN?dPo#77kkEU(zM&azTvGohAW@Cg>Lq5xt`F$Yg2ZerXo12H-YME>NDgnbPUKFjz7u~i%aWnrw7161 zTxNC)FxUR;#KdgCf|c8(G&WUExv!HGbHp0mLSK}em>_GE31n8kM`kH+eNv_o(hrYL!`lH*mE( z0JanJE{oR$wO6Nc{@0dA2^OLQw8x(!3TRZ?m|mf+@uT*M(v16)l&A=&o z@z|m2(uL7tt2k&@p8;OHADJiCg5r778YFL%*vtCtyn;evAkuy^=wCciyBfqdstLSe zu_elnDxQli`5Q^V+uY+UFrJ|tek+Qh7ay^NfZtScmyR`<}P@4*kBntdR4k|MIK zpY(D0v-`4I&a;<~k)=~@}cKi=7H>a z+Y%hWswB9CkupIX98UE?09j9T$bUnc=REdv@2$)clELxETHipm_CjPV3FYkZjV@1S z60qPP>%(@MH4^Tu( zepYibZI{c}V(V}VEDebv_$Z1ARU*wFx)SZ&Ct+G`*FbAp%lO1Oct8VI1ZHwP4pi`6 z?yFb8og04^mx0adN@1Vjje`v#xrXcP!(3BCeSI9xg=I{sLL=u0 zAwkKUL4K3U6A(0V9c1(KhFdHO3(vn<6yI5rtRs=d$Et&P6L}O8Zb6?07)klMM4bi9 z4ZNL7i6f##0uBljdrI#(3fVP!^)$#uN2dSYWBFcJ*)=q|>DujcXssJ^k6Yvl7CLy) z6{VRcY4vYvL)Sl+^lf+}7XCfl+j)wpz@y_W&Nr7foN7P#O&$V+<*RO*^QW~T0qJs9 zY+bf|05&U9(?`%lK6J23HCOQ->U0F|%~##-+$WUj2@s*YfEF#<82wP@GB=*q$=;^<()6(Z+I42>!eGD@tLvJC`vJC-y=9$sIqdec`EOc-);r*(WNvjGl`xn$uQH+?g+AsekcxvByp)S_fHK%e@+X zMLc@RQNe)RpV9YwTc|FhU;RRf4Jx~e^R-&&2~gKEM3c(EU7ZjkH~g2kau-`&O4%Z3 zq>GoEO}d0OVU571Ywf57=>_{z^(@z3TxcL?A6e$EhiKorh(J}Bg0v+90p>LN!zQLx zmujbvv|U%-DqIS`11kYNr;UJh`_pAXc#$P@q`p?IYjeVGy@l=XN1j{+Usd&FVP*ku z3Sjs;4RY)K4WEvJhvm)Ze#a|;Y76?7fHK(?)pcoKl$ZbMnDSkTYqF*Ku!EiYsl2XL zq{#0|CC{}Uebt`P<5fHOXae<>n#(opajJj7Z!W4@i2vnku(d^>){F+zE;z&`k3mb6 z(X_eB_1zQ1>uAA^2y<&N3kpO2z;pMN3Xt|k56nf?o8k^9WOZp98V0KS>~>|9en!mH z%$9wAWDg&C@FUKoCm>@70iNRCwoDrFY7*SGPE)c^vh#2xa>_%F##5BJ61L9oPN!jMwtfHXb0A9pAuMZVT1`x>O z7&+eehl^@!s$oPZxqCP(O-AOTZX-G(lz%*jLG6AWZ5VI;RGmLuqqZF*wZ-K({qMf?|y;&PQ3J9g738#69Y+guqd92CB39I1i@q_hbLSg zU>C07u0rj)6#WH%x4PB4d~F+m?SYcpG*8hL9_;0hZ-(oJvw3lDz1Slp4k!#`glMSg zo;dN`jnV%ALDvc8GlHMfpL-F4l=oMI)eSVVi>;U0v2SAdoAJt{)@R3I>WaGk>R2Od zKBXNJASc0D>u!yCu6xjmRvLv=eMU`#!(LU|qtK*hL@uCD9(+-{Pnf}NjsLUI?;J?3 zC_im<6~B~naE-jGWGOrr2pBw8^4yVa0_J;oEr5)tY%?HJhMufZJH9gd#}mJ9JiOpr zR#eX``BctsNrBR2?rqeFA#YwPt|@f}jdvcx=`yb1bQtQRG(=bU0xmSLch$0U8(mBx zN`@!Fn-~j!q%_`GBly&PtC}|66&#wlku!8?0q8S-+?8E6ul@qz z$AfEJF3V*`X!Huac^M|;TVH!=6rM>ld80;;>H#{n2}}lUQ&YA{S2!}=++KTs5WPfn zkm4fDNla-vMKR93P$yO(sY3JTPb(2V;p zmh+6LKqvLP8h1VTmQwAvYS2u>iYkW$e~e2MwQ5}O33~Y?F0s4%@49$)gytUSLYm-U z%Z!;gGn>Ls{qjQfP>mwZsT2*QZi+E`+D{^B^fs3|3g%CZ0Jdp{K9#MhlR{sn4znTr zj*=os>p{+tkRaI`isndbA3mxqqJ*CqU9f+IKg`s+l8w9ubSrFL^@OOIKw)UIeydA- z`0$w9?E23lVDayy$^NNGYjJGSh+R(egs5L3K+qbz4eCl`KI7a51>b>sBX_jZa zlwr^ea=+}e1f)YLyO(2@ZK5?5p=C7qqn61F-U$FUI(|y^tx@5&lrOO_>-% z(19^NTHCq|4<>J>TcMYyF*!}BkyiU-#OVdft(e|;gfnaW!^PpseV`G4c>_BLwqU}9 zqVMow`fQ1Y5z@DC&Q*I}-PQ^aA7dUjuS3k@wW0?sxcvE^?Kv!oA6V8$nA(P1V%{}y zK}j{@2ar@XzSw~Apc_(uvbst-s@$k}+Z;EkEQ)9Ytu@FWY$q#(ya7>B2r9Ipm=lSZ zkVXOIOx-eFYu;(CDf0~kkbRr$f8=Dbw-C}34Kk(vX=c%Px4)hI_*6<}xg|wLB_!lY zz2+QCaZVl;b@vKS>G|B{_bj0q1^k({XtA3L`z~l|fPtaxjQv|+Rha!6>fi_KH#Bg=&3y|;^`sej36?+*({ zi6-`Dq6hPiV)&iJ;@L>=@M$OWt9rO^C#~0IbrmUp`qM_W1!g(dBU-;A8|-T(fCVck znEKFY!PR4#$|C%@&+VNzE+NCU^lL$aXyD)n%iY{stIM)dv1M}j?}V!0`ZU}Lp6zSPx-*-}r(%K?0`fp05Km?b8K!|TDDTRew zn`<3%k;UeYtx!>I`t@e!>StO)BN5n&ue<2&=Vhz}%!gfH(Ewao(@4*jTuvtVXN*ZU z-M5A#eMAm=eKT?k;~lwH&Y;!_er9X!&-(2~dB8{a-*}c)-)6|@*8gWQ2A{TKKl#U6 z?ZE%v?JXw2$l24*#L}L@!LwUq!|oq@<-4K*mxW0km&{5Jvltx79o~B3c7ay!{zuFZ zs)@IuT}_f+YS=N-Pq4RAV40ZQ;P=`%1b78xI!UPcUtOu(zT_#5h#5=>hQGb<7~gLj z4rm~ID9L8w?hTB$&hha;x-5567?3H&`e<<5%*o?`qwo6_TQ6VGRvU18Q+AP~?6@(W zoV;1iKf<$UY2d<)=FnfNw8TC{%(^gbVSoEuL8`6F(R~!4Xtnx417IxkW+jnyMJ8Cl ze59E;`oPKViDx)bp$8H&gH==lM8WRr1LIT%B{SlEbYn}aS0M7H)@G4XQBl98-njb?O2}>!hA(x}nY7&;24YV?FCT$TLDg8?E zen_Mzly-^PI2y`Cly%{26BC<6b$WbvC&(cUMcxu_zu{uwTb-?`iDrF-DDD$jYC)T{B4o`#g?Ms9rcg$O&&xC&X) zR7&zB?KX+>cWN4@O$<|NY#CTOC|3n!jV%$|Tqd&g2w|Ji$TVwI1aB;wv?&q2sBzKM zqnB_kyGY{%J^O-Tm+CkqPPOO&d6gK;&?arFQ;x(PX+*keyih-iow{{<&ac*Mlue%y@ z*qpOGKR7M|!Nx~{*Iklbv$Hzp-A|XtHAW@Nc@J{iOnuF8XuSkZsrDq!fMEh~Mky=n zK3$QCf?L^XZ9tqP+VR1l#b7gtUuis=$lx;HG3K-vve{AC+sT4p0lX@4I5E?ksySsAx43FAT9{d8^;n zy)eSUPUqQyuPU_d_7S=#xB*LMJQwc?dAz7727U%CPW|e&y?2(P417k+qJDZXhRt4w z?R%f4buTrZJOX!>&6@zAEYv+bkW#%2+6ytIOz zZrHdMwy82d-vw2m6wG?W5`3< zG6!7d%H@EDZyChWE5H2@RqqrXShQ`6#>g`Fx-M*s)tIjnJD_&(OQDKhs#5v)i>@_9@`F^prmXR{8?G<<`> z(C$cBQ7n>Hc4{j4^i6HT&}rnvm=C1TBg*!^D2?6HO>RDTo)|cO+SBpSfQ><8OnWP< z*!;6u&r%uDk2x<~{ptC3kmk2JfLOUL9gg948AfvH88BxEmrRbnj42GLHU!yEkE47D z+I{7|@M7{WL4;f|5PHZ$wAB<*%2lyw14a80O?64OWCDsI8A+AIXt)w#2Qt=@-RI+i zM6dJn6=f!2reO@`bXp?8&AYdfoA*uGv}>10Z-qsQZ{wH!r;gt5-kdplc`56O{OBO@ z!0`msbXC$O@ie8h(OLlV;DBl&E5mki?#2l#JsbP>sZc{z^Celb`l5Bs>D1(N@(MNa z>kBYyHCbVlX(Mjrtx`+=Y~=7=`;NAb9=$$2R~PhYtog|wy8rr~@6U`o()4GK&Mm^s ziMN)H&x~Ott-f(SDO;E3iaMtX%j)$Ugb{+KufniUQ1b4=4pRWP5&JOhUg8Wi1k_5{ z>uth#38`q2Tac|&UX%KYMzs=1$t{M~^ZctFXwrSf1bc<7|&h17b@|t&bHQb20TIayS%Z00A>-3KE-?h=7}pCfBhtiqUnlsYlgKubCE2@(T}?c;@Z9K7D6!{Y_WsOX1{fYFoN&pZq<}rqFz_o zx2EWtPxY#3f-Iu&n9st8;M<72*!jEl>V1VShe+X5rM@5No)>`)ao95DwWKv%)Y$8# zfam8-W6DKFMecz>w29%6PeYMO;T=xETvkX)ETI~7;dbnHAr9HDV;67mJK{zR*urkI zA7m4aQxjeo&7~DD&%Xwfke$Bln~zG#;Cy<}`Ie+ztR`GGDiK{w2^u&m!TA{zGsUJU zr)#f>ANuj749=veEu!cBxy7Kqv^Lc;+B7enM1vaYbSC=a(usE&!=zDxY^^ForaF1k z*%jt9*){cwPI5zy<#zSRezLX8JNnPTp5W%HF#>0=md zOIRQAi_LCE^rW*|+nlFHAVrV(bM9uxZ)-7XSYT@XQcI71g!Yp20I{LuoN}&_ua?50 zHp$_*vJ-M+xIui4)ks&Wo%;was>8VHsUDIn=T6APf55%VUbtN+HqNm&^}fYyHt-Q$?l`{`~O!upRa#KI7NR3&*su5iC0a+dZW~3Az^cgaS@F9L$^yiAB!#^B4NQ64; zV+x_VJl|B=4#qlEmXy#`nRKfaf)1>l^t)Mc(QjB`vht$|1aefBbp(t9$$&or*OMn_H0sv$ccE}iaMHyUKuFC%>@(YYegf9S|ea>O!(MKqHG zJ7aLkmVKHi?P4+U*V_1WQYSu8Go}kLky8oM66!=Ycu`&m}nnTZ#Qr4#TU+OmPpU%PQIXJHly5T8_-vy_ z^hIz&;BygR$^4;5)4I$a14!793`wGKxM)Wzs0ag7V^iP}`3p`jzINM-ngq9&9ds!y zoW4idq)cjE)SNJb97Dn|#Y@5obH%BQ3 z(>Ujt5nm#qySPGRfLo*Dq)w&5LZT9q6ho3O9U z7o?DIvOAWgdf4C7i(kVtXY^6s9_`3IA40}QI~ZdvOCJRjym$9s z=!9>ic|9{8I{S~C7YDr{K0*Jl-L-t-ub7D-CF+;m;eFZN|Bt^|fU%jmgR|LJaFU#) z^o7DGqyO${kS0WI1(h1?mjgR79SIz+v6h3+>0!RcJBkyhlE1OvV5m{QY`7;iu}KrH z!iGS`f4=^^yr9nR8&IuI9**Cd9!3@zByLV9+m=4+l_SjRTIIOVgm1%APe0gyh_!fo zM7I@#UlKR73`9=>*2gfK2NA5NWdtRHJSmiW5P4AFg8xbtZp-A=)cuNvk`jvzfFa;hn zmZ(wubY)|D4Ik}|84y5Ki z20TNkg7#hjiG~raOS-dON150!#WabgjLBbcb~M?u2FHMt58m6+5Dq20-}Cynya3LlVAW#yMzFeB97)_RNg z_V5^gAUzr5_kqS+;{l|zX;8f)?9BsUCL_GGFL!?NMHYQ7rrHbs;Drx&IgfqR+^I#^ zba`_K2 zWR5F4!?%bRLg-+bcCncqp^V%ykpQY7akV-M#d3O8DA)k}v39|}Obi)#UEzwB;w{+{ z81`0t;u7$1*qw?%MVra7jCfzE-Ww4f!@ua8nmRG^@+TcJ=~Q@hdRbwA$Fg*%DCeJ@ zy<|%}OnskIcwv4S<)!X-mVhX5~yUPGDYFU2yO zg@ir9aIeW|x*}39+%xDhnrLmhylw}u%J^_@=$euklTaQ-jMwwe>;&vD5hzHcv2jc z;v^}s?EgZppuRe2fRXfQlC#%f5iUPO7mE5~w2h2TF%d08ES6v>?u9h^ zTsY}(P(Fom6KqFd|{sLiQ%vzBaVj4tc}&B|c<{rHrYf58;$Cv(Uy zI_?HTLxuUp^+!f8e+%_T+t?PiEMMQ5ng88sX{u%m-C6ii0<3>1qUrp?;A&5Goj{O( zKkID1E>3P6@}Bx9S#q)X<=aM>mASzp3&S~PeM z*K1A-M~G;12awAmFE<<^hkd77!Admc1nXE17D5ijxj0?w^w9lBycfE#^bhp-RlsBO zIA69YIYs|S#njS5eSqKa##Pq8u>0Qxl$e4W=G$g%YvAqAc(HfI^9aY-DLd?+(4>U(CSI>oL&JW7 z7nX|36s%tH2#)ZrH4{89&Ssm#Mt6p6tF+xG*f*PHiN7DjTc-kQ|JxUo*fzA*a1kJZ zqyGn7l^2$nD!zb~_S^rE+W$0eVgb%(uFjrc*m|yI@E>di9!t5nkn6!UtQw7wiCCuO z8i)1b5$Zb&V8D`7EHkTRD=;vZaG=h3&hRf1&thJfCc_hpHv&eG!(}($FPJW4{vr{S zI~EVy+HY+gH(q{x+|~w`LeFlQ5x_8RLndCTt*@3V^~+#Rn?O;?LR)JA|2__2Kc2B> zR^a4Sw_G+>g%UIdc3F1#htN{{rhXs@A8hx!mO}SB5yDbz_j$q*ezPpqIlp)et5g0? zkD^Ko?lgodEXs@t3jHy@n-5CbuM)|OBI`wvGB8!0hA|`*)=CqUffKTTa4ho1!7vZX zs=nR+-3S1Hc3ti%+7oJkZw(o(!18nP>gdVU^$jAqd9T*2uMmdq69+!pTwc9TcwyKC zeSz6fMiFmW)@7YF!d1`OC@AZmL|LWLG=nUH>09A2IR~bMSw?=h8JH_(;%}lTLoVyV z+kQ)~6Vj2)?Weu7dz?*#nOW%4-R*0bnVIdQv%6tOUS6JI2Z4TI>yF`#h1d5Fc#OU9 z_cxU?DL_>@4!&LCkktvTX z4{-DBB#*{@Cc&F5o@B4agjQ3`UgDWGCt9}5YkWE{ZfV+TLg(~a(XS0xWgsPrWQkYR z&R6w3Zop-e;L!Ar&qr8A58w~1z;V<6~XMq;|^Z8wo% z3`$P6(vw;$oZ>wvsBE)T_77DleH;Zzd88ny!`a6JgQmuzow8*^jmF{Liil`Pbj|D; z6RV*BVw-B$((K4fFg``59nE$wQ%M=De8Q4!qNiyVAe(0J;Y33W3zW-tj|ObL`YJyx zp!rXl9F&YiBta8-J{*Jf98OK03{u|05T#=(WGse4~dGTV;&2)B; zAx(44s;lbek0!AMar*};7U5Wk*sd!ztZyXxl?*drsKGpK5RY)Z?{X-L6yYUZV*a(u zMe$cg7KrlU)Y^27vz8_^u`4Et6`_rjzXg&?bpzI8H1Pu7X63COnL6 zyr3avFUfAr#;ikovQ+18J@fUP?|v2k^^6^H0Wk4MWFlU>cVc$PeHPnb5nE}!`>oDq z%iAB$GYY|cxC!0Ck1k-R9@of(DVlr5_GnBPPDfOgmzWe+9>=ez2-~48kLKzybA~=s zzd*;Vwb}l);iS{v{7^$hE5d_wG4)f&=t=kXmVxSUpZ7gJl0Hv+j+eU-X@BB%+~r30 z6wpHtz2Hu`mnlbDd_+U1Mbo}_t~2^6e^JOu_|v~7b7y(!DCphYOB3}WM zxg}0R4Drpwx4qH%w1?}K@mp?Q?&QP&6V7sb(iAzaJaOxG|56>HzBlALnk`+M2KK6$ zPKoE-n}U@792$D(VrZ5{uaY`zBIQW4A-UxC7_2>Qi~sW|8MVZ76wM8PD*qm^0ubze zN*0;?;Z}?6SXxPv>b(Hjpv63!#QhOyG2BU8VsRZHGoOaL@1xoIwErb=#yWX0pJ`|3 zCIeVPdrq5_?-3O}r=VVJMT1&oAIu-5s1#`bYrUA+(2QC1g4-*1^eTbQkI3ss#v-<50`M>cF!f^;1{j0czga86U@W1I> zEWpLp!SM^=7S)v;cEnNq9&2%aFe#!^rKYA}*nq``=-R#WydTEKi(ube^JY zz7W44zshhoau~M7bxM2EAp5&p^gJJAu3YB`8erRy9l}FnA71*s9oF_T%`k2DkFune zZE2SYxZ-9JX!c9kVHf-38##A#uYY_b0X=^H^_qjxGb(KTu<1Stu(XjhNf9Z13@Bc~ zl1HVR$9o=K z+fxh|?O|xI<3D^}B6m-)FfOG=?Z!WQ*aq`CID{OD~N|-1L>U6@>Z&p>WiUBa7R2 zf*RzC!OC)A+1C3Nm*=RLfipJHRXGp49#p;R*!;?SP%q~EdpfYRf&G#$_lS-oBlwM# zszxlI-$X=6&7Nl-W<QkUYG2&A!b$MP*68(b0O1x`3o#@~L%Tyq2{pN1Pi9{ z4t`Uf##Z72g`3Mh0D8%E+;PYUX_H<1k0oH3dZtNLIpY88((XdJ1gdoiWnQ1j;YyYD4vC>W# z`>$O=@t$tAP%Z%qsI*!GK#Cek(Jy7P;4M7m9I`E&s9;b=l9aV?hq6O3JoX%J861+5 zr24BU&UQGStT#-SNe}P->3CNoX~vGe-D~H<>fngQ6E(LZQU*YJ3{~UvUPRyD3x#hI z)k52k33LVRHU5}E6y`RjV5q3fb>AKl8;^nSw6Sv zQ0t|j@^{b+OQiXBc=y6*S0crz+WFzb&{9YrLO%W&^T=aUB;;6TzqAbn?Daw9 zN6OwWLoGeiy3VWu%x1;G5r(2kn+a-kyt1hYDE*h^NG#TKj))@IprH;vanGH2(gTcGQfpu=578A7V@eIsQsFi^|ZHe_8oQF$x>p# zmg|xyu4PL3wfXIQ?1rO!C8%hCv^%{-Zo(Wc!F5quPU zUjf3%)T=~g;q`kPKYSvz64|gjGwI>R*hZjwO|~ea2-1U^{PZWgMv87e6%G1d$MZA^ArSzSxC!(ya#p! zxQlU>HRY0)BY86YvtD4$R;sK2%iZxw9Ld9lH+44f_5k5tK{qV@Br~ME*+5t8~xEDW&tX5 z-_2~9_y*#%i?9I3im;1cl3SJGnkt}|s?Fm61{q7}9h9;P3vk{Y$`mk829?9TR(k*2 zs--L!t7>3DKs3KLc>f=2kjf%WfB_WAB2jprgR4k0Fih5GMQ0`KQ8Ok-Kq3jDJs>c{ zPo?eT+#q=l@=EnU9i-wZJD=$h*`ispy*!?ZpW^Z?j*pD()0&NjO4NS5UVah~6A{-x zYLN#UJG8x2HO@3L&_3v|sg11g*njKZ-1PfCBp^^P(_?h$%7$HXi$LBxrU+2e9nh<2 z8Xrs7Nezg+rCuT|3k26I)BPkMXdps$y{)$YoZYJXgB#hedYojY?jPJ_OG?&1o6e@_(qhE>i=H%BXdtXMog<1Vx=+7C>Th#= zx#}cnqgQ-QJL(ooDhIoBN-?4cW`fW^Zcy1_%v1TAMmw`luMKZ;6I4YKH$H$`yH&jzji?=IN8;AqU0$DBC{nVjGW- zI~!G~UzeOhw{NLaW#WO1X`0vqIv57-YbF8~9w{4);Xxq~6oMX;omDsZ{W?^!u1c5IZirzUnsd&Yy~sbt!&!rFl6eU=-8i!gZYb&H?!JWZJGcw`R)4%J z;!mbFy}coI&OylTRJIZC-*jn0oCzFrjAQLQ2pGX!}asrTZ6{_b>h-HF0x z7&R_J>Y(|U*R~m%!#Rg$rW^~2MJ;iXYv_B4D-lNTpVp7xjE5u2(Z+tgOO1Ie+nR0X zD6emRj~`0K)cYB8y*DW&SHkj6DmLVX-Mxnxy$%Aym%!{*`S@Gb{aY=GyHYM;oqlEB zpgPh!g93o9xwdnn(hJGqPet^@tD?hBtzJ zeXr1=iOrAD83gumY^MOfe(ZAQAM>plFLW_2(ow)@w(@gsc7ps?Vg?v=D?5q6&8o~C z(RBkxH}*TvLzhybHoqIzXwL9q#PFnp+4WrGlXCr2`M+A_gm3xEAb0Ohf!@Z7?gKy;qmW5f2&jK&~Yd8Fny~2FW#S(TNlB z9wm@gL7xN53gU;PNv`T3)0c5AQ$p^Vc+%pu9Y?rfN2M=S$NHQ>L#bvdN{>M?J0l## zDJ2CRv`Wi2}CJLGx<{KYT@~ZJs+B@ObY7yj~~K%MT>FJL~-A_#YQWM&%%Ln@g{@{1M=e@IIa7fU@-5KeWPeU2eav= zPyXknJM*t5V9TVX4N@d6oyy|1m5PSqu4<}@jcOG@m9ORKvoejUJLgcWH38qu!~Lg{ z_yQV@0_?WksgHD32Kuaht*a?bh<8+jY0};F1QNRyY65HeYNb)KCRZ>s2(mOFUVu1-(x#@ zGIuQZ;kV}p-Ol_q8_p9DO$>^6_X~aLZ2%Am{>oc{+>QXNnTSLtf-bAR79qU14&fnrU}x&^Jc4Gch_m)JkK)*65MOkG z3b6w3CxC%JeasCBM`q1$jZVfC)_)l-_ZIGamW!qZLmO*%BpYsq*x;5Z3AYZMg>x%I zrb>$()-^UWNICRCv$i`>b^ojT7h5s#D z`{tZ#Y0{sZsT*mCTgM8fPT>O|__?&|<3wg0aIA;_Exf!6Tg)VGPC}5cYcN#Up zz1n%thkV{{mf4_gDS(%feVHUy?Q#R0dT@P|Mj0nKi1MzUeMdxO+Re@p1nIWQNNlyU zOo1XtLMb~jlv!_m_P(0%gAbf(lIn0>Ju~p{{fD{uy*hmm>9zBkL-P0~_-?Xp4GjAv zs?Lo4VWkB;^6fQJ1b!6?Iz8Ix#`)F))ySiJFyk0s<0$?R3$W!loQGg3khg9w;<5iR zw~Mz=&L-_1VotsJZ~(C)TUMj5m*qENbCMTyDI+k zb{VL|BaRIMBCC*^yZrTOk32CV(K+wC`x-|=?`f@I@?^TT*@4TW^7-+3Ma$gNVsm4v zOE3WikcNwJfbXwv)?+4AS5euqC)Af<7oUm=pZZPVGy?kO)i7^$w{AzRVgJQDqjpKE z<*$KDe(pp`%*w58(cFV>|3F!X>X=OqgURrgb%nPjDR*%m`jaZ; zqC!&tMik2Pa+FgDoMKJY&;q3yyW0u4%vwx1U%J1Mu*@pPbl$IKlR8<{SM`Ym@-hzM z^Gooq@7*nG12t|}j^C_h4fJPwe&klBoPLkg)e+*3$*@gCTHiCntO7x0iewq5l?q`2 zaZ4{5ze!gIo*7Yvl>NJsbYWJ&6g<5~17VDk->6D)|Iq5kG><@ave1KBX`IubC9l;* zaP(7RV@l_jJVR_1euPf&Mx}264$L3`$hWetfZl_}AG|kn@L)c~5QY69q>wVqHh)6E zk7!;!!_-~4jF^aGarxk%Zr+|74WI&{&(1?E$lrfhf~Wf}#C8ZOkT32t%G$)Jb3+`9 zQZ)sn*PgP`|Ki=Eo*kgy0hy37guosvfI)B-BmwE8l~pEjFUkkw5WKDh1R5CXe8~il z`(B*p#>*IGn$DMJiFKzH4zMG)TwBrxd7B*WuKT@To{s0gdxL!rW(6irMh>5y?PL(u zFwO=hYBW}E!G$KT#}<8moY?LJ2!QJ?0iut?KdA=KpD^|xj|Q=^y-2a2KX^WJA4U9G z<07oR$!4$RO;Qp)=&A_;q|j)(Fx;c1Ab(l=xcQztwI0OnkYCV-TfP?wIB7^fp@V7> zlq$s3{-RQ|{L&2ohX^H#G|3Xuq>wQ*ZMLv#JEW+qUUky!;)OH;5j0M@Cghb`BlEHH zGBG`*B7F7u|p!{p70p&@bY@?3E-#59+hAm}P3Rc$^&`u5cX@zBhngM6u zFWo?0ZBiq<`MtCK*SLRlM|*mm4dW8$OraM%0_?aJ{*-dYQEONPuL5CDcSuPlmY04i zDsobZG(DzKyhEDTpkN36wlfvkuly3I_9g%??dO zz_f}@jM8h>`|67*l5@ZysRHTFq60mfO&#-aM?6Yx-Gq4RU-q4WhK>F?=|4dvmgL z-I>nv~1ep7U{$PDQMn-VWO7n{l$E}55 z9FZiUl`0QfeRvW5gCMEW$Fd0V;Hlvm-^5V$2&O2l`SNPB>rb%3L74_sul)L0dN}*M zNh&Q@#W}vMC=|^5b8DIz8}8bJJ8mJ1DoCZM3V~|+Df4~4SSKx!!~&yslj^8nJLe)-d^6bisI9B3NuHz}J1Hvop)ma)8V9 zJ<|VdZUN!yhv!dKD{Rp|SyMbjtzM|D3i)~9{aV2-O`0#lB?_135l>}G+0I(1$GLV( zq%B=Bjd~>^VA_t5M)Yg@Ndt(zHKHTLfhUwCpTR!4+0d_<_IpXo+Lm?ALo^ZhhV!z@ zH*l^i=^M74qiOD2QD;0MR*y&8e@_1FEi1D3;F$`B2YtpS6(Jt-Of_bdN@Siu03!zg zJ_LYhrF8iG9R@94 zO>{|rGOpj@FNnGy-6wbb@I^ltf7P`$(5d>9wK(Uib{U5#lv&;qe)=P3#=p!LbmeAwgcZy{D~y& zM!~%Hc$RE>M>CAw@A9BKj!BRKk=Cp#&<$IMd`>r!cOk4kl0fu|xVaXOpL^5HPc45{ z+JCaaligRr%^YE}*JEJ}c2-zts-?DAL7YM!6qK4T7Dpvj&2zI^&*$ADo2fx4zv9Ve zmYP>Y?#+i9vz_^Slu_DEY1|V>3s{-E=v5s0CZ7J?K$?n1Gzd{0Zm~54!h*p}P^p+l zNqr!FO+L~a&X)H-?_W%V5}UusC$qn*W_m~q)U>!O6cq08LBD?FwzS% z`0d*Z1lw$i?zHCqXsS`cwfvCovIWI57@`=AOyY#30LS~wTDC4<+(M|)Uo86%h%cx02s1W`W!1Qv9M2O0rEw@KZYoxaC4D}D0=13?@!bM zbq9PbA{6+G(t(%kylRG8kzGqRyvGS}#x1_eo~hk;42HS`AUn??1>d9a5lu0cv{m(b zA>NWBV;?CnrnbIN_!!?1tE_nlv<|uLm{jpgLVGHK*komtvv};9MAH9(fD1wcsaLk+ z0i#pdpHb?b-oSp?$od1O7G9>eNmwKY?t(jIMK5Q_Hgj~`nu(L%lNHA%vZ)d}>*l^7 z3TaD8!7m9L@SbIn6`_wH2#q_`5MgM_AzN#$)+`j?FeZj{THtAPALN8_6Ic9Rhv0ws ztL7ich(B}2OmT?pu*;+RmmCJW=gmTV6~&z^rNuDoe48LIGA8HiDCtB z{id5FRNwQG-&g7%ex!3IhLB_@kC4cI5~A6By**w_A#5q1ezBcM#BZdBBKo|0niN&7 z(?yB-rdp@D_el|A?5stGQ0Qp|19nG+7oDale&lY(BNp^!8 zyYFzWL3qH7Bh#uo7_^ zN^p~=KBEr!{s}wbDv!ZPg6waMdwKBgKYXIfV7t3}0Xy5PHU6=crB9;D6KnkS<#S36 zfFzN%+d`qUb3%$v!N?ZFz#tc$S4~d)qJJzH_qbgN z|7`mCn`V};K(9|Dvwu@5g5FgVvU7nASg(&5j**|EgPiOs1o3Efe#; z4ib0XCw5H~@)pO1H8o(mge^!mB85L&NIMlC<}z-q!f{PY2O~?GY4pG57ZCoqgOUxu zJ`ud@X0~QGPF%90cj=>GRLz(J!Yg6k0z5;eq@mAse>48bu0|LvGfp*!_8g6!Q@zZ} znySU>Uwo@|n5j7^eSw)qdQ+fv2G6^b!d-nqre4u&QcitqqR z?z=wmHL~6DT}|bclkLb5#2i*a<zp1h`Kr{2uz{;KA zIiyEk#=(89&<&r^O9y(5*LWlqz89u4dR74A3eyEjp_lkxSn*={?WX|2nKMk1>-ND? z?B8(Wt?$CO%>LXe=qqL#t#y6|Rx1sA)|EwWHF80Q&`>4IK$T?e>%Azxo+rO#yD#ly{gP0aRP$Z+CNvFDP-5; zYrBr(gHeMaS4TT8$WH!udLlj)vv{atoV7PSmmUlO}7- zLXuH93HvnePq(`U;yriyFGXW$DIT*O?Kr<=NSjANpkqJM@EB{6!Y|6=W3e>`CRj^& zPVCDcvR+#A()!nQ#yngTL|^Pw=3q3^O(Ntu*uT5`k>G-xI{9A~%h~C3jE+~OsjOm~ zM89-dYuLX0iXX@XHoOAXKPI91blU8k+0WZ;w%GI3M38saJnBx1?NYrwOjg5YvfJDA zrbr4nnH?1~CVQwKsXaZoGW7I0M`0GhOw=HwU@4bR_hKv#M*7yex`quA_VD+1?GlEc z<(U<5z4K=V1#WWzGqoApuiA{gO zJO*C4cp>*5mq0hk#`hfjG@9B&41C)Q!!-=P5C(D-JtZV#NROY`Ln{wfI~_<_96ZNC zPDp~;HJX)+YoQ6q?&C;zL#9QIjwTX`=e!%w7p@$0zNbIqKbnjNntW|LH9J5(BU}sT zh=kt^*Qpf&9`ljtvY#Y4HN(&M8|drwdC;G*<_wD^Q||PprCrqRO_dXj_$K%LEZhY@ zHJ$jyQuIWM5l@8j9U#z$^rM|<^BFYP^X9Rff;|7uie%7Y)h}j+_7cn`#(HdQLmC{a zeM4?WtCPrxKDYADlB?o^^)y+MLW5Xfyhy-^9ZUl1&I=xQ>LOwGpV{ht=kV)2W zl8NGS7NW&G;R9!QMJVGam6VHbBwbthq1gER$q`JXVnTdFQ)~|&o>FTd2wllm>whLv zdP{X&z9MrPeF!JK@vd^t;#8=-C2*)W}8SkaHa{^)PucwK#Spsxo|K4 zLNx|YiwVjbGLpRT7rBS_)Ue=uG)ew3)=2Z!ITiEQF<0-_#u4EL z^f#=3`mfIt)^5b_8N5bRux(QZ`C>NDJg?&E036Cu%QUX)}v zFtnB&n>5A_pwov$NX+(r)V|h{+OL+oFq+C=VPISJaU-nrd(>Cs+=CLjJ!RF0j>_*MbZld>2ii0K z^3^Ep{kYd~Pgws~?8Hb}{Jg3`ImCgUViksN^+AEZ&!>Yz6^+6~`b-H>b|jm^yM#{I zSO2+FektGRF7j5Kb_mY@LEX+9hg@0ir;ac?q+~`hel^NV3y!e3LfzFDSrX5&y1Xt( zSgCS6tsvI42q_@gNJwoG18AQMerr-E;8vvlQG;Pc4dCx;;uCuYPrfNp`L3QfZQ4JM zSaCis*=&~GS{o)^6$#5q_AY_ToyR4r8tmO?&Rd*>R@^BNgsBd=#Qg2&CA=G9YU=j5 zfgpLyLy&PVnrC_9{O|sakLQS>cN!3o%Yqq?+^S!F$d7q&i-jlKoEHd0?=&i{h7p@6F#HF9c##xPgwP*lwr70;p zn9Iz_Aiq+h4bv?u9P{@;=axD9_6VCc!iShS%EG>X3IBPFf|`=?+s$pNx&h)1bZtsH zfp+rYerUEb-k;|2hkBGvj>7-T67e7&T{Ti@$|QwPdSKh4`l(PM-?u1dYU!2L>eEM7 z@zu4bTKfbrGn4nTo32y-cFjz7JR9~G&Zdit=W^l~`Bz=0XGUtZpeE!x#-pRb60-4J zUqw`nEQL7~w2=I2v^7*8;r(#Fz7N9L{H~~Cle2>sZ@AOEF%t!%QEia~53Dg5R9fWF z6P_I6+XYL46?%^45YLR9{6e*T3z)xhzFjk$=Jf*r%@mku*KkSpaeP+ZuF1pcp}Lt> zR|kHDI8oZ;z((+rc>vN#8h5q}%jscrY ziZL1MgTEBG1O9a5sT~-?dDB$-7YZAZyZt$4qQ}yVpPX6d?rMH-pfgD+IhPJGZi;YI zLcJ6~-GV6~+?14$Cqu?UbuYc(+!9m@Ra{3^APbsU_hb^`o}T+%7GNplD??+GE`BFq9mG=g{LuoC$Lnj>s$hW zq+QHc5i{&Hw0aB+MN23-of)gPxR?9sIKP8fq%DQlJo&t0a}gQpqHn zNo`HyU@(W0Sfb~`oZzy`wg5pk1WRXX80e|$oNx^z^%@>gis`|~ymW${oW35)^mPKw z9x&DofR@-WZIPfcFfizX4*rGT!r}pdUl_zub+jyoIUym%i5rWEDTANH8$8ItWRZDv zOrJav0X=c@ZdP?B3SXB0dU6tXQU}ruMWz8Vh9t1lr#ATO>J1tU+8TZ^J(4Ah^#l2sM>y1&4H zHM?x3wu$Kr<>NLjf=4+^IYX5M8D>X7b@1I5z4lB~DNJU*3EVWAo8$t7F`D=_8xP8F z{fhR!0v+Yr@HW-q&iQ{H?u-WG)=Ig}L_FlMS>ikg)ZKB)omPSPUfe_0T^2J3@Ilbo zw>qr*m}4y2*dGD4zRW^3<3!0mF-y1rAj1d)Z9f}*8N7O`L&+uASCZ|Ghe{U`uW;~q zr;@^FeI{ZKjF7nQ&R4+qTd4X<--!01C=txB%fUeUi^wKC4ANQuqhn4~`mT|_TN^;>{Zx;Q|7gpugA(%e zTZh{DNC1m}zqC83O?n`>e%Nf*gc#!HLYTpN8Y}_A*OQ&FJVWy;i9)MsVWfXJFd$YBnxis|>aZ`zYoi;p(TgLs@bOzJh@r+%R>Fj^q6Vw;ZSn3*S_?$2A8-s zA2BJ?($(Ng6Yt-yCFP7=gKBww#;gWh!(zjj8jk+Q zpwt4;q4>Pd?W1?aId?TS@D%wR`

rB+J6DTG6TD07}61UbaWK;s%pZ8~te^jY4iT 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 PMn%h^IUIG5Uy}b1*KoQd delta 462124 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

H^jdYIidGd)KEAXL^$Bq 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∋oqM7fe&bUM97W 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 Date: Sat, 22 Apr 2023 08:29:40 -0500 Subject: [PATCH 37/82] Descriptor HowTo: Update to include attributes added in Python 3.10 (GH-103666) --- Doc/howto/descriptor.rst | 98 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 8 deletions(-) diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst index 74710d9b3fc2edc..3688c47f0d6ec9e 100644 --- a/Doc/howto/descriptor.rst +++ b/Doc/howto/descriptor.rst @@ -1273,11 +1273,14 @@ Using the non-data descriptor protocol, a pure Python version of .. testcode:: + import functools + class StaticMethod: "Emulate PyStaticMethod_Type() in Objects/funcobject.c" def __init__(self, f): self.f = f + functools.update_wrapper(self, f) def __get__(self, obj, objtype=None): return self.f @@ -1285,13 +1288,19 @@ Using the non-data descriptor protocol, a pure Python version of def __call__(self, *args, **kwds): return self.f(*args, **kwds) +The :func:`functools.update_wrapper` call adds a ``__wrapped__`` attribute +that refers to the underlying function. Also it carries forward +the attributes necessary to make the wrapper look like the wrapped +function: ``__name__``, ``__qualname__``, ``__doc__``, and ``__annotations__``. + .. testcode:: :hide: class E_sim: @StaticMethod - def f(x): - return x * 10 + def f(x: int) -> str: + "Simple function example" + return "!" * x wrapped_ord = StaticMethod(ord) @@ -1299,11 +1308,51 @@ Using the non-data descriptor protocol, a pure Python version of :hide: >>> E_sim.f(3) - 30 + '!!!' >>> E_sim().f(3) - 30 + '!!!' + + >>> sm = vars(E_sim)['f'] + >>> type(sm).__name__ + 'StaticMethod' + >>> f = E_sim.f + >>> type(f).__name__ + 'function' + >>> sm.__name__ + 'f' + >>> f.__name__ + 'f' + >>> sm.__qualname__ + 'E_sim.f' + >>> f.__qualname__ + 'E_sim.f' + >>> sm.__doc__ + 'Simple function example' + >>> f.__doc__ + 'Simple function example' + >>> sm.__annotations__ + {'x': , 'return': } + >>> f.__annotations__ + {'x': , 'return': } + >>> sm.__module__ == f.__module__ + True + >>> sm(3) + '!!!' + >>> f(3) + '!!!' + >>> wrapped_ord('A') 65 + >>> wrapped_ord.__module__ == ord.__module__ + True + >>> wrapped_ord.__wrapped__ == ord + True + >>> wrapped_ord.__name__ == ord.__name__ + True + >>> wrapped_ord.__qualname__ == ord.__qualname__ + True + >>> wrapped_ord.__doc__ == ord.__doc__ + True Class methods @@ -1359,11 +1408,14 @@ Using the non-data descriptor protocol, a pure Python version of .. testcode:: + import functools + class ClassMethod: "Emulate PyClassMethod_Type() in Objects/funcobject.c" def __init__(self, f): self.f = f + functools.update_wrapper(self, f) def __get__(self, obj, cls=None): if cls is None: @@ -1380,8 +1432,9 @@ Using the non-data descriptor protocol, a pure Python version of # Verify the emulation works class T: @ClassMethod - def cm(cls, x, y): - return (cls, x, y) + def cm(cls, x: int, y: str) -> tuple[str, int, str]: + "Class method that returns a tuple" + return (cls.__name__, x, y) @ClassMethod @property @@ -1393,17 +1446,40 @@ Using the non-data descriptor protocol, a pure Python version of :hide: >>> T.cm(11, 22) - (, 11, 22) + ('T', 11, 22) # Also call it from an instance >>> t = T() >>> t.cm(11, 22) - (, 11, 22) + ('T', 11, 22) # Check the alternate path for chained descriptors >>> T.__doc__ "A doc for 'T'" + # Verify that T uses our emulation + >>> type(vars(T)['cm']).__name__ + 'ClassMethod' + + # Verify that update_wrapper() correctly copied attributes + >>> T.cm.__name__ + 'cm' + >>> T.cm.__qualname__ + 'T.cm' + >>> T.cm.__doc__ + 'Class method that returns a tuple' + >>> T.cm.__annotations__ + {'x': , 'y': , 'return': tuple[str, int, str]} + + # Verify that __wrapped__ was added and works correctly + >>> f = vars(T)['cm'].__wrapped__ + >>> type(f).__name__ + 'function' + >>> f.__name__ + 'cm' + >>> f(T, 11, 22) + ('T', 11, 22) + The code path for ``hasattr(type(self.f), '__get__')`` was added in Python 3.9 and makes it possible for :func:`classmethod` to support @@ -1423,6 +1499,12 @@ chained together. In Python 3.11, this functionality was deprecated. >>> G.__doc__ "A doc for 'G'" +The :func:`functools.update_wrapper` call in ``ClassMethod`` adds a +``__wrapped__`` attribute that refers to the underlying function. Also +it carries forward the attributes necessary to make the wrapper look +like the wrapped function: ``__name__``, ``__qualname__``, ``__doc__``, +and ``__annotations__``. + Member objects and __slots__ ---------------------------- From e5eaac6064561c8f7643011a31fa506e78330798 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 22 Apr 2023 09:18:25 -0500 Subject: [PATCH 38/82] GH-103475: cache() and lru_cache() do not have a "call once" guarantee (GH-103669) --- Doc/library/functools.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst index d1289ce836210a4..29cbc87bf66d122 100644 --- a/Doc/library/functools.rst +++ b/Doc/library/functools.rst @@ -49,8 +49,13 @@ The :mod:`functools` module defines the following functions: >>> factorial(12) # makes two new recursive calls, the other 10 are cached 479001600 - The cache is threadsafe so the wrapped function can be used in multiple - threads. + The cache is threadsafe so that the wrapped function can be used in + multiple threads. This means that the underlying data structure will + remain coherent during concurrent updates. + + It is possible for the wrapped function to be called more than once if + another thread makes an additional call before the initial call has been + completed and cached. .. versionadded:: 3.9 @@ -158,8 +163,13 @@ The :mod:`functools` module defines the following functions: *maxsize* most recent calls. It can save time when an expensive or I/O bound function is periodically called with the same arguments. - The cache is threadsafe so the wrapped function can be used in multiple - threads. + The cache is threadsafe so that the wrapped function can be used in + multiple threads. This means that the underlying data structure will + remain coherent during concurrent updates. + + It is possible for the wrapped function to be called more than once if + another thread makes an additional call before the initial call has been + completed and cached. Since a dictionary is used to cache results, the positional and keyword arguments to the function must be :term:`hashable`. From caed49448d195565940caf198cf0edda65ee5679 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Sat, 22 Apr 2023 11:24:47 -0300 Subject: [PATCH 39/82] GH-103484: Fix broken links reported by linkcheck (#103608) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Doc: Fix broken links reported by linkcheck * Apply suggestions from code review - Remove extra diff line in faq/library.rst (merwok) - Use HTTPS to link Unicode 15.0.0 to solve a redirect (hugovk) - Use wayback machine link for openssl 1.1.0 instead of linking 1.1.1, "as this text mentions a feature from 1.1.0" (hugovk) Co-authored-by: Éric Co-authored-by: Hugo van Kemenade * Doc: Make mark-up code as literal * Doc: Alphabetize items in linkcheck_ignore Co-authored-by: Hugo van Kemenade * Doc: Improve comment in sphinx conf Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --------- Co-authored-by: Éric Co-authored-by: Hugo van Kemenade Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- Doc/conf.py | 18 ++++++++++++++++++ Doc/distributing/index.rst | 12 ++++-------- Doc/faq/library.rst | 2 +- Doc/howto/functional.rst | 4 ++-- Doc/howto/urllib2.rst | 4 ++-- Doc/library/readline.rst | 2 +- Doc/library/stdtypes.rst | 17 +++++++++-------- Doc/library/zipfile.rst | 2 +- Doc/whatsnew/2.6.rst | 2 +- Doc/whatsnew/2.7.rst | 2 +- Misc/NEWS.d/3.7.0b2.rst | 2 +- Misc/NEWS.d/3.8.0a1.rst | 2 +- Misc/NEWS.d/3.9.0a1.rst | 2 +- Misc/NEWS.d/3.9.0a2.rst | 2 +- Misc/NEWS.d/3.9.0a4.rst | 2 +- 15 files changed, 45 insertions(+), 30 deletions(-) diff --git a/Doc/conf.py b/Doc/conf.py index 60404fd3829e5b5..4c120bee64dde4c 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -263,6 +263,24 @@ r'/~https://github.com/python/cpython/tree/.*': '/~https://github.com/python/cpython/blob/.*' } +linkcheck_anchors_ignore = [ + # ignore anchors that start with a '/', e.g. Wikipedia media files: + # https://en.wikipedia.org/wiki/Walrus#/media/File:Pacific_Walrus_-_Bull_(8247646168).jpg + r'\/.*', +] + +linkcheck_ignore = [ + # The crawler gets "Anchor not found" + r'https://developer.apple.com/documentation/.+?#.*', + r'https://devguide.python.org.+?/#.*', + r'https://github.com.+?#.*', + # Robot crawlers not allowed: "403 Client Error: Forbidden" + r'https://support.enthought.com/hc/.*', + # SSLError CertificateError, even though it is valid + r'https://unix.org/version2/whatsnew/lp64_wp.html', +] + + # Options for extensions # ---------------------- diff --git a/Doc/distributing/index.rst b/Doc/distributing/index.rst index 21389adedf9c154..d237f8f082d87ba 100644 --- a/Doc/distributing/index.rst +++ b/Doc/distributing/index.rst @@ -129,14 +129,10 @@ involved in creating and publishing a project: * `Uploading the project to the Python Package Index`_ * `The .pypirc file`_ -.. _Project structure: \ - https://packaging.python.org/tutorials/packaging-projects/#packaging-python-projects -.. _Building and packaging the project: \ - https://packaging.python.org/tutorials/packaging-projects/#creating-the-package-files -.. _Uploading the project to the Python Package Index: \ - https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives -.. _The .pypirc file: \ - https://packaging.python.org/specifications/pypirc/ +.. _Project structure: https://packaging.python.org/tutorials/packaging-projects/#packaging-python-projects +.. _Building and packaging the project: https://packaging.python.org/tutorials/packaging-projects/#creating-the-package-files +.. _Uploading the project to the Python Package Index: https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives +.. _The .pypirc file: https://packaging.python.org/specifications/pypirc/ How do I...? diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst index a9cde456575020f..597caaa778e1c82 100644 --- a/Doc/faq/library.rst +++ b/Doc/faq/library.rst @@ -780,7 +780,7 @@ socket to :meth:`select.select` to check if it's writable. The :mod:`asyncio` module provides a general purpose single-threaded and concurrent asynchronous library, which can be used for writing non-blocking network code. - The third-party `Twisted `_ library is + The third-party `Twisted `_ library is a popular and feature-rich alternative. diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst index 38a651b0f964a6b..5cf12cc52bde4e6 100644 --- a/Doc/howto/functional.rst +++ b/Doc/howto/functional.rst @@ -1208,8 +1208,8 @@ General ------- **Structure and Interpretation of Computer Programs**, by Harold Abelson and -Gerald Jay Sussman with Julie Sussman. Full text at -https://mitpress.mit.edu/sicp/. In this classic textbook of computer science, +Gerald Jay Sussman with Julie Sussman. The book can be found at +https://mitpress.mit.edu/sicp. In this classic textbook of computer science, chapters 2 and 3 discuss the use of sequences and streams to organize the data flow inside a program. The book uses Scheme for its examples, but many of the design approaches described in these chapters are applicable to functional-style diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 69af3c3a85c5d6c..61ba6bd7224fcce 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -86,7 +86,7 @@ response:: import urllib.request - req = urllib.request.Request('http://www.voidspace.org.uk') + req = urllib.request.Request('http://python.org/') with urllib.request.urlopen(req) as response: the_page = response.read() @@ -458,7 +458,7 @@ To illustrate creating and installing a handler we will use the ``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- including an explanation of how Basic Authentication works - see the `Basic Authentication Tutorial -`_. +`__. When authentication is required, the server sends a header (as well as the 401 error code) requesting authentication. This specifies the authentication scheme diff --git a/Doc/library/readline.rst b/Doc/library/readline.rst index 4d485d25b540209..8fb0eca8df74d89 100644 --- a/Doc/library/readline.rst +++ b/Doc/library/readline.rst @@ -19,7 +19,7 @@ function. Readline keybindings may be configured via an initialization file, typically ``.inputrc`` in your home directory. See `Readline Init File -`_ +`_ in the GNU Readline manual for information about the format and allowable constructs of that file, and the capabilities of the Readline library in general. diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index bcfc6e5cfce6117..aea2410bae354b5 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -1605,8 +1605,8 @@ expression support in the :mod:`re` module). converts it to ``"ss"``. The casefolding algorithm is - `described in section 3.13 of the Unicode Standard - `__. + `described in section 3.13 'Default Case Folding' of the Unicode Standard + `__. .. versionadded:: 3.3 @@ -1768,8 +1768,9 @@ expression support in the :mod:`re` module). one character, ``False`` otherwise. Alphabetic characters are those characters defined in the Unicode character database as "Letter", i.e., those with general category property being one of "Lm", "Lt", "Lu", "Ll", or "Lo". Note that this is different - from the `Alphabetic property defined in the Unicode Standard - `_. + from the `Alphabetic property defined in the section 4.10 'Letters, Alphabetic, and + Ideographic' of the Unicode Standard + `_. .. method:: str.isascii() @@ -1904,8 +1905,8 @@ expression support in the :mod:`re` module). lowercase. The lowercasing algorithm used is - `described in section 3.13 of the Unicode Standard - `__. + `described in section 3.13 'Default Case Folding' of the Unicode Standard + `__. .. method:: str.lstrip([chars]) @@ -2250,8 +2251,8 @@ expression support in the :mod:`re` module). titlecase). The uppercasing algorithm used is - `described in section 3.13 of the Unicode Standard - `__. + `described in section 3.13 'Default Case Folding' of the Unicode Standard + `__. .. method:: str.zfill(width) diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index e2a085d6e98e670..6f4826cb065c64a 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -7,7 +7,7 @@ .. moduleauthor:: James C. Ahlstrom .. sectionauthor:: James C. Ahlstrom -**Source code:** :source:`Lib/zipfile.py` +**Source code:** :source:`Lib/zipfile/` -------------- diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst index 34f2656f765c7df..4ee2aacb108a36c 100644 --- a/Doc/whatsnew/2.6.rst +++ b/Doc/whatsnew/2.6.rst @@ -172,7 +172,7 @@ this edition of "What's New in Python" links to the bug/patch item for each change. Hosting of the Python bug tracker is kindly provided by -`Upfront Systems `__ +`Upfront Systems `__ of Stellenbosch, South Africa. Martin von Löwis put a lot of effort into importing existing bugs and patches from SourceForge; his scripts for this import operation are at diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst index 810a2cd2537c343..36afcb163f1afc8 100644 --- a/Doc/whatsnew/2.7.rst +++ b/Doc/whatsnew/2.7.rst @@ -2104,7 +2104,7 @@ Changes to Python's build process and to the C API include: * The latest release of the GNU Debugger, GDB 7, can be `scripted using Python - `__. + `__. When you begin debugging an executable program P, GDB will look for a file named ``P-gdb.py`` and automatically read it. Dave Malcolm contributed a :file:`python-gdb.py` that adds a number of diff --git a/Misc/NEWS.d/3.7.0b2.rst b/Misc/NEWS.d/3.7.0b2.rst index b2ade206bd5f970..9590914599bb86d 100644 --- a/Misc/NEWS.d/3.7.0b2.rst +++ b/Misc/NEWS.d/3.7.0b2.rst @@ -357,7 +357,7 @@ Wirtel Add TLSVersion constants and SSLContext.maximum_version / minimum_version attributes. The new API wraps OpenSSL 1.1 -https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html +https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html feature. .. diff --git a/Misc/NEWS.d/3.8.0a1.rst b/Misc/NEWS.d/3.8.0a1.rst index 991bbc128670b25..db2eba32e6ea341 100644 --- a/Misc/NEWS.d/3.8.0a1.rst +++ b/Misc/NEWS.d/3.8.0a1.rst @@ -5951,7 +5951,7 @@ Wirtel Add TLSVersion constants and SSLContext.maximum_version / minimum_version attributes. The new API wraps OpenSSL 1.1 -https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html +https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html feature. .. diff --git a/Misc/NEWS.d/3.9.0a1.rst b/Misc/NEWS.d/3.9.0a1.rst index 633620583838df2..0888a5c43087b58 100644 --- a/Misc/NEWS.d/3.9.0a1.rst +++ b/Misc/NEWS.d/3.9.0a1.rst @@ -4887,7 +4887,7 @@ Fix use of registry values to launch Python from Microsoft Store app. .. section: Windows Fix memory leak on Windows in creating an SSLContext object or running -urllib.request.urlopen('https://...'). +``urllib.request.urlopen('https://...')``. .. diff --git a/Misc/NEWS.d/3.9.0a2.rst b/Misc/NEWS.d/3.9.0a2.rst index 226ea0d3df22436..a03eb10f1d523af 100644 --- a/Misc/NEWS.d/3.9.0a2.rst +++ b/Misc/NEWS.d/3.9.0a2.rst @@ -686,7 +686,7 @@ added. Update documentation to state that to activate virtual environments under fish one should use `source`, not `.` as documented at -https://fishshell.com/docs/current/commands.html#source. +https://fishshell.com/docs/current/cmds/source.html. .. diff --git a/Misc/NEWS.d/3.9.0a4.rst b/Misc/NEWS.d/3.9.0a4.rst index 2aef8b26b01696d..019b34c4082d10a 100644 --- a/Misc/NEWS.d/3.9.0a4.rst +++ b/Misc/NEWS.d/3.9.0a4.rst @@ -392,7 +392,7 @@ The distutils ``bdist_msi`` command is deprecated in Python 3.9, use Improved performance of zipfile.Path for files with a large number of entries. Also improved performance and fixed minor issue as published with `importlib_metadata 1.5 -`_. +`_. .. From 3d2a46845b67407e2436d910b2e1740c34f4f10d Mon Sep 17 00:00:00 2001 From: Eric Wieser Date: Sat, 22 Apr 2023 17:32:47 +0100 Subject: [PATCH 40/82] gh-83791: Raise TypeError for len(memoryview_0d) (#18463) Changes the behaviour of `len` on a zero-dimensional `memoryview` to raise `TypeError`. Previously, `len` would return `1`. --- Doc/library/stdtypes.rst | 15 +++++++----- Lib/test/test_buffer.py | 6 +++-- Lib/test/test_ctypes/test_pep3118.py | 24 +++++++++---------- .../2020-02-11-15-54-40.bpo-39610.fvgsCl.rst | 2 ++ Objects/memoryobject.c | 6 ++++- 5 files changed, 31 insertions(+), 22 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-02-11-15-54-40.bpo-39610.fvgsCl.rst diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index aea2410bae354b5..2360472b31f175e 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -3715,12 +3715,15 @@ copying. types such as :class:`bytes` and :class:`bytearray`, an element is a single byte, but other types such as :class:`array.array` may have bigger elements. - ``len(view)`` is equal to the length of :class:`~memoryview.tolist`. - If ``view.ndim = 0``, the length is 1. If ``view.ndim = 1``, the length - is equal to the number of elements in the view. For higher dimensions, - the length is equal to the length of the nested list representation of - the view. The :class:`~memoryview.itemsize` attribute will give you the - number of bytes in a single element. + ``len(view)`` is equal to the length of :class:`~memoryview.tolist`, which + is the nested list representation of the view. If ``view.ndim = 1``, + this is equal to the number of elements in the view. + + .. versionchanged:: 3.12 + If ``view.ndim == 0``, ``len(view)`` now raises :exc:`TypeError` instead of returning 1. + + The :class:`~memoryview.itemsize` attribute will give you the number of + bytes in a single element. A :class:`memoryview` supports slicing and indexing to expose its data. One-dimensional slicing will result in a subview:: diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index 8ac3b7e7eb29d13..098d2d999643cb2 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -965,8 +965,10 @@ def check_memoryview(m, expected_readonly=readonly): self.assertEqual(m.strides, tuple(strides)) self.assertEqual(m.suboffsets, tuple(suboffsets)) - n = 1 if ndim == 0 else len(lst) - self.assertEqual(len(m), n) + if ndim == 0: + self.assertRaises(TypeError, len, m) + else: + self.assertEqual(len(m), len(lst)) rep = result.tolist() if fmt else result.tobytes() self.assertEqual(rep, lst) diff --git a/Lib/test/test_ctypes/test_pep3118.py b/Lib/test/test_ctypes/test_pep3118.py index c8a70e3e3356933..038161745df9053 100644 --- a/Lib/test/test_ctypes/test_pep3118.py +++ b/Lib/test/test_ctypes/test_pep3118.py @@ -28,7 +28,7 @@ def test_native_types(self): if shape: self.assertEqual(len(v), shape[0]) else: - self.assertEqual(len(v) * sizeof(itemtp), sizeof(ob)) + self.assertRaises(TypeError, len, v) self.assertEqual(v.itemsize, sizeof(itemtp)) self.assertEqual(v.shape, shape) # XXX Issue #12851: PyCData_NewGetBuffer() must provide strides @@ -39,11 +39,10 @@ def test_native_types(self): # they are always read/write self.assertFalse(v.readonly) - if v.shape: - n = 1 - for dim in v.shape: - n = n * dim - self.assertEqual(n * v.itemsize, len(v.tobytes())) + n = 1 + for dim in v.shape: + n = n * dim + self.assertEqual(n * v.itemsize, len(v.tobytes())) except: # so that we can see the failing type print(tp) @@ -58,7 +57,7 @@ def test_endian_types(self): if shape: self.assertEqual(len(v), shape[0]) else: - self.assertEqual(len(v) * sizeof(itemtp), sizeof(ob)) + self.assertRaises(TypeError, len, v) self.assertEqual(v.itemsize, sizeof(itemtp)) self.assertEqual(v.shape, shape) # XXX Issue #12851 @@ -67,11 +66,10 @@ def test_endian_types(self): # they are always read/write self.assertFalse(v.readonly) - if v.shape: - n = 1 - for dim in v.shape: - n = n * dim - self.assertEqual(n, len(v)) + n = 1 + for dim in v.shape: + n = n * dim + self.assertEqual(n * v.itemsize, len(v.tobytes())) except: # so that we can see the failing type print(tp) @@ -243,7 +241,7 @@ class LEPoint(LittleEndianStructure): # endian_types = [ (BEPoint, "T{>l:x:>l:y:}".replace('l', s_long), (), BEPoint), - (LEPoint, "T{l:x:>l:y:}".replace('l', s_long), (), POINTER(BEPoint)), (POINTER(LEPoint), "&T{view.ndim == 0 ? 1 : self->view.shape[0]; + if (self->view.ndim == 0) { + PyErr_SetString(PyExc_TypeError, "0-dim memory has no length"); + return -1; + } + return self->view.shape[0]; } /* As mapping */ From 916de04fd1838530096336aadb3b94b774ed6c90 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 22 Apr 2023 13:52:51 -0400 Subject: [PATCH 41/82] gh-103661: Apply bugfix from importlib_metadata 6.5.1 and restore test. (#103681) --- Lib/importlib/metadata/__init__.py | 26 +++++++++++--------- Lib/test/test_importlib/test_metadata_api.py | 13 +--------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index b8eb19d05dccaeb..82e0ce1b281c54c 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -516,27 +516,29 @@ def _read_files_egginfo_installed(self): """ Read installed-files.txt and return lines in a similar CSV-parsable format as RECORD: each file must be placed - relative to the site-packages directory, and must also be + relative to the site-packages directory and must also be quoted (since file names can contain literal commas). This file is written when the package is installed by pip, but it might not be written for other installation methods. - Hence, even if we can assume that this file is accurate - when it exists, we cannot assume that it always exists. + Assume the file is accurate if it exists. """ text = self.read_text('installed-files.txt') - # We need to prepend the .egg-info/ subdir to the lines in this file. - # But this subdir is only available in the PathDistribution's self._path - # which is not easily accessible from this base class... + # Prepend the .egg-info/ subdir to the lines in this file. + # But this subdir is only available from PathDistribution's + # self._path. subdir = getattr(self, '_path', None) if not text or not subdir: return - with contextlib.suppress(Exception): - ret = [ - str((subdir / line).resolve().relative_to(self.locate_file(''))) - for line in text.splitlines() - ] - return map('"{}"'.format, ret) + + paths = ( + (subdir / name) + .resolve() + .relative_to(self.locate_file('').resolve()) + .as_posix() + for name in text.splitlines() + ) + return map('"{}"'.format, paths) def _read_files_egginfo_sources(self): """ diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index d9027861848efc1..33c6e85ee947535 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -76,23 +76,12 @@ def test_for_top_level(self): expect_content, ) - @staticmethod - def _workaround_103661(tests): - """ - Skip failing test for now is it's failing on buildbot workers. - See /~https://github.com/python/cpython/issues/103661. - """ - import platform - if platform.system() == 'Windows': - tests.remove(('egg_with_no_modules-pkg', '\n')) - return tests - def test_read_text(self): tests = [ ('egginfo-pkg', 'mod\n'), ('egg_with_no_modules-pkg', '\n'), ] - for pkg_name, expect_content in self._workaround_103661(tests): + for pkg_name, expect_content in tests: with self.subTest(pkg_name): top_level = [ path for path in files(pkg_name) if path.name == 'top_level.txt' From ea2c0016502472aa8baa3149050ada776d17a009 Mon Sep 17 00:00:00 2001 From: Eddie Elizondo Date: Sat, 22 Apr 2023 15:39:37 -0400 Subject: [PATCH 42/82] gh-84436: Implement Immortal Objects (gh-19474) This is the implementation of PEP683 Motivation: The PR introduces the ability to immortalize instances in CPython which bypasses reference counting. Tagging objects as immortal allows up to skip certain operations when we know that the object will be around for the entire execution of the runtime. Note that this by itself will bring a performance regression to the runtime due to the extra reference count checks. However, this brings the ability of having truly immutable objects that are useful in other contexts such as immutable data sharing between sub-interpreters. --- Doc/library/sys.rst | 7 + Doc/whatsnew/3.12.rst | 21 ++- Include/boolobject.h | 7 +- Include/cpython/unicodeobject.h | 17 ++- .../pycore_global_objects_fini_generated.h | 6 +- Include/internal/pycore_long.h | 2 +- Include/internal/pycore_object.h | 48 +++++-- Include/internal/pycore_runtime_init.h | 14 +- Include/internal/pycore_unicodeobject.h | 1 + Include/object.h | 133 ++++++++++++++++-- Include/pyport.h | 1 - Lib/test/_test_embed_structseq.py | 40 +++--- Lib/test/libregrtest/refleak.py | 14 +- Lib/test/test_builtin.py | 24 +++- Lib/test/test_ctypes/test_python_api.py | 3 +- Lib/test/test_sys.py | 3 +- Lib/test/test_venv.py | 12 +- ...3-04-02-22-14-57.gh-issue-84436.hvMgwF.rst | 3 + Modules/gcmodule.c | 15 +- Objects/boolobject.c | 10 +- Objects/bytes_methods.c | 9 +- Objects/longobject.c | 26 +++- Objects/object.c | 32 +++-- Objects/setobject.c | 5 +- Objects/sliceobject.c | 15 +- Objects/typeobject.c | 16 --- Objects/unicodeobject.c | 101 ++++++++----- Programs/_testembed.c | 3 +- Python/ceval.c | 10 +- Python/clinic/sysmodule.c.h | 30 +++- Python/instrumentation.c | 4 +- Python/legacy_tracing.c | 2 +- Python/pylifecycle.c | 5 - Python/sysmodule.c | 13 ++ Tools/build/deepfreeze.py | 2 +- 35 files changed, 483 insertions(+), 171 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2023-04-02-22-14-57.gh-issue-84436.hvMgwF.rst diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index e37d57edce515f4..7324f3113e0a08f 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -670,6 +670,13 @@ always available. .. versionadded:: 3.4 +.. function:: getunicodeinternedsize() + + Return the number of unicode objects that have been interned. + + .. versionadded:: 3.12 + + .. function:: getandroidapilevel() Return the build time API version of Android as an integer. diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index f9406653e625b51..b98b7151a321ea2 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -1129,6 +1129,24 @@ New Features to replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit Katriel in :gh:`102755`). +* :pep:`683`: Introduced Immortal Objects to Python which allows objects + to bypass reference counts and introduced changes to the C-API: + + - ``_Py_IMMORTAL_REFCNT``: The reference count that defines an object + as immortal. + - ``_Py_IsImmortal`` Checks if an object has the immortal reference count. + - ``PyObject_HEAD_INIT`` This will now initialize reference count to + ``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``. + - ``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects + that are immortal. + - ``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode + objects that are immortal and static + - ``sys.getunicodeinternedsize`` This returns the total number of unicode + objects that have been interned. This is now needed for refleak.py to + correctly track reference counts and allocated blocks + + (Contributed by Eddie Elizondo in :gh:`84436`.) + Porting to Python 3.12 ---------------------- @@ -1293,8 +1311,7 @@ Removed * :c:func:`!PyUnicode_GetSize` * :c:func:`!PyUnicode_GET_DATA_SIZE` -* Remove the ``PyUnicode_InternImmortal()`` function and the - ``SSTATE_INTERNED_IMMORTAL`` macro. +* Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by Victor Stinner in :gh:`85858`.) * Remove ``Jython`` compatibility hacks from several stdlib modules and tests. diff --git a/Include/boolobject.h b/Include/boolobject.h index ca21fbfad8e8277..976fa35201d035d 100644 --- a/Include/boolobject.h +++ b/Include/boolobject.h @@ -11,8 +11,7 @@ PyAPI_DATA(PyTypeObject) PyBool_Type; #define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) -/* Py_False and Py_True are the only two bools in existence. -Don't forget to apply Py_INCREF() when returning either!!! */ +/* Py_False and Py_True are the only two bools in existence. */ /* Don't use these directly */ PyAPI_DATA(PyLongObject) _Py_FalseStruct; @@ -31,8 +30,8 @@ PyAPI_FUNC(int) Py_IsFalse(PyObject *x); #define Py_IsFalse(x) Py_Is((x), Py_False) /* Macros for returning Py_True or Py_False, respectively */ -#define Py_RETURN_TRUE return Py_NewRef(Py_True) -#define Py_RETURN_FALSE return Py_NewRef(Py_False) +#define Py_RETURN_TRUE return Py_True +#define Py_RETURN_FALSE return Py_False /* Function to return a bool from a C long */ PyAPI_FUNC(PyObject *) PyBool_FromLong(long); diff --git a/Include/cpython/unicodeobject.h b/Include/cpython/unicodeobject.h index 75a74ffa2f9dff5..3394726dfffd72e 100644 --- a/Include/cpython/unicodeobject.h +++ b/Include/cpython/unicodeobject.h @@ -98,9 +98,16 @@ typedef struct { Py_ssize_t length; /* Number of code points in the string */ Py_hash_t hash; /* Hash value; -1 if not set */ struct { - /* If interned is set, the two references from the - dictionary to this object are *not* counted in ob_refcnt. */ - unsigned int interned:1; + /* If interned is non-zero, the two references from the + dictionary to this object are *not* counted in ob_refcnt. + The possible values here are: + 0: Not Interned + 1: Interned + 2: Interned and Immortal + 3: Interned, Immortal, and Static + This categorization allows the runtime to determine the right + cleanup mechanism at runtime shutdown. */ + unsigned int interned:2; /* Character size: - PyUnicode_1BYTE_KIND (1): @@ -135,7 +142,7 @@ typedef struct { unsigned int ascii:1; /* Padding to ensure that PyUnicode_DATA() is always aligned to 4 bytes (see issue #19537 on m68k). */ - unsigned int :26; + unsigned int :25; } state; } PyASCIIObject; @@ -183,6 +190,8 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency( /* Interning state. */ #define SSTATE_NOT_INTERNED 0 #define SSTATE_INTERNED_MORTAL 1 +#define SSTATE_INTERNED_IMMORTAL 2 +#define SSTATE_INTERNED_IMMORTAL_STATIC 3 /* Use only if you know it's a string */ static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { diff --git a/Include/internal/pycore_global_objects_fini_generated.h b/Include/internal/pycore_global_objects_fini_generated.h index 14dfd9ea5823ede..fdfa80bd7d424a7 100644 --- a/Include/internal/pycore_global_objects_fini_generated.h +++ b/Include/internal/pycore_global_objects_fini_generated.h @@ -8,15 +8,13 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_object.h" // _PyObject_IMMORTAL_REFCNT - #ifdef Py_DEBUG static inline void _PyStaticObject_CheckRefcnt(PyObject *obj) { - if (Py_REFCNT(obj) < _PyObject_IMMORTAL_REFCNT) { + if (Py_REFCNT(obj) < _Py_IMMORTAL_REFCNT) { _PyObject_ASSERT_FAILED_MSG(obj, "immortal object has less refcnt than expected " - "_PyObject_IMMORTAL_REFCNT"); + "_Py_IMMORTAL_REFCNT"); } } #endif diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index 137a0465d5ec606..fe86581e81f6b59 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -245,7 +245,7 @@ _PyLong_FlipSign(PyLongObject *op) { #define _PyLong_DIGIT_INIT(val) \ { \ - .ob_base = _PyObject_IMMORTAL_INIT(&PyLong_Type), \ + .ob_base = _PyObject_HEAD_INIT(&PyLong_Type) \ .long_value = { \ .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index b3d496ed6fc240c..2ca047846e09357 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -14,21 +14,25 @@ extern "C" { #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_runtime.h" // _PyRuntime -/* This value provides *effective* immortality, meaning the object should never - be deallocated (until runtime finalization). See PEP 683 for more details about - immortality, as well as a proposed mechanism for proper immortality. */ -#define _PyObject_IMMORTAL_REFCNT 999999999 - -#define _PyObject_IMMORTAL_INIT(type) \ - { \ - .ob_refcnt = _PyObject_IMMORTAL_REFCNT, \ - .ob_type = (type), \ - } -#define _PyVarObject_IMMORTAL_INIT(type, size) \ - { \ - .ob_base = _PyObject_IMMORTAL_INIT(type), \ - .ob_size = size, \ - } +/* We need to maintain an internal copy of Py{Var}Object_HEAD_INIT to avoid + designated initializer conflicts in C++20. If we use the deinition in + object.h, we will be mixing designated and non-designated initializers in + pycore objects which is forbiddent in C++20. However, if we then use + designated initializers in object.h then Extensions without designated break. + Furthermore, we can't use designated initializers in Extensions since these + are not supported pre-C++20. Thus, keeping an internal copy here is the most + backwards compatible solution */ +#define _PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + .ob_refcnt = _Py_IMMORTAL_REFCNT, \ + .ob_type = (type) \ + }, +#define _PyVarObject_HEAD_INIT(type, size) \ + { \ + .ob_base = _PyObject_HEAD_INIT(type) \ + .ob_size = size \ + }, PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( const char *func, @@ -61,9 +65,20 @@ static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) } #define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) +static inline void _Py_SetImmortal(PyObject *op) +{ + if (op) { + op->ob_refcnt = _Py_IMMORTAL_REFCNT; + } +} +#define _Py_SetImmortal(op) _Py_SetImmortal(_PyObject_CAST(op)) + static inline void _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) { + if (_Py_IsImmortal(op)) { + return; + } _Py_DECREF_STAT_INC(); #ifdef Py_REF_DEBUG _Py_DEC_REFTOTAL(_PyInterpreterState_GET()); @@ -82,6 +97,9 @@ _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) static inline void _Py_DECREF_NO_DEALLOC(PyObject *op) { + if (_Py_IsImmortal(op)) { + return; + } _Py_DECREF_STAT_INC(); #ifdef Py_REF_DEBUG _Py_DEC_REFTOTAL(_PyInterpreterState_GET()); diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h index 5b09a45e41cd84e..d8425b3199a89a4 100644 --- a/Include/internal/pycore_runtime_init.h +++ b/Include/internal/pycore_runtime_init.h @@ -76,13 +76,13 @@ extern PyTypeObject _PyExc_MemoryError; .latin1 = _Py_str_latin1_INIT, \ }, \ .tuple_empty = { \ - .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ + .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0) \ }, \ .hamt_bitmap_node_empty = { \ - .ob_base = _PyVarObject_IMMORTAL_INIT(&_PyHamt_BitmapNode_Type, 0) \ + .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0) \ }, \ .context_token_missing = { \ - .ob_base = _PyObject_IMMORTAL_INIT(&_PyContextTokenMissing_Type), \ + .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type) \ }, \ }, \ }, \ @@ -116,11 +116,11 @@ extern PyTypeObject _PyExc_MemoryError; .singletons = { \ ._not_used = 1, \ .hamt_empty = { \ - .ob_base = _PyObject_IMMORTAL_INIT(&_PyHamt_Type), \ + .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type) \ .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \ }, \ .last_resort_memory_error = { \ - _PyObject_IMMORTAL_INIT(&_PyExc_MemoryError), \ + _PyObject_HEAD_INIT(&_PyExc_MemoryError) \ }, \ }, \ }, \ @@ -138,7 +138,7 @@ extern PyTypeObject _PyExc_MemoryError; #define _PyBytes_SIMPLE_INIT(CH, LEN) \ { \ - _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, (LEN)), \ + _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)) \ .ob_shash = -1, \ .ob_sval = { (CH) }, \ } @@ -149,7 +149,7 @@ extern PyTypeObject _PyExc_MemoryError; #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ { \ - .ob_base = _PyObject_IMMORTAL_INIT(&PyUnicode_Type), \ + .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type) \ .length = sizeof(LITERAL) - 1, \ .hash = -1, \ .state = { \ diff --git a/Include/internal/pycore_unicodeobject.h b/Include/internal/pycore_unicodeobject.h index ff97b9a623d2101..1bb0f366e78163e 100644 --- a/Include/internal/pycore_unicodeobject.h +++ b/Include/internal/pycore_unicodeobject.h @@ -12,6 +12,7 @@ extern "C" { #include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI void _PyUnicode_ExactDealloc(PyObject *op); +Py_ssize_t _PyUnicode_InternedSize(void); /* runtime lifecycle */ diff --git a/Include/object.h b/Include/object.h index 2943a6066818cd7..66c3df0d7f780a0 100644 --- a/Include/object.h +++ b/Include/object.h @@ -78,12 +78,76 @@ whose size is determined when the object is allocated. /* PyObject_HEAD defines the initial segment of every PyObject. */ #define PyObject_HEAD PyObject ob_base; -#define PyObject_HEAD_INIT(type) \ - { _PyObject_EXTRA_INIT \ - 1, (type) }, +/* +Immortalization: + +The following indicates the immortalization strategy depending on the amount +of available bits in the reference count field. All strategies are backwards +compatible but the specific reference count value or immortalization check +might change depending on the specializations for the underlying system. + +Proper deallocation of immortal instances requires distinguishing between +statically allocated immortal instances vs those promoted by the runtime to be +immortal. The latter should be the only instances that require +cleanup during runtime finalization. +*/ + +#if SIZEOF_VOID_P > 4 +/* +In 64+ bit systems, an object will be marked as immortal by setting all of the +lower 32 bits of the reference count field, which is equal to: 0xFFFFFFFF + +Using the lower 32 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases will use saturated arithmetic, taking advantage of +having all the lower 32 bits set, which will avoid the reference count to go +beyond the refcount limit. Immortality checks for reference count decreases will +be done by checking the bit sign flag in the lower 32 bits. +*/ +#define _Py_IMMORTAL_REFCNT UINT_MAX + +#else +/* +In 32 bit systems, an object will be marked as immortal by setting all of the +lower 30 bits of the reference count field, which is equal to: 0x3FFFFFFF -#define PyVarObject_HEAD_INIT(type, size) \ - { PyObject_HEAD_INIT(type) (size) }, +Using the lower 30 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases and decreases will first go through an immortality +check by comparing the reference count field to the immortality reference count. +*/ +#define _Py_IMMORTAL_REFCNT (UINT_MAX >> 2) +#endif + +// Make all internal uses of PyObject_HEAD_INIT immortal while preserving the +// C-API expectation that the refcnt will be set to 1. +#ifdef Py_BUILD_CORE +#define PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + { _Py_IMMORTAL_REFCNT }, \ + (type) \ + }, +#else +#define PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + { 1 }, \ + (type) \ + }, +#endif /* Py_BUILD_CORE */ + +#define PyVarObject_HEAD_INIT(type, size) \ + { \ + PyObject_HEAD_INIT(type) \ + (size) \ + }, /* PyObject_VAR_HEAD defines the initial segment of all variable-size * container objects. These end with a declaration of an array with 1 @@ -101,7 +165,12 @@ whose size is determined when the object is allocated. */ struct _object { _PyObject_HEAD_EXTRA - Py_ssize_t ob_refcnt; + union { + Py_ssize_t ob_refcnt; +#if SIZEOF_VOID_P > 4 + PY_UINT32_T ob_refcnt_split[2]; +#endif + }; PyTypeObject *ob_type; }; @@ -152,6 +221,15 @@ static inline Py_ssize_t Py_SIZE(PyObject *ob) { # define Py_SIZE(ob) Py_SIZE(_PyObject_CAST(ob)) #endif +static inline Py_ALWAYS_INLINE int _Py_IsImmortal(PyObject *op) +{ +#if SIZEOF_VOID_P > 4 + return _Py_CAST(PY_INT32_T, op->ob_refcnt) < 0; +#else + return op->ob_refcnt == _Py_IMMORTAL_REFCNT; +#endif +} +#define _Py_IsImmortal(op) _Py_IsImmortal(_PyObject_CAST(op)) static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { return Py_TYPE(ob) == type; @@ -162,6 +240,13 @@ static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { + // This immortal check is for code that is unaware of immortal objects. + // The runtime tracks these objects and we should avoid as much + // as possible having extensions inadvertently change the refcnt + // of an immortalized object. + if (_Py_IsImmortal(ob)) { + return; + } ob->ob_refcnt = refcnt; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 @@ -524,19 +609,33 @@ PyAPI_FUNC(void) Py_DecRef(PyObject *); PyAPI_FUNC(void) _Py_IncRef(PyObject *); PyAPI_FUNC(void) _Py_DecRef(PyObject *); -static inline void Py_INCREF(PyObject *op) +static inline Py_ALWAYS_INLINE void Py_INCREF(PyObject *op) { #if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000 // Stable ABI for Python 3.10 built in debug mode. _Py_IncRef(op); #else - _Py_INCREF_STAT_INC(); // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. +#if SIZEOF_VOID_P > 4 + // Portable saturated add, branching on the carry flag and set low bits + PY_UINT32_T cur_refcnt = op->ob_refcnt_split[PY_BIG_ENDIAN]; + PY_UINT32_T new_refcnt = cur_refcnt + 1; + if (new_refcnt == 0) { + return; + } + op->ob_refcnt_split[PY_BIG_ENDIAN] = new_refcnt; +#else + // Explicitly check immortality against the immortal value + if (_Py_IsImmortal(op)) { + return; + } + op->ob_refcnt++; +#endif + _Py_INCREF_STAT_INC(); #ifdef Py_REF_DEBUG _Py_INC_REFTOTAL(); -#endif // Py_REF_DEBUG - op->ob_refcnt++; +#endif #endif } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 @@ -553,6 +652,9 @@ static inline void Py_DECREF(PyObject *op) { #elif defined(Py_REF_DEBUG) static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) { + if (_Py_IsImmortal(op)) { + return; + } _Py_DECREF_STAT_INC(); _Py_DEC_REFTOTAL(); if (--op->ob_refcnt != 0) { @@ -567,11 +669,14 @@ static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) #define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) #else -static inline void Py_DECREF(PyObject *op) +static inline Py_ALWAYS_INLINE void Py_DECREF(PyObject *op) { - _Py_DECREF_STAT_INC(); // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); if (--op->ob_refcnt == 0) { _Py_Dealloc(op); } @@ -721,7 +826,7 @@ PyAPI_FUNC(int) Py_IsNone(PyObject *x); #define Py_IsNone(x) Py_Is((x), Py_None) /* Macro for returning Py_None from a function */ -#define Py_RETURN_NONE return Py_NewRef(Py_None) +#define Py_RETURN_NONE return Py_None /* Py_NotImplemented is a singleton used to signal that an operation is @@ -731,7 +836,7 @@ PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */ #define Py_NotImplemented (&_Py_NotImplementedStruct) /* Macro for returning Py_NotImplemented from a function */ -#define Py_RETURN_NOTIMPLEMENTED return Py_NewRef(Py_NotImplemented) +#define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented /* Rich comparison opcodes */ #define Py_LT 0 diff --git a/Include/pyport.h b/Include/pyport.h index eef0fe1bfd71d85..5e226f5cb467514 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -184,7 +184,6 @@ typedef Py_ssize_t Py_ssize_clean_t; # define Py_LOCAL_INLINE(type) static inline type #endif -// bpo-28126: Py_MEMCPY is kept for backwards compatibility, #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 # define Py_MEMCPY memcpy #endif diff --git a/Lib/test/_test_embed_structseq.py b/Lib/test/_test_embed_structseq.py index 868f9f83e8be774..834daa4df55feca 100644 --- a/Lib/test/_test_embed_structseq.py +++ b/Lib/test/_test_embed_structseq.py @@ -1,27 +1,31 @@ import sys import types -import unittest +# Note: This test file can't import `unittest` since the runtime can't +# currently guarantee that it will not leak memory. Doing so will mark +# the test as passing but with reference leaks. This can safely import +# the `unittest` library once there's a strict guarantee of no leaks +# during runtime shutdown. # bpo-46417: Test that structseq types used by the sys module are still # valid when Py_Finalize()/Py_Initialize() are called multiple times. -class TestStructSeq(unittest.TestCase): +class TestStructSeq: # test PyTypeObject members - def check_structseq(self, obj_type): + def _check_structseq(self, obj_type): # ob_refcnt - self.assertGreaterEqual(sys.getrefcount(obj_type), 1) + assert sys.getrefcount(obj_type) > 1 # tp_base - self.assertTrue(issubclass(obj_type, tuple)) + assert issubclass(obj_type, tuple) # tp_bases - self.assertEqual(obj_type.__bases__, (tuple,)) + assert obj_type.__bases__ == (tuple,) # tp_dict - self.assertIsInstance(obj_type.__dict__, types.MappingProxyType) + assert isinstance(obj_type.__dict__, types.MappingProxyType) # tp_mro - self.assertEqual(obj_type.__mro__, (obj_type, tuple, object)) + assert obj_type.__mro__ == (obj_type, tuple, object) # tp_name - self.assertIsInstance(type.__name__, str) + assert isinstance(type.__name__, str) # tp_subclasses - self.assertEqual(obj_type.__subclasses__(), []) + assert obj_type.__subclasses__() == [] def test_sys_attrs(self): for attr_name in ( @@ -32,23 +36,23 @@ def test_sys_attrs(self): 'thread_info', # ThreadInfoType 'version_info', # VersionInfoType ): - with self.subTest(attr=attr_name): - attr = getattr(sys, attr_name) - self.check_structseq(type(attr)) + attr = getattr(sys, attr_name) + self._check_structseq(type(attr)) def test_sys_funcs(self): func_names = ['get_asyncgen_hooks'] # AsyncGenHooksType if hasattr(sys, 'getwindowsversion'): func_names.append('getwindowsversion') # WindowsVersionType for func_name in func_names: - with self.subTest(func=func_name): - func = getattr(sys, func_name) - obj = func() - self.check_structseq(type(obj)) + func = getattr(sys, func_name) + obj = func() + self._check_structseq(type(obj)) try: - unittest.main() + tests = TestStructSeq() + tests.test_sys_attrs() + tests.test_sys_funcs() except SystemExit as exc: if exc.args[0] != 0: raise diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py index 4298fa806e10656..2de8c6cfbc61a1e 100644 --- a/Lib/test/libregrtest/refleak.py +++ b/Lib/test/libregrtest/refleak.py @@ -73,9 +73,10 @@ def get_pooled_int(value): fd_deltas = [0] * repcount getallocatedblocks = sys.getallocatedblocks gettotalrefcount = sys.gettotalrefcount + getunicodeinternedsize = sys.getunicodeinternedsize fd_count = os_helper.fd_count # initialize variables to make pyflakes quiet - rc_before = alloc_before = fd_before = 0 + rc_before = alloc_before = fd_before = interned_before = 0 if not ns.quiet: print("beginning", repcount, "repetitions", file=sys.stderr) @@ -91,9 +92,13 @@ def get_pooled_int(value): dash_R_cleanup(fs, ps, pic, zdc, abcs) support.gc_collect() - # Read memory statistics immediately after the garbage collection - alloc_after = getallocatedblocks() - rc_after = gettotalrefcount() + # Read memory statistics immediately after the garbage collection. + # Also, readjust the reference counts and alloc blocks by ignoring + # any strings that might have been interned during test_func. These + # strings will be deallocated at runtime shutdown + interned_after = getunicodeinternedsize() + alloc_after = getallocatedblocks() - interned_after + rc_after = gettotalrefcount() - interned_after * 2 fd_after = fd_count() if not ns.quiet: @@ -106,6 +111,7 @@ def get_pooled_int(value): alloc_before = alloc_after rc_before = rc_after fd_before = fd_after + interned_before = interned_after if not ns.quiet: print(file=sys.stderr) diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index e7a79bc13b7f3d9..04dd8ff3070c990 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -28,7 +28,7 @@ from types import AsyncGeneratorType, FunctionType, CellType from operator import neg from test import support -from test.support import (swap_attr, maybe_get_event_loop_policy) +from test.support import (cpython_only, swap_attr, maybe_get_event_loop_policy) from test.support.os_helper import (EnvironmentVarGuard, TESTFN, unlink) from test.support.script_helper import assert_python_ok from test.support.warnings_helper import check_warnings @@ -2370,6 +2370,28 @@ def __del__(self): self.assertEqual(["before", "after"], out.decode().splitlines()) +@cpython_only +class ImmortalTests(unittest.TestCase): + def test_immortal(self): + none_refcount = sys.getrefcount(None) + true_refcount = sys.getrefcount(True) + false_refcount = sys.getrefcount(False) + smallint_refcount = sys.getrefcount(100) + + # Assert that all of these immortal instances have large ref counts. + self.assertGreater(none_refcount, 2 ** 15) + self.assertGreater(true_refcount, 2 ** 15) + self.assertGreater(false_refcount, 2 ** 15) + self.assertGreater(smallint_refcount, 2 ** 15) + + # Confirm that the refcount doesn't change even with a new ref to them. + l = [None, True, False, 100] + self.assertEqual(sys.getrefcount(None), none_refcount) + self.assertEqual(sys.getrefcount(True), true_refcount) + self.assertEqual(sys.getrefcount(False), false_refcount) + self.assertEqual(sys.getrefcount(100), smallint_refcount) + + class TestType(unittest.TestCase): def test_new_type(self): A = type('A', (), {}) diff --git a/Lib/test/test_ctypes/test_python_api.py b/Lib/test/test_ctypes/test_python_api.py index 49571f97bbe1526..de8989e2c3300f7 100644 --- a/Lib/test/test_ctypes/test_python_api.py +++ b/Lib/test/test_ctypes/test_python_api.py @@ -46,7 +46,8 @@ def test_PyLong_Long(self): pythonapi.PyLong_AsLong.restype = c_long res = pythonapi.PyLong_AsLong(42) - self.assertEqual(grc(res), ref42 + 1) + # Small int refcnts don't change + self.assertEqual(grc(res), ref42) del res self.assertEqual(grc(42), ref42) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 1aebe1b111f2e90..611cd27ecf12404 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -385,7 +385,8 @@ def test_refcount(self): self.assertRaises(TypeError, sys.getrefcount) c = sys.getrefcount(None) n = None - self.assertEqual(sys.getrefcount(None), c+1) + # Singleton refcnts don't change + self.assertEqual(sys.getrefcount(None), c) del n self.assertEqual(sys.getrefcount(None), c) if hasattr(sys, "gettotalrefcount"): diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 333b97688af5b63..95944c7c7116206 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -600,9 +600,15 @@ def test_zippath_from_non_installed_posix(self): ld_library_path_env = "DYLD_LIBRARY_PATH" else: ld_library_path_env = "LD_LIBRARY_PATH" - subprocess.check_call(cmd, - env={"PYTHONPATH": pythonpath, - ld_library_path_env: ld_library_path}) + # Note that in address sanitizer mode, the current runtime + # implementation leaks memory due to not being able to correctly + # clean all unicode objects during runtime shutdown. Therefore, + # this uses subprocess.run instead of subprocess.check_call to + # maintain the core of the test while not failing due to the refleaks. + # This should be able to use check_call once all refleaks are fixed. + subprocess.run(cmd, + env={"PYTHONPATH": pythonpath, + ld_library_path_env: ld_library_path}) envpy = os.path.join(self.env_dir, self.bindir, self.exe) # Now check the venv created from the non-installed python has # correct zip path in pythonpath. diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-04-02-22-14-57.gh-issue-84436.hvMgwF.rst b/Misc/NEWS.d/next/Core and Builtins/2023-04-02-22-14-57.gh-issue-84436.hvMgwF.rst new file mode 100644 index 000000000000000..c4d8ce75b35a301 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-04-02-22-14-57.gh-issue-84436.hvMgwF.rst @@ -0,0 +1,3 @@ +The implementation of PEP-683 which adds Immortal Objects by using a fixed +reference count that skips reference counting to make objects truly +immutable. diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 4eaa5490b6134c7..1d00fc3e717788b 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -418,8 +418,20 @@ validate_list(PyGC_Head *head, enum flagstates flags) static void update_refs(PyGC_Head *containers) { + PyGC_Head *next; PyGC_Head *gc = GC_NEXT(containers); - for (; gc != containers; gc = GC_NEXT(gc)) { + + while (gc != containers) { + next = GC_NEXT(gc); + /* Move any object that might have become immortal to the + * permanent generation as the reference count is not accurately + * reflecting the actual number of live references to this object + */ + if (_Py_IsImmortal(FROM_GC(gc))) { + gc_list_move(gc, &get_gc_state()->permanent_generation.head); + gc = next; + continue; + } gc_reset_refs(gc, Py_REFCNT(FROM_GC(gc))); /* Python's cyclic gc should never see an incoming refcount * of 0: if something decref'ed to 0, it should have been @@ -440,6 +452,7 @@ update_refs(PyGC_Head *containers) * check instead of an assert? */ _PyObject_ASSERT(FROM_GC(gc), gc_get_refs(gc) != 0); + gc = next; } } diff --git a/Objects/boolobject.c b/Objects/boolobject.c index 9d8e956e06f7123..597a76fa5cb1621 100644 --- a/Objects/boolobject.c +++ b/Objects/boolobject.c @@ -145,10 +145,14 @@ static PyNumberMethods bool_as_number = { 0, /* nb_index */ }; -static void _Py_NO_RETURN -bool_dealloc(PyObject* Py_UNUSED(ignore)) +static void +bool_dealloc(PyObject *boolean) { - _Py_FatalRefcountError("deallocating True or False"); + /* This should never get called, but we also don't want to SEGV if + * we accidentally decref Booleans out of existence. Instead, + * since bools are immortal, re-set the reference count. + */ + _Py_SetImmortal(boolean); } /* The type object for bool. Note that this cannot be subclassed! */ diff --git a/Objects/bytes_methods.c b/Objects/bytes_methods.c index ef9e65e566ece90..33aa9c3db6e805d 100644 --- a/Objects/bytes_methods.c +++ b/Objects/bytes_methods.c @@ -258,9 +258,12 @@ _Py_bytes_istitle(const char *cptr, Py_ssize_t len) const unsigned char *e; int cased, previous_is_cased; - /* Shortcut for single character strings */ - if (len == 1) - return PyBool_FromLong(Py_ISUPPER(*p)); + if (len == 1) { + if (Py_ISUPPER(*p)) { + Py_RETURN_TRUE; + } + Py_RETURN_FALSE; + } /* Special case for empty strings */ if (len == 0) diff --git a/Objects/longobject.c b/Objects/longobject.c index bb4eac0d932bb88..d98bbbb6d6ff464 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -52,8 +52,7 @@ static PyObject * get_small_int(sdigit ival) { assert(IS_SMALL_INT(ival)); - PyObject *v = (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + ival]; - return Py_NewRef(v); + return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + ival]; } static PyLongObject * @@ -3271,6 +3270,27 @@ long_richcompare(PyObject *self, PyObject *other, int op) Py_RETURN_RICHCOMPARE(result, 0, op); } +static void +long_dealloc(PyObject *self) +{ + /* This should never get called, but we also don't want to SEGV if + * we accidentally decref small Ints out of existence. Instead, + * since small Ints are immortal, re-set the reference count. + */ + PyLongObject *pylong = (PyLongObject*)self; + if (pylong && _PyLong_IsCompact(pylong)) { + stwodigits ival = medium_value(pylong); + if (IS_SMALL_INT(ival)) { + PyLongObject *small_pylong = (PyLongObject *)get_small_int((sdigit)ival); + if (pylong == small_pylong) { + _Py_SetImmortal(self); + return; + } + } + } + Py_TYPE(self)->tp_free(self); +} + static Py_hash_t long_hash(PyLongObject *v) { @@ -6233,7 +6253,7 @@ PyTypeObject PyLong_Type = { "int", /* tp_name */ offsetof(PyLongObject, long_value.ob_digit), /* tp_basicsize */ sizeof(digit), /* tp_itemsize */ - 0, /* tp_dealloc */ + long_dealloc, /* tp_dealloc */ 0, /* tp_vectorcall_offset */ 0, /* tp_getattr */ 0, /* tp_setattr */ diff --git a/Objects/object.c b/Objects/object.c index e26f737fccd60ff..e508881c67d2771 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1754,10 +1754,14 @@ none_repr(PyObject *op) return PyUnicode_FromString("None"); } -static void _Py_NO_RETURN -none_dealloc(PyObject* Py_UNUSED(ignore)) +static void +none_dealloc(PyObject* none) { - _Py_FatalRefcountError("deallocating None"); + /* This should never get called, but we also don't want to SEGV if + * we accidentally decref None out of existence. Instead, + * since None is an immortal object, re-set the reference count. + */ + _Py_SetImmortal(none); } static PyObject * @@ -1823,7 +1827,7 @@ PyTypeObject _PyNone_Type = { "NoneType", 0, 0, - none_dealloc, /*tp_dealloc*/ /*never called*/ + none_dealloc, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ @@ -1860,8 +1864,9 @@ PyTypeObject _PyNone_Type = { }; PyObject _Py_NoneStruct = { - _PyObject_EXTRA_INIT - 1, &_PyNone_Type + _PyObject_EXTRA_INIT + { _Py_IMMORTAL_REFCNT }, + &_PyNone_Type }; /* NotImplemented is an object that can be used to signal that an @@ -1894,13 +1899,14 @@ notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) Py_RETURN_NOTIMPLEMENTED; } -static void _Py_NO_RETURN -notimplemented_dealloc(PyObject* ignore) +static void +notimplemented_dealloc(PyObject *notimplemented) { /* This should never get called, but we also don't want to SEGV if - * we accidentally decref NotImplemented out of existence. + * we accidentally decref NotImplemented out of existence. Instead, + * since Notimplemented is an immortal object, re-set the reference count. */ - Py_FatalError("deallocating NotImplemented"); + _Py_SetImmortal(notimplemented); } static int @@ -1962,7 +1968,8 @@ PyTypeObject _PyNotImplemented_Type = { PyObject _Py_NotImplementedStruct = { _PyObject_EXTRA_INIT - 1, &_PyNotImplemented_Type + { _Py_IMMORTAL_REFCNT }, + &_PyNotImplemented_Type }; extern PyTypeObject _Py_GenericAliasIterType; @@ -2143,7 +2150,8 @@ new_reference(PyObject *op) if (_PyRuntime.tracemalloc.config.tracing) { _PyTraceMalloc_NewReference(op); } - Py_SET_REFCNT(op, 1); + // Skip the immortal object check in Py_SET_REFCNT; always set refcnt to 1 + op->ob_refcnt = 1; #ifdef Py_TRACE_REFS _Py_AddToAllObjects(op, 1); #endif diff --git a/Objects/setobject.c b/Objects/setobject.c index fcdda2a0bca2b6c..58f0ae73c0c403f 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -2543,6 +2543,7 @@ static PyTypeObject _PySetDummy_Type = { }; static PyObject _dummy_struct = { - _PyObject_EXTRA_INIT - 2, &_PySetDummy_Type + _PyObject_EXTRA_INIT + { _Py_IMMORTAL_REFCNT }, + &_PySetDummy_Type }; diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index 584ebce721faed0..e6776ac92b669ce 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -29,6 +29,16 @@ ellipsis_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) return Py_NewRef(Py_Ellipsis); } +static void +ellipsis_dealloc(PyObject *ellipsis) +{ + /* This should never get called, but we also don't want to SEGV if + * we accidentally decref Ellipsis out of existence. Instead, + * since Ellipsis is an immortal object, re-set the reference count. + */ + _Py_SetImmortal(ellipsis); +} + static PyObject * ellipsis_repr(PyObject *op) { @@ -51,7 +61,7 @@ PyTypeObject PyEllipsis_Type = { "ellipsis", /* tp_name */ 0, /* tp_basicsize */ 0, /* tp_itemsize */ - 0, /*never called*/ /* tp_dealloc */ + ellipsis_dealloc, /* tp_dealloc */ 0, /* tp_vectorcall_offset */ 0, /* tp_getattr */ 0, /* tp_setattr */ @@ -89,7 +99,8 @@ PyTypeObject PyEllipsis_Type = { PyObject _Py_EllipsisObject = { _PyObject_EXTRA_INIT - 1, &PyEllipsis_Type + { _Py_IMMORTAL_REFCNT }, + &PyEllipsis_Type }; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 9ea458f30394e32..85bcd05d5a29df7 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -318,27 +318,11 @@ _PyType_InitCache(PyInterpreterState *interp) entry->version = 0; // Set to None so _PyType_Lookup() can use Py_SETREF(), // rather than using slower Py_XSETREF(). - // (See _PyType_FixCacheRefcounts() about the refcount.) entry->name = Py_None; entry->value = NULL; } } -// This is the temporary fix used by pycore_create_interpreter(), -// in pylifecycle.c. _PyType_InitCache() is called before the GIL -// has been created (for the main interpreter) and without the -// "current" thread state set. This causes crashes when the -// reftotal is updated, so we don't modify the refcount in -// _PyType_InitCache(), and instead do it later by calling -// _PyType_FixCacheRefcounts(). -// XXX This workaround should be removed once we have immortal -// objects (PEP 683). -void -_PyType_FixCacheRefcounts(void) -{ - _Py_RefcntAdd(Py_None, (1 << MCACHE_SIZE_EXP)); -} - static unsigned int _PyType_ClearCache(PyInterpreterState *interp) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 85e5ae735709fdc..fd056e38f3f86b0 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -228,14 +228,18 @@ static inline PyObject* unicode_new_empty(void) to strings in this dictionary are *not* counted in the string's ob_refcnt. When the interned string reaches a refcnt of 0 the string deallocation function will delete the reference from this dictionary. - Another way to look at this is that to say that the actual reference - count of a string is: s->ob_refcnt + (s->state ? 2 : 0) */ static inline PyObject *get_interned_dict(PyInterpreterState *interp) { return _Py_INTERP_CACHED_OBJECT(interp, interned_strings); } +Py_ssize_t +_PyUnicode_InternedSize() +{ + return PyObject_Length(get_interned_dict(_PyInterpreterState_GET())); +} + static int init_interned_dict(PyInterpreterState *interp) { @@ -1538,30 +1542,19 @@ find_maxchar_surrogates(const wchar_t *begin, const wchar_t *end, static void unicode_dealloc(PyObject *unicode) { - PyInterpreterState *interp = _PyInterpreterState_GET(); #ifdef Py_DEBUG if (!unicode_is_finalizing() && unicode_is_singleton(unicode)) { _Py_FatalRefcountError("deallocating an Unicode singleton"); } #endif + /* This should never get called, but we also don't want to SEGV if + * we accidentally decref an immortal string out of existence. Since + * the string is an immortal object, just re-set the reference count. + */ if (PyUnicode_CHECK_INTERNED(unicode)) { - /* Revive the dead object temporarily. PyDict_DelItem() removes two - references (key and value) which were ignored by - PyUnicode_InternInPlace(). Use refcnt=3 rather than refcnt=2 - to prevent calling unicode_dealloc() again. Adjust refcnt after - PyDict_DelItem(). */ - assert(Py_REFCNT(unicode) == 0); - Py_SET_REFCNT(unicode, 3); - PyObject *interned = get_interned_dict(interp); - assert(interned != NULL); - if (PyDict_DelItem(interned, unicode) != 0) { - _PyErr_WriteUnraisableMsg("deletion of interned string failed", - NULL); - } - assert(Py_REFCNT(unicode) == 1); - Py_SET_REFCNT(unicode, 0); + _Py_SetImmortal(unicode); + return; } - if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) { PyObject_Free(_PyUnicode_UTF8(unicode)); } @@ -14637,11 +14630,21 @@ _PyUnicode_InternInPlace(PyInterpreterState *interp, PyObject **p) return; } - /* The two references in interned dict (key and value) are not counted by - refcnt. unicode_dealloc() and _PyUnicode_ClearInterned() take care of - this. */ - Py_SET_REFCNT(s, Py_REFCNT(s) - 2); - _PyUnicode_STATE(s).interned = 1; + if (_Py_IsImmortal(s)) { + _PyUnicode_STATE(*p).interned = SSTATE_INTERNED_IMMORTAL_STATIC; + return; + } +#ifdef Py_REF_DEBUG + /* The reference count value excluding the 2 references from the + interned dictionary should be excluded from the RefTotal. The + decrements to these objects will not be registered so they + need to be accounted for in here. */ + for (Py_ssize_t i = 0; i < Py_REFCNT(s) - 2; i++) { + _Py_DecRefTotal(_PyInterpreterState_GET()); + } +#endif + _Py_SetImmortal(s); + _PyUnicode_STATE(*p).interned = SSTATE_INTERNED_IMMORTAL; } void @@ -14681,10 +14684,20 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) } assert(PyDict_CheckExact(interned)); - /* Interned unicode strings are not forcibly deallocated; rather, we give - them their stolen references back, and then clear and DECREF the - interned dict. */ - + /* TODO: + * Currently, the runtime is not able to guarantee that it can exit without + * allocations that carry over to a future initialization of Python within + * the same process. i.e: + * ./python -X showrefcount -c 'import itertools' + * [237 refs, 237 blocks] + * + * Therefore, this should remain disabled for until there is a strict guarantee + * that no memory will be left after `Py_Finalize`. + */ +#ifdef Py_DEBUG + /* For all non-singleton interned strings, restore the two valid references + to that instance from within the intern string dictionary and let the + normal reference counting process clean up these instances. */ #ifdef INTERNED_STATS fprintf(stderr, "releasing %zd interned strings\n", PyDict_GET_SIZE(interned)); @@ -14694,15 +14707,27 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) Py_ssize_t pos = 0; PyObject *s, *ignored_value; while (PyDict_Next(interned, &pos, &s, &ignored_value)) { - assert(PyUnicode_CHECK_INTERNED(s)); - // Restore the two references (key and value) ignored - // by PyUnicode_InternInPlace(). - Py_SET_REFCNT(s, Py_REFCNT(s) + 2); + assert(PyUnicode_IS_READY(s)); + switch (PyUnicode_CHECK_INTERNED(s)) { + case SSTATE_INTERNED_IMMORTAL: + // Skip the Immortal Instance check and restore + // the two references (key and value) ignored + // by PyUnicode_InternInPlace(). + s->ob_refcnt = 2; #ifdef INTERNED_STATS - total_length += PyUnicode_GET_LENGTH(s); + total_length += PyUnicode_GET_LENGTH(s); #endif - - _PyUnicode_STATE(s).interned = 0; + break; + case SSTATE_INTERNED_IMMORTAL_STATIC: + break; + case SSTATE_INTERNED_MORTAL: + /* fall through */ + case SSTATE_NOT_INTERNED: + /* fall through */ + default: + Py_UNREACHABLE(); + } + _PyUnicode_STATE(s).interned = SSTATE_NOT_INTERNED; } #ifdef INTERNED_STATS fprintf(stderr, @@ -14710,6 +14735,12 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp) total_length); #endif + struct _Py_unicode_state *state = &interp->unicode; + struct _Py_unicode_ids *ids = &state->ids; + for (Py_ssize_t i=0; i < ids->size; i++) { + Py_XINCREF(ids->array[i]); + } +#endif /* Py_DEBUG */ clear_interned_dict(interp); } diff --git a/Programs/_testembed.c b/Programs/_testembed.c index 00717114b40286a..f78ba41fe7b4ebc 100644 --- a/Programs/_testembed.c +++ b/Programs/_testembed.c @@ -1911,14 +1911,13 @@ static int test_unicode_id_init(void) str1 = _PyUnicode_FromId(&PyId_test_unicode_id_init); assert(str1 != NULL); - assert(Py_REFCNT(str1) == 1); + assert(_Py_IsImmortal(str1)); str2 = PyUnicode_FromString("test_unicode_id_init"); assert(str2 != NULL); assert(PyUnicode_Compare(str1, str2) == 0); - // str1 is a borrowed reference Py_DECREF(str2); Py_Finalize(); diff --git a/Python/ceval.c b/Python/ceval.c index d8495da81e94ec9..358835024fd2d05 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -53,8 +53,11 @@ #undef Py_DECREF #define Py_DECREF(arg) \ do { \ - _Py_DECREF_STAT_INC(); \ PyObject *op = _PyObject_CAST(arg); \ + if (_Py_IsImmortal(op)) { \ + break; \ + } \ + _Py_DECREF_STAT_INC(); \ if (--op->ob_refcnt == 0) { \ destructor dealloc = Py_TYPE(op)->tp_dealloc; \ (*dealloc)(op); \ @@ -77,8 +80,11 @@ #undef _Py_DECREF_SPECIALIZED #define _Py_DECREF_SPECIALIZED(arg, dealloc) \ do { \ - _Py_DECREF_STAT_INC(); \ PyObject *op = _PyObject_CAST(arg); \ + if (_Py_IsImmortal(op)) { \ + break; \ + } \ + _Py_DECREF_STAT_INC(); \ if (--op->ob_refcnt == 0) { \ destructor d = (destructor)(dealloc); \ d(op); \ diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h index 46252dd404325bb..7a7c188bcccc37f 100644 --- a/Python/clinic/sysmodule.c.h +++ b/Python/clinic/sysmodule.c.h @@ -912,6 +912,34 @@ sys_getallocatedblocks(PyObject *module, PyObject *Py_UNUSED(ignored)) return return_value; } +PyDoc_STRVAR(sys_getunicodeinternedsize__doc__, +"getunicodeinternedsize($module, /)\n" +"--\n" +"\n" +"Return the number of elements of the unicode interned dictionary"); + +#define SYS_GETUNICODEINTERNEDSIZE_METHODDEF \ + {"getunicodeinternedsize", (PyCFunction)sys_getunicodeinternedsize, METH_NOARGS, sys_getunicodeinternedsize__doc__}, + +static Py_ssize_t +sys_getunicodeinternedsize_impl(PyObject *module); + +static PyObject * +sys_getunicodeinternedsize(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + Py_ssize_t _return_value; + + _return_value = sys_getunicodeinternedsize_impl(module); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyLong_FromSsize_t(_return_value); + +exit: + return return_value; +} + PyDoc_STRVAR(sys__getframe__doc__, "_getframe($module, depth=0, /)\n" "--\n" @@ -1387,4 +1415,4 @@ sys__getframemodulename(PyObject *module, PyObject *const *args, Py_ssize_t narg #ifndef SYS_GETANDROIDAPILEVEL_METHODDEF #define SYS_GETANDROIDAPILEVEL_METHODDEF #endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */ -/*[clinic end generated code: output=5c761f14326ced54 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6d598acc26237fbe input=a9049054013a1b77]*/ diff --git a/Python/instrumentation.c b/Python/instrumentation.c index 2a3b2b8ebeead79..8334f596eb3e193 100644 --- a/Python/instrumentation.c +++ b/Python/instrumentation.c @@ -16,13 +16,13 @@ static PyObject DISABLE = { - .ob_refcnt = _PyObject_IMMORTAL_REFCNT, + .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBaseObject_Type }; PyObject _PyInstrumentation_MISSING = { - .ob_refcnt = _PyObject_IMMORTAL_REFCNT, + .ob_refcnt = _Py_IMMORTAL_REFCNT, .ob_type = &PyBaseObject_Type }; diff --git a/Python/legacy_tracing.c b/Python/legacy_tracing.c index cf345bddda79b03..e509e63a087a52c 100644 --- a/Python/legacy_tracing.c +++ b/Python/legacy_tracing.c @@ -324,7 +324,7 @@ sys_trace_exception_handled( PyTypeObject _PyLegacyEventHandler_Type = { - _PyVarObject_IMMORTAL_INIT(&PyType_Type, 0), + PyVarObject_HEAD_INIT(&PyType_Type, 0) "sys.legacy_event_handler", sizeof(_PyLegacyEventHandler), .tp_dealloc = (destructor)PyObject_Free, diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index d6627bc6b7e86b1..a510c9b22168bce 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -808,11 +808,6 @@ pycore_interp_init(PyThreadState *tstate) PyStatus status; PyObject *sysmod = NULL; - // This is a temporary fix until we have immortal objects. - // (See _PyType_InitCache() in typeobject.c.) - extern void _PyType_FixCacheRefcounts(void); - _PyType_FixCacheRefcounts(); - // Create singletons before the first PyType_Ready() call, since // PyType_Ready() uses singletons like the Unicode empty string (tp_doc) // and the empty tuple singletons (tp_bases). diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 4d693a1be1f89e7..1e42e8dfceb5cc7 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1874,6 +1874,18 @@ sys_getallocatedblocks_impl(PyObject *module) return _Py_GetAllocatedBlocks(); } +/*[clinic input] +sys.getunicodeinternedsize -> Py_ssize_t + +Return the number of elements of the unicode interned dictionary +[clinic start generated code]*/ + +static Py_ssize_t +sys_getunicodeinternedsize_impl(PyObject *module) +/*[clinic end generated code: output=ad0e4c9738ed4129 input=726298eaa063347a]*/ +{ + return _PyUnicode_InternedSize(); +} /*[clinic input] sys._getframe @@ -2243,6 +2255,7 @@ static PyMethodDef sys_methods[] = { SYS_GETDEFAULTENCODING_METHODDEF SYS_GETDLOPENFLAGS_METHODDEF SYS_GETALLOCATEDBLOCKS_METHODDEF + SYS_GETUNICODEINTERNEDSIZE_METHODDEF SYS_GETFILESYSTEMENCODING_METHODDEF SYS_GETFILESYSTEMENCODEERRORS_METHODDEF #ifdef Py_TRACE_REFS diff --git a/Tools/build/deepfreeze.py b/Tools/build/deepfreeze.py index aba5fecd8b1a995..5cfef5c572c4ae3 100644 --- a/Tools/build/deepfreeze.py +++ b/Tools/build/deepfreeze.py @@ -142,7 +142,7 @@ def block(self, prefix: str, suffix: str = "") -> None: def object_head(self, typename: str) -> None: with self.block(".ob_base =", ","): - self.write(f".ob_refcnt = 999999999,") + self.write(f".ob_refcnt = _Py_IMMORTAL_REFCNT,") self.write(f".ob_type = &{typename},") def object_var_head(self, typename: str, size: int) -> None: From 8cb2b0f953288ff8749e686c268097cdd5a393e2 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Sat, 22 Apr 2023 15:41:58 -0600 Subject: [PATCH 43/82] Revert "Avoid error lexing multiprocessing docs code block on Pygments 2.15.0" (#103616) This reverts commit ace51dcdb781b0608b1273d246ebaee849561435. --- Doc/library/multiprocessing.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 84e309f1bc83265..8454296b815b41e 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -452,9 +452,7 @@ process which created it. importable by the children. This is covered in :ref:`multiprocessing-programming` however it is worth pointing out here. This means that some examples, such as the :class:`multiprocessing.pool.Pool` examples will not work in the - interactive interpreter. For example: - - .. code-block:: text + interactive interpreter. For example:: >>> from multiprocessing import Pool >>> p = Pool(5) From 7bf94568a9a4101c72b8bf555a811028e5b45ced Mon Sep 17 00:00:00 2001 From: Randy <69558016+san-juan1667@users.noreply.github.com> Date: Sat, 22 Apr 2023 17:33:50 -0600 Subject: [PATCH 44/82] gh-68654: Clarify subdirectories used by pkgutil.extend_path (#103701) Clarify sub directories used by pkgutil.extend_path in the docs and the docstring --- Doc/library/pkgutil.rst | 6 +++--- Lib/pkgutil.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Doc/library/pkgutil.rst b/Doc/library/pkgutil.rst index 788a02dcb8922f0..66d753bd1a3c6ce 100644 --- a/Doc/library/pkgutil.rst +++ b/Doc/library/pkgutil.rst @@ -25,9 +25,9 @@ support. from pkgutil import extend_path __path__ = extend_path(__path__, __name__) - This will add to the package's ``__path__`` all subdirectories of directories - on :data:`sys.path` named after the package. This is useful if one wants to - distribute different parts of a single logical package as multiple + For each directory on :data:`sys.path` that has a subdirectory that matches the + package name, add the subdirectory to the package's :attr:`__path__`. This is useful + if one wants to distribute different parts of a single logical package as multiple directories. It also looks for :file:`\*.pkg` files beginning where ``*`` matches the diff --git a/Lib/pkgutil.py b/Lib/pkgutil.py index bdebfd2fc8ac329..56731de64af494f 100644 --- a/Lib/pkgutil.py +++ b/Lib/pkgutil.py @@ -511,10 +511,10 @@ def extend_path(path, name): from pkgutil import extend_path __path__ = extend_path(__path__, __name__) - This will add to the package's __path__ all subdirectories of - directories on sys.path named after the package. This is useful - if one wants to distribute different parts of a single logical - package as multiple directories. + For each directory on sys.path that has a subdirectory that + matches the package name, add the subdirectory to the package's + __path__. This is useful if one wants to distribute different + parts of a single logical package as multiple directories. It also looks for *.pkg files beginning where * matches the name argument. This feature is similar to *.pth files (see site.py), From 0fd38917582aae0728e20d8a641e56d9be9270c7 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sun, 23 Apr 2023 03:08:27 +0300 Subject: [PATCH 45/82] gh-102310: Change error range for invalid bytes literals (#103663) --- Lib/test/test_syntax.py | 24 +++++++++++++++++++ ...-04-21-17-03-14.gh-issue-102310.anLjDx.rst | 1 + Parser/string_parser.c | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2023-04-21-17-03-14.gh-issue-102310.anLjDx.rst diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index f23653558a9119f..f959bbb44007026 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -1853,6 +1853,30 @@ def f(x: *b) Traceback (most recent call last): ... SyntaxError: invalid syntax + +Invalid bytes literals: + + >>> b"Ā" + Traceback (most recent call last): + ... + b"Ā" + ^^^ + SyntaxError: bytes can only contain ASCII literal characters + + >>> b"абвгде" + Traceback (most recent call last): + ... + b"абвгде" + ^^^^^^^^ + SyntaxError: bytes can only contain ASCII literal characters + + >>> b"abc ъющый" # first 3 letters are ascii + Traceback (most recent call last): + ... + b"abc ъющый" + ^^^^^^^^^^^ + SyntaxError: bytes can only contain ASCII literal characters + """ import re diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-04-21-17-03-14.gh-issue-102310.anLjDx.rst b/Misc/NEWS.d/next/Core and Builtins/2023-04-21-17-03-14.gh-issue-102310.anLjDx.rst new file mode 100644 index 000000000000000..15cb6c64adbab11 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-04-21-17-03-14.gh-issue-102310.anLjDx.rst @@ -0,0 +1 @@ +Change the error range for invalid bytes literals. diff --git a/Parser/string_parser.c b/Parser/string_parser.c index be5f0c4a60a663a..d4ce33850f7c580 100644 --- a/Parser/string_parser.c +++ b/Parser/string_parser.c @@ -248,7 +248,8 @@ _PyPegen_parse_string(Parser *p, Token *t) const char *ch; for (ch = s; *ch; ch++) { if (Py_CHARMASK(*ch) >= 0x80) { - RAISE_SYNTAX_ERROR( + RAISE_SYNTAX_ERROR_KNOWN_LOCATION( + t, "bytes can only contain ASCII " "literal characters"); return NULL; From e38bebb9ee805df6848f42845e71c8da8a821ad3 Mon Sep 17 00:00:00 2001 From: Dan Hemberger <846186+hemberger@users.noreply.github.com> Date: Sat, 22 Apr 2023 21:41:23 -0700 Subject: [PATCH 46/82] gh-81403: Fix for CacheFTPHandler in urllib (#13951) bpo-37222: Fix for CacheFTPHandler in urllib A call to FTP.ntransfercmd must be followed by FTP.voidresp to clear the "end transfer" message. Without this, the client and server get out of sync, which will result in an error if the FTP instance is reused to open a second URL. This scenario occurs for even the most basic usage of CacheFTPHandler. Reverts the patch merged as a resolution to bpo-16270 and adds a test case for the CacheFTPHandler in test_urllib2net.py. Co-authored-by: Senthil Kumaran --- Lib/test/test_urllib2net.py | 2 ++ Lib/urllib/request.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py index 5da41c37bbfb8ee..d8d882b2d33589b 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -134,7 +134,9 @@ def setUp(self): # They do sometimes catch some major disasters, though. def test_ftp(self): + # Testing the same URL twice exercises the caching in CacheFTPHandler urls = [ + 'ftp://www.pythontest.net/README', 'ftp://www.pythontest.net/README', ('ftp://www.pythontest.net/non-existent-file', None, urllib.error.URLError), diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 19e2e5bd3356272..5314b3f26021eb6 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2475,7 +2475,13 @@ def retrfile(self, file, type): return (ftpobj, retrlen) def endtransfer(self): + if not self.busy: + return self.busy = 0 + try: + self.ftp.voidresp() + except ftperrors(): + pass def close(self): self.keepalive = False From 0056701aa370553636b676cc99e327137d1688c6 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Sun, 23 Apr 2023 08:33:39 -0600 Subject: [PATCH 47/82] GH-103699: Add `__orig_bases__` to various typing classes (#103698) Co-authored-by: Alex Waygood Co-authored-by: Jelle Zijlstra --- Lib/test/test_typing.py | 59 +++++++++++++++++++ Lib/typing.py | 11 +++- ...-04-22-22-37-39.gh-issue-103699.NizCjc.rst | 2 + 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2023-04-22-22-37-39.gh-issue-103699.NizCjc.rst diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index f983efe956f902a..715710be9e86b8d 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -6695,6 +6695,22 @@ def test_copy_and_pickle(self): self.assertEqual(jane2, jane) self.assertIsInstance(jane2, cls) + def test_orig_bases(self): + T = TypeVar('T') + + class SimpleNamedTuple(NamedTuple): + pass + + class GenericNamedTuple(NamedTuple, Generic[T]): + pass + + self.assertEqual(SimpleNamedTuple.__orig_bases__, (NamedTuple,)) + self.assertEqual(GenericNamedTuple.__orig_bases__, (NamedTuple, Generic[T])) + + CallNamedTuple = NamedTuple('CallNamedTuple', []) + + self.assertEqual(CallNamedTuple.__orig_bases__, (NamedTuple,)) + class TypedDictTests(BaseTestCase): def test_basics_functional_syntax(self): @@ -7126,6 +7142,49 @@ class TD(TypedDict): self.assertIs(type(a), dict) self.assertEqual(a, {'a': 1}) + def test_orig_bases(self): + T = TypeVar('T') + + class Parent(TypedDict): + pass + + class Child(Parent): + pass + + class OtherChild(Parent): + pass + + class MixedChild(Child, OtherChild, Parent): + pass + + class GenericParent(TypedDict, Generic[T]): + pass + + class GenericChild(GenericParent[int]): + pass + + class OtherGenericChild(GenericParent[str]): + pass + + class MixedGenericChild(GenericChild, OtherGenericChild, GenericParent[float]): + pass + + class MultipleGenericBases(GenericParent[int], GenericParent[float]): + pass + + CallTypedDict = TypedDict('CallTypedDict', {}) + + self.assertEqual(Parent.__orig_bases__, (TypedDict,)) + self.assertEqual(Child.__orig_bases__, (Parent,)) + self.assertEqual(OtherChild.__orig_bases__, (Parent,)) + self.assertEqual(MixedChild.__orig_bases__, (Child, OtherChild, Parent,)) + self.assertEqual(GenericParent.__orig_bases__, (TypedDict, Generic[T])) + self.assertEqual(GenericChild.__orig_bases__, (GenericParent[int],)) + self.assertEqual(OtherGenericChild.__orig_bases__, (GenericParent[str],)) + self.assertEqual(MixedGenericChild.__orig_bases__, (GenericChild, OtherGenericChild, GenericParent[float])) + self.assertEqual(MultipleGenericBases.__orig_bases__, (GenericParent[int], GenericParent[float])) + self.assertEqual(CallTypedDict.__orig_bases__, (TypedDict,)) + class RequiredTests(BaseTestCase): diff --git a/Lib/typing.py b/Lib/typing.py index 7c165562c2b53d6..354bc80eb3abfad 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -2962,7 +2962,9 @@ class Employee(NamedTuple): elif kwargs: raise TypeError("Either list of fields or keywords" " can be provided to NamedTuple, not both") - return _make_nmtuple(typename, fields, module=_caller()) + nt = _make_nmtuple(typename, fields, module=_caller()) + nt.__orig_bases__ = (NamedTuple,) + return nt _NamedTuple = type.__new__(NamedTupleMeta, 'NamedTuple', (), {}) @@ -2994,6 +2996,9 @@ def __new__(cls, name, bases, ns, total=True): tp_dict = type.__new__(_TypedDictMeta, name, (*generic_base, dict), ns) + if not hasattr(tp_dict, '__orig_bases__'): + tp_dict.__orig_bases__ = bases + annotations = {} own_annotations = ns.get('__annotations__', {}) msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" @@ -3104,7 +3109,9 @@ class body be required. # Setting correct module is necessary to make typed dict classes pickleable. ns['__module__'] = module - return _TypedDictMeta(typename, (), ns, total=total) + td = _TypedDictMeta(typename, (), ns, total=total) + td.__orig_bases__ = (TypedDict,) + return td _TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {}) TypedDict.__mro_entries__ = lambda bases: (_TypedDict,) diff --git a/Misc/NEWS.d/next/Library/2023-04-22-22-37-39.gh-issue-103699.NizCjc.rst b/Misc/NEWS.d/next/Library/2023-04-22-22-37-39.gh-issue-103699.NizCjc.rst new file mode 100644 index 000000000000000..60547a25a109bc0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-22-22-37-39.gh-issue-103699.NizCjc.rst @@ -0,0 +1,2 @@ +Add ``__orig_bases__`` to non-generic TypedDicts, call-based TypedDicts, and +call-based NamedTuples. Other TypedDicts and NamedTuples already had the attribute. From 9c3442c0938127788fa59e4ceb80ae78b86fad1d Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Sun, 23 Apr 2023 11:18:49 -0600 Subject: [PATCH 48/82] gh-101408: PyObject_GC_Resize should calculate preheader size. (gh-101741) --- .../2023-02-09-23-09-29.gh-issue-101408._paFIF.rst | 2 ++ Modules/gcmodule.c | 13 +++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2023-02-09-23-09-29.gh-issue-101408._paFIF.rst diff --git a/Misc/NEWS.d/next/C API/2023-02-09-23-09-29.gh-issue-101408._paFIF.rst b/Misc/NEWS.d/next/C API/2023-02-09-23-09-29.gh-issue-101408._paFIF.rst new file mode 100644 index 000000000000000..172d66163d42e61 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2023-02-09-23-09-29.gh-issue-101408._paFIF.rst @@ -0,0 +1,2 @@ +:c:func:`PyObject_GC_Resize` should calculate preheader size if needed. +Patch by Dong-hee Na. diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 1d00fc3e717788b..966c1e615502ef8 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -2361,16 +2361,17 @@ PyVarObject * _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems) { const size_t basicsize = _PyObject_VAR_SIZE(Py_TYPE(op), nitems); + const size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); _PyObject_ASSERT((PyObject *)op, !_PyObject_GC_IS_TRACKED(op)); - if (basicsize > (size_t)PY_SSIZE_T_MAX - sizeof(PyGC_Head)) { + if (basicsize > (size_t)PY_SSIZE_T_MAX - presize) { return (PyVarObject *)PyErr_NoMemory(); } - - PyGC_Head *g = AS_GC(op); - g = (PyGC_Head *)PyObject_Realloc(g, sizeof(PyGC_Head) + basicsize); - if (g == NULL) + char *mem = (char *)op - presize; + mem = (char *)PyObject_Realloc(mem, presize + basicsize); + if (mem == NULL) { return (PyVarObject *)PyErr_NoMemory(); - op = (PyVarObject *) FROM_GC(g); + } + op = (PyVarObject *) (mem + presize); Py_SET_SIZE(op, nitems); return op; } From 777bdff0ec4c21176ddf61e07bc75d170bc65d54 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Pandey <93041495+itsankitkp@users.noreply.github.com> Date: Sun, 23 Apr 2023 22:49:16 +0530 Subject: [PATCH 49/82] gh-103716: Add test support requires fork in simple_subprocess (gh-103717) add requires fork as test case depends on this --- Lib/test/test_socketserver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index 2fa5069423327a1..71ed4c7d58dafc3 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -56,7 +56,7 @@ class ForkingUnixDatagramServer(socketserver.ForkingMixIn, socketserver.UnixDatagramServer): pass - +@test.support.requires_fork() @contextlib.contextmanager def simple_subprocess(testcase): """Tests that a custom child process is not waited on (Issue 1540386)""" From 5041c2ba6e9c992d1c54834481c9be64581c0235 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sun, 23 Apr 2023 20:50:23 +0300 Subject: [PATCH 50/82] gh-103592: Add tests of `Literal` with `Enum` and `Union` of `Literal`s (#103706) --- Lib/test/test_typing.py | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 715710be9e86b8d..b78ce1e43630718 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -1789,6 +1789,30 @@ def Elem(*args): Union[Elem, str] # Nor should this + def test_union_of_literals(self): + self.assertEqual(Union[Literal[1], Literal[2]].__args__, + (Literal[1], Literal[2])) + self.assertEqual(Union[Literal[1], Literal[1]], + Literal[1]) + + self.assertEqual(Union[Literal[False], Literal[0]].__args__, + (Literal[False], Literal[0])) + self.assertEqual(Union[Literal[True], Literal[1]].__args__, + (Literal[True], Literal[1])) + + import enum + class Ints(enum.IntEnum): + A = 0 + B = 1 + + self.assertEqual(Union[Literal[Ints.A], Literal[Ints.B]].__args__, + (Literal[Ints.A], Literal[Ints.B])) + + self.assertEqual(Union[Literal[0], Literal[Ints.A], Literal[False]].__args__, + (Literal[0], Literal[Ints.A], Literal[False])) + self.assertEqual(Union[Literal[1], Literal[Ints.B], Literal[True]].__args__, + (Literal[1], Literal[Ints.B], Literal[True])) + class TupleTests(BaseTestCase): @@ -2156,6 +2180,13 @@ def test_basics(self): Literal[Literal[1, 2], Literal[4, 5]] Literal[b"foo", u"bar"] + def test_enum(self): + import enum + class My(enum.Enum): + A = 'A' + + self.assertEqual(Literal[My.A].__args__, (My.A,)) + def test_illegal_parameters_do_not_raise_runtime_errors(self): # Type checkers should reject these types, but we do not # raise errors at runtime to maintain maximum flexibility. @@ -2245,6 +2276,20 @@ def test_flatten(self): self.assertEqual(l, Literal[1, 2, 3]) self.assertEqual(l.__args__, (1, 2, 3)) + def test_does_not_flatten_enum(self): + import enum + class Ints(enum.IntEnum): + A = 1 + B = 2 + + l = Literal[ + Literal[Ints.A], + Literal[Ints.B], + Literal[1], + Literal[2], + ] + self.assertEqual(l.__args__, (Ints.A, Ints.B, 1, 2)) + XK = TypeVar('XK', str, bytes) XV = TypeVar('XV') From 05b3ce7339b9ce44eec728e88e80ba1f125436ed Mon Sep 17 00:00:00 2001 From: Lysandros Nikolaou Date: Sun, 23 Apr 2023 13:06:10 -0600 Subject: [PATCH 51/82] GH-103718: Correctly cache and restore f-string buffers when needed (GH-103719) --- Lib/test/test_fstring.py | 5 +++++ Parser/tokenizer.c | 38 +++++++++++++++++++++++++++----------- Parser/tokenizer.h | 3 +++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/Lib/test/test_fstring.py b/Lib/test/test_fstring.py index 0e71de85f16b9c0..b26b12d369f6ebd 100644 --- a/Lib/test/test_fstring.py +++ b/Lib/test/test_fstring.py @@ -1532,5 +1532,10 @@ def test_syntax_error_for_starred_expressions(self): "f-string: expecting a valid expression after '{'"): compile("f'{**a}'", "?", "exec") + def test_not_closing_quotes(self): + self.assertAllRaise(SyntaxError, "unterminated f-string literal", ['f"', "f'"]) + self.assertAllRaise(SyntaxError, "unterminated triple-quoted f-string literal", + ['f"""', "f'''"]) + if __name__ == '__main__': unittest.main() diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index f992e55dcac4887..0370f75efb53837 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -361,21 +361,35 @@ tok_concatenate_interactive_new_line(struct tok_state *tok, const char *line) { return 0; } - -/* Traverse and update all f-string buffers with the value */ +/* Traverse and remember all f-string buffers, in order to be able to restore + them after reallocating tok->buf */ static void -update_fstring_buffers(struct tok_state *tok, char value, int regular, int multiline) +remember_fstring_buffers(struct tok_state *tok) { int index; tokenizer_mode *mode; for (index = tok->tok_mode_stack_index; index >= 0; --index) { mode = &(tok->tok_mode_stack[index]); - if (regular && mode->f_string_start != NULL) { - mode->f_string_start += value; + if (mode->kind == TOK_FSTRING_MODE) { + mode->f_string_start_offset = mode->f_string_start - tok->buf; + mode->f_string_multi_line_start_offset = mode->f_string_multi_line_start - tok->buf; } - if (multiline && mode->f_string_multi_line_start != NULL) { - mode->f_string_multi_line_start += value; + } +} + +/* Traverse and restore all f-string buffers after reallocating tok->buf */ +static void +restore_fstring_buffers(struct tok_state *tok) +{ + int index; + tokenizer_mode *mode; + + for (index = tok->tok_mode_stack_index; index >= 0; --index) { + mode = &(tok->tok_mode_stack[index]); + if (mode->kind == TOK_FSTRING_MODE) { + mode->f_string_start = tok->buf + mode->f_string_start_offset; + mode->f_string_multi_line_start = tok->buf + mode->f_string_multi_line_start_offset; } } } @@ -476,7 +490,7 @@ tok_reserve_buf(struct tok_state *tok, Py_ssize_t size) Py_ssize_t start = tok->start == NULL ? -1 : tok->start - tok->buf; Py_ssize_t line_start = tok->start == NULL ? -1 : tok->line_start - tok->buf; Py_ssize_t multi_line_start = tok->multi_line_start - tok->buf; - update_fstring_buffers(tok, -*tok->buf, /*regular=*/1, /*multiline=*/1); + remember_fstring_buffers(tok); newbuf = (char *)PyMem_Realloc(newbuf, newsize); if (newbuf == NULL) { tok->done = E_NOMEM; @@ -489,7 +503,7 @@ tok_reserve_buf(struct tok_state *tok, Py_ssize_t size) tok->start = start < 0 ? NULL : tok->buf + start; tok->line_start = line_start < 0 ? NULL : tok->buf + line_start; tok->multi_line_start = multi_line_start < 0 ? NULL : tok->buf + multi_line_start; - update_fstring_buffers(tok, *tok->buf, /*regular=*/1, /*multiline=*/1); + restore_fstring_buffers(tok); } return 1; } @@ -1051,7 +1065,7 @@ tok_underflow_interactive(struct tok_state *tok) { } else if (tok->start != NULL) { Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf; - update_fstring_buffers(tok, -*tok->buf, /*regular=*/0, /*multiline=*/1); + remember_fstring_buffers(tok); size_t size = strlen(newtok); ADVANCE_LINENO(); if (!tok_reserve_buf(tok, size + 1)) { @@ -1064,7 +1078,7 @@ tok_underflow_interactive(struct tok_state *tok) { PyMem_Free(newtok); tok->inp += size; tok->multi_line_start = tok->buf + cur_multi_line_start; - update_fstring_buffers(tok, *tok->buf, /*regular=*/0, /*multiline=*/1); + restore_fstring_buffers(tok); } else { ADVANCE_LINENO(); @@ -2207,6 +2221,8 @@ tok_get_normal_mode(struct tok_state *tok, tokenizer_mode* current_tok, struct t the_current_tok->f_string_quote_size = quote_size; the_current_tok->f_string_start = tok->start; the_current_tok->f_string_multi_line_start = tok->line_start; + the_current_tok->f_string_start_offset = -1; + the_current_tok->f_string_multi_line_start_offset = -1; the_current_tok->last_expr_buffer = NULL; the_current_tok->last_expr_size = 0; the_current_tok->last_expr_end = -1; diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h index b75e4e8293d3d60..2b94aecce626c31 100644 --- a/Parser/tokenizer.h +++ b/Parser/tokenizer.h @@ -52,6 +52,9 @@ typedef struct _tokenizer_mode { const char* f_string_start; const char* f_string_multi_line_start; + Py_ssize_t f_string_start_offset; + Py_ssize_t f_string_multi_line_start_offset; + Py_ssize_t last_expr_size; Py_ssize_t last_expr_end; char* last_expr_buffer; From 730bbddfdf610343a2e132b0312d12254c3c73d6 Mon Sep 17 00:00:00 2001 From: James Hilton-Balfe Date: Sun, 23 Apr 2023 20:24:30 +0100 Subject: [PATCH 52/82] gh-101688: Implement types.get_original_bases (#101827) Co-authored-by: Alex Waygood --- Doc/library/types.rst | 40 ++++++++++++ Doc/reference/datamodel.rst | 4 ++ Doc/whatsnew/3.12.rst | 7 +++ Lib/test/test_types.py | 61 +++++++++++++++++++ Lib/types.py | 32 ++++++++++ ...-02-11-15-01-32.gh-issue-101688.kwXmfM.rst | 2 + 6 files changed, 146 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2023-02-11-15-01-32.gh-issue-101688.kwXmfM.rst diff --git a/Doc/library/types.rst b/Doc/library/types.rst index 27b9846325914d9..54887f4c51983aa 100644 --- a/Doc/library/types.rst +++ b/Doc/library/types.rst @@ -82,6 +82,46 @@ Dynamic Type Creation .. versionadded:: 3.7 +.. function:: get_original_bases(cls, /) + + Return the tuple of objects originally given as the bases of *cls* before + the :meth:`~object.__mro_entries__` method has been called on any bases + (following the mechanisms laid out in :pep:`560`). This is useful for + introspecting :ref:`Generics `. + + For classes that have an ``__orig_bases__`` attribute, this + function returns the value of ``cls.__orig_bases__``. + For classes without the ``__orig_bases__`` attribute, ``cls.__bases__`` is + returned. + + Examples:: + + from typing import TypeVar, Generic, NamedTuple, TypedDict + + T = TypeVar("T") + class Foo(Generic[T]): ... + class Bar(Foo[int], float): ... + class Baz(list[str]): ... + Eggs = NamedTuple("Eggs", [("a", int), ("b", str)]) + Spam = TypedDict("Spam", {"a": int, "b": str}) + + assert Bar.__bases__ == (Foo, float) + assert get_original_bases(Bar) == (Foo[int], float) + + assert Baz.__bases__ == (list,) + assert get_original_bases(Baz) == (list[str],) + + assert Eggs.__bases__ == (tuple,) + assert get_original_bases(Eggs) == (NamedTuple,) + + assert Spam.__bases__ == (dict,) + assert get_original_bases(Spam) == (TypedDict,) + + assert int.__bases__ == (object,) + assert get_original_bases(int) == (object,) + + .. versionadded:: 3.12 + .. seealso:: :pep:`560` - Core support for typing module and generic types diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 9f91ade35e50dcb..55431f1951e50d6 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -2102,6 +2102,10 @@ Resolving MRO entries :func:`types.resolve_bases` Dynamically resolve bases that are not instances of :class:`type`. + :func:`types.get_original_bases` + Retrieve a class's "original bases" prior to modifications by + :meth:`~object.__mro_entries__`. + :pep:`560` Core support for typing module and generic types. diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index b98b7151a321ea2..d16c496eb9103f8 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -407,6 +407,13 @@ threading profiling functions in all running threads in addition to the calling one. (Contributed by Pablo Galindo in :gh:`93503`.) +types +----- + +* Add :func:`types.get_original_bases` to allow for further introspection of + :ref:`user-defined-generics` when subclassed. (Contributed by + James Hilton-Balfe and Alex Waygood in :gh:`101827`.) + unicodedata ----------- diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index af095632a36fcb7..9fe5812a14e15d8 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -1360,6 +1360,67 @@ class C: pass D = types.new_class('D', (A(), C, B()), {}) self.assertEqual(D.__bases__, (A1, A2, A3, C, B1, B2)) + def test_get_original_bases(self): + T = typing.TypeVar('T') + class A: pass + class B(typing.Generic[T]): pass + class C(B[int]): pass + class D(B[str], float): pass + self.assertEqual(types.get_original_bases(A), (object,)) + self.assertEqual(types.get_original_bases(B), (typing.Generic[T],)) + self.assertEqual(types.get_original_bases(C), (B[int],)) + self.assertEqual(types.get_original_bases(int), (object,)) + self.assertEqual(types.get_original_bases(D), (B[str], float)) + + class E(list[T]): pass + class F(list[int]): pass + + self.assertEqual(types.get_original_bases(E), (list[T],)) + self.assertEqual(types.get_original_bases(F), (list[int],)) + + class ClassBasedNamedTuple(typing.NamedTuple): + x: int + + class GenericNamedTuple(typing.NamedTuple, typing.Generic[T]): + x: T + + CallBasedNamedTuple = typing.NamedTuple("CallBasedNamedTuple", [("x", int)]) + + self.assertIs( + types.get_original_bases(ClassBasedNamedTuple)[0], typing.NamedTuple + ) + self.assertEqual( + types.get_original_bases(GenericNamedTuple), + (typing.NamedTuple, typing.Generic[T]) + ) + self.assertIs( + types.get_original_bases(CallBasedNamedTuple)[0], typing.NamedTuple + ) + + class ClassBasedTypedDict(typing.TypedDict): + x: int + + class GenericTypedDict(typing.TypedDict, typing.Generic[T]): + x: T + + CallBasedTypedDict = typing.TypedDict("CallBasedTypedDict", {"x": int}) + + self.assertIs( + types.get_original_bases(ClassBasedTypedDict)[0], + typing.TypedDict + ) + self.assertEqual( + types.get_original_bases(GenericTypedDict), + (typing.TypedDict, typing.Generic[T]) + ) + self.assertIs( + types.get_original_bases(CallBasedTypedDict)[0], + typing.TypedDict + ) + + with self.assertRaisesRegex(TypeError, "Expected an instance of type"): + types.get_original_bases(object()) + # Many of the following tests are derived from test_descr.py def test_prepare_class(self): # Basic test of metaclass derivation diff --git a/Lib/types.py b/Lib/types.py index aa8a1c847223994..6110e6e1de7249e 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -143,6 +143,38 @@ def _calculate_meta(meta, bases): "of the metaclasses of all its bases") return winner + +def get_original_bases(cls, /): + """Return the class's "original" bases prior to modification by `__mro_entries__`. + + Examples:: + + from typing import TypeVar, Generic, NamedTuple, TypedDict + + T = TypeVar("T") + class Foo(Generic[T]): ... + class Bar(Foo[int], float): ... + class Baz(list[str]): ... + Eggs = NamedTuple("Eggs", [("a", int), ("b", str)]) + Spam = TypedDict("Spam", {"a": int, "b": str}) + + assert get_original_bases(Bar) == (Foo[int], float) + assert get_original_bases(Baz) == (list[str],) + assert get_original_bases(Eggs) == (NamedTuple,) + assert get_original_bases(Spam) == (TypedDict,) + assert get_original_bases(int) == (object,) + """ + try: + return cls.__orig_bases__ + except AttributeError: + try: + return cls.__bases__ + except AttributeError: + raise TypeError( + f'Expected an instance of type, not {type(cls).__name__!r}' + ) from None + + class DynamicClassAttribute: """Route attribute access on a class to __getattr__. diff --git a/Misc/NEWS.d/next/Library/2023-02-11-15-01-32.gh-issue-101688.kwXmfM.rst b/Misc/NEWS.d/next/Library/2023-02-11-15-01-32.gh-issue-101688.kwXmfM.rst new file mode 100644 index 000000000000000..6df69463931494a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-02-11-15-01-32.gh-issue-101688.kwXmfM.rst @@ -0,0 +1,2 @@ +Implement :func:`types.get_original_bases` to provide further introspection +for types. From 82932b72cabb6a77bbf5465a0a9574f90773aadf Mon Sep 17 00:00:00 2001 From: Senthil Kumaran Date: Sun, 23 Apr 2023 16:58:03 -0600 Subject: [PATCH 53/82] gh-81403: Add NEWS entry for PR #13951 (#103729) Add NEWS entry for PR #13951 --- .../next/Library/2023-04-23-15-39-17.gh-issue-81403.zVz9Td.rst | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2023-04-23-15-39-17.gh-issue-81403.zVz9Td.rst diff --git a/Misc/NEWS.d/next/Library/2023-04-23-15-39-17.gh-issue-81403.zVz9Td.rst b/Misc/NEWS.d/next/Library/2023-04-23-15-39-17.gh-issue-81403.zVz9Td.rst new file mode 100644 index 000000000000000..6adb71f7677229d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-23-15-39-17.gh-issue-81403.zVz9Td.rst @@ -0,0 +1,3 @@ +:class:`urllib.request.CacheFTPHandler` no longer raises :class:`URLError` +if a cached FTP instance is reused. ftplib's endtransfer method calls +voidresp to drain the connection to handle FTP instance reuse properly. From 7255bbd4a1841447a21c3eb74e4fd9e21818d833 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Pandey <93041495+itsankitkp@users.noreply.github.com> Date: Mon, 24 Apr 2023 04:44:14 +0530 Subject: [PATCH 54/82] gh-103724: Add test case if no arg as provided in os.register_at_fork (gh-103725) --- Lib/test/test_posix.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 77f42f7f9c937ba..444f8abe4607b71 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -231,6 +231,9 @@ def test_register_at_fork(self): with self.assertRaises(TypeError, msg="Invalid arg was allowed"): # Ensure a combination of valid and invalid is an error. os.register_at_fork(before=None, after_in_parent=lambda: 3) + with self.assertRaises(TypeError, msg="At least one argument is required"): + # when no arg is passed + os.register_at_fork() with self.assertRaises(TypeError, msg="Invalid arg was allowed"): # Ensure a combination of valid and invalid is an error. os.register_at_fork(before=lambda: None, after_in_child='') From bd2dca035af88694e25fb060f984fbbcda82bed8 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Mon, 24 Apr 2023 02:25:08 +0300 Subject: [PATCH 55/82] gh-103668: Run pyugrade on idlelib (#103671) --------- Co-authored-by: Terry Jan Reedy --- Lib/idlelib/calltip_w.py | 8 ++++---- Lib/idlelib/debugger.py | 7 ++++--- Lib/idlelib/debugobj.py | 2 +- Lib/idlelib/editor.py | 13 +++++++------ Lib/idlelib/filelist.py | 4 ++-- Lib/idlelib/idle_test/test_config.py | 2 +- Lib/idlelib/idle_test/test_outwin.py | 2 +- Lib/idlelib/multicall.py | 10 +++++----- Lib/idlelib/outwin.py | 2 +- Lib/idlelib/pyshell.py | 20 ++++++++++---------- Lib/idlelib/redirector.py | 8 +++----- Lib/idlelib/rpc.py | 4 ++-- Lib/idlelib/run.py | 4 ++-- Lib/idlelib/textview.py | 2 +- Lib/idlelib/tooltip.py | 8 ++++---- Lib/idlelib/tree.py | 2 +- Lib/idlelib/undo.py | 2 +- 17 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Lib/idlelib/calltip_w.py b/Lib/idlelib/calltip_w.py index 1e0404aa49f5628..278546064adde29 100644 --- a/Lib/idlelib/calltip_w.py +++ b/Lib/idlelib/calltip_w.py @@ -25,7 +25,7 @@ def __init__(self, text_widget): text_widget: a Text widget with code for which call-tips are desired """ # Note: The Text widget will be accessible as self.anchor_widget - super(CalltipWindow, self).__init__(text_widget) + super().__init__(text_widget) self.label = self.text = None self.parenline = self.parencol = self.lastline = None @@ -54,7 +54,7 @@ def position_window(self): return self.lastline = curline self.anchor_widget.see("insert") - super(CalltipWindow, self).position_window() + super().position_window() def showtip(self, text, parenleft, parenright): """Show the call-tip, bind events which will close it and reposition it. @@ -73,7 +73,7 @@ def showtip(self, text, parenleft, parenright): self.parenline, self.parencol = map( int, self.anchor_widget.index(parenleft).split(".")) - super(CalltipWindow, self).showtip() + super().showtip() self._bind_events() @@ -143,7 +143,7 @@ def hidetip(self): # ValueError may be raised by MultiCall pass - super(CalltipWindow, self).hidetip() + super().hidetip() def _bind_events(self): """Bind event handlers.""" diff --git a/Lib/idlelib/debugger.py b/Lib/idlelib/debugger.py index ccd03e46e161479..452c62b42655b3b 100644 --- a/Lib/idlelib/debugger.py +++ b/Lib/idlelib/debugger.py @@ -49,9 +49,9 @@ def __frame2message(self, frame): filename = code.co_filename lineno = frame.f_lineno basename = os.path.basename(filename) - message = "%s:%s" % (basename, lineno) + message = f"{basename}:{lineno}" if code.co_name != "?": - message = "%s: %s()" % (message, code.co_name) + message = f"{message}: {code.co_name}()" return message @@ -213,7 +213,8 @@ def interaction(self, message, frame, info=None): m1 = "%s" % str(type) if value is not None: try: - m1 = "%s: %s" % (m1, str(value)) + # TODO redo entire section, tries not needed. + m1 = f"{m1}: {value}" except: pass bg = "yellow" diff --git a/Lib/idlelib/debugobj.py b/Lib/idlelib/debugobj.py index 5a4c99788420357..71d01c7070df54c 100644 --- a/Lib/idlelib/debugobj.py +++ b/Lib/idlelib/debugobj.py @@ -87,7 +87,7 @@ def GetSubList(self): continue def setfunction(value, key=key, object=self.object): object[key] = value - item = make_objecttreeitem("%r:" % (key,), value, setfunction) + item = make_objecttreeitem(f"{key!r}:", value, setfunction) sublist.append(item) return sublist diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 08d6aa2efde22ad..505815502600b16 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -38,12 +38,13 @@ def _sphinx_version(): "Format sys.version_info to produce the Sphinx version string used to install the chm docs" major, minor, micro, level, serial = sys.version_info - release = '%s%s' % (major, minor) - release += '%s' % (micro,) + # TODO remove unneeded function since .chm no longer installed + release = f'{major}{minor}' + release += f'{micro}' if level == 'candidate': - release += 'rc%s' % (serial,) + release += f'rc{serial}' elif level != 'final': - release += '%s%s' % (level[0], serial) + release += f'{level[0]}{serial}' return release @@ -950,7 +951,7 @@ def update_recent_files_list(self, new_file=None): rf_list = [] file_path = self.recent_files_path if file_path and os.path.exists(file_path): - with open(file_path, 'r', + with open(file_path, encoding='utf_8', errors='replace') as rf_list_file: rf_list = rf_list_file.readlines() if new_file: @@ -1458,7 +1459,7 @@ def newline_and_indent_event(self, event): else: self.reindent_to(y.compute_backslash_indent()) else: - assert 0, "bogus continuation type %r" % (c,) + assert 0, f"bogus continuation type {c!r}" return "break" # This line starts a brand new statement; indent relative to diff --git a/Lib/idlelib/filelist.py b/Lib/idlelib/filelist.py index 254f5caf6b81b05..f87781d2570fe06 100644 --- a/Lib/idlelib/filelist.py +++ b/Lib/idlelib/filelist.py @@ -22,7 +22,7 @@ def open(self, filename, action=None): # This can happen when bad filename is passed on command line: messagebox.showerror( "File Error", - "%r is a directory." % (filename,), + f"{filename!r} is a directory.", master=self.root) return None key = os.path.normcase(filename) @@ -90,7 +90,7 @@ def filename_changed_edit(self, edit): self.inversedict[conflict] = None messagebox.showerror( "Name Conflict", - "You now have multiple edit windows open for %r" % (filename,), + f"You now have multiple edit windows open for {filename!r}", master=self.root) self.dict[newkey] = edit self.inversedict[edit] = newkey diff --git a/Lib/idlelib/idle_test/test_config.py b/Lib/idlelib/idle_test/test_config.py index 697fda527968ded..08ed76fe288294c 100644 --- a/Lib/idlelib/idle_test/test_config.py +++ b/Lib/idlelib/idle_test/test_config.py @@ -191,7 +191,7 @@ def setUpClass(cls): idle_dir = os.path.abspath(sys.path[0]) for ctype in conf.config_types: config_path = os.path.join(idle_dir, '../config-%s.def' % ctype) - with open(config_path, 'r') as f: + with open(config_path) as f: cls.config_string[ctype] = f.read() cls.orig_warn = config._warn diff --git a/Lib/idlelib/idle_test/test_outwin.py b/Lib/idlelib/idle_test/test_outwin.py index e347bfca7f191a4..d6e85ad674417c1 100644 --- a/Lib/idlelib/idle_test/test_outwin.py +++ b/Lib/idlelib/idle_test/test_outwin.py @@ -159,7 +159,7 @@ def test_file_line_helper(self, mock_open): for line, expected_output in test_lines: self.assertEqual(flh(line), expected_output) if expected_output: - mock_open.assert_called_with(expected_output[0], 'r') + mock_open.assert_called_with(expected_output[0]) if __name__ == '__main__': diff --git a/Lib/idlelib/multicall.py b/Lib/idlelib/multicall.py index dc02001292fc14e..0200f445cc9340b 100644 --- a/Lib/idlelib/multicall.py +++ b/Lib/idlelib/multicall.py @@ -52,9 +52,9 @@ _modifier_masks = (MC_CONTROL, MC_ALT, MC_SHIFT, MC_META) # a dictionary to map a modifier name into its number -_modifier_names = dict([(name, number) +_modifier_names = {name: number for number in range(len(_modifiers)) - for name in _modifiers[number]]) + for name in _modifiers[number]} # In 3.4, if no shell window is ever open, the underlying Tk widget is # destroyed before .__del__ methods here are called. The following @@ -134,7 +134,7 @@ def nbits(n): return nb statelist = [] for state in states: - substates = list(set(state & x for x in states)) + substates = list({state & x for x in states}) substates.sort(key=nbits, reverse=True) statelist.append(substates) return statelist @@ -258,9 +258,9 @@ def __del__(self): _binder_classes = (_ComplexBinder,) * 4 + (_SimpleBinder,) * (len(_types)-4) # A dictionary to map a type name into its number -_type_names = dict([(name, number) +_type_names = {name: number for number in range(len(_types)) - for name in _types[number]]) + for name in _types[number]} _keysym_re = re.compile(r"^\w+$") _button_re = re.compile(r"^[1-5]$") diff --git a/Lib/idlelib/outwin.py b/Lib/idlelib/outwin.py index 5ab08bbaf4bc955..ac67c904ab9797b 100644 --- a/Lib/idlelib/outwin.py +++ b/Lib/idlelib/outwin.py @@ -42,7 +42,7 @@ def file_line_helper(line): if match: filename, lineno = match.group(1, 2) try: - f = open(filename, "r") + f = open(filename) f.close() break except OSError: diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index e68233a5a4131e4..bdde156166171b6 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -249,7 +249,7 @@ def store_file_breaks(self): breaks = self.breakpoints filename = self.io.filename try: - with open(self.breakpointPath, "r") as fp: + with open(self.breakpointPath) as fp: lines = fp.readlines() except OSError: lines = [] @@ -279,7 +279,7 @@ def restore_file_breaks(self): if filename is None: return if os.path.isfile(self.breakpointPath): - with open(self.breakpointPath, "r") as fp: + with open(self.breakpointPath) as fp: lines = fp.readlines() for line in lines: if line.startswith(filename + '='): @@ -441,7 +441,7 @@ def build_subprocess_arglist(self): # run from the IDLE source directory. del_exitf = idleConf.GetOption('main', 'General', 'delete-exitfunc', default=False, type='bool') - command = "__import__('idlelib.run').run.main(%r)" % (del_exitf,) + command = f"__import__('idlelib.run').run.main({del_exitf!r})" return [sys.executable] + w + ["-c", command, str(self.port)] def start_subprocess(self): @@ -574,9 +574,9 @@ def transfer_path(self, with_cwd=False): self.runcommand("""if 1: import sys as _sys - _sys.path = %r + _sys.path = {!r} del _sys - \n""" % (path,)) + \n""".format(path)) active_seq = None @@ -703,14 +703,14 @@ def stuffsource(self, source): def prepend_syspath(self, filename): "Prepend sys.path with file's directory if not already included" self.runcommand("""if 1: - _filename = %r + _filename = {!r} import sys as _sys from os.path import dirname as _dirname _dir = _dirname(_filename) if not _dir in _sys.path: _sys.path.insert(0, _dir) del _filename, _sys, _dirname, _dir - \n""" % (filename,)) + \n""".format(filename)) def showsyntaxerror(self, filename=None): """Override Interactive Interpreter method: Use Colorizing @@ -1536,7 +1536,7 @@ def main(): try: opts, args = getopt.getopt(sys.argv[1:], "c:deihnr:st:") except getopt.error as msg: - print("Error: %s\n%s" % (msg, usage_msg), file=sys.stderr) + print(f"Error: {msg}\n{usage_msg}", file=sys.stderr) sys.exit(2) for o, a in opts: if o == '-c': @@ -1668,9 +1668,9 @@ def main(): if cmd or script: shell.interp.runcommand("""if 1: import sys as _sys - _sys.argv = %r + _sys.argv = {!r} del _sys - \n""" % (sys.argv,)) + \n""".format(sys.argv)) if cmd: shell.interp.execsource(cmd) elif script: diff --git a/Lib/idlelib/redirector.py b/Lib/idlelib/redirector.py index 9ab34c5acfb22c6..4928340e98df686 100644 --- a/Lib/idlelib/redirector.py +++ b/Lib/idlelib/redirector.py @@ -47,9 +47,8 @@ def __init__(self, widget): tk.createcommand(w, self.dispatch) def __repr__(self): - return "%s(%s<%s>)" % (self.__class__.__name__, - self.widget.__class__.__name__, - self.widget._w) + w = self.widget + return f"{self.__class__.__name__,}({w.__class__.__name__}<{w._w}>)" def close(self): "Unregister operations and revert redirection created by .__init__." @@ -143,8 +142,7 @@ def __init__(self, redir, operation): self.orig_and_operation = (redir.orig, operation) def __repr__(self): - return "%s(%r, %r)" % (self.__class__.__name__, - self.redir, self.operation) + return f"{self.__class__.__name__,}({self.redir!r}, {self.operation!r})" def __call__(self, *args): return self.tk_call(self.orig_and_operation + args) diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 62eec84c9c8d090..b08b80c90045511 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -174,7 +174,7 @@ def localcall(self, seq, request): except TypeError: return ("ERROR", "Bad request format") if oid not in self.objtable: - return ("ERROR", "Unknown object id: %r" % (oid,)) + return ("ERROR", f"Unknown object id: {oid!r}") obj = self.objtable[oid] if methodname == "__methods__": methods = {} @@ -185,7 +185,7 @@ def localcall(self, seq, request): _getattributes(obj, attributes) return ("OK", attributes) if not hasattr(obj, methodname): - return ("ERROR", "Unsupported method name: %r" % (methodname,)) + return ("ERROR", f"Unsupported method name: {methodname!r}") method = getattr(obj, methodname) try: if how == 'CALL': diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 04ce615621ee7cb..84792a82b0022cc 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -52,13 +52,13 @@ def idle_formatwarning(message, category, filename, lineno, line=None): """Format warnings the IDLE way.""" s = "\nWarning (from warnings module):\n" - s += ' File \"%s\", line %s\n' % (filename, lineno) + s += f' File \"{filename}\", line {lineno}\n' if line is None: line = linecache.getline(filename, lineno) line = line.strip() if line: s += " %s\n" % line - s += "%s: %s\n" % (category.__name__, message) + s += f"{category.__name__}: {message}\n" return s def idle_showwarning_subproc( diff --git a/Lib/idlelib/textview.py b/Lib/idlelib/textview.py index a66c1a4309a617f..23f0f4cb5027ec3 100644 --- a/Lib/idlelib/textview.py +++ b/Lib/idlelib/textview.py @@ -169,7 +169,7 @@ def view_file(parent, title, filename, encoding, modal=True, wrap='word', with contents of the file. """ try: - with open(filename, 'r', encoding=encoding) as file: + with open(filename, encoding=encoding) as file: contents = file.read() except OSError: showerror(title='File Load Error', diff --git a/Lib/idlelib/tooltip.py b/Lib/idlelib/tooltip.py index d714318dae8ef19..3983690dd411771 100644 --- a/Lib/idlelib/tooltip.py +++ b/Lib/idlelib/tooltip.py @@ -92,7 +92,7 @@ def __init__(self, anchor_widget, hover_delay=1000): e.g. after hovering over the anchor widget with the mouse for enough time. """ - super(OnHoverTooltipBase, self).__init__(anchor_widget) + super().__init__(anchor_widget) self.hover_delay = hover_delay self._after_id = None @@ -107,7 +107,7 @@ def __del__(self): self.anchor_widget.unbind("