ver 5.42:
	Fix issue with PBAP call logs from different folders.
	Fix issue with OBEX over L2CAP and PowerPC architecture.
	Fix issue with BR/EDR over LE selection during discovery.
	Fix issue with selection of bearer after bonding.
	Fix issue with handling socket recv() return values.
	Fix issue with setting connecting service state.
	Fix issue with setting correct ATT default MTU value.
	Fix issue with not setting AVRCP player identifier.
	Fix issue with handling AVRCP browsable player.
	Fix issue with addressing AVRCP player changes.
	Add support for new management tracing capability.
	Mark GATT D-Bus APIs as stable interfaces.

ver 5.41:
	Fix issue with service state changes handling.
	Fix issue with AVRCP and no available player.
	Fix issue with handling discovery filters.
	Fix issue with handling temporary addresses.
	Fix issue with GATT MTU size and BR/EDR links.
	Fix issue with OBEX and creating directories.

ver 5.40:
	Fix issue with not storing GATT attributes.
	Fix issue with optional GATT notifications.
	Fix issue with reading GATT extended properties.
	Fix issue with GATT device name properties.
	Fix issue with previously paired devices.
	Fix issue with handling device removal.
	Fix issue with profile connection handling.
	Add support for TTY monitor protocol.

ver 5.39:
	Fix issue with missing uHID kernel support.
	Fix issue with GATT reliable write handling.
	Fix issue with GATT service changed handling.
	Fix issue with GATT execute write handling.
	Fix issue with AVRCP player event handling.
	Fix issue with AVRCP controller handling.
	Fix issue with AVDTP connection handling.
	Fix issue with AVDTP error handling.

ver 5.38:
	Fix issue with stack overflow and UUID handling.
	Fix issue with ObjectManager interface and GATT.
	Fix issue with GATT database and error handling.
	Fix issue with GATT client notifications.
	Fix issue with GATT object ordering.
	Fix issue with GATT default MTU exchange.
	Fix issue with device attribute clearing.
	Fix issue with AVRCP capabilities request.

ver 5.37:
	Fix issue with registering external profiles.
	Fix issue with connecting external profiles.
	Fix issue with GATT service changed handling.
	Fix issue with not emitting GattServices update.
	Convert to unified HID over GATT profile support.
	Convert to KeyboardDisplay as default IO capability.
	Install btattach utility by default.

ver 5.36:
	Fix issue with PBAP headers for size query.
	Fix issue with AVRCP current player handling.
	Fix issue with device information handling.
	Fix issue with device disconnect handling.
	Fix issue with duplicate connect handling.
	Fix issue with attribute claiming for drivers.

ver 5.35:
	Fix issue with connected devices after discovery.
	Fix issue with profile support and LTK loading.
	Fix issue with AVRCP events for volume control.
	Fix issue with OBEX session owner handling.
	Fix issue with HID over GATT setup failures.
	Fix issue with GATT notification registration.
	Fix issue with GATT cache validation feature.
	Add support for persistent GATT database.
	Add support for controller enabling option.

ver 5.34:
	Fix issue with GATT profiles and auto-connect.
	Fix issue with missing GoepL2CapPsm SDP data.
	Fix issue with suspending AVDTP endpoints.
	Fix issue with audio service state on disconnect.
	Add support for AVRCP Set Addressed Player feature.
	Add support for AVRCP Get Folder Items feature.
	Add support for Android 5.1 HFP WBS callbacks.

ver 5.33:
	Fix issue with memory leak in GATT database.
	Fix issue with AVDTP set configuration handling.
	Fix issue with AVDTP discover procedure.
	Fix issue with not emitting Paired property.

ver 5.32:
	Fix issue with OPP GET request path handling.
	Fix issue with ATT information request errors.
	Fix issue with advertising instance numbers.
	Fix issue with overwriting SDP record cache.
	Fix issue with new connections during disconnect.
	Add support for GATT security auto-elevation.

ver 5.31:
	Fix issue with crash in networking interface.
	Fix issue with crash when creating endless GATT loops.
	Fix issue with memory leak when connecting services.
	Fix issue with memory leak creating new D-Bus proxy.
	Fix issue with profile connections from remote devices.
	Fix issue with GATT over BR/EDR and MTU notification.
	Fix issue with HID and dual mode remote devices.
	Fix issue with handling A2DP vendor codec setup.
	Fix issue with AVRCP and syncing player state.
	Fix issue with GATT secondary discovery handling.
	Fix issue with wrong characteristic allocation.
	Add support for handling BNEP setup response.
	Add support for setting GATT database security flags.
	Add support for setting discovery filters interface.
	Add support for user controlled advertising interface.
	Update Android qualification documentation to PTS 6.1 release.

ver 5.30:
	Fix compilation error in C++ due to inline function.
	Fix issue with missing storage of device information.
	Fix issue with GATT client and gaps in service handles.
	Fix issue with AVDTP discovery callback crashing.
	Fix issue with AVCTP channel handling in case of conflicts.
	Fix issue with AVRCP target and get capabilities command.
	Add experimental support for LE advertising manager API.
	Add support for Android 5.1 GATT MTU exchange API.

ver 5.29:
	Fix issue with AVCTP initial key repeat timeout.
	Fix issue with Android application disconnect handling.
	Fix issue with Android support and service notifications.
	Fix issue with Android support and Exchange MTU Request.
	Fix issue with Android HFP support and AT+CMER handling.
	Fix issue with Android HFP support and SLC setup.
	Fix issue with Android HFP support and call hold status.
	Fix issue with Android HFP support and indicator handling.
	Fix issue with Android HFP support and SCO/eSCO disconnection.
	Fix issue with Android HID over GATT support and battery service.
	Fix issue with GATT sending Exchange MTU Request for BR/EDR.
	Fix issue with GATT notification support without CCC.
	Fix issue with GATT object life-time after disconnects.
	Fix issue with GATT notification handling API.
	Add experimental support for GATT client D-Bus API.
	Add experimental support for GATT server D-Bus API.
	Add support for Multi Profile Specification.
	Update Android qualification documentation to PTS 6.0 release.

ver 5.28:
	Fix issue with GATT device discovery and probing.
	Fix issue with bearer selection for dual-mode devices.
	Fix issue with device removal while connected.
	Fix issue with device name setting from inquiry response.
	Fix issue with missing termination of name characteristic.
	Fix issue with UTF-8 length handling for device name.
	Fix issue with AVCTP key auto release handling.
	Fix issue with AVCTP key press repetition handling.
	Fix issue with payload sizes and GATT notifications.
	Fix issue with memory corruption and GATT notifications.
	Add support for HID proxy switching and CSR 8510 A10 devices.
	Add support for Broadcom hex2hcd conversion utility.

ver 5.27:
	Fix issue with endian handling and management interface.
	Fix issue with pending GATT operations when disconnecting.
	Fix issue with 128-bit UUID conversions for HID over GATT.
	Add support for Android 5.0 SELinux policies.

ver 5.26:
	Fix issue with handling A2DP XCASE connection state.
	Fix issue with crash and A2DP configuration failures.
	Fix issue with crash during OBEX session shutdown.
	Add support for version 1.2 of Phonebook Access Profile.
	Add support for HID over GATT get and set report handling.
	Add support for Low Energy Secure Connections feature.
	Add support for Bluetooth 4.2 commands and events.
	Add support for Android 5.0 Bluetooth features.

ver 5.25:
	Fix issue with SCO connection after codec negotiation.
	Fix issue with GATT and secondary service discovery.
	Fix issue with GATT write descriptor callback.
	Fix issue with MAP supported features bits.
	Add support for MAP local time and timezone offset.
	Add support for PBAP speed-dial and favorites folders.
	Add support for PBAP speed-dial and identifier filters.
	Add support for controller mode configuration option.
	Add initial support for Android Lollipop features.

ver 5.24:
	Fix issue with storing of connection parameters.
	Add support for Phonebook Access Profile 1.2 features.
	Add support for Message Access Profile 1.2 event reports.
	Add support for Android Bluetooth configuration options.

ver 5.23:
	Fix issue with concurrent authorization requests.
	Fix issue with HID report identifier mismatch.
	Fix issue with crash when receiving uHID events.
	Fix issue with crash and OBEX disconnect handling.
	Fix issue with OBEX client transfers and suspend.
	Fix issue with parsing of MAP application parameters.
	Fix issue with devices rejecting AVRCP GetCapabilities.
	Add support for kernel whitelist and Android Bluetooth.

ver 5.22:
	Fix issue with UHID_OUTPUT events mapping.
	Fix issue with UHID_FEATURE events handling.
	Fix issue with UINT32_MAX overflow and AVRCP.
	Fix issue when dirent type DT_UNKNOWN is returned.
	Add support for kernel whitelist filtering feature.
	Add support for Android Bluetooth GATT over BR/EDR.

ver 5.21:
	Fix issue with SDP requests and wrong PDU size.
	Fix issue with handling passive scanning triggers.
	Add support for storing and loading connection parameters.
	Add support for kernel background auto-connection feature.
	Add support for Android Bluetooth Scan Parameters feature.
	Add support for Android Bluetooth Device Information feature.
	Add support for Android Bluetooth Health Device interface.

ver 5.20:
	Fix issue with LED handling of PS3 controllers.
	Add support for Android Bluetooth GATT server interface.
	Add support for Android Bluetooth HID over GATT feature.
	Add support for Android Bluetooth multi-profile feature.
	Add support for Android Bluetooth aptX audio integration.

	Note: aptX codec not included

ver 5.19:
	Fix issue with OBEX Put-Delete and Create-Empty methods.
	Fix issue with AVRCP browsable/searchable player properties.
	Fix issue with handling multiple default agents.
	Fix issue with handling unpair event per bearer.
	Fix issue with HID over GATT report ID presence.
	Add support for HID protocol handling in userspace.
	Add support for Bluetooth reconnection policy framework.
	Add support for Android Bluetooth SCO over HCI transport.
	Add support for Android Bluetooth audio quality control.
	Add support for Android Bluetooth Low Energy only mode.

