Linux Input/HID development
 help / color / mirror / Atom feed
* Re: [PATCH v2 2/2] arm64: dts: qcom: sdm845-oneplus: Update compatible to include model
From: Dmitry Torokhov @ 2026-05-27 21:56 UTC (permalink / raw)
  To: david
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jason A. Donenfeld, Matthias Schiffer, Vincent Huang,
	Bjorn Andersson, Konrad Dybcio, linux-input, devicetree,
	linux-kernel, linux-arm-msm, phone-devel, Krzysztof Kozlowski,
	Konrad Dybcio
In-Reply-To: <20260523-synaptics-rmi4-dt-v2-2-0645122babdc@ixit.cz>

Hi David,

On Sat, May 23, 2026 at 11:45:35AM +0200, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
> 
> We know the driver is reporting s3706b, introduce the compatible so we
> can more easily introduce quirks for weird touchscreen replacements in
> followup series.
> 
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> index 6b7378cf4d493..148164d456a5a 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> @@ -475,17 +475,17 @@ bq27441_fg: bq27441-battery@55 {
>  	};
>  };
>  
>  &i2c12 {
>  	status = "okay";
>  	clock-frequency = <400000>;
>  
>  	synaptics-rmi4-i2c@20 {
> -		compatible = "syna,rmi4-i2c";
> +		compatible = "syna,rmi4-s3706b", "syna,rmi4-i2c";

So I believe we established that this device (s3706b) does not in fact
implement rmi4 protocol properly. Why do we have "syna,rmi4-i2c" as a
fallback? Shouldn't it be just "syna,rmi4-s3706b"?

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: validate report size before kfifo insert
From: Dmitry Torokhov @ 2026-05-27 21:41 UTC (permalink / raw)
  To: Jinmo Yang
  Cc: Jason Gerecke, Ping Cheng, Jiri Kosina, Benjamin Tissoires,
	linux-input, linux-kernel, stable
In-Reply-To: <ahdJzWhVFm7mWu-v@google.com>

On Wed, May 27, 2026 at 12:47:03PM -0700, Dmitry Torokhov wrote:
> On Sun, May 24, 2026 at 10:52:03PM +0900, Jinmo Yang wrote:
> > wacom_wac_queue_insert() passes the report size directly to kfifo_in()
> > without checking whether the report fits in the kfifo buffer.
> > 
> > Since commit 5e013ad20689 ("HID: wacom: Remove static WACOM_PKGLEN_MAX
> > limit"), the kfifo is sized dynamically as min(PAGE_SIZE, 10 * pktlen),
> > which can be as small as 256 bytes. However, reports received via
> > UHID_INPUT2 can be up to UHID_DATA_MAX (4096) bytes. When such an
> > oversized report reaches wacom_wac_queue_insert(), the existing
> > kfifo_avail() loop cannot make room for a record larger than the total
> > buffer, causing kfifo_copy_in() to memcpy up to 3840 bytes past the
> > slab allocation.
> 
> Does it? Or maybe spins there indefinitely? Also, doesn't
> kfifo_copy_in() return 0 if a record it too big and not copy anything?

OK, so the root cause is that kfifo_skip() must not be called on an
empty fifo. I think you want the code to look something like this:

static void wacom_wac_queue_insert(struct hid_device *hdev,
				   struct kfifo_rec_ptr_2 *fifo,
				   u8 *raw_data, int size)
{
	bool warned = false;

	while (kfifo_avail(fifo) < size && !kfifo_is_empty(fifo)) {
		if (!warned)
			hid_warn(hdev, "%s: kfifo has filled, starting to drop events\n", __func__);
		warned = true;

		kfifo_skip(fifo);
	}

	if (!kfifo_in(fifo, raw_data, size))
		hid_warn_ratelimited(hdev, "%s: report is too large (%d)\n",
				     __func__, size);
}

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: validate report size before kfifo insert
From: Dmitry Torokhov @ 2026-05-27 19:47 UTC (permalink / raw)
  To: Jinmo Yang
  Cc: Jason Gerecke, Ping Cheng, Jiri Kosina, Benjamin Tissoires,
	linux-input, linux-kernel, stable
In-Reply-To: <20260524135203.1996265-2-jinmo44.yang@gmail.com>

On Sun, May 24, 2026 at 10:52:03PM +0900, Jinmo Yang wrote:
> wacom_wac_queue_insert() passes the report size directly to kfifo_in()
> without checking whether the report fits in the kfifo buffer.
> 
> Since commit 5e013ad20689 ("HID: wacom: Remove static WACOM_PKGLEN_MAX
> limit"), the kfifo is sized dynamically as min(PAGE_SIZE, 10 * pktlen),
> which can be as small as 256 bytes. However, reports received via
> UHID_INPUT2 can be up to UHID_DATA_MAX (4096) bytes. When such an
> oversized report reaches wacom_wac_queue_insert(), the existing
> kfifo_avail() loop cannot make room for a record larger than the total
> buffer, causing kfifo_copy_in() to memcpy up to 3840 bytes past the
> slab allocation.

Does it? Or maybe spins there indefinitely? Also, doesn't
kfifo_copy_in() return 0 if a record it too big and not copy anything?

> 
> Add a size check at the top of wacom_wac_queue_insert() to reject
> reports that exceed the kfifo capacity.
> 
> Fixes: 5e013ad20689 ("HID: wacom: Remove static WACOM_PKGLEN_MAX limit")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jinmo Yang <jinmo44.yang@gmail.com>
> ---
>  drivers/hid/wacom_sys.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index a32320b..cc82c6f 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c
> @@ -54,6 +54,12 @@ static void wacom_wac_queue_insert(struct hid_device *hdev,
>  {
>  	bool warned = false;
>  
> +	if (size > kfifo_size(fifo)) {
> +		hid_warn(hdev, "%s: report too large (%d > %u) for kfifo\n",
> +			 __func__, size, kfifo_size(fifo));
> +		return;
> +	}
> +
>  	while (kfifo_avail(fifo) < size) {
>  		if (!warned)
>  			hid_warn(hdev, "%s: kfifo has filled, starting to drop events\n", __func__);

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH] HID: wacom: stop hardware after post-start probe failures
From: Dmitry Torokhov @ 2026-05-27 19:34 UTC (permalink / raw)
  To: Myeonghun Pak
  Cc: Ping Cheng, Jason Gerecke, Jiri Kosina, Benjamin Tissoires,
	linux-input, linux-kernel, stable, Ijae Kim
In-Reply-To: <20260524175552.1973-1-mhun512@gmail.com>

Hi Myeonghun,

On Mon, May 25, 2026 at 02:53:33AM +0900, Myeonghun Pak wrote:
> wacom_parse_and_register() starts HID hardware before registering inputs
> and initializing pad LEDs/remotes. Those later steps can fail, but their
> error paths currently release Wacom resources without stopping the HID
> hardware.
> 
> Route post-hid_hw_start() failures through hid_hw_stop() before
> releasing driver resources.
> 
> This issue was identified during our ongoing static-analysis research while
> reviewing kernel code.
> 
> Fixes: c1d6708bf0d3 ("HID: wacom: Do not register input devices until after hid_hw_start")
> Cc: stable@vger.kernel.org
> Co-developed-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> ---
>  drivers/hid/wacom_sys.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index 0d1c6d90fe..c824d9c224 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c
> @@ -2456,16 +2456,16 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
>  
>  	error = wacom_register_inputs(wacom);
>  	if (error)
> -		goto fail;
> +		goto fail_hw_stop;
>  
>  	if (wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD) {
>  		error = wacom_initialize_leds(wacom);
>  		if (error)
> -			goto fail;
> +			goto fail_hw_stop;
>  
>  		error = wacom_initialize_remotes(wacom);
>  		if (error)
> -			goto fail;
> +			goto fail_hw_stop;
>  	}
>  
>  	if (!wireless) {
> @@ -2496,6 +2496,7 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
>  	return 0;
>  
>  fail_quirks:
> +fail_hw_stop:
>  	hid_hw_stop(hdev);
>  fail:
>  	wacom_release_resources(wacom);

I'd get rid of 'fail_quirks' and use 'fail_hw_stop' everywhere,
otherwise:

Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: Fix multiple Use-After-Free issues in shared state
From: Dmitry Torokhov @ 2026-05-27 19:18 UTC (permalink / raw)
  To: Lee Jones
  Cc: Ping Cheng, Jason Gerecke, Jiri Kosina, Benjamin Tissoires,
	linux-input, linux-kernel
In-Reply-To: <20260527140731.642783-1-lee@kernel.org>

Hi Lee,

On Wed, May 27, 2026 at 03:07:30PM +0100, Lee Jones wrote:
> The Wacom driver coordinates state between sibling interfaces of the same
> physical device (like Pen, Touch, Pad) using a shared structure
> 'wacom_shared' inside 'wacom_hdev_data'.  The driver kept a volatile
> representative pointer 'data->dev' pointing to a sibling 'hid_device'
> for physical path comparisons during sibling matching.
> 
> This pointer management is fragile.  When the representative device is
> disconnected, wacom_remove_shared_data() failed to clear/update
> 'data->dev' or wacom_wac->shared->touch_input, leading to two Use-After-Free
> vulnerabilities:
> 
>   1. dangling 'touch_input' dereferenced during touch switch sync.
>   2. dangling 'data->dev' dereferenced during subsequent sibling probes.
> 
> Instead of adding complex pointer handover logic to keep 'data->dev'
> updated (which has logic gaps with Pad siblings and introduces race
> conditions), completely eliminate 'data->dev' pointer.
> 
> Redesign 'wacom_hdev_data' to store stable static copies of the required
> representative attributes when it is first allocated:
> 
>   - Copy 'phys' path string (stored in data->phys) for stable path comparison.
>   - Copy 'vendor' and 'product' IDs.

This I think makes sense.

>   - Copy and accumulate 'device_type' capabilities as siblings are probed.

This (accumulation) I unconvinced is safe. In any case I think it should
be a separate patch as it may change the behavior.

> 
> Also explicitly clear 'touch_input = NULL' in wacom_remove_shared_data()
> under wacom_udev_list_lock to safely avoid the touch_input UAF.

The fix is incomplete and should be split out. It is not enough to take
the lock, you need to make sure you are not racing with URB/IRQ
handling. Maybe RCU can help here.

> 
> This resolves all vulnerabilities permanently at the design level without
> complex pointer lifecycles or race-prone swaps on device removal.
> 
> Fixes: 471d17148c8b ("Input: wacom - move the USB (now hid) Wacom driver in drivers/hid")

This is not the commit that introduced this behavior IIRC.

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH v2] HID: nintendo: add support for HORI Wireless Switch Pad
From: sashiko-bot @ 2026-05-27 16:51 UTC (permalink / raw)
  To: Hector Zelaya; +Cc: linux-input, dmitry.torokhov
In-Reply-To: <20260527-hori-support-v2-1-195c2f832112@hectorzelaya.dev>

Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:

New issues:
- [High] Incompatible SPI flash data is parsed as IMU calibration for licensed controllers, leading to invalid sensor scaling and broken IMU output.
- [Medium] The controller implicitly and falsely advertises force-feedback (rumble) capabilities to user-space, despite physically lacking a vibration motor.
- [Low] Bypassing stick calibration triggers a misleading error warning on every connection.

Pre-existing issues:
- [High] The IMU report parser reads out of bounds if a truncated `JC_INPUT_IMU_DATA` report is received.
--

commit 376e2cc446988e8ea86a066e021e9f1adc2e0081
Author: Hector Zelaya <hector@hectorzelaya.dev>
Subject: HID: nintendo: add support for HORI Wireless Switch Pad

This commit adds support for the HORI Wireless Switch Pad (vendor 0x0f0d,
product 0x00f6). It configures quirks for the third-party controller, such as
handling incompatible SPI flash calibration data, swapped X/Y buttons, and the
lack of hardware vibration.

> diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
> index 29008c2cc5304..2d37ddeffdb6e 100644
> --- a/drivers/hid/hid-nintendo.c
> +++ b/drivers/hid/hid-nintendo.c
[ ... ]
> @@ -695,7 +715,8 @@ static inline bool joycon_type_is_right_joycon(struct joycon_ctlr *ctlr)
>  
>  static inline bool joycon_type_is_procon(struct joycon_ctlr *ctlr)
>  {
> -	return ctlr->ctlr_type == JOYCON_CTLR_TYPE_PRO;
> +	return ctlr->ctlr_type == JOYCON_CTLR_TYPE_PRO ||
> +	       ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO;
>  }

[Severity: Medium]
Since the commit message states there is "no vibration motor in hardware",
does returning true here incorrectly advertise force-feedback capabilities to
userspace?

Because joycon_type_is_procon() returns true, joycon_has_rumble() will also
return true. This causes joycon_input_create() to call joycon_config_rumble(),
which registers an FF_RUMBLE capability with the input subsystem, creating a
phantom rumble device.

[ ... ]
> @@ -1710,7 +1731,10 @@ static void joycon_parse_report(struct joycon_ctlr *ctlr,
>  		joycon_report_left_stick(ctlr, rep);
>  		joycon_report_right_stick(ctlr, rep);
>  		joycon_report_dpad(ctlr, rep);
> -		joycon_report_buttons(ctlr, rep, procon_button_mappings);
> +		if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO)
> +			joycon_report_buttons(ctlr, rep, lic_procon_button_mappings);
> +		else
> +			joycon_report_buttons(ctlr, rep, procon_button_mappings);
>  	} else if (joycon_type_is_any_nescon(ctlr)) {

[Severity: High]
This is a pre-existing issue, but can parsing the IMU data from this
controller lead to an out-of-bounds read if a truncated report is received?

In joycon_ctlr_read_handler(), the length check only verifies size >= 12
before calling joycon_parse_report(). If the report ID is JC_INPUT_IMU_DATA,
joycon_parse_report() delegates to joycon_parse_imu_report().

The IMU parsing logic assumes 36 bytes of IMU data starting at offset 13.
Processing a truncated IMU report over Bluetooth could lead to an
out-of-bounds read from the socket buffer.

[ ... ]
> @@ -2503,13 +2530,30 @@ static int joycon_init(struct hid_device *hdev)
>  
>  	if (joycon_has_joysticks(ctlr)) {
>  		/* get controller calibration data, and parse it */
> -		ret = joycon_request_calibration(ctlr);
> -		if (ret) {
> +		if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO) {
>  			/*
> -			 * We can function with default calibration, but it may be
> -			 * inaccurate. Provide a warning, and continue on.
> +			 * Licensed controllers may have incompatible SPI flash
> +			 * layouts. Use default calibration values.
>  			 */
> -			hid_warn(hdev, "Analog stick positions may be inaccurate\n");
> +			hid_info(hdev, "using default cal for licensed controller\n");
> +			joycon_use_default_calibration(hdev,
> +						       &ctlr->left_stick_cal_x,
> +						       &ctlr->left_stick_cal_y,
> +						       "left", 0);

[Severity: Low]
Does this trigger a misleading warning on every connection?

joycon_use_default_calibration() unconditionally prints "Failed to read ...
stick cal, using defaults; e=%d" using hid_warn(). Calling it directly with
ret=0 will print a confusing failure message even though no read was actually
attempted.

> +			joycon_use_default_calibration(hdev,
> +						       &ctlr->right_stick_cal_x,
> +						       &ctlr->right_stick_cal_y,
> +						       "right", 0);
> +		} else {
> +			ret = joycon_request_calibration(ctlr);
> +			if (ret) {
> +				/*
> +				 * We can function with default calibration, but
> +				 * it may be inaccurate. Provide a warning, and
> +				 * continue on.
> +				 */
> +				hid_warn(hdev, "Analog stick positions may be inaccurate\n");
> +			}
>  		}
>  	}
>  
> @@ -2527,8 +2571,13 @@ static int joycon_init(struct hid_device *hdev)

[Severity: High]
Should we also bypass joycon_request_imu_calibration() for licensed
controllers?

The patch acknowledges the SPI flash layout is incompatible and bypasses
analog stick calibration. However, joycon_has_imu() will return true for
LIC_PRO, meaning joycon_request_imu_calibration() is still called right
before this hunk.

If the SPI read succeeds but returns unexpected data or zeroes from the
incompatible flash, the IMU calibration scales and offsets could be populated
with garbage. If the read scales are parsed as 0, the computed divisors are
adjusted to 1, and the resulting IMU values in joycon_parse_imu_report() will
always evaluate to 0, breaking IMU functionality.

>  		/* Enable the IMU */
>  		ret = joycon_enable_imu(ctlr);
>  		if (ret) {
> -			hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
> -			goto out_unlock;
> +			if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO) {
> +				hid_dbg(hdev, "IMU enable failed for licensed controller, continuing\n");
> +				ret = 0;
> +			} else {
> +				hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
> +				goto out_unlock;
> +			}
>  		}
>  	}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260527-hori-support-v2-1-195c2f832112@hectorzelaya.dev?part=1

^ permalink raw reply

* Re: [PATCH 1/2] Input: userio - Update maintainer name
From: thatslyude @ 2026-05-27 16:32 UTC (permalink / raw)
  To: Vicki Pfau, Dmitry Torokhov, linux-input
In-Reply-To: <20260522015040.3953472-1-vi@endrift.com>

Thank you ♥

Reviewed-by: Lyude Paul <lyude@redhat.com>

On Thu, 2026-05-21 at 18:50 -0700, Vicki Pfau wrote:
> She's been committing under the name Lyude Paul for a while
> 
> Signed-off-by: Vicki Pfau <vi@endrift.com>
> ---
>  Documentation/input/userio.rst | 2 +-
>  MAINTAINERS                    | 2 +-
>  drivers/input/serio/userio.c   | 4 ++--
>  include/uapi/linux/userio.h    | 2 +-
>  4 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/input/userio.rst
> b/Documentation/input/userio.rst
> index f780c77931fe..415962152815 100644
> --- a/Documentation/input/userio.rst
> +++ b/Documentation/input/userio.rst
> @@ -5,7 +5,7 @@ The userio Protocol
>  ===================
>  
>  
> -:Copyright: |copy| 2015 Stephen Chandler Paul <thatslyude@gmail.com>
> +:Copyright: |copy| 2015 Lyude Paul <thatslyude@gmail.com>
>  
>  Sponsored by Red Hat
>  
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7cf5b55c5973..ceacb1c1d679 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -28105,7 +28105,7 @@ F:	sound/drivers/pcmtest.c
>  F:	tools/testing/selftests/alsa/test-pcmtest-driver.c
>  
>  VIRTUAL SERIO DEVICE DRIVER
> -M:	Stephen Chandler Paul <thatslyude@gmail.com>
> +M:	Lyude Paul <thatslyude@gmail.com>
>  S:	Maintained
>  F:	drivers/input/serio/userio.c
>  F:	include/uapi/linux/userio.h
> diff --git a/drivers/input/serio/userio.c
> b/drivers/input/serio/userio.c
> index 91cb7a177b2d..abca8cb6aca5 100644
> --- a/drivers/input/serio/userio.c
> +++ b/drivers/input/serio/userio.c
> @@ -1,7 +1,7 @@
>  /*
>   * userio kernel serio device emulation module
>   * Copyright (C) 2015 Red Hat
> - * Copyright (C) 2015 Stephen Chandler Paul <thatslyude@gmail.com>
> + * Copyright (C) 2015 Lyude Paul <thatslyude@gmail.com>
>   *
>   * This program is free software; you can redistribute it and/or
> modify it
>   * under the terms of the GNU Lesser General Public License as
> published by
> @@ -278,6 +278,6 @@ module_driver(userio_misc, misc_register,
> misc_deregister);
>  MODULE_ALIAS_MISCDEV(USERIO_MINOR);
>  MODULE_ALIAS("devname:" USERIO_NAME);
>  
> -MODULE_AUTHOR("Stephen Chandler Paul <thatslyude@gmail.com>");
> +MODULE_AUTHOR("Lyude Paul <thatslyude@gmail.com>");
>  MODULE_DESCRIPTION("Virtual Serio Device Support");
>  MODULE_LICENSE("GPL");
> diff --git a/include/uapi/linux/userio.h
> b/include/uapi/linux/userio.h
> index 74c9951d2cd0..98fe7e9089c4 100644
> --- a/include/uapi/linux/userio.h
> +++ b/include/uapi/linux/userio.h
> @@ -2,7 +2,7 @@
>  /*
>   * userio: virtual serio device support
>   * Copyright (C) 2015 Red Hat
> - * Copyright (C) 2015 Lyude (Stephen Chandler Paul)
> <cpaul@redhat.com>
> + * Copyright (C) 2015 Lyude Paul <thatslyude@gmail.com>
>   *
>   * This program is free software; you can redistribute it and/or
> modify it
>   * under the terms of the GNU Lesser General Public License as
> published by the

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: Fix OOB write in wacom_hid_set_device_mode()
From: Lee Jones @ 2026-05-27 16:07 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Ping Cheng, Ping Cheng, Jason Gerecke, Jiri Kosina, linux-input,
	linux-kernel, stable
In-Reply-To: <20260527155753.GD712405@google.com>

On Wed, 27 May 2026, Lee Jones wrote:

> On Thu, 21 May 2026, Lee Jones wrote:
> 
> > On Thu, 21 May 2026, Benjamin Tissoires wrote:
> > 
> > > On May 19 2026, Lee Jones wrote:
> > > > On Wed, 13 May 2026, Ping Cheng wrote:
> > > > 
> > > > > On Wed, May 13, 2026 at 1:05 AM Lee Jones <lee@kernel.org> wrote:
> > > > > >
> > > > > > wacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE
> > > > > > usage is always located in the first field (field[0]) of the feature report.
> > > > > > However, a device can specify HID_DG_INPUTMODE in a different field.
> > > > > >
> > > > > > If HID_DG_INPUTMODE is in a field other than the first one and the first
> > > > > > field has a report_count smaller than the usage_index of HID_DG_INPUTMODE,
> > > > > > this leads to an out-of-bounds write to r->field[0]->value.
> > > > > >
> > > > > > Fix this by storing the field index of HID_DG_INPUTMODE in 'struct
> > > > > > hid_data' during feature mapping.  In wacom_hid_set_device_mode(), use
> > > > > > this stored field index to access the correct field and add bounds
> > > > > > checks to ensure both the field index and the value index are within
> > > > > > valid ranges before writing.
> > > > > >
> > > > > > Cc: stable@vger.kernel.org
> > > > > > Fixes: 5ae6e89f7409 ("HID: wacom: implement the finger part of the HID generic handling")
> > > > > > Signed-off-by: Lee Jones <lee@kernel.org>
> > > > > 
> > > > > Patch looks sensible to me. Thank you for your effort, Lee!
> > > > > 
> > > > > Tested-by: Ping Cheng <ping.cheng@wacom.com>
> > > > > Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
> > > > 
> > > > Thank you Ping, I appreciate your review.
> > > > 
> > > > HID folks - any movement on this please?
> > > > 
> > > 
> > > I wanted to apply it today, but the patch conflicts with our current
> > > for-7.1/upstream-fixes.
> > > 
> > > Could you rebase on top of this branch so we can take this without me
> > > messing with your patch?
> > 
> > Sure.  Leave it with me.  Probably be early next week.
> 
> Are you sure this conflicted?
> 
> I just rebased it onto hid/for-7.1/upstream-fixes without issue.

Rebased patch here (not sure if it's actually different:

https://lore.kernel.org/all/20260527160528.847928-1-lee@kernel.org/

-- 
Lee Jones

^ permalink raw reply

* [RESEND 1/1] HID: wacom: Fix OOB write in wacom_hid_set_device_mode()
From: Lee Jones @ 2026-05-27 16:05 UTC (permalink / raw)
  To: lee, Ping Cheng, Jason Gerecke, Jiri Kosina, Benjamin Tissoires,
	linux-input, linux-kernel
  Cc: stable

wacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE
usage is always located in the first field (field[0]) of the feature report.
However, a device can specify HID_DG_INPUTMODE in a different field.

If HID_DG_INPUTMODE is in a field other than the first one and the first
field has a report_count smaller than the usage_index of HID_DG_INPUTMODE,
this leads to an out-of-bounds write to r->field[0]->value.

Fix this by storing the field index of HID_DG_INPUTMODE in 'struct
hid_data' during feature mapping.  In wacom_hid_set_device_mode(), use
this stored field index to access the correct field and add bounds
checks to ensure both the field index and the value index are within
valid ranges before writing.

Cc: stable@vger.kernel.org
Fixes: 5ae6e89f7409 ("HID: wacom: implement the finger part of the HID generic handling")
Tested-by: Ping Cheng <ping.cheng@wacom.com>
Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
Signed-off-by: Lee Jones <lee@kernel.org>
---
 drivers/hid/wacom_sys.c | 13 ++++++++++---
 drivers/hid/wacom_wac.h |  1 +
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index a32320b351e3..2220168bf116 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -356,6 +356,7 @@ static void wacom_feature_mapping(struct hid_device *hdev,
 
 		hid_data->inputmode = field->report->id;
 		hid_data->inputmode_index = usage->usage_index;
+		hid_data->inputmode_field_index = field->index;
 		break;
 
 	case HID_UP_DIGITIZER:
@@ -571,9 +572,14 @@ static int wacom_hid_set_device_mode(struct hid_device *hdev)
 
 	re = &(hdev->report_enum[HID_FEATURE_REPORT]);
 	r = re->report_id_hash[hid_data->inputmode];
-	if (r) {
-		r->field[0]->value[hid_data->inputmode_index] = 2;
-		hid_hw_request(hdev, r, HID_REQ_SET_REPORT);
+	if (r && hid_data->inputmode_field_index >= 0 &&
+	    hid_data->inputmode_field_index < r->maxfield) {
+		struct hid_field *field = r->field[hid_data->inputmode_field_index];
+
+		if (field && hid_data->inputmode_index < field->report_count) {
+			field->value[hid_data->inputmode_index] = 2;
+			hid_hw_request(hdev, r, HID_REQ_SET_REPORT);
+		}
 	}
 	return 0;
 }
@@ -2846,6 +2852,7 @@ static int wacom_probe(struct hid_device *hdev,
 		return -ENODEV;
 
 	wacom_wac->hid_data.inputmode = -1;
+	wacom_wac->hid_data.inputmode_field_index = -1;
 	wacom_wac->mode_report = -1;
 
 	if (hid_is_usb(hdev)) {
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
index d4f7d8ca1e7e..126bec6e5c0c 100644
--- a/drivers/hid/wacom_wac.h
+++ b/drivers/hid/wacom_wac.h
@@ -295,6 +295,7 @@ struct wacom_shared {
 struct hid_data {
 	__s16 inputmode;	/* InputMode HID feature, -1 if non-existent */
 	__s16 inputmode_index;	/* InputMode HID feature index in the report */
+	__s16 inputmode_field_index; /* InputMode HID feature field index in the report */
 	bool sense_state;
 	bool inrange_state;
 	bool eraser;
-- 
2.54.0.746.g67dd491aae-goog


^ permalink raw reply related

* [PATCH v2] HID: nintendo: add support for HORI Wireless Switch Pad
From: Hector Zelaya @ 2026-05-27 16:01 UTC (permalink / raw)
  To: Jiri Kosina, Benjamin Tissoires, Daniel J. Ogorchock
  Cc: linux-input, linux-kernel, Hector Zelaya, Joshua Peisach

Add support for the HORI Wireless Switch Pad (vendor 0x0f0d, product
0x00f6), a licensed third-party Nintendo Switch Pro Controller.

The controller reports controller type 0x06 (vs 0x03 for first-party
Pro Controllers) and has the following quirks:

 - SPI flash calibration data is incompatible; use default stick
   calibration values instead.
 - X and Y button bits are swapped compared to first-party controllers;
   add a dedicated button mapping table.
 - Rumble and IMU enable may timeout (no vibration motor in hardware);
   treat as non-fatal for licensed controllers.

Tested over Bluetooth on NixOS with kernel 7.0.5 and 7.0.10:
 - All 14 buttons map correctly
 - Player LED sets on connect
 - Sticks report correctly with default calibration
 - IMU/gyro data streams at 60Hz
 - D-pad reports on ABS_HAT0X/HAT0Y

Device information:
  Bluetooth name: Lic Pro Controller
  Bluetooth HID:  0005:0F0D:00F6

Assisted-by: Kiro:Auto [Amazon Kiro IDE]
Signed-off-by: Hector Zelaya <hector@hectorzelaya.dev>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
---
Changes in v2:
- Clear ret = 0 after non-fatal IMU/rumble timeouts to prevent
  unintentional probe failure.
- Link to v1: https://patch.msgid.link/20260526-hori-support-v1-1-1861c0abc2e0@hectorzelaya.dev

To: Jiri Kosina <jikos@kernel.org>
To: Benjamin Tissoires <bentiss@kernel.org>
To: "Daniel J. Ogorchock" <djogorchock@gmail.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/hid/hid-ids.h      |  3 ++
 drivers/hid/hid-nintendo.c | 80 +++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 71 insertions(+), 12 deletions(-)

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index a1cfa436344a..3b0767cc47fd 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -683,6 +683,9 @@
 #define USB_DEVICE_ID_HARMONIX_WII_RB3_KEYBOARD	        0x3330
 #define USB_DEVICE_ID_HARMONIX_WII_RB3_MPA_KEYBOARD_MODE	0x3338
 
+#define USB_VENDOR_ID_HORI			0x0f0d
+#define USB_DEVICE_ID_HORI_WIRELESS_SWITCH_PAD	0x00f6
+
 #define USB_VENDOR_ID_HP		0x03f0
 #define USB_PRODUCT_ID_HP_ELITE_PRESENTER_MOUSE_464A		0x464a
 #define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A	0x0a4a
diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
index 29008c2cc530..2d37ddeffdb6 100644
--- a/drivers/hid/hid-nintendo.c
+++ b/drivers/hid/hid-nintendo.c
@@ -316,6 +316,7 @@ enum joycon_ctlr_type {
 	JOYCON_CTLR_TYPE_JCL  = 0x01,
 	JOYCON_CTLR_TYPE_JCR  = 0x02,
 	JOYCON_CTLR_TYPE_PRO  = 0x03,
+	JOYCON_CTLR_TYPE_LIC_PRO = 0x06,
 	JOYCON_CTLR_TYPE_NESL = 0x09,
 	JOYCON_CTLR_TYPE_NESR = 0x0A,
 	JOYCON_CTLR_TYPE_SNES = 0x0B,
@@ -433,6 +434,25 @@ static const struct joycon_ctlr_button_mapping procon_button_mappings[] = {
 	{ /* sentinel */ },
 };
 
+/* Licensed Pro Controllers (e.g. HORI) swap X/Y bits in the report */
+static const struct joycon_ctlr_button_mapping lic_procon_button_mappings[] = {
+	{ BTN_EAST,	JC_BTN_A,	},
+	{ BTN_SOUTH,	JC_BTN_B,	},
+	{ BTN_NORTH,	JC_BTN_Y,	},
+	{ BTN_WEST,	JC_BTN_X,	},
+	{ BTN_TL,	JC_BTN_L,	},
+	{ BTN_TR,	JC_BTN_R,	},
+	{ BTN_TL2,	JC_BTN_ZL,	},
+	{ BTN_TR2,	JC_BTN_ZR,	},
+	{ BTN_SELECT,	JC_BTN_MINUS,	},
+	{ BTN_START,	JC_BTN_PLUS,	},
+	{ BTN_THUMBL,	JC_BTN_LSTICK,	},
+	{ BTN_THUMBR,	JC_BTN_RSTICK,	},
+	{ BTN_MODE,	JC_BTN_HOME,	},
+	{ BTN_Z,	JC_BTN_CAP,	},
+	{ /* sentinel */ },
+};
+
 static const struct joycon_ctlr_button_mapping nescon_button_mappings[] = {
 	{ BTN_SOUTH,	JC_BTN_A,	},
 	{ BTN_EAST,	JC_BTN_B,	},
@@ -695,7 +715,8 @@ static inline bool joycon_type_is_right_joycon(struct joycon_ctlr *ctlr)
 
 static inline bool joycon_type_is_procon(struct joycon_ctlr *ctlr)
 {
-	return ctlr->ctlr_type == JOYCON_CTLR_TYPE_PRO;
+	return ctlr->ctlr_type == JOYCON_CTLR_TYPE_PRO ||
+	       ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO;
 }
 
 static inline bool joycon_type_is_snescon(struct joycon_ctlr *ctlr)
@@ -1710,7 +1731,10 @@ static void joycon_parse_report(struct joycon_ctlr *ctlr,
 		joycon_report_left_stick(ctlr, rep);
 		joycon_report_right_stick(ctlr, rep);
 		joycon_report_dpad(ctlr, rep);
-		joycon_report_buttons(ctlr, rep, procon_button_mappings);
+		if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO)
+			joycon_report_buttons(ctlr, rep, lic_procon_button_mappings);
+		else
+			joycon_report_buttons(ctlr, rep, procon_button_mappings);
 	} else if (joycon_type_is_any_nescon(ctlr)) {
 		joycon_report_dpad(ctlr, rep);
 		joycon_report_buttons(ctlr, rep, nescon_button_mappings);
@@ -2156,7 +2180,10 @@ static int joycon_input_create(struct joycon_ctlr *ctlr)
 		joycon_config_left_stick(ctlr->input);
 		joycon_config_right_stick(ctlr->input);
 		joycon_config_dpad(ctlr->input);
-		joycon_config_buttons(ctlr->input, procon_button_mappings);
+		if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO)
+			joycon_config_buttons(ctlr->input, lic_procon_button_mappings);
+		else
+			joycon_config_buttons(ctlr->input, procon_button_mappings);
 	} else if (joycon_type_is_any_nescon(ctlr)) {
 		joycon_config_dpad(ctlr->input);
 		joycon_config_buttons(ctlr->input, nescon_button_mappings);
@@ -2503,13 +2530,30 @@ static int joycon_init(struct hid_device *hdev)
 
 	if (joycon_has_joysticks(ctlr)) {
 		/* get controller calibration data, and parse it */
-		ret = joycon_request_calibration(ctlr);
-		if (ret) {
+		if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO) {
 			/*
-			 * We can function with default calibration, but it may be
-			 * inaccurate. Provide a warning, and continue on.
+			 * Licensed controllers may have incompatible SPI flash
+			 * layouts. Use default calibration values.
 			 */
-			hid_warn(hdev, "Analog stick positions may be inaccurate\n");
+			hid_info(hdev, "using default cal for licensed controller\n");
+			joycon_use_default_calibration(hdev,
+						       &ctlr->left_stick_cal_x,
+						       &ctlr->left_stick_cal_y,
+						       "left", 0);
+			joycon_use_default_calibration(hdev,
+						       &ctlr->right_stick_cal_x,
+						       &ctlr->right_stick_cal_y,
+						       "right", 0);
+		} else {
+			ret = joycon_request_calibration(ctlr);
+			if (ret) {
+				/*
+				 * We can function with default calibration, but
+				 * it may be inaccurate. Provide a warning, and
+				 * continue on.
+				 */
+				hid_warn(hdev, "Analog stick positions may be inaccurate\n");
+			}
 		}
 	}
 
@@ -2527,8 +2571,13 @@ static int joycon_init(struct hid_device *hdev)
 		/* Enable the IMU */
 		ret = joycon_enable_imu(ctlr);
 		if (ret) {
-			hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
-			goto out_unlock;
+			if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO) {
+				hid_dbg(hdev, "IMU enable failed for licensed controller, continuing\n");
+				ret = 0;
+			} else {
+				hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
+				goto out_unlock;
+			}
 		}
 	}
 
@@ -2543,8 +2592,13 @@ static int joycon_init(struct hid_device *hdev)
 		/* Enable rumble */
 		ret = joycon_enable_rumble(ctlr);
 		if (ret) {
-			hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret);
-			goto out_unlock;
+			if (ctlr->ctlr_type == JOYCON_CTLR_TYPE_LIC_PRO) {
+				hid_dbg(hdev, "rumble enable failed for licensed controller, continuing\n");
+				ret = 0;
+			} else {
+				hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret);
+				goto out_unlock;
+			}
 		}
 	}
 
