]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-91048: Add better error messages for remote debugging for CI builds (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 26 May 2025 15:04:36 +0000 (17:04 +0200)
committerGitHub <noreply@github.com>
Mon, 26 May 2025 15:04:36 +0000 (15:04 +0000)
Doc/data/python3.14.abi
Include/internal/pycore_global_objects_fini_generated.h
Include/internal/pycore_global_strings.h
Include/internal/pycore_runtime_init_generated.h
Include/internal/pycore_unicodeobject_generated.h
Lib/test/test_external_inspection.py
Modules/_remote_debugging_module.c
Modules/clinic/_remote_debugging_module.c.h
Python/remote_debug.h

index 375a1ee03e032dd3634dec547c106ec8048686ad..225dfc3dc251b2fdb1edb82901ac2dce36db9e1f 100644 (file)
     <elf-symbol name='_PyNotImplemented_Type' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyOS_ReadlineTState' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyParser_TokenNames' size='560' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='_PyRuntime' size='316424' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyRuntime' size='316472' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PySet_Dummy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnion_Type' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyWeakref_CallableProxyType' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_Py_ctype_tolower' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_Py_ctype_toupper' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-variable-symbols>
-  <abi-instr address-size='64' path='./Modules/_abc.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_abc.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyType_SetFlags' filepath='./Include/internal/pycore_typeobject.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-1'/>
       <parameter type-id='type-id-2'/>
     </function-decl>
     <type-decl name='unsigned long int' size-in-bits='64' id='type-id-2'/>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_codecsmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_codecsmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyCodec_UnregisterError' filepath='./Include/internal/pycore_codecs.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_functoolsmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_functoolsmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyDict_Clear_LockHeld' filepath='./Include/internal/pycore_dict.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/_iomodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/_iomodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyIO_Module' type-id='type-id-9' visibility='default' filepath='./Modules/_io/_iomodule.h' line='143' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/bufferedio.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/bufferedio.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='_PyIO_State' type-id='type-id-10' filepath='./Modules/_io/_iomodule.h' line='35' column='1' id='type-id-11'/>
     <typedef-decl name='Py_off_t' type-id='type-id-12' filepath='./Modules/_io/_iomodule.h' line='109' column='1' id='type-id-13'/>
     <class-decl name='_io_state' size-in-bits='1024' is-struct='yes' visibility='default' filepath='./Modules/_io/_iomodule.h' line='145' column='1' id='type-id-10'>
       <return type-id='type-id-13'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/bytesio.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/bytesio.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='bytesio_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='17' column='1'/>
     <var-decl name='bytesiobuf_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='18' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/fileio.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/fileio.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='fileio_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='19' column='1'/>
     <function-decl name='_PyIOBase_finalize' filepath='./Modules/_io/_iomodule.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/iobase.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/iobase.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='iobase_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='20' column='1'/>
     <var-decl name='rawiobase_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='22' column='1'/>
     <function-decl name='_PyIO_trap_eintr' filepath='./Modules/_io/_iomodule.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/stringio.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/stringio.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='stringio_spec' type-id='type-id-16' visibility='default' filepath='./Modules/_io/_iomodule.h' line='23' column='1'/>
     <function-decl name='_PyIncrementalNewlineDecoder_decode' filepath='./Modules/_io/_iomodule.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-7'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_io/textio.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_io/textio.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyCodec_LookupTextEncoding' filepath='./Include/internal/pycore_codecs.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_localemodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_localemodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='gettext' filepath='/usr/include/libintl.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-17'/>
       <return type-id='type-id-21'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_sre/sre.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_sre/sre.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-22' const='yes' id='type-id-23'/>
     <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
     <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-25'/>
     </function-decl>
     <type-decl name='unsigned short int' size-in-bits='16' id='type-id-22'/>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_threadmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_threadmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyMutex_TryUnlock' filepath='./Include/internal/pycore_lock.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-26'/>
       <return type-id='type-id-5'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_tracemalloc.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_tracemalloc.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyTraceMalloc_IsTracing' filepath='./Include/internal/pycore_tracemalloc.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-decl>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/_weakref.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/_weakref.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyWeakref_GetWeakrefCount' filepath='./Include/internal/pycore_weakref.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-7'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/atexitmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/atexitmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyUnstable_AtExit' mangled-name='PyUnstable_AtExit' filepath='./Modules/atexitmodule.c' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnstable_AtExit'>
       <parameter type-id='type-id-33' name='interp' filepath='./Modules/atexitmodule.c' line='27' column='1'/>
       <parameter type-id='type-id-34' name='func' filepath='./Modules/atexitmodule.c' line='28' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/faulthandler.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/faulthandler.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <enum-decl name='__rlimit_resource' filepath='/usr/include/x86_64-linux-gnu/bits/resource.h' line='31' column='1' id='type-id-36'>
       <underlying-type type-id='type-id-37'/>
       <enumerator name='RLIMIT_CPU' value='0'/>
       <return type-id='type-id-2'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/getbuildinfo.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/getbuildinfo.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <type-decl name='char' size-in-bits='8' id='type-id-58'/>
     <type-decl name='int' size-in-bits='32' id='type-id-5'/>
     <type-decl name='unsigned long int' size-in-bits='64' id='type-id-2'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/getpath.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/getpath.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_wfopen' filepath='./Include/internal/pycore_fileutils.h' line='114' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-18'/>
       <parameter type-id='type-id-18'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/posixmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/posixmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-68' size-in-bits='1024' id='type-id-69'>
       <subrange length='16' type-id='type-id-2' id='type-id-70'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/pwdmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/pwdmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='passwd' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/pwd.h' line='49' column='1' id='type-id-192'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='pw_name' type-id='type-id-17' visibility='default' filepath='/usr/include/pwd.h' line='51' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/signalmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/signalmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <enum-decl name='__itimer_which' filepath='/usr/include/x86_64-linux-gnu/sys/time.h' line='114' column='1' id='type-id-197'>
       <underlying-type type-id='type-id-37'/>
       <enumerator name='ITIMER_REAL' value='0'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/symtablemodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/symtablemodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_SymtableStringObjectFlags' filepath='./Include/internal/pycore_symtable.h' line='187' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-210'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Modules/timemodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Modules/timemodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyTimeFraction' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-211' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='89' column='1' id='type-id-212'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='numer' type-id='type-id-28' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='90' column='1'/>
       <return type-id='type-id-21'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Python/dynload_shlib.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Python/dynload_shlib.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-4' size-in-bits='256' id='type-id-227'>
       <subrange length='4' type-id='type-id-2' id='type-id-228'/>
     </array-type-def>
       <return type-id='type-id-17'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Python/getplatform.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Python/getplatform.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='Py_GetPlatform' mangled-name='Py_GetPlatform' filepath='./Python/getplatform.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPlatform'>
       <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='./Python/importdl.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Python/importdl.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='dl_funcptr' type-id='type-id-232' filepath='./Include/internal/pycore_importdl.h' line='132' column='1' id='type-id-233'/>
     <function-decl name='_PyImport_SwapPackageContext' filepath='./Include/internal/pycore_import.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-3'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='./Python/sysmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='./Python/sysmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='Py_AuditHookFunction' type-id='type-id-235' filepath='./Include/cpython/audit.h' line='6' column='1' id='type-id-236'/>
     <pointer-type-def type-id='type-id-237' size-in-bits='64' id='type-id-235'/>
     <function-decl name='_PyEval_SetSwitchInterval' filepath='./Include/internal/pycore_ceval.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Modules/config.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Modules/config.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyInit_atexit' mangled-name='PyInit_atexit' filepath='Modules/config.c' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_atexit'>
       <return type-id='type-id-6'/>
     </function-decl>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Modules/gcmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Modules/gcmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <enum-decl name='_PyGC_Reason' naming-typedef-id='type-id-245' filepath='./Include/internal/pycore_gc.h' line='148' column='1' id='type-id-246'>
       <underlying-type type-id='type-id-37'/>
       <enumerator name='_Py_GC_REASON_HEAP' value='0'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Modules/main.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Modules/main.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-247' const='yes' id='type-id-248'/>
     <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-249'/>
     <function-decl name='_PyImport_Fini2' filepath='./Include/internal/pycore_import.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/abstract.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/abstract.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyListObject' size-in-bits='320' is-struct='yes' naming-typedef-id='type-id-252' visibility='default' filepath='./Include/cpython/listobject.h' line='5' column='1' id='type-id-253'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob_base' type-id='type-id-254' visibility='default' filepath='./Include/cpython/listobject.h' line='6' column='1'/>
       <return type-id='type-id-5'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/boolobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/boolobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_Py_FalseStruct' type-id='type-id-258' mangled-name='_Py_FalseStruct' visibility='default' filepath='./Include/boolobject.h' line='17' column='1' elf-symbol-id='_Py_FalseStruct'/>
     <var-decl name='_Py_TrueStruct' type-id='type-id-258' mangled-name='_Py_TrueStruct' visibility='default' filepath='./Include/boolobject.h' line='18' column='1' elf-symbol-id='_Py_TrueStruct'/>
     <function-decl name='_PyArg_NoKwnames' filepath='./Include/internal/pycore_modsupport.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/bytearrayobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/bytearrayobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-58' size-in-bits='infinite' id='type-id-272'>
       <subrange length='infinite' id='type-id-230'/>
     </array-type-def>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/bytes_methods.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/bytes_methods.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-60' size-in-bits='984' id='type-id-277'>
       <subrange length='123' type-id='type-id-2' id='type-id-278'/>
     </array-type-def>
       <return type-id='type-id-35'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/bytesobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/bytesobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyBytesWriter' size-in-bits='4416' is-struct='yes' naming-typedef-id='type-id-300' visibility='default' filepath='./Include/internal/pycore_bytesobject.h' line='68' column='1' id='type-id-301'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='buffer' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_bytesobject.h' line='70' column='1'/>
       <return type-id='type-id-35'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/call.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/call.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_Py_Identifier' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='39' column='1' id='type-id-307'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='string' type-id='type-id-4' visibility='default' filepath='./Include/cpython/object.h' line='40' column='1'/>
       <return type-id='type-id-7'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/capsule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/capsule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='PyCapsule_Destructor' type-id='type-id-314' filepath='./Include/pycapsule.h' line='23' column='1' id='type-id-315'/>
     <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='./Include/import.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModule'>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-3'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/cellobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/cellobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyCell_Type' type-id='type-id-271' mangled-name='PyCell_Type' visibility='default' filepath='./Include/cpython/cellobject.h' line='16' column='1' elf-symbol-id='PyCell_Type'/>
     <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='./Include/object.h' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompare'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/classobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/classobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyMethod_Type' type-id='type-id-271' mangled-name='PyMethod_Type' visibility='default' filepath='./Include/cpython/classobject.h' line='20' column='1' elf-symbol-id='PyMethod_Type'/>
     <var-decl name='PyInstanceMethod_Type' type-id='type-id-271' mangled-name='PyInstanceMethod_Type' visibility='default' filepath='./Include/cpython/classobject.h' line='49' column='1' elf-symbol-id='PyInstanceMethod_Type'/>
     <function-decl name='_PyType_LookupRef' mangled-name='_PyType_LookupRef' filepath='./Include/cpython/object.h' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_LookupRef'>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/codeobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/codeobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-319' size-in-bits='128' id='type-id-320'>
       <subrange length='1' type-id='type-id-2' id='type-id-321'/>
     </array-type-def>
       <subrange length='1' type-id='type-id-2' id='type-id-321'/>
     </array-type-def>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/complexobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/complexobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyUnicodeWriter' size-in-bits='448' is-struct='yes' naming-typedef-id='type-id-375' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='515' column='1' id='type-id-376'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='buffer' type-id='type-id-6' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='516' column='1'/>
       <return type-id='type-id-6'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/descrobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/descrobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-381'/>
     <function-decl name='_PyObject_FunctionStr' mangled-name='_PyObject_FunctionStr' filepath='./Include/cpython/object.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FunctionStr'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/dictobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/dictobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='PyDictKeysObject' type-id='type-id-384' filepath='./Include/cpython/dictobject.h' line='5' column='1' id='type-id-385'/>
     <typedef-decl name='PyDictValues' type-id='type-id-386' filepath='./Include/cpython/dictobject.h' line='6' column='1' id='type-id-387'/>
     <class-decl name='PyDictObject' size-in-bits='384' is-struct='yes' naming-typedef-id='type-id-388' visibility='default' filepath='./Include/cpython/dictobject.h' line='11' column='1' id='type-id-389'>
       <return type-id='type-id-5'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/enumobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/enumobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyEnum_Type' type-id='type-id-271' mangled-name='PyEnum_Type' visibility='default' filepath='./Include/enumobject.h' line='10' column='1' elf-symbol-id='PyEnum_Type'/>
     <var-decl name='PyReversed_Type' type-id='type-id-271' mangled-name='PyReversed_Type' visibility='default' filepath='./Include/enumobject.h' line='11' column='1' elf-symbol-id='PyReversed_Type'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/exceptions.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/exceptions.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-17' const='yes' id='type-id-401'/>
     <pointer-type-def type-id='type-id-401' size-in-bits='64' id='type-id-129'/>
     <var-decl name='PyExc_PythonFinalizationError' type-id='type-id-6' mangled-name='PyExc_PythonFinalizationError' visibility='default' filepath='./Include/cpython/pyerrors.h' line='130' column='1' elf-symbol-id='PyExc_PythonFinalizationError'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/fileobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/fileobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyStdPrinter_Type' type-id='type-id-271' mangled-name='PyStdPrinter_Type' visibility='default' filepath='./Include/cpython/fileobject.h' line='10' column='1' elf-symbol-id='PyStdPrinter_Type'/>
     <function-decl name='_Py_write' mangled-name='_Py_write' filepath='./Include/internal/pycore_fileutils.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write'>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/floatobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/floatobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyStructSequence_Field' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/structseq.h' line='10' column='1' id='type-id-403'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='name' type-id='type-id-4' visibility='default' filepath='./Include/structseq.h' line='11' column='1'/>
       <return type-id='type-id-172'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/frameobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/frameobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyFrameConstructor' size-in-bits='512' is-struct='yes' naming-typedef-id='type-id-410' visibility='default' filepath='./Include/cpython/funcobject.h' line='21' column='1' id='type-id-411'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='fc_globals' type-id='type-id-6' visibility='default' filepath='./Include/cpython/funcobject.h' line='22' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/funcobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/funcobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyFunction_Type' type-id='type-id-271' mangled-name='PyFunction_Type' visibility='default' filepath='./Include/cpython/funcobject.h' line='66' column='1' elf-symbol-id='PyFunction_Type'/>
     <var-decl name='PyClassMethod_Type' type-id='type-id-271' mangled-name='PyClassMethod_Type' visibility='default' filepath='./Include/cpython/funcobject.h' line='131' column='1' elf-symbol-id='PyClassMethod_Type'/>
     <var-decl name='PyStaticMethod_Type' type-id='type-id-271' mangled-name='PyStaticMethod_Type' visibility='default' filepath='./Include/cpython/funcobject.h' line='132' column='1' elf-symbol-id='PyStaticMethod_Type'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/genericaliasobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/genericaliasobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyUnicodeWriter_WriteChar' mangled-name='PyUnicodeWriter_WriteChar' filepath='./Include/cpython/unicodeobject.h' line='474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeWriter_WriteChar'>
       <parameter type-id='type-id-415'/>
       <parameter type-id='type-id-305'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/genobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/genobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='PyGenObject' type-id='type-id-416' filepath='./Include/cpython/genobject.h' line='12' column='1' id='type-id-417'/>
     <typedef-decl name='PyAsyncGenObject' type-id='type-id-418' filepath='./Include/cpython/genobject.h' line='38' column='1' id='type-id-419'/>
     <class-decl name='_PyGenObject' size-in-bits='1280' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interpframe_structs.h' line='76' column='1' id='type-id-416'>
       </data-member>
     </class-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/interpolationobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/interpolationobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyInterpolation_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_interpolation.h' line='12' column='1'/>
     <function-decl name='_PyInterpolation_Build' mangled-name='_PyInterpolation_Build' filepath='Objects/interpolationobject.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpolation_Build'>
       <parameter type-id='type-id-6' name='value' filepath='Objects/interpolationobject.c' line='189' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/iterobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/iterobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyObject_HasLen' filepath='./Include/internal/pycore_abstract.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/listobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/listobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-433' const='yes' id='type-id-436'/>
     <pointer-type-def type-id='type-id-436' size-in-bits='64' id='type-id-437'/>
     <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='./Include/cpython/ceval.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/longobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/longobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyLongWriter' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-438'/>
     <array-type-def dimensions='1' type-id='type-id-95' size-in-bits='2048' id='type-id-439'>
       <subrange length='256' type-id='type-id-2' id='type-id-75'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/memoryobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/memoryobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyManagedBuffer_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_memoryobject.h' line='11' column='1'/>
     <var-decl name='PyMemoryView_Type' type-id='type-id-271' mangled-name='PyMemoryView_Type' visibility='default' filepath='./Include/memoryobject.h' line='9' column='1' elf-symbol-id='PyMemoryView_Type'/>
     <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='./Include/unicodeobject.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsASCIIString'>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/methodobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/methodobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyCMethod_Type' type-id='type-id-271' mangled-name='PyCMethod_Type' visibility='default' filepath='./Include/cpython/methodobject.h' line='32' column='1' elf-symbol-id='PyCMethod_Type'/>
     <var-decl name='PyCFunction_Type' type-id='type-id-271' mangled-name='PyCFunction_Type' visibility='default' filepath='./Include/methodobject.h' line='14' column='1' elf-symbol-id='PyCFunction_Type'/>
     <function-decl name='PyCFunction_New' mangled-name='PyCFunction_New' filepath='Objects/methodobject.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_New'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/moduleobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/moduleobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyModuleDef_Base' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='39' column='1' id='type-id-465'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob_base' type-id='type-id-390' visibility='default' filepath='./Include/moduleobject.h' line='40' column='1'/>
       <return type-id='type-id-6'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/namespaceobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/namespaceobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyArg_NoPositional' mangled-name='_PyArg_NoPositional' filepath='./Include/internal/pycore_modsupport.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoPositional'>
       <parameter type-id='type-id-4'/>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/object.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/object.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-5' size-in-bits='192' id='type-id-101'>
       <subrange length='6' type-id='type-id-2' id='type-id-477'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/obmalloc.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/obmalloc.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-488' size-in-bits='14400' id='type-id-489'>
       <subrange length='75' type-id='type-id-2' id='type-id-490'/>
     </array-type-def>
       <return type-id='type-id-3'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/odictobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/odictobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyODict_Type' type-id='type-id-271' mangled-name='PyODict_Type' visibility='default' filepath='./Include/cpython/odictobject.h' line='15' column='1' elf-symbol-id='PyODict_Type'/>
     <var-decl name='PyODictIter_Type' type-id='type-id-271' mangled-name='PyODictIter_Type' visibility='default' filepath='./Include/cpython/odictobject.h' line='16' column='1' elf-symbol-id='PyODictIter_Type'/>
     <var-decl name='PyODictKeys_Type' type-id='type-id-271' mangled-name='PyODictKeys_Type' visibility='default' filepath='./Include/cpython/odictobject.h' line='17' column='1' elf-symbol-id='PyODictKeys_Type'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/picklebufobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/picklebufobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PyPickleBuffer_Type' type-id='type-id-271' mangled-name='PyPickleBuffer_Type' visibility='default' filepath='./Include/cpython/picklebufobject.h' line='13' column='1' elf-symbol-id='PyPickleBuffer_Type'/>
     <function-decl name='PyPickleBuffer_FromObject' mangled-name='PyPickleBuffer_FromObject' filepath='Objects/picklebufobject.c' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_FromObject'>
       <parameter type-id='type-id-6' name='base' filepath='Objects/picklebufobject.c' line='16' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/rangeobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/rangeobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PySliceObject' size-in-bits='320' is-struct='yes' naming-typedef-id='type-id-574' visibility='default' filepath='./Include/sliceobject.h' line='26' column='1' id='type-id-575'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob_base' type-id='type-id-390' visibility='default' filepath='./Include/sliceobject.h' line='27' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/setobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/setobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-577' size-in-bits='1024' id='type-id-578'>
       <subrange length='8' type-id='type-id-2' id='type-id-324'/>
     </array-type-def>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/sliceobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/sliceobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_Py_EllipsisObject' type-id='type-id-390' mangled-name='_Py_EllipsisObject' visibility='default' filepath='./Include/sliceobject.h' line='9' column='1' elf-symbol-id='_Py_EllipsisObject'/>
     <var-decl name='PySlice_Type' type-id='type-id-271' mangled-name='PySlice_Type' visibility='default' filepath='./Include/sliceobject.h' line='32' column='1' elf-symbol-id='PySlice_Type'/>
     <var-decl name='PyEllipsis_Type' type-id='type-id-271' mangled-name='PyEllipsis_Type' visibility='default' filepath='./Include/sliceobject.h' line='33' column='1' elf-symbol-id='PyEllipsis_Type'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/structseq.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/structseq.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyType_Slot' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-584' visibility='default' filepath='./Include/object.h' line='374' column='1' id='type-id-585'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='slot' type-id='type-id-5' visibility='default' filepath='./Include/object.h' line='375' column='1'/>
       <return type-id='type-id-1'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/templateobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/templateobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyInterpolation_GetValueRef' filepath='./Include/internal/pycore_interpolation.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/tupleobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/tupleobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyObject_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='./Include/objimpl.h' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Resize'>
       <parameter type-id='type-id-354'/>
       <parameter type-id='type-id-7'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/typeobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/typeobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_specialization_cache' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='249' column='1' id='type-id-590'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='getitem' type-id='type-id-6' visibility='default' filepath='./Include/cpython/object.h' line='260' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/typevarobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/typevarobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyTypeAlias_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_typevarobject.h' line='21' column='1'/>
     <var-decl name='_PyNoDefault_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_typevarobject.h' line='22' column='1'/>
     <var-decl name='_Py_NoDefaultStruct' type-id='type-id-390' visibility='default' filepath='./Include/internal/pycore_typevarobject.h' line='23' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/unicodectype.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/unicodectype.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyUnicode_ToTitlecase' mangled-name='_PyUnicode_ToTitlecase' filepath='Objects/unicodectype.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToTitlecase'>
       <parameter type-id='type-id-305' name='ch' filepath='Objects/unicodectype.c' line='62' column='1'/>
       <return type-id='type-id-305'/>
       <return type-id='type-id-172'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/unicodeobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/unicodeobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-452' size-in-bits='1024' id='type-id-603'>
       <subrange length='128' type-id='type-id-2' id='type-id-604'/>
     </array-type-def>
       <enumerator name='_PyStatus_TYPE_EXIT' value='2'/>
     </enum-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/unionobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/unionobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyUnion_Type' type-id='type-id-271' mangled-name='_PyUnion_Type' visibility='default' filepath='./Include/internal/pycore_unionobject.h' line='12' column='1' elf-symbol-id='_PyUnion_Type'/>
     <function-decl name='_Py_subs_parameters' filepath='./Include/internal/pycore_unionobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Objects/weakrefobject.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Objects/weakrefobject.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyWeakReference' size-in-bits='512' is-struct='yes' visibility='default' filepath='./Include/cpython/weakrefobject.h' line='8' column='1' id='type-id-620'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob_base' type-id='type-id-390' visibility='default' filepath='./Include/cpython/weakrefobject.h' line='9' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/action_helpers.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/action_helpers.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-623' size-in-bits='64' id='type-id-624'>
       <subrange length='1' type-id='type-id-2' id='type-id-321'/>
     </array-type-def>
       </data-member>
     </class-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/lexer/lexer.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/lexer/lexer.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='./Include/cpython/pyerrors.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalErrorFunc'>
       <parameter type-id='type-id-4'/>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/myreadline.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/myreadline.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-61' restrict='yes' id='type-id-486'/>
     <pointer-type-def type-id='type-id-752' size-in-bits='64' id='type-id-26'/>
     <pointer-type-def type-id='type-id-753' size-in-bits='64' id='type-id-754'/>
       <return type-id='type-id-5'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/parser.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/parser.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='asdl_seq' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-757' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='28' column='1' id='type-id-758'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='size' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_asdl.h' line='29' column='1'/>
       <return type-id='type-id-35'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/peg_api.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/peg_api.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyCompilerFlags' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-804' visibility='default' filepath='./Include/cpython/compile.h' line='27' column='1' id='type-id-805'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='cf_flags' type-id='type-id-5' visibility='default' filepath='./Include/cpython/compile.h' line='28' column='1'/>
       <return type-id='type-id-647'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/pegen.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/pegen.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-806' size-in-bits='512' id='type-id-807'>
       <subrange length='8' type-id='type-id-2' id='type-id-324'/>
     </array-type-def>
     <array-type-def dimensions='1' type-id='type-id-823' size-in-bits='2560' id='type-id-824'>
       <subrange length='20' type-id='type-id-2' id='type-id-825'/>
     </array-type-def>
-    <array-type-def dimensions='1' type-id='type-id-826' size-in-bits='49152' id='type-id-827'>
+    <array-type-def dimensions='1' type-id='type-id-826' size-in-bits='65536' id='type-id-827'>
       <subrange length='128' type-id='type-id-2' id='type-id-604'/>
     </array-type-def>
-    <array-type-def dimensions='1' type-id='type-id-828' size-in-bits='65536' id='type-id-829'>
+    <array-type-def dimensions='1' type-id='type-id-828' size-in-bits='49152' id='type-id-829'>
       <subrange length='128' type-id='type-id-2' id='type-id-604'/>
     </array-type-def>
     <array-type-def dimensions='1' type-id='type-id-830' size-in-bits='26880' id='type-id-831'>
         <var-decl name='switch_mutex' type-id='type-id-1178' visibility='default' filepath='./Include/internal/pycore_gil.h' line='59' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_global_strings' size-in-bits='445888' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1' id='type-id-1179'>
+    <class-decl name='_Py_global_strings' size-in-bits='446272' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='31' column='1' id='type-id-1179'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='literals' type-id='type-id-1180' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='9856'>
-        <var-decl name='identifiers' type-id='type-id-1181' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='812' column='1'/>
+        <var-decl name='identifiers' type-id='type-id-1181' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='813' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='331200'>
-        <var-decl name='ascii' type-id='type-id-827' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='816' column='1'/>
+      <data-member access='public' layout-offset-in-bits='331584'>
+        <var-decl name='ascii' type-id='type-id-829' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='817' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='380352'>
-        <var-decl name='latin1' type-id='type-id-829' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='820' column='1'/>
+      <data-member access='public' layout-offset-in-bits='380736'>
+        <var-decl name='latin1' type-id='type-id-827' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='821' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='__anonymous_struct__58' size-in-bits='9856' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='32' column='1' id='type-id-1180'>
         <var-decl name='_data' type-id='type-id-947' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='53' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__83' size-in-bits='321344' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='58' column='1' id='type-id-1181'>
+    <class-decl name='__anonymous_struct__83' size-in-bits='321728' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='58' column='1' id='type-id-1181'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_py_CANCELLED' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='59' column='1'/>
       </data-member>
         <var-decl name='_py_day' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='387' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='145280'>
-        <var-decl name='_py_decode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='388' column='1'/>
+        <var-decl name='_py_debug' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='388' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='145664'>
-        <var-decl name='_py_decoder' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='389' column='1'/>
+        <var-decl name='_py_decode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='389' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='146048'>
-        <var-decl name='_py_default' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='390' column='1'/>
+        <var-decl name='_py_decoder' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='390' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='146432'>
-        <var-decl name='_py_defaultaction' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='391' column='1'/>
+        <var-decl name='_py_default' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='391' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='146880'>
-        <var-decl name='_py_delete' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='392' column='1'/>
+      <data-member access='public' layout-offset-in-bits='146816'>
+        <var-decl name='_py_defaultaction' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='392' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='147264'>
-        <var-decl name='_py_depth' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='393' column='1'/>
+        <var-decl name='_py_delete' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='393' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='147648'>
-        <var-decl name='_py_desired_access' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='394' column='1'/>
+        <var-decl name='_py_depth' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='394' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='148096'>
-        <var-decl name='_py_detect_types' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='395' column='1'/>
+      <data-member access='public' layout-offset-in-bits='148032'>
+        <var-decl name='_py_desired_access' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='395' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='148544'>
-        <var-decl name='_py_deterministic' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='396' column='1'/>
+      <data-member access='public' layout-offset-in-bits='148480'>
+        <var-decl name='_py_detect_types' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='396' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='148992'>
-        <var-decl name='_py_device' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='397' column='1'/>
+      <data-member access='public' layout-offset-in-bits='148928'>
+        <var-decl name='_py_deterministic' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='397' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='149376'>
-        <var-decl name='_py_dict' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='398' column='1'/>
+        <var-decl name='_py_device' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='398' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='149760'>
-        <var-decl name='_py_dictcomp' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='399' column='1'/>
+        <var-decl name='_py_dict' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='399' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='150208'>
-        <var-decl name='_py_difference_update' type-id='type-id-1197' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='400' column='1'/>
+      <data-member access='public' layout-offset-in-bits='150144'>
+        <var-decl name='_py_dictcomp' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='400' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='150720'>
-        <var-decl name='_py_digest' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='401' column='1'/>
+      <data-member access='public' layout-offset-in-bits='150592'>
+        <var-decl name='_py_difference_update' type-id='type-id-1197' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='401' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='151104'>
-        <var-decl name='_py_digest_size' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='402' column='1'/>
+        <var-decl name='_py_digest' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='402' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='151552'>
-        <var-decl name='_py_digestmod' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='403' column='1'/>
+      <data-member access='public' layout-offset-in-bits='151488'>
+        <var-decl name='_py_digest_size' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='403' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='152000'>
-        <var-decl name='_py_dir_fd' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='404' column='1'/>
+      <data-member access='public' layout-offset-in-bits='151936'>
+        <var-decl name='_py_digestmod' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='404' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='152384'>
-        <var-decl name='_py_discard' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='405' column='1'/>
+        <var-decl name='_py_dir_fd' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='405' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='152768'>
-        <var-decl name='_py_dispatch_table' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='406' column='1'/>
+        <var-decl name='_py_discard' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='406' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='153216'>
-        <var-decl name='_py_displayhook' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='407' column='1'/>
+      <data-member access='public' layout-offset-in-bits='153152'>
+        <var-decl name='_py_dispatch_table' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='407' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='153664'>
-        <var-decl name='_py_dklen' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='408' column='1'/>
+      <data-member access='public' layout-offset-in-bits='153600'>
+        <var-decl name='_py_displayhook' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='408' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='154048'>
-        <var-decl name='_py_doc' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='409' column='1'/>
+        <var-decl name='_py_dklen' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='409' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='154432'>
-        <var-decl name='_py_done' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='410' column='1'/>
+        <var-decl name='_py_doc' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='410' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='154816'>
-        <var-decl name='_py_dont_inherit' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='411' column='1'/>
+        <var-decl name='_py_done' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='411' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='155264'>
-        <var-decl name='_py_dst' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='412' column='1'/>
+      <data-member access='public' layout-offset-in-bits='155200'>
+        <var-decl name='_py_dont_inherit' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='412' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='155648'>
-        <var-decl name='_py_dst_dir_fd' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='413' column='1'/>
+        <var-decl name='_py_dst' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='413' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='156096'>
-        <var-decl name='_py_eager_start' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='414' column='1'/>
+      <data-member access='public' layout-offset-in-bits='156032'>
+        <var-decl name='_py_dst_dir_fd' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='414' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='156544'>
-        <var-decl name='_py_effective_ids' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='415' column='1'/>
+      <data-member access='public' layout-offset-in-bits='156480'>
+        <var-decl name='_py_eager_start' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='415' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='156992'>
-        <var-decl name='_py_element_factory' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='416' column='1'/>
+      <data-member access='public' layout-offset-in-bits='156928'>
+        <var-decl name='_py_effective_ids' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='416' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='157440'>
-        <var-decl name='_py_encode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='417' column='1'/>
+      <data-member access='public' layout-offset-in-bits='157376'>
+        <var-decl name='_py_element_factory' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='417' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='157824'>
-        <var-decl name='_py_encoding' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='418' column='1'/>
+        <var-decl name='_py_encode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='418' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='158272'>
-        <var-decl name='_py_end' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='419' column='1'/>
+      <data-member access='public' layout-offset-in-bits='158208'>
+        <var-decl name='_py_encoding' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='419' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='158656'>
-        <var-decl name='_py_end_col_offset' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='420' column='1'/>
+        <var-decl name='_py_end' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='420' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='159104'>
-        <var-decl name='_py_end_lineno' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='421' column='1'/>
+      <data-member access='public' layout-offset-in-bits='159040'>
+        <var-decl name='_py_end_col_offset' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='421' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='159552'>
-        <var-decl name='_py_end_offset' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='422' column='1'/>
+      <data-member access='public' layout-offset-in-bits='159488'>
+        <var-decl name='_py_end_lineno' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='422' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='160000'>
-        <var-decl name='_py_endpos' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='423' column='1'/>
+      <data-member access='public' layout-offset-in-bits='159936'>
+        <var-decl name='_py_end_offset' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='423' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='160384'>
-        <var-decl name='_py_entrypoint' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='424' column='1'/>
+        <var-decl name='_py_endpos' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='424' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='160832'>
-        <var-decl name='_py_env' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='425' column='1'/>
+      <data-member access='public' layout-offset-in-bits='160768'>
+        <var-decl name='_py_entrypoint' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='425' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='161216'>
-        <var-decl name='_py_errors' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='426' column='1'/>
+        <var-decl name='_py_env' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='426' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='161600'>
-        <var-decl name='_py_event' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='427' column='1'/>
+        <var-decl name='_py_errors' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='427' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='161984'>
-        <var-decl name='_py_eventmask' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='428' column='1'/>
+        <var-decl name='_py_event' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='428' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='162432'>
-        <var-decl name='_py_exc_type' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='429' column='1'/>
+      <data-member access='public' layout-offset-in-bits='162368'>
+        <var-decl name='_py_eventmask' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='429' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='162880'>
-        <var-decl name='_py_exc_value' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='430' column='1'/>
+      <data-member access='public' layout-offset-in-bits='162816'>
+        <var-decl name='_py_exc_type' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='430' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='163328'>
-        <var-decl name='_py_excepthook' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='431' column='1'/>
+      <data-member access='public' layout-offset-in-bits='163264'>
+        <var-decl name='_py_exc_value' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='431' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='163776'>
-        <var-decl name='_py_exception' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='432' column='1'/>
+      <data-member access='public' layout-offset-in-bits='163712'>
+        <var-decl name='_py_excepthook' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='432' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='164224'>
-        <var-decl name='_py_existing_file_name' type-id='type-id-1204' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='433' column='1'/>
+      <data-member access='public' layout-offset-in-bits='164160'>
+        <var-decl name='_py_exception' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='433' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='164736'>
-        <var-decl name='_py_exp' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='434' column='1'/>
+      <data-member access='public' layout-offset-in-bits='164608'>
+        <var-decl name='_py_existing_file_name' type-id='type-id-1204' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='434' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='165120'>
-        <var-decl name='_py_expression' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='435' column='1'/>
+        <var-decl name='_py_exp' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='435' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='165568'>
-        <var-decl name='_py_extend' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='436' column='1'/>
+      <data-member access='public' layout-offset-in-bits='165504'>
+        <var-decl name='_py_expression' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='436' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='165952'>
-        <var-decl name='_py_extra_tokens' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='437' column='1'/>
+        <var-decl name='_py_extend' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='437' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='166400'>
-        <var-decl name='_py_facility' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='438' column='1'/>
+      <data-member access='public' layout-offset-in-bits='166336'>
+        <var-decl name='_py_extra_tokens' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='438' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='166848'>
-        <var-decl name='_py_factory' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='439' column='1'/>
+      <data-member access='public' layout-offset-in-bits='166784'>
+        <var-decl name='_py_facility' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='439' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='167232'>
-        <var-decl name='_py_false' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='440' column='1'/>
+        <var-decl name='_py_factory' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='440' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='167616'>
-        <var-decl name='_py_family' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='441' column='1'/>
+        <var-decl name='_py_false' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='441' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='168000'>
-        <var-decl name='_py_fanout' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='442' column='1'/>
+        <var-decl name='_py_family' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='442' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='168384'>
-        <var-decl name='_py_fd' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='443' column='1'/>
+        <var-decl name='_py_fanout' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='443' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='168768'>
-        <var-decl name='_py_fd2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='444' column='1'/>
+        <var-decl name='_py_fd' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='444' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='169152'>
-        <var-decl name='_py_fdel' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='445' column='1'/>
+        <var-decl name='_py_fd2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='445' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='169536'>
-        <var-decl name='_py_fget' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='446' column='1'/>
+        <var-decl name='_py_fdel' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='446' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='169920'>
-        <var-decl name='_py_fields' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='447' column='1'/>
+        <var-decl name='_py_fget' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='447' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='170304'>
-        <var-decl name='_py_file' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='448' column='1'/>
+        <var-decl name='_py_fields' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='448' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='170688'>
-        <var-decl name='_py_file_actions' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='449' column='1'/>
+        <var-decl name='_py_file' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='449' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='171136'>
-        <var-decl name='_py_filename' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='450' column='1'/>
+      <data-member access='public' layout-offset-in-bits='171072'>
+        <var-decl name='_py_file_actions' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='450' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='171584'>
-        <var-decl name='_py_fileno' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='451' column='1'/>
+      <data-member access='public' layout-offset-in-bits='171520'>
+        <var-decl name='_py_filename' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='451' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='171968'>
-        <var-decl name='_py_filepath' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='452' column='1'/>
+        <var-decl name='_py_fileno' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='452' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='172416'>
-        <var-decl name='_py_fillvalue' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='453' column='1'/>
+      <data-member access='public' layout-offset-in-bits='172352'>
+        <var-decl name='_py_filepath' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='453' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='172864'>
-        <var-decl name='_py_filter' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='454' column='1'/>
+      <data-member access='public' layout-offset-in-bits='172800'>
+        <var-decl name='_py_fillvalue' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='454' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='173248'>
-        <var-decl name='_py_filters' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='455' column='1'/>
+        <var-decl name='_py_filter' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='455' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='173632'>
-        <var-decl name='_py_final' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='456' column='1'/>
+        <var-decl name='_py_filters' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='456' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='174016'>
-        <var-decl name='_py_find_class' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='457' column='1'/>
+        <var-decl name='_py_final' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='457' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='174464'>
-        <var-decl name='_py_fix_imports' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='458' column='1'/>
+      <data-member access='public' layout-offset-in-bits='174400'>
+        <var-decl name='_py_find_class' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='458' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='174912'>
-        <var-decl name='_py_flags' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='459' column='1'/>
+      <data-member access='public' layout-offset-in-bits='174848'>
+        <var-decl name='_py_fix_imports' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='459' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='175296'>
-        <var-decl name='_py_flush' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='460' column='1'/>
+        <var-decl name='_py_flags' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='460' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='175680'>
-        <var-decl name='_py_fold' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='461' column='1'/>
+        <var-decl name='_py_flush' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='461' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='176064'>
-        <var-decl name='_py_follow_symlinks' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='462' column='1'/>
+        <var-decl name='_py_fold' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='462' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='176512'>
-        <var-decl name='_py_format' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='463' column='1'/>
+      <data-member access='public' layout-offset-in-bits='176448'>
+        <var-decl name='_py_follow_symlinks' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='463' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='176896'>
-        <var-decl name='_py_format_spec' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='464' column='1'/>
+        <var-decl name='_py_format' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='464' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='177344'>
-        <var-decl name='_py_frame_buffer' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='465' column='1'/>
+      <data-member access='public' layout-offset-in-bits='177280'>
+        <var-decl name='_py_format_spec' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='465' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='177792'>
-        <var-decl name='_py_from_param' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='466' column='1'/>
+      <data-member access='public' layout-offset-in-bits='177728'>
+        <var-decl name='_py_frame_buffer' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='466' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='178240'>
-        <var-decl name='_py_fromlist' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='467' column='1'/>
+      <data-member access='public' layout-offset-in-bits='178176'>
+        <var-decl name='_py_from_param' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='467' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='178688'>
-        <var-decl name='_py_fromtimestamp' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='468' column='1'/>
+      <data-member access='public' layout-offset-in-bits='178624'>
+        <var-decl name='_py_fromlist' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='468' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='179136'>
-        <var-decl name='_py_fromutc' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='469' column='1'/>
+      <data-member access='public' layout-offset-in-bits='179072'>
+        <var-decl name='_py_fromtimestamp' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='469' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='179520'>
-        <var-decl name='_py_fset' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='470' column='1'/>
+        <var-decl name='_py_fromutc' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='470' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='179904'>
-        <var-decl name='_py_func' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='471' column='1'/>
+        <var-decl name='_py_fset' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='471' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='180288'>
-        <var-decl name='_py_future' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='472' column='1'/>
+        <var-decl name='_py_func' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='472' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='180672'>
-        <var-decl name='_py_generation' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='473' column='1'/>
+        <var-decl name='_py_future' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='473' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='181120'>
-        <var-decl name='_py_genexpr' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='474' column='1'/>
+      <data-member access='public' layout-offset-in-bits='181056'>
+        <var-decl name='_py_generation' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='474' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='181504'>
-        <var-decl name='_py_get' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='475' column='1'/>
+        <var-decl name='_py_genexpr' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='475' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='181888'>
-        <var-decl name='_py_get_debug' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='476' column='1'/>
+        <var-decl name='_py_get' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='476' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='182336'>
-        <var-decl name='_py_get_event_loop' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='477' column='1'/>
+      <data-member access='public' layout-offset-in-bits='182272'>
+        <var-decl name='_py_get_debug' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='477' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='182784'>
-        <var-decl name='_py_get_loop' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='478' column='1'/>
+      <data-member access='public' layout-offset-in-bits='182720'>
+        <var-decl name='_py_get_event_loop' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='478' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='183232'>
-        <var-decl name='_py_get_source' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='479' column='1'/>
+      <data-member access='public' layout-offset-in-bits='183168'>
+        <var-decl name='_py_get_loop' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='479' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='183680'>
-        <var-decl name='_py_getattr' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='480' column='1'/>
+      <data-member access='public' layout-offset-in-bits='183616'>
+        <var-decl name='_py_get_source' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='480' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='184064'>
-        <var-decl name='_py_getstate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='481' column='1'/>
+        <var-decl name='_py_getattr' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='481' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='184512'>
-        <var-decl name='_py_gid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='482' column='1'/>
+      <data-member access='public' layout-offset-in-bits='184448'>
+        <var-decl name='_py_getstate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='482' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='184896'>
-        <var-decl name='_py_globals' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='483' column='1'/>
+        <var-decl name='_py_gid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='483' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='185280'>
-        <var-decl name='_py_groupindex' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='484' column='1'/>
+        <var-decl name='_py_globals' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='484' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='185728'>
-        <var-decl name='_py_groups' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='485' column='1'/>
+      <data-member access='public' layout-offset-in-bits='185664'>
+        <var-decl name='_py_groupindex' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='485' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='186112'>
-        <var-decl name='_py_handle' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='486' column='1'/>
+        <var-decl name='_py_groups' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='486' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='186496'>
-        <var-decl name='_py_handle_seq' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='487' column='1'/>
+        <var-decl name='_py_handle' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='487' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='186944'>
-        <var-decl name='_py_has_location' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='488' column='1'/>
+      <data-member access='public' layout-offset-in-bits='186880'>
+        <var-decl name='_py_handle_seq' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='488' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='187392'>
-        <var-decl name='_py_hash_name' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='489' column='1'/>
+      <data-member access='public' layout-offset-in-bits='187328'>
+        <var-decl name='_py_has_location' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='489' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='187840'>
-        <var-decl name='_py_header' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='490' column='1'/>
+      <data-member access='public' layout-offset-in-bits='187776'>
+        <var-decl name='_py_hash_name' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='490' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='188224'>
-        <var-decl name='_py_headers' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='491' column='1'/>
+        <var-decl name='_py_header' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='491' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='188608'>
-        <var-decl name='_py_hi' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='492' column='1'/>
+        <var-decl name='_py_headers' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='492' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='188992'>
-        <var-decl name='_py_hook' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='493' column='1'/>
+        <var-decl name='_py_hi' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='493' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='189376'>
-        <var-decl name='_py_hour' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='494' column='1'/>
+        <var-decl name='_py_hook' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='494' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='189760'>
-        <var-decl name='_py_id' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='495' column='1'/>
+        <var-decl name='_py_hour' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='495' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='190144'>
-        <var-decl name='_py_ident' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='496' column='1'/>
+        <var-decl name='_py_id' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='496' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='190528'>
-        <var-decl name='_py_identity_hint' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='497' column='1'/>
+        <var-decl name='_py_ident' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='497' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='190976'>
-        <var-decl name='_py_ignore' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='498' column='1'/>
+      <data-member access='public' layout-offset-in-bits='190912'>
+        <var-decl name='_py_identity_hint' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='498' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='191360'>
-        <var-decl name='_py_imag' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='499' column='1'/>
+        <var-decl name='_py_ignore' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='499' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='191744'>
-        <var-decl name='_py_importlib' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='500' column='1'/>
+        <var-decl name='_py_imag' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='500' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192192'>
-        <var-decl name='_py_in_fd' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='501' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192128'>
+        <var-decl name='_py_importlib' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='501' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192576'>
-        <var-decl name='_py_incoming' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='502' column='1'/>
+        <var-decl name='_py_in_fd' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='502' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='193024'>
-        <var-decl name='_py_index' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='503' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192960'>
+        <var-decl name='_py_incoming' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='503' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='193408'>
-        <var-decl name='_py_indexgroup' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='504' column='1'/>
+        <var-decl name='_py_index' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='504' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='193856'>
-        <var-decl name='_py_inf' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='505' column='1'/>
+      <data-member access='public' layout-offset-in-bits='193792'>
+        <var-decl name='_py_indexgroup' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='505' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='194240'>
-        <var-decl name='_py_infer_variance' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='506' column='1'/>
+        <var-decl name='_py_inf' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='506' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='194688'>
-        <var-decl name='_py_inherit_handle' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='507' column='1'/>
+      <data-member access='public' layout-offset-in-bits='194624'>
+        <var-decl name='_py_infer_variance' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='507' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='195136'>
-        <var-decl name='_py_inheritable' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='508' column='1'/>
+      <data-member access='public' layout-offset-in-bits='195072'>
+        <var-decl name='_py_inherit_handle' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='508' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='195584'>
-        <var-decl name='_py_initial' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='509' column='1'/>
+      <data-member access='public' layout-offset-in-bits='195520'>
+        <var-decl name='_py_inheritable' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='509' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='195968'>
-        <var-decl name='_py_initial_bytes' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='510' column='1'/>
+        <var-decl name='_py_initial' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='510' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='196416'>
-        <var-decl name='_py_initial_owner' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='511' column='1'/>
+      <data-member access='public' layout-offset-in-bits='196352'>
+        <var-decl name='_py_initial_bytes' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='511' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='196864'>
-        <var-decl name='_py_initial_state' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='512' column='1'/>
+      <data-member access='public' layout-offset-in-bits='196800'>
+        <var-decl name='_py_initial_owner' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='512' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='197312'>
-        <var-decl name='_py_initial_value' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='513' column='1'/>
+      <data-member access='public' layout-offset-in-bits='197248'>
+        <var-decl name='_py_initial_state' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='513' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='197760'>
-        <var-decl name='_py_initval' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='514' column='1'/>
+      <data-member access='public' layout-offset-in-bits='197696'>
+        <var-decl name='_py_initial_value' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='514' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='198144'>
-        <var-decl name='_py_inner_size' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='515' column='1'/>
+        <var-decl name='_py_initval' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='515' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='198592'>
-        <var-decl name='_py_input' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='516' column='1'/>
+      <data-member access='public' layout-offset-in-bits='198528'>
+        <var-decl name='_py_inner_size' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='516' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='198976'>
-        <var-decl name='_py_insert_comments' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='517' column='1'/>
+        <var-decl name='_py_input' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='517' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='199424'>
-        <var-decl name='_py_insert_pis' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='518' column='1'/>
+      <data-member access='public' layout-offset-in-bits='199360'>
+        <var-decl name='_py_insert_comments' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='518' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='199872'>
-        <var-decl name='_py_instructions' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='519' column='1'/>
+      <data-member access='public' layout-offset-in-bits='199808'>
+        <var-decl name='_py_insert_pis' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='519' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='200320'>
-        <var-decl name='_py_intern' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='520' column='1'/>
+      <data-member access='public' layout-offset-in-bits='200256'>
+        <var-decl name='_py_instructions' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='520' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='200704'>
-        <var-decl name='_py_intersection' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='521' column='1'/>
+        <var-decl name='_py_intern' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='521' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='201152'>
-        <var-decl name='_py_interval' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='522' column='1'/>
+      <data-member access='public' layout-offset-in-bits='201088'>
+        <var-decl name='_py_intersection' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='522' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='201600'>
-        <var-decl name='_py_io' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='523' column='1'/>
+      <data-member access='public' layout-offset-in-bits='201536'>
+        <var-decl name='_py_interval' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='523' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='201984'>
-        <var-decl name='_py_is_compress' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='524' column='1'/>
+        <var-decl name='_py_io' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='524' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='202432'>
-        <var-decl name='_py_is_raw' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='525' column='1'/>
+      <data-member access='public' layout-offset-in-bits='202368'>
+        <var-decl name='_py_is_compress' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='525' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='202816'>
-        <var-decl name='_py_is_running' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='526' column='1'/>
+        <var-decl name='_py_is_raw' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='526' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='203264'>
-        <var-decl name='_py_is_struct' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='527' column='1'/>
+      <data-member access='public' layout-offset-in-bits='203200'>
+        <var-decl name='_py_is_running' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='527' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='203712'>
-        <var-decl name='_py_isatty' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='528' column='1'/>
+      <data-member access='public' layout-offset-in-bits='203648'>
+        <var-decl name='_py_is_struct' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='528' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='204096'>
-        <var-decl name='_py_isinstance' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='529' column='1'/>
+        <var-decl name='_py_isatty' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='529' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='204544'>
-        <var-decl name='_py_isoformat' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='530' column='1'/>
+      <data-member access='public' layout-offset-in-bits='204480'>
+        <var-decl name='_py_isinstance' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='530' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='204992'>
-        <var-decl name='_py_isolation_level' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='531' column='1'/>
+      <data-member access='public' layout-offset-in-bits='204928'>
+        <var-decl name='_py_isoformat' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='531' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='205440'>
-        <var-decl name='_py_istext' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='532' column='1'/>
+      <data-member access='public' layout-offset-in-bits='205376'>
+        <var-decl name='_py_isolation_level' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='532' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='205824'>
-        <var-decl name='_py_item' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='533' column='1'/>
+        <var-decl name='_py_istext' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='533' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='206208'>
-        <var-decl name='_py_items' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='534' column='1'/>
+        <var-decl name='_py_item' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='534' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='206592'>
-        <var-decl name='_py_iter' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='535' column='1'/>
+        <var-decl name='_py_items' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='535' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='206976'>
-        <var-decl name='_py_iterable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='536' column='1'/>
+        <var-decl name='_py_iter' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='536' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='207424'>
-        <var-decl name='_py_iterations' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='537' column='1'/>
+      <data-member access='public' layout-offset-in-bits='207360'>
+        <var-decl name='_py_iterable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='537' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='207872'>
-        <var-decl name='_py_join' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='538' column='1'/>
+      <data-member access='public' layout-offset-in-bits='207808'>
+        <var-decl name='_py_iterations' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='538' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='208256'>
-        <var-decl name='_py_jump' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='539' column='1'/>
+        <var-decl name='_py_join' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='539' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='208640'>
-        <var-decl name='_py_keepends' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='540' column='1'/>
+        <var-decl name='_py_jump' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='540' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='209088'>
-        <var-decl name='_py_key' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='541' column='1'/>
+      <data-member access='public' layout-offset-in-bits='209024'>
+        <var-decl name='_py_keepends' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='541' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='209472'>
-        <var-decl name='_py_keyfile' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='542' column='1'/>
+        <var-decl name='_py_key' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='542' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='209856'>
-        <var-decl name='_py_keys' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='543' column='1'/>
+        <var-decl name='_py_keyfile' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='543' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='210240'>
-        <var-decl name='_py_kind' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='544' column='1'/>
+        <var-decl name='_py_keys' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='544' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='210624'>
-        <var-decl name='_py_kw' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='545' column='1'/>
+        <var-decl name='_py_kind' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='545' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='211008'>
-        <var-decl name='_py_kw1' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='546' column='1'/>
+        <var-decl name='_py_kw' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='546' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='211392'>
-        <var-decl name='_py_kw2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='547' column='1'/>
+        <var-decl name='_py_kw1' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='547' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='211776'>
-        <var-decl name='_py_kwdefaults' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='548' column='1'/>
+        <var-decl name='_py_kw2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='548' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='212224'>
-        <var-decl name='_py_label' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='549' column='1'/>
+      <data-member access='public' layout-offset-in-bits='212160'>
+        <var-decl name='_py_kwdefaults' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='549' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='212608'>
-        <var-decl name='_py_lambda' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='550' column='1'/>
+        <var-decl name='_py_label' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='550' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='212992'>
-        <var-decl name='_py_last' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='551' column='1'/>
+        <var-decl name='_py_lambda' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='551' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='213376'>
-        <var-decl name='_py_last_exc' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='552' column='1'/>
+        <var-decl name='_py_last' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='552' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='213824'>
-        <var-decl name='_py_last_node' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='553' column='1'/>
+      <data-member access='public' layout-offset-in-bits='213760'>
+        <var-decl name='_py_last_exc' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='553' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='214272'>
-        <var-decl name='_py_last_traceback' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='554' column='1'/>
+      <data-member access='public' layout-offset-in-bits='214208'>
+        <var-decl name='_py_last_node' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='554' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='214720'>
-        <var-decl name='_py_last_type' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='555' column='1'/>
+      <data-member access='public' layout-offset-in-bits='214656'>
+        <var-decl name='_py_last_traceback' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='555' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='215168'>
-        <var-decl name='_py_last_value' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='556' column='1'/>
+      <data-member access='public' layout-offset-in-bits='215104'>
+        <var-decl name='_py_last_type' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='556' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='215616'>
-        <var-decl name='_py_latin1' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='557' column='1'/>
+      <data-member access='public' layout-offset-in-bits='215552'>
+        <var-decl name='_py_last_value' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='557' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='216000'>
-        <var-decl name='_py_leaf_size' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='558' column='1'/>
+        <var-decl name='_py_latin1' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='558' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='216448'>
-        <var-decl name='_py_len' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='559' column='1'/>
+      <data-member access='public' layout-offset-in-bits='216384'>
+        <var-decl name='_py_leaf_size' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='559' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='216832'>
-        <var-decl name='_py_length' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='560' column='1'/>
+        <var-decl name='_py_len' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='560' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='217216'>
-        <var-decl name='_py_level' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='561' column='1'/>
+        <var-decl name='_py_length' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='561' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='217600'>
-        <var-decl name='_py_limit' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='562' column='1'/>
+        <var-decl name='_py_level' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='562' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='217984'>
-        <var-decl name='_py_line' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='563' column='1'/>
+        <var-decl name='_py_limit' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='563' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='218368'>
-        <var-decl name='_py_line_buffering' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='564' column='1'/>
+        <var-decl name='_py_line' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='564' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='218816'>
-        <var-decl name='_py_lineno' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='565' column='1'/>
+      <data-member access='public' layout-offset-in-bits='218752'>
+        <var-decl name='_py_line_buffering' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='565' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='219200'>
-        <var-decl name='_py_listcomp' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='566' column='1'/>
+        <var-decl name='_py_lineno' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='566' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='219648'>
-        <var-decl name='_py_little' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='567' column='1'/>
+      <data-member access='public' layout-offset-in-bits='219584'>
+        <var-decl name='_py_listcomp' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='567' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='220032'>
-        <var-decl name='_py_lo' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='568' column='1'/>
+        <var-decl name='_py_little' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='568' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='220416'>
-        <var-decl name='_py_locale' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='569' column='1'/>
+        <var-decl name='_py_lo' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='569' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='220800'>
-        <var-decl name='_py_locals' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='570' column='1'/>
+        <var-decl name='_py_locale' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='570' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='221184'>
-        <var-decl name='_py_logoption' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='571' column='1'/>
+        <var-decl name='_py_locals' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='571' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='221632'>
-        <var-decl name='_py_loop' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='572' column='1'/>
+      <data-member access='public' layout-offset-in-bits='221568'>
+        <var-decl name='_py_logoption' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='572' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='222016'>
-        <var-decl name='_py_manual_reset' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='573' column='1'/>
+        <var-decl name='_py_loop' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='573' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='222464'>
-        <var-decl name='_py_mapping' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='574' column='1'/>
+      <data-member access='public' layout-offset-in-bits='222400'>
+        <var-decl name='_py_manual_reset' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='574' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='222848'>
-        <var-decl name='_py_match' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='575' column='1'/>
+        <var-decl name='_py_mapping' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='575' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='223232'>
-        <var-decl name='_py_max_length' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='576' column='1'/>
+        <var-decl name='_py_match' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='576' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='223680'>
-        <var-decl name='_py_maxdigits' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='577' column='1'/>
+      <data-member access='public' layout-offset-in-bits='223616'>
+        <var-decl name='_py_max_length' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='577' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='224128'>
-        <var-decl name='_py_maxevents' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='578' column='1'/>
+      <data-member access='public' layout-offset-in-bits='224064'>
+        <var-decl name='_py_maxdigits' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='578' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='224576'>
-        <var-decl name='_py_maxlen' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='579' column='1'/>
+      <data-member access='public' layout-offset-in-bits='224512'>
+        <var-decl name='_py_maxevents' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='579' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224960'>
-        <var-decl name='_py_maxmem' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='580' column='1'/>
+        <var-decl name='_py_maxlen' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='580' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='225344'>
-        <var-decl name='_py_maxsplit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='581' column='1'/>
+        <var-decl name='_py_maxmem' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='581' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='225792'>
-        <var-decl name='_py_maxvalue' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='582' column='1'/>
+      <data-member access='public' layout-offset-in-bits='225728'>
+        <var-decl name='_py_maxsplit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='582' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='226240'>
-        <var-decl name='_py_memLevel' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='583' column='1'/>
+      <data-member access='public' layout-offset-in-bits='226176'>
+        <var-decl name='_py_maxvalue' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='583' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='226688'>
-        <var-decl name='_py_memlimit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='584' column='1'/>
+      <data-member access='public' layout-offset-in-bits='226624'>
+        <var-decl name='_py_memLevel' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='584' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='227136'>
-        <var-decl name='_py_message' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='585' column='1'/>
+      <data-member access='public' layout-offset-in-bits='227072'>
+        <var-decl name='_py_memlimit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='585' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='227520'>
-        <var-decl name='_py_metaclass' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='586' column='1'/>
+        <var-decl name='_py_message' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='586' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='227968'>
-        <var-decl name='_py_metadata' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='587' column='1'/>
+      <data-member access='public' layout-offset-in-bits='227904'>
+        <var-decl name='_py_metaclass' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='587' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='228416'>
-        <var-decl name='_py_method' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='588' column='1'/>
+      <data-member access='public' layout-offset-in-bits='228352'>
+        <var-decl name='_py_metadata' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='588' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='228800'>
-        <var-decl name='_py_microsecond' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='589' column='1'/>
+        <var-decl name='_py_method' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='589' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='229248'>
-        <var-decl name='_py_milliseconds' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='590' column='1'/>
+      <data-member access='public' layout-offset-in-bits='229184'>
+        <var-decl name='_py_microsecond' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='590' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='229696'>
-        <var-decl name='_py_minute' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='591' column='1'/>
+      <data-member access='public' layout-offset-in-bits='229632'>
+        <var-decl name='_py_milliseconds' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='591' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='230080'>
-        <var-decl name='_py_mod' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='592' column='1'/>
+        <var-decl name='_py_minute' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='592' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='230464'>
-        <var-decl name='_py_mode' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='593' column='1'/>
+        <var-decl name='_py_mod' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='593' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='230848'>
-        <var-decl name='_py_module' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='594' column='1'/>
+        <var-decl name='_py_mode' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='594' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='231232'>
-        <var-decl name='_py_module_globals' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='595' column='1'/>
+        <var-decl name='_py_module' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='595' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='231680'>
-        <var-decl name='_py_modules' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='596' column='1'/>
+      <data-member access='public' layout-offset-in-bits='231616'>
+        <var-decl name='_py_module_globals' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='596' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='232064'>
-        <var-decl name='_py_month' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='597' column='1'/>
+        <var-decl name='_py_modules' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='597' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='232448'>
-        <var-decl name='_py_mro' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='598' column='1'/>
+        <var-decl name='_py_month' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='598' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='232832'>
-        <var-decl name='_py_msg' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='599' column='1'/>
+        <var-decl name='_py_mro' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='599' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='233216'>
-        <var-decl name='_py_mutex' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='600' column='1'/>
+        <var-decl name='_py_msg' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='600' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='233600'>
-        <var-decl name='_py_mycmp' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='601' column='1'/>
+        <var-decl name='_py_mutex' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='601' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='233984'>
-        <var-decl name='_py_n_arg' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='602' column='1'/>
+        <var-decl name='_py_mycmp' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='602' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='234368'>
-        <var-decl name='_py_n_fields' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='603' column='1'/>
+        <var-decl name='_py_n_arg' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='603' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='234816'>
-        <var-decl name='_py_n_sequence_fields' type-id='type-id-1197' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='604' column='1'/>
+      <data-member access='public' layout-offset-in-bits='234752'>
+        <var-decl name='_py_n_fields' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='604' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='235328'>
-        <var-decl name='_py_n_unnamed_fields' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='605' column='1'/>
+      <data-member access='public' layout-offset-in-bits='235200'>
+        <var-decl name='_py_n_sequence_fields' type-id='type-id-1197' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='605' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='235840'>
-        <var-decl name='_py_name' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='606' column='1'/>
+      <data-member access='public' layout-offset-in-bits='235712'>
+        <var-decl name='_py_n_unnamed_fields' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='606' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='236224'>
-        <var-decl name='_py_name_from' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='607' column='1'/>
+        <var-decl name='_py_name' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='607' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='236672'>
-        <var-decl name='_py_namespace_separator' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='608' column='1'/>
+      <data-member access='public' layout-offset-in-bits='236608'>
+        <var-decl name='_py_name_from' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='608' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='237184'>
-        <var-decl name='_py_namespaces' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='609' column='1'/>
+      <data-member access='public' layout-offset-in-bits='237056'>
+        <var-decl name='_py_namespace_separator' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='609' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='237632'>
-        <var-decl name='_py_narg' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='610' column='1'/>
+      <data-member access='public' layout-offset-in-bits='237568'>
+        <var-decl name='_py_namespaces' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='610' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='238016'>
-        <var-decl name='_py_ndigits' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='611' column='1'/>
+        <var-decl name='_py_narg' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='611' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='238400'>
-        <var-decl name='_py_nested' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='612' column='1'/>
+        <var-decl name='_py_ndigits' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='612' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='238784'>
-        <var-decl name='_py_new_file_name' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='613' column='1'/>
+        <var-decl name='_py_nested' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='613' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='239232'>
-        <var-decl name='_py_new_limit' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='614' column='1'/>
+      <data-member access='public' layout-offset-in-bits='239168'>
+        <var-decl name='_py_new_file_name' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='614' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='239680'>
-        <var-decl name='_py_newline' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='615' column='1'/>
+      <data-member access='public' layout-offset-in-bits='239616'>
+        <var-decl name='_py_new_limit' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='615' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='240064'>
-        <var-decl name='_py_newlines' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='616' column='1'/>
+        <var-decl name='_py_newline' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='616' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='240512'>
-        <var-decl name='_py_next' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='617' column='1'/>
+      <data-member access='public' layout-offset-in-bits='240448'>
+        <var-decl name='_py_newlines' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='617' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='240896'>
-        <var-decl name='_py_nlocals' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='618' column='1'/>
+        <var-decl name='_py_next' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='618' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='241280'>
-        <var-decl name='_py_node_depth' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='619' column='1'/>
+        <var-decl name='_py_nlocals' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='619' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='241728'>
-        <var-decl name='_py_node_offset' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='620' column='1'/>
+      <data-member access='public' layout-offset-in-bits='241664'>
+        <var-decl name='_py_node_depth' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='620' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='242176'>
-        <var-decl name='_py_ns' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='621' column='1'/>
+      <data-member access='public' layout-offset-in-bits='242112'>
+        <var-decl name='_py_node_offset' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='621' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='242560'>
-        <var-decl name='_py_nstype' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='622' column='1'/>
+        <var-decl name='_py_ns' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='622' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='242944'>
-        <var-decl name='_py_nt' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='623' column='1'/>
+        <var-decl name='_py_nstype' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='623' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='243328'>
-        <var-decl name='_py_null' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='624' column='1'/>
+        <var-decl name='_py_nt' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='624' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='243712'>
-        <var-decl name='_py_number' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='625' column='1'/>
+        <var-decl name='_py_null' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='625' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='244096'>
-        <var-decl name='_py_obj' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='626' column='1'/>
+        <var-decl name='_py_number' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='626' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='244480'>
-        <var-decl name='_py_object' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='627' column='1'/>
+        <var-decl name='_py_obj' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='627' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='244864'>
-        <var-decl name='_py_offset' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='628' column='1'/>
+        <var-decl name='_py_object' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='628' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='245248'>
-        <var-decl name='_py_offset_dst' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='629' column='1'/>
+        <var-decl name='_py_offset' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='629' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='245696'>
-        <var-decl name='_py_offset_src' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='630' column='1'/>
+      <data-member access='public' layout-offset-in-bits='245632'>
+        <var-decl name='_py_offset_dst' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='630' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='246144'>
-        <var-decl name='_py_on_type_read' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='631' column='1'/>
+      <data-member access='public' layout-offset-in-bits='246080'>
+        <var-decl name='_py_offset_src' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='631' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='246592'>
-        <var-decl name='_py_onceregistry' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='632' column='1'/>
+      <data-member access='public' layout-offset-in-bits='246528'>
+        <var-decl name='_py_on_type_read' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='632' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='247040'>
-        <var-decl name='_py_only_keys' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='633' column='1'/>
+      <data-member access='public' layout-offset-in-bits='246976'>
+        <var-decl name='_py_onceregistry' type-id='type-id-1190' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='633' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='247488'>
-        <var-decl name='_py_oparg' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='634' column='1'/>
+      <data-member access='public' layout-offset-in-bits='247424'>
+        <var-decl name='_py_only_keys' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='634' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='247872'>
-        <var-decl name='_py_opcode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='635' column='1'/>
+        <var-decl name='_py_oparg' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='635' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='248256'>
-        <var-decl name='_py_open' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='636' column='1'/>
+        <var-decl name='_py_opcode' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='636' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='248640'>
-        <var-decl name='_py_opener' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='637' column='1'/>
+        <var-decl name='_py_open' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='637' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='249024'>
-        <var-decl name='_py_operation' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='638' column='1'/>
+        <var-decl name='_py_opener' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='638' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='249472'>
-        <var-decl name='_py_optimize' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='639' column='1'/>
+      <data-member access='public' layout-offset-in-bits='249408'>
+        <var-decl name='_py_operation' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='639' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='249920'>
-        <var-decl name='_py_options' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='640' column='1'/>
+      <data-member access='public' layout-offset-in-bits='249856'>
+        <var-decl name='_py_optimize' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='640' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='250304'>
-        <var-decl name='_py_order' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='641' column='1'/>
+        <var-decl name='_py_options' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='641' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='250688'>
-        <var-decl name='_py_origin' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='642' column='1'/>
+        <var-decl name='_py_order' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='642' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='251072'>
-        <var-decl name='_py_out_fd' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='643' column='1'/>
+        <var-decl name='_py_origin' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='643' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='251456'>
-        <var-decl name='_py_outgoing' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='644' column='1'/>
+        <var-decl name='_py_out_fd' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='644' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='251904'>
-        <var-decl name='_py_outpath' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='645' column='1'/>
+      <data-member access='public' layout-offset-in-bits='251840'>
+        <var-decl name='_py_outgoing' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='645' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='252288'>
-        <var-decl name='_py_overlapped' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='646' column='1'/>
+        <var-decl name='_py_outpath' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='646' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='252736'>
-        <var-decl name='_py_owner' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='647' column='1'/>
+      <data-member access='public' layout-offset-in-bits='252672'>
+        <var-decl name='_py_overlapped' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='647' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='253120'>
-        <var-decl name='_py_pages' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='648' column='1'/>
+        <var-decl name='_py_owner' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='648' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='253504'>
-        <var-decl name='_py_parameter' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='649' column='1'/>
+        <var-decl name='_py_pages' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='649' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='253952'>
-        <var-decl name='_py_parent' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='650' column='1'/>
+      <data-member access='public' layout-offset-in-bits='253888'>
+        <var-decl name='_py_parameter' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='650' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='254336'>
-        <var-decl name='_py_password' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='651' column='1'/>
+        <var-decl name='_py_parent' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='651' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='254784'>
-        <var-decl name='_py_path' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='652' column='1'/>
+      <data-member access='public' layout-offset-in-bits='254720'>
+        <var-decl name='_py_password' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='652' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='255168'>
-        <var-decl name='_py_pattern' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='653' column='1'/>
+        <var-decl name='_py_path' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='653' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='255552'>
-        <var-decl name='_py_peek' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='654' column='1'/>
+        <var-decl name='_py_pattern' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='654' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='255936'>
-        <var-decl name='_py_persistent_id' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='655' column='1'/>
+        <var-decl name='_py_peek' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='655' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256384'>
-        <var-decl name='_py_persistent_load' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='656' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256320'>
+        <var-decl name='_py_persistent_id' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='656' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256832'>
-        <var-decl name='_py_person' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='657' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256768'>
+        <var-decl name='_py_persistent_load' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='657' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='257216'>
-        <var-decl name='_py_pi_factory' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='658' column='1'/>
+        <var-decl name='_py_person' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='658' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='257664'>
-        <var-decl name='_py_pid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='659' column='1'/>
+      <data-member access='public' layout-offset-in-bits='257600'>
+        <var-decl name='_py_pi_factory' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='659' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='258048'>
-        <var-decl name='_py_policy' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='660' column='1'/>
+        <var-decl name='_py_pid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='660' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='258432'>
-        <var-decl name='_py_pos' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='661' column='1'/>
+        <var-decl name='_py_policy' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='661' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='258816'>
-        <var-decl name='_py_pos1' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='662' column='1'/>
+        <var-decl name='_py_pos' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='662' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='259200'>
-        <var-decl name='_py_pos2' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='663' column='1'/>
+        <var-decl name='_py_pos1' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='663' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='259584'>
-        <var-decl name='_py_posix' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='664' column='1'/>
+        <var-decl name='_py_pos2' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='664' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='259968'>
-        <var-decl name='_py_print_file_and_line' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='665' column='1'/>
+        <var-decl name='_py_posix' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='665' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='260480'>
-        <var-decl name='_py_priority' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='666' column='1'/>
+      <data-member access='public' layout-offset-in-bits='260352'>
+        <var-decl name='_py_print_file_and_line' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='666' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='260928'>
-        <var-decl name='_py_progress' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='667' column='1'/>
+      <data-member access='public' layout-offset-in-bits='260864'>
+        <var-decl name='_py_priority' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='667' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='261376'>
-        <var-decl name='_py_progress_handler' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='668' column='1'/>
+      <data-member access='public' layout-offset-in-bits='261312'>
+        <var-decl name='_py_progress' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='668' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='261888'>
-        <var-decl name='_py_progress_routine' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='669' column='1'/>
+      <data-member access='public' layout-offset-in-bits='261760'>
+        <var-decl name='_py_progress_handler' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='669' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='262400'>
-        <var-decl name='_py_proto' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='670' column='1'/>
+      <data-member access='public' layout-offset-in-bits='262272'>
+        <var-decl name='_py_progress_routine' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='670' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='262784'>
-        <var-decl name='_py_protocol' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='671' column='1'/>
+        <var-decl name='_py_proto' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='671' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='263232'>
-        <var-decl name='_py_ps1' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='672' column='1'/>
+      <data-member access='public' layout-offset-in-bits='263168'>
+        <var-decl name='_py_protocol' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='672' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='263616'>
-        <var-decl name='_py_ps2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='673' column='1'/>
+        <var-decl name='_py_ps1' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='673' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='264000'>
-        <var-decl name='_py_query' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='674' column='1'/>
+        <var-decl name='_py_ps2' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='674' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='264384'>
-        <var-decl name='_py_quotetabs' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='675' column='1'/>
+        <var-decl name='_py_query' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='675' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='264832'>
-        <var-decl name='_py_raw' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='676' column='1'/>
+      <data-member access='public' layout-offset-in-bits='264768'>
+        <var-decl name='_py_quotetabs' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='676' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='265216'>
-        <var-decl name='_py_read' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='677' column='1'/>
+        <var-decl name='_py_raw' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='677' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='265600'>
-        <var-decl name='_py_read1' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='678' column='1'/>
+        <var-decl name='_py_read' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='678' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='265984'>
-        <var-decl name='_py_readable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='679' column='1'/>
+        <var-decl name='_py_read1' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='679' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='266432'>
-        <var-decl name='_py_readall' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='680' column='1'/>
+      <data-member access='public' layout-offset-in-bits='266368'>
+        <var-decl name='_py_readable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='680' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='266816'>
-        <var-decl name='_py_readinto' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='681' column='1'/>
+        <var-decl name='_py_readall' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='681' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='267264'>
-        <var-decl name='_py_readinto1' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='682' column='1'/>
+      <data-member access='public' layout-offset-in-bits='267200'>
+        <var-decl name='_py_readinto' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='682' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='267712'>
-        <var-decl name='_py_readline' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='683' column='1'/>
+      <data-member access='public' layout-offset-in-bits='267648'>
+        <var-decl name='_py_readinto1' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='683' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='268160'>
-        <var-decl name='_py_readonly' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='684' column='1'/>
+      <data-member access='public' layout-offset-in-bits='268096'>
+        <var-decl name='_py_readline' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='684' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='268608'>
-        <var-decl name='_py_real' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='685' column='1'/>
+      <data-member access='public' layout-offset-in-bits='268544'>
+        <var-decl name='_py_readonly' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='685' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='268992'>
-        <var-decl name='_py_reducer_override' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='686' column='1'/>
+        <var-decl name='_py_real' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='686' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='269504'>
-        <var-decl name='_py_registry' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='687' column='1'/>
+      <data-member access='public' layout-offset-in-bits='269376'>
+        <var-decl name='_py_reducer_override' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='687' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='269952'>
-        <var-decl name='_py_rel_tol' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='688' column='1'/>
+      <data-member access='public' layout-offset-in-bits='269888'>
+        <var-decl name='_py_registry' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='688' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='270336'>
-        <var-decl name='_py_release' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='689' column='1'/>
+        <var-decl name='_py_rel_tol' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='689' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='270720'>
-        <var-decl name='_py_reload' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='690' column='1'/>
+        <var-decl name='_py_release' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='690' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='271104'>
-        <var-decl name='_py_repl' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='691' column='1'/>
+        <var-decl name='_py_reload' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='691' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='271488'>
-        <var-decl name='_py_replace' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='692' column='1'/>
+        <var-decl name='_py_repl' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='692' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='271872'>
-        <var-decl name='_py_reserved' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='693' column='1'/>
+        <var-decl name='_py_replace' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='693' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='272320'>
-        <var-decl name='_py_reset' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='694' column='1'/>
+      <data-member access='public' layout-offset-in-bits='272256'>
+        <var-decl name='_py_reserved' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='694' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='272704'>
-        <var-decl name='_py_resetids' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='695' column='1'/>
+        <var-decl name='_py_reset' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='695' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='273152'>
-        <var-decl name='_py_return' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1'/>
+      <data-member access='public' layout-offset-in-bits='273088'>
+        <var-decl name='_py_resetids' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='696' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='273536'>
-        <var-decl name='_py_reverse' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='697' column='1'/>
+        <var-decl name='_py_return' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='697' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='273920'>
-        <var-decl name='_py_reversed' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='698' column='1'/>
+        <var-decl name='_py_reverse' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='698' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='274368'>
-        <var-decl name='_py_salt' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='699' column='1'/>
+      <data-member access='public' layout-offset-in-bits='274304'>
+        <var-decl name='_py_reversed' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='699' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='274752'>
-        <var-decl name='_py_sched_priority' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='700' column='1'/>
+        <var-decl name='_py_salt' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='700' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='275200'>
-        <var-decl name='_py_scheduler' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='701' column='1'/>
+      <data-member access='public' layout-offset-in-bits='275136'>
+        <var-decl name='_py_sched_priority' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='701' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='275648'>
-        <var-decl name='_py_script' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='702' column='1'/>
+      <data-member access='public' layout-offset-in-bits='275584'>
+        <var-decl name='_py_scheduler' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='702' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='276032'>
-        <var-decl name='_py_second' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='703' column='1'/>
+        <var-decl name='_py_script' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='703' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='276416'>
-        <var-decl name='_py_security_attributes' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='704' column='1'/>
+        <var-decl name='_py_second' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='704' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='276928'>
-        <var-decl name='_py_seek' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='705' column='1'/>
+      <data-member access='public' layout-offset-in-bits='276800'>
+        <var-decl name='_py_security_attributes' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='705' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='277312'>
-        <var-decl name='_py_seekable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='706' column='1'/>
+        <var-decl name='_py_seek' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='706' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='277760'>
-        <var-decl name='_py_selectors' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='707' column='1'/>
+      <data-member access='public' layout-offset-in-bits='277696'>
+        <var-decl name='_py_seekable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='707' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='278208'>
-        <var-decl name='_py_self' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='708' column='1'/>
+      <data-member access='public' layout-offset-in-bits='278144'>
+        <var-decl name='_py_selectors' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='708' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='278592'>
-        <var-decl name='_py_send' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='709' column='1'/>
+        <var-decl name='_py_self' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='709' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='278976'>
-        <var-decl name='_py_sep' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='710' column='1'/>
+        <var-decl name='_py_send' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='710' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='279360'>
-        <var-decl name='_py_sequence' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='711' column='1'/>
+        <var-decl name='_py_sep' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='711' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='279808'>
-        <var-decl name='_py_server_hostname' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='712' column='1'/>
+      <data-member access='public' layout-offset-in-bits='279744'>
+        <var-decl name='_py_sequence' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='712' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='280256'>
-        <var-decl name='_py_server_side' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='713' column='1'/>
+      <data-member access='public' layout-offset-in-bits='280192'>
+        <var-decl name='_py_server_hostname' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='713' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='280704'>
-        <var-decl name='_py_session' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='714' column='1'/>
+      <data-member access='public' layout-offset-in-bits='280640'>
+        <var-decl name='_py_server_side' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='714' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='281088'>
-        <var-decl name='_py_setcomp' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='715' column='1'/>
+        <var-decl name='_py_session' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='715' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='281472'>
-        <var-decl name='_py_setpgroup' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='716' column='1'/>
+        <var-decl name='_py_setcomp' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='716' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='281920'>
-        <var-decl name='_py_setsid' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='717' column='1'/>
+      <data-member access='public' layout-offset-in-bits='281856'>
+        <var-decl name='_py_setpgroup' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='717' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='282304'>
-        <var-decl name='_py_setsigdef' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='718' column='1'/>
+        <var-decl name='_py_setsid' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='718' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='282752'>
-        <var-decl name='_py_setsigmask' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='719' column='1'/>
+      <data-member access='public' layout-offset-in-bits='282688'>
+        <var-decl name='_py_setsigdef' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='719' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='283200'>
-        <var-decl name='_py_setstate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='720' column='1'/>
+      <data-member access='public' layout-offset-in-bits='283136'>
+        <var-decl name='_py_setsigmask' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='720' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='283648'>
-        <var-decl name='_py_shape' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='721' column='1'/>
+      <data-member access='public' layout-offset-in-bits='283584'>
+        <var-decl name='_py_setstate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='721' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='284032'>
-        <var-decl name='_py_show_cmd' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='722' column='1'/>
+        <var-decl name='_py_shape' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='722' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='284480'>
-        <var-decl name='_py_signed' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='723' column='1'/>
+      <data-member access='public' layout-offset-in-bits='284416'>
+        <var-decl name='_py_show_cmd' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='723' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='284864'>
-        <var-decl name='_py_size' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='724' column='1'/>
+        <var-decl name='_py_signed' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='724' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='285248'>
-        <var-decl name='_py_sizehint' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='725' column='1'/>
+        <var-decl name='_py_size' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='725' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='285696'>
-        <var-decl name='_py_skip_file_prefixes' type-id='type-id-1204' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='726' column='1'/>
+      <data-member access='public' layout-offset-in-bits='285632'>
+        <var-decl name='_py_sizehint' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='726' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='286208'>
-        <var-decl name='_py_sleep' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='727' column='1'/>
+      <data-member access='public' layout-offset-in-bits='286080'>
+        <var-decl name='_py_skip_file_prefixes' type-id='type-id-1204' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='727' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='286592'>
-        <var-decl name='_py_sock' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='728' column='1'/>
+        <var-decl name='_py_sleep' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='728' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='286976'>
-        <var-decl name='_py_sort' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='729' column='1'/>
+        <var-decl name='_py_sock' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='729' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='287360'>
-        <var-decl name='_py_source' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='730' column='1'/>
+        <var-decl name='_py_sort' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='730' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='287744'>
-        <var-decl name='_py_source_traceback' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='731' column='1'/>
+        <var-decl name='_py_source' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='731' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='288256'>
-        <var-decl name='_py_spam' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='732' column='1'/>
+      <data-member access='public' layout-offset-in-bits='288128'>
+        <var-decl name='_py_source_traceback' type-id='type-id-1202' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='732' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288640'>
-        <var-decl name='_py_src' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='733' column='1'/>
+        <var-decl name='_py_spam' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='733' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='289024'>
-        <var-decl name='_py_src_dir_fd' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='734' column='1'/>
+        <var-decl name='_py_src' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='734' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='289472'>
-        <var-decl name='_py_stacklevel' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='735' column='1'/>
+      <data-member access='public' layout-offset-in-bits='289408'>
+        <var-decl name='_py_src_dir_fd' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='735' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='289920'>
-        <var-decl name='_py_start' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='736' column='1'/>
+      <data-member access='public' layout-offset-in-bits='289856'>
+        <var-decl name='_py_stacklevel' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='736' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='290304'>
-        <var-decl name='_py_statement' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='737' column='1'/>
+        <var-decl name='_py_start' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='737' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='290752'>
-        <var-decl name='_py_status' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='738' column='1'/>
+      <data-member access='public' layout-offset-in-bits='290688'>
+        <var-decl name='_py_statement' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='738' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='291136'>
-        <var-decl name='_py_stderr' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='739' column='1'/>
+        <var-decl name='_py_status' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='739' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='291520'>
-        <var-decl name='_py_stdin' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='740' column='1'/>
+        <var-decl name='_py_stderr' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='740' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='291904'>
-        <var-decl name='_py_stdout' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='741' column='1'/>
+        <var-decl name='_py_stdin' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='741' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='292288'>
-        <var-decl name='_py_step' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='742' column='1'/>
+        <var-decl name='_py_stdout' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='742' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='292672'>
-        <var-decl name='_py_steps' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='743' column='1'/>
+        <var-decl name='_py_step' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='743' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='293056'>
-        <var-decl name='_py_store_name' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='744' column='1'/>
+        <var-decl name='_py_steps' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='744' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='293504'>
-        <var-decl name='_py_strategy' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='745' column='1'/>
+      <data-member access='public' layout-offset-in-bits='293440'>
+        <var-decl name='_py_store_name' type-id='type-id-1182' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='745' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='293952'>
-        <var-decl name='_py_strftime' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='746' column='1'/>
+      <data-member access='public' layout-offset-in-bits='293888'>
+        <var-decl name='_py_strategy' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='746' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='294400'>
-        <var-decl name='_py_strict' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='747' column='1'/>
+      <data-member access='public' layout-offset-in-bits='294336'>
+        <var-decl name='_py_strftime' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='747' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='294784'>
-        <var-decl name='_py_strict_mode' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='748' column='1'/>
+        <var-decl name='_py_strict' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='748' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='295232'>
-        <var-decl name='_py_string' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='749' column='1'/>
+      <data-member access='public' layout-offset-in-bits='295168'>
+        <var-decl name='_py_strict_mode' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='749' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='295616'>
-        <var-decl name='_py_sub_key' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='750' column='1'/>
+        <var-decl name='_py_string' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='750' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='296000'>
-        <var-decl name='_py_subcalls' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='751' column='1'/>
+        <var-decl name='_py_sub_key' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='751' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='296448'>
-        <var-decl name='_py_symmetric_difference_update' type-id='type-id-1200' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='752' column='1'/>
+      <data-member access='public' layout-offset-in-bits='296384'>
+        <var-decl name='_py_subcalls' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='752' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='297024'>
-        <var-decl name='_py_tabsize' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='753' column='1'/>
+      <data-member access='public' layout-offset-in-bits='296832'>
+        <var-decl name='_py_symmetric_difference_update' type-id='type-id-1200' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='753' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='297408'>
-        <var-decl name='_py_tag' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='754' column='1'/>
+        <var-decl name='_py_tabsize' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='754' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='297792'>
-        <var-decl name='_py_target' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='755' column='1'/>
+        <var-decl name='_py_tag' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='755' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='298176'>
-        <var-decl name='_py_target_is_directory' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='756' column='1'/>
+        <var-decl name='_py_target' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='756' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='298688'>
-        <var-decl name='_py_task' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='757' column='1'/>
+      <data-member access='public' layout-offset-in-bits='298560'>
+        <var-decl name='_py_target_is_directory' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='757' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='299072'>
-        <var-decl name='_py_tb_frame' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='758' column='1'/>
+        <var-decl name='_py_task' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='758' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='299520'>
-        <var-decl name='_py_tb_lasti' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='759' column='1'/>
+      <data-member access='public' layout-offset-in-bits='299456'>
+        <var-decl name='_py_tb_frame' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='759' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='299968'>
-        <var-decl name='_py_tb_lineno' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='760' column='1'/>
+      <data-member access='public' layout-offset-in-bits='299904'>
+        <var-decl name='_py_tb_lasti' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='760' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='300416'>
-        <var-decl name='_py_tb_next' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='761' column='1'/>
+      <data-member access='public' layout-offset-in-bits='300352'>
+        <var-decl name='_py_tb_lineno' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='761' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='300800'>
-        <var-decl name='_py_tell' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='762' column='1'/>
+        <var-decl name='_py_tb_next' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='762' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='301184'>
-        <var-decl name='_py_template' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='763' column='1'/>
+        <var-decl name='_py_tell' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='763' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='301632'>
-        <var-decl name='_py_term' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='764' column='1'/>
+      <data-member access='public' layout-offset-in-bits='301568'>
+        <var-decl name='_py_template' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='764' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='302016'>
-        <var-decl name='_py_text' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='765' column='1'/>
+        <var-decl name='_py_term' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='765' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='302400'>
-        <var-decl name='_py_threading' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='766' column='1'/>
+        <var-decl name='_py_text' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='766' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='302848'>
-        <var-decl name='_py_throw' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='767' column='1'/>
+      <data-member access='public' layout-offset-in-bits='302784'>
+        <var-decl name='_py_threading' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='767' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='303232'>
-        <var-decl name='_py_timeout' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='768' column='1'/>
+        <var-decl name='_py_throw' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='768' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='303616'>
-        <var-decl name='_py_timer' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='769' column='1'/>
+        <var-decl name='_py_timeout' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='769' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='304000'>
-        <var-decl name='_py_times' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='770' column='1'/>
+        <var-decl name='_py_timer' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='770' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='304384'>
-        <var-decl name='_py_timetuple' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='771' column='1'/>
+        <var-decl name='_py_times' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='771' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='304832'>
-        <var-decl name='_py_timeunit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='772' column='1'/>
+      <data-member access='public' layout-offset-in-bits='304768'>
+        <var-decl name='_py_timetuple' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='772' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='305280'>
-        <var-decl name='_py_top' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='773' column='1'/>
+      <data-member access='public' layout-offset-in-bits='305216'>
+        <var-decl name='_py_timeunit' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='773' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='305664'>
-        <var-decl name='_py_trace_callback' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='774' column='1'/>
+        <var-decl name='_py_top' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='774' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='306112'>
-        <var-decl name='_py_traceback' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='775' column='1'/>
+      <data-member access='public' layout-offset-in-bits='306048'>
+        <var-decl name='_py_trace_callback' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='775' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='306560'>
-        <var-decl name='_py_trailers' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='776' column='1'/>
+      <data-member access='public' layout-offset-in-bits='306496'>
+        <var-decl name='_py_traceback' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='776' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='307008'>
-        <var-decl name='_py_translate' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='777' column='1'/>
+      <data-member access='public' layout-offset-in-bits='306944'>
+        <var-decl name='_py_trailers' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='777' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='307456'>
-        <var-decl name='_py_true' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='778' column='1'/>
+      <data-member access='public' layout-offset-in-bits='307392'>
+        <var-decl name='_py_translate' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='778' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='307840'>
-        <var-decl name='_py_truncate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='779' column='1'/>
+        <var-decl name='_py_true' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='779' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='308288'>
-        <var-decl name='_py_twice' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='780' column='1'/>
+      <data-member access='public' layout-offset-in-bits='308224'>
+        <var-decl name='_py_truncate' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='780' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='308672'>
-        <var-decl name='_py_txt' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='781' column='1'/>
+        <var-decl name='_py_twice' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='781' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='309056'>
-        <var-decl name='_py_type' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='782' column='1'/>
+        <var-decl name='_py_txt' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='782' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='309440'>
-        <var-decl name='_py_type_params' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='783' column='1'/>
+        <var-decl name='_py_type' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='783' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='309888'>
-        <var-decl name='_py_tz' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='784' column='1'/>
+      <data-member access='public' layout-offset-in-bits='309824'>
+        <var-decl name='_py_type_params' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='784' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='310272'>
-        <var-decl name='_py_tzinfo' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='785' column='1'/>
+        <var-decl name='_py_tz' type-id='type-id-1186' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='785' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='310656'>
-        <var-decl name='_py_tzname' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='786' column='1'/>
+        <var-decl name='_py_tzinfo' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='786' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='311040'>
-        <var-decl name='_py_uid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='787' column='1'/>
+        <var-decl name='_py_tzname' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='787' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='311424'>
-        <var-decl name='_py_unlink' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='788' column='1'/>
+        <var-decl name='_py_uid' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='788' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='311808'>
-        <var-decl name='_py_unraisablehook' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='789' column='1'/>
+        <var-decl name='_py_unlink' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='789' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='312256'>
-        <var-decl name='_py_uri' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='790' column='1'/>
+      <data-member access='public' layout-offset-in-bits='312192'>
+        <var-decl name='_py_unraisablehook' type-id='type-id-1196' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='790' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='312640'>
-        <var-decl name='_py_usedforsecurity' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='791' column='1'/>
+        <var-decl name='_py_uri' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='791' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='313088'>
-        <var-decl name='_py_value' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='792' column='1'/>
+      <data-member access='public' layout-offset-in-bits='313024'>
+        <var-decl name='_py_usedforsecurity' type-id='type-id-1194' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='792' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='313472'>
-        <var-decl name='_py_values' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='793' column='1'/>
+        <var-decl name='_py_value' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='793' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='313856'>
-        <var-decl name='_py_version' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='794' column='1'/>
+        <var-decl name='_py_values' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='794' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='314240'>
-        <var-decl name='_py_volume' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='795' column='1'/>
+        <var-decl name='_py_version' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='795' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='314624'>
-        <var-decl name='_py_wait_all' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='796' column='1'/>
+        <var-decl name='_py_volume' type-id='type-id-1185' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='796' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='315072'>
-        <var-decl name='_py_warn_on_full_buffer' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='797' column='1'/>
+      <data-member access='public' layout-offset-in-bits='315008'>
+        <var-decl name='_py_wait_all' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='797' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='315584'>
-        <var-decl name='_py_warnings' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='798' column='1'/>
+      <data-member access='public' layout-offset-in-bits='315456'>
+        <var-decl name='_py_warn_on_full_buffer' type-id='type-id-1198' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='798' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='316032'>
-        <var-decl name='_py_warnoptions' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='799' column='1'/>
+      <data-member access='public' layout-offset-in-bits='315968'>
+        <var-decl name='_py_warnings' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='799' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='316480'>
-        <var-decl name='_py_wbits' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='800' column='1'/>
+      <data-member access='public' layout-offset-in-bits='316416'>
+        <var-decl name='_py_warnoptions' type-id='type-id-1191' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='800' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='316864'>
-        <var-decl name='_py_week' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='801' column='1'/>
+        <var-decl name='_py_wbits' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='801' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='317248'>
-        <var-decl name='_py_weekday' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='802' column='1'/>
+        <var-decl name='_py_week' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='802' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='317632'>
-        <var-decl name='_py_which' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='803' column='1'/>
+        <var-decl name='_py_weekday' type-id='type-id-1188' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='803' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='318016'>
-        <var-decl name='_py_who' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='804' column='1'/>
+        <var-decl name='_py_which' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='804' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='318400'>
-        <var-decl name='_py_withdata' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='805' column='1'/>
+        <var-decl name='_py_who' type-id='type-id-1207' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='805' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='318848'>
-        <var-decl name='_py_writable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='806' column='1'/>
+      <data-member access='public' layout-offset-in-bits='318784'>
+        <var-decl name='_py_withdata' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='806' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='319296'>
-        <var-decl name='_py_write' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='807' column='1'/>
+      <data-member access='public' layout-offset-in-bits='319232'>
+        <var-decl name='_py_writable' type-id='type-id-1184' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='807' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='319680'>
-        <var-decl name='_py_write_through' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='808' column='1'/>
+        <var-decl name='_py_write' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='808' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='320128'>
-        <var-decl name='_py_year' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='809' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320064'>
+        <var-decl name='_py_write_through' type-id='type-id-1189' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='809' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320512'>
-        <var-decl name='_py_zdict' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='810' column='1'/>
+        <var-decl name='_py_year' type-id='type-id-1195' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='810' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320896'>
-        <var-decl name='_py_zstd_dict' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='811' column='1'/>
+        <var-decl name='_py_zdict' type-id='type-id-1193' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='811' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='321280'>
+        <var-decl name='_py_zstd_dict' type-id='type-id-1183' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='812' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='__anonymous_struct__87' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='62' column='1' id='type-id-1194'>
         <var-decl name='_data' type-id='type-id-932' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='331' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__837' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='813' column='1' id='type-id-826'>
+    <class-decl name='__anonymous_struct__838' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='814' column='1' id='type-id-828'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_ascii' type-id='type-id-1058' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='814' column='1'/>
+        <var-decl name='_ascii' type-id='type-id-1058' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='815' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='_data' type-id='type-id-940' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='815' column='1'/>
+        <var-decl name='_data' type-id='type-id-940' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='816' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__838' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='817' column='1' id='type-id-828'>
+    <class-decl name='__anonymous_struct__839' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='818' column='1' id='type-id-826'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_latin1' type-id='type-id-1061' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='818' column='1'/>
+        <var-decl name='_latin1' type-id='type-id-1061' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='819' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='_data' type-id='type-id-940' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='819' column='1'/>
+        <var-decl name='_data' type-id='type-id-940' visibility='default' filepath='./Include/internal/pycore_global_strings.h' line='820' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_Py_slist_item_s' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='13' column='1' id='type-id-1210'>
         <var-decl name='find_and_load' type-id='type-id-1261' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='328' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__839' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='324' column='1' id='type-id-1261'>
+    <class-decl name='__anonymous_struct__840' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='324' column='1' id='type-id-1261'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='import_level' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='325' column='1'/>
       </data-member>
         <var-decl name='type_version_cache' type-id='type-id-820' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='584' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__840' size-in-bits='76864' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='568' column='1' id='type-id-1277'>
+    <class-decl name='__anonymous_struct__841' size-in-bits='76864' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='568' column='1' id='type-id-1277'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='num_initialized' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='569' column='1'/>
       </data-member>
         <var-decl name='initialized' type-id='type-id-895' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='570' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__841' size-in-bits='3968' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='573' column='1' id='type-id-1278'>
+    <class-decl name='__anonymous_struct__842' size-in-bits='3968' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='573' column='1' id='type-id-1278'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='num_initialized' type-id='type-id-21' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='574' column='1'/>
       </data-member>
         <var-decl name='singletons' type-id='type-id-1293' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='700' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__842' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='694' column='1' id='type-id-1293'>
+    <class-decl name='__anonymous_struct__843' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='694' column='1' id='type-id-1293'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='_not_used' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='695' column='1'/>
       </data-member>
         <var-decl name='interned_strings' type-id='type-id-618' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='105' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_static_objects' size-in-bits='612608' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='114' column='1' id='type-id-1350'>
+    <class-decl name='_Py_static_objects' size-in-bits='612992' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='114' column='1' id='type-id-1350'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='singletons' type-id='type-id-1351' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='137' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__56' size-in-bits='612608' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='115' column='1' id='type-id-1351'>
+    <class-decl name='__anonymous_struct__56' size-in-bits='612992' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='115' column='1' id='type-id-1351'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='small_ints' type-id='type-id-813' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='121' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='165696'>
         <var-decl name='strings' type-id='type-id-1179' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='129' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='611584'>
+      <data-member access='public' layout-offset-in-bits='611968'>
         <var-decl name='_tuple_empty_gc_not_used' type-id='type-id-1253' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='131' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='611712'>
+      <data-member access='public' layout-offset-in-bits='612096'>
         <var-decl name='tuple_empty' type-id='type-id-1056' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='132' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='612032'>
+      <data-member access='public' layout-offset-in-bits='612416'>
         <var-decl name='_hamt_bitmap_node_empty_gc_not_used' type-id='type-id-1253' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='134' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='612160'>
+      <data-member access='public' layout-offset-in-bits='612544'>
         <var-decl name='hamt_bitmap_node_empty' type-id='type-id-1352' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='135' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='612480'>
+      <data-member access='public' layout-offset-in-bits='612864'>
         <var-decl name='context_token_missing' type-id='type-id-1117' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='136' column='1'/>
       </data-member>
     </class-decl>
         <var-decl name='eos' type-id='type-id-58' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='126' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='pyruntimestate' size-in-bits='2531392' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='146' column='1' id='type-id-1353'>
+    <class-decl name='pyruntimestate' size-in-bits='2531776' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='146' column='1' id='type-id-1353'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='debug_offsets' type-id='type-id-1164' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='159' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='112320'>
         <var-decl name='static_objects' type-id='type-id-1350' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='290' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='724928'>
+      <data-member access='public' layout-offset-in-bits='725312'>
         <var-decl name='_main_interpreter' type-id='type-id-1361' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='307' column='1'/>
       </data-member>
     </class-decl>
       <return type-id='type-id-35'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/pegen_errors.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/pegen_errors.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyErr_ProgramDecodedTextObject' mangled-name='_PyErr_ProgramDecodedTextObject' filepath='./Include/internal/pycore_pyerrors.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ProgramDecodedTextObject'>
       <parameter type-id='type-id-6'/>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-7'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/string_parser.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/string_parser.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-266'/>
     <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='./Include/bytesobject.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Size'>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/token.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/token.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-589' size-in-bits='4480' id='type-id-1541'>
       <subrange length='70' type-id='type-id-2' id='type-id-1542'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/tokenizer/file_tokenizer.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/tokenizer/file_tokenizer.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-1544' size-in-bits='64' id='type-id-1545'/>
     <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-62'/>
     <pointer-type-def type-id='type-id-1546' size-in-bits='64' id='type-id-1547'/>
       <return type-id='type-id-3'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Parser/tokenizer/helpers.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Parser/tokenizer/helpers.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='strcspn' filepath='/usr/include/string.h' line='293' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-4'/>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-21'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/Python-ast.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/Python-ast.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='_Py_once_fn_t' type-id='type-id-270' filepath='./Include/internal/pycore_lock.h' line='134' column='1' id='type-id-1548'/>
     <pointer-type-def type-id='type-id-987' size-in-bits='64' id='type-id-1549'/>
     <pointer-type-def type-id='type-id-1548' size-in-bits='64' id='type-id-1550'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/Python-tokenize.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/Python-tokenize.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' filepath='./Include/cpython/pyerrors.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationObject'>
       <parameter type-id='type-id-6'/>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/_contextvars.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/_contextvars.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyContext_CopyCurrent' mangled-name='PyContext_CopyCurrent' filepath='./Include/cpython/context.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_CopyCurrent'>
       <return type-id='type-id-6'/>
     </function-decl>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/_warnings.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/_warnings.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-1260' size-in-bits='64' id='type-id-27'/>
     <function-decl name='PyContextVar_New' mangled-name='PyContextVar_New' filepath='./Include/cpython/context.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_New'>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/assemble.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/assemble.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyCodeConstructor' size-in-bits='896' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='210' column='1' id='type-id-1551'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='filename' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_code.h' line='212' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/ast_preprocess.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/ast_preprocess.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_Py_c_array_t' size-in-bits='256' is-struct='yes' naming-typedef-id='type-id-1564' visibility='default' filepath='./Include/internal/pycore_c_array.h' line='15' column='1' id='type-id-1565'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='array' type-id='type-id-35' visibility='default' filepath='./Include/internal/pycore_c_array.h' line='16' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/ast_unparse.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/ast_unparse.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyArena_New' mangled-name='_PyArena_New' filepath='./Include/internal/pycore_pyarena.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArena_New'>
       <return type-id='type-id-743'/>
     </function-decl>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/bltinmodule.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/bltinmodule.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-872' size-in-bits='64' id='type-id-1567'/>
     <var-decl name='PyFilter_Type' type-id='type-id-271' mangled-name='PyFilter_Type' visibility='default' filepath='./Include/bltinmodule.h' line='7' column='1' elf-symbol-id='PyFilter_Type'/>
     <var-decl name='PyMap_Type' type-id='type-id-271' mangled-name='PyMap_Type' visibility='default' filepath='./Include/bltinmodule.h' line='8' column='1' elf-symbol-id='PyMap_Type'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/bootstrap_hash.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/bootstrap_hash.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='./Include/internal/pycore_fileutils.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat'>
       <parameter type-id='type-id-5'/>
       <parameter type-id='type-id-64'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/ceval.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/ceval.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-58' size-in-bits='448' id='type-id-1568'>
       <subrange length='56' type-id='type-id-2' id='type-id-1569'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/ceval_gil.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/ceval_gil.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <union-decl name='pthread_mutexattr_t' size-in-bits='32' naming-typedef-id='type-id-1594' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='32' column='1' id='type-id-1595'>
       <data-member access='public'>
         <var-decl name='__size' type-id='type-id-864' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='34' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/codecs.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/codecs.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='Py_hexdigits' type-id='type-id-4' mangled-name='Py_hexdigits' visibility='default' filepath='./Include/codecs.h' line='170' column='1' elf-symbol-id='Py_hexdigits'/>
     <function-decl name='PyStatus_Ok' mangled-name='PyStatus_Ok' filepath='./Include/cpython/initconfig.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Ok'>
       <return type-id='type-id-66'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/codegen.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/codegen.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-1603' size-in-bits='320' id='type-id-1604'>
       <subrange length='10' type-id='type-id-2' id='type-id-894'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/compile.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/compile.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-1622' size-in-bits='6720' id='type-id-1650'>
       <subrange length='21' type-id='type-id-2' id='type-id-929'/>
     </array-type-def>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/context.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/context.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-1294' size-in-bits='64' id='type-id-1658'/>
     <var-decl name='PyContext_Type' type-id='type-id-271' mangled-name='PyContext_Type' visibility='default' filepath='./Include/cpython/context.h' line='8' column='1' elf-symbol-id='PyContext_Type'/>
     <var-decl name='PyContextVar_Type' type-id='type-id-271' mangled-name='PyContextVar_Type' visibility='default' filepath='./Include/cpython/context.h' line='11' column='1' elf-symbol-id='PyContextVar_Type'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/critical_section.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/critical_section.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyCriticalSection' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1659'/>
     <class-decl name='PyCriticalSection2' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1660'/>
     <typedef-decl name='PyCriticalSection' type-id='type-id-1659' filepath='./Include/cpython/critical_section.h' line='70' column='1' id='type-id-1661'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/crossinterp.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/crossinterp.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='PyInterpreterConfig' size-in-bits='224' is-struct='yes' naming-typedef-id='type-id-1665' visibility='default' filepath='./Include/cpython/pylifecycle.h' line='41' column='1' id='type-id-1666'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='use_main_obmalloc' type-id='type-id-5' visibility='default' filepath='./Include/cpython/pylifecycle.h' line='43' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/errors.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/errors.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='Py_fopen' mangled-name='Py_fopen' filepath='./Include/cpython/fileutils.h' line='5' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_fopen'>
       <parameter type-id='type-id-6'/>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/fileutils.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/fileutils.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-1688' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h' line='13' column='1' id='type-id-1689'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='__count' type-id='type-id-5' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h' line='15' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/flowgraph.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/flowgraph.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyOpcode_num_popped' filepath='./Include/internal/pycore_opcode_metadata.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-5'/>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/formatter_unicode.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/formatter_unicode.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='51' column='1' id='type-id-1695'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='decimal_point' type-id='type-id-17' visibility='default' filepath='/usr/include/locale.h' line='55' column='1'/>
       <return type-id='type-id-1696'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/frame.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/frame.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-1697' size-in-bits='384' id='type-id-1698'>
       <subrange length='6' type-id='type-id-2' id='type-id-477'/>
     </array-type-def>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/frozen.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/frozen.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_frozen' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/import.h' line='13' column='1' id='type-id-1701'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='name' type-id='type-id-4' visibility='default' filepath='./Include/cpython/import.h' line='14' column='1'/>
     <var-decl name='_PyImport_FrozenTest' type-id='type-id-1704' mangled-name='_PyImport_FrozenTest' visibility='default' filepath='./Include/internal/pycore_import.h' line='113' column='1' elf-symbol-id='_PyImport_FrozenTest'/>
     <var-decl name='_PyImport_FrozenAliases' type-id='type-id-1706' visibility='default' filepath='./Include/internal/pycore_import.h' line='115' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/frozenmain.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/frozenmain.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-65'/>
     <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Include/cpython/initconfig.h' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitPythonConfig'>
       <parameter type-id='type-id-65'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/gc.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/gc.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='gcvisitobjects_t' type-id='type-id-396' filepath='./Include/cpython/objimpl.h' line='103' column='1' id='type-id-1707'/>
     <function-decl name='_PyGC_ClearAllFreeLists' filepath='./Include/internal/pycore_gc.h' line='345' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-33'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/gc_gil.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/gc_gil.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-1175' size-in-bits='64' id='type-id-1708'/>
     <function-decl name='_PyObject_ClearFreeLists' filepath='./Include/internal/pycore_freelist.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-1708'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/getargs.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/getargs.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='./Include/pystate.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
       <parameter type-id='type-id-33'/>
       <return type-id='type-id-31'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/getcompiler.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/getcompiler.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='Py_GetCompiler' mangled-name='Py_GetCompiler' filepath='Python/getcompiler.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetCompiler'>
       <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/getopt.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/getopt.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyOS_opterr' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='8' column='1'/>
     <var-decl name='_PyOS_optind' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='9' column='1'/>
     <var-decl name='_PyOS_optarg' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='10' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/getversion.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/getversion.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-2' const='yes' id='type-id-1709'/>
     <var-decl name='Py_Version' type-id='type-id-1709' mangled-name='Py_Version' visibility='default' filepath='./Include/pylifecycle.h' line='64' column='1' elf-symbol-id='Py_Version'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/hamt.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/hamt.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyHamt_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='24' column='1'/>
     <var-decl name='_PyHamt_ArrayNode_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='25' column='1'/>
     <var-decl name='_PyHamt_BitmapNode_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='26' column='1'/>
     <var-decl name='_PyHamtValues_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='29' column='1'/>
     <var-decl name='_PyHamtItems_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='30' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/hashtable.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/hashtable.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-1710' filepath='./Include/internal/pycore_hashtable.h' line='97' column='1' id='type-id-1711'/>
     <pointer-type-def type-id='type-id-1712' size-in-bits='64' id='type-id-1710'/>
     <function-decl name='_Py_hashtable_hash_ptr' mangled-name='_Py_hashtable_hash_ptr' filepath='Python/hashtable.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_hash_ptr'>
       <return type-id='type-id-5'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/import.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/import.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <enum-decl name='ext_module_kind' filepath='./Include/internal/pycore_importdl.h' line='18' column='1' id='type-id-1713'>
       <underlying-type type-id='type-id-37'/>
       <enumerator name='_Py_ext_module_kind_UNKNOWN' value='0'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/initconfig.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/initconfig.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='PyInitConfig' type-id='type-id-1727' filepath='./Include/cpython/initconfig.h' line='288' column='1' id='type-id-1728'/>
     <class-decl name='_PyArgv' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='68' column='1' id='type-id-247'>
       <data-member access='public' layout-offset-in-bits='0'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/instruction_sequence.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/instruction_sequence.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_PyInstructionSequence_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_instruction_sequence.h' line='77' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/instrumentation.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/instrumentation.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyMonitoringState' size-in-bits='16' is-struct='yes' visibility='default' filepath='./Include/cpython/monitoring.h' line='39' column='1' id='type-id-1747'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='active' type-id='type-id-309' visibility='default' filepath='./Include/cpython/monitoring.h' line='40' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/interpconfig.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/interpconfig.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyInterpreterConfig_AsDict' mangled-name='_PyInterpreterConfig_AsDict' filepath='Python/interpconfig.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterConfig_AsDict'>
       <parameter type-id='type-id-1681' name='config' filepath='Python/interpconfig.c' line='55' column='1'/>
       <return type-id='type-id-6'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/intrinsics.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/intrinsics.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-1750' size-in-bits='1536' id='type-id-1751'>
       <subrange length='12' type-id='type-id-2' id='type-id-913'/>
     </array-type-def>
       <return type-id='type-id-6'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/legacy_tracing.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/legacy_tracing.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='_PyMonitoringEventSet' type-id='type-id-322' filepath='./Include/internal/pycore_instruments.h' line='15' column='1' id='type-id-1766'/>
     <pointer-type-def type-id='type-id-1766' size-in-bits='64' id='type-id-1767'/>
     <function-decl name='_PyMonitoring_RegisterCallback' filepath='./Include/internal/pycore_instruments.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/lock.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/lock.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-58' size-in-bits='256' id='type-id-1768'>
       <subrange length='32' type-id='type-id-2' id='type-id-73'/>
     </array-type-def>
       <return type-id='type-id-3'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/marshal.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/marshal.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-546' size-in-bits='192' id='type-id-1782'>
       <subrange length='3' type-id='type-id-2' id='type-id-885'/>
     </array-type-def>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/modsupport.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/modsupport.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_convert_optional_to_ssize_t' mangled-name='_Py_convert_optional_to_ssize_t' filepath='Python/modsupport.c' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_convert_optional_to_ssize_t'>
       <parameter type-id='type-id-6' name='obj' filepath='Python/modsupport.c' line='14' column='1'/>
       <parameter type-id='type-id-35' name='result' filepath='Python/modsupport.c' line='14' column='1'/>
       <return type-id='type-id-322'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/mysnprintf.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/mysnprintf.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyOS_vsnprintf' mangled-name='PyOS_vsnprintf' filepath='Python/mysnprintf.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_vsnprintf'>
       <parameter type-id='type-id-17' name='str' filepath='Python/mysnprintf.c' line='53' column='1'/>
       <parameter type-id='type-id-21' name='size' filepath='Python/mysnprintf.c' line='53' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/parking_lot.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/parking_lot.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyRawMutex' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-1788' visibility='default' filepath='./Include/internal/pycore_lock.h' line='104' column='1' id='type-id-1789'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='v' type-id='type-id-369' visibility='default' filepath='./Include/internal/pycore_lock.h' line='105' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pathconfig.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pathconfig.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_wreadlink' filepath='./Include/internal/pycore_fileutils.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-18'/>
       <parameter type-id='type-id-63'/>
       <return type-id='type-id-63'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/perf_jit_trampoline.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/perf_jit_trampoline.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <qualified-type-def type-id='type-id-221' restrict='yes' id='type-id-1793'/>
     <var-decl name='_Py_perfmap_jit_callbacks' type-id='type-id-1794' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='111' column='1'/>
     <function-decl name='gettimeofday' filepath='/usr/include/x86_64-linux-gnu/sys/time.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/perf_trampoline.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/perf_trampoline.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='_Py_perfmap_callbacks' type-id='type-id-1794' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='110' column='1'/>
     <function-decl name='getppid' filepath='/usr/include/unistd.h' line='653' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-178'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/preconfig.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/preconfig.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <enum-decl name='PyMemAllocatorName' naming-typedef-id='type-id-1795' filepath='./Include/cpython/pymem.h' line='16' column='1' id='type-id-1796'>
       <underlying-type type-id='type-id-37'/>
       <enumerator name='PYMEM_ALLOCATOR_NOT_SET' value='0'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pyctype.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pyctype.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-452' size-in-bits='2048' id='type-id-1798'>
       <subrange length='256' type-id='type-id-2' id='type-id-75'/>
     </array-type-def>
     <var-decl name='_Py_ctype_tolower' type-id='type-id-1798' mangled-name='_Py_ctype_tolower' visibility='default' filepath='./Include/cpython/pyctype.h' line='29' column='1' elf-symbol-id='_Py_ctype_tolower'/>
     <var-decl name='_Py_ctype_toupper' type-id='type-id-1798' mangled-name='_Py_ctype_toupper' visibility='default' filepath='./Include/cpython/pyctype.h' line='30' column='1' elf-symbol-id='_Py_ctype_toupper'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pyhash.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pyhash.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <array-type-def dimensions='1' type-id='type-id-95' size-in-bits='128' id='type-id-1801'>
       <subrange length='16' type-id='type-id-2' id='type-id-70'/>
     </array-type-def>
       <return type-id='type-id-304'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pylifecycle.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pylifecycle.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyPerf_Callbacks' size-in-bits='192' is-struct='yes' naming-typedef-id='type-id-1794' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='92' column='1' id='type-id-1815'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='init_state' type-id='type-id-1241' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='94' column='1'/>
       <return type-id='type-id-1816'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pystate.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pystate.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <pointer-type-def type-id='type-id-1356' size-in-bits='64' id='type-id-1824'/>
     <pointer-type-def type-id='type-id-1348' size-in-bits='64' id='type-id-1825'/>
     <pointer-type-def type-id='type-id-1255' size-in-bits='64' id='type-id-1826'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pystrcmp.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pystrcmp.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyOS_mystricmp' mangled-name='PyOS_mystricmp' filepath='Python/pystrcmp.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystricmp'>
       <parameter type-id='type-id-4' name='s1' filepath='Python/pystrcmp.c' line='22' column='1'/>
       <parameter type-id='type-id-4' name='s2' filepath='Python/pystrcmp.c' line='22' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pystrhex.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pystrhex.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_strhex' mangled-name='_Py_strhex' filepath='Python/pystrhex.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex'>
       <parameter type-id='type-id-4' name='argbuf' filepath='Python/pystrhex.c' line='146' column='1'/>
       <parameter type-id='type-id-263' name='arglen' filepath='Python/pystrhex.c' line='146' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pythonrun.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pythonrun.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_PyImport_GetImportlibExternalLoader' filepath='./Include/internal/pycore_import.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-33'/>
       <parameter type-id='type-id-4'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/pytime.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/pytime.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_Py_clock_info_t' size-in-bits='192' is-struct='yes' naming-typedef-id='type-id-1828' visibility='default' filepath='./Include/internal/pycore_time.h' line='246' column='1' id='type-id-1829'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='implementation' type-id='type-id-4' visibility='default' filepath='./Include/internal/pycore_time.h' line='247' column='1'/>
       <return type-id='type-id-28'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/remote_debugging.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/remote_debugging.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h' line='26' column='1' id='type-id-1834'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='iov_base' type-id='type-id-35' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h' line='28' column='1'/>
       <return type-id='type-id-185'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/specialize.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/specialize.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='_PyCode8' size-in-bits='1728' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='520' column='1' id='type-id-1836'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='ob_base' type-id='type-id-254' visibility='default' filepath='./Include/internal/pycore_code.h' line='520' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/suggestions.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/suggestions.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='_Py_UTF8_Edit_Cost' mangled-name='_Py_UTF8_Edit_Cost' filepath='Python/suggestions.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_UTF8_Edit_Cost'>
       <parameter type-id='type-id-6' name='a' filepath='Python/suggestions.c' line='181' column='1'/>
       <parameter type-id='type-id-6' name='b' filepath='Python/suggestions.c' line='181' column='1'/>
       <return type-id='type-id-7'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/symtable.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/symtable.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <var-decl name='PySTEntry_Type' type-id='type-id-271' visibility='default' filepath='./Include/internal/pycore_symtable.h' line='136' column='1'/>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/thread.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/thread.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <typedef-decl name='PyThread_handle_t' type-id='type-id-443' filepath='./Include/internal/pycore_pythread.h' line='120' column='1' id='type-id-1840'/>
     <pointer-type-def type-id='type-id-1840' size-in-bits='64' id='type-id-1841'/>
     <pointer-type-def type-id='type-id-1723' size-in-bits='64' id='type-id-1842'/>
       <return type-id='type-id-35'/>
     </function-type>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/traceback.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/traceback.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <class-decl name='Dl_info' size-in-bits='256' is-struct='yes' naming-typedef-id='type-id-1852' visibility='default' filepath='/usr/include/dlfcn.h' line='90' column='1' id='type-id-1853'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='dli_fname' type-id='type-id-4' visibility='default' filepath='/usr/include/dlfcn.h' line='92' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
-  <abi-instr address-size='64' path='Python/tracemalloc.c' comp-dir-path='/src' language='LANG_C11'>
+  <abi-instr address-size='64' path='Python/tracemalloc.c' comp-dir-path='/home/runner/work/cpython/cpython' language='LANG_C11'>
     <function-decl name='PyTraceMalloc_Track' mangled-name='PyTraceMalloc_Track' filepath='Python/tracemalloc.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceMalloc_Track'>
       <parameter type-id='type-id-105' name='domain' filepath='Python/tracemalloc.c' line='1197' column='1'/>
       <parameter type-id='type-id-369' name='ptr' filepath='Python/tracemalloc.c' line='1197' column='1'/>
index 6381bac38aa8d2c1c775de15e5cb8af0495b2a97..ad70772fc334dea20b0ec93bd4ca20148cb94e7f 100644 (file)
@@ -894,6 +894,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) {
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(data));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(database));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(day));
+    _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(debug));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decode));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decoder));
     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(default));