ver 5.18:
	Fix issue with identifying LE single mode devices.
	Fix issue with L2CAP and RFCOMM peer address lookup.
	Add support for handling OBEX authentication procedure.
	Add support for Android Bluetooth GATT client interface.

ver 5.17:
	Fix issue with not resetting OBEX SRM setup.
	Fix issue with BR/EDR devices and auto-connect list.
	Fix issue with bonding complete detection as peripheral.
	Fix issue with not updating bearer timestamp of connections.
	Fix issue with paired property for multiple bearers.
	Add support for Android Bluetooth Handsfree interface.
	Add support for Android Bluetooth Wideband speech.

ver 5.16:
	Fix issue with HID over GATT physical location.
	Fix issue with HID over GATT unique identifier.
	Fix issue with missing paired property notification.
	Fix issue with endianess of long term key storage.
	Add support for storing signature resolving keys.
	Add support for Android Bluetooth AVRCP interface.

ver 5.15:
	Fix issue with LE enabling and background scanning.
	Fix issue with HID over GATT input device name.
	Fix issue with storage of slave long term keys.
	Add support for handling identity resolving keys.
	Add support for Android Bluetooth A2DP interface.
	Add support for Android Bluetooth audio interface.

ver 5.14:
	Fix issue with marking PS3 controllers as trusted.
	Fix issue with authorization of PS3 controllers.
	Add support for DualShock 4 controller detection.
	Add support for legacy pairing emulation.
	Add support for secure simple pairing emulation.
	Add support for automated pairing testing.
	Add support for RFCOMM protocol testing.
	Add support for HCI controller testing.

ver 5.13:
	Fix issue with PS3 controller detection.
	Add support for data transfers to L2CAP testing tool.
	Add support for delay reporting to AVDTP testing tool.
	Add support for Android Bluetooth Core interface.
	Add support for Android Bluetooth Socket interface.
	Add support for Android Bluetooth HID Host interface.
	Add support for Android Bluetooth PAN interface.

ver 5.12:
	Fix issue with missing reply to DisconnectProfile.
	Fix issue with icon property and class of device changes.
	Fix issue with HID devices when SDP record is not available.
	Fix issue with handling auto-pairing of printers.
	Fix issue with agent authorization handling.
	Add support for PS3 controller setup and pairing.
	Add support for LE L2CAP CoC test capabilities.
	Add support for AVDTP qualification test cases.
	Add support for SMP cryptographic test cases.

ver 5.11:
	Fix issue with connection attempt when not powered.
	Fix issue with assigning player to AVRCP target role.
	Fix issue with OBEX default cache directory.
	Fix issue with SDP search error handling.
	Fix issue with processing of SDP records.
	Fix issue with HID to HCI switching utility.
	Fix issue with mgmt end-to-end testing tool.
	Fix issue with L2CAP end-to-end testing tool.
	Add support for SMP end-to-end testing tool.
	Add support for more Wii controllers.

ver 5.10:
	Fix issue with discoverable timeout handling.
	Fix issue with MAP messages and record version.
	Fix issue with MAP messages and status events.
	Fix issue with MAP messages and relative folders.
	Fix issue with MAP messages and type property signals.
	Fix issue with transfer size for OBEX GET operations.
	Fix issue with AVRCP service class identifier.
	Fix issue with AVRCP tracking seeked signal.
	Add support for OBEX command line client.

ver 5.9:
	Fix issue with network service and adapter removal.
	Fix issue with misleading OBEX error messages.
	Fix issue with OBEX transport reference handling.
	Fix issue with memory leak with MAP event handler.
	Fix issue with missing MAP property changed signal.
	Fix issue with message type property values.
	Fix issue with empty UUID list for devices.
	Fix issue with profile agent cancel method.
	Remove dependency on USB library.

ver 5.8:
	Fix issue with missing OBEX session properties.
	Fix issue with missing SDP service refresh.
	Fix issue with SDP attribute range check.
	Fix issue with priority for SDP transactions.
	Fix issue with service discovery after pairing.
	Fix issue with race condition in service list.
	Fix issue with input service state transition.
	Fix issue with default authorization for profiles.
	Fix issue with AVRCP browsing channel connections.
	Add support for AVRCP role agnostic sessions.

ver 5.7:
	Fix issue with missing UUID discovery during pairing.
	Fix issue with broken patch for SDP range check handling.
	Fix issue with AVRCP usage of UID=0 for paused/stopped.
	Add support MAP notification dispatching.

ver 5.6:
	Fix issue with incoming connections without SDP record.
	Fix issue with canceling ongoing device connections.
	Fix issue with handling failed connection attempts.
	Fix issue with pending resume during A2DP open failures.
	Fix issue with registering AVRCP unsupported notification.
	Fix issue with listing available AVRCP target settings.
	Fix issue with missing error for OBEX SetPath commands.
	Fix issue with missing OBEX session command queue.
	Fix issue with retrieving multiple MAP event reports.
	Add support for command line player utility.

ver 5.5:
	Fix issue with race condition between SDP and properties.
	Fix issue with handling storage of private device addresses.
	Fix issue with NFC out-of-band pairing and power states.
	Fix issue with short name during device update handling.
	Fix issue with handling AVRCP without A2DP being present.
	Add support for handling AVRCP pass-through operations.
	Add support for automatically reconnecting HID devices.
	Add support for automatically pairing of devices.

ver 5.4:
	Fix issue with invalid memory access and SDP service search.
	Add support for available player changed event for controller.
	Add support for UIDs changed event for AVRCP controller.
	Add support for mandatory AVRCP pass-through operations.
	Add support for Message Notification Service (MNS) server.
	Add support for agent methods within command line client.

ver 5.3:
	Fix issue with registering invalid profiles.
	Fix issue with inconsistent A2DP transport state.
	Fix issue with A2DP resume while in configured state.
	Fix issue with buffer overflow when processing SDP response.
	Fix issue with missing range check for SDP attribute response.
	Fix issue with missing validation of SDP data elements.
	Fix issue with missing fallback to static hostname.
	Fix issue with default adapter assignment.

ver 5.2:
	Fix issue with connection handling for Low Energy.
	Fix issue with broken device discovery handling.
	Fix issue with invalid memory access within A2DP.
	Fix issue with handling empty path name of SetPath.
	Fix issue with handling Message Access Profile filters.
	Fix issue with handling network service unregistration.
	Fix issue with not handling bogus device pairing results.
	Fix issue with initial service discovery and profile manager.
	Add support for AVRCP volume notifications.
	Add support for AVRCP browsing commands.

ver 5.1:
	Fix issue with crash when removing OBEX session.
	Fix issue with HID device disconnected from kernel.
	Fix issue with buffer overflow when parsing HID SDP record.
	Fix issue with SDP_TEXT_STR16 and SDP_URL_STR16 parsing.
	Add support for integration with systemd's hostname daemon.
	Add support for separate adapter alias property.
	Add support for adapter and device modalias properties.
	Add support for official BlueZ device information.
	Add support for asynchronous management interface handling.
	Add tool for testing management interface compliance.
	Add tool for testing SDP qualification requirements.
	Add tool for testing various EIR and AD data records.

ver 5.0:
	Introduce D-Bus Properties and ObjectManager interfaces.
	Add support for generic profile interface.
	Add support for global agent interface.
	Add support for integrated OBEX daemon.
	Add support for integrated hcidump utility.
	Add support for Bluetooth tracing and monitor utility.
	Add support for Bluetooth command line client utility.
	Remove support for Handsfree gateway handling.
	Remove support for GStreamer A2DP and SBC elements.
	Disable default installation of Bluetooth library.

ver 4.101:
	Fix issue with missing BlueZ service file.
	Fix issue with aborting A2DP setup during AVDTP start.
	Fix issue with handling of multiple A2DP indication.
	Fix issue with handling AVDTP abort with invalid SEID.
	Fix issue with rejecting AVDTP abort commands.
	Add support for handling AVDTP command collision.

ver 4.100:
	Fix issue with crashing when SCO connection fails.
	Fix issue with HFP gateway failing on first GSM connection.
	Fix issue with AVRCP and handling of vendor commands.
	Fix issue with handling AVRCP subunit info command.
	Fix issue with missing capability for AVRCP track reached end.
	Fix issue with AVDTP signaling and GStreamer SBC NULL check.
	Fix issue with AVDTP Reconfigure Reject message.
	Fix issue with incorrect EIR length parsing.
	Fix issue with SDP disconnect for HIDSDPDisable.
	Fix issue with SDP interoperability with Mac OS X Lion.
	Fix issue with reverse SDP discovery with some devices.
	Fix issue with discovering state during power off operation.
	Add support for AVRCP Volume Changed notifications.
	Add support for AVRCP Set Absolute Volume handling.
	Add support for display legacy PIN code agent method.
	Add support for multiple media transports per endpoint.
	Add support for discovering device information characteristics.
	Add support for vendor source for Device ID setting.
	Add support for immediate alert server.
	Add support for link loss server.

	Notes:
	This version requires D-Bus 1.4 or later.
	This version requires GLib 2.28 or later.

ver 4.99:
	Fix issue with missing retries for BNEP connection setup.
	Fix issue with not showing name if first EIR has no details.
	Fix issue with running SDP discovery for LE devices.
	Add support for GATT using 128-bit Bluetooth UUIDs.
	Add support for retrieving key size information.
	Add support for storing Long Term Keys.
	Add support for Proximity Reporter API.
	Add support for KeyboardDisplay IO capability.
	Add support for version 1.0 of management API.
	Add support for monitoring interface.

ver 4.98:
	Fix issue with adapter list upon initialization failure.
	Fix issue with missing legacy property for Low Energy.
	Fix issue with missing EIR information handling.
	Fix issue with device address type tracking.
	Fix issue with alert level characteristic.
	Fix issue with headset shutdown handling.
	Fix issue with Wiimote address handling.
	Add support for advanced l2test options.
	Add support for attribute protocol and multiple adapters.

ver 4.97:
	Update support for proximity profile.
	Fix issue with SBC audio decoding quality.
	Fix multiple issues with HFP support.
	Fix multiple issues with A2DP support.
	Fix multiple issues with AVDTP support.
	Fix multiple issues with AVRCP support.
	Add support for AVRCP meta-data transfer.
	Add support for Bluetooth based thermometers.

