diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 07:27:52 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 07:27:52 +0000 |
| commit | d0c85e36e4de67af628d54e9ab577cc3fad7796a (patch) | |
| tree | f8f784b0f04343b90516a338d6df81df3a85dfa2 /results/classifier/gemma3:12b/hypervisor/2748 | |
| parent | 7f4364274750eb8cb39a3e7493132fca1c01232e (diff) | |
| download | emulator-bug-study-d0c85e36e4de67af628d54e9ab577cc3fad7796a.tar.gz emulator-bug-study-d0c85e36e4de67af628d54e9ab577cc3fad7796a.zip | |
add deepseek and gemma results
Diffstat (limited to 'results/classifier/gemma3:12b/hypervisor/2748')
| -rw-r--r-- | results/classifier/gemma3:12b/hypervisor/2748 | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/results/classifier/gemma3:12b/hypervisor/2748 b/results/classifier/gemma3:12b/hypervisor/2748 new file mode 100644 index 00000000..bb2f7985 --- /dev/null +++ b/results/classifier/gemma3:12b/hypervisor/2748 @@ -0,0 +1,251 @@ + +Windows specific main loop deadlock when using serial pipe communication +Description of problem: +Attaching WinDBG (or for that matter, any other serial end that sends data quickly enough) causes QEMU to deadlock. +Steps to reproduce: +1. Fire up QEMU with Windows (serial debugging enable) +2. Restart +3. At boot time, plug-in host WinDBG +Additional information: +WinDBG QEMU stacktrace +``` +0:020> g +(34c4.2330): Control-C exception - code 40010005 (first chance) +First chance exceptions are reported before any exception handling. +This exception may be expected and handled. +KERNELBASE!CtrlRoutine+0x1be: +00007ffe`82ace6ce 0f1f440000 nop dword ptr [rax+rax] +0:019> g +(34c4.3b3c): Break instruction exception - code 80000003 (first chance) +ntdll!DbgBreakPoint: +00007ffe`850d4090 cc int 3 +0:017> ~*k + + 0 Id: 34c4.28b8 Suspend: 1 Teb: 0000009f`a24ac000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a27f7388 00007ffe`829e6656 ntdll!NtCreateEvent+0x14 +0000009f`a27f7390 00007ff7`38abcbd6 KERNELBASE!PeekNamedPipe+0xa6 +0000009f`a27f7460 00007ff7`38bb8f11 qemu_system_x86_64!win_chr_pipe_poll+0x84 +0000009f`a27f74d0 00007ff7`38bb93fb qemu_system_x86_64!os_host_main_loop_wait+0x133 +0000009f`a27ffba0 00007ff7`38686c45 qemu_system_x86_64!main_loop_wait+0xce +0000009f`a27ffc00 00007ff7`38ac2f14 qemu_system_x86_64!qemu_main_loop+0x2b +0000009f`a27ffc40 00007ff7`38ac2f52 qemu_system_x86_64!qemu_default_main+0x14 +0000009f`a27ffc80 00007ff7`38bdeede qemu_system_x86_64!SDL_main+0x26 +0000009f`a27ffcb0 00007ff7`3838140a qemu_system_x86_64!__mingw_enum_import_library_names+0x24e +0000009f`a27ffd30 00007ff7`383814f6 qemu_system_x86_64!__tmainCRTStartup+0xea +0000009f`a27ffd70 00007ffe`83ca259d qemu_system_x86_64!mainCRTStartup+0x16 +0000009f`a27ffda0 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a27ffdd0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 1 Id: 34c4.2738 Suspend: 1 Teb: 0000009f`a24ae000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a29ffaa8 00007ffe`8506586e ntdll!NtWaitForWorkViaWorkerFactory+0x14 +0000009f`a29ffab0 00007ffe`83ca259d ntdll!TppWorkerThread+0x2ee +0000009f`a29ffd90 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a29ffdc0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 2 Id: 34c4.35e4 Suspend: 1 Teb: 0000009f`a24b0000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a2bffa88 00007ffe`8506586e ntdll!NtWaitForWorkViaWorkerFactory+0x14 +0000009f`a2bffa90 00007ffe`83ca259d ntdll!TppWorkerThread+0x2ee +0000009f`a2bffd70 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a2bffda0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 3 Id: 34c4.24f0 Suspend: 1 Teb: 0000009f`a24b2000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a2dff838 00007ffe`8506586e ntdll!NtWaitForWorkViaWorkerFactory+0x14 +0000009f`a2dff840 00007ffe`83ca259d ntdll!TppWorkerThread+0x2ee +0000009f`a2dffb20 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a2dffb50 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 4 Id: 34c4.2898 Suspend: 1 Teb: 0000009f`a24b4000 Unfrozen "pool" +Child-SP RetAddr Call Site +0000009f`a2fffb58 00007ffe`850997db ntdll!NtWaitForAlertByThreadId+0x14 +0000009f`a2fffb60 00007ffe`829df2e9 ntdll!RtlSleepConditionVariableSRW+0x13b +0000009f`a2fffbe0 00007ffd`cb1c6903 KERNELBASE!SleepConditionVariableSRW+0x29 +0000009f`a2fffc20 00007ffd`cb235399 libglib_2_0_0!g_byte_array_sort_with_data+0x143 +0000009f`a2fffc80 00007ffd`cb234a41 libglib_2_0_0!g_get_num_processors+0x2c9 +0000009f`a2fffce0 00007ffd`cb2696f7 libglib_2_0_0!g_test_get_path+0x51 +0000009f`a2fffd20 00007ffe`8424e634 libglib_2_0_0!g_private_replace+0x117 +0000009f`a2fffd50 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a2fffd80 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a2fffdb0 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a2fffde0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 5 Id: 34c4.2ed8 Suspend: 1 Teb: 0000009f`a24b6000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a31ff9b8 00007ffe`829a9cee ntdll!NtWaitForSingleObject+0x14 +0000009f`a31ff9c0 00007ff7`38b9f99f KERNELBASE!WaitForSingleObjectEx+0x8e +0000009f`a31ffa60 00007ff7`38baba83 qemu_system_x86_64!qemu_event_wait+0xe3 +0000009f`a31ffac0 00007ff7`38b9faf2 qemu_system_x86_64!call_rcu_thread+0x6c +0000009f`a31ffb00 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`a31ffb50 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a31ffb80 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a31ffbb0 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a31ffbe0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 6 Id: 34c4.2980 Suspend: 1 Teb: 0000009f`a24b8000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a35ff888 00007ffe`82dc54a7 win32u!NtUserMsgWaitForMultipleObjectsEx+0x14 +0000009f`a35ff890 00007ffe`71373c70 USER32!MsgWaitForMultipleObjects+0x57 +0000009f`a35ff8d0 00007ffe`71373bc9 gdiplus!BackgroundThreadProc+0x70 +0000009f`a35ff940 00007ffe`83ca259d gdiplus!DllRefCountSafeThreadThunk+0x29 +0000009f`a35ff970 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a35ff9a0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 7 Id: 34c4.3880 Suspend: 1 Teb: 0000009f`a24ba000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a37ff808 00007ffe`829c6849 ntdll!NtWaitForMultipleObjects+0x14 +0000009f`a37ff810 00007ffe`837707ad KERNELBASE!WaitForMultipleObjectsEx+0xe9 +0000009f`a37ffaf0 00007ffe`8377061a combase!WaitCoalesced+0xa9 +0000009f`a37ffd90 00007ffe`8377040f combase!CROIDTable::WorkerThreadLoop+0x5a +0000009f`a37ffde0 00007ffe`83770829 combase!CRpcThread::WorkerLoop+0x57 +0000009f`a37ffe60 00007ffe`83ca259d combase!CRpcThreadCache::RpcWorkerThreadEntry+0x29 +0000009f`a37ffe90 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a37ffec0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 8 Id: 34c4.1bd0 Suspend: 1 Teb: 0000009f`a24bc000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a39ffaa8 00007ffe`8506586e ntdll!NtWaitForWorkViaWorkerFactory+0x14 +0000009f`a39ffab0 00007ffe`83ca259d ntdll!TppWorkerThread+0x2ee +0000009f`a39ffd90 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a39ffdc0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 9 Id: 34c4.20fc Suspend: 1 Teb: 0000009f`a24be000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a3bffa78 00007ffe`8506586e ntdll!NtWaitForWorkViaWorkerFactory+0x14 +0000009f`a3bffa80 00007ffe`83ca259d ntdll!TppWorkerThread+0x2ee +0000009f`a3bffd60 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a3bffd90 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 10 Id: 34c4.1768 Suspend: 1 Teb: 0000009f`a24c0000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a3dff438 00007ffe`8457a212 win32u!NtUserMsgWaitForMultipleObjectsEx+0x14 +0000009f`a3dff440 00007ffe`8456fa2e shcore!WorkThreadManager::CThread::ThreadProc+0xbf2 +0000009f`a3dff6f0 00007ffe`8456f9f1 shcore!WorkThreadManager::CThread::s_ExecuteThreadProc+0x22 +0000009f`a3dff730 00007ffe`83ca259d shcore!<lambda_9844335fc14345151eefcc3593dd6895>::<lambda_invoker_cdecl>+0x11 +0000009f`a3dff760 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a3dff790 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 11 Id: 34c4.3ac0 Suspend: 1 Teb: 0000009f`a24d6000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a41fead0 00007ffe`8506d249 ntdll!RtlpAllocateHeap+0x835 +0000009f`a41fed30 00007ffe`85134832 ntdll!RtlpAllocateHeapInternal+0x6c9 +0000009f`a41fee30 00007ffe`850ee2e8 ntdll!RtlDebugAllocateHeap+0x102 +0000009f`a41feed0 00007ffe`8506d249 ntdll!RtlpAllocateHeap+0x7f1a8 +0000009f`a41ff130 00007ffe`85059634 ntdll!RtlpAllocateHeapInternal+0x6c9 +0000009f`a41ff230 00007ffe`85058877 ntdll!LdrpAllocateTls+0x108 +0000009f`a41ff300 00007ffe`850a45af ntdll!LdrpInitializeThread+0x6f +0000009f`a41ff3e0 00007ffe`850a44e3 ntdll!_LdrpInitialize+0x93 +0000009f`a41ff460 00007ffe`850a440e ntdll!LdrpInitializeInternal+0x6b +0000009f`a41ff6e0 00000000`00000000 ntdll!LdrInitializeThunk+0xe + + 12 Id: 34c4.3fac Suspend: 1 Teb: 0000009f`a24c4000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a43ff268 00007ffe`85067e65 ntdll!NtWaitForAlertByThreadId+0x14 +0000009f`a43ff270 00007ff7`38b9edcd ntdll!RtlAcquireSRWLockExclusive+0x165 +0000009f`a43ff2e0 00007ff7`386771e6 qemu_system_x86_64!qemu_mutex_lock_impl+0x73 +0000009f`a43ff320 00007ff7`388b5654 qemu_system_x86_64!bql_lock_impl+0x78 +0000009f`a43ff370 00007ff7`388b5b00 qemu_system_x86_64!prepare_mmio_access+0x30 +0000009f`a43ff3b0 00007ff7`388b5c6c qemu_system_x86_64!flatview_read_continue_step+0xa0 +0000009f`a43ff430 00007ff7`388b5db9 qemu_system_x86_64!flatview_read_continue+0x66 +0000009f`a43ff480 00007ff7`388b5e60 qemu_system_x86_64!flatview_read+0xe2 +0000009f`a43ff500 00007ff7`388b5fb6 qemu_system_x86_64!address_space_read_full+0x78 +0000009f`a43ff570 00007ff7`38786ddf qemu_system_x86_64!address_space_rw+0x68 +0000009f`a43ff5c0 00007ffd`c624af05 qemu_system_x86_64!whpx_emu_ioport_callback+0x63 +0000009f`a43ff610 00007ffd`c62523d5 WinHvEmulation!IoPortHandler::NotifyIoPortRead+0x45 +0000009f`a43ff640 00007ffd`c624b916 WinHvEmulation!EmulatorVp::DispatchIoPortOperation+0x159 +0000009f`a43ff690 00007ffd`c624a77f WinHvEmulation!EmulatorVp::TrySimpleIoEmulation+0xc2 +0000009f`a43ff800 00007ffd`c6248caf WinHvEmulation!EmulatorWrapper::TryEmulationHelper<<lambda_6e350ef384ad69a259a7e747c2fadeeb> &>+0xcb +0000009f`a43ff8a0 00007ff7`38787201 WinHvEmulation!WHvEmulatorTryIoEmulation+0x10f +0000009f`a43ff930 00007ff7`38788cd6 qemu_system_x86_64!whpx_handle_portio+0x73 +0000009f`a43ff9a0 00007ff7`38789bd2 qemu_system_x86_64!whpx_vcpu_run+0x4a8 +0000009f`a43ffb20 00007ff7`3878c008 qemu_system_x86_64!whpx_vcpu_exec+0x54 +0000009f`a43ffb60 00007ff7`38b9faf2 qemu_system_x86_64!whpx_cpu_thread_fn+0xfb +0000009f`a43ffbb0 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`a43ffc00 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a43ffc30 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a43ffc60 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a43ffc90 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 13 Id: 34c4.3ecc Suspend: 1 Teb: 0000009f`a24c6000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a45ff8c8 00007ffe`829a9cee ntdll!NtWaitForSingleObject+0x14 +0000009f`a45ff8d0 00007ffd`e15631e2 KERNELBASE!WaitForSingleObjectEx+0x8e +0000009f`a45ff970 00007ffd`e156b621 WinHvPlatform!WHvApi::Processor::RunVp+0x486 +0000009f`a45ffbe0 00007ff7`38788b9a WinHvPlatform!WHvRunVirtualProcessor+0x31 +0000009f`a45ffc20 00007ff7`38789bd2 qemu_system_x86_64!whpx_vcpu_run+0x36c +0000009f`a45ffda0 00007ff7`3878c008 qemu_system_x86_64!whpx_vcpu_exec+0x54 +0000009f`a45ffde0 00007ff7`38b9faf2 qemu_system_x86_64!whpx_cpu_thread_fn+0xfb +0000009f`a45ffe30 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`a45ffe80 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a45ffeb0 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a45ffee0 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a45fff10 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 14 Id: 34c4.3d08 Suspend: 1 Teb: 0000009f`a24c8000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a47ff1a8 00007ffe`829a9cee ntdll!NtWaitForSingleObject+0x14 +0000009f`a47ff1b0 00007ffd`e15631e2 KERNELBASE!WaitForSingleObjectEx+0x8e +0000009f`a47ff250 00007ffd`e156b621 WinHvPlatform!WHvApi::Processor::RunVp+0x486 +0000009f`a47ff4c0 00007ff7`38788b9a WinHvPlatform!WHvRunVirtualProcessor+0x31 +0000009f`a47ff500 00007ff7`38789bd2 qemu_system_x86_64!whpx_vcpu_run+0x36c +0000009f`a47ff680 00007ff7`3878c008 qemu_system_x86_64!whpx_vcpu_exec+0x54 +0000009f`a47ff6c0 00007ff7`38b9faf2 qemu_system_x86_64!whpx_cpu_thread_fn+0xfb +0000009f`a47ff710 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`a47ff760 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a47ff790 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a47ff7c0 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a47ff7f0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 15 Id: 34c4.3eb4 Suspend: 1 Teb: 0000009f`a24ca000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a49ff278 00007ffe`829a9cee ntdll!NtWaitForSingleObject+0x14 +0000009f`a49ff280 00007ffd`e15631e2 KERNELBASE!WaitForSingleObjectEx+0x8e +0000009f`a49ff320 00007ffd`e156b621 WinHvPlatform!WHvApi::Processor::RunVp+0x486 +0000009f`a49ff590 00007ff7`38788b9a WinHvPlatform!WHvRunVirtualProcessor+0x31 +0000009f`a49ff5d0 00007ff7`38789bd2 qemu_system_x86_64!whpx_vcpu_run+0x36c +0000009f`a49ff750 00007ff7`3878c008 qemu_system_x86_64!whpx_vcpu_exec+0x54 +0000009f`a49ff790 00007ff7`38b9faf2 qemu_system_x86_64!whpx_cpu_thread_fn+0xfb +0000009f`a49ff7e0 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`a49ff830 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a49ff860 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a49ff890 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a49ff8c0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 16 Id: 34c4.3844 Suspend: 1 Teb: 0000009f`a24cc000 Unfrozen +Child-SP RetAddr Call Site +0000009f`a4bff328 00007ffe`829c6849 ntdll!NtWaitForMultipleObjects+0x14 +0000009f`a4bff330 00007ffd`cb215d94 KERNELBASE!WaitForMultipleObjectsEx+0xe9 +0000009f`a4bff610 00007ffd`cb21607a libglib_2_0_0!g_pattern_match_simple+0x214 +0000009f`a4bff690 00007ffd`cb216612 libglib_2_0_0!g_pattern_match_simple+0x4fa +0000009f`a4bff6e0 00007ffd`cb203740 libglib_2_0_0!g_poll+0x392 +0000009f`a4bffbd0 00007ffd`cb204180 libglib_2_0_0!g_get_monotonic_time+0xac0 +0000009f`a4bffc60 00007ffd`c9eaa829 libglib_2_0_0!g_main_loop_run+0x120 +0000009f`a4bffcb0 00007ffd`e5ab4e2b libspice_server_1!spice_server_init+0x1ca9 +0000009f`a4bffcf0 00007ffe`8424e634 libwinpthread_1!pthread_create_wrapper+0x9b +0000009f`a4bffd30 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`a4bffd60 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`a4bffd90 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`a4bffdc0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + +# 17 Id: 34c4.3b3c Suspend: 1 Teb: 0000009f`a24d8000 Unfrozen +Child-SP RetAddr Call Site +0000009f`c4dffd08 00007ffe`8510735e ntdll!DbgBreakPoint +0000009f`c4dffd10 00007ffe`83ca259d ntdll!DbgUiRemoteBreakin+0x4e +0000009f`c4dffd40 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`c4dffd70 00000000`00000000 ntdll!RtlUserThreadStart+0x28 + + 18 Id: 34c4.16c4 Suspend: 1 Teb: 0000009f`a24d0000 Unfrozen +Child-SP RetAddr Call Site +0000009f`c53ffb58 00007ffe`850997db ntdll!NtWaitForAlertByThreadId+0x14 +0000009f`c53ffb60 00007ffe`829df2e9 ntdll!RtlSleepConditionVariableSRW+0x13b +0000009f`c53ffbe0 00007ff7`38b9f403 KERNELBASE!SleepConditionVariableSRW+0x29 +0000009f`c53ffc20 00007ff7`38bbc9e5 qemu_system_x86_64!qemu_cond_timedwait_impl+0x92 +0000009f`c53ffc70 00007ff7`38b9faf2 qemu_system_x86_64!worker_thread+0xc9 +0000009f`c53ffce0 00007ffe`8424e634 qemu_system_x86_64!win32_start_routine+0x4e +0000009f`c53ffd30 00007ffe`8424e70c msvcrt!_callthreadstartex+0x28 +0000009f`c53ffd60 00007ffe`83ca259d msvcrt!_threadstartex+0x7c +0000009f`c53ffd90 00007ffe`8508af38 KERNEL32!BaseThreadInitThunk+0x1d +0000009f`c53ffdc0 00000000`00000000 ntdll!RtlUserThreadStart+0x28 +``` |