======================
Added
-----
* Added ``mtu_size`` property for clients.
* Added WinRT backend.
* Added ``BleakScanner.discovered_devices`` property.
* Added an event to await when stopping scanners in WinRT and pythonnet backends. Fixes 556.
* Added ``BleakScanner.find_device_by_filter`` static method.
* Added ``scanner_byname.py`` example.
* Added optional command line argument to specify device to all applicable examples.
Changed
-------
* Added ``Programming Language :: Python :: 3.9`` classifier in ``setup.py``.
* Deprecated ``BleakScanner.get_discovered_devices()`` async method.
* Added capability to handle async functions as detection callbacks in ``BleakScanner``.
* Added error description in addition to error name when ``BleakDBusError`` is converted to string.
* Change typing of data parameter in write methods to ``Union[bytes, bytearray, memoryview]``.
* Improved type hints in CoreBluetooth backend.
* Use delegate callbacks for ``get_rssi()`` on CoreBluetooth backend.
* Use ``objc.python_method`` where possible in ``PeripheralDelegate`` class.
* Using ObjC key-value observer to wait for ``BleakScanner.start()`` and ``stop()``
in CoreBluetooth backend.
Fixed
-----
* Fixed ``KeyError`` when trying to connect to ``BLEDevice`` from advertising
data callback on macOS. Fixes 448.
* Handling of undetected devices in ``connect_by_bledevice.py`` example. Fixes 487.
* Added ``Optional`` typehint for ``BleakScanner.find_device_by_address``.
* Fixed ``linux_autodoc_mock_import`` in ``docs/conf.py``.
* Minor fix for disconnection event handling in BlueZ backend. Fixes 491.
* Corrections for the Philips Hue lamp example. Merged 505.
* Fixed ``BleakClientBlueZDBus.pair()`` method always returning ``True``. Fixes 503.
* Fixed waiting for notification start/stop to complete in CoreBluetooth backend.
* Fixed write without response on BlueZ < 5.51.
* Fixed error propagation for CoreBluetooth events.
* Fixed failed import on CI server when BlueZ is not installed.
* Fixed notification ``value`` should be ``bytearray`` on CoreBluetooth. Fixes 560.
* Fixed crash when cancelling connection when Python runtime shuts down on
CoreBluetooth backend. Fixes 538.
* Fixed connecting to multiple devices using a single ``BleakScanner`` on
CoreBluetooth backend.
* Fixed deadlock in CoreBluetooth backend when device disconnects while
callbacks are pending. Fixes 535.
* Fixed deadlock when using more than one service, characteristic or descriptor
with the same UUID on CoreBluetooth backend.
* Fixed exception raised when calling ``BleakScanner.stop()`` when already
stopped in CoreBluetooth backend.