index 97547f771a69539c3979f516c9197ad1fa77165a..c26715f6f6e23edf025db10afb6c4b72e8a51e1e 100644 (file)
@@ -385,6 +385,7 @@ struct _Py_global_strings {
         STRUCT_FOR_ID(data)
         STRUCT_FOR_ID(database)
         STRUCT_FOR_ID(day)
+        STRUCT_FOR_ID(debug)
         STRUCT_FOR_ID(decode)
         STRUCT_FOR_ID(decoder)
         STRUCT_FOR_ID(default)
index 7143ad0a018eb51aca48483f2d9d3430f86786a4..baf528fd2f641fdea35b6cfddec77ffce29657f6 100644 (file)
@@ -892,6 +892,7 @@ extern "C" {
     INIT_ID(data), \
     INIT_ID(database), \
     INIT_ID(day), \
+    INIT_ID(debug), \
     INIT_ID(decode), \
     INIT_ID(decoder), \
     INIT_ID(default), \
index bdf0a0a2e3369507c80a0e257d10508c819bc75c..08404ee5bbb6fb2332c82012fae3edfda310995e 100644 (file)
@@ -1328,6 +1328,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) {
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
     assert(PyUnicode_GET_LENGTH(string) != 1);
+    string = &_Py_ID(debug);
+    _PyUnicode_InternStatic(interp, &string);
+    assert(_PyUnicode_CheckConsistency(string, 1));
+    assert(PyUnicode_GET_LENGTH(string) != 1);
     string = &_Py_ID(decode);
     _PyUnicode_InternStatic(interp, &string);
     assert(_PyUnicode_CheckConsistency(string, 1));
index 291c419066ac5badcfa0c6ae85dc72361032c343..2b4b63a030b1af507cdeb655d77c238509e55009 100644 (file)
@@ -34,17 +34,17 @@ skip_if_not_supported = unittest.skipIf(
 
 
 def get_stack_trace(pid):
-    unwinder = RemoteUnwinder(pid, all_threads=True)
+    unwinder = RemoteUnwinder(pid, all_threads=True, debug=True)
     return unwinder.get_stack_trace()
 
 
 def get_async_stack_trace(pid):
-    unwinder = RemoteUnwinder(pid)
+    unwinder = RemoteUnwinder(pid, debug=True)
     return unwinder.get_async_stack_trace()
 
 
 def get_all_awaited_by(pid):
-    unwinder = RemoteUnwinder(pid)
+    unwinder = RemoteUnwinder(pid, debug=True)
     return unwinder.get_all_awaited_by()
 
 
index 004169e7a9c6a578f07f0576938505f68c0e5bf7..adcc83374c8373142dadead4221c28ba19b35a4c 100644 (file)
@@ -108,6 +108,7 @@ typedef struct {
     uintptr_t tstate_addr;
     uint64_t code_object_generation;
     _Py_hashtable_t *code_object_cache;
+    int debug;
 #ifdef Py_GIL_DISABLED
     // TLBC cache invalidation tracking
     uint32_t tlbc_generation;  // Track TLBC index pool changes
@@ -194,6 +195,11 @@ static int parse_frame_object(
  * UTILITY FUNCTIONS AND HELPERS
  * ============================================================================ */
 
+#define set_exception_cause(unwinder, exc_type, message) \
+    if (unwinder->debug) { \
+        _set_debug_exception_cause(exc_type, message); \
+    }
+
 static void
 cached_code_metadata_destroy(void *ptr)
 {
@@ -218,13 +224,70 @@ RemoteDebugging_InitState(RemoteDebuggingState *st)
     return 0;
 }
 
-// Helper to chain exceptions and avoid repetitions
-static void
-chain_exceptions(PyObject *exception, const char *string)
+static int
+is_prerelease_version(uint64_t version)
 {
-    PyObject *exc = PyErr_GetRaisedException();
-    PyErr_SetString(exception, string);
-    _PyErr_ChainExceptions1(exc);
+    return (version & 0xF0) != 0xF0;
+}
+
+static inline int
+validate_debug_offsets(struct _Py_DebugOffsets *debug_offsets)
+{
+    if (memcmp(debug_offsets->cookie, _Py_Debug_Cookie, sizeof(debug_offsets->cookie)) != 0) {
+        // The remote is probably running a Python version predating debug offsets.
+        PyErr_SetString(
+            PyExc_RuntimeError,
+            "Can't determine the Python version of the remote process");
+        return -1;
+    }
+
+    // Assume debug offsets could change from one pre-release version to another,
+    // or one minor version to another, but are stable across patch versions.
+    if (is_prerelease_version(Py_Version) && Py_Version != debug_offsets->version) {
+        PyErr_SetString(
+            PyExc_RuntimeError,
+            "Can't attach from a pre-release Python interpreter"
+            " to a process running a different Python version");
+        return -1;
+    }
+
+    if (is_prerelease_version(debug_offsets->version) && Py_Version != debug_offsets->version) {
+        PyErr_SetString(
+            PyExc_RuntimeError,
+            "Can't attach to a pre-release Python interpreter"
+            " from a process running a different Python version");
+        return -1;
+    }
+
+    unsigned int remote_major = (debug_offsets->version >> 24) & 0xFF;
+    unsigned int remote_minor = (debug_offsets->version >> 16) & 0xFF;
+
+    if (PY_MAJOR_VERSION != remote_major || PY_MINOR_VERSION != remote_minor) {
+        PyErr_Format(
+            PyExc_RuntimeError,
+            "Can't attach from a Python %d.%d process to a Python %d.%d process",
+            PY_MAJOR_VERSION, PY_MINOR_VERSION, remote_major, remote_minor);
+        return -1;
+    }
+
+    // The debug offsets differ between free threaded and non-free threaded builds.
+    if (_Py_Debug_Free_Threaded && !debug_offsets->free_threaded) {
+        PyErr_SetString(
+            PyExc_RuntimeError,
+            "Cannot attach from a free-threaded Python process"
+            " to a process running a non-free-threaded version");
+        return -1;
+    }
+
+    if (!_Py_Debug_Free_Threaded && debug_offsets->free_threaded) {
+        PyErr_SetString(
+            PyExc_RuntimeError,
+            "Cannot attach to a free-threaded Python process"
+            " from a process running a non-free-threaded version");
+        return -1;
+    }
+
+    return 0;
 }
 
 /* ============================================================================
@@ -232,29 +295,32 @@ chain_exceptions(PyObject *exception, const char *string)
  * ============================================================================ */
 
 static inline int
-read_ptr(proc_handle_t *handle, uintptr_t address, uintptr_t *ptr_addr)
+read_ptr(RemoteUnwinderObject *unwinder, uintptr_t address, uintptr_t *ptr_addr)
 {
-    int result = _Py_RemoteDebug_PagedReadRemoteMemory(handle, address, sizeof(void*), ptr_addr);
+    int result = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, address, sizeof(void*), ptr_addr);
     if (result < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read pointer from remote memory");
         return -1;
     }
     return 0;
 }
 
 static inline int
-read_Py_ssize_t(proc_handle_t *handle, uintptr_t address, Py_ssize_t *size)
+read_Py_ssize_t(RemoteUnwinderObject *unwinder, uintptr_t address, Py_ssize_t *size)
 {
-    int result = _Py_RemoteDebug_PagedReadRemoteMemory(handle, address, sizeof(Py_ssize_t), size);
+    int result = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, address, sizeof(Py_ssize_t), size);
     if (result < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read Py_ssize_t from remote memory");
         return -1;
     }
     return 0;
 }
 
 static int
-read_py_ptr(proc_handle_t *handle, uintptr_t address, uintptr_t *ptr_addr)
+read_py_ptr(RemoteUnwinderObject *unwinder, uintptr_t address, uintptr_t *ptr_addr)
 {
-    if (read_ptr(handle, address, ptr_addr)) {
+    if (read_ptr(unwinder, address, ptr_addr)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read Python pointer");
         return -1;
     }
     *ptr_addr &= ~Py_TAG_BITS;
@@ -262,10 +328,11 @@ read_py_ptr(proc_handle_t *handle, uintptr_t address, uintptr_t *ptr_addr)
 }
 
 static int
-read_char(proc_handle_t *handle, uintptr_t address, char *result)
+read_char(RemoteUnwinderObject *unwinder, uintptr_t address, char *result)
 {
-    int res = _Py_RemoteDebug_PagedReadRemoteMemory(handle, address, sizeof(char), result);
+    int res = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, address, sizeof(char), result);
     if (res < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read char from remote memory");
         return -1;
     }
     return 0;
@@ -293,6 +360,7 @@ read_py_str(
         unicode_obj
     );
     if (res < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read PyUnicodeObject");
         goto err;
     }
 
@@ -300,24 +368,28 @@ read_py_str(
     if (len < 0 || len > max_len) {
         PyErr_Format(PyExc_RuntimeError,
                      "Invalid string length (%zd) at 0x%lx", len, address);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Invalid string length in remote Unicode object");
         return NULL;
     }
 
     buf = (char *)PyMem_RawMalloc(len+1);
     if (buf == NULL) {
         PyErr_NoMemory();
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate buffer for string reading");
         return NULL;
     }
 
     size_t offset = unwinder->debug_offsets.unicode_object.asciiobject_size;
     res = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, address + offset, len, buf);
     if (res < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read string data from remote memory");
         goto err;
     }
     buf[len] = '\0';
 
     result = PyUnicode_FromStringAndSize(buf, len);
     if (result == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create PyUnicode from remote string data");
         goto err;
     }
 
@@ -350,31 +422,36 @@ read_py_bytes(
         bytes_obj
     );
     if (res < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read PyBytesObject");
         goto err;
     }
 
     Py_ssize_t len = GET_MEMBER(Py_ssize_t, bytes_obj, unwinder->debug_offsets.bytes_object.ob_size);
     if (len < 0 || len > max_len) {
         PyErr_Format(PyExc_RuntimeError,
-                     "Invalid string length (%zd) at 0x%lx", len, address);
+                     "Invalid bytes length (%zd) at 0x%lx", len, address);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Invalid bytes length in remote bytes object");
         return NULL;
     }
 
     buf = (char *)PyMem_RawMalloc(len+1);
     if (buf == NULL) {
         PyErr_NoMemory();
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate buffer for bytes reading");
         return NULL;
     }
 
     size_t offset = unwinder->debug_offsets.bytes_object.ob_sval;
     res = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, address + offset, len, buf);
     if (res < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read bytes data from remote memory");
         goto err;
     }
     buf[len] = '\0';
 
     result = PyBytes_FromStringAndSize(buf, len);
     if (result == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create PyBytes from remote bytes data");
         goto err;
     }
 
@@ -405,6 +482,7 @@ read_py_long(
         unwinder->debug_offsets.long_object.size,
         long_obj);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read PyLongObject");
         return -1;
     }
 
@@ -423,6 +501,7 @@ read_py_long(
         digits = (digit *)PyMem_RawMalloc(size * sizeof(digit));
         if (!digits) {
             PyErr_NoMemory();
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate digits for small PyLong");
             return -1;
         }
         memcpy(digits, long_obj + unwinder->debug_offsets.long_object.ob_digit, size * sizeof(digit));
@@ -431,6 +510,7 @@ read_py_long(
         digits = (digit *)PyMem_RawMalloc(size * sizeof(digit));
         if (!digits) {
             PyErr_NoMemory();
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate digits for large PyLong");
             return -1;
         }
 
@@ -441,6 +521,7 @@ read_py_long(
             digits
         );
         if (bytes_read < 0) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read PyLong digits from remote memory");
             goto error;
         }
     }
@@ -519,11 +600,15 @@ read_async_debug(
 ) {
     uintptr_t async_debug_addr = _Py_RemoteDebug_GetAsyncioDebugAddress(&unwinder->handle);
     if (!async_debug_addr) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to get AsyncioDebug address");
         return -1;
     }
 
     size_t size = sizeof(struct _Py_AsyncioModuleDebugOffsets);
     int result = _Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, async_debug_addr, size, &unwinder->async_debug_offsets);
