diff --git a/ANNOUNCE b/ANNOUNCE
index 3725a3f33be..d0669419c9a 100644
@@ -1,13 +1,19 @@
-The Wine development release 7.0-rc6 is now available. This is
-expected to be the last release candidate before the final 7.0.
+The Wine team is proud to announce that the stable release Wine 7.0
+is now available.
-What's new in this release:
- - Bug fixes only, we are in code freeze.
+This release represents a year of development effort and over 9,100
+individual changes. It contains a large number of improvements that
+are listed in the release notes below. The areas of major changes are:
+ - Most modules converted to PE format.
+ - Better theming support, with a bundled theme for a more modern look.
+ - Vastly improved HID stack and joystick support.
+ - New WoW64 architecture.
The source is available from the following locations:
Binary packages for various distributions will be available from:
@@ -23,143 +29,413 @@ AUTHORS in the distribution for the complete list.
-Bugs fixed in 7.0-rc6 (total 47):
- 9805 Program "de rouck" does not start.
- 12030 MozyHome backup service does not work
- 12915 Star Wars Episode I Racer: Assign key cause freeze
- 34010 Gabriel Knight 3 demo - Depth / stencil buffer locking is not implemented
- 34340 Mingw gdb hangs
- 37439 Saints Row: The Third characters don't render correctly
- 38907 Homesite+ (v5.5) closing search window does not correctly refocus editor window
- 39342 Thunder crashes without native riched20 (ME_GetCursorCoordinates: Assertion `~para->member.para.nFlags & 0x01')
- 42174 TeraCopy 3.0b2 crashes on startup
- 42395 Saints Row: The Third has graphical glitches
- 43502 Microsoft Flight Simulator 2000 : only bottom half view rendered and moved to the top
- 43650 nolf2 game error on install
- 44008 XNA Game Studio 4 installer crashes when cancelled
- 44111 Simple WPF/.Net app has rendering issues
- 44970 Deus Ex Human Revolution: people are invisible when closer than 3 meters
- 45121 Steam uses high CPU while idle
- 45168 Visual Novel "The Fruit of Grisaia" has flickering glitches
- 46118 FlatOut has graphical glitches with csmt enabled
- 46213 Sniper Elite 4 launcher window doesn't display properly
- 46304 The virgl driver is identified as Nvidia vendor but should be MESA and it should probably not fall back to any Nvidia card
- 46423 Kara no Shoujo crashes in fullscreen mode
- 48103 Lego Stunt Rally crashes when entering championship
- 49541 Lara Croft and the Temple of Osiris stops silently at launch
- 49732 Death End Re;Quest 2 crashes on startup
- 49919 Logos 8 Bible Software crashes when entering text in passage guide search field
- 49976 FIFA 11 Demo fifaconfig crashes when pressing OK button
- 49995 Evernote 6.24 stopped displaying notes after upgrade to Wine 5.19
- 50521 Guild Wars 2 fails to launch
- 50617 Objects become invisible with tessellation enabled in Sniper Elite 3 with OpenGL renderer
- 50813 X-Beyond The Frontier & X-Tension crash on start
- 51195 Lara Croft and the Temple of Osiris doesn't launch
- 51423 WeChat can't send a big picture
- 51442 Socket connection is not established properly
- 51592 Call of Cthulhu Crashes on Launch
- 52108 user32:monitor breaks user32:win on Win10 1809
- 52252 IDA Pro 7.2 debugger fails to attach to a process.
- 52286 Zombie Army Trilogy launcher crashes on start
- 52327 Wrong WM_CONTEXTMENU message default processing
- 52335 StarCraft Remastered hangs in Multiplayer screen
- 52349 Vortex Mod Manager Starts but Infinitely Loads
- 52353 PuTTY plink 0.76 crashes
- 52356 Folio Bound Views crashes on start
- 52378 Python WMI module: AttributeError: wbemErrInvalidQuery
- 52381 wineg++: Compile error in tom.h
- 52387 Joystick does not release buttons properly
- 52389 GPU Caps Viewer does not report any OpenCL devices
- 52390 World of Warcraft crashes in d3d11 mode inside of wined3d_unordered_access_view_gl_clear()
+What's new in Wine 7.0
+*** PE modules
+- With a few exceptions, all modules can be built in PE format. The goal is to
+ convert the remaining modules after 7.0.
+- For PE modules with an associated Unix library, the interface between the PE
+ part and the Unix part goes through a standard NT system call. This enables
+ hiding the Unix code from Windows debuggers, and switching the thread
+ register on platforms that require it.
+- Builtin dlls are only loaded if there is a corresponding PE file on disk,
+ either a real binary or a fake PE module. This ensures that the application
+ always sees a valid PE file mapping. It can be disabled through the
+ WINEBOOTSTRAPMODE environment variable, used at prefix creation time.
+- The 64-bit Windows-on-Windows (WoW64) architecture is implemented, and
+ supports running a 32-bit Windows application inside a 64-bit Unix host
+ process, using thunks to map 32-bit NT system calls to the 64-bit NTDLL.
+- WoW64 thunks are implemented for most Unix libraries, enabling a 32-bit PE
+ module to call a 64-bit Unix library. Once the remaining modules are
+ converted to PE, this will make it possible to run 32-bit applications
+ without installing 32-bit Unix libraries.
+- A "Light" theme is included in Wine, with the color variants "Blue" and
+ "Classic Blue". It can be enabled through WineCfg.
+- All the Common Controls support theming, and automatically refresh on theme
+- All the builtin applications support theming, as well as High DPI rendering.
+- There's a new Win32u library implementing the kernel side of graphics and
+ window management support. Large portions of the GDI32 and USER32 libraries
+ are converted to use this new library. This work will continue after 7.0, and
+ the graphics drivers (winex11.drv, winemac.drv, etc.) will be migrated to
+ Win32u as well.
+- The Vulkan driver supports up to version 1.2.201 of the Vulkan spec.
+- Hit-testing stroked geometries using the Direct2D API is implemented.
+- Some initial support for Direct2D effects (using the ID2D1Effect interface)
+ is implemented.
+- The Direct2D API supports the ID2D1MultiThread interface.
+- WindowsCodecs supports decoding images in WMP (Windows Media Photo) format,
+ as well as encoding images to the DDS (DirectDraw Surface) format.
+- WindowsCodecs no longer supports encoding images to macOS ICNS format. This
+ is not supported on Windows, and was no longer used by Wine either.
+- Various improvements have been made to the Vulkan renderer for the Wine
+ Direct3D implementation. In most cases, for Direct3D 10 and 11 applications
+ the Vulkan renderer should be about on-par with the older OpenGL renderer in
+ Wine 7.0. Like in Wine 6.0, the Vulkan renderer can be enabled by setting the
+ Direct3D "renderer" registry setting to "vulkan".
+- The following Direct3D 10 and 11 features are implemented:
+ - Deferred device contexts.
+ - Device context state objects, and switching between them.
+ - Constant buffer offsetting.
+ - Resolving typeless multi-sample resources.
+ - Clearing unordered-access views of texture resources. When using the OpenGL
+ renderer, this requires the GL_ARB_clear_texture OpenGL extension.
+ - Resource copies between resources with "block-compatible" formats, like for
+ example DXGI_FORMAT_BC3_TYPELESS and DXGI_FORMAT_R32G32B32A32_TYPELESS.
+ - Clearing layered render-target views.
+- Support for multiple displays ("multi-head") is implemented. In practice,
+ this tends to mean the ability to choose which monitor a Direct3D application
+ will use for full-screen mode. Note that this depends on the underlying
+ display drivers to accurately report the attached displays. For Wine's X11
+ driver, that requires proper support for version 1.4 or later of the X RandR
+- Display gamma adjustment using the DXGI API is implemented. This is sometimes
+ used by Direct3D 10 and 11 applications to adjust screen "brightness".
+- Direct3D 12 supports version 1.1 root signatures.
+- When the VK_EXT_host_query_reset Vulkan extension is available, query
+ handling in the Vulkan renderer is slightly more efficient.
+- Retrieving swapchain present counts using the DXGI API is implemented.
+- A fallback path using GDI is added for swapchain presentation. This is used
+ in cases where OpenGL or Vulkan can't be used to present the swapchain, for
+ example when presenting to a window of a different process. This path is much
+ slower, but is often sufficient for some common use cases, like for example
+ applications using the Chromium Embedded Framework ("CEF") with cross-process
+- The "precise" shader instruction modifier is respected when using the GLSL
+ shader backend.
+- The DirectDraw API supports 3D rendering to system memory surfaces when using
+ software device types like the "RGB", "MMX", and "Ramp" devices.
+- The following additional graphics cards are recognized by the Direct3D
+ graphics card database:
+ - AMD Radeon RX 5500M
+ - AMD Radeon RX 6800/6800 XT/6900 XT
+ - AMD Van Gogh
+ - Intel UHD Graphics 630
+ - NVIDIA GT 1030
+- The following HKEY_CURRENT_USER\Software\Wine\Direct3D key is removed:
+ - "UseGLSL"
+ This setting was deprecated in favor of the "shader_backend" setting in
+ Wine 5.0, and has been removed in this release.
+- The support for version 10 of the D3DX effects framework is much improved.
+- D3DX 10 supports the Windows Media Photo (JPEG XR) image file format.
+- Various D3DX10 texture creation functions (D3DX10CreateTextureFromMemory()
+ and variants) are implemented.
+- A partial implementation of the ID3DX10Sprite interface is added.
+- A partial implementation of the ID3DX10Font interface is added.
+*** Audio / video
+- The DirectShow and Media Foundation GStreamer glue is unified into a single
+ backend, making it easier to implement new media decoding APIs.
+- The Windows Media asynchronous and synchronous reader objects are implemented
+ based on the WineGStreamer backend. Like other multimedia decoding libraries,
+ they require a functioning GStreamer installation.
+- The Media Foundation support is more complete, with notably:
+ - Basic functionality of IMFPMediaPlayer, media item properties, support for
+ audio and video tracks.
+ - Support for sample allocator in the Source Reader.
+ - Improved EVR sink integration with presenter and mixer.
+ - Improved SAR rendering buffer behavior.
+ - Video sample allocator, with support for d3d9, d3d11, and system memory
+ - Further improvements to EVR's presenter and mixer implementation.
+ - D3D11 frame output for IMFMediaEngine.
+ - Improvements to generic media source implementation in WineGStreamer to
+ support stopped and paused states, refined output type configuration.
+- The QuickTime decoder library (wineqtdecoder) is removed. GStreamer is
+ required for all built-in multimedia codecs also on macOS.
+*** Input devices
+- The HID (Human Interface Device) stack implementation is more complete. This
+ includes HID descriptor and report parsers, report processing, as well as HID
+ mini-driver support.
+- The winebus.sys driver backends are improved, to better describe the devices
+ into HID reports when pass-through is not possible, and to add standard
+ Physical Interface Device reports to expose force-feedback capabilities over
+- There's a new DirectInput joystick backend using the improved HID stack to
+ communicate with winebus.sys and host devices. This backend supports
+ force-feedback effects using the standard HID Physical Interface Device
+ reports, and is also compatible with pass-through HID device which implement
+ it. The SDL and evdev winebus.sys Linux backends are also supported as they
+ implement it too. This replaces and deprecates the legacy Linux js and evdev,
+ and macOS IOHID backends.
+- The joystick control panel is improved, as well as the interaction with
+ XInput-compatible devices. For such devices the joystick control panel can be
+ used to force DInput as the primary interface instead of XInput. This
+ translates to the "
+ HKCU\Software\Wine\DirectInput for prefix-wide setting).
+- The WinMM joystick support is implemented using DInput instead of Linux evdev
+ or macOS IOHID, and the old joystick driver (winejoystick.drv) is removed.
+- Many tests are added to the DInput module, using a virtual HID device to not
+ require a physical device anymore. The code is extensively and automatically
+ tested, including force-feedback effects with HID input / output report
+*** Text and fonts
+- Arabic shaping is implemented in DirectWrite, currently enabled for Arabic
+ and Syriac.
+- The Font Set object is implemented in DirectWrite.
+- The TextHost interface is properly implemented in RichEdit.
+*** Mono / .NET
+- The Mono engine is updated to version 7.0.0, with the following changes:
+ - IDispatch interface supported on COM Callable Wrappers.
+ - Improved support for SafeArray marshaling.
+ - Many other marshaling and COM interop improvements.
+ - Code imports from .NET Core: System.Drawing.Printing,
+ System.Security.Principal, WindowsFormsApplicationBase, parts of
+ - WMA and WMV support in FNA using mfplat.
+ - Debug symbols available separately in PDB form.
+ - Old VBNC compiler for Visual Basic .NET replaced with the VBC compiler from
+ .NET Core.
+ - Mono's JIT compiler generates code compatible with 64-bit macOS.
+ - WPF built with support for media controls.
+ - A replacement for the Managed DirectX API is included.
+ - Fixes for various bugs that prevented most WPF applications from working.
+- Unicode character tables are based on version 14.0.0 of the Unicode Standard.
+- The timezone data is updated, based on the information from the Olson and
+ Unicode CLDR databases.
+- Codepages 720 (Arabic, Farsi and Urdu) and 20949 (Korean Wansung) are
+- The sr-Latn-RS locale is supported.
+- Launching applications with the 'wine' executable invokes start.exe for any
+ unrecognized binary. This means that file associations work also from the
+ Unix command line, e.g. 'wine foo.msi'.
+- The low-level NtAlertThreadByThreadId / NtWaitForAlertByThreadId
+ synchronization mechanism (roughly equivalent to Linux futexes) is supported,
+ and used to implement the higher-level synchronization primitives.
+- NT debug objects are implemented and used by the kernel debugger functions.
+- The dynamic registry keys for performance data are implemented.
+*** C runtime
+- There's a full math library implementation in the C runtime, mostly imported
+ from the Musl C library. The Unix math library is no longer used.
+- The floating point environment functions are supported properly on all CPU
+*** Internet and networking
+- IE11 compatibility mode is improved and used by default for
+ standard-compliant HTML documents.
+- JScript EcmaScript compliant mode supports 'let' statements, Map object,
+ object freezing, object sealing and mutable prototype chains.
+- Gecko add-on MSI packages are installed into the prefix on demand, instead of
+ during prefix update, to make updates faster and reduce disk space usage.
+- The DTLS communication protocol is supported.
+- The NSI device (Network Store Interface) is implemented, and used to provide
+ higher-level network services in IpHlpAPI.
+- The Windows Sockets support is reimplemented to go through NTDLL and the Afd
+ device, following the Windows architecture.
+- The various network database files (/etc/protocols, /etc/networks, etc.) are
+ provided and installed in the prefix. The equivalent Unix databases are no
+ longer used for network queries.
+*** Alternative platforms
+- The new Apple Silicon Macs are supported, including running x86-64 binaries
+ under Rosetta 2.
+- GnuTLS is required on macOS for BCrypt and Secur32 support; the
+ macOS-specific backend implementations have been removed.
+- 32-bit ARM binaries are built in Thumb-2 mode, like on Windows.
+- The preloader is also used on 32-bit ARM, for a more compatible address space
+- Stack unwinding is implemented on 32-bit ARM.
+- More low-level system information queries like memory and battery status are
+ supported on FreeBSD.
+*** Builtin applications
+- The REG registry tool supports operating on either the 32- or 64-bit view of
+ the registry.
+- The REG registry tool supports copying registry keys.
+- The WineDump tool supports dumping Windows Metafiles, and shows more detailed
+ information for CodeView records.
+- The Wine Debugger (winedbg) supports debugging a 32-bit target process from
+ the 64-bit debugger.
+*** Development tools
+- The IDL compiler (widl) supports loading type libraries embedded inside PE
+- The IDL compiler searches for type libraries in the per-platform library
+ search path instead of the include search path.
+- The IDL compiler supports many more WinRT-specific constructs and attributes.
+*** Build infrastructure
+- All libraries are installed in architecture-specific directories, using names
+ like 'i386-windows' for PE binaries, and 'x86_64-unix' for the Unix
+ libraries. This enables supporting multiple architectures with a single Wine
+ installation, as well as Winelib cross-compilation.
+- Static (.a) import libraries are used on all platforms. Wine no longer
+ generates the old-style .def libraries, though they are still supported for
+ backwards compatibility.
+- The option to prefer a native DLL by default is specified through a flag in
+ the PE header, which can be set by passing the '--prefer-native option' to
+ winebuild. The previous method, handling DLL_WINE_PREATTACH in DllMain, is no
+ longer supported.
+- The Dwarf debugging format is supported up to version 4. The Wine libraries
+ are built with version 4 by default.
+- Unique build identifiers can be stored in the binaries by passing the
+ '--enable-build-id' option to configure.
+- The Clang compiler in MSVC mode is supported.
+- The Shell Folder naming is converted to use the Windows Vista+ scheme; for
+ instance 'My Documents' becomes 'Documents', and most things are saved under
+ the 'AppData' directory.
+- The OpenCL library wrapper supports versions up to OpenCL 1.2.
+- Paper forms are supported in various sizes in the WinSpool printer driver.
+- There is initial support for MSDASQL, a Microsoft OLE DB provider for ODBC
+*** External dependencies
+- The following libraries are bundled in the source tree and built as PE
+ libraries, so they are no longer required at the Unix level:
+ - Faudio
+ - GSM
+ - LCMS2
+ - LibJPEG
+ - LibJXR
+ - LibMPG123
+ - LibPng
+ - LibTiff
+ - LibXml2
+ - LibXslt
+ - Zlib
+- The libraries above can still be imported as external libraries instead of
+ using the bundled copy, provided that they are available in PE format. This
+ behavior is requested with the '--with-system-dllpath' configure option,
+ which specifies the Unix search path for such dependencies.
+- Direct3D 12 support now requires version 1.2 or later of the vkd3d library.
+ Version 1.2 or later of the related vkd3d-shader library was already required
+ by Wine 6.0 for translation of Direct3D shader to SPIR-V in the Vulkan
+ renderer for the Direct3D implementation.
+- The deprecated HAL library is no longer supported or needed.
+- The macOS QuickTime library is no longer used.
-Changes since 7.0-rc5:
-Alex Henrie (3):
- d3d10/tests: Increase size of array expected_i_a in test_scalar_array_methods (cppcheck).
- gdi32/tests: Mark a GetTextExtentPointW test as broken on Windows 10.
- gdi32/tests: Drop font test workarounds for Windows <= 2000.
-Alexandre Julliard (2):
- maintainers: Remove Ken Thomases.
- include: Move the ITextRange2 definition to avoid an undefined reference.
-Andrew Eikum (2):
- winecoreaudio.drv: Fix memory leak.
- winepulse.drv: Fix memory leak.
-Andrey Gusev (2):
- wined3d: Handle WINED3DSPSM_NONE in shader_sm4_read_param().
- dxgi: Handle WINED3D_BIND_UNORDERED_ACCESS in dxgi_usage_from_wined3d_bind_flags().
-André Zwing (5):
- kernel32: Fix GetCompressedFileSize[AW] spec file entries.
- rpcrt4: Fix TowerConstruct spec file entry.
- wintrust: Fix WintrustAddDefaultForUsage spec file entry.
- shlwapi: Report keyName as string.
- d3d10: Fix D3D10CompileEffectFromMemory spec file entry.
-Dmitry Timoshkov (1):
- ntdll: Use full registry key name in NtQueryLicenseValue.
-Hans Leidekker (1):
- kerberos: Avoid a crash on NULL expiry parameter.
-Huw D. M. Davies (2):
- commdlg: Pass the 16-bit structure to the WM_INITDIALOG hook.
- user: Copy back the 16-bit MDICREATESTRUCT.
-Julian Rüger (1):
- po: Update German translation.
-Nikolay Sivov (3):
- d3d11: Always initialize out view pointer in CreateRenderTargetView().
- include: Add WbemErrorEnum error codes.
- mfplat: Add MECapture* events to tracing.
-Paul Gofman (1):
- crypt32: Increase maximum object encode length.
-Rémi Bernon (5):
- dinput/tests: Check that InputReportByteLength bytes are read.
- user32: Increase the default message buffer size.
- server: Return error when hardware message is too large.
- hidclass.sys: Always read InputReportByteLength bytes when not polling.
- dinput: Reset button state for each report read.
-Stefan Brüns (7):
- d2d1: Silence SetSegmentFlags() FIXME when setting default value.
- d2d1/tests: Add a test for single quadratic Bézier segment.
- d2d1/tests: Test coincident last/first vertex for both OPEN and CLOSED.
- d2d1: Refactor outline generation as preparation for the new TYPE_END vertex type.
- d2d1: Use the TYPE_END vertex type when last/first vertices coincide.
- d2d1: Remove extraneous checks for last vertex.
- d2d1/tests: Avoid out-of-bounds access when comparing segments.
-Stefan Dösinger (7):
- ddraw/tests: Reduce precision in test_filling_convention.
- d3d8/tests: Reduce precision in test_filling_convention.
- d3d9/tests: Use a HW generation dependent offset for the filling convetion test.
- d3d11/tests: Run test_instanced_draw separately.
- d3d10core/tests: Run test_instanced_draw() separately.
- d3d10core/tests: Run test_generate_mips separately.
- d3d11/tests: Run test_generate_mips separately.
-Zebediah Figura (5):
- opencl: Use types with consistent alignment for unixlib params structures.
- wined3d: Do not iterate over multiple layers when clearing 3D UAVs.
- d3d11/tests: Test UAV clears of 3D view with nontrivial depth.
- ws2_32: Cast timeval fields to LONGLONG before multiplying.
- ws2_32: Cast the WSAPoll() timeout to LONGLONG before multiplying.
-Zhiyi Zhang (2):
- user32/tests: Avoid fix blurry apps popup in test_DisplayConfigSetDeviceInfo().
- uxtheme/tests: Avoid fix blurry apps popup in test_GetThemePartSize().
-Ziqing Hui (1):
- wininet/tests: Add more tests for InternetTimeToSystemTime().
diff --git a/VERSION b/VERSION
index 681f0c6e4de..52a9857d2cb 100644
@@ -1 +1 @@
-Wine version 7.0-rc6
+Wine version 7.0
diff --git a/configure b/configure
index 9ec1f6fd549..dcce2e8644e 100755
@@ -1,6 +1,6 @@
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for Wine 7.0-rc6.
+# Generated by GNU Autoconf 2.71 for Wine 7.0.
# Report bugs to
@@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
@@ -2574,7 +2574,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
-\`configure' configures Wine 7.0-rc6 to adapt to many kinds of systems.
+\`configure' configures Wine 7.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2644,7 +2644,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Wine 7.0-rc6:";;
+ short | recursive ) echo "Configuration of Wine 7.0:";;
@@ -2914,7 +2914,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
-Wine configure 7.0-rc6
+Wine configure 7.0
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -3398,7 +3398,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Wine $as_me 7.0-rc6, which was
+It was created by Wine $as_me 7.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
@@ -23365,7 +23365,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
-This file was extended by Wine $as_me 7.0-rc6, which was
+This file was extended by Wine $as_me 7.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23429,7 +23429,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-Wine config.status 7.0-rc6
+Wine config.status 7.0
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
c7c729c0db7 Release 7.0.
ANNOUNCE | 558 ++++++++++++++++++++++++++++++++++++++++++++++----------------
VERSION | 2 +-
configure | 18 +-
3 files changed, 427 insertions(+), 151 deletions(-)