ver 4.96:
	Fix issue with race condition in AVDTP stream start.
	Fix issue with global adapter offline switching.
	Fix issue with pairing and No Bonding devices.
	Add support for Nintendo Wii Remote pairing.

ver 4.95:
	Fix issue with AVCTP replies with invalid PID.
	Fix issue with AVRCP and unknown packet types.
	Fix issue with AVRCP not using NOT_IMPLEMENTED correctly.
	Fix issue with AVDTP discovery if all endpoints are in use.
	Fix issue with invalid memory writes and media support.
	Fix issue with not removing device alias and unbonding.
	Fix issue with device disconnects and offline mode handling.
	Add support for setting adapter name based on machine-info.
	Add support for systemd service configuration.

ver 4.94:
	Fix issue with invalid read of memory in various modules.
	Fix issue with buffer overflow when sending AVDTP commands.
	Fix issue with response to vendor dependent AVRCP commands.
	Fix issue with headset when not able to reply with ERROR.
	Fix issue with crash when creating a device from storage.
	Fix issue with handling non UTF-8 devices names.
	Add support for improved discovery procedure.

ver 4.93:
	Fix issue with property type and Health Main channel.
	Fix issue with crash when removing devices.
	Add support for hid2hci and udev integration.

ver 4.92:
	Fix issue with handling of A2DP suspend response.
	Fix issue with crashing when acquiring A2DP stream.
	Fix issue with missing check for valid SCO before shutdown.
	Fix issue with waiting for POLLERR when disconnecting SCO.
	Fix issue with disconnect after primary service discovery.
	Fix issue with attribute interface registration.
	Add support for primary services over BR/EDR.
	Add support for flushable packets of A2DP media.

ver 4.91:
	Fix issue with LMP version string and hciconfig.
	Fix issue with missing discovery signal when scanning.
	Fix issue with wrong state and canceling name resolving.
	Fix issue with missing check during adapter initialization.
	Fix issue with missing protocol not supported error and A2DP.
	Fix issue with crash during driver unregistering and A2DP.
	Fix issue with crash when receiving AVDTP close command.
	Fix issue with remote SEP handling when A2DP codec changes.
	Fix issue with SCO hangup handling and state changes.
	Fix issue with security level and MCAP instances.
	Fix issue with memory leak and HDP data channels.
	Add support for discover characteristics by UUID to gatttool.
	Add initial support for Out-of-Band association model.
	Add initial support for SIM Access Profile.

ver 4.90:
	Fix issue with setting of global mode property.
	Fix issue with handling of RequestSession responses.
	Fix issue with TP_BNEP_CTRL_BV_01_C qualification test.
	Fix issue with too short AVDTP request timeout.
	Add support for SIM Access Profile manager.
	Add support for new UUID utility functions.
	Add support for attribute server notifications.
	Add support for client characteristic configuration.
	Update support for interactive GATT utility.

ver 4.89:
	Fix issue with name resolving when discovery is suspended.
	Fix issue with parsing flags of advertising report.
	Fix issue with SEP handling if interface is disabled.
	Fix issue with device object creation on disconnect event.
	Fix issue with indicators whenever the driver is initialized.
	Fix issue with call indicator when parsing call info reply.
	Fix issue with crash and allowed GATT MTU was too large.
	Add support for SDP record of Primary GATT services.
	Add support for interactive mode for GATT utility.

ver 4.88:
	Fix issue with HID channel reference count handling.
	Fix issue with daemon exit on badly formatted AT+VTS.
	Fix issue with crash while parsing of endpoint properties.
	Fix issue with possible crash on AVDTP Suspend request timeout.
	Fix issue with stopping inquiry before adapter is initialized.
	Fix issue with creating device object when connection fails.
	Fix issue with sending HCIDEVUP when adapter is already up.
	Fix issue with handling bonding IO channel closing.
	Fix agent cancellation in security mode 3 situations.
	Update pairing code to support management interface.

ver 4.87:
	Fix issue with initialization when adapter is already up.
	Fix issue with attribute server MTU and incoming connections.
	Fix issue with duplicate characteristics after discovery.

ver 4.86:
	Revert wrong fix for SDP PDU size error response.
	Fix various memory leaks in A2DP and AVDTP support.
	Add Routing property to MediaTransport interface
	Add proper tracking mechanism to NREC status.
	Add READ_BLOB_REQUEST support to attribute server.

ver 4.85:
	Fix issue with event mask setting for older adapters.
	Fix issue with device creation and pairing failures.
	Add support for telephony support via oFono.
	Add support for characteristic security level.
	Update support for service registration.

ver 4.84:
	Fix issue with wrong parameters and device found signals.
	Fix issue with leaking EIR data if RSSI does not change.
	Fix issue with adapter initialization state.
	Fix issue with closing of SDP server sockets.

ver 4.83:
	Fix issue with already connected HFP/HSP endpoints.
	Fix missing reply when create device is canceled.
	Fix memory leak within the attribute server.
	Fix memory leak with unused extended inquiry name.
	Fix setting paired state when device->authr is false.
	Fix clearing authentication request for renewed keys.
	Add support for storing link keys in runtime memory.
	Update support for primary service discovery.

ver 4.82:
	Fix crash with mmap of files with multiples of page size.
	Fix HFP response and hold (AT+BTRH) command response.
	Fix device creation error response when powered off.
	Fix device removal when connecting/browsing fails.
	Add initial attribute permission implementation.
	Add AVDTP SRC stream send buffer size verification.
	Add support for setting link policy based on features.

ver 4.81:
	Fix issue with telephony driver initialization.
	Fix issue with adapter services list initialization.
	Fix crash after simultaneous authentication requests.
	Add support for primary service search on device creation.

ver 4.80:
	Fix legacy link key storing for some buggy adapters.
	Fix invalid memory access when EIR field length is zero.
	Fix adapter initialization to wait for kernel HCI commands.
	Fix initialization of adapters which are already up.
	Fix possible race condition when initializing adapters.
	Fix possible crashes when attempting to connect AVDTP.
	Fix not aborting sink stream configuration on disconnect.
	Fix not indicating disconnected state when connecting to AVDTP.
	Fix not dropping AVDTP session when canceling stream setup.
	Fix AVDTP abort not being send when the state is idle.
	Fix regression with Low Energy and interleave discovery.
	Add a new configuration option to disable Low Energy support.
	Add iwmmxt optimization for SBC for ARM PXA series CPUs.
	Update support for GATT Primary Service Discovery.
	Update MCAP and HDP support.

ver 4.79:
	Fix issue with adapter initialization race condition.
	Update new Bluetooth Management interface support.

ver 4.78:
	Fix various issues with AVDTP timer handling.
	Fix various issues with handling of mode changes.
	Fix issue with audio disconnect watch in connecting state.
	Fix issue with handling call waiting indicators in telephony.
	Fix issue with handling UUID parameter and RegisterEndpoint.
	Add initial support for Bluetooth Management interface.
	Add support for Application property to HealthChannel.

ver 4.77:
	Fix issue with device name and accessing already freed memory.
	Fix issue with handling CHLD=0 command for handsfree.
	Fix issue with manager properties and no adapters.
	Fix issue with properties and broken service records.
	Fix issue with A2DP playback and sample rate changes.
	Update MCAP and HDP support.

ver 4.76:
	Fix issue in telephony driver with hanging up held call.
	Fix issue in telephony driver with notifications when on hold.
	Fix issue with blocking on setconf confirmation callback.
	Fix issue with not always signaling new streams as sinks.
	Fix issue with errors in case of endpoint request timeout.
	Fix issue with HFP/HSP microphone and speaker gain values.
	Add source if the device attempt to configure local sink stream.
	Add PSM option for GATT/ATT over BR/EDR on gatttool.
	Add support for GATT/ATT Attribute Write Request.
	Update MCAP and HDP support.

ver 4.75:
	Fix use of uninitialized variable on legacy pairing.
	Fix mismatch of attribute protocol opcode.

ver 4.74:
	Fix regression for Legacy Pairing.
	Fix wrong PSM value for attribute protocol.
	Fix issue with RSSI field in advertising reports.
	Add support for Add BR/EDR and LE interleaved discovery.
	Add support for GATT write characteristic value option.
	Add support for specifying download address for AR300x.

ver 4.73:
	Fix problem with EIR data when setting the name.
	Fix reading local name from command complete event.
	Fix registering local endpoints with disabled socket interface.
	Add support for more HCI operations using ops infrastructure.
	Add support for GATT characteristic hierarchy.
	Add support for GATT indications.

ver 4.72:
	Fix memory leak while connecting BTIO channels.
	Fix crash with GStreamer plugin if SBC is not supported.
	Fix issue with GATT server stop sending notifications.
	Fix issue with GATT and dealing with the minimum MTU size.
	Fix issue with file descriptor leak in GATT client.
	Add support for UUID 128-bit handling in attribute client.
	Add support for encoders/decoders for MTU Exchange.
	Add support for the MTU Exchange procedure to the server.
	Add support for a per channel MTU to the ATT server.
	Add support for Characteristic interface.
	Add support for new Media API and framework.
	Add initial support for HDP plugin.

ver 4.71:
	Fix compilation when SBC support in not enabled.
	Fix crash with RequestSession and application disconnects.
	Fix memory leak and possible crash when removing audio device.
	Fix issue with closing stream of locked sep when reconfiguring.
	Fix issue where discovery could interfere with bonding.
	Fix issue with Connected status when PS3 BD remote connects.
	Fix issue with lifetime of fake input devices.
	Add support for compile time option of oui.txt path.
	Add support for printing IEEE1284 device ID for CUPS.
	Add plugin for setting adapter class via DMI.
	Add more features for attribute protocol and profile.
	Add initial support for MCAP.

ver 4.70:
	Fix incoming call indication handling when in WAITING state.
	Fix various SDP related qualification test case issues.
	Fix logic to write EIR when SDP records are changed.
	Fix UTF-8 validity check for remote names in EIR.
	Add support for UUID-128 extended inquiry response.
	Add service UUIDs from EIR to the DeviceFound signal.
	Add fast connectable feature for Handsfree profile.
	Add HCI command and event definitions for AMP support.
	Add firmware download support for Qualcommh devices.
	Add host level support for Atheros AR300x device.
	Add initial support of ATT and GATT for basic rate.

ver 4.69:
	Fix issue with calling g_option_context_free() twice.
	Fix inconsistencies with initial LE commands and events.
	Add support for telephony ClearLastNumber method.
	Add support for network server interface.

ver 4.68:
	Fix initialization of adapters in RAW mode.
	Fix signal strength for HFP in Maemo's telephony support.
	Add support for following the radio state via Maemo's MCE.
	Add initial set of LE commands and events definitions.
	Add mode option for L2CAP sockets to the BtIO API.

ver 4.67:
	Fix issue with authentication reply when bonding already completed.
	Fix issue with not canceling authentication when bonding fails.
	Fix issue with changed combination keys and temporary storage.
	Fix issue with sdp_get_supp_feat library function.
	Fix issue with missing unblock on device removal.
	Fix issue with not waiting for mode change completion.
	Add ARMv6 optimized version of analysis filter for SBC encoder.

ver 4.66:
	Fix regression with full debug enabling via SIGUSR2.
	Fix redundant speaker/microphone gains being sent.
	Fix not emitting PropertyChanged for SpeakerGain/MicrophoneGain.
	Fix issue with storage usage when a record is not found in memory.
	Fix issue with DiscoverServices not retrieving any records.
	Fix audio profile disconnection order to match whitepaper.
	Fix auto-accept confirmation when local agent has NoInputNoOutput.
	Fix remote just-works SSP when MITM protection is required.
	Fix performing dedicated bonding without MITM requirement.
	Add support for storing debug link keys in runtime memory.

ver 4.65:
	Fix issues with general bonding being default setting now.
	Fix driver removal upon device removal.
	Add new "Blocked" property to device objects.
	Add hciconfig support for blacklisting.
	Add support for dynamic debug feature.

ver 4.64:
	Fix invalid memory access in headset_get_nrec function.
	Fix issue with disconnect event on higher protocol layers.
	Fix issue with list parsing in sdp_set_supp_features function.
	Fix device object reference counting for SDP browse requests.
	Add missing memory checks whenever memory is allocated for SDP.
	Add support for exporting local services via D-Bus.
	Add more L2CAP Enhanced Retransmission test options.

ver 4.63:
	Fix avdtp_abort not canceling pending requests.
	Fix stale connection when abort gets rejected.

ver 4.62:
	Fix accidental symbol breakage with inquiry transmit power.
	Fix using invalid data from previous headset connection.
	Fix double free on AVDTP Abort response.
	Fix possible crash while verifying AVDTP version.
	Fix missing inuse flag when AVDTP stream is configured.
	Add support for Bluetooth controller types.

ver 4.61:
	Fix issues with Read Inquiry Response Transmit Power Level.
	Fix possible invalid read when removing a temporary device.
	Fix mode restoration when remember_powered is false.
	Fix conference call releasing in telephony-maemo.
	Fix segmentation fault with authorization during headset disconnects.
	Add support for handling unanswered AVDTP request on disconnect.
	Add support for handling Inquiry Response Transmit Power Level.
	Add support for caching of remote host features.
	Add preliminary voice dialing support for HSP.

ver 4.60:
	Fix voice mailbox number reading from SIM.
	Fix some races with D-Bus mainloop integration.
	Add helpers for D-Bus signal watches.

ver 4.59:
	Add values for Bluetooth 4.0 specification.
	Add SDP functions for HDP support.
	Add test scripts for input and audio.
	Fix missing close on BtIO create_io function.
	Fix sending incorrect AVDTP commands after timeout occurs.
	Fix timer removal when device disconnects unexpectedly.
	Fix Extended Inquiry Response record for Device ID.

ver 4.58:
	Fix crash when adapter agent exists during authentication.
	Fix CK-20W quirks for play and pause events.

ver 4.57:
	Fix unloading of drivers for uninitialized adapters.
	Fix debug message to use requested and not opened SEID.
	Fix codec selection for GStreamer plugin.
	Fix deleting of SDP records during service updates.
	Fix deleting of SDP records when a device is removed.
	Fix handling when the SDP record is modified on remote device.
	Fix potential buffer overflow by using snprintf instead of sprintf.
	Fix const declarations for some storage function parameters.

ver 4.56:
	Add missing values from Bluetooth 3.0 specification.
	Add proper tracking of device paired status.
	Fix tracking of devices without permanently stored link key.
	Fix issue with link key removal after connection failures.
	Fix legacy pairing information based on remote host features.
	Fix off-by-one issue with AVDTP capability parsing.
	Fix AVRCP, AVCTP, AVDTP, A2DP and HFP version numbers.
	Fix agent canceling before calling agent_destroy.
	Fix service record parsing with an empty UUID list.
	Fix various SDP related memory leaks.

ver 4.55:
	Add support for POSIX capabilities dropping.
	Add special quirk for the Nokia CK-20W car kit.
	Fix error code handling for AVDTP SetConfiguration response.
	Fix updating out of range list when RSSI hasn't changed.
	Fix various memory leaks and unnecessary error checks.

ver 4.54:
	Add introspection interface to output of introspection calls.
	Fix stream handling when media transport disconnects prematurely.
	Fix command timeout handling when there's no stream.
	Fix headset_suspend_stream behavior for invalid states
	Fix issue with AVDTP ABORTING state transition.
	Fix issue with AVDTP suspend while closing.

ver 4.53:
	Fix issue with telephony connection state notifications.
	Fix AVDTP stream leak for invalid media transport config.
	Fix audio connection authorization handling with timeouts.
	Fix race condition in authorizing audio connections.
	Fix device authorized setting for AVRCP-only connections.
	Fix duplicate attempts from device to connect signal channel.

ver 4.52:
	Add AVCTP support to test utility.
	Fix AVDTP Abort when transport closes before response.
	Fix authorization when the audio profiles are slow to connect.
	Fix potential AVDTP reference leaks.

ver 4.51:
	Add utility for basic AVDTP testing.
	Add support for configuring L2CAP FCS option.
	Fix discovery mode for CUPS 1.4.x and later.
	Fix global state tracking of audio service.
	Fix last issues with the new build system.

ver 4.50:
	Fix issue with missing manual pages in distribution.
	Fix issue with the configuration and state directories.
	Fix issue with creating include directory.
	Fix dependencies of include file generation.

ver 4.49:
	Add simple test program for basic GAP testing.
	Add support for confirmation requests to agent example.
	Add support for full non-recursive build.
	Add five millisecond delay for Simple Pairing auto-accept.
	Fix Class of Device setting when InitiallyPowered=false.

ver 4.48:
	Add library function for comparing UUID values.
	Add support for creating all plugins as builtins.
	Add support for async handling of service class changes.
	Add support for source interface to audio IPC.
	Fix device name settings when device is off or down.
	Fix issue with enabled SCO server when not necessary.
	Fix missing D-Bus access policy for CUPS backend.
	Fix discovery results of CUPS backend.
	Fix initialization handling of Maemo telephony.

ver 4.47:
	Add support for RFKILL unblock handling.
	Add support for serial proxy configurations.
	Add support for caching service class updates.
	Fix issues with updating SDP service records.
	Fix usage of limited discoverable mode.
	Remove deprecated methods and signals for AudioSource.

ver 4.46:
	Add support for A2DP sink role.
	Fix clearing svc_cache before the adapter is up.
	Fix various pointer after free usages.
	Fix various memory leaks.

ver 4.45:
	Fix UDEV_DATADIR fallback if pkg-config fails.
	Fix adapter cleanup and setup prototypes.
	Fix double-free with out-of-range devices.
	Fix inband ring setting to be per-headset.
	Fix handling of Maemo CSD startup.

ver 4.44:
	Add some missing manual pages.
	Fix missing number prefix when installing udev rules.
	Fix program prefix used in Bluetooth udev rules.
	Fix three-way calling indicator order.
	Fix downgrade/upgrade of callheld indicator.
	Fix +CIEV sending when indicator value changes.
	Fix signal handling for Maemo telephony driver.
	Fix parsing issues with messages from Maemo CSD.
	Fix issue with duplicate active calls.

ver 4.43:
	Add support for udev based on-demand startup.
	Fix verbose error reporting of CUPS backend.
	Fix various string length issues.
	Fix issues with Maemo telephony driver.
	Fix another device setup and temporary flag issue.
	Fix and update example agent implementation.

ver 4.42:
	Add TI WL1271 to Texas Instruments chip list.
	Add special udev mode to bluetoothd.
	Fix regression when there is no agent registered.
	Fix error return when bonding socket hang up.
	Fix SCO server socket for HFP handsfree role.
	Fix shutdown on SCO socket before closing.
	Fix shutdown on A2DP audio stream channel before closing.
	Fix issue with asserting on AVDTP reference count bugs.
	Fix authorization denied issue with certain headsets.
	Fix AVRCP UNITINFO and SUBUNIT INFO responses.
	Fix discovery cancel issues in case SDP discovery fails.

ver 4.41:
	Fix pairing even if the ACL gets dropped before successful SDP.
	Fix regression which caused device to be removed after pairing.
	Fix HSP record fetching when remote device doesn't support it.
	Fix SDP discovery canceling when clearing hs->pending.
	Fix headset never connecting on the first attempt.
	Fix headset state tracking if bt_search_service() fails.
	Fix maximum headset connection count check.
	Fix AVDTP Discover timeout handling.
	Fix also UI_SET_KEYBIT for the new pause and play key codes.

ver 4.40:
	Add telephony driver for oFono telephony stack.
	Add support for Dell specific HID proxy switching.
	Add support for running hid2hci from udev.
	Add mapping for AVRCP Play and Pause to dedicated key codes.
	Fix AVRCP keycodes to better match existing X keymap support.
	Fix various quoting issues within telephony support.
	Fix memory allocation issue when generating PDUs for SDP.
	Fix race condition on device removal.
	Fix non-cancelable issue with CreateDevice method.
	Fix non-working CancelDiscovery method call.