@@ -2813,6 +2867,8 @@ static const struct hid_device_id nintendo_hid_devices[] = {
 			 USB_DEVICE_ID_NINTENDO_GENCON) },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO,
 			 USB_DEVICE_ID_NINTENDO_N64CON) },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_HORI,
+			 USB_DEVICE_ID_HORI_WIRELESS_SWITCH_PAD) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, nintendo_hid_devices);

---
base-commit: e71bac24ec1f517f399a9eb471255b8f1c330b93
change-id: 20260526-hori-support-08b08bca40d8

Best regards,
--  
Hector Zelaya <hector@hectorzelaya.dev>


^ permalink raw reply related

* Re: [PATCH] HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias
From: sashiko-bot @ 2026-05-27 16:00 UTC (permalink / raw)
  Cc: linux-input, dmitry.torokhov
In-Reply-To: <tencent_61698D7A14AC9BFE6C9F3FDB797FCA02E309@qq.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Adding `PRP0001` directly to the ACPI match table incorrectly bypasses `compatible` string matching, causing the driver to intercept all PRP0001 I2C devices and spam the kernel log.
--

commit 7d0ee8c935eaadd4f5e66e197d5712a960fd31f5
Author: 谢致邦 (XIE Zhibang) <Yeking@Red54.com>

HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias

This commit adds the PRP0001 ACPI ID to the i2c-hid-acpi driver's match
table and manually defines an OF module alias. This is intended to allow the
driver to probe devices that declare themselves as PRP0001 with a "hid-over-i2c"
compatible string in their _DSD.

> diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
> index abd700a101f46..515ced22c978d 100644
> --- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
> +++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
> @@ -119,10 +119,30 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
>  static const struct acpi_device_id i2c_hid_acpi_match[] = {
>  	{ "ACPI0C50" },
>  	{ "PNP0C50" },
> +	/*
> +	 * Some devices, for example the Lenovo KaiTian N60d and Inspur CP300L3,
> +	 * declare their I2C HID ACPI touchpad in the DSDT as _HID "PRP0001"
> +	 * with _DSD compatible "hid-over-i2c" instead of the standard
> +	 * "PNP0C50". This worked before i2c-hid was split into i2c-hid-acpi
> +	 * and i2c-hid-of, but PRP0001 devices on the ACPI bus are no longer
> +	 * probed after the split. The _DSM call in probe() naturally rejects
> +	 * PRP0001 devices that are not actually I2C HID, so matching PRP0001
> +	 * here is safe.
> +	 */
> +	{ "PRP0001" },

[Severity: Medium]
Does adding PRP0001 directly to the ACPI match table bypass the OF compatible
string check in __acpi_match_device()?

PRP0001 is a special identifier used by the ACPI subsystem to defer matching
to the OF compatible string within the device's _DSD. When PRP0001 is
explicitly added here, the match returns true immediately without checking the
compatible string.

If a system has other unrelated I2C devices using PRP0001 (like temperature
sensors or RTCs utilizing compatible strings), won't the driver core attempt
to bind i2c-hid-acpi to all of them?

Because i2c_hid_acpi_probe() unconditionally evaluates the HID _DSM which will
fail for these unrelated devices, does this introduce boot delays and pollute
the kernel log with false-positive "Error _DSM call to get HID descriptor
address failed" messages for every non-HID PRP0001 device?

>  	{ }
>  };
>  MODULE_DEVICE_TABLE(acpi, i2c_hid_acpi_match);
>  
> +	/*
> +	 * When an ACPI device has a _DSD "compatible" property, the uevent
> +	 * modalias uses the OF format (of:N<name>T<compatible>) instead of
> +	 * the ACPI format (acpi:<HID>). Add an OF alias so udev can autoload
> +	 * this module for such devices. probe() will reject pure DT devices
> +	 * via the _DSM HID descriptor call.
> +	 */
> +MODULE_ALIAS("of:N*TChid-over-i2c");