+    if (result < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read AsyncioDebug offsets");
+    }
     return result;
 }
 
@@ -544,6 +629,7 @@ parse_task_name(
         unwinder->async_debug_offsets.asyncio_task_object.size,
         task_obj);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task object");
         return NULL;
     }
 
@@ -558,6 +644,7 @@ parse_task_name(
         SIZEOF_PYOBJECT,
         task_name_obj);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task name object");
         return NULL;
     }
 
@@ -569,13 +656,14 @@ parse_task_name(
         SIZEOF_TYPE_OBJ,
         type_obj);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task name type object");
         return NULL;
     }
 
     if ((GET_MEMBER(unsigned long, type_obj, unwinder->debug_offsets.type_object.tp_flags) & Py_TPFLAGS_LONG_SUBCLASS)) {
         long res = read_py_long(unwinder, task_name_addr);
         if (res == -1) {
-            chain_exceptions(PyExc_RuntimeError, "Failed to get task name");
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Task name PyLong parsing failed");
             return NULL;
         }
         return PyUnicode_FromFormat("Task-%d", res);
@@ -583,6 +671,7 @@ parse_task_name(
 
     if(!(GET_MEMBER(unsigned long, type_obj, unwinder->debug_offsets.type_object.tp_flags) & Py_TPFLAGS_UNICODE_SUBCLASS)) {
         PyErr_SetString(PyExc_RuntimeError, "Invalid task name object");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Task name object is neither long nor unicode");
         return NULL;
     }
 
@@ -604,6 +693,7 @@ static int parse_task_awaited_by(
     if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, task_address,
                                               unwinder->async_debug_offsets.asyncio_task_object.size,
                                               task_obj) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task object in awaited_by parsing");
         return -1;
     }
 
@@ -618,10 +708,12 @@ static int parse_task_awaited_by(
 
     if (awaited_by_is_a_set) {
         if (parse_tasks_in_set(unwinder, task_ab_addr, awaited_by, recurse_task)) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse tasks in awaited_by set");
             return -1;
         }
     } else {
         if (parse_task(unwinder, task_ab_addr, awaited_by, recurse_task)) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse single awaited_by task");
             return -1;
         }
     }