ver 4.39:
	Add workaround for dealing with unknown inquiry complete.
	Fix discovering when using software scheduler.
	Fix wrong NoInputNoOutput IO capability string.
	Fix race condition with agent during pairing.
	Fix agent cancellation for security mode 3 acceptor failure.
	Fix temporary flag removal when device creation fails.
	Fix hciattach to use ppoll instead of poll.
	Fix service class update when adapter is down.
	Fix service classes race condition during startup.
	Fix release of audio client before freeing the device.

ver 4.38:
	Add support for builtin plugins.
	Add framework for adapter operations.
	Add constants for Enhanced Retransmission modes.
	Fix HCI socket leak in device_remove_bonding.
	Fix various format string issues.
	Fix crashes with various free functions.
	Fix issues with Headset and A2DP drivers to load again.
	Fix sending AVRCP button released passthrough messages
	Fix bug which prevent input devices to work after restart.
	Fix issue with interpretation of UUID-128 as channel.

ver 4.37:
	Add version value for Bluetooth 3.0 devices.
	Add additional L2CAP extended feature mask bits.
	Add support for loading plugins in priority order.
	Add support for more detailed usage of disconnect watches.
	Add support for AVRCP volume control.
	Add saturated clipping of SBC decoder output to 16-bit.
	Fix potentially infinite recursion of adapter_up.
	Fix SCO handling in the case of an incoming call.
	Fix input service to use confirm callback.
	Fix cleanup of temporary device entries from storage.

ver 4.36:
	Add proper tracking of AVCTP connect attempts.
	Add support to channel pattern in Serial interface.
	Fix A2DP sink crash if removing device while connecting.
	Fix error handling if HFP indicators aren't initialized.
	Fix segfault while handling an incoming SCO connection.
	Fix Serial.Disconnect to abort connection attempt.

ver 4.35:
	Add support for Handsfree profile headset role.
	Add additional checks for open SEIDs from clients.
	Fix device removal while audio IPC client is connected.
	Fix device removal when an authorization request is pending.
	Fix incoming AVDTP connect while authorization in progress.
	Fix disconnection timers for audio support.
	Fix various potential NULL pointer deferences.
	Fix callheld indicator value for multiple calls.
	Fix voice number type usage.
	Fix GDBus watch handling.

ver 4.34:
	Add support for version checks of plugins.
	Add support for class property on adapter interface.
	Add support for second SDP attempt after connection reset.
	Add support for more detailed audio states.
	Add support for HFP+A2DP auto connection feature.
	Add support for new and improved audio IPC.
	Add program for testing audio IPC interface.
	Fix various AVDTP qualification related issues.
	Fix broken SDP AttributeIdList parsing.
	Fix invalid memory access of SDP URL handling.
	Fix local class of device race conditions.
	Fix issue with periodic inquiry on startup.
	Fix missing temporary devices in some situations.
	Fix SBC alignment issue for encoding with four subbands.

ver 4.33:
	Add Paired property to the DeviceFound signals.
	Add support for Headset profile 1.2 version.
	Fix broken network configuration when IPv6 is disabled.
	Fix network regression that caused disconnection.
	Fix SDP truncation of strings with NULL values.
	Fix service discovery handling of CUPS helper.

ver 4.32:
	Fix broken SDP record handling.
	Fix SDP data buffer parsing.
	Fix more SDP memory leaks.
	Fix read scan enable calls.
	Fix A2DP stream handling.

ver 4.31:
	Add support for new BtIO helper library.
	Fix AVDTP session close issue.
	Fix SDP memory leaks.
	Fix various uninitialized memory issues.
	Fix duplicate signal emissions.
	Fix property changes request handling.
	Fix class of device storage handling.

ver 4.30:
	Add CID field to L2CAP socket address structure.
	Fix reset of authentication requirements after bonding.
	Fix storing of link keys when using dedicated bonding.
	Fix storing of pre-Bluetooth 2.1 link keys.
	Fix resetting trust settings on every reboot.
	Fix handling of local name changes.
	Fix memory leaks in hciconfig and hcitool

ver 4.29:
	Use AVRCP version 1.0 for now.
	Decrease AVDTP idle timeout to one second.
	Delay AVRCP connection when remote device connects A2DP.
	Add workaround for AVDTP stream setup with broken headsets.
	Add missing three-way calling feature bit for Handsfree.
	Fix handsfree callheld indicator updating.
	Fix parsing of all AT commands within the buffer.
	Fix authentication replies when disconnected.
	Fix handling of debug combination keys.
	Fix handling of changed combination keys.
	Fix handling of link keys when using no bonding.
	Fix handling of invalid/unknown authentication requirements.
	Fix closing of L2CAP raw socket used for dedicated bonding.

ver 4.28:
	Add AVDTP signal fragmentation support.
	Add more SBC performance optimizations.
	Add more SBC audio quality improvements.
	Use native byte order for audio plugins.
	Set the adapter alias only after checking the EIR data.
	Fix auto-disconnect issue with explicit A2DP connections.
	Fix invalid memory access of ALSA plugin.
	Fix compilation with -Wsign-compare.

ver 4.27:
	Add more SBC optimization (MMX and ARM NEON).
	Add BT_SECURITY and BT_DEFER_SETUP definitions.
	Add support for deferred connection setup.
	Add support for fragmentation of data packets.
	Add option to trigger dedicated bonding.
	Follow MITM requirements from remote device.
	Require MITM for dedicated bonding if capabilities allow it.
	Fix IO capabilities for non-pairing and pairing cases.
	Fix no-bonding connections in non-bondable mode.
	Fix new pairing detection with SSP.
	Fix bonding with pre-2.1 devices and newer kernels.
	Fix LIAC setting while toggling Pairable property.
	Fix device creation for incoming security mode 3 connects.
	Fix crash within A2DP with bogus pointer.
	Fix issue with sdp_copy_record() function.
	Fix crash with extract_des() if sdp_uuid_extract() fails.

ver 4.26:
	Use of constant shift in SBC quantization code.
	Add possibility to analyze 4 blocks at once in encoder.
	Fix correct handling of frame sizes in the encoder.
	Fix for big endian problems in SBC codec.
	Fix audio client socket to always be non-blocking.
	Update telephony support for Maemo.

ver 4.25:
	Fix receiving data over the audio control socket.
	Fix subbands selection for joint-stereo in SBC encoder.
	Add new SBC analysis filter function.

ver 4.24:
	Fix signal emissions when removing adapters.
	Fix missing adapter signals on exit.
	Add support for bringing adapters down on exit.
	Add support for RememberPowered option.
	Add support for verbose compiler warnings.
	Add more options to SBC encoder.

ver 4.23:
	Update audio IPC for better codec handling.
	Fix bitstream optimization for SBC encoder.
	Fix length header values of IPC messages.
	Fix multiple coding style violations.
	Fix FindDevice to handle temporary devices.
	Add configuration option for DeviceID.
	Add support for InitiallyPowered option.
	Add missing signals for manager properties.
	Add telephony support for Maemo.

ver 4.22:
	Add deny statements to D-Bus access policy.
	Add support for LegacyPairing property.
	Add support for global properties.
	Add more commands to telephony testing script.
	Add sender checks for serial and network interfaces.
	Remove deprecated methods and signals from input interface.
	Remove deprecated methods and signals from network interface.
	Remove OffMode option and always use device down.

ver 4.21:
	Fix adapter initialization logic.
	Fix adapter setup and start security manager early.
	Fix usage issue with first_init variable.

ver 4.20:
	Cleanup session handling.
	Cleanup mode setting handling.
	Fix issue with concurrent audio clients.
	Fix issue with HFP/HSP suspending.
	Fix AT result code syntax handling.
	Add Handsfree support for AT+NREC.
	Add PairableTimeout adapter property.

ver 4.19:
	Fix installation of manual pages for old daemons.
	Fix D-Bus signal emmissions for CreateDevice.
	Fix issues with UUID probing.
	Fix +BSRF syntax issue.
	Add Pairable adapter property.
	Add sdp_copy_record() library function.

ver 4.18:
	Fix release before close issue with RFCOMM TTYs.
	Fix Connected property on input interface.
	Fix DeviceFound signals during initial name resolving.
	Fix service discovery handling.
	Fix duplicate UUID detection.
	Fix SBC gain mismatch and decoding handling.
	Add more options to SBC encoder and decoder.
	Add special any adapter object for service interface.
	Add variable prefix to adapter and device object paths.

ver 4.17:
	Fix SBC encoder not writing last frame.
	Fix missing timer for A2DP suspend.
	Add more supported devices to hid2hci utility.
	Add additional functionality to Handsfree support.

ver 4.16:
	Fix wrong parameter usage of watch callbacks.
	Fix parameters for callback upon path removal.
	Fix unloading of adapter drivers.

ver 4.15:
	Fix various A2DP state machine issues.
	Fix some issues with the Handsfree error reporting.
	Fix format string warnings with recent GCC versions.
	Remove dependency on GModule.

ver 4.14:
	Fix types of property arrays.
	Fix potential crash with input devices.
	Fix PS3 BD remote input event generation.
	Allow dynamic adapter driver registration.
	Update udev rules.

ver 4.13:
	Fix service discovery and UUID handling.
	Fix bonding issues with Simple Pairing.
	Fix file descriptor misuse of SCO connections.
	Fix various memory leaks in the device handling.
	Fix AVCTP disconnect handling.
	Fix GStreamer modes for MP3 encoding.
	Add operator selection to Handsfree support.

ver 4.12:
	Fix crash with missing icon value.
	Fix error checks of HAL plugin.
	Fix SCO server socket cleanup on exit.
	Fix memory leaks from DBusPendingCall.
	Fix handling of pending authorization requests.
	Fix missing protocol UUIDs in record pattern.

ver 4.11:
	Change SCO server socket into a generic one.
	Add test script for dummy telephony plugin.
	Fix uninitialized reply of multiple GetProperties methods.

ver 4.10:
	Fix memory leaks with HAL messages.
	Add more advanced handsfree features.
	Add properties to audio, input and network interfaces.
	Stop device discovery timer on device removal.

ver 4.9:
	Fix signals for Powered and Discoverable properties.
	Fix handling of Alias and Icon properties.
	Fix duplicate entries for service UUIDs.

ver 4.8:
	Fix retrieving of formfactor value.
	Fix retrieving of local and remote extended features.
	Fix potential NULL pointer dereference during pairing.
	Fix crash with browsing due to a remotely initated pairing.

ver 4.7:
	Fix pairing and service discovery logic.
	Fix crashes during suspend and resume.
	Fix race condition within devdown mode.
	Add RequestSession and ReleaseSession methods.
	Add Powered and Discoverable properties.
	Add Devices property and deprecate ListDevices.
	Add workaround for a broken carkit from Nokia.

ver 4.6:
	Fix Device ID record handling.
	Fix service browsing and storage.
	Fix authentication and encryption for input devices.
	Fix adapter name initialization.

ver 4.5:
	Fix initialization issue with new adapters.
	Send HID authentication request without blocking.
	Hide the verbose SDP debug behind SDP_DEBUG.
	Add extra UUIDs for service discovery.
	Add SCO server socket listener.
	Add authorization support to service plugin.

ver 4.4:
	Add temporary fix for the CUPS compile issue.
	Add service-api.txt to distribution.
	Mention the variable prefix of an object path

ver 4.3:
	Add dummy driver for telephony support.
	Add support for discovery sessions.
	Add service plugin for external services.
	Various cleanups.

ver 4.2:
	Avoid memory copies in A2DP write routine.
	Fix broken logic with Simple Pairing check and old kernels.
	Allow non-bondable and outgoing SDP without agent.
	Only remove the bonding for non-temporary devices.
	Cleanup various unnecessary includes.
	Make more unexported functions static.
	Add basic infrastructure for gtk-doc support.

ver 4.1:
	Add 30 seconds timeout to BNEP connection setup phase.
	Avoid memory copies in A2DP write routine for ALSA.
	Make sure to include compat/sdp.h in the distribution.

ver 4.0:
	Initial public release.

ver 3.36:
	Add init routines for TI BRF chips.
	Add extra attributes to the serial port record.
	Add example record for headset audio gateway record.
	Use Handsfree version 0x0105 for the gateway role.
	Fix SDP record registration with specific record handles.
	Fix BCSP sent/receive handling.
	Fix various includes for cross-compilation.
	Allow link mode settings for outgoing connections.
	Allow bonding during periodic inquiry.

ver 3.35:
	Add two additional company identifiers.
	Add UUID-128 support for service discovery.
	Fix usage of friendly names for service discovery.
	Fix authorization when experiemental is disabled.
	Fix uninitialized variable in passkey request handling.
	Enable output of timestamps for l2test and rctest.

ver 3.34:
	Replace various SDP functions with safe versions.
	Add additional length validation for incoming SDP packets.
	Use safe function versions for SDP client handling.
	Fix issue with RemoveDevice during discovery procedure.
	Fix collect for non-persistent service records.

ver 3.33:
	Add functions for reading and writing the link policy settings.
	Add definition for authentication requirements.
	Add support for handling Simple Pairing.
	Add Simple Pairing support to Agent interface.
	Add ReleaseMode method to Adapter interface.
	Add DiscoverServices method to Device interface.
	Remove obsolete code and cleanup the repository.
	Move over to use the libgdbus API.
	Enable PIE by default if supported.

ver 3.32:
	Add OCF constants for synchronous flow control enabling.
	Add support for switching HID proxy devices from Dell.
	Add more Bluetooth client/server helper functions.
	Add support for input service idle timeout option.
	Fix BNEP reconnection handling.
	Fix return value for snd_pcm_hw_params() calls.
	Use upper-case addresses for object paths.
	Remove HAL support helpers.
	Remove inotify support.
	Remove service daemon activation handling.
	Remove uneeded D-Bus API extension.

ver 3.31:
	Create device object for all pairing cases.
	Convert authorization to internal function calls.
	Add initial support for Headset Audio Gateway role.
	Add generic Bluetooth helper functions for GLib.
	Fix endiannes handling of connection handles.
	Don't optimize when debug is enabled.

ver 3.30:
	Convert audio service into a plugin.
	Convert input service into a plugin.
	Convert serial service into a plugin.
	Convert network service into a plugin.
	Emit old device signals when a property is changed.
	Fix missing DiscoverDevices and CancelDiscovery methods.
	Add another company identifier.
	Add basic support for Bluetooth sessions.
	Add avinfo utility for AVDTP/A2DP classification.
	Remove build option for deprecated sdpd binary.

ver 3.29:
	Introduce new D-Bus based API.
	Add more SBC optimizations.
	Add support for PS3 remote devices.
	Fix alignment trap in SDP server.
	Fix memory leak in sdp_get_uuidseq_attr function.

ver 3.28:
	Add support for MCAP UUIDs.
	Add support for role switch for audio service.
	Add disconnect timer for audio service.
	Add disconnect detection to ALSA plugin.
	Add more SBC optimizations.
	Fix alignment issue of SDP server.
	Remove support for SDP parsing via expat.

ver 3.27:
	Update uinput.h with extra key definitions.
	Add support for input connect/disconnect callbacks.
	Add ifdefs around some baud rate definitions.
	Add another company identifier.
	Add proper HFP service level connection handling.
	Add basic headset automatic disconnect support.
	Add support for new SBC API.
	Fix SBC decoder noise at high bitpools.
	Use 32-bit multipliers for further SBC optimization.
	Check for RFCOMM connection state in SCO connect callback.
	Make use of parameters selected in ALSA plugin.

ver 3.26:
	Fix compilation issues with UCHAR_MAX, USHRT_MAX and UINT_MAX.
	Improve handling of different audio transports.
	Enable services by default and keep old daemons disabled.

ver 3.25:
	Add limited support for Handsfree profile.
	Add limited support for MPEG12/MP3 codec.
	Add basic support for UNITINFO and SUBUNITINFO.
	Add more SBC optimizations.
	Fix external service (un)registration.
	Allow GetInfo and GetAddress to fail.

ver 3.24:
	Add definitions for MDP.
	Add TCP connection support for serial proxy.
	Add fix for Logitech HID proxy switching.
	Add missing macros, MIN, MAX, ABS and CLAMP.
	Add more SBC encoder optimizations.
	Add initial mechanism to handle headset commands.
	Fix connecting to handsfree profile headsets.
	Use proper function for checking signal name.

ver 3.23:
	Fix remote name request handling bug.
	Fix key search function to honor the mmap area size.
	Fix Avahi integration of network service.
	Add new plugin communication for audio service.
	Enable basic AVRCP support by default.
	More optimizations to the SBC library.
	Create common error definitions.

ver 3.22:
	Add missing include file from audio service.
	Add SBC conformance test utility.
	Add basic uinput support for AVRCP.
	Fix L2CAP socket leak in audio service.
	Fix buffer usage in GStreamer plugin.
	Fix remote name request event handling.

ver 3.21:
	Add constant for Bluetooth socket options level.
	Add initial AVRCP support.
	Add A2DP sink support to GStreamer plugin.
	Fix interoperability with A2DP suspend.
	Fix sign error in 8-subband encoder.
	Fix handling of service classes length size.
	Store Extended Inquiry Response data information.
	Publish device id information through EIR.
	Support higher baud rates for Ericcson based chips.

ver 3.20:
	Fix GStreamer plugin file type detection.
	Fix potential infinite loop in inotify support.
	Fix D-Bus signatures for dict handling.
	Fix issues with service activation.
	Fix SDP failure handling of audio service.
	Fix various memory leaks in input service.
	Add secure device creation method to input service.
	Add service information methods to serial service.
	Add config file support to network service.
	Add scripting capability to network service.
	Add special on-mode handling.
	Add optimization for SBC encoder.
	Add tweaks for D-Bus 1.1.x libraries.
	Add support for inquiry transmit power level.

ver 3.19:
	Limit range of bitpool announced while in ACP side.
	Use poll instead of usleep to wait for worker thread.
	Use default event mask from the specification.
	Add L2CAP mode constants.
	Add HID proxy support for Logitech diNovo Edge dongle.
	Add refresh option to re-request device names.
	Show correct connection link type.

ver 3.18:
	Don't allocate memory for the Bluetooth base UUID.
	Implement proper locking for headsets.
	Fix various A2DP SEP locking issues.
	Fix and cleanup audio stream handling.
	Fix stream starting if suspend request is pending.
	Fix A2DP and AVDTP endianess problems.
	Add network timeout and retransmission support.
	Add more detailed decoding of EIR elements.

ver 3.17:
	Fix supported commands bit calculation.
	Fix crashes in audio and network services.
	Check PAN source and destination roles.
	Only export the needed symbols for the plugins.

ver 3.16:
	Update company identifier list.
	Add support for headsets with SCO audio over HCI.
	Add support for auto-create through ALSA plugin.
	Add support for ALSA plugin parameters.
	Add GStreamer plugin with SBC decoder and encoder.
	Fix network service NAP, GN and PANU servers.
	Set EIR information from SDP database.

ver 3.15:
	Add A2DP support to the audio service.
	Add proxy support to the serial service.
	Extract main service class for later use.
	Set service classes value from SDP database.

ver 3.14:
	Add missing signals for the adapter interface.
	Add definitions and functions for Simple Pairing.
	Add basic commands for Simple Pairing.
	Add correct Simple Pairing and EIR interaction.
	Add missing properties for remote information.
	Add EPoX endian quirk to the input service.
	Fix HID descriptor import and storage functions.
	Fix handling of adapters in raw mode.
	Fix remote device listing methods.

ver 3.13:
	Fix some issues with the headset support.
	Fix concurrent pending connection attempts.
	Fix usage of devname instead of netdev.
	Add identifier for Nokia SyncML records.
	Add command for reading the CSR chip revision.
	Add generic CSR radio test support.
	Update HCI command table.

ver 3.12:
	Add missing HCI command text descriptions
	Add missing HCI commands structures.
	Add missing HCI event structures.
	Add common bachk() function.
	Add support for limited discovery mode.
	Add support for setting of event mask.
	Add GetRemoteServiceIdentifiers method.
	Add skeleton for local D-Bus server.
	Add headset gain control methods.
	Fix various headset implementation issues.
	Fix various serial port service issues.
	Fix various input service issues.
	Let CUPS plugin discover printers in range.
	Improve the BCM2035 UART init routine.
	Ignore connection events for non-ACL links.

ver 3.11:
	Update API documentation.
	Minimize SDP root records and browse groups.
	Use same decoder for text and URL strings.
	Fix URL data size handling.
	Fix SDP pattern extraction for XML.
	Fix network connection persistent state.
	Add network connection helper methods.
	Add initial version of serial port support.
	Add class of device tracking.

ver 3.10.1:
	Add option to disable installation of manual pages.
	Fix input service encryption setup.
	Fix serial service methods.
	Fix network service connection handling.
	Provide a simple init script.

ver 3.10:
	Add initial version of network service.
	Add initial version of serial service.
	Add initial version of input service.
	Add initial version of audio service.
	Add authorization framework.
	Add integer based SBC library.
	Add version code for Bluetooth 2.1 specification.
	Add ESCO_LINK connection type constant.
	Export sdp_uuid32_to_uuid128() function.

ver 3.9:
	Add RemoteDeviceDisconnectRequested signal.
	Add updated service framework.
	Add embedded GLib library.
	Add support for using system GLib library.
	Create internal SDP server library.

ver 3.8:
	Sort discovered devices list based on their RSSI.
	Send DiscoverableTimeoutChanged signal.
	Fix local and remote name validity checking.
	Add ListRemoteDevices and ListRecentRemoteDevices methods.
	Add basic integration of confirmation concept.
	Add support for service record description via XML.
	Add support for external commands to the RFCOMM utility.
	Add experimental service and authorization API.
	Add functions for registering binary records.

ver 3.7:
	Fix class of device handling.
	Fix error replies with pairing and security mode 3.
	Fix disconnect method for RFCOMM connections.
	Add match pattern for service searches.
	Add support for prioritized watches.
	Add additional PDU length checks.
	Fix CSRC value for partial responses.

ver 3.6.1:
	Fix IO channel race conditions.
	Fix pairing issues on big endian systems.
	Fix pairing issues with page timeout errors.
	Fix pairing state for security mode 3 requests.
	Switch to user as default security manager mode.

ver 3.6:
	Update D-Bus based RFCOMM interface support.
	Use L2CAP raw sockets for HCI connection creation.
	Add periodic discovery support to the D-Bus interface.
	Add initial support for device names via EIR.
	Add proper UTF-8 validation of device names.
	Add support for the J-Three keyboard.
	Fix issues with the asynchronous API for SDP.

ver 3.5:
	Fix and cleanup watch functionality.
	Add support for periodic inquiry mode.
	Add support for asynchronous SDP requests.
	Add more request owner tracking.
	Add asynchronous API for SDP.
	Document pageto and discovto options.

ver 3.4:
	Improve error reporting for failed HCI commands.
	Improve handling of CancelBonding.
	Fixed bonding reply message when disconnected.
	Fix UUID128 string lookup handling.
	Fix malloc() versus bt_malloc() usage.

ver 3.3:
	Don't change inquiry mode for Bluetooth 1.1 adapters.
	Add udev rules for Bluetooth serial PCMCIA cards.
	Add Cancel and Release methods for passkey agents.
	Add GetRemoteClass method.
	Convert to using ppoll() and pselect().
	Initialize allocated memory to zero.
	Remove bcm203x firmware loader.
	Remove kernel specific timeouts.
	Add additional private data field for SDP sessions.
	Add host controller to host flow control defines.
	Add host number of completed packets defines.
	Initialize various memory to zero before usage.

ver 3.2:
	Only check for the low-level D-Bus library.
	Update possible device minor classes.
	Fix timeout for pending reply.
	Add more Inquiry with RSSI quirks.
	Sleep only 100 msecs for device detection.
	Don't send BondingCreated on link key renewal.
	Allow storing of all UTF-8 remote device names.
	Create storage filenames with a generic function.
	Fix handling of SDP strings.
	Add adapter type for SDIO cards.
	Add features bit for link supervision timeout.

ver 3.1:
	Add missing placeholders for feature bits.
	Fix handling of raw mode devices.
	Fix busy loop in UUID extraction routine.
	Remove inquiry mode setting.
	Remove auth and encrypt settings.

ver 3.0:
	Implement the new BlueZ D-Bus API.
	Fix broken behavior with EVT_CMD_STATUS.
	Add features bit for pause encryption.
	Add additional EIR error code.
	Add more company identifiers.
	Add another Phonebook Access identifier.
	Update sniff subrating data structures.

ver 2.25:
	Use %jx instead of %llx for uint64_t and int64_t.
	Allow null-terminated text strings.
	Add UUID for N-Gage games.
	Add UUID for Apple Macintosh Attributes.
	Add Apple attributes and iSync records.
	Add definitions for Apple Agent.
	Add support for the Handsfree Audio Gateway service.
	Add support for choosing a specific record handle.
	Add support for dialup/telephone connections.
	Add definitions for Apple Agent.
	Add support for record handle on service registration.

ver 2.24:
	Fix display of SDP text and data strings.
	Add support for device scan property.
	Add support for additional access protocols.
	Update the D-Bus policy configuration file.

ver 2.23:
	Update the new D-Bus interface.
	Make dfutool ready for big endian architectures.
	Add support for AVRCP specific service records.
	Add support for writing complex BCCMD commands.
	Add the new BCCMD interface utility.
	Add MicroBCSP implementation from CSR.
	Add constants and definitions for sniff subrating.
	Add support for allocation of binary text elements.
	Add HCI emulation tool.
	Add fake HID support for old EPoX presenters.
	Reject connections from unknown HID devices.
	Fix service discovery deadlocks with Samsung D600 phones.

ver 2.22:
	Remove D-Bus 0.23 support.
	Add initial version of the new D-Bus interface.
	Add support for extended inquiry response commands.
	Add support for the Logitech diNovo Media Desktop Laser.
	Add compile time buffer checks (FORTIFY SOURCE).
	Decode reserved LMP feature bits.
	Fix errno overwrite problems.
	Fix profile descriptor problem with Samsung phones.

ver 2.21:
	Move create_dirs() and create_file() into the textfile library.
	Let textfile_put() also replace the last key value pair.
	Fix memory leaks with textfile_get() usage.
	Fix infinite loops and false positive matches.
	Don't retrieve stored link keys for RAW devices.
	Document the putkey and delkey commands.
	Show supported commands also in clear text.
	Support volatile changes of the BD_ADDR for CSR chips.
	Add support for identification of supported commands.
	Add missing OCF declarations for the security filter.
	Add two new company identifiers.

ver 2.20:
	Add UUIDs for video distribution profile.
	Add UUIDs for phonebook access profile.
	Add attribute identifier for supported repositories.
	Add definitions for extended inquiry response.
	Add functions for extended inquiry response.
	Add support for extended inquiry response.
	Add support for HotSync service record.
	Add support for ActiveSync service record.
	Add ActiveSync networking support.
	Fix D-Bus crashes with new API versions.

ver 2.19:
	Fix the GCC 4.0 warnings.
	Fix the routing for dealing with raw devices.
	Fix off by one memory allocation error.
	Fix security problem with escape characters in device name.
	Add per device service record functions.
	Send D-Bus signals for inquiry results and remote name resolves.
	Add support for device specific SDP records.

ver 2.18:
	Support D-Bus 0.23 and 0.33 API versions.
	Support reading of complex BCCMD values.
	Support minimum and maximum encryption key length.
	Add support for reading and writing the inquiry scan type.
	Add definitions for connection accept timeout and scan enable.
	Add support for inquiry scan type.
	Add tool for the CSR BCCMD interface.
	Add first draft of the Audio/Video control utility.
	Add disconnect timer support for the A2DP ALSA plugin.
	Make SBC parameters configurable.
	Replace non-printable characters in device names.
	Remove hci_vhci.h header file.
	Remove hci_uart.h header file.

ver 2.17:
	Set the storage directory through ${localstatedir}.
	Add the textfile library for ASCII based file access.
	Add support for return link keys event.
	Add support for voice setting configuration.
	Add support for page scan timeout configuration.
	Add support for storing and deleting of stored link keys.
	Add support for searching for services with UUID-128.
	Add support for retrieving all possible service records.
	Add support for a raw mode view of service records.
	Add support for HID information caching in hidd.
	Add support for authentication in pand and dund.
	Add support for changing BD_ADDR of CSR chips.
	Add pskey utility for changing CSR persistent storage values.
	Add the firmware upgrade utility.
	Add connection caching for the A2DP ALSA plugin.
	Add functions for stored link keys.
	Add definitions for PIN type and unit key.
	Add SDP_WAIT_ON_CLOSE flag for sdp_connect().
	Include stdio.h in bluetooth.h header file.
	Include sys/socket.h in the header files.

ver 2.16:
	Store link keys in ASCII based file format.
	Support device name caching.
	Support zero length data sizes in l2test.
	Change default l2ping data size to 44 bytes.
	Hide the server record and the public browse group root.
	Read BD_ADDR if not set and if it is a raw device.
	Add SDP language attributes.
	Add support for browsing the L2CAP group.
	Add support for stored pin codes for outgoing connections.
	Add support for local commands and extended features.
	Add support for reading CSR panic and fault codes.
	Add config option for setting the inquiry mode.
	Add OUI decoding support.
	Use unlimited inquiry responses as default.
	Use cached device names for PIN request.
	Use the clock offset when getting the remote names.
	Add function for reading local supported commands.
	Add function for reading local extended features.
	Add function for reading remote extended features.
	Add function for getting the remote name with a clock offset.
	Add function for extracting the OUI from a BD_ADDR.
	Add inquiry info structure with RSSI and page scan mode.
	Fix buffer allocation for features to string conversion.
	Support inquiry with unlimited number of responses.

ver 2.15:
	Enable the RFCOMM service level security.
	Add deprecated functions for reading the name.
	Add command for reading the clock offset.
	Add command for reading the clock.
	Add function for reading the clock.
	Add function for reading the local Bluetooth address.
	Add function for reading the local supported features.
	Don't configure raw devices.
	Don't set inquiry scan or page scan on raw devices.
	Don't show extended information for raw devices.
	Support L2CAP signal sizes bigger than 2048 bytes.
	Cleanup of the socket handling code of the test programs.
	Use better way for unaligned access.
	Remove sdp_internal.h and its usage.

ver 2.14:
	Make use of additional connection information.
	Use library function for reading the RSSI.
	Use library function for reading the link quality.
	Use library function for reading the transmit power level.
	Use library functions for the link supervision timeout.
	Add tool for changing the device address.
	Add function for reading the RSSI.
	Add function for reading the link quality.
	Add function for reading the transmit power level.
	Add functions for the link supervision timeout.
	Remove deprecated functions.
	Update AM_PATH_BLUEZ macro.

ver 2.13:
	Use file permission 0600 for the link key file.
	Add support for HID attribute descriptions.
	Add support for Device ID attributes.
	Add Device ID and HID attribute definitions.
	Update the UUID constants and its translations.
	Update L2CAP socket option definitions.
	Update connection information definitions.
	Various whitespace cleanups.

ver 2.12:
	Inherit the device specific options from the default.
	Use --device for selecting the source device.
	Add --nosdp option for devices with resource limitation.
	Add support and parameter option for secure mode.
	Add a lot of build ids and hardware revisions.
	Add service classes and profile ids for WAP.
	Add simple AM_PATH_BLUEZ macro.
	Update UUID translation tables.
	Correct kernel interface for CMTP and HIDP support.

ver 2.11:
	Initial support for the kernel security manager.
	Various cleanups to avoid inclusion of kernel headers.
	Fix output when the CUPS backend is called without arguments.
	Fix problems with a 64 bit userland.
	Use Bluetooth library functions if available.
	Use standard numbering scheme of SDP record handles.
	Use bit zero for vendor packets in the filter type bitmask.
	Add SIM Access types for service discovery.
	Add more audio/video profile translations.
	Add another company identifier.
	Add the missing HCI error codes.
	Add RFCOMM socket options.
	Add definition for the SECURE link mode.
	Add functions for reading and writing the inquiry mode.
	Add functions for AFH related settings and information.
	Add version identifier for the Bluetooth 2.0 specification.
	Add a master option to the hidd.
	Add support for changing the link key of a connection.
	Add support for requesting encryption on keyboards.
	Add support for revision information of Digianswer devices.
	Add support for the Zoom, IBM and TDK PCMCIA cards.
	Add checks for the OpenOBEX and the ALSA libraries.
	Add experimental mRouter support.

ver 2.10:
	Use a define for the configuration directory.
	Fix string initialization for flags translation.
	Fix and extend the unaligned access macros.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.
	Check for usb_get_busses() and usb_interrupt_read().
	Add optional support for compiling with PIE.
	Make installation of the init scripts optional.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.

ver 2.9:
	Retry SDP connect if busy in the CUPS backend.
	Use packet type and allow role switch in hcitool.
	Use the functions from the USB library for hid2hci.
	Add Broadcom firmware loader.
	Add EPoX endian quirk for buggy keyboards.
	Add L2CAP info type and info result definitions.
	Add value for L2CAP_CONF_RFC_MODE.
	Change RSSI value to signed instead of unsigned.
	Allow UUID32 values as protocol identifiers.
	Update the autoconf/automake scripts.

ver 2.8:
	Use LIBS and LDADD instead of LDFLAGS.
	Use HIDP subclass field for HID boot protocol.
	Set olen before calling getsockopt() in pand.
	Restore signals for dev-up script.
	Add PID file support for pand.
	Add size parameter to expand_name() in hcid.
	Add support for audio source and audio sink SDP records.
	Add support for HID virtual cable unplug.
	Add support for AmbiCom BT2000C card.
	Add defines and UUID's for audio/video profiles.
	Add AVDTP protocol identifier.
	Add HIDP subclass field.
	Add PKGConfig support.
	Fix the event code of inquiry with RSSI.
	Remove dummy SDP library.

ver 2.7:
	Fix display of decoded LMP features.
	Update company identifiers.
	Add AFH related types.
	Add first bits from EDR prototyping specification.
	Add support for inquiry with RSSI.
	Add HCRP related SDP functions.
	Add HIDP header file.
	Add support for getting the AFH channel map.
	Add support for AFH mode.
	Add support for inquiry mode.
	Add Bluetooth backend for CUPS.
	Add the hid2hci utility.
	Add the hidd utility.
	Add the pand utility.
	Add the dund utility.
	More endian bug fixes.
	Give udev some time to create the RFCOMM device nodes.
	Release the TTY if no device node is found.
	New startup script for the Bluetooth subsystem.
	Update to the autoconf stuff.

ver 2.6:
	Change default prefix to /usr.
	Add manpages for hcid and hcid.conf.
	Add the sdpd server daemon.
	Add the sdptool utility.
	Add the ciptool utility.
	Add new company identifiers.
	Add BNEP and CMTP header files.
	Add the SDP library.
	Use R2 for default value of pscan_rep_mode.

ver 2.5:
	Add decoding of Bluetooth 1.2 features.
	Add link manager version parameter for Bluetooth 1.2.
	Add new company identifiers.
	Add D-Bus support for PIN request.
	Support for transmit power level.
	Support for park, sniff and hold mode.
	Support for role switch.
	Support for reading the clock offset.
	Support for requesting authentication.
	Support for setting connection encryption.
	Show revision information for Broadcom devices.
	Replace unprintable characters in device name.
	Use R1 for default value of pscan_rep_mode.
	Fix some 64-bit problems.
	Fix some endian problems.
	Report an error on PIN helper failure.
	Update bluepin script for GTK2.

ver 2.4:
	Increase number of inquiry responses.
	Support for transmit power level.
	Display all 8 bytes of the features.
	Add support for reading and writing of IAC.
	Correct decoding class of device.
	Use Ericsson revision command for ST Microelectronics devices.
	Display AVM firmware version with 'revision' command.
	New code for CSR specific revision information.
	Support for ST Microelectronics specific initialization.
	Support for 3Com card version 3.0.
	Support for TDK, IBM and Socket cards.
	Support for initial baud rate.
	Update man pages.
	Fixes for some memory leaks.

ver 2.3:
	Added const qualifiers to appropriate function arguments.
	Minor fixes.
	CSR firmware version is now displayed by 'revision' command.
	Voice command is working properly on big endian machines.
	Added support for Texas Bluetooth modules.
	Added support for high UART baud rates on Ericsson modules.
	BCSP initialization fixes.
	Support for role switch command (hcitool).
	RFCOMM config file parser fixes.
	Update man pages.
	Removed GLib dependency.

ver 2.2:
	Updated RFCOMM header file.
	Additional HCI command and event defines.
	Support for voice settings (hciconfig).
	Minor hcitool fixes.
	Improved configure script.
	Added Headset testing tool.
	Updated man pages.
	RPM package.

ver 2.1.1:
	Resurrect hci_remote_name.

ver 2.1:
	Added hci_{read, write}_class_of_dev().
	Added hci_{read, write}_current_iac_lap().
	Added hci_write_local_name().
	Added RFCOMM header file.
	Minor fixes.
	Improved BCSP initialization (hciattach).
	Support for displaying link quality (hcitool).
	Support for changing link supervision timeout (hcitool).
	New RFCOMM TTY configuration tool (rfcomm).
	Minor fixes and updates.

ver 2.0:
	Additional company IDs.
	BCSP initialization (hciattach).
	Minor hciconfig fixes.

ver 2.0-pr13:
	Support for multiple pairing modes.
	Link key database handling fixes.

ver 2.0-pre12:
	Removed max link key limit. Keys never expire.
	Link key database is always updated. Reread PIN on SIGHUP (hcid).
	Bluetooth script starts SDPd, if installed.
	Other minor fixes.

ver 2.0-pre11:
	Improved link key management and more verbose logging (hcid).
	Fixed scan command (hcitool).

ver 2.0-pre10:
	Fix hci_inquiry function to return errors and accept user buffers.
	New functions hci_devba, hci_devid, hci_for_each_dev and hci_get_route.
	Additional company IDs.
	Makefile and other minor fixes.
	Support for reading RSSI, remote name and changing
	connection type (hcitool). 
	Device initialization fixes (hcid).
	Other minor fixes and improvements.
	Build environment cleanup and fixes.

ver 2.0-pre9:
	Improved bluepin. Working X authentication.
	Improved hcitool. New flexible cmd syntax, additional commands.
	Human readable display of the device features.
	LMP features to string translation support.
	Additional HCI command and event defines.
	Extended hci_filter API.

ver 2.0-pre8:
	Additional HCI ioctls and defines.
	All strings and buffers are allocated dynamically.
	ba2str, str2ba automatically swap bdaddress.
	Additional hciconfig commands. Support for ACL and SCO MTU ioctls.
	Support for Inventel and COM1 UART based devices.
	Minor hcitool fixes.
	Improved l2test. New L2CAP test modes.
	Minor fixes and cleanup.

ver 2.0-pre7:
	Bluetooth libraries and header files is now a separate package.
	New build environment uses automake and libtool.
	Massive header files cleanup.
	Bluetooth utilities is now a separate package.
	New build environment uses automake.
	Moved all config files and security data to /etc/bluetooth.
	Various cleanups.

ver 2.0-pre6:
	API cleanup and additions.
	Improved hcitool.
	l2test minor output fixes.
	hciattach opt to display list of supported devices.

ver 2.0-pre4:
	HCI filter enhancements.

ver 2.0-pre3:
	Cleanup.

ver 2.0-pre2:
	Additional HCI library functions.
	Improved CSR baud rate initialization.
	PCMCIA scripts fixes and enhancements.
	Documentation update.

ver 2.0-pre1:
	New UART initialization utility.
	Hot plugging support for UART based PCMCIA devices.
	SCO testing utility.
	New authentication utility (bluepin).
	Minor fixes and improvements.