[Severity: Medium]
Instead of manually defining this MODULE_ALIAS, could we define an
of_device_id match table containing { .compatible = "hid-over-i2c" }?

Using an of_device_id table would naturally solve the matching logic by
allowing the ACPI core to correctly evaluate the _DSD compatible string.
This prevents intercepting unrelated PRP0001 devices, and the driver core
would automatically generate the correct, robust module alias for autoloading.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/tencent_61698D7A14AC9BFE6C9F3FDB797FCA02E309@qq.com?part=1

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: Fix OOB write in wacom_hid_set_device_mode()
From: Lee Jones @ 2026-05-27 15:57 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Ping Cheng, Ping Cheng, Jason Gerecke, Jiri Kosina, linux-input,
	linux-kernel, stable
In-Reply-To: <20260521162212.GF3591266@google.com>

On Thu, 21 May 2026, Lee Jones wrote:

> On Thu, 21 May 2026, Benjamin Tissoires wrote:
> 
> > On May 19 2026, Lee Jones wrote:
> > > On Wed, 13 May 2026, Ping Cheng wrote:
> > > 
> > > > On Wed, May 13, 2026 at 1:05 AM Lee Jones <lee@kernel.org> wrote:
> > > > >
> > > > > wacom_hid_set_device_mode() currently assumes that the HID_DG_INPUTMODE
> > > > > usage is always located in the first field (field[0]) of the feature report.
> > > > > However, a device can specify HID_DG_INPUTMODE in a different field.
> > > > >
> > > > > If HID_DG_INPUTMODE is in a field other than the first one and the first
> > > > > field has a report_count smaller than the usage_index of HID_DG_INPUTMODE,
> > > > > this leads to an out-of-bounds write to r->field[0]->value.
> > > > >
> > > > > Fix this by storing the field index of HID_DG_INPUTMODE in 'struct
> > > > > hid_data' during feature mapping.  In wacom_hid_set_device_mode(), use
> > > > > this stored field index to access the correct field and add bounds
> > > > > checks to ensure both the field index and the value index are within
> > > > > valid ranges before writing.
> > > > >
> > > > > Cc: stable@vger.kernel.org
> > > > > Fixes: 5ae6e89f7409 ("HID: wacom: implement the finger part of the HID generic handling")
> > > > > Signed-off-by: Lee Jones <lee@kernel.org>
> > > > 
> > > > Patch looks sensible to me. Thank you for your effort, Lee!
> > > > 
> > > > Tested-by: Ping Cheng <ping.cheng@wacom.com>
> > > > Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
> > > 
> > > Thank you Ping, I appreciate your review.
> > > 
> > > HID folks - any movement on this please?
> > > 
> > 
> > I wanted to apply it today, but the patch conflicts with our current
> > for-7.1/upstream-fixes.
> > 
> > Could you rebase on top of this branch so we can take this without me
> > messing with your patch?
> 
> Sure.  Leave it with me.  Probably be early next week.

Are you sure this conflicted?

I just rebased it onto hid/for-7.1/upstream-fixes without issue.

-- 
Lee Jones

^ permalink raw reply

* Re: [PATCH] HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias
From: Hans de Goede @ 2026-05-27 15:44 UTC (permalink / raw)
  To: 谢致邦 (XIE Zhibang), linux-input
  Cc: Jiri Kosina, Benjamin Tissoires, Mario Limonciello (AMD),
	Douglas Anderson, linux-kernel
In-Reply-To: <tencent_61698D7A14AC9BFE6C9F3FDB797FCA02E309@qq.com>

Hi,

On 27-May-26 17:17, 谢致邦 (XIE Zhibang) wrote:
> Some devices, for example the Lenovo KaiTian N60d and Inspur CP300L3,
> declare their I2C HID ACPI touchpad in the DSDT as _HID "PRP0001" with
> _DSD compatible "hid-over-i2c" instead of the standard "PNP0C50". This
> worked before commit b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and
> OF are separate modules"), but after the split, PRP0001 devices on the
> ACPI bus are no longer probed by either driver.
> 
> Fix this by adding PRP0001 to i2c_hid_acpi_match so the driver probes
> these devices. The existing _DSM HID descriptor call in probe()
> naturally rejects any PRP0001 device that does not implement the
> protocol.
> 
> A MODULE_ALIAS is also needed for autoloading: when an ACPI device has a
> _DSD "compatible" property, the uevent modalias uses the OF format
> (of:N<name>T<compatible>) instead of the ACPI format (acpi:<HID>), so
> udev would otherwise load only i2c-hid-of, which fails to probe because
> these devices lack the "hid-descr-addr" property.

Ok, so first of all please contact the vendors of these devices to fix
their firmware.

Either a _HID "PRP0001" value should be used with a *full* of description
matching the binding from Documentation/devicetree/bindings/input/hid-over-i2c.yaml
including hid-descr-addr. Or the firmware should use PNP0C50 + the _DSM
method to get the hid-desc-addr. Mixing and matching these 2 is bad,
very very bad.

IMHO the fix here as is is not acceptable this will make the i2c_hid_acpi
module load and worse *probe* every ACPI device with a "PRP0001" HID.

You claim the existing _DSM HID descriptor call will save the driver from
actually doing much of anything but IMHO that should not be relied on.

Currently the i2c_hid_of driver will get automatically loaded + try
to probe the device, but as you say this will fail due to lacking
hid-desc-addr. Have you tried adding DMI quirks to i2c_hid_of to
provide the hid-desc-addr through a quirk?  (I wonder if the IRQ will
get picked up ok)

That seems a better solution than making 2 drivers probe the same
"hid-over-i2c" compatible and let one fail (with an ugly error msg
in the logs), while also making i2c_hid_acpi probe all PRP0001 devices
and make that fail (with more err logging) on all other devices.

I see the 2 laptops here are both using a Loongson architecture,
so any fix for this should IMHO also be wrapped in
#ifdef CONFIG_LOONGARCH ... #endif

Regards,

Hans