@@ -644,6 +736,7 @@ handle_yield_from_frame(
         SIZEOF_INTERP_FRAME,
         iframe);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read interpreter frame in yield_from handler");
         return -1;
     }
 
@@ -651,6 +744,7 @@ handle_yield_from_frame(
         PyErr_SetString(
             PyExc_RuntimeError,
             "generator doesn't own its frame \\_o_/");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Frame ownership mismatch in yield_from");
         return -1;
     }
 
@@ -660,20 +754,22 @@ handle_yield_from_frame(
     if ((void*)stackpointer_addr != NULL) {
         uintptr_t gi_await_addr;
         err = read_py_ptr(
-            &unwinder->handle,
+            unwinder,
             stackpointer_addr - sizeof(void*),
             &gi_await_addr);
         if (err) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read gi_await address");
             return -1;
         }
 
         if ((void*)gi_await_addr != NULL) {
             uintptr_t gi_await_addr_type_addr;
             err = read_ptr(
-                &unwinder->handle,
+                unwinder,
                 gi_await_addr + unwinder->debug_offsets.pyobject.ob_type,
                 &gi_await_addr_type_addr);
             if (err) {
+                set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read gi_await type address");
                 return -1;
             }
 
@@ -690,6 +786,7 @@ handle_yield_from_frame(
                 */
                 err = parse_coro_chain(unwinder, gi_await_addr, render_to);
                 if (err) {
+                    set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse coroutine chain in yield_from");
                     return -1;
                 }
             }
@@ -715,6 +812,7 @@ parse_coro_chain(
         SIZEOF_GEN_OBJ,
         gen_object);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read generator object in coro chain");
         return -1;
     }
 
@@ -726,11 +824,13 @@ parse_coro_chain(
     uintptr_t prev_frame;
     uintptr_t gi_iframe_addr = coro_address + unwinder->debug_offsets.gen_object.gi_iframe;
     if (parse_frame_object(unwinder, &name, gi_iframe_addr, &prev_frame) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse frame object in coro chain");
         return -1;
     }
 
     if (PyList_Append(render_to, name)) {
         Py_DECREF(name);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append frame to coro chain");
         return -1;
     }
     Py_DECREF(name);
@@ -756,15 +856,18 @@ create_task_result(
 
     result = PyList_New(0);
     if (result == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create task result list");
         goto error;
     }
 
     call_stack = PyList_New(0);
     if (call_stack == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create call stack list");
         goto error;
     }
 
     if (PyList_Append(result, call_stack)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append call stack to task result");
         goto error;
     }
     Py_CLEAR(call_stack);
@@ -775,10 +878,12 @@ create_task_result(
         tn = PyLong_FromUnsignedLongLong(task_address);
     }
     if (tn == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create task name/address");
         goto error;
     }
 
     if (PyList_Append(result, tn)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append task name to result");
         goto error;
     }
     Py_CLEAR(tn);
@@ -787,6 +892,7 @@ create_task_result(
     if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, task_address,
                                               unwinder->async_debug_offsets.asyncio_task_object.size,
                                               task_obj) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task object for coro chain");
         goto error;
     }
 
@@ -796,21 +902,25 @@ create_task_result(
     if ((void*)coro_addr != NULL) {
         call_stack = PyList_New(0);
         if (call_stack == NULL) {
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create coro call stack list");
             goto error;
         }
 
         if (parse_coro_chain(unwinder, coro_addr, call_stack) < 0) {
             Py_DECREF(call_stack);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse coroutine chain");
             goto error;
         }
 
         if (PyList_Reverse(call_stack)) {
             Py_DECREF(call_stack);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to reverse call stack");
             goto error;
         }
 
         if (PyList_SetItem(result, 0, call_stack) < 0) {
             Py_DECREF(call_stack);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to set call stack in result");
             goto error;
         }
     }
@@ -837,36 +947,42 @@ parse_task(
     int err;
 
     err = read_char(
-        &unwinder->handle,
+        unwinder,
         task_address + unwinder->async_debug_offsets.asyncio_task_object.task_is_task,
         &is_task);
     if (err) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read is_task flag");
         goto error;
     }
 
     if (is_task) {
         result = create_task_result(unwinder, task_address, recurse_task);
         if (!result) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create task result");
             goto error;
         }
     } else {
         result = PyList_New(0);
         if (result == NULL) {
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create empty task result");
             goto error;
         }
     }
 
     if (PyList_Append(render_to, result)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append task result to render list");
         goto error;
     }
 
     if (recurse_task) {
         awaited_by = PyList_New(0);
         if (awaited_by == NULL) {
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create awaited_by list");
             goto error;
         }
 
         if (PyList_Append(result, awaited_by)) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append awaited_by to result");
             goto error;
         }
         Py_DECREF(awaited_by);
@@ -877,6 +993,7 @@ parse_task(
             // it's borrowed from 'result' and will be decrefed when result is
             // deleted.
             awaited_by = NULL;
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse task awaited_by relationships");
             goto error;
         }
     }
@@ -898,19 +1015,22 @@ process_set_entry(
     int recurse_task
 ) {
     uintptr_t key_addr;
-    if (read_py_ptr(&unwinder->handle, table_ptr, &key_addr)) {
+    if (read_py_ptr(unwinder, table_ptr, &key_addr)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read set entry key");
         return -1;
     }
 
     if ((void*)key_addr != NULL) {
         Py_ssize_t ref_cnt;
-        if (read_Py_ssize_t(&unwinder->handle, table_ptr, &ref_cnt)) {
+        if (read_Py_ssize_t(unwinder, table_ptr, &ref_cnt)) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read set entry reference count");
             return -1;
         }
 
         if (ref_cnt) {
             // if 'ref_cnt=0' it's a set dummy marker
             if (parse_task(unwinder, key_addr, awaited_by, recurse_task)) {
+                set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse task in set entry");
                 return -1;
             }
             return 1; // Successfully processed a valid entry
@@ -933,6 +1053,7 @@ parse_tasks_in_set(
         SIZEOF_SET_OBJ,
         set_object);
     if (err < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read set object");
         return -1;
     }
 
@@ -946,6 +1067,7 @@ parse_tasks_in_set(
         int result = process_set_entry(unwinder, table_ptr, awaited_by, recurse_task);
 
         if (result < 0) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to process set entry");
             return -1;
         }
         if (result > 0) {
@@ -960,10 +1082,11 @@ parse_tasks_in_set(
 
 
 static int
-setup_async_result_structure(PyObject **result, PyObject **calls)
+setup_async_result_structure(RemoteUnwinderObject *unwinder, PyObject **result, PyObject **calls)
 {
     *result = PyList_New(1);
     if (*result == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create async result structure");
         return -1;
     }
 
@@ -971,6 +1094,7 @@ setup_async_result_structure(PyObject **result, PyObject **calls)
     if (*calls == NULL) {
         Py_DECREF(*result);
         *result = NULL;
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create calls list in async result");
         return -1;
     }
 
@@ -979,6 +1103,7 @@ setup_async_result_structure(PyObject **result, PyObject **calls)
         Py_DECREF(*result);
         *result = NULL;
         *calls = NULL;
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to set calls list in async result");
         return -1;
     }
 
@@ -987,34 +1112,39 @@ setup_async_result_structure(PyObject **result, PyObject **calls)
 
 static int
 add_task_info_to_result(
-    RemoteUnwinderObject *self,
+    RemoteUnwinderObject *unwinder,
     PyObject *result,
     uintptr_t running_task_addr
 ) {
-    PyObject *tn = parse_task_name(self, running_task_addr);
+    PyObject *tn = parse_task_name(unwinder, running_task_addr);
     if (tn == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse task name for result");
         return -1;
     }
 
     if (PyList_Append(result, tn)) {
         Py_DECREF(tn);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append task name to result");
         return -1;
     }
     Py_DECREF(tn);
 
     PyObject* awaited_by = PyList_New(0);
     if (awaited_by == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create awaited_by list for result");
         return -1;
     }
 
     if (PyList_Append(result, awaited_by)) {
         Py_DECREF(awaited_by);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append awaited_by to result");
         return -1;
     }
     Py_DECREF(awaited_by);
 
     if (parse_task_awaited_by(
-        self, running_task_addr, awaited_by, 1) < 0) {
+        unwinder, running_task_addr, awaited_by, 1) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse awaited_by for result");
         return -1;
     }
 
@@ -1034,21 +1164,25 @@ process_single_task_node(
 
     tn = parse_task_name(unwinder, task_addr);
     if (tn == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse task name in single task node");
         goto error;
     }
 
     current_awaited_by = PyList_New(0);
     if (current_awaited_by == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create awaited_by list in single task node");
         goto error;
     }
 
     task_id = PyLong_FromUnsignedLongLong(task_addr);
     if (task_id == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create task ID in single task node");
         goto error;
     }
 
     result_item = PyTuple_New(3);
     if (result_item == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create result tuple in single task node");
         goto error;
     }
 
@@ -1063,6 +1197,7 @@ process_single_task_node(
 
     if (PyList_Append(result, result_item)) {
         Py_DECREF(result_item);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append result item in single task node");
         return -1;
     }
     Py_DECREF(result_item);
@@ -1070,6 +1205,7 @@ process_single_task_node(
     // Get back current_awaited_by reference for parse_task_awaited_by
     current_awaited_by = PyTuple_GET_ITEM(result_item, 2);
     if (parse_task_awaited_by(unwinder, task_addr, current_awaited_by, 0) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse awaited_by in single task node");
         return -1;
     }
 
@@ -1121,20 +1257,22 @@ get_tlbc_cache_entry(RemoteUnwinderObject *self, uintptr_t code_addr, uint32_t c
 }
 
 static int
-cache_tlbc_array(RemoteUnwinderObject *self, uintptr_t code_addr, uintptr_t tlbc_array_addr, uint32_t generation)
+cache_tlbc_array(RemoteUnwinderObject *unwinder, uintptr_t code_addr, uintptr_t tlbc_array_addr, uint32_t generation)
 {
     uintptr_t tlbc_array_ptr;
     void *tlbc_array = NULL;
     TLBCCacheEntry *entry = NULL;
 
     // Read the TLBC array pointer
-    if (read_ptr(&self->handle, tlbc_array_addr, &tlbc_array_ptr) != 0 || tlbc_array_ptr == 0) {
+    if (read_ptr(unwinder, tlbc_array_addr, &tlbc_array_ptr) != 0 || tlbc_array_ptr == 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read TLBC array pointer");
         return 0; // No TLBC array
     }
 
     // Read the TLBC array size
     Py_ssize_t tlbc_size;
-    if (_Py_RemoteDebug_PagedReadRemoteMemory(&self->handle, tlbc_array_ptr, sizeof(tlbc_size), &tlbc_size) != 0 || tlbc_size <= 0) {
+    if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, tlbc_array_ptr, sizeof(tlbc_size), &tlbc_size) != 0 || tlbc_size <= 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read TLBC array size");
         return 0; // Invalid size
     }
 
@@ -1142,11 +1280,13 @@ cache_tlbc_array(RemoteUnwinderObject *self, uintptr_t code_addr, uintptr_t tlbc
     size_t array_data_size = tlbc_size * sizeof(void*);
     tlbc_array = PyMem_RawMalloc(sizeof(Py_ssize_t) + array_data_size);
     if (!tlbc_array) {
-        return -1; // Memory error
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate TLBC array");
+        return 0; // Memory error
     }
 
-    if (_Py_RemoteDebug_PagedReadRemoteMemory(&self->handle, tlbc_array_ptr, sizeof(Py_ssize_t) + array_data_size, tlbc_array) != 0) {
+    if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, tlbc_array_ptr, sizeof(Py_ssize_t) + array_data_size, tlbc_array) != 0) {
         PyMem_RawFree(tlbc_array);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read TLBC array data");
         return 0; // Read error
     }
 
@@ -1154,7 +1294,8 @@ cache_tlbc_array(RemoteUnwinderObject *self, uintptr_t code_addr, uintptr_t tlbc
     entry = PyMem_RawMalloc(sizeof(TLBCCacheEntry));
     if (!entry) {
         PyMem_RawFree(tlbc_array);
-        return -1; // Memory error
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate TLBC cache entry");
+        return 0; // Memory error
     }
 
     entry->tlbc_array = tlbc_array;
@@ -1163,9 +1304,10 @@ cache_tlbc_array(RemoteUnwinderObject *self, uintptr_t code_addr, uintptr_t tlbc
 
     // Store in cache
     void *key = (void *)code_addr;
-    if (_Py_hashtable_set(self->tlbc_cache, key, entry) < 0) {
+    if (_Py_hashtable_set(unwinder->tlbc_cache, key, entry) < 0) {
         tlbc_cache_entry_destroy(entry);
-        return -1; // Cache error
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to store TLBC entry in cache");
+        return 0; // Cache error
     }
 
     return 1; // Success
@@ -1304,29 +1446,34 @@ parse_code_object(RemoteUnwinderObject *unwinder,
         if (_Py_RemoteDebug_PagedReadRemoteMemory(
                 &unwinder->handle, real_address, SIZEOF_CODE_OBJ, code_object) < 0)
         {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read code object");
             goto error;
         }
 
         func = read_py_str(unwinder,
             GET_MEMBER(uintptr_t, code_object, unwinder->debug_offsets.code_object.qualname), 1024);
         if (!func) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read function name from code object");
             goto error;
         }
 
         file = read_py_str(unwinder,
             GET_MEMBER(uintptr_t, code_object, unwinder->debug_offsets.code_object.filename), 1024);
         if (!file) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read filename from code object");
             goto error;
         }
 
         linetable = read_py_bytes(unwinder,
             GET_MEMBER(uintptr_t, code_object, unwinder->debug_offsets.code_object.linetable), 4096);
         if (!linetable) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read linetable from code object");
             goto error;
         }
 
         meta = PyMem_RawMalloc(sizeof(CachedCodeMetadata));
         if (!meta) {
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate cached code metadata");
             goto error;
         }
 
@@ -1338,6 +1485,7 @@ parse_code_object(RemoteUnwinderObject *unwinder,
 
         if (unwinder && unwinder->code_object_cache && _Py_hashtable_set(unwinder->code_object_cache, key, meta) < 0) {
             cached_code_metadata_destroy(meta);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to cache code metadata");
             goto error;
         }
 
@@ -1363,9 +1511,11 @@ parse_code_object(RemoteUnwinderObject *unwinder,
 
     if (!tlbc_entry) {
         // Cache miss - try to read and cache TLBC array
-        if (cache_tlbc_array(unwinder, real_address, real_address + unwinder->debug_offsets.code_object.co_tlbc, unwinder->tlbc_generation) > 0) {
-            tlbc_entry = get_tlbc_cache_entry(unwinder, real_address, unwinder->tlbc_generation);
+        if (!cache_tlbc_array(unwinder, real_address, real_address + unwinder->debug_offsets.code_object.co_tlbc, unwinder->tlbc_generation)) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to cache TLBC array");
+            goto error;
         }
+        tlbc_entry = get_tlbc_cache_entry(unwinder, real_address, unwinder->tlbc_generation);
     }
 
     if (tlbc_entry && tlbc_index < tlbc_entry->tlbc_array_size) {
@@ -1400,11 +1550,13 @@ done_tlbc:
 
     lineno = PyLong_FromLong(info.lineno);
     if (!lineno) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create line number object");
         goto error;
     }
 
     tuple = PyTuple_New(3);
     if (!tuple) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create result tuple for code object");
         goto error;
     }
 
@@ -1441,7 +1593,7 @@ cleanup_stack_chunks(StackChunkList *chunks)
 
 static int
 process_single_stack_chunk(
-    proc_handle_t *handle,
+    RemoteUnwinderObject *unwinder,
     uintptr_t chunk_addr,
     StackChunkInfo *chunk_info
 ) {
@@ -1451,11 +1603,13 @@ process_single_stack_chunk(
     char *this_chunk = PyMem_RawMalloc(current_size);
     if (!this_chunk) {
         PyErr_NoMemory();
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate stack chunk buffer");
         return -1;
     }
 
-    if (_Py_RemoteDebug_PagedReadRemoteMemory(handle, chunk_addr, current_size, this_chunk) < 0) {
+    if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, chunk_addr, current_size, this_chunk) < 0) {
         PyMem_RawFree(this_chunk);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read stack chunk");
         return -1;
     }
 
@@ -1465,11 +1619,13 @@ process_single_stack_chunk(
         this_chunk = PyMem_RawRealloc(this_chunk, actual_size);
         if (!this_chunk) {
             PyErr_NoMemory();
+            set_exception_cause(unwinder, PyExc_MemoryError, "Failed to reallocate stack chunk buffer");
             return -1;
         }
 
-        if (_Py_RemoteDebug_PagedReadRemoteMemory(handle, chunk_addr, actual_size, this_chunk) < 0) {
+        if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, chunk_addr, actual_size, this_chunk) < 0) {
             PyMem_RawFree(this_chunk);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to reread stack chunk with correct size");
             return -1;
         }
         current_size = actual_size;
@@ -1491,13 +1647,15 @@ copy_stack_chunks(RemoteUnwinderObject *unwinder,
     size_t count = 0;
     size_t max_chunks = 16;
 
-    if (read_ptr(&unwinder->handle, tstate_addr + unwinder->debug_offsets.thread_state.datastack_chunk, &chunk_addr)) {
+    if (read_ptr(unwinder, tstate_addr + unwinder->debug_offsets.thread_state.datastack_chunk, &chunk_addr)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read initial stack chunk address");
         return -1;
     }
 
     chunks = PyMem_RawMalloc(max_chunks * sizeof(StackChunkInfo));
     if (!chunks) {
         PyErr_NoMemory();
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to allocate stack chunks array");
         return -1;
     }
 
@@ -1508,13 +1666,15 @@ copy_stack_chunks(RemoteUnwinderObject *unwinder,
             StackChunkInfo *new_chunks = PyMem_RawRealloc(chunks, max_chunks * sizeof(StackChunkInfo));
             if (!new_chunks) {
                 PyErr_NoMemory();
+                set_exception_cause(unwinder, PyExc_MemoryError, "Failed to grow stack chunks array");
                 goto error;
             }
             chunks = new_chunks;
         }
 
         // Process this chunk
-        if (process_single_stack_chunk(&unwinder->handle, chunk_addr, &chunks[count]) < 0) {
+        if (process_single_stack_chunk(unwinder, chunk_addr, &chunks[count]) < 0) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to process stack chunk");
             goto error;
         }
 
@@ -1559,6 +1719,7 @@ parse_frame_from_chunks(
 ) {
     void *frame_ptr = find_frame_in_chunks(chunks, address);
     if (!frame_ptr) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Frame not found in stack chunks");
         return -1;
     }
 
@@ -1607,11 +1768,13 @@ populate_initial_state_data(
             sizeof(void*),
             &address_of_interpreter_state);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read interpreter state address");
         return -1;
     }
 
     if (address_of_interpreter_state == 0) {
         PyErr_SetString(PyExc_RuntimeError, "No interpreter state found");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Interpreter state is NULL");
         return -1;
     }
 
@@ -1630,6 +1793,7 @@ populate_initial_state_data(
             address_of_thread,
             sizeof(void*),
             tstate) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read main thread state address");
         return -1;
     }
 
@@ -1652,11 +1816,13 @@ find_running_frame(
             sizeof(void*),
             &address_of_interpreter_state);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read interpreter state for running frame");
         return -1;
     }
 
     if (address_of_interpreter_state == 0) {
         PyErr_SetString(PyExc_RuntimeError, "No interpreter state found");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Interpreter state is NULL in running frame search");
         return -1;
     }
 
@@ -1668,16 +1834,18 @@ find_running_frame(
             sizeof(void*),
             &address_of_thread);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read thread address for running frame");
         return -1;
     }
 
     // No Python frames are available for us (can happen at tear-down).
     if ((void*)address_of_thread != NULL) {
         int err = read_ptr(
-            &unwinder->handle,
+            unwinder,
             address_of_thread + unwinder->debug_offsets.thread_state.current_frame,
             frame);
         if (err) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read current frame pointer");
             return -1;
         }
         return 0;
@@ -1704,11 +1872,13 @@ find_running_task(
             sizeof(void*),
             &address_of_interpreter_state);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read interpreter state for running task");
         return -1;
     }
 
     if (address_of_interpreter_state == 0) {
         PyErr_SetString(PyExc_RuntimeError, "No interpreter state found");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Interpreter state is NULL in running task search");
         return -1;
     }
 
@@ -1720,6 +1890,7 @@ find_running_task(
             sizeof(void*),
             &address_of_thread);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read thread head for running task");
         return -1;
     }
 
@@ -1730,11 +1901,12 @@ find_running_task(
     }
 
     bytes_read = read_py_ptr(
-        &unwinder->handle,
+        unwinder,
         address_of_thread
         + unwinder->async_debug_offsets.asyncio_thread_state.asyncio_running_loop,
         &address_of_running_loop);
     if (bytes_read == -1) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read running loop address");
         return -1;
     }
 
@@ -1744,11 +1916,12 @@ find_running_task(
     }
 
     int err = read_ptr(
-        &unwinder->handle,
+        unwinder,
         address_of_thread
         + unwinder->async_debug_offsets.asyncio_thread_state.asyncio_running_task,
         running_task_addr);
     if (err) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read running task address");
         return -1;
     }
 
@@ -1757,47 +1930,51 @@ find_running_task(
 
 static int
 find_running_task_and_coro(
-    RemoteUnwinderObject *self,
+    RemoteUnwinderObject *unwinder,
     uintptr_t *running_task_addr,
     uintptr_t *running_coro_addr,
     uintptr_t *running_task_code_obj
 ) {
     *running_task_addr = (uintptr_t)NULL;
     if (find_running_task(
-        self, running_task_addr) < 0) {
-        chain_exceptions(PyExc_RuntimeError, "Failed to find running task");
+        unwinder, running_task_addr) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running task search failed");
         return -1;
     }
 
     if ((void*)*running_task_addr == NULL) {
         PyErr_SetString(PyExc_RuntimeError, "No running task found");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running task address is NULL");
         return -1;
     }
 
     if (read_py_ptr(
-        &self->handle,
-        *running_task_addr + self->async_debug_offsets.asyncio_task_object.task_coro,
+        unwinder,
+        *running_task_addr + unwinder->async_debug_offsets.asyncio_task_object.task_coro,
         running_coro_addr) < 0) {
-        chain_exceptions(PyExc_RuntimeError, "Failed to read running task coro");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running task coro read failed");
         return -1;
     }
 
     if ((void*)*running_coro_addr == NULL) {
         PyErr_SetString(PyExc_RuntimeError, "Running task coro is NULL");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running task coro address is NULL");
         return -1;
     }
 
     // note: genobject's gi_iframe is an embedded struct so the address to
     // the offset leads directly to its first field: f_executable
     if (read_py_ptr(
-        &self->handle,
-        *running_coro_addr + self->debug_offsets.gen_object.gi_iframe,
+        unwinder,
+        *running_coro_addr + unwinder->debug_offsets.gen_object.gi_iframe,
         running_task_code_obj) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read running task code object");
         return -1;
     }
 
     if ((void*)*running_task_code_obj == NULL) {
         PyErr_SetString(PyExc_RuntimeError, "Running task code object is NULL");
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running task code object address is NULL");
         return -1;
     }
 
@@ -1825,6 +2002,7 @@ parse_frame_object(
         frame
     );
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read interpreter frame");
         return -1;
     }
 
@@ -1870,6 +2048,7 @@ parse_async_frame_object(
         frame
     );
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read async frame");
         return -1;
     }
 
@@ -1884,6 +2063,7 @@ parse_async_frame_object(
         && GET_MEMBER(char, frame, unwinder->debug_offsets.interpreter_frame.owner) != FRAME_OWNED_BY_THREAD) {
         PyErr_Format(PyExc_RuntimeError, "Unhandled frame owner %d.\n",
                     GET_MEMBER(char, frame, unwinder->debug_offsets.interpreter_frame.owner));
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Unhandled frame owner type in async frame");
         return -1;
     }
 
@@ -1908,6 +2088,7 @@ parse_async_frame_object(
 
     if (parse_code_object(
         unwinder, result, *code_object, instruction_pointer, previous_frame, tlbc_index)) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse code object in async frame");
         return -1;
     }
 
@@ -1916,13 +2097,13 @@ parse_async_frame_object(
 
 static int
 parse_async_frame_chain(
-    RemoteUnwinderObject *self,
+    RemoteUnwinderObject *unwinder,
     PyObject *calls,
     uintptr_t running_task_code_obj
 ) {
     uintptr_t address_of_current_frame;
-    if (find_running_frame(self, self->runtime_start_address, &address_of_current_frame) < 0) {
-        chain_exceptions(PyExc_RuntimeError, "Failed to find running frame");
+    if (find_running_frame(unwinder, unwinder->runtime_start_address, &address_of_current_frame) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Running frame search failed in async chain");
         return -1;
     }
 
@@ -1930,7 +2111,7 @@ parse_async_frame_chain(
     while ((void*)address_of_current_frame != NULL) {
         PyObject* frame_info = NULL;
         int res = parse_async_frame_object(
-            self,
+            unwinder,
             &frame_info,
             address_of_current_frame,
             &address_of_current_frame,
@@ -1938,7 +2119,7 @@ parse_async_frame_chain(
         );
 
         if (res < 0) {
-            chain_exceptions(PyExc_RuntimeError, "Failed to parse async frame object");
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Async frame object parsing failed in chain");
             return -1;
         }
 
@@ -1948,6 +2129,7 @@ parse_async_frame_chain(
 
         if (PyList_Append(calls, frame_info) == -1) {
             Py_DECREF(frame_info);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append frame info to async chain");
             return -1;
         }
 
@@ -1975,6 +2157,7 @@ append_awaited_by_for_thread(
 
     if (_Py_RemoteDebug_PagedReadRemoteMemory(&unwinder->handle, head_addr,
                                               sizeof(task_node), task_node) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read task node head");
         return -1;
     }
 
@@ -1984,12 +2167,14 @@ append_awaited_by_for_thread(
     while (GET_MEMBER(uintptr_t, task_node, unwinder->debug_offsets.llist_node.next) != head_addr) {
         if (++iteration_count > MAX_ITERATIONS) {
             PyErr_SetString(PyExc_RuntimeError, "Task list appears corrupted");
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Task list iteration limit exceeded");
             return -1;
         }
 
         if (GET_MEMBER(uintptr_t, task_node, unwinder->debug_offsets.llist_node.next) == 0) {
             PyErr_SetString(PyExc_RuntimeError,
                            "Invalid linked list structure reading remote memory");
+            set_exception_cause(unwinder, PyExc_RuntimeError, "NULL pointer in task linked list");
             return -1;
         }
 
@@ -1997,6 +2182,7 @@ append_awaited_by_for_thread(
             - unwinder->async_debug_offsets.asyncio_task_object.task_node;
 
         if (process_single_task_node(unwinder, task_addr, result) < 0) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to process task node in awaited_by");
             return -1;
         }
 
@@ -2006,6 +2192,7 @@ append_awaited_by_for_thread(
                 (uintptr_t)GET_MEMBER(uintptr_t, task_node, unwinder->debug_offsets.llist_node.next),
                 sizeof(task_node),
                 task_node) < 0) {
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read next task node in awaited_by");
             return -1;
         }
     }
@@ -2022,12 +2209,14 @@ append_awaited_by(
 {
     PyObject *tid_py = PyLong_FromUnsignedLong(tid);
     if (tid_py == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create thread ID object");
         return -1;
     }
 
     PyObject *result_item = PyTuple_New(2);
     if (result_item == NULL) {
         Py_DECREF(tid_py);
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create awaited_by result tuple");
         return -1;
     }
 
@@ -2035,6 +2224,7 @@ append_awaited_by(
     if (awaited_by_for_thread == NULL) {
         Py_DECREF(tid_py);
         Py_DECREF(result_item);
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create awaited_by thread list");
         return -1;
     }
 
@@ -2042,12 +2232,14 @@ append_awaited_by(
     PyTuple_SET_ITEM(result_item, 1, awaited_by_for_thread);  // steals ref
     if (PyList_Append(result, result_item)) {
         Py_DECREF(result_item);
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append awaited_by result item");
         return -1;
     }
     Py_DECREF(result_item);
 
     if (append_awaited_by_for_thread(unwinder, head_addr, awaited_by_for_thread))
     {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append awaited_by for thread");
         return -1;
     }
 
@@ -2076,6 +2268,7 @@ process_frame_chain(
 
         if (++frame_count > MAX_FRAMES) {
             PyErr_SetString(PyExc_RuntimeError, "Too many stack frames (possible infinite loop)");
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Frame chain iteration limit exceeded");
             return -1;
         }
 
@@ -2083,6 +2276,7 @@ process_frame_chain(
         if (parse_frame_from_chunks(unwinder, &frame, frame_addr, &next_frame_addr, chunks) < 0) {
             PyErr_Clear();
             if (parse_frame_object(unwinder, &frame, frame_addr, &next_frame_addr) < 0) {
+                set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to parse frame object in chain");
                 return -1;
             }
         }
@@ -2096,11 +2290,13 @@ process_frame_chain(
                         "Broken frame chain: expected frame at 0x%lx, got 0x%lx",
                         prev_frame_addr, frame_addr);
             Py_DECREF(frame);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Frame chain consistency check failed");
             return -1;
         }
 
         if (PyList_Append(frame_info, frame) == -1) {
             Py_DECREF(frame);
+            set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to append frame to frame info list");
             return -1;
         }
         Py_DECREF(frame);
@@ -2126,6 +2322,7 @@ unwind_stack_for_thread(
     int bytes_read = _Py_RemoteDebug_PagedReadRemoteMemory(
         &unwinder->handle, *current_tstate, unwinder->debug_offsets.thread_state.size, ts);
     if (bytes_read < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to read thread state");
         goto error;
     }
 
@@ -2133,14 +2330,17 @@ unwind_stack_for_thread(
 
     frame_info = PyList_New(0);
     if (!frame_info) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create frame info list");
         goto error;
     }
 
     if (copy_stack_chunks(unwinder, *current_tstate, &chunks) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to copy stack chunks");
         goto error;
     }
 
     if (process_frame_chain(unwinder, frame_addr, &chunks, frame_info) < 0) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to process frame chain");
         goto error;
     }
 
@@ -2149,11 +2349,13 @@ unwind_stack_for_thread(
     thread_id = PyLong_FromLongLong(
         GET_MEMBER(long, ts, unwinder->debug_offsets.thread_state.native_thread_id));
     if (thread_id == NULL) {
+        set_exception_cause(unwinder, PyExc_RuntimeError, "Failed to create thread ID");
         goto error;
     }
 
     result = PyTuple_New(2);
     if (result == NULL) {
+        set_exception_cause(unwinder, PyExc_MemoryError, "Failed to create thread unwind result tuple");
         goto error;
     }
 
@@ -2186,6 +2388,7 @@ _remote_debugging.RemoteUnwinder.__init__
     pid: int
     *
     all_threads: bool = False
+    debug: bool = False
 
 Initialize a new RemoteUnwinder object for debugging a remote Python process.
 
@@ -2193,6 +2396,8 @@ Args:
     pid: Process ID of the target Python process to debug
     all_threads: If True, initialize state for all threads in the process.
                 If False, only initialize for the main thread.
+    debug: If True, chain exceptions to explain the sequence of events that
+           lead to the exception.
 
 The RemoteUnwinder provides functionality to inspect and debug a running Python
 process, including examining thread states, stack frames and other runtime data.
@@ -2205,15 +2410,19 @@ Raises:
 
 static int
 _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
-                                               int pid, int all_threads)
-/*[clinic end generated code: output=b8027cb247092081 input=6a2056b04e6f050e]*/
+                                               int pid, int all_threads,
+                                               int debug)
+/*[clinic end generated code: output=3982f2a7eba49334 input=48a762566b828e91]*/
 {
+    self->debug = debug;
     if (_Py_RemoteDebug_InitProcHandle(&self->handle, pid) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to initialize process handle");
         return -1;
     }
 
     self->runtime_start_address = _Py_RemoteDebug_GetPyRuntimeAddress(&self->handle);
     if (self->runtime_start_address == 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to get Python runtime address");
         return -1;
     }
 
@@ -2221,6 +2430,13 @@ _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
                                          &self->runtime_start_address,
                                          &self->debug_offsets) < 0)
     {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to read debug offsets");
+        return -1;
+    }
+
+    // Validate that the debug offsets are valid
+    if(validate_debug_offsets(&self->debug_offsets) == -1) {
+        set_exception_cause(self, PyExc_RuntimeError, "Invalid debug offsets found");
         return -1;
     }
 
@@ -2235,6 +2451,7 @@ _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
     if (populate_initial_state_data(all_threads, self, self->runtime_start_address,
                     &self->interpreter_addr ,&self->tstate_addr) < 0)
     {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to populate initial state data");
         return -1;
     }
 
@@ -2247,6 +2464,7 @@ _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
     );
     if (self->code_object_cache == NULL) {
         PyErr_NoMemory();
+        set_exception_cause(self, PyExc_MemoryError, "Failed to create code object cache");
         return -1;
     }
 
@@ -2263,6 +2481,7 @@ _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
     if (self->tlbc_cache == NULL) {
         _Py_hashtable_destroy(self->code_object_cache);
         PyErr_NoMemory();
+        set_exception_cause(self, PyExc_MemoryError, "Failed to create TLBC cache");
         return -1;
     }
 #endif
@@ -2314,6 +2533,7 @@ _remote_debugging_RemoteUnwinder_get_stack_trace_impl(RemoteUnwinderObject *self
             self->interpreter_addr,
             INTERP_STATE_BUFFER_SIZE,
             interp_state_buffer) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to read interpreter state buffer");
         goto exit;
     }
 
@@ -2347,6 +2567,7 @@ _remote_debugging_RemoteUnwinder_get_stack_trace_impl(RemoteUnwinderObject *self
 
     result = PyList_New(0);
     if (!result) {
+        set_exception_cause(self, PyExc_MemoryError, "Failed to create stack trace result list");
         goto exit;
     }
 
@@ -2354,12 +2575,14 @@ _remote_debugging_RemoteUnwinder_get_stack_trace_impl(RemoteUnwinderObject *self
         PyObject* frame_info = unwind_stack_for_thread(self, &current_tstate);
         if (!frame_info) {
             Py_CLEAR(result);
+            set_exception_cause(self, PyExc_RuntimeError, "Failed to unwind stack for thread");
             goto exit;
         }
 
         if (PyList_Append(result, frame_info) == -1) {
             Py_DECREF(frame_info);
             Py_CLEAR(result);
+            set_exception_cause(self, PyExc_RuntimeError, "Failed to append thread frame info");
             goto exit;
         }
         Py_DECREF(frame_info);
@@ -2425,11 +2648,13 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
 {
     if (!self->async_debug_offsets_available) {
         PyErr_SetString(PyExc_RuntimeError, "AsyncioDebug section not available");
+        set_exception_cause(self, PyExc_RuntimeError, "AsyncioDebug section unavailable in get_all_awaited_by");
         return NULL;
     }
 
     PyObject *result = PyList_New(0);
     if (result == NULL) {
+        set_exception_cause(self, PyExc_MemoryError, "Failed to create awaited_by result list");
         goto result_err;
     }
 
@@ -2442,6 +2667,7 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
                 sizeof(void*),
                 &thread_state_addr))
     {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to read main thread state in get_all_awaited_by");
         goto result_err;
     }
 
@@ -2454,6 +2680,7 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
                     sizeof(tid),
                     &tid))
         {
+            set_exception_cause(self, PyExc_RuntimeError, "Failed to read thread ID in get_all_awaited_by");
             goto result_err;
         }
 
@@ -2462,6 +2689,7 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
 
         if (append_awaited_by(self, tid, head_addr, result))
         {
+            set_exception_cause(self, PyExc_RuntimeError, "Failed to append awaited_by for thread in get_all_awaited_by");
             goto result_err;
         }
 
@@ -2471,6 +2699,7 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
                     sizeof(void*),
                     &thread_state_addr))
         {
+            set_exception_cause(self, PyExc_RuntimeError, "Failed to read next thread state in get_all_awaited_by");
             goto result_err;
         }
     }
@@ -2485,6 +2714,7 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
     // interesting for debugging.
     if (append_awaited_by(self, 0, head_addr, result))
     {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to append interpreter awaited_by in get_all_awaited_by");
         goto result_err;
     }
 
@@ -2530,27 +2760,32 @@ _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl(RemoteUnwinderObject
 {
     if (!self->async_debug_offsets_available) {
         PyErr_SetString(PyExc_RuntimeError, "AsyncioDebug section not available");
+        set_exception_cause(self, PyExc_RuntimeError, "AsyncioDebug section unavailable in get_async_stack_trace");
         return NULL;
     }
 
     PyObject *result = NULL;
     PyObject *calls = NULL;
 
-    if (setup_async_result_structure(&result, &calls) < 0) {
+    if (setup_async_result_structure(self, &result, &calls) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to setup async result structure");
         goto cleanup;
     }
 
     uintptr_t running_task_addr, running_coro_addr, running_task_code_obj;
     if (find_running_task_and_coro(self, &running_task_addr,
                                    &running_coro_addr, &running_task_code_obj) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to find running task and coro");
         goto cleanup;
     }
 
     if (parse_async_frame_chain(self, calls, running_task_code_obj) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to parse async frame chain");
         goto cleanup;
     }
 
     if (add_task_info_to_result(self, result, running_task_addr) < 0) {
+        set_exception_cause(self, PyExc_RuntimeError, "Failed to add task info to result");
         goto cleanup;
     }
 
@@ -2687,5 +2922,4 @@ PyMODINIT_FUNC
 PyInit__remote_debugging(void)
 {
     return PyModuleDef_Init(&remote_debugging_module);
-}
-
+}
\ No newline at end of file
index e83e2fd7fd2b5b97b7a8a20b7def6b11473321a1..5c313a2d66404aff91af45a6093c960b3205f5c8 100644 (file)
@@ -10,7 +10,7 @@ preserve
 #include "pycore_modsupport.h"    // _PyArg_UnpackKeywords()
 
 PyDoc_STRVAR(_remote_debugging_RemoteUnwinder___init____doc__,
-"RemoteUnwinder(pid, *, all_threads=False)\n"
+"RemoteUnwinder(pid, *, all_threads=False, debug=False)\n"
 "--\n"
 "\n"
 "Initialize a new RemoteUnwinder object for debugging a remote Python process.\n"
@@ -19,6 +19,8 @@ PyDoc_STRVAR(_remote_debugging_RemoteUnwinder___init____doc__,
 "    pid: Process ID of the target Python process to debug\n"
 "    all_threads: If True, initialize state for all threads in the process.\n"
 "                If False, only initialize for the main thread.\n"
+"    debug: If True, chain exceptions to explain the sequence of events that\n"
+"           lead to the exception.\n"
 "\n"
 "The RemoteUnwinder provides functionality to inspect and debug a running Python\n"
 "process, including examining thread states, stack frames and other runtime data.\n"
@@ -30,7 +32,8 @@ PyDoc_STRVAR(_remote_debugging_RemoteUnwinder___init____doc__,
 
 static int
 _remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
-                                               int pid, int all_threads);
+                                               int pid, int all_threads,
+                                               int debug);
 
 static int
 _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject *args, PyObject *kwargs)
@@ -38,7 +41,7 @@ _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject *args, PyObje
     int return_value = -1;
     #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
 
-    #define NUM_KEYWORDS 2
+    #define NUM_KEYWORDS 3
     static struct {
         PyGC_Head _this_is_not_used;
         PyObject_VAR_HEAD
@@ -47,7 +50,7 @@ _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject *args, PyObje
     } _kwtuple = {
         .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
         .ob_hash = -1,
-        .ob_item = { &_Py_ID(pid), &_Py_ID(all_threads), },
+        .ob_item = { &_Py_ID(pid), &_Py_ID(all_threads), &_Py_ID(debug), },
     };
     #undef NUM_KEYWORDS
     #define KWTUPLE (&_kwtuple.ob_base.ob_base)
@@ -56,19 +59,20 @@ _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject *args, PyObje
     #  define KWTUPLE NULL
     #endif  // !Py_BUILD_CORE
 
-    static const char * const _keywords[] = {"pid", "all_threads", NULL};
+    static const char * const _keywords[] = {"pid", "all_threads", "debug", NULL};
     static _PyArg_Parser _parser = {
         .keywords = _keywords,
         .fname = "RemoteUnwinder",
         .kwtuple = KWTUPLE,
     };
     #undef KWTUPLE
-    PyObject *argsbuf[2];
+    PyObject *argsbuf[3];
     PyObject * const *fastargs;
     Py_ssize_t nargs = PyTuple_GET_SIZE(args);
     Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
     int pid;
     int all_threads = 0;
+    int debug = 0;
 
     fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser,
             /*minpos*/ 1, /*maxpos*/ 1, /*minkw*/ 0, /*varpos*/ 0, argsbuf);
@@ -82,12 +86,21 @@ _remote_debugging_RemoteUnwinder___init__(PyObject *self, PyObject *args, PyObje
     if (!noptargs) {
         goto skip_optional_kwonly;
     }
-    all_threads = PyObject_IsTrue(fastargs[1]);
-    if (all_threads < 0) {
+    if (fastargs[1]) {
+        all_threads = PyObject_IsTrue(fastargs[1]);
+        if (all_threads < 0) {
+            goto exit;
+        }
+        if (!--noptargs) {
+            goto skip_optional_kwonly;
+        }
+    }
+    debug = PyObject_IsTrue(fastargs[2]);
+    if (debug < 0) {
         goto exit;
     }
 skip_optional_kwonly:
-    return_value = _remote_debugging_RemoteUnwinder___init___impl((RemoteUnwinderObject *)self, pid, all_threads);
+    return_value = _remote_debugging_RemoteUnwinder___init___impl((RemoteUnwinderObject *)self, pid, all_threads, debug);
 
 exit:
     return return_value;
@@ -240,4 +253,4 @@ _remote_debugging_RemoteUnwinder_get_async_stack_trace(PyObject *self, PyObject
 
     return return_value;
 }
-/*[clinic end generated code: output=654772085f1f4bf6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=774ec34aa653402d input=a9049054013a1b77]*/
index 6566979bcd0e3ed45ac7f0e504cdf99ffb4f8dcd..6cbf1c8deaaed92f738443507508cafe3fceebb7 100644 (file)
@@ -73,6 +73,18 @@ extern "C" {
 #    define HAVE_PROCESS_VM_READV 0
 #endif
 
+#define _set_debug_exception_cause(exception, format, ...) \
+    do { \
+        if (!PyErr_ExceptionMatches(PyExc_PermissionError)) { \
+            PyThreadState *tstate = _PyThreadState_GET(); \
+            if (!_PyErr_Occurred(tstate)) { \
+                _PyErr_Format(tstate, exception, format, ##__VA_ARGS__); \
+            } else { \
+                _PyErr_FormatFromCause(exception, format, ##__VA_ARGS__); \
+            } \
+        } \
+    } while (0)
+
 static inline size_t
 get_page_size(void) {
     size_t page_size = 0;
@@ -137,12 +149,17 @@ _Py_RemoteDebug_InitProcHandle(proc_handle_t *handle, pid_t pid) {
     handle->pid = pid;
 #if defined(__APPLE__) && defined(TARGET_OS_OSX) && TARGET_OS_OSX
     handle->task = pid_to_task(handle->pid);
+    if (handle->task == 0) {
+        _set_debug_exception_cause(PyExc_RuntimeError, "Failed to initialize macOS process handle");
+        return -1;
+    }
 #elif defined(MS_WINDOWS)
     handle->hProcess = OpenProcess(
         PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_QUERY_INFORMATION,
         FALSE, pid);
     if (handle->hProcess == NULL) {
         PyErr_SetFromWindowsErr(0);
+        _set_debug_exception_cause(PyExc_RuntimeError, "Failed to initialize Windows process handle");
         return -1;
     }
 #endif
@@ -206,8 +223,10 @@ return_section_address64(
                     &object_name
                 );
                 if (ret != KERN_SUCCESS) {
-                    PyErr_SetString(
-                        PyExc_RuntimeError, "Cannot get any more VM maps.\n");
+                    PyErr_Format(PyExc_RuntimeError,
+                        "mach_vm_region failed while parsing 64-bit Mach-O binary "
+                        "at base address 0x%lx (kern_return_t: %d)",
+                        base, ret);
                     return 0;
                 }
             }
@@ -227,9 +246,6 @@ return_section_address64(
         cmd = (struct segment_command_64*)((void*)cmd + cmd->cmdsize);
     }
 
-    // We should not be here, but if we are there, we should say about this
-    PyErr_SetString(
-        PyExc_RuntimeError, "Cannot find section address.\n");
     return 0;
 }
 
@@ -270,8 +286,10 @@ return_section_address32(
                     &object_name
                 );
                 if (ret != KERN_SUCCESS) {
-                    PyErr_SetString(
-                        PyExc_RuntimeError, "Cannot get any more VM maps.\n");
+                    PyErr_Format(PyExc_RuntimeError,
+                        "mach_vm_region failed while parsing 32-bit Mach-O binary "
+                        "at base address 0x%lx (kern_return_t: %d)",
+                        base, ret);
                     return 0;
                 }
             }
@@ -291,9 +309,6 @@ return_section_address32(
         cmd = (struct segment_command*)((void*)cmd + cmd->cmdsize);
     }
 
-    // We should not be here, but if we are there, we should say about this
-    PyErr_SetString(
-        PyExc_RuntimeError, "Cannot find section address.\n");
     return 0;
 }
 
@@ -311,8 +326,20 @@ return_section_address_fat(
     int is_abi64;
     size_t cpu_size = sizeof(cpu), abi64_size = sizeof(is_abi64);
 
-    sysctlbyname("hw.cputype", &cpu, &cpu_size, NULL, 0);
-    sysctlbyname("hw.cpu64bit_capable", &is_abi64, &abi64_size, NULL, 0);
+    if (sysctlbyname("hw.cputype", &cpu, &cpu_size, NULL, 0) != 0) {
+        PyErr_Format(PyExc_OSError,
+            "Failed to determine CPU type via sysctlbyname "
+            "for fat binary analysis at 0x%lx: %s",
+            base, strerror(errno));
+        return 0;
+    }
+    if (sysctlbyname("hw.cpu64bit_capable", &is_abi64, &abi64_size, NULL, 0) != 0) {
+        PyErr_Format(PyExc_OSError,
+            "Failed to determine CPU ABI capability via sysctlbyname "
+            "for fat binary analysis at 0x%lx: %s",
+            base, strerror(errno));
+        return 0;
+    }
 
     cpu |= is_abi64 * CPU_ARCH_ABI64;
 
@@ -343,13 +370,18 @@ return_section_address_fat(
                     return return_section_address64(section, proc_ref, base, (void*)hdr);
 
                 default:
-                    PyErr_SetString(PyExc_RuntimeError, "Unknown Mach-O magic in fat binary.\n");
+                    PyErr_Format(PyExc_RuntimeError,
+                        "Unknown Mach-O magic number 0x%x in fat binary architecture %u at base 0x%lx",
+                        hdr->magic, i, base);
                     return 0;
             }
         }
     }
 
-    PyErr_SetString(PyExc_RuntimeError, "No matching architecture found in fat binary.\n");
+    PyErr_Format(PyExc_RuntimeError,
+        "No matching architecture found for CPU type 0x%x "
+        "in fat binary at base 0x%lx (%u architectures examined)",
+        cpu, base, nfat_arch);
     return 0;
 }
 
@@ -358,20 +390,26 @@ search_section_in_file(const char* secname, char* path, uintptr_t base, mach_vm_
 {
     int fd = open(path, O_RDONLY);
     if (fd == -1) {
-        PyErr_Format(PyExc_RuntimeError, "Cannot open binary %s\n", path);
+        PyErr_Format(PyExc_OSError,
+            "Cannot open binary file '%s' for section '%s' search: %s",
+            path, secname, strerror(errno));
         return 0;
     }
 
     struct stat fs;
     if (fstat(fd, &fs) == -1) {
-        PyErr_Format(PyExc_RuntimeError, "Cannot get size of binary %s\n", path);
+        PyErr_Format(PyExc_OSError,
+            "Cannot get file size for binary '%s' during section '%s' search: %s",
+            path, secname, strerror(errno));
         close(fd);
         return 0;
     }
 
     void* map = mmap(0, fs.st_size, PROT_READ, MAP_SHARED, fd, 0);
     if (map == MAP_FAILED) {
-        PyErr_Format(PyExc_RuntimeError, "Cannot map binary %s\n", path);
+        PyErr_Format(PyExc_OSError,
+            "Cannot memory map binary file '%s' (size: %lld bytes) for section '%s' search: %s",
+            path, (long long)fs.st_size, secname, strerror(errno));
         close(fd);
         return 0;
     }
@@ -393,13 +431,22 @@ search_section_in_file(const char* secname, char* path, uintptr_t base, mach_vm_
         result = return_section_address_fat(secname, proc_ref, base, map);
         break;
     default:
-        PyErr_SetString(PyExc_RuntimeError, "Unknown Mach-O magic");
+        PyErr_Format(PyExc_RuntimeError,
+            "Unrecognized Mach-O magic number 0x%x in binary file '%s' for section '%s' search",
+            magic, path, secname);
         break;
     }
 
-    munmap(map, fs.st_size);
+    if (munmap(map, fs.st_size) != 0) {
+        PyErr_Format(PyExc_OSError,
+            "Failed to unmap binary file '%s' (size: %lld bytes): %s",
+            path, (long long)fs.st_size, strerror(errno));
+        result = 0;
+    }
     if (close(fd) != 0) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Failed to close binary file '%s': %s",
+            path, strerror(errno));
         result = 0;
     }
     return result;
@@ -414,7 +461,10 @@ pid_to_task(pid_t pid)
 
     result = task_for_pid(mach_task_self(), pid, &task);
     if (result != KERN_SUCCESS) {
-        PyErr_Format(PyExc_PermissionError, "Cannot get task for PID %d", pid);
+        PyErr_Format(PyExc_PermissionError,
+            "Cannot get task port for PID %d (kern_return_t: %d). "
+            "This typically requires running as root or having the 'com.apple.system-task-ports' entitlement.",
+            pid, result);
         return 0;
     }
     return task;
@@ -431,13 +481,15 @@ search_map_for_section(proc_handle_t *handle, const char* secname, const char* s
     mach_port_t proc_ref = pid_to_task(handle->pid);
     if (proc_ref == 0) {
         if (!PyErr_Occurred()) {
-            PyErr_SetString(PyExc_PermissionError, "Cannot get task for PID");
+            PyErr_Format(PyExc_PermissionError,
+                "Cannot get task port for PID %d during section search",
+                handle->pid);
         }
         return 0;
     }
 
-    int match_found = 0;
     char map_filename[MAXPATHLEN + 1];
+
     while (mach_vm_region(
         proc_ref,
         &address,
@@ -447,6 +499,7 @@ search_map_for_section(proc_handle_t *handle, const char* secname, const char* s
         &count,
         &object_name) == KERN_SUCCESS)
     {
+
         if ((region_info.protection & VM_PROT_READ) == 0
             || (region_info.protection & VM_PROT_EXECUTE) == 0) {
             address += size;
@@ -467,17 +520,17 @@ search_map_for_section(proc_handle_t *handle, const char* secname, const char* s
             filename = map_filename;  // No path, use the whole string
         }
 
-        if (!match_found && strncmp(filename, substr, strlen(substr)) == 0) {
-            match_found = 1;
-            return search_section_in_file(
+        if (strncmp(filename, substr, strlen(substr)) == 0) {
+            uintptr_t result = search_section_in_file(
                 secname, map_filename, address, size, proc_ref);
+            if (result != 0) {
+                return result;
+            }
         }
 
         address += size;
     }
 
-    PyErr_SetString(PyExc_RuntimeError,
-        "mach_vm_region failed to find the section");
     return 0;
 }
 
@@ -500,24 +553,38 @@ search_elf_file_for_section(
 
     int fd = open(elf_file, O_RDONLY);
     if (fd < 0) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Cannot open ELF file '%s' for section '%s' search: %s",
+            elf_file, secname, strerror(errno));
         goto exit;
     }
 
     struct stat file_stats;
     if (fstat(fd, &file_stats) != 0) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Cannot get file size for ELF file '%s' during section '%s' search: %s",
+            elf_file, secname, strerror(errno));
         goto exit;
     }
 
     file_memory = mmap(NULL, file_stats.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
     if (file_memory == MAP_FAILED) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Cannot memory map ELF file '%s' (size: %lld bytes) for section '%s' search: %s",
+            elf_file, (long long)file_stats.st_size, secname, strerror(errno));
         goto exit;
     }
 
     Elf_Ehdr* elf_header = (Elf_Ehdr*)file_memory;
 
+    // Validate ELF header
+    if (elf_header->e_shstrndx >= elf_header->e_shnum) {
+        PyErr_Format(PyExc_RuntimeError,
+            "Invalid ELF file '%s': string table index %u >= section count %u",
+            elf_file, elf_header->e_shstrndx, elf_header->e_shnum);
+        goto exit;
+    }
+
     Elf_Shdr* section_header_table = (Elf_Shdr*)(file_memory + elf_header->e_shoff);
 
     Elf_Shdr* shstrtab_section = &section_header_table[elf_header->e_shstrndx];
@@ -534,6 +601,10 @@ search_elf_file_for_section(
         }
     }
 
+    if (section == NULL) {
+        goto exit;
+    }
+
     Elf_Phdr* program_header_table = (Elf_Phdr*)(file_memory + elf_header->e_phoff);
     // Find the first PT_LOAD segment
     Elf_Phdr* first_load_segment = NULL;
@@ -544,18 +615,25 @@ search_elf_file_for_section(
         }
     }
 
-    if (section != NULL && first_load_segment != NULL) {
-        uintptr_t elf_load_addr = first_load_segment->p_vaddr
-            - (first_load_segment->p_vaddr % first_load_segment->p_align);
-        result = start_address + (uintptr_t)section->sh_addr - elf_load_addr;
+    if (first_load_segment == NULL) {
+        PyErr_Format(PyExc_RuntimeError,
+            "No PT_LOAD segment found in ELF file '%s' (%u program headers examined)",
+            elf_file, elf_header->e_phnum);
+        goto exit;
     }
 
+    uintptr_t elf_load_addr = first_load_segment->p_vaddr
+        - (first_load_segment->p_vaddr % first_load_segment->p_align);
+    result = start_address + (uintptr_t)section->sh_addr - elf_load_addr;
+
 exit:
     if (file_memory != NULL) {
         munmap(file_memory, file_stats.st_size);
     }
     if (fd >= 0 && close(fd) != 0) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Failed to close ELF file '%s': %s",
+            elf_file, strerror(errno));
         result = 0;
     }
     return result;
@@ -569,7 +647,9 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
 
     FILE* maps_file = fopen(maps_file_path, "r");
     if (maps_file == NULL) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Cannot open process memory map file '%s' for PID %d section search: %s",
+            maps_file_path, handle->pid, strerror(errno));
         return 0;
     }
 
@@ -578,11 +658,16 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
     char *line = PyMem_Malloc(linesz);
     if (!line) {
         fclose(maps_file);
-        PyErr_NoMemory();
+        _set_debug_exception_cause(PyExc_MemoryError,
+            "Cannot allocate memory for reading process map file '%s'",
+            maps_file_path);
         return 0;
     }
 
     uintptr_t retval = 0;
+    int lines_processed = 0;
+    int matches_found = 0;
+
     while (fgets(line + linelen, linesz - linelen, maps_file) != NULL) {
         linelen = strlen(line);
         if (line[linelen - 1] != '\n') {
@@ -593,7 +678,9 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
             if (!biggerline) {
                 PyMem_Free(line);
                 fclose(maps_file);
-                PyErr_NoMemory();
+                _set_debug_exception_cause(PyExc_MemoryError,
+                    "Cannot reallocate memory while reading process map file '%s' (attempted size: %zu)",
+                    maps_file_path, linesz);
                 return 0;
             }
             line = biggerline;
@@ -604,6 +691,7 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
         line[linelen - 1] = '\0';
         // and prepare to read the next line into the start of the buffer.
         linelen = 0;
+        lines_processed++;
 
         unsigned long start = 0;
         unsigned long path_pos = 0;
@@ -624,6 +712,7 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
         }
 
         if (strstr(filename, substr)) {
+            matches_found++;
             retval = search_elf_file_for_section(handle, secname, start, path);
             if (retval) {
                 break;
@@ -633,7 +722,9 @@ search_linux_map_for_section(proc_handle_t *handle, const char* secname, const c
 
     PyMem_Free(line);
     if (fclose(maps_file) != 0) {
-        PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_Format(PyExc_OSError,
+            "Failed to close process map file '%s': %s",
+            maps_file_path, strerror(errno));
         retval = 0;
     }
 
@@ -649,11 +740,20 @@ static void* analyze_pe(const wchar_t* mod_path, BYTE* remote_base, const char*
     HANDLE hFile = CreateFileW(mod_path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
     if (hFile == INVALID_HANDLE_VALUE) {
         PyErr_SetFromWindowsErr(0);
+        DWORD error = GetLastError();
+        PyErr_Format(PyExc_OSError,
+            "Cannot open PE file for section '%s' analysis (error %lu)",
+            secname, error);
         return NULL;
     }
+
     HANDLE hMap = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, 0);
     if (!hMap) {
         PyErr_SetFromWindowsErr(0);
+        DWORD error = GetLastError();
+        PyErr_Format(PyExc_OSError,
+            "Cannot create file mapping for PE file section '%s' analysis (error %lu)",
+            secname, error);
         CloseHandle(hFile);
         return NULL;
     }
@@ -661,6 +761,10 @@ static void* analyze_pe(const wchar_t* mod_path, BYTE* remote_base, const char*
     BYTE* mapView = (BYTE*)MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0);
     if (!mapView) {
         PyErr_SetFromWindowsErr(0);
+        DWORD error = GetLastError();
+        PyErr_Format(PyExc_OSError,
+            "Cannot map view of PE file for section '%s' analysis (error %lu)",
+            secname, error);
         CloseHandle(hMap);
         CloseHandle(hFile);
         return NULL;
@@ -668,7 +772,9 @@ static void* analyze_pe(const wchar_t* mod_path, BYTE* remote_base, const char*
 
     IMAGE_DOS_HEADER* pDOSHeader = (IMAGE_DOS_HEADER*)mapView;
     if (pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE) {
-        PyErr_SetString(PyExc_RuntimeError, "Invalid DOS signature.");
+        PyErr_Format(PyExc_RuntimeError,
+            "Invalid DOS signature (0x%x) in PE file for section '%s' analysis (expected 0x%x)",
+            pDOSHeader->e_magic, secname, IMAGE_DOS_SIGNATURE);
         UnmapViewOfFile(mapView);
         CloseHandle(hMap);
         CloseHandle(hFile);
@@ -677,7 +783,9 @@ static void* analyze_pe(const wchar_t* mod_path, BYTE* remote_base, const char*
 
     IMAGE_NT_HEADERS* pNTHeaders = (IMAGE_NT_HEADERS*)(mapView + pDOSHeader->e_lfanew);
     if (pNTHeaders->Signature != IMAGE_NT_SIGNATURE) {
-        PyErr_SetString(PyExc_RuntimeError, "Invalid NT signature.");
+        PyErr_Format(PyExc_RuntimeError,
+            "Invalid NT signature (0x%lx) in PE file for section '%s' analysis (expected 0x%lx)",
+            pNTHeaders->Signature, secname, IMAGE_NT_SIGNATURE);
         UnmapViewOfFile(mapView);
         CloseHandle(hMap);
         CloseHandle(hFile);
@@ -711,17 +819,27 @@ search_windows_map_for_section(proc_handle_t* handle, const char* secname, const
     } while (hProcSnap == INVALID_HANDLE_VALUE && GetLastError() == ERROR_BAD_LENGTH);
 
     if (hProcSnap == INVALID_HANDLE_VALUE) {
-        PyErr_SetString(PyExc_PermissionError, "Unable to create module snapshot. Check permissions or PID.");
+        PyErr_SetFromWindowsErr(0);
+        DWORD error = GetLastError();
+        PyErr_Format(PyExc_PermissionError,
+            "Unable to create module snapshot for PID %d section '%s' "
+            "search (error %lu). Check permissions or PID validity",
+            handle->pid, secname, error);
         return 0;
     }
 
     MODULEENTRY32W moduleEntry;
     moduleEntry.dwSize = sizeof(moduleEntry);
     void* runtime_addr = NULL;
+    int modules_examined = 0;
+    int matches_found = 0;
 
     for (BOOL hasModule = Module32FirstW(hProcSnap, &moduleEntry); hasModule; hasModule = Module32NextW(hProcSnap, &moduleEntry)) {
+        modules_examined++;
+
         // Look for either python executable or DLL
         if (wcsstr(moduleEntry.szModule, substr)) {
+            matches_found++;
             runtime_addr = analyze_pe(moduleEntry.szExePath, moduleEntry.modBaseAddr, secname);
             if (runtime_addr != NULL) {
                 break;
@@ -730,6 +848,7 @@ search_windows_map_for_section(proc_handle_t* handle, const char* secname, const
     }
 
     CloseHandle(hProcSnap);
+
     return (uintptr_t)runtime_addr;
 }
 
@@ -747,7 +866,9 @@ _Py_RemoteDebug_GetPyRuntimeAddress(proc_handle_t* handle)
     if (address == 0) {
         // Error out: 'python' substring covers both executable and DLL
         PyObject *exc = PyErr_GetRaisedException();
-        PyErr_SetString(PyExc_RuntimeError, "Failed to find the PyRuntime section in the process.");
+        PyErr_Format(PyExc_RuntimeError,
+            "Failed to find the PyRuntime section in process %d on Windows platform",
+            handle->pid);
         _PyErr_ChainExceptions1(exc);
     }
 #elif defined(__linux__)
@@ -756,16 +877,28 @@ _Py_RemoteDebug_GetPyRuntimeAddress(proc_handle_t* handle)
     if (address == 0) {
         // Error out: 'python' substring covers both executable and DLL
         PyObject *exc = PyErr_GetRaisedException();
-        PyErr_SetString(PyExc_RuntimeError, "Failed to find the PyRuntime section in the process.");
+        PyErr_Format(PyExc_RuntimeError,
+            "Failed to find the PyRuntime section in process %d on Linux platform",
+            handle->pid);
         _PyErr_ChainExceptions1(exc);
     }
 #elif defined(__APPLE__) && defined(TARGET_OS_OSX) && TARGET_OS_OSX
     // On macOS, try libpython first, then fall back to python
-    address = search_map_for_section(handle, "PyRuntime", "libpython");
-    if (address == 0) {
-        // TODO: Differentiate between not found and error
+    const char* candidates[] = {"libpython", "python", "Python", NULL};
+    for (const char** candidate = candidates; *candidate; candidate++) {
         PyErr_Clear();
-        address = search_map_for_section(handle, "PyRuntime", "python");
+        address = search_map_for_section(handle, "PyRuntime", *candidate);
+        if (address != 0) {
+            break;
+        }
+    }
+    if (address == 0) {
+        PyObject *exc = PyErr_GetRaisedException();
+        PyErr_Format(PyExc_RuntimeError,
+            "Failed to find the PyRuntime section in process %d "
+            "on macOS platform (tried both libpython and python)",
+            handle->pid);
+        _PyErr_ChainExceptions1(exc);
     }
 #else
     Py_UNREACHABLE();
@@ -784,6 +917,11 @@ _Py_RemoteDebug_ReadRemoteMemory(proc_handle_t *handle, uintptr_t remote_address
     do {
         if (!ReadProcessMemory(handle->hProcess, (LPCVOID)(remote_address + result), (char*)dst + result, len - result, &read_bytes)) {
             PyErr_SetFromWindowsErr(0);
+            DWORD error = GetLastError();
+            _set_debug_exception_cause(PyExc_OSError,
+                "ReadProcessMemory failed for PID %d at address 0x%lx "
+                "(size %zu, partial read %zu bytes): Windows error %lu",
+                handle->pid, remote_address + result, len - result, result, error);
             return -1;
         }
         result += read_bytes;
@@ -804,6 +942,10 @@ _Py_RemoteDebug_ReadRemoteMemory(proc_handle_t *handle, uintptr_t remote_address
         read_bytes = process_vm_readv(handle->pid, local, 1, remote, 1, 0);
         if (read_bytes < 0) {
             PyErr_SetFromErrno(PyExc_OSError);
+            _set_debug_exception_cause(PyExc_OSError,
+                "process_vm_readv failed for PID %d at address 0x%lx "
+                "(size %zu, partial read %zd bytes): %s",
+                handle->pid, remote_address + result, len - result, result, strerror(errno));
             return -1;
         }
 
@@ -822,13 +964,22 @@ _Py_RemoteDebug_ReadRemoteMemory(proc_handle_t *handle, uintptr_t remote_address
     if (kr != KERN_SUCCESS) {
         switch (kr) {
         case KERN_PROTECTION_FAILURE:
-            PyErr_SetString(PyExc_PermissionError, "Not enough permissions to read memory");
+            PyErr_Format(PyExc_PermissionError,
+                "Memory protection failure reading from PID %d at address "
+                "0x%lx (size %zu): insufficient permissions",
+                handle->pid, remote_address, len);
             break;
         case KERN_INVALID_ARGUMENT:
-            PyErr_SetString(PyExc_PermissionError, "Invalid argument to mach_vm_read_overwrite");
+            PyErr_Format(PyExc_ValueError,
+                "Invalid argument to mach_vm_read_overwrite for PID %d at "
+                "address 0x%lx (size %zu)",
+                handle->pid, remote_address, len);
             break;
         default:
-            PyErr_SetString(PyExc_RuntimeError, "Unknown error reading memory");
+            PyErr_Format(PyExc_RuntimeError,
+                "mach_vm_read_overwrite failed for PID %d at address 0x%lx "
+                "(size %zu): kern_return_t %d",
+                handle->pid, remote_address, len, kr);
         }
         return -1;
     }
@@ -868,7 +1019,10 @@ _Py_RemoteDebug_PagedReadRemoteMemory(proc_handle_t *handle,
             if (entry->data == NULL) {
                 entry->data = PyMem_RawMalloc(page_size);
                 if (entry->data == NULL) {
-                    PyErr_NoMemory();
+                    _set_debug_exception_cause(PyExc_MemoryError,
+                        "Cannot allocate %zu bytes for page cache entry "
+                        "during read from PID %d at address 0x%lx",
+                        page_size, handle->pid, addr);
                     return -1;
                 }
             }
@@ -900,13 +1054,16 @@ _Py_RemoteDebug_ReadDebugOffsets(
     *runtime_start_address = _Py_RemoteDebug_GetPyRuntimeAddress(handle);
     if (!*runtime_start_address) {
         if (!PyErr_Occurred()) {
-            PyErr_SetString(
-                PyExc_RuntimeError, "Failed to get PyRuntime address");
+            PyErr_Format(PyExc_RuntimeError,
+                "Failed to locate PyRuntime address for PID %d",
+                handle->pid);
         }
+        _set_debug_exception_cause(PyExc_RuntimeError, "PyRuntime address lookup failed during debug offsets initialization");
         return -1;
     }
     size_t size = sizeof(struct _Py_DebugOffsets);
     if (0 != _Py_RemoteDebug_ReadRemoteMemory(handle, *runtime_start_address, size, debug_offsets)) {
+        _set_debug_exception_cause(PyExc_RuntimeError, "Failed to read debug offsets structure from remote process");
         return -1;
     }
     return 0;