> 
> Fixes: b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and OF are separate modules")
> Signed-off-by: 谢致邦 (XIE Zhibang) <Yeking@Red54.com>
> ---
>  drivers/hid/i2c-hid/i2c-hid-acpi.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
> index abd700a101f4..515ced22c978 100644
> --- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
> +++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
> @@ -119,10 +119,30 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
>  static const struct acpi_device_id i2c_hid_acpi_match[] = {
>  	{ "ACPI0C50" },
>  	{ "PNP0C50" },
> +	/*
> +	 * Some devices, for example the Lenovo KaiTian N60d and Inspur CP300L3,
> +	 * declare their I2C HID ACPI touchpad in the DSDT as _HID "PRP0001"
> +	 * with _DSD compatible "hid-over-i2c" instead of the standard
> +	 * "PNP0C50". This worked before i2c-hid was split into i2c-hid-acpi
> +	 * and i2c-hid-of, but PRP0001 devices on the ACPI bus are no longer
> +	 * probed after the split. The _DSM call in probe() naturally rejects
> +	 * PRP0001 devices that are not actually I2C HID, so matching PRP0001
> +	 * here is safe.
> +	 */
> +	{ "PRP0001" },
>  	{ }
>  };
>  MODULE_DEVICE_TABLE(acpi, i2c_hid_acpi_match);
>  
> +	/*
> +	 * When an ACPI device has a _DSD "compatible" property, the uevent
> +	 * modalias uses the OF format (of:N<name>T<compatible>) instead of
> +	 * the ACPI format (acpi:<HID>). Add an OF alias so udev can autoload
> +	 * this module for such devices. probe() will reject pure DT devices
> +	 * via the _DSM HID descriptor call.
> +	 */
> +MODULE_ALIAS("of:N*TChid-over-i2c");
> +
>  static struct i2c_driver i2c_hid_acpi_driver = {
>  	.driver = {
>  		.name	= "i2c_hid_acpi",


^ permalink raw reply

* [PATCH] HID: i2c-hid-acpi: Add PRP0001 to match table and OF alias
From: 谢致邦 (XIE Zhibang) @ 2026-05-27 15:17 UTC (permalink / raw)
  To: linux-input
  Cc: 谢致邦 (XIE Zhibang), Jiri Kosina,
	Benjamin Tissoires, Mario Limonciello (AMD), Hans de Goede,
	Douglas Anderson, linux-kernel

Some devices, for example the Lenovo KaiTian N60d and Inspur CP300L3,
declare their I2C HID ACPI touchpad in the DSDT as _HID "PRP0001" with
_DSD compatible "hid-over-i2c" instead of the standard "PNP0C50". This
worked before commit b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and
OF are separate modules"), but after the split, PRP0001 devices on the
ACPI bus are no longer probed by either driver.

Fix this by adding PRP0001 to i2c_hid_acpi_match so the driver probes
these devices. The existing _DSM HID descriptor call in probe()
naturally rejects any PRP0001 device that does not implement the
protocol.

A MODULE_ALIAS is also needed for autoloading: when an ACPI device has a
_DSD "compatible" property, the uevent modalias uses the OF format
(of:N<name>T<compatible>) instead of the ACPI format (acpi:<HID>), so
udev would otherwise load only i2c-hid-of, which fails to probe because
these devices lack the "hid-descr-addr" property.

Fixes: b33752c30023 ("HID: i2c-hid: Reorganize so ACPI and OF are separate modules")
Signed-off-by: 谢致邦 (XIE Zhibang) <Yeking@Red54.com>
---
 drivers/hid/i2c-hid/i2c-hid-acpi.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
index abd700a101f4..515ced22c978 100644
--- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
+++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
@@ -119,10 +119,30 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
 static const struct acpi_device_id i2c_hid_acpi_match[] = {
 	{ "ACPI0C50" },
 	{ "PNP0C50" },
+	/*
+	 * Some devices, for example the Lenovo KaiTian N60d and Inspur CP300L3,
+	 * declare their I2C HID ACPI touchpad in the DSDT as _HID "PRP0001"
+	 * with _DSD compatible "hid-over-i2c" instead of the standard
+	 * "PNP0C50". This worked before i2c-hid was split into i2c-hid-acpi
+	 * and i2c-hid-of, but PRP0001 devices on the ACPI bus are no longer
+	 * probed after the split. The _DSM call in probe() naturally rejects
+	 * PRP0001 devices that are not actually I2C HID, so matching PRP0001
+	 * here is safe.
+	 */
+	{ "PRP0001" },
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, i2c_hid_acpi_match);
 
+	/*
+	 * When an ACPI device has a _DSD "compatible" property, the uevent
+	 * modalias uses the OF format (of:N<name>T<compatible>) instead of
+	 * the ACPI format (acpi:<HID>). Add an OF alias so udev can autoload
+	 * this module for such devices. probe() will reject pure DT devices
+	 * via the _DSM HID descriptor call.
+	 */
+MODULE_ALIAS("of:N*TChid-over-i2c");
+
 static struct i2c_driver i2c_hid_acpi_driver = {
 	.driver = {
 		.name	= "i2c_hid_acpi",
-- 
2.43.0


^ permalink raw reply related

* Re: [PATCH v6 0/6] mfd: cpcap: convert documentation to schema and add Mot board support
From: Lee Jones @ 2026-05-27 15:14 UTC (permalink / raw)
  To: Svyatoslav Ryhel
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Pavel Machek, linux-input, devicetree, linux-kernel, linux-leds
In-Reply-To: <20260520182124.117863-1-clamor95@gmail.com>

On Wed, 20 May 2026, Svyatoslav Ryhel wrote:

> The initial goal was only to add support for the CPCAP used in the Mot
> Tegra20 board; however, since the documentation was already partially
> converted, I decided to complete the conversion to schema too.
> 
> The CPCAP regulator, leds, rtc, pwrbutton and core files were converted
> from TXT to YAML while preserving the original structure. Mot board
> compatibility was added to the regulator and core schema. Since these
> were one-line patches, they were not separated into dedicated commits;
> however, the commit message notes this for both cases.
> 
> Finally, the CPCAP MFD was slightly refactored to improve support for
> multiple subcell compositions.

Once you've fixed the DT issues that Rob pointed out, I'll merge the set.

-- 
Lee Jones

^ permalink raw reply

* Re: [PATCH] Input: ims-pcu - fix use-after-free in probe error path
From: Dmitry Torokhov @ 2026-05-27 14:58 UTC (permalink / raw)
  To: Zhian Liang; +Cc: linux-input, linux-kernel, stable
In-Reply-To: <20260525151410.42750-1-liangzhan5dev@gmail.com>

On Mon, May 25, 2026 at 11:14:10PM +0800, Zhian Liang wrote:
> If the driver fails during init (e.g. in ims_pcu_init_application_mode),the error path frees the pcu struct without clearing the interface data.
> 
> If the device is disconnected while in this state, the disconnect handler will retrieve the stale pointer from
> usb_get_intfdata() and trigger a use-after-free

This does not make sense. How will disconnect handler run if probe has
not completed?

> 
> Fix this by setting the interface data to NULL in the probe before freeing the pcu struct.
> 
> Fixes: 628329d52474 ("Input: add IMS Passenger Control Unit driver")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Zhian Liang <liangzhan5dev@gmail.com>
> ---
>  drivers/input/misc/ims-pcu.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
> index 4c022a36dbe8..fce3232ebf07 100644
> --- a/drivers/input/misc/ims-pcu.c
> +++ b/drivers/input/misc/ims-pcu.c
> @@ -2063,6 +2063,10 @@ static int ims_pcu_probe(struct usb_interface *intf,
>  	ims_pcu_buffers_free(pcu);
>  err_unclaim_intf:
>  	usb_driver_release_interface(&ims_pcu_driver, pcu->data_intf);
> +	goto err_clear_intfdata;
> +err_clear_intfdata:
> +	if (pcu->ctrl_intf)
> +		usb_set_intfdata(pcu->ctrl_intf, NULL);
>  err_free_mem:
>  	kfree(pcu);
>  	return error;

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH 1/1] HID: wacom: Fix multiple Use-After-Free issues in shared state
From: sashiko-bot @ 2026-05-27 14:55 UTC (permalink / raw)
  To: Lee Jones; +Cc: dmitry.torokhov, linux-input
In-Reply-To: <20260527140731.642783-1-lee@kernel.org>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:

Pre-existing issues:
- [High] The patch fails to fully resolve the Use-After-Free vulnerability for `touch_input` because interrupt handlers access it locklessly, leading to a Time-of-Check to Time-of-Use (TOCTOU) race condition.
- [High] A race condition exists between `kref_put()` and concurrent `kref_get()` due to missing list-level locking during object removal.
- [High] Unprotected and temporally separated assignments of `shared->touch` and `shared->touch_input` during probe allow concurrent `uhid` devices to desynchronize the shared state.
--

commit 007cb667e9154320e49d7d42911e8193520da3fe
Author: Lee Jones <lee@kernel.org>

HID: wacom: Fix multiple Use-After-Free issues in shared state

This commit redesigns the wacom_hdev_data structure to store stable static
copies of required attributes instead of a fragile representative pointer.
It explicitly clears the touch_input pointer in wacom_remove_shared_data()
under the wacom_udev_list_lock to address use-after-free vulnerabilities.

> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index a32320b351e3e..9e4819c197c1b 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c

[ ... ]

> @@ -871,10 +884,14 @@ static void wacom_remove_shared_data(void *res)
>  		data = container_of(wacom_wac->shared, struct wacom_hdev_data,
>  				    shared);
>  
> -		if (wacom_wac->shared->touch == wacom->hdev)
> +		mutex_lock(&wacom_udev_list_lock);
> +		if (wacom_wac->shared->touch == wacom->hdev) {
>  			wacom_wac->shared->touch = NULL;
> -		else if (wacom_wac->shared->pen == wacom->hdev)
> +			wacom_wac->shared->touch_input = NULL;

[Severity: High]
This isn't a bug introduced by this patch, but does clearing this pointer under
the lock fully prevent use-after-free conditions?

Interrupt handlers read shared->touch_input locklessly (for example, in
wacom_wireless_irq()). An interrupt handler could check that
shared->touch_input is valid, but then get preempted.

Concurrently, wacom_remove_shared_data() clears the pointer here, and the
input device is subsequently unregistered and freed by devres.

When the interrupt handler resumes, could it pass the freed pointer to
input_report_switch(), causing a use-after-free? The lock protects writers,
but it appears readers remain vulnerable to this time-of-check to
time-of-use race.

> +		} else if (wacom_wac->shared->pen == wacom->hdev) {
>  			wacom_wac->shared->pen = NULL;
> +		}
> +		mutex_unlock(&wacom_udev_list_lock);
>  
>  		kref_put(&data->kref, wacom_release_shared_data);

[Severity: High]
This is a pre-existing issue, but can this kref_put() race with concurrent
list traversal?

It is called outside of wacom_udev_list_lock. If the reference count drops to 0,
another thread probing a sibling device could simultaneously acquire the list
lock in wacom_add_shared_data(), find the logically dead object before it is
removed from the list, and call kref_get().

This would attempt to increment a 0 refcount, returning a pointer to an object
that will unconditionally be freed as soon as the first thread acquires the
lock in wacom_release_shared_data(), leading to a use-after-free.

>  		wacom_wac->shared = NULL;

[ ... ]

> @@ -899,8 +916,13 @@ static int wacom_add_shared_data(struct hid_device *hdev)
>  		}
>  
>  		kref_init(&data->kref);
> -		data->dev = hdev;
> +		strscpy(data->phys, hdev->phys, sizeof(data->phys));
> +		data->vendor = hdev->vendor;
> +		data->product = hdev->product;
> +		data->device_type = wacom_wac->features.device_type;
>  		list_add_tail(&data->list, &wacom_udev_list);
> +	} else {
> +		data->device_type |= wacom_wac->features.device_type;
>  	}
>  
>  	mutex_unlock(&wacom_udev_list_lock);

[Severity: High]
This is a pre-existing issue, but do the assignments to shared->touch and
shared->touch_input that follow this unlock need protection?

They are performed sequentially outside of any lock during device probe:

	if (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH)
		wacom_wac->shared->touch = hdev;

If two virtual devices with the same physical path are created concurrently
(for example, via uhid), they will share the same wacom_hdev_data structure.

Could a race in the probe sequence result in shared->touch pointing to
device B, while shared->touch_input points to device A?

If device A is then disconnected, wacom_remove_shared_data() would see
shared->touch == wacom->hdev as false and skip clearing shared->touch_input.
Device A's input device would be freed, leaving a dangling pointer that could
be dereferenced by sibling devices.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260527140731.642783-1-lee@kernel.org?part=1

^ permalink raw reply

* Re: [PATCH v7 0/7] mfd: Add support for Asus Transformer embedded controller
From: Lee Jones @ 2026-05-27 14:46 UTC (permalink / raw)
  To: Svyatoslav Ryhel
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Torokhov,
	Pavel Machek, Sebastian Reichel, Ion Agorria,
	Michał Mirosław, devicetree, linux-kernel, linux-input,
	linux-leds, linux-pm
In-Reply-To: <20260518095907.36158-1-clamor95@gmail.com>

On Mon, 18 May 2026, Svyatoslav Ryhel wrote:

> Add support for embedded controller used in Asus Transformers for
> managing power and input functions.

Once you have your Input Acks, I'll merge everything through MFD.

-- 
Lee Jones

^ permalink raw reply

* [PATCH 1/1] HID: wacom: Fix multiple Use-After-Free issues in shared state
From: Lee Jones @ 2026-05-27 14:07 UTC (permalink / raw)
  To: lee, Ping Cheng, Jason Gerecke, Jiri Kosina, Benjamin Tissoires,
	Dmitry Torokhov, linux-input, linux-kernel

The Wacom driver coordinates state between sibling interfaces of the same
physical device (like Pen, Touch, Pad) using a shared structure
'wacom_shared' inside 'wacom_hdev_data'.  The driver kept a volatile
representative pointer 'data->dev' pointing to a sibling 'hid_device'
for physical path comparisons during sibling matching.

This pointer management is fragile.  When the representative device is
disconnected, wacom_remove_shared_data() failed to clear/update
'data->dev' or wacom_wac->shared->touch_input, leading to two Use-After-Free
vulnerabilities:

  1. dangling 'touch_input' dereferenced during touch switch sync.
  2. dangling 'data->dev' dereferenced during subsequent sibling probes.

Instead of adding complex pointer handover logic to keep 'data->dev'
updated (which has logic gaps with Pad siblings and introduces race
conditions), completely eliminate 'data->dev' pointer.

Redesign 'wacom_hdev_data' to store stable static copies of the required
representative attributes when it is first allocated:

  - Copy 'phys' path string (stored in data->phys) for stable path comparison.
  - Copy 'vendor' and 'product' IDs.
  - Copy and accumulate 'device_type' capabilities as siblings are probed.

Also explicitly clear 'touch_input = NULL' in wacom_remove_shared_data()
under wacom_udev_list_lock to safely avoid the touch_input UAF.

This resolves all vulnerabilities permanently at the design level without
complex pointer lifecycles or race-prone swaps on device removal.

Fixes: 471d17148c8b ("Input: wacom - move the USB (now hid) Wacom driver in drivers/hid")
Signed-off-by: Lee Jones <lee@kernel.org>
---
 drivers/hid/wacom_sys.c | 58 ++++++++++++++++++++++++++++-------------
 1 file changed, 40 insertions(+), 18 deletions(-)

diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index a32320b351e3..9e4819c197c1 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -753,27 +753,40 @@ static void wacom_retrieve_hid_descriptor(struct hid_device *hdev,
 struct wacom_hdev_data {
 	struct list_head list;
 	struct kref kref;
-	struct hid_device *dev;
+	char phys[64];
+	__u32 vendor;
+	__u32 product;
+	__u32 device_type;
 	struct wacom_shared shared;
 };
 
+static bool wacom_compare_device_paths(struct hid_device *hdev_a,
+				       const char *phys_b, char separator)
+{
+	int n1 = strrchr(hdev_a->phys, separator) - hdev_a->phys;
+	int n2 = strrchr(phys_b, separator) - phys_b;
+
+	if (n1 != n2 || n1 <= 0 || n2 <= 0)
+		return false;
+
+	return !strncmp(hdev_a->phys, phys_b, n1);
+}
+
 static LIST_HEAD(wacom_udev_list);
 static DEFINE_MUTEX(wacom_udev_list_lock);
 
 static bool wacom_are_sibling(struct hid_device *hdev,
-		struct hid_device *sibling)
+		struct wacom_hdev_data *data)
 {
 	struct wacom *wacom = hid_get_drvdata(hdev);
 	struct wacom_features *features = &wacom->wacom_wac.features;
-	struct wacom *sibling_wacom = hid_get_drvdata(sibling);
-	struct wacom_features *sibling_features = &sibling_wacom->wacom_wac.features;
 	__u32 oVid = features->oVid ? features->oVid : hdev->vendor;
 	__u32 oPid = features->oPid ? features->oPid : hdev->product;
 
 	/* The defined oVid/oPid must match that of the sibling */
-	if (features->oVid != HID_ANY_ID && sibling->vendor != oVid)
+	if (features->oVid != HID_ANY_ID && data->vendor != oVid)
 		return false;
-	if (features->oPid != HID_ANY_ID && sibling->product != oPid)
+	if (features->oPid != HID_ANY_ID && data->product != oPid)
 		return false;
 
 	/*
@@ -781,11 +794,11 @@ static bool wacom_are_sibling(struct hid_device *hdev,
 	 * device path, while those with different VID/PID must share
 	 * the same physical parent device path.
 	 */
-	if (hdev->vendor == sibling->vendor && hdev->product == sibling->product) {
-		if (!hid_compare_device_paths(hdev, sibling, '/'))
+	if (hdev->vendor == data->vendor && hdev->product == data->product) {
+		if (!wacom_compare_device_paths(hdev, data->phys, '/'))
 			return false;
 	} else {
-		if (!hid_compare_device_paths(hdev, sibling, '.'))
+		if (!wacom_compare_device_paths(hdev, data->phys, '.'))
 			return false;
 	}
 
@@ -798,7 +811,7 @@ static bool wacom_are_sibling(struct hid_device *hdev,
 	 * devices.
 	 */
 	if ((features->device_type & WACOM_DEVICETYPE_DIRECT) &&
-	    !(sibling_features->device_type & WACOM_DEVICETYPE_DIRECT))
+	    !(data->device_type & WACOM_DEVICETYPE_DIRECT))
 		return false;
 
 	/*
@@ -806,17 +819,17 @@ static bool wacom_are_sibling(struct hid_device *hdev,
 	 * devices.
 	 */
 	if (!(features->device_type & WACOM_DEVICETYPE_DIRECT) &&
-	    (sibling_features->device_type & WACOM_DEVICETYPE_DIRECT))
+	    (data->device_type & WACOM_DEVICETYPE_DIRECT))
 		return false;
 
 	/* Pen devices may only be siblings of touch devices */
 	if ((features->device_type & WACOM_DEVICETYPE_PEN) &&
-	    !(sibling_features->device_type & WACOM_DEVICETYPE_TOUCH))
+	    !(data->device_type & WACOM_DEVICETYPE_TOUCH))
 		return false;
 
 	/* Touch devices may only be siblings of pen devices */
 	if ((features->device_type & WACOM_DEVICETYPE_TOUCH) &&
-	    !(sibling_features->device_type & WACOM_DEVICETYPE_PEN))
+	    !(data->device_type & WACOM_DEVICETYPE_PEN))
 		return false;
 
 	/*
@@ -832,7 +845,7 @@ static struct wacom_hdev_data *wacom_get_hdev_data(struct hid_device *hdev)
 
 	/* Try to find an already-probed interface from the same device */
 	list_for_each_entry(data, &wacom_udev_list, list) {
-		if (hid_compare_device_paths(hdev, data->dev, '/')) {
+		if (wacom_compare_device_paths(hdev, data->phys, '/')) {
 			kref_get(&data->kref);
 			return data;
 		}
@@ -840,7 +853,7 @@ static struct wacom_hdev_data *wacom_get_hdev_data(struct hid_device *hdev)
 
 	/* Fallback to finding devices that appear to be "siblings" */
 	list_for_each_entry(data, &wacom_udev_list, list) {
-		if (wacom_are_sibling(hdev, data->dev)) {
+		if (wacom_are_sibling(hdev, data)) {
 			kref_get(&data->kref);
 			return data;
 		}
@@ -871,10 +884,14 @@ static void wacom_remove_shared_data(void *res)
 		data = container_of(wacom_wac->shared, struct wacom_hdev_data,
 				    shared);
 
-		if (wacom_wac->shared->touch == wacom->hdev)
+		mutex_lock(&wacom_udev_list_lock);
+		if (wacom_wac->shared->touch == wacom->hdev) {
 			wacom_wac->shared->touch = NULL;
-		else if (wacom_wac->shared->pen == wacom->hdev)
+			wacom_wac->shared->touch_input = NULL;
+		} else if (wacom_wac->shared->pen == wacom->hdev) {
 			wacom_wac->shared->pen = NULL;
+		}
+		mutex_unlock(&wacom_udev_list_lock);
 
 		kref_put(&data->kref, wacom_release_shared_data);
 		wacom_wac->shared = NULL;
@@ -899,8 +916,13 @@ static int wacom_add_shared_data(struct hid_device *hdev)
 		}
 
 		kref_init(&data->kref);
-		data->dev = hdev;
+		strscpy(data->phys, hdev->phys, sizeof(data->phys));
+		data->vendor = hdev->vendor;
+		data->product = hdev->product;
+		data->device_type = wacom_wac->features.device_type;
 		list_add_tail(&data->list, &wacom_udev_list);
+	} else {
+		data->device_type |= wacom_wac->features.device_type;
 	}
 
 	mutex_unlock(&wacom_udev_list_lock);
-- 
2.54.0.746.g67dd491aae-goog


^ permalink raw reply related

* Re: [stable backport request] linux-6.19.y: cac61b58a3b6 ("HID: playstation: Clamp num_touch_reports")
From: Greg KH @ 2026-05-27  8:09 UTC (permalink / raw)
  To: sin99xx
  Cc: stable, sashal, jikos, bentiss, roderick.colenbrander, tjmercier,
	bsevens, linux-input
In-Reply-To: <CAMX0No2KAENnb=w-0R_8vGsnW+Ux0B+LMZKHt44YPJNjxJeP7w@mail.gmail.com>

On Tue, May 26, 2026 at 01:30:51PM -0400, sin99xx wrote:
> Hi stable team,
> 
> linux-6.19.y is still missing the backport of
> 
>     cac61b58a3b6 "HID: playstation: Clamp num_touch_reports"
>                   (T.J. Mercier, 2026-05-12, Cc: stable@vger.kernel.org)
> 
> and its precursor
> 
>     82a4fc463309 "HID: playstation: validate num_touch_reports in
>                   DualShock 4 reports"
>                   (Benoît Sevens, 2026-04-09)
> 
> Both are present in mainline, linux-6.6.y and linux-6.12.y. As of
> v6.19.14 (released 2026-04-22), linux-6.19.y still carries the
> unclamped loop. Function-level disassembly of hid-playstation.ko on a
> 6.19.14 build confirms neither patch is applied:

6.19.y is long end-of-life, which is perhaps why it's not in that tree :)

Always check the front page of kernel.org for the list of kernels that
are still being supported.

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH] Input: rmi4 - release F54 queue on video registration failure
From: Hans Verkuil @ 2026-05-27  7:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Myeonghun Pak, Hans Verkuil
  Cc: linux-input, linux-kernel, stable, Ijae Kim
In-Reply-To: <ahXYreASLGSPuIe_@google.com>

On 5/26/26 7:36 PM, Dmitry Torokhov wrote:
> On Mon, May 25, 2026 at 03:23:45AM +0900, Myeonghun Pak wrote:
>> rmi_f54_probe() initializes the videobuf2 queue before registering the
>> video device. If video_register_device() fails, probe only unregisters
>> the V4L2 device and leaves the initialized queue unwound by neither
>> remove nor file release paths.
>>
>> Release the queue before continuing through the existing probe error
>> path.
>>
>> This issue was identified during our ongoing static-analysis research while
>> reviewing kernel code.
>>
>> Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics")
>> Cc: stable@vger.kernel.org
>> Co-developed-by: Ijae Kim <ae878000@gmail.com>
>> Signed-off-by: Ijae Kim <ae878000@gmail.com>
>> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
>> ---
>>   drivers/input/rmi4/rmi_f54.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c
>> index 61909e1a39..fca7b9fec5 100644
>> --- a/drivers/input/rmi4/rmi_f54.c
>> +++ b/drivers/input/rmi4/rmi_f54.c
>> @@ -722,6 +722,7 @@ static int rmi_f54_probe(struct rmi_function *fn)
>>   	ret = video_register_device(&f54->vdev, VFL_TYPE_TOUCH, -1);
>>   	if (ret) {
>>   		dev_err(&fn->dev, "Unable to register video subdevice.");
>> +		vb2_queue_release(&f54->queue);

vb2_queue_release is not needed here: since the video device was never 
created, it also never started streaming, and this call is only needed 
if streaming is in progress.

Looking at other drivers I see that in most cases they shouldn't call
vb2_queue_release at all. I need to go through the media drivers and
fix them.

In any case:

Rejected-by: Hans Verkuil <hverkuil+cisco@kernel.org>

Regards,

	Hans

>>   		goto remove_v4l2;
>>   	}
>>   
> 
> Hans, could you please Ack or Nak it? It is unclear to me if this
> cleanup is mandatory and whether it is also needed in rmi_f54_remove().
> 
> Thanks.
> 


^ permalink raw reply

* hid-playstation: DualSense Edge Bluetooth HID report descriptor trailing null byte causes incorrect device registration and output report instability
From: Caleb Adrian @ 2026-05-27  5:13 UTC (permalink / raw)
  To: linux-input


[-- Attachment #1.1: Type: text/plain, Size: 4622 bytes --]

Hi,

I'd like to report a bug in the hid-playstation driver affecting the Sony
DualSense Edge Wireless Controller (054C:0DF2) when connected via Bluetooth.


## Summary

The DualSense Edge sends a trailing null byte (0x00) at the end of its HID
report descriptor over Bluetooth. The hid-playstation driver does not
handle this gracefully, logs "unknown main item tag 0x0", and falls back to
registering the device as a generic "DualSense controller" rather than a
"DualSense Edge controller". This causes Edge-specific features to be
unavailable and results in incorrect output report formatting over
Bluetooth, which triggers link tx timeout and connection drops when any
output report (LED/lightbar, haptics) is sent to the device.

The same device connected via USB does NOT have the trailing null byte and
works correctly.


## Hardware

- Controller: Sony DualSense Edge Wireless Controller (VID: 054C, PID: 0DF2)
- Bluetooth Adapter: Foxconn / Hon Hai (0489:e10a) — MediaTek MT7925 (MSI
B850 Gaming Plus WiFi)
- HCI Version: 5.3


## Software

- OS: Nobara Linux 43 (based on Fedora 43)
- Kernel: 7.0.5-200.nobara.fc43.x86_64
- BlueZ: 5.84
- Driver: hid-playstation (author: Sony Interactive Entertainment,
srcversion: B0C2D9A799115DCE2664703)


## Steps to Reproduce

1. Pair a DualSense Edge controller to a Linux system via Bluetooth
2. Connect the controller
3. Observe dmesg output
4. Attempt to send any output report (e.g. change LED color via Steam or
dualsensectl)


## Actual Behavior

dmesg on connect:

  playstation 0005:054C:0DF2.000A: unknown main item tag 0x0
  playstation 0005:054C:0DF2.000A: hidraw7: BLUETOOTH HID v1.00 Gamepad
[DualSense Edge Wireless Controller] on ec:91:61:d0:5d:a6
  input: DualSense Edge Wireless Controller as
/devices/virtual/misc/uhid/0005:054C:0DF2.000A/input/input29
  input: DualSense Edge Wireless Controller Motion Sensors as
/devices/virtual/misc/uhid/0005:054C:0DF2.000A/input/input30
  input: DualSense Edge Wireless Controller Touchpad as
/devices/virtual/misc/uhid/0005:054C:0DF2.000A/input/input31
  playstation 0005:054C:0DF2.000A: Registered DualSense controller
hw_version=0x01000223 fw_version=0x0100008b

Note: final line says "DualSense controller" not "DualSense Edge
controller".

dmesg when any output report is sent:

  Bluetooth: hci0: link tx timeout
  Bluetooth: hci0: killing stalled connection d4:2f:4b:3d:ec:a6
  Bluetooth: hci0: link tx timeout
  Bluetooth: hci0: killing stalled connection d4:2f:4b:3d:ec:a6


## Root Cause

The Bluetooth HID report descriptor ends with:

  ... b1 02 85 f7 09 2f 95 07 b1 02 c0 00

c0 is the valid HID End Collection tag. The trailing 00 is an invalid null
byte with no corresponding HID item tag, which the driver flags as "unknown
main item tag 0x0".

The USB descriptor ends cleanly:

  ... b1 02 85 7b 09 53 b1 02 c0

No trailing null byte, no parse error, device works correctly.

The Bluetooth and USB descriptors also differ significantly in structure:
- USB: 6 analog axes (X, Y, Z, Rz, Rx, Ry), 15 buttons
- Bluetooth: 4 analog axes (X, Y, Z, Rz only), 14 buttons, different vendor
report IDs

The driver falls back to generic DualSense handling when it cannot fully
parse the Edge Bluetooth descriptor, resulting in incorrect output report
formatting that the controller rejects.


## Suggested Fix

1. Tolerate trailing null bytes in the HID report descriptor — a null byte
after the closing c0 End Collection tag is harmless and should be ignored
or stripped before parsing.

2. Correctly identify the DualSense Edge over Bluetooth using PID 0x0DF2
regardless of descriptor parse warnings, rather than falling back to
generic DualSense handling.

3. Use the correct Bluetooth-specific output report format for the
DualSense Edge, as the Bluetooth descriptor layout differs significantly
from the USB descriptor layout.


## Additional Notes

- Controller firmware is current (verified via PS5 console, version 0217)
- Issue does not occur over USB — full functionality including LED/lightbar
control works correctly
- UserspaceHID=true in /etc/bluetooth/input.conf partially mitigates output
report instability but does not resolve the descriptor parse error or
incorrect device registration
- UserspaceHID=false (kernel HIDP) causes output reports over Bluetooth to
immediately trigger link tx timeout

I have attached the full HID report descriptors from /sys/kernel/debug/hid/
for both USB and Bluetooth connections.

Thanks for looking into this.

Caleb

[-- Attachment #1.2: Type: text/html, Size: 4879 bytes --]

[-- Attachment #2: usb_descriptor.txt --]
[-- Type: text/plain, Size: 60435 bytes --]

05 01 09 05 a1 01 85 01 09 30 09 31 09 32 09 35 09 33 09 34 15 00 26 ff 00 75 08 95 06 81 02 06 00 ff 09 20 95 01 81 02 05 01 09 39 15 00 25 07 35 00 46 3b 01 65 14 75 04 95 01 81 42 65 00 05 09 19 01 29 0f 15 00 25 01 75 01 95 0f 81 02 06 00 ff 09 21 95 0d 81 02 06 00 ff 09 22 15 00 26 ff 00 75 08 95 34 81 02 85 02 09 23 95 3f 91 02 85 05 09 33 95 28 b1 02 85 08 09 34 95 2f b1 02 85 09 09 24 95 13 b1 02 85 0a 09 25 95 1a b1 02 85 0b 09 41 95 29 b1 02 85 0c 09 42 95 29 b1 02 85 20 09 26 95 3f b1 02 85 21 09 27 95 04 b1 02 85 22 09 40 95 3f b1 02 85 80 09 28 95 3f b1 02 85 81 09 29 95 3f b1 02 85 82 09 2a 95 09 b1 02 85 83 09 2b 95 3f b1 02 85 84 09 2c 95 3f b1 02 85 85 09 2d 95 02 b1 02 85 a0 09 2e 95 01 b1 02 85 e0 09 2f 95 3f b1 02 85 f0 09 30 95 3f b1 02 85 f1 09 31 95 3f b1 02 85 f2 09 32 95 34 b1 02 85 f4 09 35 95 3f b1 02 85 f5 09 36 95 03 b1 02 85 60 09 41 95 3f b1 02 85 61 09 42 b1 02 85 62 09 43 b1 02 85 63 09 44 b1 02 85 64 09 45 b1 02 85 65 09 46 b1 02 85 68 09 47 b1 02 85 70 09 48 b1 02 85 71 09 49 b1 02 85 72 09 4a b1 02 85 73 09 4b b1 02 85 74 09 4c b1 02 85 75 09 4d b1 02 85 76 09 4e b1 02 85 77 09 4f b1 02 85 78 09 50 b1 02 85 79 09 51 b1 02 85 7a 09 52 b1 02 85 7b 09 53 b1 02 c0 

  INPUT(1)[INPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(6)
        GenericDesktop.X
        GenericDesktop.Y
        GenericDesktop.Z
        GenericDesktop.Rz
        GenericDesktop.Rx
        GenericDesktop.Ry
      Logical Minimum(0)
      Logical Maximum(255)
      Report Size(8)
      Report Count(6)
      Report Offset(0)
      Flags( Variable Absolute )
    Field(1)
      Application(GenericDesktop.Gamepad)
      Usage(1)
        ff00.0020
      Logical Minimum(0)
      Logical Maximum(255)
      Report Size(8)
      Report Count(1)
      Report Offset(48)
      Flags( Variable Absolute )
    Field(2)
      Application(GenericDesktop.Gamepad)
      Usage(1)
        GenericDesktop.HatSwitch
      Logical Minimum(0)
      Logical Maximum(7)
      Physical Minimum(0)
      Physical Maximum(315)
      Unit(English Rotation : Degrees)
      Report Size(4)
      Report Count(1)
      Report Offset(56)
      Flags( Variable Absolute NullState )
    Field(3)
      Application(GenericDesktop.Gamepad)
      Usage(15)
        Button.0001
        Button.0002
        Button.0003
        Button.0004
        Button.0005
        Button.0006
        Button.0007
        Button.0008
        Button.0009
        Button.000a
        Button.000b
        Button.000c
        Button.000d
        Button.000e
        Button.000f
      Logical Minimum(0)
      Logical Maximum(1)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(1)
      Report Count(15)
      Report Offset(60)
      Flags( Variable Absolute )
    Field(4)
      Application(GenericDesktop.Gamepad)
      Usage(13)
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
        ff00.0021
      Logical Minimum(0)
      Logical Maximum(1)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(1)
      Report Count(13)
      Report Offset(75)
      Flags( Variable Absolute )
    Field(5)
      Application(GenericDesktop.Gamepad)
      Usage(52)
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
        ff00.0022
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(52)
      Report Offset(88)
      Flags( Variable Absolute )
  OUTPUT(2)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
        ff00.0023
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(5)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(40)
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(40)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(8)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(47)
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(47)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(9)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(19)
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
        ff00.0024
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(19)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(10)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(26)
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
        ff00.0025
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(26)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(11)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(41)
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(41)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(12)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(41)
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(41)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(32)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
        ff00.0026
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(33)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(4)
        ff00.0027
        ff00.0027
        ff00.0027
        ff00.0027
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(4)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(34)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
        ff00.0040
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(128)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
        ff00.0028
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(129)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
        ff00.0029
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(130)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(9)
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
        ff00.002a
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(9)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(131)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
        ff00.002b
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(132)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
        ff00.002c
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(133)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(2)
        ff00.002d
        ff00.002d
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(2)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(160)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(1)
        ff00.002e
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(1)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(224)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
        ff00.002f
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(240)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
        ff00.0030
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(241)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(242)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(52)
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(52)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(244)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(245)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(3)
        ff00.0036
        ff00.0036
        ff00.0036
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(3)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(96)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
        ff00.0041
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(97)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
        ff00.0042
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(98)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
        ff00.0043
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(99)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
        ff00.0044
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(100)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
        ff00.0045
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(101)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
        ff00.0046
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(104)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
        ff00.0047
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(112)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
        ff00.0048
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(113)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
        ff00.0049
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(114)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
        ff00.004a
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(115)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
        ff00.004b
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(116)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
        ff00.004c
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(117)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
        ff00.004d
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(118)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
        ff00.004e
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(119)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
        ff00.004f
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(120)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
        ff00.0050
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(121)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
        ff00.0051
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(122)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
        ff00.0052
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(123)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
        ff00.0053
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )

GenericDesktop.X ---> Sync.Report
GenericDesktop.Y ---> Sync.Report
GenericDesktop.Z ---> Sync.Report
GenericDesktop.Rz ---> Sync.Report
GenericDesktop.Rx ---> Sync.Report
GenericDesktop.Ry ---> Sync.Report
ff00.0020 ---> Sync.Report
GenericDesktop.HatSwitch ---> Sync.Report
Button.0001 ---> Sync.Report
Button.0002 ---> Sync.Report
Button.0003 ---> Sync.Report
Button.0004 ---> Sync.Report
Button.0005 ---> Sync.Report
Button.0006 ---> Sync.Report
Button.0007 ---> Sync.Report
Button.0008 ---> Sync.Report
Button.0009 ---> Sync.Report
Button.000a ---> Sync.Report
Button.000b ---> Sync.Report
Button.000c ---> Sync.Report
Button.000d ---> Sync.Report
Button.000e ---> Sync.Report
Button.000f ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0021 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0022 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report
ff00.0023 ---> Sync.Report

[-- Attachment #3: bt_descriptor.txt --]
[-- Type: text/plain, Size: 198199 bytes --]

05 01 09 05 a1 01 85 01 09 30 09 31 09 32 09 35 15 00 26 ff 00 75 08 95 04 81 02 09 39 15 00 25 07 35 00 46 3b 01 65 14 75 04 95 01 81 42 65 00 05 09 19 01 29 0e 15 00 25 01 75 01 95 0e 81 02 75 06 95 01 81 01 05 01 09 33 09 34 15 00 26 ff 00 75 08 95 02 81 02 06 00 ff 15 00 26 ff 00 75 08 95 4d 85 31 09 31 91 02 09 3b 81 02 85 32 09 32 95 8d 91 02 85 33 09 33 95 cd 91 02 85 34 09 34 96 0d 01 91 02 85 35 09 35 96 4d 01 91 02 85 36 09 36 96 8d 01 91 02 85 37 09 37 96 cd 01 91 02 85 38 09 38 96 0d 02 91 02 85 39 09 39 96 22 02 91 02 06 80 ff 85 05 09 33 95 28 b1 02 85 08 09 34 95 2f b1 02 85 09 09 24 95 13 b1 02 85 0b 09 41 95 29 b1 02 85 20 09 26 95 3f b1 02 85 22 09 40 95 3f b1 02 85 80 09 28 95 3f b1 02 85 81 09 29 95 3f b1 02 85 82 09 2a 95 09 b1 02 85 83 09 2b 95 3f b1 02 85 f1 09 31 95 3f b1 02 85 f2 09 32 95 34 b1 02 85 f0 09 30 95 3f b1 02 85 60 09 41 95 3f b1 02 85 61 09 42 b1 02 85 62 09 43 b1 02 85 63 09 44 b1 02 85 64 09 45 b1 02 85 65 09 46 b1 02 85 68 09 47 b1 02 85 70 09 48 b1 02 85 71 09 49 b1 02 85 72 09 4a b1 02 85 73 09 4b b1 02 85 74 09 4c b1 02 85 75 09 4d b1 02 85 76 09 4e b1 02 85 77 09 4f b1 02 85 78 09 50 b1 02 85 79 09 51 b1 02 85 7a 09 52 b1 02 85 7b 09 53 b1 02 85 f4 09 2c 95 3f b1 02 85 f5 09 2d 95 07 b1 02 85 f6 09 2e 96 22 02 b1 02 85 f7 09 2f 95 07 b1 02 c0 00 

  INPUT(1)[INPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(4)
        GenericDesktop.X
        GenericDesktop.Y
        GenericDesktop.Z
        GenericDesktop.Rz
      Logical Minimum(0)
      Logical Maximum(255)
      Report Size(8)
      Report Count(4)
      Report Offset(0)
      Flags( Variable Absolute )
    Field(1)
      Application(GenericDesktop.Gamepad)
      Usage(1)
        GenericDesktop.HatSwitch
      Logical Minimum(0)
      Logical Maximum(7)
      Physical Minimum(0)
      Physical Maximum(315)
      Unit(English Rotation : Degrees)
      Report Size(4)
      Report Count(1)
      Report Offset(32)
      Flags( Variable Absolute NullState )
    Field(2)
      Application(GenericDesktop.Gamepad)
      Usage(14)
        Button.0001
        Button.0002
        Button.0003
        Button.0004
        Button.0005
        Button.0006
        Button.0007
        Button.0008
        Button.0009
        Button.000a
        Button.000b
        Button.000c
        Button.000d
        Button.000e
      Logical Minimum(0)
      Logical Maximum(1)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(1)
      Report Count(14)
      Report Offset(36)
      Flags( Variable Absolute )
    Field(3)
      Application(GenericDesktop.Gamepad)
      Usage(2)
        GenericDesktop.Rx
        GenericDesktop.Ry
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(2)
      Report Offset(56)
      Flags( Variable Absolute )
  INPUT(49)[INPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(77)
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
        ff00.003b
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(77)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(49)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(77)
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
        ff00.0031
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(77)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(50)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(141)
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
        ff00.0032
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(141)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(51)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(205)
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
        ff00.0033
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(205)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(52)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(269)
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
        ff00.0034
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(269)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(53)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(333)
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
        ff00.0035
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(333)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(54)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(397)
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
        ff00.0036
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(397)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(55)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(461)
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
        ff00.0037
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(461)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(56)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(525)
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
        ff00.0038
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(525)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT(57)[OUTPUT]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(546)
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
        ff00.0039
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(546)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(5)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(40)
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
        ff80.0033
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(40)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(8)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(47)
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
        ff80.0034
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(47)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(9)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(19)
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
        ff80.0024
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(19)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(11)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(41)
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(41)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(32)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
        ff80.0026
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(34)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
        ff80.0040
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(128)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
        ff80.0028
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(129)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
        ff80.0029
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(130)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(9)
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
        ff80.002a
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(9)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(131)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
        ff80.002b
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(241)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
        ff80.0031
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(242)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(52)
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
        ff80.0032
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(52)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(240)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
        ff80.0030
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(96)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
        ff80.0041
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(97)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
        ff80.0042
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(98)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
        ff80.0043
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(99)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
        ff80.0044
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(100)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
        ff80.0045
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(101)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
        ff80.0046
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(104)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
        ff80.0047
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(112)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
        ff80.0048
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(113)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
        ff80.0049
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(114)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
        ff80.004a
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(115)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
        ff80.004b
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(116)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
        ff80.004c
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(117)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
        ff80.004d
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(118)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
        ff80.004e
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(119)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
        ff80.004f
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(120)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
        ff80.0050
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(121)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
        ff80.0051
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(122)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
        ff80.0052
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(123)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
        ff80.0053
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(244)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(63)
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
        ff80.002c
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(63)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(245)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(7)
        ff80.002d
        ff80.002d
        ff80.002d
        ff80.002d
        ff80.002d
        ff80.002d
        ff80.002d
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(7)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(246)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(546)
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
        ff80.002e
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(546)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE(247)[FEATURE]
    Field(0)
      Application(GenericDesktop.Gamepad)
      Usage(7)
        ff80.002f
        ff80.002f
        ff80.002f
        ff80.002f
        ff80.002f
        ff80.002f
        ff80.002f
      Logical Minimum(0)
      Logical Maximum(255)
      Physical Minimum(0)
      Physical Maximum(315)
      Report Size(8)
      Report Count(7)
      Report Offset(0)
      Flags( Variable Absolute )

GenericDesktop.X ---> Sync.Report
GenericDesktop.Y ---> Sync.Report
GenericDesktop.Z ---> Sync.Report
GenericDesktop.Rz ---> Sync.Report
GenericDesktop.HatSwitch ---> Sync.Report
Button.0001 ---> Sync.Report
Button.0002 ---> Sync.Report
Button.0003 ---> Sync.Report
Button.0004 ---> Sync.Report
Button.0005 ---> Sync.Report
Button.0006 ---> Sync.Report
Button.0007 ---> Sync.Report
Button.0008 ---> Sync.Report
Button.0009 ---> Sync.Report
Button.000a ---> Sync.Report
Button.000b ---> Sync.Report
Button.000c ---> Sync.Report
Button.000d ---> Sync.Report
Button.000e ---> Sync.Report
GenericDesktop.Rx ---> Sync.Report
GenericDesktop.Ry ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.003b ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0031 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0032 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0033 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0034 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0035 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0036 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0037 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0038 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report
ff00.0039 ---> Sync.Report

^ permalink raw reply

* Re: [PATCH] Input: mtk-pmic-keys - match loop with count
From: Dmitry Torokhov @ 2026-05-27  1:41 UTC (permalink / raw)
  To: Rosen Penev
  Cc: linux-input, Matthias Brugger, AngeloGioacchino Del Regno,
	open list:ARM/Mediatek SoC support,
	moderated list:ARM/Mediatek SoC support,
	moderated list:ARM/Mediatek SoC support
In-Reply-To: <20260527004543.22875-1-rosenp@gmail.com>

Hi Rosen,

On Tue, May 26, 2026 at 05:45:43PM -0700, Rosen Penev wrote:
> of_get_available_child_count is used along with
> for_each_child_of_node_scoped, which can cause a mismatch when keys have
> a disabled status.
> 
> If a disabled child node exists in the device tree alongside available ones,
> the loop could execute more times than the initial validation accounted for.
> This might increment the index variable past the allocated array bounds,
> leading to out-of-bounds accesses on irqnames[] and keys->keys[].
> 
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
>  drivers/input/keyboard/mtk-pmic-keys.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/input/keyboard/mtk-pmic-keys.c b/drivers/input/keyboard/mtk-pmic-keys.c
> index c78d9f6d97c4..5d4ebbafd276 100644
> --- a/drivers/input/keyboard/mtk-pmic-keys.c
> +++ b/drivers/input/keyboard/mtk-pmic-keys.c
> @@ -363,7 +363,7 @@ static int mtk_pmic_keys_probe(struct platform_device *pdev)
>  		return -EINVAL;
>  	}
>  
> -	for_each_child_of_node_scoped(node, child) {
> +	for_each_available_child_of_node_scoped(node, child) {
>  		keys->keys[index].regs = &mtk_pmic_regs->keys_regs[index];
>  
>  		keys->keys[index].irq =

I think Sashiko correctly points out that this may result in incorrect
register data and interrupts being mapped to the keys (potentially
shifting them).

Maybe we should stop counting nodes separately, iterate over all of them
here and bail out with an error if we encounter more than 2 (does not
matter if they are marked available or not), and then skip not available
nodes? WDYT?

Thanks.

-- 
Dmitry

^ permalink raw reply

* Re: [PATCH] Input: mtk-pmic-keys - match loop with count
From: sashiko-bot @ 2026-05-27  1:15 UTC (permalink / raw)
  To: Rosen Penev; +Cc: dmitry.torokhov, linux-input
In-Reply-To: <20260527004543.22875-1-rosenp@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Switching to `for_each_available_child_of_node_scoped` shifts the hardware mapping index if a preceding node is disabled, leading to incorrect physical key configuration.
--

commit 999599e1545f7dcb987f1a3ede455f57f6a980e6
Author: Rosen Penev <rosenp@gmail.com>

Input: mtk-pmic-keys - match loop with count

This commit changes the child node iteration in mtk_pmic_keys_probe() to
only iterate over available child nodes, preventing an out-of-bounds array
access if a disabled node exists alongside available ones.

> diff --git a/drivers/input/keyboard/mtk-pmic-keys.c b/drivers/input/keyboard/mtk-pmic-keys.c
> index c78d9f6d97c4f..5d4ebbafd2765 100644
> --- a/drivers/input/keyboard/mtk-pmic-keys.c
> +++ b/drivers/input/keyboard/mtk-pmic-keys.c
> @@ -363,7 +363,7 @@ static int mtk_pmic_keys_probe(struct platform_device *pdev)
>  		return -EINVAL;
>  	}
>  
> -	for_each_child_of_node_scoped(node, child) {
> +	for_each_available_child_of_node_scoped(node, child) {

[Severity: High]
Does this change in iteration cause a regression with the positional mapping
of keys to hardware?

The driver maps device tree child nodes to physical key hardware (IRQ and
registers) based strictly on the loop iteration index (index = 0 for
powerkey, index = 1 for homekey).

Before this patch, for_each_child_of_node_scoped() iterated over all defined
child nodes, ensuring that positional mapping was maintained even if the first
node (e.g., powerkey) had status = "disabled".

By changing the iterator to for_each_available_child_of_node_scoped(),
disabled nodes are now skipped. If the powerkey node is disabled in the
device tree, it is skipped, and the homekey node becomes the first available
child. It is then processed with index = 0.

Consequently, the driver would configure the powerkey hardware registers
and request the powerkey IRQ, but bind them to the properties
(like linux,keycodes) of the homekey node.

Could this result in the physical powerkey incorrectly emitting the homekey's
code, while the physical homekey remains uninitialized?

>  		keys->keys[index].regs = &mtk_pmic_regs->keys_regs[index];
>  
>  		keys->keys[index].irq =

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260527004543.22875-1-rosenp@gmail.com?part=1

^ permalink raw reply

* Re: [PATCH] HID: nintendo: add support for HORI Wireless Switch Pad
From: Joshua Peisach @ 2026-05-27  1:12 UTC (permalink / raw)
  To: Hector Zelaya, Jiri Kosina, Benjamin Tissoires,
	Daniel J. Ogorchock
  Cc: linux-input, linux-kernel
In-Reply-To: <20260526-hori-support-v1-1-1861c0abc2e0@hectorzelaya.dev>

On Tue May 26, 2026 at 1:08 PM EDT, Hector Zelaya wrote:
> Add support for the HORI Wireless Switch Pad (vendor 0x0f0d, product
> 0x00f6), a licensed third-party Nintendo Switch Pro Controller.
>
> The controller reports controller type 0x06 (vs 0x03 for first-party
> Pro Controllers) and has the following quirks:
>
>  - SPI flash calibration data is incompatible; use default stick
>    calibration values instead.
>  - X and Y button bits are swapped compared to first-party controllers;
>    add a dedicated button mapping table.
>  - Rumble and IMU enable may timeout (no vibration motor in hardware);
>    treat as non-fatal for licensed controllers.
>
> Tested over Bluetooth on NixOS with kernel 7.0.5 and 7.0.10:
>  - All 14 buttons map correctly
>  - Player LED sets on connect
>  - Sticks report correctly with default calibration
>  - IMU/gyro data streams at 60Hz
>  - D-pad reports on ABS_HAT0X/HAT0Y
>
> Device information:
>   Bluetooth name: Lic Pro Controller
>   Bluetooth HID:  0005:0F0D:00F6
>
> Assisted-by: Kiro:Auto [Amazon Kiro IDE]
> Signed-off-by: Hector Zelaya <hector@hectorzelaya.dev>
> ---

Looks fine.

Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox